bootstrap-sass 3.3.1.0 → 3.3.6

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of bootstrap-sass might be problematic. Click here for more details.

Files changed (109) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +8 -8
  3. data/CHANGELOG.md +44 -0
  4. data/CONTRIBUTING.md +8 -1
  5. data/Gemfile +1 -1
  6. data/LICENSE +1 -1
  7. data/README.md +69 -49
  8. data/Rakefile +46 -4
  9. data/assets/fonts/bootstrap/glyphicons-halflings-regular.eot +0 -0
  10. data/assets/fonts/bootstrap/glyphicons-halflings-regular.svg +273 -214
  11. data/assets/fonts/bootstrap/glyphicons-halflings-regular.ttf +0 -0
  12. data/assets/fonts/bootstrap/glyphicons-halflings-regular.woff +0 -0
  13. data/assets/fonts/bootstrap/glyphicons-halflings-regular.woff2 +0 -0
  14. data/assets/javascripts/bootstrap/affix.js +7 -7
  15. data/assets/javascripts/bootstrap/alert.js +3 -3
  16. data/assets/javascripts/bootstrap/button.js +14 -10
  17. data/assets/javascripts/bootstrap/carousel.js +11 -14
  18. data/assets/javascripts/bootstrap/collapse.js +9 -9
  19. data/assets/javascripts/bootstrap/dropdown.js +49 -45
  20. data/assets/javascripts/bootstrap/modal.js +45 -32
  21. data/assets/javascripts/bootstrap/popover.js +9 -20
  22. data/assets/javascripts/bootstrap/scrollspy.js +18 -21
  23. data/assets/javascripts/bootstrap/tab.js +7 -5
  24. data/assets/javascripts/bootstrap/tooltip.js +82 -46
  25. data/assets/javascripts/bootstrap/transition.js +2 -2
  26. data/assets/javascripts/bootstrap-sprockets.js +2 -2
  27. data/assets/javascripts/bootstrap.js +1210 -1151
  28. data/assets/javascripts/bootstrap.min.js +7 -0
  29. data/assets/stylesheets/_bootstrap-compass.scss +2 -0
  30. data/assets/stylesheets/_bootstrap-mincer.scss +4 -2
  31. data/assets/stylesheets/_bootstrap-sprockets.scss +2 -0
  32. data/assets/stylesheets/_bootstrap.scss +6 -0
  33. data/assets/stylesheets/bootstrap/_alerts.scss +5 -0
  34. data/assets/stylesheets/bootstrap/_badges.scss +7 -2
  35. data/assets/stylesheets/bootstrap/_breadcrumbs.scss +3 -1
  36. data/assets/stylesheets/bootstrap/_button-groups.scss +5 -4
  37. data/assets/stylesheets/bootstrap/_buttons.scss +14 -6
  38. data/assets/stylesheets/bootstrap/_carousel.scss +16 -13
  39. data/assets/stylesheets/bootstrap/_close.scss +1 -0
  40. data/assets/stylesheets/bootstrap/_component-animations.scss +1 -2
  41. data/assets/stylesheets/bootstrap/_dropdowns.scss +6 -3
  42. data/assets/stylesheets/bootstrap/_forms.scss +98 -29
  43. data/assets/stylesheets/bootstrap/_glyphicons.scss +83 -10
  44. data/assets/stylesheets/bootstrap/_input-groups.scss +8 -3
  45. data/assets/stylesheets/bootstrap/_jumbotron.scss +8 -3
  46. data/assets/stylesheets/bootstrap/_list-group.scss +9 -3
  47. data/assets/stylesheets/bootstrap/_media.scss +19 -0
  48. data/assets/stylesheets/bootstrap/_mixins.scss +1 -0
  49. data/assets/stylesheets/bootstrap/_modals.scss +4 -2
  50. data/assets/stylesheets/bootstrap/_navbar.scss +1 -1
  51. data/assets/stylesheets/bootstrap/_navs.scss +0 -2
  52. data/assets/stylesheets/bootstrap/_normalize.scss +8 -11
  53. data/assets/stylesheets/bootstrap/_pagination.scss +4 -3
  54. data/assets/stylesheets/bootstrap/_panels.scss +11 -1
  55. data/assets/stylesheets/bootstrap/_popovers.scss +4 -8
  56. data/assets/stylesheets/bootstrap/_print.scss +0 -6
  57. data/assets/stylesheets/bootstrap/_responsive-embed.scss +8 -8
  58. data/assets/stylesheets/bootstrap/_responsive-utilities.scss +8 -3
  59. data/assets/stylesheets/bootstrap/_scaffolding.scss +11 -0
  60. data/assets/stylesheets/bootstrap/_tables.scss +3 -3
  61. data/assets/stylesheets/bootstrap/_theme.scss +26 -7
  62. data/assets/stylesheets/bootstrap/_tooltip.scss +4 -6
  63. data/assets/stylesheets/bootstrap/_type.scss +2 -2
  64. data/assets/stylesheets/bootstrap/_utilities.scss +0 -1
  65. data/assets/stylesheets/bootstrap/_variables.scss +20 -10
  66. data/assets/stylesheets/bootstrap/mixins/_background-variant.scss +2 -1
  67. data/assets/stylesheets/bootstrap/mixins/_buttons.scss +19 -6
  68. data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +2 -2
  69. data/assets/stylesheets/bootstrap/mixins/_grid.scss +4 -4
  70. data/assets/stylesheets/bootstrap/mixins/_hide-text.scss +3 -3
  71. data/assets/stylesheets/bootstrap/mixins/_list-group.scss +3 -2
  72. data/assets/stylesheets/bootstrap/mixins/_opacity.scss +1 -1
  73. data/assets/stylesheets/bootstrap/mixins/_pagination.scss +2 -1
  74. data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +18 -0
  75. data/assets/stylesheets/bootstrap/mixins/_responsive-visibility.scss +1 -1
  76. data/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +2 -1
  77. data/assets/stylesheets/bootstrap/mixins/_vendor-prefixes.scss +3 -3
  78. data/bootstrap-sass.gemspec +9 -9
  79. data/bower.json +5 -19
  80. data/composer.json +1 -1
  81. data/lib/bootstrap-sass/engine.rb +6 -1
  82. data/lib/bootstrap-sass/version.rb +2 -2
  83. data/lib/bootstrap-sass.rb +27 -5
  84. data/package.json +6 -6
  85. data/sache.json +1 -1
  86. data/tasks/bower.rake +2 -5
  87. data/tasks/converter/fonts_conversion.rb +1 -1
  88. data/tasks/converter/js_conversion.rb +7 -5
  89. data/tasks/converter/less_conversion.rb +41 -29
  90. data/tasks/converter/network.rb +10 -5
  91. data/tasks/converter.rb +1 -1
  92. data/templates/project/_bootstrap-variables.sass +20 -11
  93. data/templates/project/styles.sass +3 -0
  94. data/test/dummy_rails/app/assets/stylesheets/{application.css.sass → application.sass} +0 -0
  95. data/test/dummy_rails/app/views/pages/root.html.slim +43 -0
  96. data/test/dummy_rails/config/application.rb +1 -1
  97. data/test/dummy_rails/config/environments/development.rb +0 -3
  98. data/test/dummy_rails/config/environments/production.rb +7 -1
  99. data/test/dummy_rails/config/environments/test.rb +9 -1
  100. data/test/dummy_sass_only/Gemfile +1 -1
  101. data/test/gemfiles/rails_head.gemfile +17 -0
  102. data/test/node_mincer_test.rb +2 -3
  103. data/test/node_sass_compile_test.sh +2 -2
  104. data/test/sprockets_rails_test.rb +1 -1
  105. data/test/support/reporting.rb +10 -0
  106. data/test/test_helper.rb +1 -1
  107. metadata +36 -34
  108. data/test/dummy_rails/log/development.log +0 -0
  109. data/test/gemfiles/sass_3_2.gemfile +0 -6
