bootstrap-on-rails 3.2.0 → 3.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +5 -1
- data/app/assets/fonts/bootstrap/glyphicons-halflings-regular.eot +0 -0
- data/app/assets/fonts/bootstrap/glyphicons-halflings-regular.svg +1 -1
- data/app/assets/fonts/bootstrap/glyphicons-halflings-regular.ttf +0 -0
- data/app/assets/fonts/bootstrap/glyphicons-halflings-regular.woff +0 -0
- data/app/assets/javascripts/bootstrap/affix.js +43 -23
- data/app/assets/javascripts/bootstrap/alert.js +6 -4
- data/app/assets/javascripts/bootstrap/button.js +16 -10
- data/app/assets/javascripts/bootstrap/carousel.js +27 -10
- data/app/assets/javascripts/bootstrap/collapse.js +69 -28
- data/app/assets/javascripts/bootstrap/dropdown.js +20 -10
- data/app/assets/javascripts/bootstrap/modal.js +67 -23
- data/app/assets/javascripts/bootstrap/popover.js +13 -7
- data/app/assets/javascripts/bootstrap/scrollspy.js +12 -7
- data/app/assets/javascripts/bootstrap/tab.js +41 -16
- data/app/assets/javascripts/bootstrap/tooltip.js +60 -39
- data/app/assets/javascripts/bootstrap/transition.js +1 -1
- data/app/assets/stylesheets/bootstrap/alerts.less +0 -0
- data/app/assets/stylesheets/bootstrap/badges.less +7 -1
- data/app/assets/stylesheets/bootstrap/bootstrap.less +0 -0
- data/app/assets/stylesheets/bootstrap/breadcrumbs.less +0 -0
- data/app/assets/stylesheets/bootstrap/button-groups.less +16 -13
- data/app/assets/stylesheets/bootstrap/buttons.less +7 -4
- data/app/assets/stylesheets/bootstrap/carousel.less +24 -0
- data/app/assets/stylesheets/bootstrap/close.less +0 -0
- data/app/assets/stylesheets/bootstrap/code.less +1 -0
- data/app/assets/stylesheets/bootstrap/component-animations.less +5 -2
- data/app/assets/stylesheets/bootstrap/dropdowns.less +3 -5
- data/app/assets/stylesheets/bootstrap/forms.less +46 -40
- data/app/assets/stylesheets/bootstrap/glyphicons.less +7 -6
- data/app/assets/stylesheets/bootstrap/grid.less +0 -0
- data/app/assets/stylesheets/bootstrap/input-groups.less +0 -0
- data/app/assets/stylesheets/bootstrap/jumbotron.less +6 -5
- data/app/assets/stylesheets/bootstrap/labels.less +0 -0
- data/app/assets/stylesheets/bootstrap/list-group.less +1 -8
- data/app/assets/stylesheets/bootstrap/media.less +27 -36
- data/app/assets/stylesheets/bootstrap/mixins.less +0 -0
- data/app/assets/stylesheets/bootstrap/mixins/alerts.less +0 -0
- data/app/assets/stylesheets/bootstrap/mixins/background-variant.less +0 -0
- data/app/assets/stylesheets/bootstrap/mixins/border-radius.less +0 -0
- data/app/assets/stylesheets/bootstrap/mixins/buttons.less +2 -0
- data/app/assets/stylesheets/bootstrap/mixins/center-block.less +0 -0
- data/app/assets/stylesheets/bootstrap/mixins/clearfix.less +0 -0
- data/app/assets/stylesheets/bootstrap/mixins/forms.less +5 -1
- data/app/assets/stylesheets/bootstrap/mixins/gradients.less +0 -0
- data/app/assets/stylesheets/bootstrap/mixins/grid-framework.less +2 -2
- data/app/assets/stylesheets/bootstrap/mixins/grid.less +0 -0
- data/app/assets/stylesheets/bootstrap/mixins/hide-text.less +0 -0
- data/app/assets/stylesheets/bootstrap/mixins/image.less +0 -1
- data/app/assets/stylesheets/bootstrap/mixins/labels.less +1 -1
- data/app/assets/stylesheets/bootstrap/mixins/list-group.less +0 -0
- data/app/assets/stylesheets/bootstrap/mixins/nav-divider.less +0 -0
- data/app/assets/stylesheets/bootstrap/mixins/nav-vertical-align.less +0 -0
- data/app/assets/stylesheets/bootstrap/mixins/opacity.less +0 -0
- data/app/assets/stylesheets/bootstrap/mixins/pagination.less +0 -0
- data/app/assets/stylesheets/bootstrap/mixins/panels.less +0 -0
- data/app/assets/stylesheets/bootstrap/mixins/progress-bar.less +0 -0
- data/app/assets/stylesheets/bootstrap/mixins/reset-filter.less +0 -0
- data/app/assets/stylesheets/bootstrap/mixins/resize.less +0 -0
- data/app/assets/stylesheets/bootstrap/mixins/responsive-visibility.less +0 -0
- data/app/assets/stylesheets/bootstrap/mixins/size.less +0 -0
- data/app/assets/stylesheets/bootstrap/mixins/tab-focus.less +0 -0
- data/app/assets/stylesheets/bootstrap/mixins/table-row.less +0 -0
- data/app/assets/stylesheets/bootstrap/mixins/text-emphasis.less +0 -0
- data/app/assets/stylesheets/bootstrap/mixins/text-overflow.less +0 -0
- data/app/assets/stylesheets/bootstrap/mixins/vendor-prefixes.less +6 -3
- data/app/assets/stylesheets/bootstrap/modals.less +3 -5
- data/app/assets/stylesheets/bootstrap/navbar.less +30 -25
- data/app/assets/stylesheets/bootstrap/navs.less +3 -1
- data/app/assets/stylesheets/bootstrap/normalize.less +5 -3
- data/app/assets/stylesheets/bootstrap/pager.less +1 -2
- data/app/assets/stylesheets/bootstrap/pagination.less +1 -1
- data/app/assets/stylesheets/bootstrap/panels.less +21 -3
- data/app/assets/stylesheets/bootstrap/popovers.less +6 -4
- data/app/assets/stylesheets/bootstrap/print.less +102 -96
- data/app/assets/stylesheets/bootstrap/progress-bars.less +1 -19
- data/app/assets/stylesheets/bootstrap/responsive-embed.less +2 -1
- data/app/assets/stylesheets/bootstrap/responsive-utilities.less +0 -0
- data/app/assets/stylesheets/bootstrap/scaffolding.less +1 -1
- data/app/assets/stylesheets/bootstrap/tables.less +11 -10
- data/app/assets/stylesheets/bootstrap/theme.less +23 -9
- data/app/assets/stylesheets/bootstrap/thumbnails.less +1 -1
- data/app/assets/stylesheets/bootstrap/tooltip.less +12 -4
- data/app/assets/stylesheets/bootstrap/type.less +0 -11
- data/app/assets/stylesheets/bootstrap/utilities.less +0 -1
- data/app/assets/stylesheets/bootstrap/variables.less +31 -20
- data/app/assets/stylesheets/bootstrap/wells.less +0 -0
- data/lib/bootstrap-on-rails/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e997923a46adb12079aa6f878339da5ccaa385e8
|
4
|
+
data.tar.gz: c505a69b35432c577cbc14872fc986821705ee06
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f6b15ce6077e76c7de3d3ff92c214aa83a72682bc67cf995ba9872537c5f4885ce61a6394868976724ae518856b139fcc30aadb9c10b7f4ab9b98103c95f4148
|
7
|
+
data.tar.gz: 2f44ec621b7b67a8c137adf4ef2cb7af59b57f0dfa2f55b45377ef78ab2e4762c6c6788829b49d4d684cbce78512df0abc0f5ffd5a144743002e9d0054ff4fb2
|
data/README.md
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
A simpler implementation of Bootstap 3 for Rails. Only packaged assets. No bloat. Pure Less.
|
4
4
|
|
5
|
-
* Current Bootstrap Version: 3.
|
5
|
+
* Current Bootstrap Version: 3.3.1
|
6
6
|
* Supports Rails 3.1+ and Rails 4
|
7
7
|
* Less only
|
8
8
|
* Twitter Variables are easily overridable
|
@@ -56,6 +56,10 @@ To add the bootstrap javascript libraries, add to your application.js file
|
|
56
56
|
|
57
57
|
It's important to note that variables.less is taken out of bootstrap and required explicitly to support overriding variables, another motivation why I needed to do this gem.
|
58
58
|
|
59
|
+
## Upgrading
|
60
|
+
|
61
|
+
If you're using your own custom variables.less, once in a while you'll get missing variables. Just in case that happens, just look it up on the main variables.less file here: https://github.com/twbs/bootstrap/blob/master/less/variables.less
|
62
|
+
|
59
63
|
## Notes
|
60
64
|
|
61
65
|
* bootstrap-on-rails now follows the same bootstrap versioning
|
File without changes
|
@@ -226,4 +226,4 @@
|
|
226
226
|
<glyph unicode="" d="M100 200h400v-155l-75 -45h350l-75 45v155h400l-270 300h170l-270 300h170l-300 333l-300 -333h170l-270 -300h170z" />
|
227
227
|
<glyph unicode="" d="M121 700q0 -53 28.5 -97t75.5 -65q-4 -16 -4 -38q0 -74 52.5 -126.5t126.5 -52.5q56 0 100 30v-306l-75 -45h350l-75 45v306q46 -30 100 -30q74 0 126.5 52.5t52.5 126.5q0 24 -9 55q50 32 79.5 83t29.5 112q0 90 -61.5 155.5t-150.5 71.5q-26 89 -99.5 145.5 t-167.5 56.5q-116 0 -197.5 -81.5t-81.5 -197.5q0 -4 1 -11.5t1 -11.5q-14 2 -23 2q-74 0 -126.5 -52.5t-52.5 -126.5z" />
|
228
228
|
</font>
|
229
|
-
</defs></svg>
|
229
|
+
</defs></svg>
|
File without changes
|
File without changes
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/* ========================================================================
|
2
|
-
* Bootstrap: affix.js v3.
|
2
|
+
* Bootstrap: affix.js v3.3.1
|
3
3
|
* http://getbootstrap.com/javascript/#affix
|
4
4
|
* ========================================================================
|
5
5
|
* Copyright 2011-2014 Twitter, Inc.
|
@@ -28,7 +28,7 @@
|
|
28
28
|
this.checkPosition()
|
29
29
|
}
|
30
30
|
|
31
|
-
Affix.VERSION = '3.
|
31
|
+
Affix.VERSION = '3.3.1'
|
32
32
|
|
33
33
|
Affix.RESET = 'affix affix-top affix-bottom'
|
34
34
|
|
@@ -37,6 +37,28 @@
|
|
37
37
|
target: window
|
38
38
|
}
|
39
39
|
|
40
|
+
Affix.prototype.getState = function (scrollHeight, height, offsetTop, offsetBottom) {
|
41
|
+
var scrollTop = this.$target.scrollTop()
|
42
|
+
var position = this.$element.offset()
|
43
|
+
var targetHeight = this.$target.height()
|
44
|
+
|
45
|
+
if (offsetTop != null && this.affixed == 'top') return scrollTop < offsetTop ? 'top' : false
|
46
|
+
|
47
|
+
if (this.affixed == 'bottom') {
|
48
|
+
if (offsetTop != null) return (scrollTop + this.unpin <= position.top) ? false : 'bottom'
|
49
|
+
return (scrollTop + targetHeight <= scrollHeight - offsetBottom) ? false : 'bottom'
|
50
|
+
}
|
51
|
+
|
52
|
+
var initializing = this.affixed == null
|
53
|
+
var colliderTop = initializing ? scrollTop : position.top
|
54
|
+
var colliderHeight = initializing ? targetHeight : height
|
55
|
+
|
56
|
+
if (offsetTop != null && colliderTop <= offsetTop) return 'top'
|
57
|
+
if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom'
|
58
|
+
|
59
|
+
return false
|
60
|
+
}
|
61
|
+
|
40
62
|
Affix.prototype.getPinnedOffset = function () {
|
41
63
|
if (this.pinnedOffset) return this.pinnedOffset
|
42
64
|
this.$element.removeClass(Affix.RESET).addClass('affix')
|
@@ -52,42 +74,40 @@
|
|
52
74
|
Affix.prototype.checkPosition = function () {
|
53
75
|
if (!this.$element.is(':visible')) return
|
54
76
|
|
55
|
-
var
|
56
|
-
var scrollTop = this.$target.scrollTop()
|
57
|
-
var position = this.$element.offset()
|
77
|
+
var height = this.$element.height()
|
58
78
|
var offset = this.options.offset
|
59
79
|
var offsetTop = offset.top
|
60
80
|
var offsetBottom = offset.bottom
|
81
|
+
var scrollHeight = $('body').height()
|
61
82
|
|
62
83
|
if (typeof offset != 'object') offsetBottom = offsetTop = offset
|
63
84
|
if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element)
|
64
85
|
if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element)
|
65
86
|
|
66
|
-
var affix = this.
|
67
|
-
offsetBottom != null && (position.top + this.$element.height() >= scrollHeight - offsetBottom) ? 'bottom' :
|
68
|
-
offsetTop != null && (scrollTop <= offsetTop) ? 'top' : false
|
87
|
+
var affix = this.getState(scrollHeight, height, offsetTop, offsetBottom)
|
69
88
|
|
70
|
-
if (this.affixed
|
71
|
-
|
89
|
+
if (this.affixed != affix) {
|
90
|
+
if (this.unpin != null) this.$element.css('top', '')
|
72
91
|
|
73
|
-
|
74
|
-
|
92
|
+
var affixType = 'affix' + (affix ? '-' + affix : '')
|
93
|
+
var e = $.Event(affixType + '.bs.affix')
|
75
94
|
|
76
|
-
|
95
|
+
this.$element.trigger(e)
|
77
96
|
|
78
|
-
|
97
|
+
if (e.isDefaultPrevented()) return
|
79
98
|
|
80
|
-
|
81
|
-
|
99
|
+
this.affixed = affix
|
100
|
+
this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null
|
82
101
|
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
102
|
+
this.$element
|
103
|
+
.removeClass(Affix.RESET)
|
104
|
+
.addClass(affixType)
|
105
|
+
.trigger(affixType.replace('affix', 'affixed') + '.bs.affix')
|
106
|
+
}
|
87
107
|
|
88
108
|
if (affix == 'bottom') {
|
89
109
|
this.$element.offset({
|
90
|
-
top: scrollHeight -
|
110
|
+
top: scrollHeight - height - offsetBottom
|
91
111
|
})
|
92
112
|
}
|
93
113
|
}
|
@@ -132,8 +152,8 @@
|
|
132
152
|
|
133
153
|
data.offset = data.offset || {}
|
134
154
|
|
135
|
-
if (data.offsetBottom) data.offset.bottom = data.offsetBottom
|
136
|
-
if (data.offsetTop)
|
155
|
+
if (data.offsetBottom != null) data.offset.bottom = data.offsetBottom
|
156
|
+
if (data.offsetTop != null) data.offset.top = data.offsetTop
|
137
157
|
|
138
158
|
Plugin.call($spy, data)
|
139
159
|
})
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/* ========================================================================
|
2
|
-
* Bootstrap: alert.js v3.
|
2
|
+
* Bootstrap: alert.js v3.3.1
|
3
3
|
* http://getbootstrap.com/javascript/#alerts
|
4
4
|
* ========================================================================
|
5
5
|
* Copyright 2011-2014 Twitter, Inc.
|
@@ -18,7 +18,9 @@
|
|
18
18
|
$(el).on('click', dismiss, this.close)
|
19
19
|
}
|
20
20
|
|
21
|
-
Alert.VERSION = '3.
|
21
|
+
Alert.VERSION = '3.3.1'
|
22
|
+
|
23
|
+
Alert.TRANSITION_DURATION = 150
|
22
24
|
|
23
25
|
Alert.prototype.close = function (e) {
|
24
26
|
var $this = $(this)
|
@@ -34,7 +36,7 @@
|
|
34
36
|
if (e) e.preventDefault()
|
35
37
|
|
36
38
|
if (!$parent.length) {
|
37
|
-
$parent = $this.
|
39
|
+
$parent = $this.closest('.alert')
|
38
40
|
}
|
39
41
|
|
40
42
|
$parent.trigger(e = $.Event('close.bs.alert'))
|
@@ -51,7 +53,7 @@
|
|
51
53
|
$.support.transition && $parent.hasClass('fade') ?
|
52
54
|
$parent
|
53
55
|
.one('bsTransitionEnd', removeElement)
|
54
|
-
.emulateTransitionEnd(
|
56
|
+
.emulateTransitionEnd(Alert.TRANSITION_DURATION) :
|
55
57
|
removeElement()
|
56
58
|
}
|
57
59
|
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/* ========================================================================
|
2
|
-
* Bootstrap: button.js v3.
|
2
|
+
* Bootstrap: button.js v3.3.1
|
3
3
|
* http://getbootstrap.com/javascript/#buttons
|
4
4
|
* ========================================================================
|
5
5
|
* Copyright 2011-2014 Twitter, Inc.
|
@@ -19,7 +19,7 @@
|
|
19
19
|
this.isLoading = false
|
20
20
|
}
|
21
21
|
|
22
|
-
Button.VERSION = '3.
|
22
|
+
Button.VERSION = '3.3.1'
|
23
23
|
|
24
24
|
Button.DEFAULTS = {
|
25
25
|
loadingText: 'loading...'
|
@@ -35,10 +35,10 @@
|
|
35
35
|
|
36
36
|
if (data.resetText == null) $el.data('resetText', $el[val]())
|
37
37
|
|
38
|
-
$el[val](data[state] == null ? this.options[state] : data[state])
|
39
|
-
|
40
38
|
// push to event loop to allow forms to submit
|
41
39
|
setTimeout($.proxy(function () {
|
40
|
+
$el[val](data[state] == null ? this.options[state] : data[state])
|
41
|
+
|
42
42
|
if (state == 'loadingText') {
|
43
43
|
this.isLoading = true
|
44
44
|
$el.addClass(d).attr(d, d)
|
@@ -60,6 +60,8 @@
|
|
60
60
|
else $parent.find('.active').removeClass('active')
|
61
61
|
}
|
62
62
|
if (changed) $input.prop('checked', !this.$element.hasClass('active')).trigger('change')
|
63
|
+
} else {
|
64
|
+
this.$element.attr('aria-pressed', !this.$element.hasClass('active'))
|
63
65
|
}
|
64
66
|
|
65
67
|
if (changed) this.$element.toggleClass('active')
|
@@ -100,11 +102,15 @@
|
|
100
102
|
// BUTTON DATA-API
|
101
103
|
// ===============
|
102
104
|
|
103
|
-
$(document)
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
105
|
+
$(document)
|
106
|
+
.on('click.bs.button.data-api', '[data-toggle^="button"]', function (e) {
|
107
|
+
var $btn = $(e.target)
|
108
|
+
if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn')
|
109
|
+
Plugin.call($btn, 'toggle')
|
110
|
+
e.preventDefault()
|
111
|
+
})
|
112
|
+
.on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^="button"]', function (e) {
|
113
|
+
$(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type))
|
114
|
+
})
|
109
115
|
|
110
116
|
}(jQuery);
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/* ========================================================================
|
2
|
-
* Bootstrap: carousel.js v3.
|
2
|
+
* Bootstrap: carousel.js v3.3.1
|
3
3
|
* http://getbootstrap.com/javascript/#carousel
|
4
4
|
* ========================================================================
|
5
5
|
* Copyright 2011-2014 Twitter, Inc.
|
@@ -14,7 +14,7 @@
|
|
14
14
|
// =========================
|
15
15
|
|
16
16
|
var Carousel = function (element, options) {
|
17
|
-
this.$element = $(element)
|
17
|
+
this.$element = $(element)
|
18
18
|
this.$indicators = this.$element.find('.carousel-indicators')
|
19
19
|
this.options = options
|
20
20
|
this.paused =
|
@@ -23,20 +23,26 @@
|
|
23
23
|
this.$active =
|
24
24
|
this.$items = null
|
25
25
|
|
26
|
-
this.options.
|
26
|
+
this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this))
|
27
|
+
|
28
|
+
this.options.pause == 'hover' && !('ontouchstart' in document.documentElement) && this.$element
|
27
29
|
.on('mouseenter.bs.carousel', $.proxy(this.pause, this))
|
28
30
|
.on('mouseleave.bs.carousel', $.proxy(this.cycle, this))
|
29
31
|
}
|
30
32
|
|
31
|
-
Carousel.VERSION = '3.
|
33
|
+
Carousel.VERSION = '3.3.1'
|
34
|
+
|
35
|
+
Carousel.TRANSITION_DURATION = 600
|
32
36
|
|
33
37
|
Carousel.DEFAULTS = {
|
34
38
|
interval: 5000,
|
35
39
|
pause: 'hover',
|
36
|
-
wrap: true
|
40
|
+
wrap: true,
|
41
|
+
keyboard: true
|
37
42
|
}
|
38
43
|
|
39
44
|
Carousel.prototype.keydown = function (e) {
|
45
|
+
if (/input|textarea/i.test(e.target.tagName)) return
|
40
46
|
switch (e.which) {
|
41
47
|
case 37: this.prev(); break
|
42
48
|
case 39: this.next(); break
|
@@ -63,6 +69,13 @@
|
|
63
69
|
return this.$items.index(item || this.$active)
|
64
70
|
}
|
65
71
|
|
72
|
+
Carousel.prototype.getItemForDirection = function (direction, active) {
|
73
|
+
var delta = direction == 'prev' ? -1 : 1
|
74
|
+
var activeIndex = this.getItemIndex(active)
|
75
|
+
var itemIndex = (activeIndex + delta) % this.$items.length
|
76
|
+
return this.$items.eq(itemIndex)
|
77
|
+
}
|
78
|
+
|
66
79
|
Carousel.prototype.to = function (pos) {
|
67
80
|
var that = this
|
68
81
|
var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active'))
|
@@ -72,7 +85,7 @@
|
|
72
85
|
if (this.sliding) return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, "slid"
|
73
86
|
if (activeIndex == pos) return this.pause().cycle()
|
74
87
|
|
75
|
-
return this.slide(pos > activeIndex ? 'next' : 'prev',
|
88
|
+
return this.slide(pos > activeIndex ? 'next' : 'prev', this.$items.eq(pos))
|
76
89
|
}
|
77
90
|
|
78
91
|
Carousel.prototype.pause = function (e) {
|
@@ -100,7 +113,7 @@
|
|
100
113
|
|
101
114
|
Carousel.prototype.slide = function (type, next) {
|
102
115
|
var $active = this.$element.find('.item.active')
|
103
|
-
var $next = next || $active
|
116
|
+
var $next = next || this.getItemForDirection(type, $active)
|
104
117
|
var isCycling = this.interval
|
105
118
|
var direction = type == 'next' ? 'left' : 'right'
|
106
119
|
var fallback = type == 'next' ? 'first' : 'last'
|
@@ -146,7 +159,7 @@
|
|
146
159
|
that.$element.trigger(slidEvent)
|
147
160
|
}, 0)
|
148
161
|
})
|
149
|
-
.emulateTransitionEnd(
|
162
|
+
.emulateTransitionEnd(Carousel.TRANSITION_DURATION)
|
150
163
|
} else {
|
151
164
|
$active.removeClass('active')
|
152
165
|
$next.addClass('active')
|
@@ -195,7 +208,7 @@
|
|
195
208
|
// CAROUSEL DATA-API
|
196
209
|
// =================
|
197
210
|
|
198
|
-
|
211
|
+
var clickHandler = function (e) {
|
199
212
|
var href
|
200
213
|
var $this = $(this)
|
201
214
|
var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) // strip for ie7
|
@@ -211,7 +224,11 @@
|
|
211
224
|
}
|
212
225
|
|
213
226
|
e.preventDefault()
|
214
|
-
}
|
227
|
+
}
|
228
|
+
|
229
|
+
$(document)
|
230
|
+
.on('click.bs.carousel.data-api', '[data-slide]', clickHandler)
|
231
|
+
.on('click.bs.carousel.data-api', '[data-slide-to]', clickHandler)
|
215
232
|
|
216
233
|
$(window).on('load', function () {
|
217
234
|
$('[data-ride="carousel"]').each(function () {
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/* ========================================================================
|
2
|
-
* Bootstrap: collapse.js v3.
|
2
|
+
* Bootstrap: collapse.js v3.3.1
|
3
3
|
* http://getbootstrap.com/javascript/#collapse
|
4
4
|
* ========================================================================
|
5
5
|
* Copyright 2011-2014 Twitter, Inc.
|
@@ -16,16 +16,25 @@
|
|
16
16
|
var Collapse = function (element, options) {
|
17
17
|
this.$element = $(element)
|
18
18
|
this.options = $.extend({}, Collapse.DEFAULTS, options)
|
19
|
+
this.$trigger = $(this.options.trigger).filter('[href="#' + element.id + '"], [data-target="#' + element.id + '"]')
|
19
20
|
this.transitioning = null
|
20
21
|
|
21
|
-
if (this.options.parent)
|
22
|
+
if (this.options.parent) {
|
23
|
+
this.$parent = this.getParent()
|
24
|
+
} else {
|
25
|
+
this.addAriaAndCollapsedClass(this.$element, this.$trigger)
|
26
|
+
}
|
27
|
+
|
22
28
|
if (this.options.toggle) this.toggle()
|
23
29
|
}
|
24
30
|
|
25
|
-
Collapse.VERSION = '3.
|
31
|
+
Collapse.VERSION = '3.3.1'
|
32
|
+
|
33
|
+
Collapse.TRANSITION_DURATION = 350
|
26
34
|
|
27
35
|
Collapse.DEFAULTS = {
|
28
|
-
toggle: true
|
36
|
+
toggle: true,
|
37
|
+
trigger: '[data-toggle="collapse"]'
|
29
38
|
}
|
30
39
|
|
31
40
|
Collapse.prototype.dimension = function () {
|
@@ -36,17 +45,21 @@
|
|
36
45
|
Collapse.prototype.show = function () {
|
37
46
|
if (this.transitioning || this.$element.hasClass('in')) return
|
38
47
|
|
48
|
+
var activesData
|
49
|
+
var actives = this.$parent && this.$parent.find('> .panel').children('.in, .collapsing')
|
50
|
+
|
51
|
+
if (actives && actives.length) {
|
52
|
+
activesData = actives.data('bs.collapse')
|
53
|
+
if (activesData && activesData.transitioning) return
|
54
|
+
}
|
55
|
+
|
39
56
|
var startEvent = $.Event('show.bs.collapse')
|
40
57
|
this.$element.trigger(startEvent)
|
41
58
|
if (startEvent.isDefaultPrevented()) return
|
42
59
|
|
43
|
-
var actives = this.$parent && this.$parent.find('> .panel > .in')
|
44
|
-
|
45
60
|
if (actives && actives.length) {
|
46
|
-
var hasData = actives.data('bs.collapse')
|
47
|
-
if (hasData && hasData.transitioning) return
|
48
61
|
Plugin.call(actives, 'hide')
|
49
|
-
|
62
|
+
activesData || actives.data('bs.collapse', null)
|
50
63
|
}
|
51
64
|
|
52
65
|
var dimension = this.dimension()
|
@@ -54,6 +67,11 @@
|
|
54
67
|
this.$element
|
55
68
|
.removeClass('collapse')
|
56
69
|
.addClass('collapsing')[dimension](0)
|
70
|
+
.attr('aria-expanded', true)
|
71
|
+
|
72
|
+
this.$trigger
|
73
|
+
.removeClass('collapsed')
|
74
|
+
.attr('aria-expanded', true)
|
57
75
|
|
58
76
|
this.transitioning = 1
|
59
77
|
|
@@ -72,7 +90,7 @@
|
|
72
90
|
|
73
91
|
this.$element
|
74
92
|
.one('bsTransitionEnd', $.proxy(complete, this))
|
75
|
-
.emulateTransitionEnd(
|
93
|
+
.emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize])
|
76
94
|
}
|
77
95
|
|
78
96
|
Collapse.prototype.hide = function () {
|
@@ -88,17 +106,21 @@
|
|
88
106
|
|
89
107
|
this.$element
|
90
108
|
.addClass('collapsing')
|
91
|
-
.removeClass('collapse')
|
92
|
-
.
|
109
|
+
.removeClass('collapse in')
|
110
|
+
.attr('aria-expanded', false)
|
111
|
+
|
112
|
+
this.$trigger
|
113
|
+
.addClass('collapsed')
|
114
|
+
.attr('aria-expanded', false)
|
93
115
|
|
94
116
|
this.transitioning = 1
|
95
117
|
|
96
118
|
var complete = function () {
|
97
119
|
this.transitioning = 0
|
98
120
|
this.$element
|
99
|
-
.trigger('hidden.bs.collapse')
|
100
121
|
.removeClass('collapsing')
|
101
122
|
.addClass('collapse')
|
123
|
+
.trigger('hidden.bs.collapse')
|
102
124
|
}
|
103
125
|
|
104
126
|
if (!$.support.transition) return complete.call(this)
|
@@ -106,13 +128,40 @@
|
|
106
128
|
this.$element
|
107
129
|
[dimension](0)
|
108
130
|
.one('bsTransitionEnd', $.proxy(complete, this))
|
109
|
-
.emulateTransitionEnd(
|
131
|
+
.emulateTransitionEnd(Collapse.TRANSITION_DURATION)
|
110
132
|
}
|
111
133
|
|
112
134
|
Collapse.prototype.toggle = function () {
|
113
135
|
this[this.$element.hasClass('in') ? 'hide' : 'show']()
|
114
136
|
}
|
115
137
|
|
138
|
+
Collapse.prototype.getParent = function () {
|
139
|
+
return $(this.options.parent)
|
140
|
+
.find('[data-toggle="collapse"][data-parent="' + this.options.parent + '"]')
|
141
|
+
.each($.proxy(function (i, element) {
|
142
|
+
var $element = $(element)
|
143
|
+
this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element)
|
144
|
+
}, this))
|
145
|
+
.end()
|
146
|
+
}
|
147
|
+
|
148
|
+
Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) {
|
149
|
+
var isOpen = $element.hasClass('in')
|
150
|
+
|
151
|
+
$element.attr('aria-expanded', isOpen)
|
152
|
+
$trigger
|
153
|
+
.toggleClass('collapsed', !isOpen)
|
154
|
+
.attr('aria-expanded', isOpen)
|
155
|
+
}
|
156
|
+
|
157
|
+
function getTargetFromTrigger($trigger) {
|
158
|
+
var href
|
159
|
+
var target = $trigger.attr('data-target')
|
160
|
+
|| (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') // strip for ie7
|
161
|
+
|
162
|
+
return $(target)
|
163
|
+
}
|
164
|
+
|
116
165
|
|
117
166
|
// COLLAPSE PLUGIN DEFINITION
|
118
167
|
// ==========================
|
@@ -123,7 +172,7 @@
|
|
123
172
|
var data = $this.data('bs.collapse')
|
124
173
|
var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option)
|
125
174
|
|
126
|
-
if (!data && options.toggle && option == 'show')
|
175
|
+
if (!data && options.toggle && option == 'show') options.toggle = false
|
127
176
|
if (!data) $this.data('bs.collapse', (data = new Collapse(this, options)))
|
128
177
|
if (typeof option == 'string') data[option]()
|
129
178
|
})
|
@@ -148,21 +197,13 @@
|
|
148
197
|
// =================
|
149
198
|
|
150
199
|
$(document).on('click.bs.collapse.data-api', '[data-toggle="collapse"]', function (e) {
|
151
|
-
var href
|
152
200
|
var $this = $(this)
|
153
|
-
var target = $this.attr('data-target')
|
154
|
-
|| e.preventDefault()
|
155
|
-
|| (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') // strip for ie7
|
156
|
-
var $target = $(target)
|
157
|
-
var data = $target.data('bs.collapse')
|
158
|
-
var option = data ? 'toggle' : $this.data()
|
159
|
-
var parent = $this.attr('data-parent')
|
160
|
-
var $parent = parent && $(parent)
|
161
201
|
|
162
|
-
if (
|
163
|
-
|
164
|
-
|
165
|
-
|
202
|
+
if (!$this.attr('data-target')) e.preventDefault()
|
203
|
+
|
204
|
+
var $target = getTargetFromTrigger($this)
|
205
|
+
var data = $target.data('bs.collapse')
|
206
|
+
var option = data ? 'toggle' : $.extend({}, $this.data(), { trigger: this })
|
166
207
|
|
167
208
|
Plugin.call($target, option)
|
168
209
|
})
|