twitter_bootstrap_markup 0.0.2 → 0.0.3
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.
- data/lib/twitter_bootstrap_markup.rb +7 -0
- data/lib/twitter_bootstrap_markup/alert.rb +1 -1
- data/lib/twitter_bootstrap_markup/badge.rb +2 -1
- data/lib/twitter_bootstrap_markup/button.rb +2 -1
- data/lib/twitter_bootstrap_markup/button_base.rb +27 -23
- data/lib/twitter_bootstrap_markup/dropdown_link.rb +30 -0
- data/lib/twitter_bootstrap_markup/input.rb +3 -9
- data/lib/twitter_bootstrap_markup/input_size.rb +22 -0
- data/lib/twitter_bootstrap_markup/label.rb +2 -1
- data/lib/twitter_bootstrap_markup/label_base.rb +13 -9
- data/lib/twitter_bootstrap_markup/link_button.rb +2 -1
- data/lib/twitter_bootstrap_markup/nav_bar.rb +8 -6
- data/lib/twitter_bootstrap_markup/nav_list.rb +9 -4
- data/lib/twitter_bootstrap_markup/select.rb +2 -14
- data/lib/twitter_bootstrap_markup/tag.rb +12 -2
- data/lib/twitter_bootstrap_markup/tag_builder.rb +22 -0
- data/lib/twitter_bootstrap_markup/textarea.rb +15 -0
- data/lib/twitter_bootstrap_markup/ul_container.rb +9 -2
- data/lib/twitter_bootstrap_markup/version.rb +1 -1
- data/markup/alerts.html +1 -1
- data/markup/css/bootstrap.css +3451 -3520
- data/markup/css/bootstrap.min.css +719 -1
- data/markup/dropdown_links.html +112 -0
- data/markup/index.html +14 -12
- data/markup/js/bootstrap.js +856 -845
- data/markup/js/bootstrap.min.js +3 -2
- data/markup/textareas.html +90 -0
- data/spec/dropdown_link_spec.rb +48 -0
- data/spec/nav_bar_spec.rb +11 -0
- data/spec/nav_list_spec.rb +14 -1
- data/spec/select_spec.rb +2 -3
- data/spec/tag_builder_spec.rb +38 -0
- data/spec/tag_spec.rb +12 -0
- data/spec/text_area_spec.rb +43 -0
- data/spec/textbox_spec.rb +2 -2
- data/twitter_bootstrap_markup.gemspec +2 -0
- metadata +26 -6
@@ -0,0 +1,112 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html lang="en">
|
3
|
+
<head>
|
4
|
+
<title>Twitter Bootstrap Markup</title>
|
5
|
+
<!--[if lt IE 9]>
|
6
|
+
<script src='http://html5shim.googlecode/svn/trunk/html5.js' type='text/javascript'></script>
|
7
|
+
<![endif]-->
|
8
|
+
<link href="css/bootstrap.css" media="screen" rel="stylesheet" type="text/css" />
|
9
|
+
<meta content='width=device-width, initial-scale=1.0' name='viewport'>
|
10
|
+
</head>
|
11
|
+
<body>
|
12
|
+
<div class="container">
|
13
|
+
<h2>Dropdown Links</h2>
|
14
|
+
<table class="table table-bordered table-striped">
|
15
|
+
<thead>
|
16
|
+
<tr>
|
17
|
+
<th class="span2">Name</th>
|
18
|
+
<th>Component</th>
|
19
|
+
</tr>
|
20
|
+
</thead>
|
21
|
+
<tbody>
|
22
|
+
<tr>
|
23
|
+
<td>Default</td>
|
24
|
+
<td id="default">
|
25
|
+
<div class="dropdown">
|
26
|
+
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
27
|
+
Select option
|
28
|
+
<span class="caret"></span>
|
29
|
+
</a>
|
30
|
+
<ul class="dropdown-menu">
|
31
|
+
<li>
|
32
|
+
<a href="#1">Option 1</a>
|
33
|
+
</li>
|
34
|
+
<li>
|
35
|
+
<a href="#2">Option 2</a>
|
36
|
+
</li>
|
37
|
+
</ul>
|
38
|
+
</div>
|
39
|
+
</td>
|
40
|
+
</tr>
|
41
|
+
<tr>
|
42
|
+
<td>Image</td>
|
43
|
+
<td id="image">
|
44
|
+
<div class="dropdown">
|
45
|
+
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
46
|
+
Select option
|
47
|
+
<span class="caret"></span>
|
48
|
+
</a>
|
49
|
+
<ul class="dropdown-menu">
|
50
|
+
<li>
|
51
|
+
<a href="#1">
|
52
|
+
<i class="icon-search"></i>
|
53
|
+
Option 1
|
54
|
+
</a>
|
55
|
+
</li>
|
56
|
+
<li>
|
57
|
+
<a href="#2">
|
58
|
+
<i class="icon-star"></i>
|
59
|
+
Option 2
|
60
|
+
</a>
|
61
|
+
</li>
|
62
|
+
</ul>
|
63
|
+
</div>
|
64
|
+
</td>
|
65
|
+
</tr>
|
66
|
+
<tr>
|
67
|
+
<td>Divider</td>
|
68
|
+
<td id="divider">
|
69
|
+
<div class="dropdown">
|
70
|
+
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
71
|
+
Select option
|
72
|
+
<span class="caret"></span>
|
73
|
+
</a>
|
74
|
+
<ul class="dropdown-menu">
|
75
|
+
<li>
|
76
|
+
<a href="#1">Option 1</a>
|
77
|
+
</li>
|
78
|
+
<li class="divider">
|
79
|
+
<li>
|
80
|
+
<a href="#2">Option 2</a>
|
81
|
+
</li>
|
82
|
+
</ul>
|
83
|
+
</div>
|
84
|
+
</td>
|
85
|
+
</tr>
|
86
|
+
<tr>
|
87
|
+
<td>Nav Item</td>
|
88
|
+
<td id="nav_item">
|
89
|
+
<li class="dropdown">
|
90
|
+
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
91
|
+
Select option
|
92
|
+
<span class="caret"></span>
|
93
|
+
</a>
|
94
|
+
<ul class="dropdown-menu">
|
95
|
+
<li>
|
96
|
+
<a href="#1">Option 1</a>
|
97
|
+
</li>
|
98
|
+
<li>
|
99
|
+
<a href="#2">Option 2</a>
|
100
|
+
</li>
|
101
|
+
</ul>
|
102
|
+
</li>
|
103
|
+
</td>
|
104
|
+
</tr>
|
105
|
+
</tbody>
|
106
|
+
</table>
|
107
|
+
<a href="index.html">back to index</a>
|
108
|
+
</div>
|
109
|
+
<script src="js/jquery-1.7.2.js" type="text/javascript"></script>
|
110
|
+
<script src="js/bootstrap.js" type="text/javascript"></script>
|
111
|
+
</body>
|
112
|
+
</html>
|
data/markup/index.html
CHANGED
@@ -11,26 +11,28 @@
|
|
11
11
|
<body>
|
12
12
|
<div class="container">
|
13
13
|
<h2>Componentes</h2>
|
14
|
-
<p><a href="
|
14
|
+
<p><a href="alerts.html">Alerts</a></p>
|
15
|
+
<p><a href="badges.html">Badges</a></p>
|
16
|
+
<p><a href="breadcrumbs.html">Breadcrumbs</a></p>
|
15
17
|
<p><a href="buttons.html">Buttons</a></p>
|
16
|
-
<p><a href="
|
18
|
+
<p><a href="control_groups.html">Control group</a></p>
|
17
19
|
<p><a href="dropdown_buttons.html">Dropdown Buttons</a></p>
|
18
|
-
<p><a href="
|
20
|
+
<p><a href="dropdown_links.html">Dropdown Links</a></p>
|
19
21
|
<p><a href="forms.html">Forms</a></p>
|
20
|
-
<p><a href="control_groups.html">Control group</a></p>
|
21
|
-
<p><a href="selects.html">Selects</a></p>
|
22
|
-
<p><a href="textboxes.html">Texboxes</a></p>
|
23
22
|
<p><a href="form_fields.html">Form fields</a></p>
|
24
|
-
<p><a href="
|
25
|
-
<p><a href="nav_bars.html">Nav Bars</a></p>
|
23
|
+
<p><a href="grid_system.html">Grid system</a></p>
|
26
24
|
<p><a href="labels.html">Labels</a></p>
|
27
|
-
<p><a href="
|
28
|
-
<p><a href="
|
25
|
+
<p><a href="link_buttons.html">Link Buttons</a></p>
|
26
|
+
<p><a href="nav_bars.html">Nav Bars</a></p>
|
27
|
+
<p><a href="nav_lists.html">Nav Lists</a></p>
|
29
28
|
<p><a href="paginations.html">Paginations</a></p>
|
30
|
-
<p><a href="progress_bars.html">Progress bars</a></p>
|
31
|
-
<p><a href="tooltips.html">Tooltips</a></p>
|
32
29
|
<p><a href="popovers.html">Popovers</a></p>
|
30
|
+
<p><a href="progress_bars.html">Progress bars</a></p>
|
31
|
+
<p><a href="selects.html">Selects</a></p>
|
33
32
|
<p><a href="tabs.html">Tabs</a></p>
|
33
|
+
<p><a href="textareas.html">Textareas</a></p>
|
34
|
+
<p><a href="textboxes.html">Textboxes</a></p>
|
35
|
+
<p><a href="tooltips.html">Tooltips</a></p>
|
34
36
|
</div>
|
35
37
|
<script src="js/bootstrap.js" type="text/javascript"></script>
|
36
38
|
</body>
|
data/markup/js/bootstrap.js
CHANGED
@@ -58,10 +58,11 @@
|
|
58
58
|
|
59
59
|
})
|
60
60
|
|
61
|
-
}(window.jQuery)
|
62
|
-
|
63
|
-
*
|
64
|
-
*
|
61
|
+
}(window.jQuery);
|
62
|
+
/* =========================================================
|
63
|
+
* bootstrap-modal.js v2.0.4
|
64
|
+
* http://twitter.github.com/bootstrap/javascript.html#modals
|
65
|
+
* =========================================================
|
65
66
|
* Copyright 2012 Twitter, Inc.
|
66
67
|
*
|
67
68
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
@@ -75,7 +76,7 @@
|
|
75
76
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
76
77
|
* See the License for the specific language governing permissions and
|
77
78
|
* limitations under the License.
|
78
|
-
*
|
79
|
+
* ========================================================= */
|
79
80
|
|
80
81
|
|
81
82
|
!function ($) {
|
@@ -83,73 +84,202 @@
|
|
83
84
|
"use strict"; // jshint ;_;
|
84
85
|
|
85
86
|
|
86
|
-
/*
|
87
|
+
/* MODAL CLASS DEFINITION
|
87
88
|
* ====================== */
|
88
89
|
|
89
|
-
var
|
90
|
-
|
91
|
-
|
90
|
+
var Modal = function (content, options) {
|
91
|
+
this.options = options
|
92
|
+
this.$element = $(content)
|
93
|
+
.delegate('[data-dismiss="modal"]', 'click.dismiss.modal', $.proxy(this.hide, this))
|
94
|
+
}
|
95
|
+
|
96
|
+
Modal.prototype = {
|
97
|
+
|
98
|
+
constructor: Modal
|
99
|
+
|
100
|
+
, toggle: function () {
|
101
|
+
return this[!this.isShown ? 'show' : 'hide']()
|
92
102
|
}
|
93
103
|
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
, $parent
|
104
|
+
, show: function () {
|
105
|
+
var that = this
|
106
|
+
, e = $.Event('show')
|
98
107
|
|
99
|
-
|
100
|
-
selector = $this.attr('href')
|
101
|
-
selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
|
102
|
-
}
|
108
|
+
this.$element.trigger(e)
|
103
109
|
|
104
|
-
|
110
|
+
if (this.isShown || e.isDefaultPrevented()) return
|
105
111
|
|
106
|
-
|
112
|
+
$('body').addClass('modal-open')
|
107
113
|
|
108
|
-
|
114
|
+
this.isShown = true
|
109
115
|
|
110
|
-
|
116
|
+
escape.call(this)
|
117
|
+
backdrop.call(this, function () {
|
118
|
+
var transition = $.support.transition && that.$element.hasClass('fade')
|
111
119
|
|
112
|
-
|
120
|
+
if (!that.$element.parent().length) {
|
121
|
+
that.$element.appendTo(document.body) //don't move modals dom position
|
122
|
+
}
|
113
123
|
|
114
|
-
|
124
|
+
that.$element
|
125
|
+
.show()
|
115
126
|
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
127
|
+
if (transition) {
|
128
|
+
that.$element[0].offsetWidth // force reflow
|
129
|
+
}
|
130
|
+
|
131
|
+
that.$element.addClass('in')
|
132
|
+
|
133
|
+
transition ?
|
134
|
+
that.$element.one($.support.transition.end, function () { that.$element.trigger('shown') }) :
|
135
|
+
that.$element.trigger('shown')
|
136
|
+
|
137
|
+
})
|
138
|
+
}
|
139
|
+
|
140
|
+
, hide: function (e) {
|
141
|
+
e && e.preventDefault()
|
142
|
+
|
143
|
+
var that = this
|
144
|
+
|
145
|
+
e = $.Event('hide')
|
146
|
+
|
147
|
+
this.$element.trigger(e)
|
148
|
+
|
149
|
+
if (!this.isShown || e.isDefaultPrevented()) return
|
150
|
+
|
151
|
+
this.isShown = false
|
152
|
+
|
153
|
+
$('body').removeClass('modal-open')
|
154
|
+
|
155
|
+
escape.call(this)
|
156
|
+
|
157
|
+
this.$element.removeClass('in')
|
158
|
+
|
159
|
+
$.support.transition && this.$element.hasClass('fade') ?
|
160
|
+
hideWithTransition.call(this) :
|
161
|
+
hideModal.call(this)
|
162
|
+
}
|
163
|
+
|
164
|
+
}
|
165
|
+
|
166
|
+
|
167
|
+
/* MODAL PRIVATE METHODS
|
168
|
+
* ===================== */
|
169
|
+
|
170
|
+
function hideWithTransition() {
|
171
|
+
var that = this
|
172
|
+
, timeout = setTimeout(function () {
|
173
|
+
that.$element.off($.support.transition.end)
|
174
|
+
hideModal.call(that)
|
175
|
+
}, 500)
|
176
|
+
|
177
|
+
this.$element.one($.support.transition.end, function () {
|
178
|
+
clearTimeout(timeout)
|
179
|
+
hideModal.call(that)
|
180
|
+
})
|
181
|
+
}
|
182
|
+
|
183
|
+
function hideModal(that) {
|
184
|
+
this.$element
|
185
|
+
.hide()
|
186
|
+
.trigger('hidden')
|
187
|
+
|
188
|
+
backdrop.call(this)
|
189
|
+
}
|
190
|
+
|
191
|
+
function backdrop(callback) {
|
192
|
+
var that = this
|
193
|
+
, animate = this.$element.hasClass('fade') ? 'fade' : ''
|
194
|
+
|
195
|
+
if (this.isShown && this.options.backdrop) {
|
196
|
+
var doAnimate = $.support.transition && animate
|
197
|
+
|
198
|
+
this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />')
|
199
|
+
.appendTo(document.body)
|
200
|
+
|
201
|
+
if (this.options.backdrop != 'static') {
|
202
|
+
this.$backdrop.click($.proxy(this.hide, this))
|
203
|
+
}
|
204
|
+
|
205
|
+
if (doAnimate) this.$backdrop[0].offsetWidth // force reflow
|
206
|
+
|
207
|
+
this.$backdrop.addClass('in')
|
208
|
+
|
209
|
+
doAnimate ?
|
210
|
+
this.$backdrop.one($.support.transition.end, callback) :
|
211
|
+
callback()
|
212
|
+
|
213
|
+
} else if (!this.isShown && this.$backdrop) {
|
214
|
+
this.$backdrop.removeClass('in')
|
215
|
+
|
216
|
+
$.support.transition && this.$element.hasClass('fade')?
|
217
|
+
this.$backdrop.one($.support.transition.end, $.proxy(removeBackdrop, this)) :
|
218
|
+
removeBackdrop.call(this)
|
219
|
+
|
220
|
+
} else if (callback) {
|
221
|
+
callback()
|
120
222
|
}
|
223
|
+
}
|
121
224
|
|
122
|
-
|
123
|
-
|
124
|
-
|
225
|
+
function removeBackdrop() {
|
226
|
+
this.$backdrop.remove()
|
227
|
+
this.$backdrop = null
|
228
|
+
}
|
229
|
+
|
230
|
+
function escape() {
|
231
|
+
var that = this
|
232
|
+
if (this.isShown && this.options.keyboard) {
|
233
|
+
$(document).on('keyup.dismiss.modal', function ( e ) {
|
234
|
+
e.which == 27 && that.hide()
|
235
|
+
})
|
236
|
+
} else if (!this.isShown) {
|
237
|
+
$(document).off('keyup.dismiss.modal')
|
238
|
+
}
|
125
239
|
}
|
126
240
|
|
127
241
|
|
128
|
-
/*
|
242
|
+
/* MODAL PLUGIN DEFINITION
|
129
243
|
* ======================= */
|
130
244
|
|
131
|
-
$.fn.
|
245
|
+
$.fn.modal = function (option) {
|
132
246
|
return this.each(function () {
|
133
247
|
var $this = $(this)
|
134
|
-
, data = $this.data('
|
135
|
-
|
136
|
-
if (
|
248
|
+
, data = $this.data('modal')
|
249
|
+
, options = $.extend({}, $.fn.modal.defaults, $this.data(), typeof option == 'object' && option)
|
250
|
+
if (!data) $this.data('modal', (data = new Modal(this, options)))
|
251
|
+
if (typeof option == 'string') data[option]()
|
252
|
+
else if (options.show) data.show()
|
137
253
|
})
|
138
254
|
}
|
139
255
|
|
140
|
-
$.fn.
|
256
|
+
$.fn.modal.defaults = {
|
257
|
+
backdrop: true
|
258
|
+
, keyboard: true
|
259
|
+
, show: true
|
260
|
+
}
|
141
261
|
|
262
|
+
$.fn.modal.Constructor = Modal
|
142
263
|
|
143
|
-
|
264
|
+
|
265
|
+
/* MODAL DATA-API
|
144
266
|
* ============== */
|
145
267
|
|
146
268
|
$(function () {
|
147
|
-
$('body').on('click.
|
269
|
+
$('body').on('click.modal.data-api', '[data-toggle="modal"]', function ( e ) {
|
270
|
+
var $this = $(this), href
|
271
|
+
, $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
|
272
|
+
, option = $target.data('modal') ? 'toggle' : $.extend({}, $target.data(), $this.data())
|
273
|
+
|
274
|
+
e.preventDefault()
|
275
|
+
$target.modal(option)
|
276
|
+
})
|
148
277
|
})
|
149
278
|
|
150
|
-
}(window.jQuery)
|
151
|
-
|
152
|
-
*
|
279
|
+
}(window.jQuery);
|
280
|
+
/* ============================================================
|
281
|
+
* bootstrap-dropdown.js v2.0.4
|
282
|
+
* http://twitter.github.com/bootstrap/javascript.html#dropdowns
|
153
283
|
* ============================================================
|
154
284
|
* Copyright 2012 Twitter, Inc.
|
155
285
|
*
|
@@ -172,80 +302,85 @@
|
|
172
302
|
"use strict"; // jshint ;_;
|
173
303
|
|
174
304
|
|
175
|
-
/*
|
176
|
-
*
|
305
|
+
/* DROPDOWN CLASS DEFINITION
|
306
|
+
* ========================= */
|
177
307
|
|
178
|
-
var
|
179
|
-
|
180
|
-
|
181
|
-
|
308
|
+
var toggle = '[data-toggle="dropdown"]'
|
309
|
+
, Dropdown = function (element) {
|
310
|
+
var $el = $(element).on('click.dropdown.data-api', this.toggle)
|
311
|
+
$('html').on('click.dropdown.data-api', function () {
|
312
|
+
$el.parent().removeClass('open')
|
313
|
+
})
|
314
|
+
}
|
182
315
|
|
183
|
-
|
184
|
-
var d = 'disabled'
|
185
|
-
, $el = this.$element
|
186
|
-
, data = $el.data()
|
187
|
-
, val = $el.is('input') ? 'val' : 'html'
|
316
|
+
Dropdown.prototype = {
|
188
317
|
|
189
|
-
|
190
|
-
data.resetText || $el.data('resetText', $el[val]())
|
318
|
+
constructor: Dropdown
|
191
319
|
|
192
|
-
|
320
|
+
, toggle: function (e) {
|
321
|
+
var $this = $(this)
|
322
|
+
, $parent
|
323
|
+
, selector
|
324
|
+
, isActive
|
193
325
|
|
194
|
-
|
195
|
-
setTimeout(function () {
|
196
|
-
state == 'loadingText' ?
|
197
|
-
$el.addClass(d).attr(d, d) :
|
198
|
-
$el.removeClass(d).removeAttr(d)
|
199
|
-
}, 0)
|
200
|
-
}
|
326
|
+
if ($this.is('.disabled, :disabled')) return
|
201
327
|
|
202
|
-
|
203
|
-
var $parent = this.$element.parent('[data-toggle="buttons-radio"]')
|
328
|
+
selector = $this.attr('data-target')
|
204
329
|
|
205
|
-
|
206
|
-
|
207
|
-
|
330
|
+
if (!selector) {
|
331
|
+
selector = $this.attr('href')
|
332
|
+
selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
|
333
|
+
}
|
208
334
|
|
209
|
-
|
335
|
+
$parent = $(selector)
|
336
|
+
$parent.length || ($parent = $this.parent())
|
337
|
+
|
338
|
+
isActive = $parent.hasClass('open')
|
339
|
+
|
340
|
+
clearMenus()
|
341
|
+
|
342
|
+
if (!isActive) $parent.toggleClass('open')
|
343
|
+
|
344
|
+
return false
|
345
|
+
}
|
346
|
+
|
347
|
+
}
|
348
|
+
|
349
|
+
function clearMenus() {
|
350
|
+
$(toggle).parent().removeClass('open')
|
210
351
|
}
|
211
352
|
|
212
353
|
|
213
|
-
|
214
|
-
|
354
|
+
/* DROPDOWN PLUGIN DEFINITION
|
355
|
+
* ========================== */
|
215
356
|
|
216
|
-
$.fn.
|
357
|
+
$.fn.dropdown = function (option) {
|
217
358
|
return this.each(function () {
|
218
359
|
var $this = $(this)
|
219
|
-
, data = $this.data('
|
220
|
-
|
221
|
-
if (
|
222
|
-
if (option == 'toggle') data.toggle()
|
223
|
-
else if (option) data.setState(option)
|
360
|
+
, data = $this.data('dropdown')
|
361
|
+
if (!data) $this.data('dropdown', (data = new Dropdown(this)))
|
362
|
+
if (typeof option == 'string') data[option].call($this)
|
224
363
|
})
|
225
364
|
}
|
226
365
|
|
227
|
-
$.fn.
|
228
|
-
loadingText: 'loading...'
|
229
|
-
}
|
230
|
-
|
231
|
-
$.fn.button.Constructor = Button
|
366
|
+
$.fn.dropdown.Constructor = Dropdown
|
232
367
|
|
233
368
|
|
234
|
-
|
235
|
-
|
369
|
+
/* APPLY TO STANDARD DROPDOWN ELEMENTS
|
370
|
+
* =================================== */
|
236
371
|
|
237
372
|
$(function () {
|
238
|
-
$('
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
})
|
373
|
+
$('html').on('click.dropdown.data-api', clearMenus)
|
374
|
+
$('body')
|
375
|
+
.on('click.dropdown', '.dropdown form', function (e) { e.stopPropagation() })
|
376
|
+
.on('click.dropdown.data-api', toggle, Dropdown.prototype.toggle)
|
243
377
|
})
|
244
378
|
|
245
|
-
}(window.jQuery)
|
246
|
-
|
247
|
-
*
|
248
|
-
*
|
379
|
+
}(window.jQuery);
|
380
|
+
/* =============================================================
|
381
|
+
* bootstrap-scrollspy.js v2.0.4
|
382
|
+
* http://twitter.github.com/bootstrap/javascript.html#scrollspy
|
383
|
+
* =============================================================
|
249
384
|
* Copyright 2012 Twitter, Inc.
|
250
385
|
*
|
251
386
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
@@ -259,7 +394,7 @@
|
|
259
394
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
260
395
|
* See the License for the specific language governing permissions and
|
261
396
|
* limitations under the License.
|
262
|
-
*
|
397
|
+
* ============================================================== */
|
263
398
|
|
264
399
|
|
265
400
|
!function ($) {
|
@@ -267,153 +402,136 @@
|
|
267
402
|
"use strict"; // jshint ;_;
|
268
403
|
|
269
404
|
|
270
|
-
|
271
|
-
|
405
|
+
/* SCROLLSPY CLASS DEFINITION
|
406
|
+
* ========================== */
|
272
407
|
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
this.options
|
278
|
-
|
279
|
-
|
408
|
+
function ScrollSpy( element, options) {
|
409
|
+
var process = $.proxy(this.process, this)
|
410
|
+
, $element = $(element).is('body') ? $(window) : $(element)
|
411
|
+
, href
|
412
|
+
this.options = $.extend({}, $.fn.scrollspy.defaults, options)
|
413
|
+
this.$scrollElement = $element.on('scroll.scroll.data-api', process)
|
414
|
+
this.selector = (this.options.target
|
415
|
+
|| ((href = $(element).attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
|
416
|
+
|| '') + ' .nav li > a'
|
417
|
+
this.$body = $('body')
|
418
|
+
this.refresh()
|
419
|
+
this.process()
|
280
420
|
}
|
281
421
|
|
282
|
-
|
283
|
-
|
284
|
-
cycle: function (e) {
|
285
|
-
if (!e) this.paused = false
|
286
|
-
this.options.interval
|
287
|
-
&& !this.paused
|
288
|
-
&& (this.interval = setInterval($.proxy(this.next, this), this.options.interval))
|
289
|
-
return this
|
290
|
-
}
|
422
|
+
ScrollSpy.prototype = {
|
291
423
|
|
292
|
-
|
293
|
-
var $active = this.$element.find('.active')
|
294
|
-
, children = $active.parent().children()
|
295
|
-
, activePos = children.index($active)
|
296
|
-
, that = this
|
424
|
+
constructor: ScrollSpy
|
297
425
|
|
298
|
-
|
426
|
+
, refresh: function () {
|
427
|
+
var self = this
|
428
|
+
, $targets
|
299
429
|
|
300
|
-
|
301
|
-
|
302
|
-
that.to(pos)
|
303
|
-
})
|
304
|
-
}
|
430
|
+
this.offsets = $([])
|
431
|
+
this.targets = $([])
|
305
432
|
|
306
|
-
|
307
|
-
|
433
|
+
$targets = this.$body
|
434
|
+
.find(this.selector)
|
435
|
+
.map(function () {
|
436
|
+
var $el = $(this)
|
437
|
+
, href = $el.data('target') || $el.attr('href')
|
438
|
+
, $href = /^#\w/.test(href) && $(href)
|
439
|
+
return ( $href
|
440
|
+
&& href.length
|
441
|
+
&& [[ $href.position().top, href ]] ) || null
|
442
|
+
})
|
443
|
+
.sort(function (a, b) { return a[0] - b[0] })
|
444
|
+
.each(function () {
|
445
|
+
self.offsets.push(this[0])
|
446
|
+
self.targets.push(this[1])
|
447
|
+
})
|
308
448
|
}
|
309
449
|
|
310
|
-
|
311
|
-
|
450
|
+
, process: function () {
|
451
|
+
var scrollTop = this.$scrollElement.scrollTop() + this.options.offset
|
452
|
+
, scrollHeight = this.$scrollElement[0].scrollHeight || this.$body[0].scrollHeight
|
453
|
+
, maxScroll = scrollHeight - this.$scrollElement.height()
|
454
|
+
, offsets = this.offsets
|
455
|
+
, targets = this.targets
|
456
|
+
, activeTarget = this.activeTarget
|
457
|
+
, i
|
312
458
|
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
return this
|
318
|
-
}
|
459
|
+
if (scrollTop >= maxScroll) {
|
460
|
+
return activeTarget != (i = targets.last()[0])
|
461
|
+
&& this.activate ( i )
|
462
|
+
}
|
319
463
|
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
464
|
+
for (i = offsets.length; i--;) {
|
465
|
+
activeTarget != targets[i]
|
466
|
+
&& scrollTop >= offsets[i]
|
467
|
+
&& (!offsets[i + 1] || scrollTop <= offsets[i + 1])
|
468
|
+
&& this.activate( targets[i] )
|
469
|
+
}
|
470
|
+
}
|
324
471
|
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
}
|
472
|
+
, activate: function (target) {
|
473
|
+
var active
|
474
|
+
, selector
|
329
475
|
|
330
|
-
|
331
|
-
var $active = this.$element.find('.active')
|
332
|
-
, $next = next || $active[type]()
|
333
|
-
, isCycling = this.interval
|
334
|
-
, direction = type == 'next' ? 'left' : 'right'
|
335
|
-
, fallback = type == 'next' ? 'first' : 'last'
|
336
|
-
, that = this
|
337
|
-
, e = $.Event('slide')
|
476
|
+
this.activeTarget = target
|
338
477
|
|
339
|
-
|
478
|
+
$(this.selector)
|
479
|
+
.parent('.active')
|
480
|
+
.removeClass('active')
|
340
481
|
|
341
|
-
|
482
|
+
selector = this.selector
|
483
|
+
+ '[data-target="' + target + '"],'
|
484
|
+
+ this.selector + '[href="' + target + '"]'
|
342
485
|
|
343
|
-
|
486
|
+
active = $(selector)
|
487
|
+
.parent('li')
|
488
|
+
.addClass('active')
|
344
489
|
|
345
|
-
|
490
|
+
if (active.parent('.dropdown-menu')) {
|
491
|
+
active = active.closest('li.dropdown').addClass('active')
|
492
|
+
}
|
346
493
|
|
347
|
-
|
348
|
-
this.$element.trigger(e)
|
349
|
-
if (e.isDefaultPrevented()) return
|
350
|
-
$next.addClass(type)
|
351
|
-
$next[0].offsetWidth // force reflow
|
352
|
-
$active.addClass(direction)
|
353
|
-
$next.addClass(direction)
|
354
|
-
this.$element.one($.support.transition.end, function () {
|
355
|
-
$next.removeClass([type, direction].join(' ')).addClass('active')
|
356
|
-
$active.removeClass(['active', direction].join(' '))
|
357
|
-
that.sliding = false
|
358
|
-
setTimeout(function () { that.$element.trigger('slid') }, 0)
|
359
|
-
})
|
360
|
-
} else {
|
361
|
-
this.$element.trigger(e)
|
362
|
-
if (e.isDefaultPrevented()) return
|
363
|
-
$active.removeClass('active')
|
364
|
-
$next.addClass('active')
|
365
|
-
this.sliding = false
|
366
|
-
this.$element.trigger('slid')
|
494
|
+
active.trigger('activate')
|
367
495
|
}
|
368
496
|
|
369
|
-
isCycling && this.cycle()
|
370
|
-
|
371
|
-
return this
|
372
|
-
}
|
373
|
-
|
374
497
|
}
|
375
498
|
|
376
499
|
|
377
|
-
/*
|
378
|
-
*
|
500
|
+
/* SCROLLSPY PLUGIN DEFINITION
|
501
|
+
* =========================== */
|
379
502
|
|
380
|
-
$.fn.
|
503
|
+
$.fn.scrollspy = function ( option ) {
|
381
504
|
return this.each(function () {
|
382
505
|
var $this = $(this)
|
383
|
-
, data = $this.data('
|
384
|
-
, options =
|
385
|
-
if (!data) $this.data('
|
386
|
-
if (typeof option == '
|
387
|
-
else if (typeof option == 'string' || (option = options.slide)) data[option]()
|
388
|
-
else if (options.interval) data.cycle()
|
506
|
+
, data = $this.data('scrollspy')
|
507
|
+
, options = typeof option == 'object' && option
|
508
|
+
if (!data) $this.data('scrollspy', (data = new ScrollSpy(this, options)))
|
509
|
+
if (typeof option == 'string') data[option]()
|
389
510
|
})
|
390
511
|
}
|
391
512
|
|
392
|
-
$.fn.
|
393
|
-
interval: 5000
|
394
|
-
, pause: 'hover'
|
395
|
-
}
|
513
|
+
$.fn.scrollspy.Constructor = ScrollSpy
|
396
514
|
|
397
|
-
$.fn.
|
515
|
+
$.fn.scrollspy.defaults = {
|
516
|
+
offset: 10
|
517
|
+
}
|
398
518
|
|
399
519
|
|
400
|
-
/*
|
401
|
-
*
|
520
|
+
/* SCROLLSPY DATA-API
|
521
|
+
* ================== */
|
402
522
|
|
403
523
|
$(function () {
|
404
|
-
$('
|
405
|
-
var $
|
406
|
-
|
407
|
-
, options = !$target.data('modal') && $.extend({}, $target.data(), $this.data())
|
408
|
-
$target.carousel(options)
|
409
|
-
e.preventDefault()
|
524
|
+
$('[data-spy="scroll"]').each(function () {
|
525
|
+
var $spy = $(this)
|
526
|
+
$spy.scrollspy($spy.data())
|
410
527
|
})
|
411
528
|
})
|
412
529
|
|
413
|
-
}(window.jQuery)
|
414
|
-
|
415
|
-
*
|
416
|
-
*
|
530
|
+
}(window.jQuery);
|
531
|
+
/* ========================================================
|
532
|
+
* bootstrap-tab.js v2.0.4
|
533
|
+
* http://twitter.github.com/bootstrap/javascript.html#tabs
|
534
|
+
* ========================================================
|
417
535
|
* Copyright 2012 Twitter, Inc.
|
418
536
|
*
|
419
537
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
@@ -427,7 +545,7 @@
|
|
427
545
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
428
546
|
* See the License for the specific language governing permissions and
|
429
547
|
* limitations under the License.
|
430
|
-
*
|
548
|
+
* ======================================================== */
|
431
549
|
|
432
550
|
|
433
551
|
!function ($) {
|
@@ -435,454 +553,117 @@
|
|
435
553
|
"use strict"; // jshint ;_;
|
436
554
|
|
437
555
|
|
438
|
-
/*
|
439
|
-
*
|
440
|
-
|
441
|
-
var Collapse = function (element, options) {
|
442
|
-
this.$element = $(element)
|
443
|
-
this.options = $.extend({}, $.fn.collapse.defaults, options)
|
444
|
-
|
445
|
-
if (this.options.parent) {
|
446
|
-
this.$parent = $(this.options.parent)
|
447
|
-
}
|
556
|
+
/* TAB CLASS DEFINITION
|
557
|
+
* ==================== */
|
448
558
|
|
449
|
-
|
559
|
+
var Tab = function ( element ) {
|
560
|
+
this.element = $(element)
|
450
561
|
}
|
451
562
|
|
452
|
-
|
453
|
-
|
454
|
-
constructor: Collapse
|
563
|
+
Tab.prototype = {
|
455
564
|
|
456
|
-
|
457
|
-
var hasWidth = this.$element.hasClass('width')
|
458
|
-
return hasWidth ? 'width' : 'height'
|
459
|
-
}
|
565
|
+
constructor: Tab
|
460
566
|
|
461
567
|
, show: function () {
|
462
|
-
var
|
463
|
-
,
|
464
|
-
,
|
465
|
-
,
|
466
|
-
|
467
|
-
|
468
|
-
|
469
|
-
dimension = this.dimension()
|
470
|
-
scroll = $.camelCase(['scroll', dimension].join('-'))
|
471
|
-
actives = this.$parent && this.$parent.find('> .accordion-group > .in')
|
472
|
-
|
473
|
-
if (actives && actives.length) {
|
474
|
-
hasData = actives.data('collapse')
|
475
|
-
if (hasData && hasData.transitioning) return
|
476
|
-
actives.collapse('hide')
|
477
|
-
hasData || actives.data('collapse', null)
|
478
|
-
}
|
479
|
-
|
480
|
-
this.$element[dimension](0)
|
481
|
-
this.transition('addClass', $.Event('show'), 'shown')
|
482
|
-
this.$element[dimension](this.$element[0][scroll])
|
483
|
-
}
|
484
|
-
|
485
|
-
, hide: function () {
|
486
|
-
var dimension
|
487
|
-
if (this.transitioning) return
|
488
|
-
dimension = this.dimension()
|
489
|
-
this.reset(this.$element[dimension]())
|
490
|
-
this.transition('removeClass', $.Event('hide'), 'hidden')
|
491
|
-
this.$element[dimension](0)
|
492
|
-
}
|
493
|
-
|
494
|
-
, reset: function (size) {
|
495
|
-
var dimension = this.dimension()
|
496
|
-
|
497
|
-
this.$element
|
498
|
-
.removeClass('collapse')
|
499
|
-
[dimension](size || 'auto')
|
500
|
-
[0].offsetWidth
|
501
|
-
|
502
|
-
this.$element[size !== null ? 'addClass' : 'removeClass']('collapse')
|
503
|
-
|
504
|
-
return this
|
505
|
-
}
|
506
|
-
|
507
|
-
, transition: function (method, startEvent, completeEvent) {
|
508
|
-
var that = this
|
509
|
-
, complete = function () {
|
510
|
-
if (startEvent.type == 'show') that.reset()
|
511
|
-
that.transitioning = 0
|
512
|
-
that.$element.trigger(completeEvent)
|
513
|
-
}
|
514
|
-
|
515
|
-
this.$element.trigger(startEvent)
|
516
|
-
|
517
|
-
if (startEvent.isDefaultPrevented()) return
|
518
|
-
|
519
|
-
this.transitioning = 1
|
520
|
-
|
521
|
-
this.$element[method]('in')
|
522
|
-
|
523
|
-
$.support.transition && this.$element.hasClass('collapse') ?
|
524
|
-
this.$element.one($.support.transition.end, complete) :
|
525
|
-
complete()
|
526
|
-
}
|
527
|
-
|
528
|
-
, toggle: function () {
|
529
|
-
this[this.$element.hasClass('in') ? 'hide' : 'show']()
|
530
|
-
}
|
531
|
-
|
532
|
-
}
|
533
|
-
|
534
|
-
|
535
|
-
/* COLLAPSIBLE PLUGIN DEFINITION
|
536
|
-
* ============================== */
|
537
|
-
|
538
|
-
$.fn.collapse = function (option) {
|
539
|
-
return this.each(function () {
|
540
|
-
var $this = $(this)
|
541
|
-
, data = $this.data('collapse')
|
542
|
-
, options = typeof option == 'object' && option
|
543
|
-
if (!data) $this.data('collapse', (data = new Collapse(this, options)))
|
544
|
-
if (typeof option == 'string') data[option]()
|
545
|
-
})
|
546
|
-
}
|
547
|
-
|
548
|
-
$.fn.collapse.defaults = {
|
549
|
-
toggle: true
|
550
|
-
}
|
551
|
-
|
552
|
-
$.fn.collapse.Constructor = Collapse
|
553
|
-
|
554
|
-
|
555
|
-
/* COLLAPSIBLE DATA-API
|
556
|
-
* ==================== */
|
557
|
-
|
558
|
-
$(function () {
|
559
|
-
$('body').on('click.collapse.data-api', '[data-toggle=collapse]', function ( e ) {
|
560
|
-
var $this = $(this), href
|
561
|
-
, target = $this.attr('data-target')
|
562
|
-
|| e.preventDefault()
|
563
|
-
|| (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7
|
564
|
-
, option = $(target).data('collapse') ? 'toggle' : $this.data()
|
565
|
-
$(target).collapse(option)
|
566
|
-
})
|
567
|
-
})
|
568
|
-
|
569
|
-
}(window.jQuery);/* ============================================================
|
570
|
-
* bootstrap-dropdown.js v2.0.4
|
571
|
-
* http://twitter.github.com/bootstrap/javascript.html#dropdowns
|
572
|
-
* ============================================================
|
573
|
-
* Copyright 2012 Twitter, Inc.
|
574
|
-
*
|
575
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
576
|
-
* you may not use this file except in compliance with the License.
|
577
|
-
* You may obtain a copy of the License at
|
578
|
-
*
|
579
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
580
|
-
*
|
581
|
-
* Unless required by applicable law or agreed to in writing, software
|
582
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
583
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
584
|
-
* See the License for the specific language governing permissions and
|
585
|
-
* limitations under the License.
|
586
|
-
* ============================================================ */
|
587
|
-
|
588
|
-
|
589
|
-
!function ($) {
|
590
|
-
|
591
|
-
"use strict"; // jshint ;_;
|
592
|
-
|
593
|
-
|
594
|
-
/* DROPDOWN CLASS DEFINITION
|
595
|
-
* ========================= */
|
596
|
-
|
597
|
-
var toggle = '[data-toggle="dropdown"]'
|
598
|
-
, Dropdown = function (element) {
|
599
|
-
var $el = $(element).on('click.dropdown.data-api', this.toggle)
|
600
|
-
$('html').on('click.dropdown.data-api', function () {
|
601
|
-
$el.parent().removeClass('open')
|
602
|
-
})
|
603
|
-
}
|
604
|
-
|
605
|
-
Dropdown.prototype = {
|
606
|
-
|
607
|
-
constructor: Dropdown
|
608
|
-
|
609
|
-
, toggle: function (e) {
|
610
|
-
var $this = $(this)
|
611
|
-
, $parent
|
612
|
-
, selector
|
613
|
-
, isActive
|
614
|
-
|
615
|
-
if ($this.is('.disabled, :disabled')) return
|
616
|
-
|
617
|
-
selector = $this.attr('data-target')
|
568
|
+
var $this = this.element
|
569
|
+
, $ul = $this.closest('ul:not(.dropdown-menu)')
|
570
|
+
, selector = $this.attr('data-target')
|
571
|
+
, previous
|
572
|
+
, $target
|
573
|
+
, e
|
618
574
|
|
619
575
|
if (!selector) {
|
620
576
|
selector = $this.attr('href')
|
621
577
|
selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
|
622
578
|
}
|
623
579
|
|
624
|
-
|
625
|
-
$parent.length || ($parent = $this.parent())
|
626
|
-
|
627
|
-
isActive = $parent.hasClass('open')
|
628
|
-
|
629
|
-
clearMenus()
|
630
|
-
|
631
|
-
if (!isActive) $parent.toggleClass('open')
|
632
|
-
|
633
|
-
return false
|
634
|
-
}
|
635
|
-
|
636
|
-
}
|
637
|
-
|
638
|
-
function clearMenus() {
|
639
|
-
$(toggle).parent().removeClass('open')
|
640
|
-
}
|
641
|
-
|
642
|
-
|
643
|
-
/* DROPDOWN PLUGIN DEFINITION
|
644
|
-
* ========================== */
|
645
|
-
|
646
|
-
$.fn.dropdown = function (option) {
|
647
|
-
return this.each(function () {
|
648
|
-
var $this = $(this)
|
649
|
-
, data = $this.data('dropdown')
|
650
|
-
if (!data) $this.data('dropdown', (data = new Dropdown(this)))
|
651
|
-
if (typeof option == 'string') data[option].call($this)
|
652
|
-
})
|
653
|
-
}
|
654
|
-
|
655
|
-
$.fn.dropdown.Constructor = Dropdown
|
656
|
-
|
657
|
-
|
658
|
-
/* APPLY TO STANDARD DROPDOWN ELEMENTS
|
659
|
-
* =================================== */
|
660
|
-
|
661
|
-
$(function () {
|
662
|
-
$('html').on('click.dropdown.data-api', clearMenus)
|
663
|
-
$('body')
|
664
|
-
.on('click.dropdown', '.dropdown form', function (e) { e.stopPropagation() })
|
665
|
-
.on('click.dropdown.data-api', toggle, Dropdown.prototype.toggle)
|
666
|
-
})
|
667
|
-
|
668
|
-
}(window.jQuery);/* =========================================================
|
669
|
-
* bootstrap-modal.js v2.0.4
|
670
|
-
* http://twitter.github.com/bootstrap/javascript.html#modals
|
671
|
-
* =========================================================
|
672
|
-
* Copyright 2012 Twitter, Inc.
|
673
|
-
*
|
674
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
675
|
-
* you may not use this file except in compliance with the License.
|
676
|
-
* You may obtain a copy of the License at
|
677
|
-
*
|
678
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
679
|
-
*
|
680
|
-
* Unless required by applicable law or agreed to in writing, software
|
681
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
682
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
683
|
-
* See the License for the specific language governing permissions and
|
684
|
-
* limitations under the License.
|
685
|
-
* ========================================================= */
|
686
|
-
|
687
|
-
|
688
|
-
!function ($) {
|
689
|
-
|
690
|
-
"use strict"; // jshint ;_;
|
691
|
-
|
692
|
-
|
693
|
-
/* MODAL CLASS DEFINITION
|
694
|
-
* ====================== */
|
695
|
-
|
696
|
-
var Modal = function (content, options) {
|
697
|
-
this.options = options
|
698
|
-
this.$element = $(content)
|
699
|
-
.delegate('[data-dismiss="modal"]', 'click.dismiss.modal', $.proxy(this.hide, this))
|
700
|
-
}
|
701
|
-
|
702
|
-
Modal.prototype = {
|
703
|
-
|
704
|
-
constructor: Modal
|
705
|
-
|
706
|
-
, toggle: function () {
|
707
|
-
return this[!this.isShown ? 'show' : 'hide']()
|
708
|
-
}
|
709
|
-
|
710
|
-
, show: function () {
|
711
|
-
var that = this
|
712
|
-
, e = $.Event('show')
|
713
|
-
|
714
|
-
this.$element.trigger(e)
|
715
|
-
|
716
|
-
if (this.isShown || e.isDefaultPrevented()) return
|
717
|
-
|
718
|
-
$('body').addClass('modal-open')
|
719
|
-
|
720
|
-
this.isShown = true
|
721
|
-
|
722
|
-
escape.call(this)
|
723
|
-
backdrop.call(this, function () {
|
724
|
-
var transition = $.support.transition && that.$element.hasClass('fade')
|
580
|
+
if ( $this.parent('li').hasClass('active') ) return
|
725
581
|
|
726
|
-
|
727
|
-
that.$element.appendTo(document.body) //don't move modals dom position
|
728
|
-
}
|
582
|
+
previous = $ul.find('.active a').last()[0]
|
729
583
|
|
730
|
-
|
731
|
-
|
584
|
+
e = $.Event('show', {
|
585
|
+
relatedTarget: previous
|
586
|
+
})
|
732
587
|
|
733
|
-
|
734
|
-
that.$element[0].offsetWidth // force reflow
|
735
|
-
}
|
588
|
+
$this.trigger(e)
|
736
589
|
|
737
|
-
|
590
|
+
if (e.isDefaultPrevented()) return
|
738
591
|
|
739
|
-
|
740
|
-
that.$element.one($.support.transition.end, function () { that.$element.trigger('shown') }) :
|
741
|
-
that.$element.trigger('shown')
|
592
|
+
$target = $(selector)
|
742
593
|
|
594
|
+
this.activate($this.parent('li'), $ul)
|
595
|
+
this.activate($target, $target.parent(), function () {
|
596
|
+
$this.trigger({
|
597
|
+
type: 'shown'
|
598
|
+
, relatedTarget: previous
|
743
599
|
})
|
744
|
-
}
|
745
|
-
|
746
|
-
, hide: function (e) {
|
747
|
-
e && e.preventDefault()
|
748
|
-
|
749
|
-
var that = this
|
750
|
-
|
751
|
-
e = $.Event('hide')
|
752
|
-
|
753
|
-
this.$element.trigger(e)
|
754
|
-
|
755
|
-
if (!this.isShown || e.isDefaultPrevented()) return
|
756
|
-
|
757
|
-
this.isShown = false
|
758
|
-
|
759
|
-
$('body').removeClass('modal-open')
|
760
|
-
|
761
|
-
escape.call(this)
|
762
|
-
|
763
|
-
this.$element.removeClass('in')
|
764
|
-
|
765
|
-
$.support.transition && this.$element.hasClass('fade') ?
|
766
|
-
hideWithTransition.call(this) :
|
767
|
-
hideModal.call(this)
|
768
|
-
}
|
769
|
-
|
770
|
-
}
|
771
|
-
|
772
|
-
|
773
|
-
/* MODAL PRIVATE METHODS
|
774
|
-
* ===================== */
|
775
|
-
|
776
|
-
function hideWithTransition() {
|
777
|
-
var that = this
|
778
|
-
, timeout = setTimeout(function () {
|
779
|
-
that.$element.off($.support.transition.end)
|
780
|
-
hideModal.call(that)
|
781
|
-
}, 500)
|
782
|
-
|
783
|
-
this.$element.one($.support.transition.end, function () {
|
784
|
-
clearTimeout(timeout)
|
785
|
-
hideModal.call(that)
|
786
|
-
})
|
787
|
-
}
|
788
|
-
|
789
|
-
function hideModal(that) {
|
790
|
-
this.$element
|
791
|
-
.hide()
|
792
|
-
.trigger('hidden')
|
793
|
-
|
794
|
-
backdrop.call(this)
|
795
|
-
}
|
796
|
-
|
797
|
-
function backdrop(callback) {
|
798
|
-
var that = this
|
799
|
-
, animate = this.$element.hasClass('fade') ? 'fade' : ''
|
800
|
-
|
801
|
-
if (this.isShown && this.options.backdrop) {
|
802
|
-
var doAnimate = $.support.transition && animate
|
803
|
-
|
804
|
-
this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />')
|
805
|
-
.appendTo(document.body)
|
806
|
-
|
807
|
-
if (this.options.backdrop != 'static') {
|
808
|
-
this.$backdrop.click($.proxy(this.hide, this))
|
809
|
-
}
|
600
|
+
})
|
601
|
+
}
|
810
602
|
|
811
|
-
|
603
|
+
, activate: function ( element, container, callback) {
|
604
|
+
var $active = container.find('> .active')
|
605
|
+
, transition = callback
|
606
|
+
&& $.support.transition
|
607
|
+
&& $active.hasClass('fade')
|
812
608
|
|
813
|
-
|
609
|
+
function next() {
|
610
|
+
$active
|
611
|
+
.removeClass('active')
|
612
|
+
.find('> .dropdown-menu > .active')
|
613
|
+
.removeClass('active')
|
814
614
|
|
815
|
-
|
816
|
-
this.$backdrop.one($.support.transition.end, callback) :
|
817
|
-
callback()
|
615
|
+
element.addClass('active')
|
818
616
|
|
819
|
-
|
820
|
-
|
617
|
+
if (transition) {
|
618
|
+
element[0].offsetWidth // reflow for transition
|
619
|
+
element.addClass('in')
|
620
|
+
} else {
|
621
|
+
element.removeClass('fade')
|
622
|
+
}
|
821
623
|
|
822
|
-
|
823
|
-
|
824
|
-
|
624
|
+
if ( element.parent('.dropdown-menu') ) {
|
625
|
+
element.closest('li.dropdown').addClass('active')
|
626
|
+
}
|
825
627
|
|
826
|
-
|
827
|
-
|
828
|
-
}
|
829
|
-
}
|
628
|
+
callback && callback()
|
629
|
+
}
|
830
630
|
|
831
|
-
|
832
|
-
|
833
|
-
|
834
|
-
}
|
631
|
+
transition ?
|
632
|
+
$active.one($.support.transition.end, next) :
|
633
|
+
next()
|
835
634
|
|
836
|
-
|
837
|
-
var that = this
|
838
|
-
if (this.isShown && this.options.keyboard) {
|
839
|
-
$(document).on('keyup.dismiss.modal', function ( e ) {
|
840
|
-
e.which == 27 && that.hide()
|
841
|
-
})
|
842
|
-
} else if (!this.isShown) {
|
843
|
-
$(document).off('keyup.dismiss.modal')
|
635
|
+
$active.removeClass('in')
|
844
636
|
}
|
845
637
|
}
|
846
638
|
|
847
639
|
|
848
|
-
/*
|
849
|
-
*
|
640
|
+
/* TAB PLUGIN DEFINITION
|
641
|
+
* ===================== */
|
850
642
|
|
851
|
-
$.fn.
|
643
|
+
$.fn.tab = function ( option ) {
|
852
644
|
return this.each(function () {
|
853
645
|
var $this = $(this)
|
854
|
-
, data = $this.data('
|
855
|
-
|
856
|
-
if (!data) $this.data('modal', (data = new Modal(this, options)))
|
646
|
+
, data = $this.data('tab')
|
647
|
+
if (!data) $this.data('tab', (data = new Tab(this)))
|
857
648
|
if (typeof option == 'string') data[option]()
|
858
|
-
else if (options.show) data.show()
|
859
649
|
})
|
860
650
|
}
|
861
651
|
|
862
|
-
$.fn.
|
863
|
-
backdrop: true
|
864
|
-
, keyboard: true
|
865
|
-
, show: true
|
866
|
-
}
|
867
|
-
|
868
|
-
$.fn.modal.Constructor = Modal
|
652
|
+
$.fn.tab.Constructor = Tab
|
869
653
|
|
870
654
|
|
871
|
-
/*
|
872
|
-
*
|
655
|
+
/* TAB DATA-API
|
656
|
+
* ============ */
|
873
657
|
|
874
658
|
$(function () {
|
875
|
-
$('body').on('click.
|
876
|
-
var $this = $(this), href
|
877
|
-
, $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
|
878
|
-
, option = $target.data('modal') ? 'toggle' : $.extend({}, $target.data(), $this.data())
|
879
|
-
|
659
|
+
$('body').on('click.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]', function (e) {
|
880
660
|
e.preventDefault()
|
881
|
-
$
|
661
|
+
$(this).tab('show')
|
882
662
|
})
|
883
663
|
})
|
884
664
|
|
885
|
-
}(window.jQuery)
|
665
|
+
}(window.jQuery);
|
666
|
+
/* ===========================================================
|
886
667
|
* bootstrap-tooltip.js v2.0.4
|
887
668
|
* http://twitter.github.com/bootstrap/javascript.html#tooltips
|
888
669
|
* Inspired by the original jQuery.tipsy by Jason Frame
|
@@ -1131,36 +912,225 @@
|
|
1131
912
|
}
|
1132
913
|
|
1133
914
|
|
1134
|
-
/* TOOLTIP PLUGIN DEFINITION
|
1135
|
-
* ========================= */
|
915
|
+
/* TOOLTIP PLUGIN DEFINITION
|
916
|
+
* ========================= */
|
917
|
+
|
918
|
+
$.fn.tooltip = function ( option ) {
|
919
|
+
return this.each(function () {
|
920
|
+
var $this = $(this)
|
921
|
+
, data = $this.data('tooltip')
|
922
|
+
, options = typeof option == 'object' && option
|
923
|
+
if (!data) $this.data('tooltip', (data = new Tooltip(this, options)))
|
924
|
+
if (typeof option == 'string') data[option]()
|
925
|
+
})
|
926
|
+
}
|
927
|
+
|
928
|
+
$.fn.tooltip.Constructor = Tooltip
|
929
|
+
|
930
|
+
$.fn.tooltip.defaults = {
|
931
|
+
animation: true
|
932
|
+
, placement: 'top'
|
933
|
+
, selector: false
|
934
|
+
, template: '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>'
|
935
|
+
, trigger: 'hover'
|
936
|
+
, title: ''
|
937
|
+
, delay: 0
|
938
|
+
}
|
939
|
+
|
940
|
+
}(window.jQuery);
|
941
|
+
|
942
|
+
/* ===========================================================
|
943
|
+
* bootstrap-popover.js v2.0.4
|
944
|
+
* http://twitter.github.com/bootstrap/javascript.html#popovers
|
945
|
+
* ===========================================================
|
946
|
+
* Copyright 2012 Twitter, Inc.
|
947
|
+
*
|
948
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
949
|
+
* you may not use this file except in compliance with the License.
|
950
|
+
* You may obtain a copy of the License at
|
951
|
+
*
|
952
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
953
|
+
*
|
954
|
+
* Unless required by applicable law or agreed to in writing, software
|
955
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
956
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
957
|
+
* See the License for the specific language governing permissions and
|
958
|
+
* limitations under the License.
|
959
|
+
* =========================================================== */
|
960
|
+
|
961
|
+
|
962
|
+
!function ($) {
|
963
|
+
|
964
|
+
"use strict"; // jshint ;_;
|
965
|
+
|
966
|
+
|
967
|
+
/* POPOVER PUBLIC CLASS DEFINITION
|
968
|
+
* =============================== */
|
969
|
+
|
970
|
+
var Popover = function ( element, options ) {
|
971
|
+
this.init('popover', element, options)
|
972
|
+
}
|
973
|
+
|
974
|
+
|
975
|
+
/* NOTE: POPOVER EXTENDS BOOTSTRAP-TOOLTIP.js
|
976
|
+
========================================== */
|
977
|
+
|
978
|
+
Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype, {
|
979
|
+
|
980
|
+
constructor: Popover
|
981
|
+
|
982
|
+
, setContent: function () {
|
983
|
+
var $tip = this.tip()
|
984
|
+
, title = this.getTitle()
|
985
|
+
, content = this.getContent()
|
986
|
+
|
987
|
+
$tip.find('.popover-title')[this.isHTML(title) ? 'html' : 'text'](title)
|
988
|
+
$tip.find('.popover-content > *')[this.isHTML(content) ? 'html' : 'text'](content)
|
989
|
+
|
990
|
+
$tip.removeClass('fade top bottom left right in')
|
991
|
+
}
|
992
|
+
|
993
|
+
, hasContent: function () {
|
994
|
+
return this.getTitle() || this.getContent()
|
995
|
+
}
|
996
|
+
|
997
|
+
, getContent: function () {
|
998
|
+
var content
|
999
|
+
, $e = this.$element
|
1000
|
+
, o = this.options
|
1001
|
+
|
1002
|
+
content = $e.attr('data-content')
|
1003
|
+
|| (typeof o.content == 'function' ? o.content.call($e[0]) : o.content)
|
1004
|
+
|
1005
|
+
return content
|
1006
|
+
}
|
1007
|
+
|
1008
|
+
, tip: function () {
|
1009
|
+
if (!this.$tip) {
|
1010
|
+
this.$tip = $(this.options.template)
|
1011
|
+
}
|
1012
|
+
return this.$tip
|
1013
|
+
}
|
1014
|
+
|
1015
|
+
})
|
1016
|
+
|
1017
|
+
|
1018
|
+
/* POPOVER PLUGIN DEFINITION
|
1019
|
+
* ======================= */
|
1020
|
+
|
1021
|
+
$.fn.popover = function (option) {
|
1022
|
+
return this.each(function () {
|
1023
|
+
var $this = $(this)
|
1024
|
+
, data = $this.data('popover')
|
1025
|
+
, options = typeof option == 'object' && option
|
1026
|
+
if (!data) $this.data('popover', (data = new Popover(this, options)))
|
1027
|
+
if (typeof option == 'string') data[option]()
|
1028
|
+
})
|
1029
|
+
}
|
1030
|
+
|
1031
|
+
$.fn.popover.Constructor = Popover
|
1032
|
+
|
1033
|
+
$.fn.popover.defaults = $.extend({} , $.fn.tooltip.defaults, {
|
1034
|
+
placement: 'right'
|
1035
|
+
, content: ''
|
1036
|
+
, template: '<div class="popover"><div class="arrow"></div><div class="popover-inner"><h3 class="popover-title"></h3><div class="popover-content"><p></p></div></div></div>'
|
1037
|
+
})
|
1038
|
+
|
1039
|
+
}(window.jQuery);
|
1040
|
+
/* ==========================================================
|
1041
|
+
* bootstrap-alert.js v2.0.4
|
1042
|
+
* http://twitter.github.com/bootstrap/javascript.html#alerts
|
1043
|
+
* ==========================================================
|
1044
|
+
* Copyright 2012 Twitter, Inc.
|
1045
|
+
*
|
1046
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
1047
|
+
* you may not use this file except in compliance with the License.
|
1048
|
+
* You may obtain a copy of the License at
|
1049
|
+
*
|
1050
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
1051
|
+
*
|
1052
|
+
* Unless required by applicable law or agreed to in writing, software
|
1053
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
1054
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
1055
|
+
* See the License for the specific language governing permissions and
|
1056
|
+
* limitations under the License.
|
1057
|
+
* ========================================================== */
|
1058
|
+
|
1059
|
+
|
1060
|
+
!function ($) {
|
1061
|
+
|
1062
|
+
"use strict"; // jshint ;_;
|
1063
|
+
|
1064
|
+
|
1065
|
+
/* ALERT CLASS DEFINITION
|
1066
|
+
* ====================== */
|
1067
|
+
|
1068
|
+
var dismiss = '[data-dismiss="alert"]'
|
1069
|
+
, Alert = function (el) {
|
1070
|
+
$(el).on('click', dismiss, this.close)
|
1071
|
+
}
|
1072
|
+
|
1073
|
+
Alert.prototype.close = function (e) {
|
1074
|
+
var $this = $(this)
|
1075
|
+
, selector = $this.attr('data-target')
|
1076
|
+
, $parent
|
1077
|
+
|
1078
|
+
if (!selector) {
|
1079
|
+
selector = $this.attr('href')
|
1080
|
+
selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
|
1081
|
+
}
|
1082
|
+
|
1083
|
+
$parent = $(selector)
|
1084
|
+
|
1085
|
+
e && e.preventDefault()
|
1086
|
+
|
1087
|
+
$parent.length || ($parent = $this.hasClass('alert') ? $this : $this.parent())
|
1088
|
+
|
1089
|
+
$parent.trigger(e = $.Event('close'))
|
1090
|
+
|
1091
|
+
if (e.isDefaultPrevented()) return
|
1092
|
+
|
1093
|
+
$parent.removeClass('in')
|
1094
|
+
|
1095
|
+
function removeElement() {
|
1096
|
+
$parent
|
1097
|
+
.trigger('closed')
|
1098
|
+
.remove()
|
1099
|
+
}
|
1100
|
+
|
1101
|
+
$.support.transition && $parent.hasClass('fade') ?
|
1102
|
+
$parent.on($.support.transition.end, removeElement) :
|
1103
|
+
removeElement()
|
1104
|
+
}
|
1105
|
+
|
1106
|
+
|
1107
|
+
/* ALERT PLUGIN DEFINITION
|
1108
|
+
* ======================= */
|
1136
1109
|
|
1137
|
-
$.fn.
|
1110
|
+
$.fn.alert = function (option) {
|
1138
1111
|
return this.each(function () {
|
1139
1112
|
var $this = $(this)
|
1140
|
-
, data = $this.data('
|
1141
|
-
|
1142
|
-
if (
|
1143
|
-
if (typeof option == 'string') data[option]()
|
1113
|
+
, data = $this.data('alert')
|
1114
|
+
if (!data) $this.data('alert', (data = new Alert(this)))
|
1115
|
+
if (typeof option == 'string') data[option].call($this)
|
1144
1116
|
})
|
1145
1117
|
}
|
1146
1118
|
|
1147
|
-
$.fn.
|
1119
|
+
$.fn.alert.Constructor = Alert
|
1148
1120
|
|
1149
|
-
|
1150
|
-
|
1151
|
-
|
1152
|
-
|
1153
|
-
|
1154
|
-
|
1155
|
-
|
1156
|
-
, delay: 0
|
1157
|
-
}
|
1121
|
+
|
1122
|
+
/* ALERT DATA-API
|
1123
|
+
* ============== */
|
1124
|
+
|
1125
|
+
$(function () {
|
1126
|
+
$('body').on('click.alert.data-api', dismiss, Alert.prototype.close)
|
1127
|
+
})
|
1158
1128
|
|
1159
1129
|
}(window.jQuery);
|
1160
|
-
/*
|
1161
|
-
* bootstrap-
|
1162
|
-
* http://twitter.github.com/bootstrap/javascript.html#
|
1163
|
-
*
|
1130
|
+
/* ============================================================
|
1131
|
+
* bootstrap-button.js v2.0.4
|
1132
|
+
* http://twitter.github.com/bootstrap/javascript.html#buttons
|
1133
|
+
* ============================================================
|
1164
1134
|
* Copyright 2012 Twitter, Inc.
|
1165
1135
|
*
|
1166
1136
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
@@ -1174,7 +1144,7 @@
|
|
1174
1144
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
1175
1145
|
* See the License for the specific language governing permissions and
|
1176
1146
|
* limitations under the License.
|
1177
|
-
*
|
1147
|
+
* ============================================================ */
|
1178
1148
|
|
1179
1149
|
|
1180
1150
|
!function ($) {
|
@@ -1182,81 +1152,80 @@
|
|
1182
1152
|
"use strict"; // jshint ;_;
|
1183
1153
|
|
1184
1154
|
|
1185
|
-
/*
|
1186
|
-
*
|
1155
|
+
/* BUTTON PUBLIC CLASS DEFINITION
|
1156
|
+
* ============================== */
|
1187
1157
|
|
1188
|
-
var
|
1189
|
-
this
|
1158
|
+
var Button = function (element, options) {
|
1159
|
+
this.$element = $(element)
|
1160
|
+
this.options = $.extend({}, $.fn.button.defaults, options)
|
1190
1161
|
}
|
1191
1162
|
|
1163
|
+
Button.prototype.setState = function (state) {
|
1164
|
+
var d = 'disabled'
|
1165
|
+
, $el = this.$element
|
1166
|
+
, data = $el.data()
|
1167
|
+
, val = $el.is('input') ? 'val' : 'html'
|
1192
1168
|
|
1193
|
-
|
1194
|
-
|
1195
|
-
|
1196
|
-
Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype, {
|
1197
|
-
|
1198
|
-
constructor: Popover
|
1199
|
-
|
1200
|
-
, setContent: function () {
|
1201
|
-
var $tip = this.tip()
|
1202
|
-
, title = this.getTitle()
|
1203
|
-
, content = this.getContent()
|
1204
|
-
|
1205
|
-
$tip.find('.popover-title')[this.isHTML(title) ? 'html' : 'text'](title)
|
1206
|
-
$tip.find('.popover-content > *')[this.isHTML(content) ? 'html' : 'text'](content)
|
1207
|
-
|
1208
|
-
$tip.removeClass('fade top bottom left right in')
|
1209
|
-
}
|
1210
|
-
|
1211
|
-
, hasContent: function () {
|
1212
|
-
return this.getTitle() || this.getContent()
|
1213
|
-
}
|
1169
|
+
state = state + 'Text'
|
1170
|
+
data.resetText || $el.data('resetText', $el[val]())
|
1214
1171
|
|
1215
|
-
|
1216
|
-
var content
|
1217
|
-
, $e = this.$element
|
1218
|
-
, o = this.options
|
1172
|
+
$el[val](data[state] || this.options[state])
|
1219
1173
|
|
1220
|
-
|
1221
|
-
|
1174
|
+
// push to event loop to allow forms to submit
|
1175
|
+
setTimeout(function () {
|
1176
|
+
state == 'loadingText' ?
|
1177
|
+
$el.addClass(d).attr(d, d) :
|
1178
|
+
$el.removeClass(d).removeAttr(d)
|
1179
|
+
}, 0)
|
1180
|
+
}
|
1222
1181
|
|
1223
|
-
|
1224
|
-
|
1182
|
+
Button.prototype.toggle = function () {
|
1183
|
+
var $parent = this.$element.parent('[data-toggle="buttons-radio"]')
|
1225
1184
|
|
1226
|
-
|
1227
|
-
|
1228
|
-
|
1229
|
-
}
|
1230
|
-
return this.$tip
|
1231
|
-
}
|
1185
|
+
$parent && $parent
|
1186
|
+
.find('.active')
|
1187
|
+
.removeClass('active')
|
1232
1188
|
|
1233
|
-
|
1189
|
+
this.$element.toggleClass('active')
|
1190
|
+
}
|
1234
1191
|
|
1235
1192
|
|
1236
|
-
/*
|
1237
|
-
*
|
1193
|
+
/* BUTTON PLUGIN DEFINITION
|
1194
|
+
* ======================== */
|
1238
1195
|
|
1239
|
-
$.fn.
|
1196
|
+
$.fn.button = function (option) {
|
1240
1197
|
return this.each(function () {
|
1241
1198
|
var $this = $(this)
|
1242
|
-
, data = $this.data('
|
1199
|
+
, data = $this.data('button')
|
1243
1200
|
, options = typeof option == 'object' && option
|
1244
|
-
if (!data) $this.data('
|
1245
|
-
if (
|
1201
|
+
if (!data) $this.data('button', (data = new Button(this, options)))
|
1202
|
+
if (option == 'toggle') data.toggle()
|
1203
|
+
else if (option) data.setState(option)
|
1246
1204
|
})
|
1247
1205
|
}
|
1248
1206
|
|
1249
|
-
$.fn.
|
1207
|
+
$.fn.button.defaults = {
|
1208
|
+
loadingText: 'loading...'
|
1209
|
+
}
|
1250
1210
|
|
1251
|
-
$.fn.
|
1252
|
-
|
1253
|
-
|
1254
|
-
|
1211
|
+
$.fn.button.Constructor = Button
|
1212
|
+
|
1213
|
+
|
1214
|
+
/* BUTTON DATA-API
|
1215
|
+
* =============== */
|
1216
|
+
|
1217
|
+
$(function () {
|
1218
|
+
$('body').on('click.button.data-api', '[data-toggle^=button]', function ( e ) {
|
1219
|
+
var $btn = $(e.target)
|
1220
|
+
if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn')
|
1221
|
+
$btn.button('toggle')
|
1222
|
+
})
|
1255
1223
|
})
|
1256
1224
|
|
1257
|
-
}(window.jQuery)
|
1258
|
-
|
1259
|
-
*
|
1225
|
+
}(window.jQuery);
|
1226
|
+
/* =============================================================
|
1227
|
+
* bootstrap-collapse.js v2.0.4
|
1228
|
+
* http://twitter.github.com/bootstrap/javascript.html#collapse
|
1260
1229
|
* =============================================================
|
1261
1230
|
* Copyright 2012 Twitter, Inc.
|
1262
1231
|
*
|
@@ -1271,7 +1240,7 @@
|
|
1271
1240
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
1272
1241
|
* See the License for the specific language governing permissions and
|
1273
1242
|
* limitations under the License.
|
1274
|
-
*
|
1243
|
+
* ============================================================ */
|
1275
1244
|
|
1276
1245
|
|
1277
1246
|
!function ($) {
|
@@ -1279,135 +1248,142 @@
|
|
1279
1248
|
"use strict"; // jshint ;_;
|
1280
1249
|
|
1281
1250
|
|
1282
|
-
|
1283
|
-
|
1251
|
+
/* COLLAPSE PUBLIC CLASS DEFINITION
|
1252
|
+
* ================================ */
|
1284
1253
|
|
1285
|
-
function
|
1286
|
-
|
1287
|
-
|
1288
|
-
|
1289
|
-
this.options
|
1290
|
-
|
1291
|
-
|
1292
|
-
|
1293
|
-
|
1294
|
-
this.$body = $('body')
|
1295
|
-
this.refresh()
|
1296
|
-
this.process()
|
1254
|
+
var Collapse = function (element, options) {
|
1255
|
+
this.$element = $(element)
|
1256
|
+
this.options = $.extend({}, $.fn.collapse.defaults, options)
|
1257
|
+
|
1258
|
+
if (this.options.parent) {
|
1259
|
+
this.$parent = $(this.options.parent)
|
1260
|
+
}
|
1261
|
+
|
1262
|
+
this.options.toggle && this.toggle()
|
1297
1263
|
}
|
1298
1264
|
|
1299
|
-
|
1265
|
+
Collapse.prototype = {
|
1300
1266
|
|
1301
|
-
|
1267
|
+
constructor: Collapse
|
1302
1268
|
|
1303
|
-
|
1304
|
-
|
1305
|
-
|
1269
|
+
, dimension: function () {
|
1270
|
+
var hasWidth = this.$element.hasClass('width')
|
1271
|
+
return hasWidth ? 'width' : 'height'
|
1272
|
+
}
|
1306
1273
|
|
1307
|
-
|
1308
|
-
|
1274
|
+
, show: function () {
|
1275
|
+
var dimension
|
1276
|
+
, scroll
|
1277
|
+
, actives
|
1278
|
+
, hasData
|
1309
1279
|
|
1310
|
-
|
1311
|
-
|
1312
|
-
|
1313
|
-
|
1314
|
-
|
1315
|
-
|
1316
|
-
|
1317
|
-
|
1318
|
-
|
1319
|
-
|
1320
|
-
|
1321
|
-
.each(function () {
|
1322
|
-
self.offsets.push(this[0])
|
1323
|
-
self.targets.push(this[1])
|
1324
|
-
})
|
1280
|
+
if (this.transitioning) return
|
1281
|
+
|
1282
|
+
dimension = this.dimension()
|
1283
|
+
scroll = $.camelCase(['scroll', dimension].join('-'))
|
1284
|
+
actives = this.$parent && this.$parent.find('> .accordion-group > .in')
|
1285
|
+
|
1286
|
+
if (actives && actives.length) {
|
1287
|
+
hasData = actives.data('collapse')
|
1288
|
+
if (hasData && hasData.transitioning) return
|
1289
|
+
actives.collapse('hide')
|
1290
|
+
hasData || actives.data('collapse', null)
|
1325
1291
|
}
|
1326
1292
|
|
1327
|
-
|
1328
|
-
|
1329
|
-
|
1330
|
-
|
1331
|
-
, offsets = this.offsets
|
1332
|
-
, targets = this.targets
|
1333
|
-
, activeTarget = this.activeTarget
|
1334
|
-
, i
|
1293
|
+
this.$element[dimension](0)
|
1294
|
+
this.transition('addClass', $.Event('show'), 'shown')
|
1295
|
+
this.$element[dimension](this.$element[0][scroll])
|
1296
|
+
}
|
1335
1297
|
|
1336
|
-
|
1337
|
-
|
1338
|
-
|
1339
|
-
|
1298
|
+
, hide: function () {
|
1299
|
+
var dimension
|
1300
|
+
if (this.transitioning) return
|
1301
|
+
dimension = this.dimension()
|
1302
|
+
this.reset(this.$element[dimension]())
|
1303
|
+
this.transition('removeClass', $.Event('hide'), 'hidden')
|
1304
|
+
this.$element[dimension](0)
|
1305
|
+
}
|
1340
1306
|
|
1341
|
-
|
1342
|
-
|
1343
|
-
|
1344
|
-
|
1345
|
-
|
1346
|
-
|
1347
|
-
|
1307
|
+
, reset: function (size) {
|
1308
|
+
var dimension = this.dimension()
|
1309
|
+
|
1310
|
+
this.$element
|
1311
|
+
.removeClass('collapse')
|
1312
|
+
[dimension](size || 'auto')
|
1313
|
+
[0].offsetWidth
|
1348
1314
|
|
1349
|
-
|
1350
|
-
var active
|
1351
|
-
, selector
|
1315
|
+
this.$element[size !== null ? 'addClass' : 'removeClass']('collapse')
|
1352
1316
|
|
1353
|
-
|
1317
|
+
return this
|
1318
|
+
}
|
1354
1319
|
|
1355
|
-
|
1356
|
-
|
1357
|
-
|
1320
|
+
, transition: function (method, startEvent, completeEvent) {
|
1321
|
+
var that = this
|
1322
|
+
, complete = function () {
|
1323
|
+
if (startEvent.type == 'show') that.reset()
|
1324
|
+
that.transitioning = 0
|
1325
|
+
that.$element.trigger(completeEvent)
|
1326
|
+
}
|
1358
1327
|
|
1359
|
-
|
1360
|
-
+ '[data-target="' + target + '"],'
|
1361
|
-
+ this.selector + '[href="' + target + '"]'
|
1328
|
+
this.$element.trigger(startEvent)
|
1362
1329
|
|
1363
|
-
|
1364
|
-
.parent('li')
|
1365
|
-
.addClass('active')
|
1330
|
+
if (startEvent.isDefaultPrevented()) return
|
1366
1331
|
|
1367
|
-
|
1368
|
-
active = active.closest('li.dropdown').addClass('active')
|
1369
|
-
}
|
1332
|
+
this.transitioning = 1
|
1370
1333
|
|
1371
|
-
|
1372
|
-
|
1334
|
+
this.$element[method]('in')
|
1335
|
+
|
1336
|
+
$.support.transition && this.$element.hasClass('collapse') ?
|
1337
|
+
this.$element.one($.support.transition.end, complete) :
|
1338
|
+
complete()
|
1339
|
+
}
|
1340
|
+
|
1341
|
+
, toggle: function () {
|
1342
|
+
this[this.$element.hasClass('in') ? 'hide' : 'show']()
|
1343
|
+
}
|
1373
1344
|
|
1374
1345
|
}
|
1375
1346
|
|
1376
1347
|
|
1377
|
-
/*
|
1378
|
-
*
|
1348
|
+
/* COLLAPSIBLE PLUGIN DEFINITION
|
1349
|
+
* ============================== */
|
1379
1350
|
|
1380
|
-
$.fn.
|
1351
|
+
$.fn.collapse = function (option) {
|
1381
1352
|
return this.each(function () {
|
1382
1353
|
var $this = $(this)
|
1383
|
-
, data = $this.data('
|
1354
|
+
, data = $this.data('collapse')
|
1384
1355
|
, options = typeof option == 'object' && option
|
1385
|
-
if (!data) $this.data('
|
1356
|
+
if (!data) $this.data('collapse', (data = new Collapse(this, options)))
|
1386
1357
|
if (typeof option == 'string') data[option]()
|
1387
1358
|
})
|
1388
1359
|
}
|
1389
1360
|
|
1390
|
-
$.fn.
|
1391
|
-
|
1392
|
-
$.fn.scrollspy.defaults = {
|
1393
|
-
offset: 10
|
1361
|
+
$.fn.collapse.defaults = {
|
1362
|
+
toggle: true
|
1394
1363
|
}
|
1395
1364
|
|
1365
|
+
$.fn.collapse.Constructor = Collapse
|
1396
1366
|
|
1397
|
-
|
1398
|
-
|
1367
|
+
|
1368
|
+
/* COLLAPSIBLE DATA-API
|
1369
|
+
* ==================== */
|
1399
1370
|
|
1400
1371
|
$(function () {
|
1401
|
-
$('[data-
|
1402
|
-
var $
|
1403
|
-
|
1372
|
+
$('body').on('click.collapse.data-api', '[data-toggle=collapse]', function ( e ) {
|
1373
|
+
var $this = $(this), href
|
1374
|
+
, target = $this.attr('data-target')
|
1375
|
+
|| e.preventDefault()
|
1376
|
+
|| (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7
|
1377
|
+
, option = $(target).data('collapse') ? 'toggle' : $this.data()
|
1378
|
+
$(target).collapse(option)
|
1404
1379
|
})
|
1405
1380
|
})
|
1406
1381
|
|
1407
|
-
}(window.jQuery)
|
1408
|
-
|
1409
|
-
*
|
1410
|
-
*
|
1382
|
+
}(window.jQuery);
|
1383
|
+
/* ==========================================================
|
1384
|
+
* bootstrap-carousel.js v2.0.4
|
1385
|
+
* http://twitter.github.com/bootstrap/javascript.html#carousel
|
1386
|
+
* ==========================================================
|
1411
1387
|
* Copyright 2012 Twitter, Inc.
|
1412
1388
|
*
|
1413
1389
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
@@ -1421,7 +1397,7 @@
|
|
1421
1397
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
1422
1398
|
* See the License for the specific language governing permissions and
|
1423
1399
|
* limitations under the License.
|
1424
|
-
*
|
1400
|
+
* ========================================================== */
|
1425
1401
|
|
1426
1402
|
|
1427
1403
|
!function ($) {
|
@@ -1429,116 +1405,151 @@
|
|
1429
1405
|
"use strict"; // jshint ;_;
|
1430
1406
|
|
1431
1407
|
|
1432
|
-
/*
|
1433
|
-
*
|
1408
|
+
/* CAROUSEL CLASS DEFINITION
|
1409
|
+
* ========================= */
|
1434
1410
|
|
1435
|
-
var
|
1436
|
-
this
|
1411
|
+
var Carousel = function (element, options) {
|
1412
|
+
this.$element = $(element)
|
1413
|
+
this.options = options
|
1414
|
+
this.options.slide && this.slide(this.options.slide)
|
1415
|
+
this.options.pause == 'hover' && this.$element
|
1416
|
+
.on('mouseenter', $.proxy(this.pause, this))
|
1417
|
+
.on('mouseleave', $.proxy(this.cycle, this))
|
1437
1418
|
}
|
1438
1419
|
|
1439
|
-
|
1440
|
-
|
1441
|
-
constructor: Tab
|
1420
|
+
Carousel.prototype = {
|
1442
1421
|
|
1443
|
-
|
1444
|
-
|
1445
|
-
|
1446
|
-
|
1447
|
-
,
|
1448
|
-
|
1449
|
-
|
1422
|
+
cycle: function (e) {
|
1423
|
+
if (!e) this.paused = false
|
1424
|
+
this.options.interval
|
1425
|
+
&& !this.paused
|
1426
|
+
&& (this.interval = setInterval($.proxy(this.next, this), this.options.interval))
|
1427
|
+
return this
|
1428
|
+
}
|
1450
1429
|
|
1451
|
-
|
1452
|
-
|
1453
|
-
|
1454
|
-
|
1430
|
+
, to: function (pos) {
|
1431
|
+
var $active = this.$element.find('.active')
|
1432
|
+
, children = $active.parent().children()
|
1433
|
+
, activePos = children.index($active)
|
1434
|
+
, that = this
|
1455
1435
|
|
1456
|
-
if (
|
1436
|
+
if (pos > (children.length - 1) || pos < 0) return
|
1457
1437
|
|
1458
|
-
|
1438
|
+
if (this.sliding) {
|
1439
|
+
return this.$element.one('slid', function () {
|
1440
|
+
that.to(pos)
|
1441
|
+
})
|
1442
|
+
}
|
1459
1443
|
|
1460
|
-
|
1461
|
-
|
1462
|
-
}
|
1444
|
+
if (activePos == pos) {
|
1445
|
+
return this.pause().cycle()
|
1446
|
+
}
|
1463
1447
|
|
1464
|
-
|
1448
|
+
return this.slide(pos > activePos ? 'next' : 'prev', $(children[pos]))
|
1449
|
+
}
|
1465
1450
|
|
1466
|
-
|
1451
|
+
, pause: function (e) {
|
1452
|
+
if (!e) this.paused = true
|
1453
|
+
clearInterval(this.interval)
|
1454
|
+
this.interval = null
|
1455
|
+
return this
|
1456
|
+
}
|
1467
1457
|
|
1468
|
-
|
1458
|
+
, next: function () {
|
1459
|
+
if (this.sliding) return
|
1460
|
+
return this.slide('next')
|
1461
|
+
}
|
1469
1462
|
|
1470
|
-
|
1471
|
-
this.
|
1472
|
-
|
1473
|
-
type: 'shown'
|
1474
|
-
, relatedTarget: previous
|
1475
|
-
})
|
1476
|
-
})
|
1463
|
+
, prev: function () {
|
1464
|
+
if (this.sliding) return
|
1465
|
+
return this.slide('prev')
|
1477
1466
|
}
|
1478
1467
|
|
1479
|
-
,
|
1480
|
-
var $active =
|
1481
|
-
,
|
1482
|
-
|
1483
|
-
|
1468
|
+
, slide: function (type, next) {
|
1469
|
+
var $active = this.$element.find('.active')
|
1470
|
+
, $next = next || $active[type]()
|
1471
|
+
, isCycling = this.interval
|
1472
|
+
, direction = type == 'next' ? 'left' : 'right'
|
1473
|
+
, fallback = type == 'next' ? 'first' : 'last'
|
1474
|
+
, that = this
|
1475
|
+
, e = $.Event('slide')
|
1484
1476
|
|
1485
|
-
|
1486
|
-
$active
|
1487
|
-
.removeClass('active')
|
1488
|
-
.find('> .dropdown-menu > .active')
|
1489
|
-
.removeClass('active')
|
1477
|
+
this.sliding = true
|
1490
1478
|
|
1491
|
-
|
1479
|
+
isCycling && this.pause()
|
1492
1480
|
|
1493
|
-
|
1494
|
-
element[0].offsetWidth // reflow for transition
|
1495
|
-
element.addClass('in')
|
1496
|
-
} else {
|
1497
|
-
element.removeClass('fade')
|
1498
|
-
}
|
1481
|
+
$next = $next.length ? $next : this.$element.find('.item')[fallback]()
|
1499
1482
|
|
1500
|
-
|
1501
|
-
element.closest('li.dropdown').addClass('active')
|
1502
|
-
}
|
1483
|
+
if ($next.hasClass('active')) return
|
1503
1484
|
|
1504
|
-
|
1485
|
+
if ($.support.transition && this.$element.hasClass('slide')) {
|
1486
|
+
this.$element.trigger(e)
|
1487
|
+
if (e.isDefaultPrevented()) return
|
1488
|
+
$next.addClass(type)
|
1489
|
+
$next[0].offsetWidth // force reflow
|
1490
|
+
$active.addClass(direction)
|
1491
|
+
$next.addClass(direction)
|
1492
|
+
this.$element.one($.support.transition.end, function () {
|
1493
|
+
$next.removeClass([type, direction].join(' ')).addClass('active')
|
1494
|
+
$active.removeClass(['active', direction].join(' '))
|
1495
|
+
that.sliding = false
|
1496
|
+
setTimeout(function () { that.$element.trigger('slid') }, 0)
|
1497
|
+
})
|
1498
|
+
} else {
|
1499
|
+
this.$element.trigger(e)
|
1500
|
+
if (e.isDefaultPrevented()) return
|
1501
|
+
$active.removeClass('active')
|
1502
|
+
$next.addClass('active')
|
1503
|
+
this.sliding = false
|
1504
|
+
this.$element.trigger('slid')
|
1505
1505
|
}
|
1506
1506
|
|
1507
|
-
|
1508
|
-
$active.one($.support.transition.end, next) :
|
1509
|
-
next()
|
1507
|
+
isCycling && this.cycle()
|
1510
1508
|
|
1511
|
-
|
1509
|
+
return this
|
1512
1510
|
}
|
1511
|
+
|
1513
1512
|
}
|
1514
1513
|
|
1515
1514
|
|
1516
|
-
/*
|
1517
|
-
*
|
1515
|
+
/* CAROUSEL PLUGIN DEFINITION
|
1516
|
+
* ========================== */
|
1518
1517
|
|
1519
|
-
$.fn.
|
1518
|
+
$.fn.carousel = function (option) {
|
1520
1519
|
return this.each(function () {
|
1521
1520
|
var $this = $(this)
|
1522
|
-
, data = $this.data('
|
1523
|
-
|
1524
|
-
if (
|
1521
|
+
, data = $this.data('carousel')
|
1522
|
+
, options = $.extend({}, $.fn.carousel.defaults, typeof option == 'object' && option)
|
1523
|
+
if (!data) $this.data('carousel', (data = new Carousel(this, options)))
|
1524
|
+
if (typeof option == 'number') data.to(option)
|
1525
|
+
else if (typeof option == 'string' || (option = options.slide)) data[option]()
|
1526
|
+
else if (options.interval) data.cycle()
|
1525
1527
|
})
|
1526
1528
|
}
|
1527
1529
|
|
1528
|
-
$.fn.
|
1530
|
+
$.fn.carousel.defaults = {
|
1531
|
+
interval: 5000
|
1532
|
+
, pause: 'hover'
|
1533
|
+
}
|
1529
1534
|
|
1535
|
+
$.fn.carousel.Constructor = Carousel
|
1530
1536
|
|
1531
|
-
|
1532
|
-
|
1537
|
+
|
1538
|
+
/* CAROUSEL DATA-API
|
1539
|
+
* ================= */
|
1533
1540
|
|
1534
1541
|
$(function () {
|
1535
|
-
$('body').on('click.
|
1542
|
+
$('body').on('click.carousel.data-api', '[data-slide]', function ( e ) {
|
1543
|
+
var $this = $(this), href
|
1544
|
+
, $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
|
1545
|
+
, options = !$target.data('modal') && $.extend({}, $target.data(), $this.data())
|
1546
|
+
$target.carousel(options)
|
1536
1547
|
e.preventDefault()
|
1537
|
-
$(this).tab('show')
|
1538
1548
|
})
|
1539
1549
|
})
|
1540
1550
|
|
1541
|
-
}(window.jQuery)
|
1551
|
+
}(window.jQuery);
|
1552
|
+
/* =============================================================
|
1542
1553
|
* bootstrap-typeahead.js v2.0.4
|
1543
1554
|
* http://twitter.github.com/bootstrap/javascript.html#typeahead
|
1544
1555
|
* =============================================================
|