@@ -1,8 +1,8 @@
1
1
  /* ========================================================================
2
- * Bootstrap: scrollspy.js v3.3.1
2
+ * Bootstrap: scrollspy.js v3.3.6
3
3
  * http://getbootstrap.com/javascript/#scrollspy
4
4
  * ========================================================================
5
- * Copyright 2011-2014 Twitter, Inc.
5
+ * Copyright 2011-2015 Twitter, Inc.
6
6
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
7
7
  * ======================================================================== */
8
8
 
@@ -14,10 +14,8 @@
14
14
  // ==========================
15
15
 
16
16
  function ScrollSpy(element, options) {
17
- var process = $.proxy(this.process, this)
18
-
19
- this.$body = $('body')
20
- this.$scrollElement = $(element).is('body') ? $(window) : $(element)
17
+ this.$body = $(document.body)
18
+ this.$scrollElement = $(element).is(document.body) ? $(window) : $(element)
21
19
  this.options = $.extend({}, ScrollSpy.DEFAULTS, options)
22
20
  this.selector = (this.options.target || '') + ' .nav li > a'
23
21
  this.offsets = []
@@ -25,12 +23,12 @@
25
23
  this.activeTarget = null
26
24
  this.scrollHeight = 0
27
25
 
28
- this.$scrollElement.on('scroll.bs.scrollspy', process)
26
+ this.$scrollElement.on('scroll.bs.scrollspy', $.proxy(this.process, this))
29
27
  this.refresh()
30
28
  this.process()
31
29
  }
32
30
 
33
- ScrollSpy.VERSION = '3.3.1'
31
+ ScrollSpy.VERSION = '3.3.6'
34
32
 
35
33
  ScrollSpy.DEFAULTS = {
36
34
  offset: 10
@@ -41,20 +39,19 @@
41
39
  }
42
40
 
43
41
  ScrollSpy.prototype.refresh = function () {
44
- var offsetMethod = 'offset'
45
- var offsetBase = 0
42
+ var that = this
43
+ var offsetMethod = 'offset'
44
+ var offsetBase = 0
45
+
46
+ this.offsets = []
47
+ this.targets = []
48
+ this.scrollHeight = this.getScrollHeight()
46
49
 
47
50
  if (!$.isWindow(this.$scrollElement[0])) {
48
51
  offsetMethod = 'position'
49
52
  offsetBase = this.$scrollElement.scrollTop()
50
53
  }
51
54
 
52
- this.offsets = []
53
- this.targets = []
54
- this.scrollHeight = this.getScrollHeight()
55
-
56
- var self = this
57
-
58
55
  this.$body
59
56
  .find(this.selector)
60
57
  .map(function () {
@@ -69,8 +66,8 @@
69
66
  })
70
67
  .sort(function (a, b) { return a[0] - b[0] })
71
68
  .each(function () {
72
- self.offsets.push(this[0])
73
- self.targets.push(this[1])
69
+ that.offsets.push(this[0])
70
+ that.targets.push(this[1])
74
71
  })
75
72
  }
76
73
 
@@ -99,7 +96,7 @@
99
96
  for (i = offsets.length; i--;) {
100
97
  activeTarget != targets[i]
101
98
  && scrollTop >= offsets[i]
102
- && (!offsets[i + 1] || scrollTop <= offsets[i + 1])
99
+ && (offsets[i + 1] === undefined || scrollTop < offsets[i + 1])
103
100
  && this.activate(targets[i])
104
101
  }
105
102
  }
@@ -110,8 +107,8 @@
110
107
  this.clear()
111
108
 
112
109
  var selector = this.selector +
113
- '[data-target="' + target + '"],' +
114
- this.selector + '[href="' + target + '"]'
110
+ '[data-target="' + target + '"],' +
111
+ this.selector + '[href="' + target + '"]'
115
112
 
116
113
  var active = $(selector)
117
114
  .parents('li')
@@ -1,8 +1,8 @@
1
1
  /* ========================================================================
2
- * Bootstrap: tab.js v3.3.1
2
+ * Bootstrap: tab.js v3.3.6
3
3
  * http://getbootstrap.com/javascript/#tabs
4
4
  * ========================================================================
5
- * Copyright 2011-2014 Twitter, Inc.
5
+ * Copyright 2011-2015 Twitter, Inc.
6
6
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
7
7
  * ======================================================================== */
8
8
 
@@ -14,10 +14,12 @@
14
14
  // ====================
15
15
 
16
16
  var Tab = function (element) {
17
+ // jscs:disable requireDollarBeforejQueryAssignment
17
18
  this.element = $(element)
19
+ // jscs:enable requireDollarBeforejQueryAssignment
18
20
  }
19
21
 
20
- Tab.VERSION = '3.3.1'
22
+ Tab.VERSION = '3.3.6'
21
23
 
22
24
  Tab.TRANSITION_DURATION = 150
23
25
 
@@ -65,7 +67,7 @@
65
67
  var $active = container.find('> .active')
66
68
  var transition = callback
67
69
  && $.support.transition
68
- && (($active.length && $active.hasClass('fade')) || !!container.find('> .fade').length)
70
+ && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length)
69
71
 
70
72
  function next() {
71
73
  $active
@@ -88,7 +90,7 @@
88
90
  element.removeClass('fade')
89
91
  }
90
92
 
91
- if (element.parent('.dropdown-menu')) {
93
+ if (element.parent('.dropdown-menu').length) {
92
94
  element
93
95
  .closest('li.dropdown')
94
96
  .addClass('active')
@@ -1,9 +1,9 @@
1
1
  /* ========================================================================
2
- * Bootstrap: tooltip.js v3.3.1
2
+ * Bootstrap: tooltip.js v3.3.6
3
3
  * http://getbootstrap.com/javascript/#tooltip
4
4
  * Inspired by the original jQuery.tipsy by Jason Frame
5
5
  * ========================================================================
6
- * Copyright 2011-2014 Twitter, Inc.
6
+ * Copyright 2011-2015 Twitter, Inc.
7
7
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
8
8
  * ======================================================================== */
9
9
 
@@ -15,17 +15,18 @@
15
15
  // ===============================
16
16
 
17
17
  var Tooltip = function (element, options) {
18
- this.type =
19
- this.options =
20
- this.enabled =
21
- this.timeout =
22
- this.hoverState =
18
+ this.type = null
19
+ this.options = null
20
+ this.enabled = null
21
+ this.timeout = null
22
+ this.hoverState = null
23
23
  this.$element = null
24
+ this.inState = null
24
25
 
25
26
  this.init('tooltip', element, options)
26
27
  }
27
28
 
28
- Tooltip.VERSION = '3.3.1'
29
+ Tooltip.VERSION = '3.3.6'
29
30
 
30
31
  Tooltip.TRANSITION_DURATION = 150
31
32
 
@@ -50,7 +51,12 @@
50
51
  this.type = type
51
52
  this.$element = $(element)
52
53
  this.options = this.getOptions(options)
53
- this.$viewport = this.options.viewport && $(this.options.viewport.selector || this.options.viewport)
54
+ this.$viewport = this.options.viewport && $($.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : (this.options.viewport.selector || this.options.viewport))
55
+ this.inState = { click: false, hover: false, focus: false }
56
+
57
+ if (this.$element[0] instanceof document.constructor && !this.options.selector) {
58
+ throw new Error('`selector` option must be specified when initializing ' + this.type + ' on the window.document object!')
59
+ }
54
60
 
55
61
  var triggers = this.options.trigger.split(' ')
56
62
 
@@ -105,16 +111,20 @@
105
111
  var self = obj instanceof this.constructor ?
106
112
  obj : $(obj.currentTarget).data('bs.' + this.type)
107
113
 
108
- if (self && self.$tip && self.$tip.is(':visible')) {
109
- self.hoverState = 'in'
110
- return
111
- }
112
-
113
114
  if (!self) {
114
115
  self = new this.constructor(obj.currentTarget, this.getDelegateOptions())
115
116
  $(obj.currentTarget).data('bs.' + this.type, self)
116
117
  }
117
118
 
119
+ if (obj instanceof $.Event) {
120
+ self.inState[obj.type == 'focusin' ? 'focus' : 'hover'] = true
121
+ }
122
+
123
+ if (self.tip().hasClass('in') || self.hoverState == 'in') {
124
+ self.hoverState = 'in'
125
+ return
126
+ }
127
+
118
128
  clearTimeout(self.timeout)
119
129
 
120
130
  self.hoverState = 'in'
@@ -126,6 +136,14 @@
126
136
  }, self.options.delay.show)
127
137
  }
128
138
 
139
+ Tooltip.prototype.isInStateTrue = function () {
140
+ for (var key in this.inState) {
141
+ if (this.inState[key]) return true
142
+ }
143
+
144
+ return false
145
+ }
146
+
129
147
  Tooltip.prototype.leave = function (obj) {
130
148
  var self = obj instanceof this.constructor ?
131
149
  obj : $(obj.currentTarget).data('bs.' + this.type)
@@ -135,6 +153,12 @@
135
153
  $(obj.currentTarget).data('bs.' + this.type, self)
136
154
  }
137
155
 
156
+ if (obj instanceof $.Event) {
157
+ self.inState[obj.type == 'focusout' ? 'focus' : 'hover'] = false
158
+ }
159
+
160
+ if (self.isInStateTrue()) return
161
+
138
162
  clearTimeout(self.timeout)
139
163
 
140
164
  self.hoverState = 'out'
@@ -181,6 +205,7 @@
181
205
  .data('bs.' + this.type, this)
182
206
 
183
207
  this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)
208
+ this.$element.trigger('inserted.bs.' + this.type)
184
209
 
185
210
  var pos = this.getPosition()
186
211
  var actualWidth = $tip[0].offsetWidth
@@ -188,13 +213,12 @@
188
213
 
189
214
  if (autoPlace) {
190
215
  var orgPlacement = placement
191
- var $container = this.options.container ? $(this.options.container) : this.$element.parent()
192
- var containerDim = this.getPosition($container)
216
+ var viewportDim = this.getPosition(this.$viewport)
193
217
 
194
- placement = placement == 'bottom' && pos.bottom + actualHeight > containerDim.bottom ? 'top' :
195
- placement == 'top' && pos.top - actualHeight < containerDim.top ? 'bottom' :
196
- placement == 'right' && pos.right + actualWidth > containerDim.width ? 'left' :
197
- placement == 'left' && pos.left - actualWidth < containerDim.left ? 'right' :
218
+ placement = placement == 'bottom' && pos.bottom + actualHeight > viewportDim.bottom ? 'top' :
219
+ placement == 'top' && pos.top - actualHeight < viewportDim.top ? 'bottom' :
220
+ placement == 'right' && pos.right + actualWidth > viewportDim.width ? 'left' :
221
+ placement == 'left' && pos.left - actualWidth < viewportDim.left ? 'right' :
198
222
  placement
199
223
 
200
224
  $tip
@@ -235,8 +259,8 @@
235
259
  if (isNaN(marginTop)) marginTop = 0
236
260
  if (isNaN(marginLeft)) marginLeft = 0
237
261
 
238
- offset.top = offset.top + marginTop
239
- offset.left = offset.left + marginLeft
262
+ offset.top += marginTop
263
+ offset.left += marginLeft
240
264
 
241
265
  // $.fn.offset doesn't round pixel values
242
266
  // so we use setOffset directly with our own function B-0
@@ -272,10 +296,10 @@
272
296
  this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical)
273
297
  }
274
298
 
275
- Tooltip.prototype.replaceArrow = function (delta, dimension, isHorizontal) {
299
+ Tooltip.prototype.replaceArrow = function (delta, dimension, isVertical) {
276
300
  this.arrow()
277
- .css(isHorizontal ? 'left' : 'top', 50 * (1 - delta / dimension) + '%')
278
- .css(isHorizontal ? 'top' : 'left', '')
301
+ .css(isVertical ? 'left' : 'top', 50 * (1 - delta / dimension) + '%')
302
+ .css(isVertical ? 'top' : 'left', '')
279
303
  }
280
304
 
281
305
  Tooltip.prototype.setContent = function () {
@@ -288,7 +312,7 @@
288
312
 
289
313
  Tooltip.prototype.hide = function (callback) {
290
314
  var that = this
291
- var $tip = this.tip()
315
+ var $tip = $(this.$tip)
292
316
  var e = $.Event('hide.bs.' + this.type)
293
317
 
294
318
  function complete() {
@@ -305,7 +329,7 @@
305
329
 
306
330
  $tip.removeClass('in')
307
331
 
308
- $.support.transition && this.$tip.hasClass('fade') ?
332
+ $.support.transition && $tip.hasClass('fade') ?
309
333
  $tip
310
334
  .one('bsTransitionEnd', complete)
311
335
  .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :
@@ -318,7 +342,7 @@
318
342
 
319
343
  Tooltip.prototype.fixTitle = function () {
320
344
  var $e = this.$element
321
- if ($e.attr('title') || typeof ($e.attr('data-original-title')) != 'string') {
345
+ if ($e.attr('title') || typeof $e.attr('data-original-title') != 'string') {
322
346
  $e.attr('data-original-title', $e.attr('title') || '').attr('title', '')
323
347
  }
324
348
  }
@@ -346,10 +370,10 @@
346
370
  }
347
371
 
348
372
  Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {
349
- return placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } :
350
- placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :
373
+ return placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } :
374
+ placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :
351
375
  placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :
352
- /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }
376
+ /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }
353
377
 
354
378
  }
355
379
 
@@ -373,7 +397,7 @@
373
397
  var rightEdgeOffset = pos.left + viewportPadding + actualWidth
374
398
  if (leftEdgeOffset < viewportDimensions.left) { // left overflow
375
399
  delta.left = viewportDimensions.left - leftEdgeOffset
376
- } else if (rightEdgeOffset > viewportDimensions.width) { // right overflow
400
+ } else if (rightEdgeOffset > viewportDimensions.right) { // right overflow
377
401
  delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset
378
402
  }
379
403
  }
@@ -399,7 +423,13 @@
399
423
  }
400
424
 
401
425
  Tooltip.prototype.tip = function () {
402
- return (this.$tip = this.$tip || $(this.options.template))
426
+ if (!this.$tip) {
427
+ this.$tip = $(this.options.template)
428
+ if (this.$tip.length != 1) {
429
+ throw new Error(this.type + ' `template` option must consist of exactly 1 top-level element!')
430
+ }
431
+ }
432
+ return this.$tip
403
433
  }
404
434
 
405
435
  Tooltip.prototype.arrow = function () {
@@ -428,7 +458,13 @@
428
458
  }
429
459
  }
430
460
 
431
- self.tip().hasClass('in') ? self.leave(self) : self.enter(self)
461
+ if (e) {
462
+ self.inState.click = !self.inState.click
463
+ if (self.isInStateTrue()) self.enter(self)
464
+ else self.leave(self)
465
+ } else {
466
+ self.tip().hasClass('in') ? self.leave(self) : self.enter(self)
467
+ }
432
468
  }
433
469
 
434
470
  Tooltip.prototype.destroy = function () {
@@ -436,6 +472,12 @@
436
472
  clearTimeout(this.timeout)
437
473
  this.hide(function () {
438
474
  that.$element.off('.' + that.type).removeData('bs.' + that.type)
475
+ if (that.$tip) {
476
+ that.$tip.detach()
477
+ }
478
+ that.$tip = null
479
+ that.$arrow = null
480
+ that.$viewport = null
439
481
  })
440
482
  }
441
483
 
@@ -445,18 +487,12 @@
445
487
 
446
488
  function Plugin(option) {
447
489
  return this.each(function () {
448
- var $this = $(this)
449
- var data = $this.data('bs.tooltip')
450
- var options = typeof option == 'object' && option
451
- var selector = options && options.selector
452
-
453
- if (!data && option == 'destroy') return
454
- if (selector) {
455
- if (!data) $this.data('bs.tooltip', (data = {}))
456
- if (!data[selector]) data[selector] = new Tooltip(this, options)
457
- } else {
458
- if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))
459
- }
490
+ var $this = $(this)
491
+ var data = $this.data('bs.tooltip')
492
+ var options = typeof option == 'object' && option
493
+
494
+ if (!data && /destroy|hide/.test(option)) return
495
+ if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))
460
496
  if (typeof option == 'string') data[option]()
461
497
  })
462
498
  }
@@ -1,8 +1,8 @@
1
1
  /* ========================================================================
2
- * Bootstrap: transition.js v3.3.1
2
+ * Bootstrap: transition.js v3.3.6
3
3
  * http://getbootstrap.com/javascript/#transitions
4
4
  * ========================================================================
5
- * Copyright 2011-2014 Twitter, Inc.
5
+ * Copyright 2011-2015 Twitter, Inc.
6
6
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
7
7
  * ======================================================================== */
8
8
 
@@ -4,9 +4,9 @@
4
4
  //= require ./bootstrap/carousel
5
5
  //= require ./bootstrap/collapse
6
6
  //= require ./bootstrap/dropdown
7
+ //= require ./bootstrap/modal
8
+ //= require ./bootstrap/scrollspy
7
9
  //= require ./bootstrap/tab
8
10
  //= require ./bootstrap/transition
9
- //= require ./bootstrap/scrollspy
10
- //= require ./bootstrap/modal
11
11
  //= require ./bootstrap/tooltip
12
12
  //= require ./bootstrap/popover