contour 2.3.0 → 2.4.0.beta1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +7 -0
- data/README.md +1 -1
- data/app/assets/javascripts/bootstrap/{v3.0.2 → v3.1.0}/bootstrap.js +243 -294
- data/app/assets/javascripts/contour.js +1 -1
- data/app/assets/stylesheets/bootstrap/{v3.0.2 → v3.1.0}/bootstrap.css +1210 -2477
- data/app/assets/stylesheets/contour.css +1 -1
- data/contour.gemspec +1 -1
- data/lib/contour/version.rb +2 -2
- data/test/dummy/db/test.sqlite3 +0 -0
- metadata +8 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 437703b7d56331d9247a43445a273ee060fa74db
|
4
|
+
data.tar.gz: 89c9bc5675e5a46655db7c0d885010c89fb09780
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fc137f49fc6f6e226f0d050bced540b6c06ebfa5dd0dad53246854303d34277c279a993e2e1fe8438e38d874d85398dffb6bffda8d4ce8c83a31a156e0bb279a
|
7
|
+
data.tar.gz: 9211c3702b21caa44288c4fef3886e6c79259396dcea424950f24992afdb083c2641c19599557e50528bfc9087b074484de59179f830d75b127cd8d4481e2c24
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -1,34 +1,22 @@
|
|
1
1
|
/*!
|
2
|
-
* Bootstrap v3.0.
|
3
|
-
* Copyright
|
4
|
-
* Licensed under
|
5
|
-
*
|
6
|
-
* Designed and built with all the love in the world by @mdo and @fat.
|
2
|
+
* Bootstrap v3.1.0 (http://getbootstrap.com)
|
3
|
+
* Copyright 2011-2014 Twitter, Inc.
|
4
|
+
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
7
5
|
*/
|
8
6
|
|
9
|
-
if (typeof jQuery ===
|
7
|
+
if (typeof jQuery === 'undefined') { throw new Error('Bootstrap requires jQuery') }
|
10
8
|
|
11
9
|
/* ========================================================================
|
12
|
-
* Bootstrap: transition.js v3.0
|
10
|
+
* Bootstrap: transition.js v3.1.0
|
13
11
|
* http://getbootstrap.com/javascript/#transitions
|
14
12
|
* ========================================================================
|
15
|
-
* Copyright
|
16
|
-
*
|
17
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
18
|
-
* you may not use this file except in compliance with the License.
|
19
|
-
* You may obtain a copy of the License at
|
20
|
-
*
|
21
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
22
|
-
*
|
23
|
-
* Unless required by applicable law or agreed to in writing, software
|
24
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
25
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
26
|
-
* See the License for the specific language governing permissions and
|
27
|
-
* limitations under the License.
|
13
|
+
* Copyright 2011-2014 Twitter, Inc.
|
14
|
+
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
28
15
|
* ======================================================================== */
|
29
16
|
|
30
17
|
|
31
|
-
+function ($) {
|
18
|
+
+function ($) {
|
19
|
+
'use strict';
|
32
20
|
|
33
21
|
// CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)
|
34
22
|
// ============================================================
|
@@ -37,10 +25,10 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|
37
25
|
var el = document.createElement('bootstrap')
|
38
26
|
|
39
27
|
var transEndEventNames = {
|
40
|
-
'WebkitTransition' : 'webkitTransitionEnd'
|
41
|
-
|
42
|
-
|
43
|
-
|
28
|
+
'WebkitTransition' : 'webkitTransitionEnd',
|
29
|
+
'MozTransition' : 'transitionend',
|
30
|
+
'OTransition' : 'oTransitionEnd otransitionend',
|
31
|
+
'transition' : 'transitionend'
|
44
32
|
}
|
45
33
|
|
46
34
|
for (var name in transEndEventNames) {
|
@@ -48,6 +36,8 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|
48
36
|
return { end: transEndEventNames[name] }
|
49
37
|
}
|
50
38
|
}
|
39
|
+
|
40
|
+
return false // explicit for ie8 ( ._.)
|
51
41
|
}
|
52
42
|
|
53
43
|
// http://blog.alexmaccaw.com/css-transitions
|
@@ -66,26 +56,16 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|
66
56
|
}(jQuery);
|
67
57
|
|
68
58
|
/* ========================================================================
|
69
|
-
* Bootstrap: alert.js v3.0
|
59
|
+
* Bootstrap: alert.js v3.1.0
|
70
60
|
* http://getbootstrap.com/javascript/#alerts
|
71
61
|
* ========================================================================
|
72
|
-
* Copyright
|
73
|
-
*
|
74
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
75
|
-
* you may not use this file except in compliance with the License.
|
76
|
-
* You may obtain a copy of the License at
|
77
|
-
*
|
78
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
79
|
-
*
|
80
|
-
* Unless required by applicable law or agreed to in writing, software
|
81
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
82
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
83
|
-
* See the License for the specific language governing permissions and
|
84
|
-
* limitations under the License.
|
62
|
+
* Copyright 2011-2014 Twitter, Inc.
|
63
|
+
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
85
64
|
* ======================================================================== */
|
86
65
|
|
87
66
|
|
88
|
-
+function ($) {
|
67
|
+
+function ($) {
|
68
|
+
'use strict';
|
89
69
|
|
90
70
|
// ALERT CLASS DEFINITION
|
91
71
|
// ======================
|
@@ -165,33 +145,24 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|
165
145
|
}(jQuery);
|
166
146
|
|
167
147
|
/* ========================================================================
|
168
|
-
* Bootstrap: button.js v3.0
|
148
|
+
* Bootstrap: button.js v3.1.0
|
169
149
|
* http://getbootstrap.com/javascript/#buttons
|
170
150
|
* ========================================================================
|
171
|
-
* Copyright
|
172
|
-
*
|
173
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
174
|
-
* you may not use this file except in compliance with the License.
|
175
|
-
* You may obtain a copy of the License at
|
176
|
-
*
|
177
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
178
|
-
*
|
179
|
-
* Unless required by applicable law or agreed to in writing, software
|
180
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
181
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
182
|
-
* See the License for the specific language governing permissions and
|
183
|
-
* limitations under the License.
|
151
|
+
* Copyright 2011-2014 Twitter, Inc.
|
152
|
+
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
184
153
|
* ======================================================================== */
|
185
154
|
|
186
155
|
|
187
|
-
+function ($) {
|
156
|
+
+function ($) {
|
157
|
+
'use strict';
|
188
158
|
|
189
159
|
// BUTTON PUBLIC CLASS DEFINITION
|
190
160
|
// ==============================
|
191
161
|
|
192
162
|
var Button = function (element, options) {
|
193
|
-
this.$element
|
194
|
-
this.options
|
163
|
+
this.$element = $(element)
|
164
|
+
this.options = $.extend({}, Button.DEFAULTS, options)
|
165
|
+
this.isLoading = false
|
195
166
|
}
|
196
167
|
|
197
168
|
Button.DEFAULTS = {
|
@@ -211,24 +182,31 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|
211
182
|
$el[val](data[state] || this.options[state])
|
212
183
|
|
213
184
|
// push to event loop to allow forms to submit
|
214
|
-
setTimeout(function () {
|
215
|
-
state == 'loadingText'
|
216
|
-
|
217
|
-
$el.
|
218
|
-
|
185
|
+
setTimeout($.proxy(function () {
|
186
|
+
if (state == 'loadingText') {
|
187
|
+
this.isLoading = true
|
188
|
+
$el.addClass(d).attr(d, d)
|
189
|
+
} else if (this.isLoading) {
|
190
|
+
this.isLoading = false
|
191
|
+
$el.removeClass(d).removeAttr(d)
|
192
|
+
}
|
193
|
+
}, this), 0)
|
219
194
|
}
|
220
195
|
|
221
196
|
Button.prototype.toggle = function () {
|
197
|
+
var changed = true
|
222
198
|
var $parent = this.$element.closest('[data-toggle="buttons"]')
|
223
199
|
|
224
200
|
if ($parent.length) {
|
225
201
|
var $input = this.$element.find('input')
|
226
|
-
|
227
|
-
.
|
228
|
-
|
202
|
+
if ($input.prop('type') == 'radio') {
|
203
|
+
if ($input.prop('checked') && this.$element.hasClass('active')) changed = false
|
204
|
+
else $parent.find('.active').removeClass('active')
|
205
|
+
}
|
206
|
+
if (changed) $input.prop('checked', !this.$element.hasClass('active')).trigger('change')
|
229
207
|
}
|
230
208
|
|
231
|
-
this.$element.toggleClass('active')
|
209
|
+
if (changed) this.$element.toggleClass('active')
|
232
210
|
}
|
233
211
|
|
234
212
|
|
@@ -275,26 +253,16 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|
275
253
|
}(jQuery);
|
276
254
|
|
277
255
|
/* ========================================================================
|
278
|
-
* Bootstrap: carousel.js v3.0
|
256
|
+
* Bootstrap: carousel.js v3.1.0
|
279
257
|
* http://getbootstrap.com/javascript/#carousel
|
280
258
|
* ========================================================================
|
281
|
-
* Copyright
|
282
|
-
*
|
283
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
284
|
-
* you may not use this file except in compliance with the License.
|
285
|
-
* You may obtain a copy of the License at
|
286
|
-
*
|
287
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
288
|
-
*
|
289
|
-
* Unless required by applicable law or agreed to in writing, software
|
290
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
291
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
292
|
-
* See the License for the specific language governing permissions and
|
293
|
-
* limitations under the License.
|
259
|
+
* Copyright 2011-2014 Twitter, Inc.
|
260
|
+
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
294
261
|
* ======================================================================== */
|
295
262
|
|
296
263
|
|
297
|
-
+function ($) {
|
264
|
+
+function ($) {
|
265
|
+
'use strict';
|
298
266
|
|
299
267
|
// CAROUSEL CLASS DEFINITION
|
300
268
|
// =========================
|
@@ -315,9 +283,9 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|
315
283
|
}
|
316
284
|
|
317
285
|
Carousel.DEFAULTS = {
|
318
|
-
interval: 5000
|
319
|
-
|
320
|
-
|
286
|
+
interval: 5000,
|
287
|
+
pause: 'hover',
|
288
|
+
wrap: true
|
321
289
|
}
|
322
290
|
|
323
291
|
Carousel.prototype.cycle = function (e) {
|
@@ -345,7 +313,7 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|
345
313
|
|
346
314
|
if (pos > (this.$items.length - 1) || pos < 0) return
|
347
315
|
|
348
|
-
if (this.sliding) return this.$element.one('slid', function () { that.to(pos) })
|
316
|
+
if (this.sliding) return this.$element.one('slid.bs.carousel', function () { that.to(pos) })
|
349
317
|
if (activeIndex == pos) return this.pause().cycle()
|
350
318
|
|
351
319
|
return this.slide(pos > activeIndex ? 'next' : 'prev', $(this.$items[pos]))
|
@@ -354,7 +322,7 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|
354
322
|
Carousel.prototype.pause = function (e) {
|
355
323
|
e || (this.paused = true)
|
356
324
|
|
357
|
-
if (this.$element.find('.next, .prev').length && $.support.transition
|
325
|
+
if (this.$element.find('.next, .prev').length && $.support.transition) {
|
358
326
|
this.$element.trigger($.support.transition.end)
|
359
327
|
this.cycle(true)
|
360
328
|
}
|
@@ -387,25 +355,25 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|
387
355
|
$next = this.$element.find('.item')[fallback]()
|
388
356
|
}
|
389
357
|
|
390
|
-
this.sliding =
|
391
|
-
|
392
|
-
isCycling && this.pause()
|
358
|
+
if ($next.hasClass('active')) return this.sliding = false
|
393
359
|
|
394
360
|
var e = $.Event('slide.bs.carousel', { relatedTarget: $next[0], direction: direction })
|
361
|
+
this.$element.trigger(e)
|
362
|
+
if (e.isDefaultPrevented()) return
|
395
363
|
|
396
|
-
|
364
|
+
this.sliding = true
|
365
|
+
|
366
|
+
isCycling && this.pause()
|
397
367
|
|
398
368
|
if (this.$indicators.length) {
|
399
369
|
this.$indicators.find('.active').removeClass('active')
|
400
|
-
this.$element.one('slid', function () {
|
370
|
+
this.$element.one('slid.bs.carousel', function () {
|
401
371
|
var $nextIndicator = $(that.$indicators.children()[that.getActiveIndex()])
|
402
372
|
$nextIndicator && $nextIndicator.addClass('active')
|
403
373
|
})
|
404
374
|
}
|
405
375
|
|
406
376
|
if ($.support.transition && this.$element.hasClass('slide')) {
|
407
|
-
this.$element.trigger(e)
|
408
|
-
if (e.isDefaultPrevented()) return
|
409
377
|
$next.addClass(type)
|
410
378
|
$next[0].offsetWidth // force reflow
|
411
379
|
$active.addClass(direction)
|
@@ -415,16 +383,14 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|
415
383
|
$next.removeClass([type, direction].join(' ')).addClass('active')
|
416
384
|
$active.removeClass(['active', direction].join(' '))
|
417
385
|
that.sliding = false
|
418
|
-
setTimeout(function () { that.$element.trigger('slid') }, 0)
|
386
|
+
setTimeout(function () { that.$element.trigger('slid.bs.carousel') }, 0)
|
419
387
|
})
|
420
|
-
.emulateTransitionEnd(
|
388
|
+
.emulateTransitionEnd($active.css('transition-duration').slice(0, -1) * 1000)
|
421
389
|
} else {
|
422
|
-
this.$element.trigger(e)
|
423
|
-
if (e.isDefaultPrevented()) return
|
424
390
|
$active.removeClass('active')
|
425
391
|
$next.addClass('active')
|
426
392
|
this.sliding = false
|
427
|
-
this.$element.trigger('slid')
|
393
|
+
this.$element.trigger('slid.bs.carousel')
|
428
394
|
}
|
429
395
|
|
430
396
|
isCycling && this.cycle()
|
@@ -493,26 +459,16 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|
493
459
|
}(jQuery);
|
494
460
|
|
495
461
|
/* ========================================================================
|
496
|
-
* Bootstrap: collapse.js v3.0
|
462
|
+
* Bootstrap: collapse.js v3.1.0
|
497
463
|
* http://getbootstrap.com/javascript/#collapse
|
498
464
|
* ========================================================================
|
499
|
-
* Copyright
|
500
|
-
*
|
501
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
502
|
-
* you may not use this file except in compliance with the License.
|
503
|
-
* You may obtain a copy of the License at
|
504
|
-
*
|
505
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
506
|
-
*
|
507
|
-
* Unless required by applicable law or agreed to in writing, software
|
508
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
509
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
510
|
-
* See the License for the specific language governing permissions and
|
511
|
-
* limitations under the License.
|
465
|
+
* Copyright 2011-2014 Twitter, Inc.
|
466
|
+
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
512
467
|
* ======================================================================== */
|
513
468
|
|
514
469
|
|
515
|
-
+function ($) {
|
470
|
+
+function ($) {
|
471
|
+
'use strict';
|
516
472
|
|
517
473
|
// COLLAPSE PUBLIC CLASS DEFINITION
|
518
474
|
// ================================
|
@@ -563,7 +519,7 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|
563
519
|
var complete = function () {
|
564
520
|
this.$element
|
565
521
|
.removeClass('collapsing')
|
566
|
-
.addClass('in')
|
522
|
+
.addClass('collapse in')
|
567
523
|
[dimension]('auto')
|
568
524
|
this.transitioning = 0
|
569
525
|
this.$element.trigger('shown.bs.collapse')
|
@@ -631,6 +587,7 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|
631
587
|
var data = $this.data('bs.collapse')
|
632
588
|
var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option)
|
633
589
|
|
590
|
+
if (!data && options.toggle && option == 'show') option = !option
|
634
591
|
if (!data) $this.data('bs.collapse', (data = new Collapse(this, options)))
|
635
592
|
if (typeof option == 'string') data[option]()
|
636
593
|
})
|
@@ -673,26 +630,16 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|
673
630
|
}(jQuery);
|
674
631
|
|
675
632
|
/* ========================================================================
|
676
|
-
* Bootstrap: dropdown.js v3.0
|
633
|
+
* Bootstrap: dropdown.js v3.1.0
|
677
634
|
* http://getbootstrap.com/javascript/#dropdowns
|
678
635
|
* ========================================================================
|
679
|
-
* Copyright
|
680
|
-
*
|
681
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
682
|
-
* you may not use this file except in compliance with the License.
|
683
|
-
* You may obtain a copy of the License at
|
684
|
-
*
|
685
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
686
|
-
*
|
687
|
-
* Unless required by applicable law or agreed to in writing, software
|
688
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
689
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
690
|
-
* See the License for the specific language governing permissions and
|
691
|
-
* limitations under the License.
|
636
|
+
* Copyright 2011-2014 Twitter, Inc.
|
637
|
+
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
692
638
|
* ======================================================================== */
|
693
639
|
|
694
640
|
|
695
|
-
+function ($) {
|
641
|
+
+function ($) {
|
642
|
+
'use strict';
|
696
643
|
|
697
644
|
// DROPDOWN CLASS DEFINITION
|
698
645
|
// =========================
|
@@ -700,7 +647,7 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|
700
647
|
var backdrop = '.dropdown-backdrop'
|
701
648
|
var toggle = '[data-toggle=dropdown]'
|
702
649
|
var Dropdown = function (element) {
|
703
|
-
|
650
|
+
$(element).on('click.bs.dropdown', this.toggle)
|
704
651
|
}
|
705
652
|
|
706
653
|
Dropdown.prototype.toggle = function (e) {
|
@@ -715,17 +662,18 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|
715
662
|
|
716
663
|
if (!isActive) {
|
717
664
|
if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {
|
718
|
-
// if mobile we
|
665
|
+
// if mobile we use a backdrop because click events don't delegate
|
719
666
|
$('<div class="dropdown-backdrop"/>').insertAfter($(this)).on('click', clearMenus)
|
720
667
|
}
|
721
668
|
|
722
|
-
|
669
|
+
var relatedTarget = { relatedTarget: this }
|
670
|
+
$parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget))
|
723
671
|
|
724
672
|
if (e.isDefaultPrevented()) return
|
725
673
|
|
726
674
|
$parent
|
727
675
|
.toggleClass('open')
|
728
|
-
.trigger('shown.bs.dropdown')
|
676
|
+
.trigger('shown.bs.dropdown', relatedTarget)
|
729
677
|
|
730
678
|
$this.focus()
|
731
679
|
}
|
@@ -751,7 +699,8 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|
751
699
|
return $this.click()
|
752
700
|
}
|
753
701
|
|
754
|
-
var
|
702
|
+
var desc = ' li:not(.divider):visible a'
|
703
|
+
var $items = $parent.find('[role=menu]' + desc + ', [role=listbox]' + desc)
|
755
704
|
|
756
705
|
if (!$items.length) return
|
757
706
|
|
@@ -759,19 +708,20 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|
759
708
|
|
760
709
|
if (e.keyCode == 38 && index > 0) index-- // up
|
761
710
|
if (e.keyCode == 40 && index < $items.length - 1) index++ // down
|
762
|
-
if (!~index) index=0
|
711
|
+
if (!~index) index = 0
|
763
712
|
|
764
713
|
$items.eq(index).focus()
|
765
714
|
}
|
766
715
|
|
767
|
-
function clearMenus() {
|
716
|
+
function clearMenus(e) {
|
768
717
|
$(backdrop).remove()
|
769
|
-
$(toggle).each(function (
|
718
|
+
$(toggle).each(function () {
|
770
719
|
var $parent = getParent($(this))
|
720
|
+
var relatedTarget = { relatedTarget: this }
|
771
721
|
if (!$parent.hasClass('open')) return
|
772
|
-
$parent.trigger(e = $.Event('hide.bs.dropdown'))
|
722
|
+
$parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget))
|
773
723
|
if (e.isDefaultPrevented()) return
|
774
|
-
$parent.removeClass('open').trigger('hidden.bs.dropdown')
|
724
|
+
$parent.removeClass('open').trigger('hidden.bs.dropdown', relatedTarget)
|
775
725
|
})
|
776
726
|
}
|
777
727
|
|
@@ -780,7 +730,7 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|
780
730
|
|
781
731
|
if (!selector) {
|
782
732
|
selector = $this.attr('href')
|
783
|
-
selector = selector &&
|
733
|
+
selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
|
784
734
|
}
|
785
735
|
|
786
736
|
var $parent = selector && $(selector)
|
@@ -797,9 +747,9 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|
797
747
|
$.fn.dropdown = function (option) {
|
798
748
|
return this.each(function () {
|
799
749
|
var $this = $(this)
|
800
|
-
var data = $this.data('dropdown')
|
750
|
+
var data = $this.data('bs.dropdown')
|
801
751
|
|
802
|
-
if (!data) $this.data('dropdown', (data = new Dropdown(this)))
|
752
|
+
if (!data) $this.data('bs.dropdown', (data = new Dropdown(this)))
|
803
753
|
if (typeof option == 'string') data[option].call($this)
|
804
754
|
})
|
805
755
|
}
|
@@ -822,32 +772,22 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|
822
772
|
$(document)
|
823
773
|
.on('click.bs.dropdown.data-api', clearMenus)
|
824
774
|
.on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
|
825
|
-
.on('click.bs.dropdown.data-api'
|
826
|
-
.on('keydown.bs.dropdown.data-api', toggle + ', [role=menu]'
|
775
|
+
.on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)
|
776
|
+
.on('keydown.bs.dropdown.data-api', toggle + ', [role=menu], [role=listbox]', Dropdown.prototype.keydown)
|
827
777
|
|
828
778
|
}(jQuery);
|
829
779
|
|
830
780
|
/* ========================================================================
|
831
|
-
* Bootstrap: modal.js v3.0
|
781
|
+
* Bootstrap: modal.js v3.1.0
|
832
782
|
* http://getbootstrap.com/javascript/#modals
|
833
783
|
* ========================================================================
|
834
|
-
* Copyright
|
835
|
-
*
|
836
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
837
|
-
* you may not use this file except in compliance with the License.
|
838
|
-
* You may obtain a copy of the License at
|
839
|
-
*
|
840
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
841
|
-
*
|
842
|
-
* Unless required by applicable law or agreed to in writing, software
|
843
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
844
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
845
|
-
* See the License for the specific language governing permissions and
|
846
|
-
* limitations under the License.
|
784
|
+
* Copyright 2011-2014 Twitter, Inc.
|
785
|
+
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
847
786
|
* ======================================================================== */
|
848
787
|
|
849
788
|
|
850
|
-
+function ($) {
|
789
|
+
+function ($) {
|
790
|
+
'use strict';
|
851
791
|
|
852
792
|
// MODAL CLASS DEFINITION
|
853
793
|
// ======================
|
@@ -858,13 +798,19 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|
858
798
|
this.$backdrop =
|
859
799
|
this.isShown = null
|
860
800
|
|
861
|
-
if (this.options.remote)
|
801
|
+
if (this.options.remote) {
|
802
|
+
this.$element
|
803
|
+
.find('.modal-content')
|
804
|
+
.load(this.options.remote, $.proxy(function () {
|
805
|
+
this.$element.trigger('loaded.bs.modal')
|
806
|
+
}, this))
|
807
|
+
}
|
862
808
|
}
|
863
809
|
|
864
810
|
Modal.DEFAULTS = {
|
865
|
-
|
866
|
-
|
867
|
-
|
811
|
+
backdrop: true,
|
812
|
+
keyboard: true,
|
813
|
+
show: true
|
868
814
|
}
|
869
815
|
|
870
816
|
Modal.prototype.toggle = function (_relatedTarget) {
|
@@ -883,7 +829,7 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|
883
829
|
|
884
830
|
this.escape()
|
885
831
|
|
886
|
-
this.$element.on('click.dismiss.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this))
|
832
|
+
this.$element.on('click.dismiss.bs.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this))
|
887
833
|
|
888
834
|
this.backdrop(function () {
|
889
835
|
var transition = $.support.transition && that.$element.hasClass('fade')
|
@@ -892,7 +838,9 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|
892
838
|
that.$element.appendTo(document.body) // don't move modals dom position
|
893
839
|
}
|
894
840
|
|
895
|
-
that.$element
|
841
|
+
that.$element
|
842
|
+
.show()
|
843
|
+
.scrollTop(0)
|
896
844
|
|
897
845
|
if (transition) {
|
898
846
|
that.$element[0].offsetWidth // force reflow
|
@@ -934,7 +882,7 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|
934
882
|
this.$element
|
935
883
|
.removeClass('in')
|
936
884
|
.attr('aria-hidden', true)
|
937
|
-
.off('click.dismiss.modal')
|
885
|
+
.off('click.dismiss.bs.modal')
|
938
886
|
|
939
887
|
$.support.transition && this.$element.hasClass('fade') ?
|
940
888
|
this.$element
|
@@ -978,7 +926,6 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|
978
926
|
}
|
979
927
|
|
980
928
|
Modal.prototype.backdrop = function (callback) {
|
981
|
-
var that = this
|
982
929
|
var animate = this.$element.hasClass('fade') ? 'fade' : ''
|
983
930
|
|
984
931
|
if (this.isShown && this.options.backdrop) {
|
@@ -987,7 +934,7 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|
987
934
|
this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />')
|
988
935
|
.appendTo(document.body)
|
989
936
|
|
990
|
-
this.$element.on('click.dismiss.modal', $.proxy(function (e) {
|
937
|
+
this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {
|
991
938
|
if (e.target !== e.currentTarget) return
|
992
939
|
this.options.backdrop == 'static'
|
993
940
|
? this.$element[0].focus.call(this.$element[0])
|
@@ -1009,7 +956,7 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|
1009
956
|
} else if (!this.isShown && this.$backdrop) {
|
1010
957
|
this.$backdrop.removeClass('in')
|
1011
958
|
|
1012
|
-
$.support.transition && this.$element.hasClass('fade')?
|
959
|
+
$.support.transition && this.$element.hasClass('fade') ?
|
1013
960
|
this.$backdrop
|
1014
961
|
.one($.support.transition.end, callback)
|
1015
962
|
.emulateTransitionEnd(150) :
|
@@ -1057,9 +1004,9 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|
1057
1004
|
var $this = $(this)
|
1058
1005
|
var href = $this.attr('href')
|
1059
1006
|
var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) //strip for ie7
|
1060
|
-
var option = $target.data('modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())
|
1007
|
+
var option = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())
|
1061
1008
|
|
1062
|
-
e.preventDefault()
|
1009
|
+
if ($this.is('a')) e.preventDefault()
|
1063
1010
|
|
1064
1011
|
$target
|
1065
1012
|
.modal(option, this)
|
@@ -1069,33 +1016,23 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|
1069
1016
|
})
|
1070
1017
|
|
1071
1018
|
$(document)
|
1072
|
-
.on('show.bs.modal',
|
1019
|
+
.on('show.bs.modal', '.modal', function () { $(document.body).addClass('modal-open') })
|
1073
1020
|
.on('hidden.bs.modal', '.modal', function () { $(document.body).removeClass('modal-open') })
|
1074
1021
|
|
1075
1022
|
}(jQuery);
|
1076
1023
|
|
1077
1024
|
/* ========================================================================
|
1078
|
-
* Bootstrap: tooltip.js v3.0
|
1025
|
+
* Bootstrap: tooltip.js v3.1.0
|
1079
1026
|
* http://getbootstrap.com/javascript/#tooltip
|
1080
1027
|
* Inspired by the original jQuery.tipsy by Jason Frame
|
1081
1028
|
* ========================================================================
|
1082
|
-
* Copyright
|
1083
|
-
*
|
1084
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
1085
|
-
* you may not use this file except in compliance with the License.
|
1086
|
-
* You may obtain a copy of the License at
|
1087
|
-
*
|
1088
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
1089
|
-
*
|
1090
|
-
* Unless required by applicable law or agreed to in writing, software
|
1091
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
1092
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
1093
|
-
* See the License for the specific language governing permissions and
|
1094
|
-
* limitations under the License.
|
1029
|
+
* Copyright 2011-2014 Twitter, Inc.
|
1030
|
+
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
1095
1031
|
* ======================================================================== */
|
1096
1032
|
|
1097
1033
|
|
1098
|
-
+function ($) {
|
1034
|
+
+function ($) {
|
1035
|
+
'use strict';
|
1099
1036
|
|
1100
1037
|
// TOOLTIP PUBLIC CLASS DEFINITION
|
1101
1038
|
// ===============================
|
@@ -1112,15 +1049,15 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|
1112
1049
|
}
|
1113
1050
|
|
1114
1051
|
Tooltip.DEFAULTS = {
|
1115
|
-
animation: true
|
1116
|
-
|
1117
|
-
|
1118
|
-
|
1119
|
-
|
1120
|
-
|
1121
|
-
|
1122
|
-
|
1123
|
-
|
1052
|
+
animation: true,
|
1053
|
+
placement: 'top',
|
1054
|
+
selector: false,
|
1055
|
+
template: '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',
|
1056
|
+
trigger: 'hover focus',
|
1057
|
+
title: '',
|
1058
|
+
delay: 0,
|
1059
|
+
html: false,
|
1060
|
+
container: false
|
1124
1061
|
}
|
1125
1062
|
|
1126
1063
|
Tooltip.prototype.init = function (type, element, options) {
|
@@ -1137,8 +1074,8 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|
1137
1074
|
if (trigger == 'click') {
|
1138
1075
|
this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))
|
1139
1076
|
} else if (trigger != 'manual') {
|
1140
|
-
var eventIn = trigger == 'hover' ? 'mouseenter' : '
|
1141
|
-
var eventOut = trigger == 'hover' ? 'mouseleave' : '
|
1077
|
+
var eventIn = trigger == 'hover' ? 'mouseenter' : 'focusin'
|
1078
|
+
var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout'
|
1142
1079
|
|
1143
1080
|
this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))
|
1144
1081
|
this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))
|
@@ -1159,8 +1096,8 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|
1159
1096
|
|
1160
1097
|
if (options.delay && typeof options.delay == 'number') {
|
1161
1098
|
options.delay = {
|
1162
|
-
show: options.delay
|
1163
|
-
|
1099
|
+
show: options.delay,
|
1100
|
+
hide: options.delay
|
1164
1101
|
}
|
1165
1102
|
}
|
1166
1103
|
|
@@ -1209,12 +1146,13 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|
1209
1146
|
}
|
1210
1147
|
|
1211
1148
|
Tooltip.prototype.show = function () {
|
1212
|
-
var e = $.Event('show.bs.'+ this.type)
|
1149
|
+
var e = $.Event('show.bs.' + this.type)
|
1213
1150
|
|
1214
1151
|
if (this.hasContent() && this.enabled) {
|
1215
1152
|
this.$element.trigger(e)
|
1216
1153
|
|
1217
1154
|
if (e.isDefaultPrevented()) return
|
1155
|
+
var that = this;
|
1218
1156
|
|
1219
1157
|
var $tip = this.tip()
|
1220
1158
|
|
@@ -1264,11 +1202,21 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|
1264
1202
|
var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight)
|
1265
1203
|
|
1266
1204
|
this.applyPlacement(calculatedOffset, placement)
|
1267
|
-
this
|
1205
|
+
this.hoverState = null
|
1206
|
+
|
1207
|
+
var complete = function() {
|
1208
|
+
that.$element.trigger('shown.bs.' + that.type)
|
1209
|
+
}
|
1210
|
+
|
1211
|
+
$.support.transition && this.$tip.hasClass('fade') ?
|
1212
|
+
$tip
|
1213
|
+
.one($.support.transition.end, complete)
|
1214
|
+
.emulateTransitionEnd(150) :
|
1215
|
+
complete()
|
1268
1216
|
}
|
1269
1217
|
}
|
1270
1218
|
|
1271
|
-
Tooltip.prototype.applyPlacement = function(offset, placement) {
|
1219
|
+
Tooltip.prototype.applyPlacement = function (offset, placement) {
|
1272
1220
|
var replace
|
1273
1221
|
var $tip = this.tip()
|
1274
1222
|
var width = $tip[0].offsetWidth
|
@@ -1285,9 +1233,18 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|
1285
1233
|
offset.top = offset.top + marginTop
|
1286
1234
|
offset.left = offset.left + marginLeft
|
1287
1235
|
|
1288
|
-
|
1289
|
-
|
1290
|
-
|
1236
|
+
// $.fn.offset doesn't round pixel values
|
1237
|
+
// so we use setOffset directly with our own function B-0
|
1238
|
+
$.offset.setOffset($tip[0], $.extend({
|
1239
|
+
using: function (props) {
|
1240
|
+
$tip.css({
|
1241
|
+
top: Math.round(props.top),
|
1242
|
+
left: Math.round(props.left)
|
1243
|
+
})
|
1244
|
+
}
|
1245
|
+
}, offset), 0)
|
1246
|
+
|
1247
|
+
$tip.addClass('in')
|
1291
1248
|
|
1292
1249
|
// check to see if placing tip in new offset caused the tip to resize itself
|
1293
1250
|
var actualWidth = $tip[0].offsetWidth
|
@@ -1319,8 +1276,8 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|
1319
1276
|
if (replace) $tip.offset(offset)
|
1320
1277
|
}
|
1321
1278
|
|
1322
|
-
Tooltip.prototype.replaceArrow = function(delta, dimension, position) {
|
1323
|
-
this.arrow().css(position, delta ? (50 * (1 - delta / dimension) +
|
1279
|
+
Tooltip.prototype.replaceArrow = function (delta, dimension, position) {
|
1280
|
+
this.arrow().css(position, delta ? (50 * (1 - delta / dimension) + '%') : '')
|
1324
1281
|
}
|
1325
1282
|
|
1326
1283
|
Tooltip.prototype.setContent = function () {
|
@@ -1338,6 +1295,7 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|
1338
1295
|
|
1339
1296
|
function complete() {
|
1340
1297
|
if (that.hoverState != 'in') $tip.detach()
|
1298
|
+
that.$element.trigger('hidden.bs.' + that.type)
|
1341
1299
|
}
|
1342
1300
|
|
1343
1301
|
this.$element.trigger(e)
|
@@ -1352,7 +1310,7 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|
1352
1310
|
.emulateTransitionEnd(150) :
|
1353
1311
|
complete()
|
1354
1312
|
|
1355
|
-
this
|
1313
|
+
this.hoverState = null
|
1356
1314
|
|
1357
1315
|
return this
|
1358
1316
|
}
|
@@ -1371,8 +1329,8 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|
1371
1329
|
Tooltip.prototype.getPosition = function () {
|
1372
1330
|
var el = this.$element[0]
|
1373
1331
|
return $.extend({}, (typeof el.getBoundingClientRect == 'function') ? el.getBoundingClientRect() : {
|
1374
|
-
width: el.offsetWidth
|
1375
|
-
|
1332
|
+
width: el.offsetWidth,
|
1333
|
+
height: el.offsetHeight
|
1376
1334
|
}, this.$element.offset())
|
1377
1335
|
}
|
1378
1336
|
|
@@ -1428,6 +1386,7 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|
1428
1386
|
}
|
1429
1387
|
|
1430
1388
|
Tooltip.prototype.destroy = function () {
|
1389
|
+
clearTimeout(this.timeout)
|
1431
1390
|
this.hide().$element.off('.' + this.type).removeData('bs.' + this.type)
|
1432
1391
|
}
|
1433
1392
|
|
@@ -1443,6 +1402,7 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|
1443
1402
|
var data = $this.data('bs.tooltip')
|
1444
1403
|
var options = typeof option == 'object' && option
|
1445
1404
|
|
1405
|
+
if (!data && option == 'destroy') return
|
1446
1406
|
if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))
|
1447
1407
|
if (typeof option == 'string') data[option]()
|
1448
1408
|
})
|
@@ -1462,26 +1422,16 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|
1462
1422
|
}(jQuery);
|
1463
1423
|
|
1464
1424
|
/* ========================================================================
|
1465
|
-
* Bootstrap: popover.js v3.0
|
1425
|
+
* Bootstrap: popover.js v3.1.0
|
1466
1426
|
* http://getbootstrap.com/javascript/#popovers
|
1467
1427
|
* ========================================================================
|
1468
|
-
* Copyright
|
1469
|
-
*
|
1470
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
1471
|
-
* you may not use this file except in compliance with the License.
|
1472
|
-
* You may obtain a copy of the License at
|
1473
|
-
*
|
1474
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
1475
|
-
*
|
1476
|
-
* Unless required by applicable law or agreed to in writing, software
|
1477
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
1478
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
1479
|
-
* See the License for the specific language governing permissions and
|
1480
|
-
* limitations under the License.
|
1428
|
+
* Copyright 2011-2014 Twitter, Inc.
|
1429
|
+
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
1481
1430
|
* ======================================================================== */
|
1482
1431
|
|
1483
1432
|
|
1484
|
-
+function ($) {
|
1433
|
+
+function ($) {
|
1434
|
+
'use strict';
|
1485
1435
|
|
1486
1436
|
// POPOVER PUBLIC CLASS DEFINITION
|
1487
1437
|
// ===============================
|
@@ -1492,11 +1442,11 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|
1492
1442
|
|
1493
1443
|
if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')
|
1494
1444
|
|
1495
|
-
Popover.DEFAULTS = $.extend({}
|
1496
|
-
placement: 'right'
|
1497
|
-
|
1498
|
-
|
1499
|
-
|
1445
|
+
Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {
|
1446
|
+
placement: 'right',
|
1447
|
+
trigger: 'click',
|
1448
|
+
content: '',
|
1449
|
+
template: '<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
|
1500
1450
|
})
|
1501
1451
|
|
1502
1452
|
|
@@ -1517,7 +1467,9 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|
1517
1467
|
var content = this.getContent()
|
1518
1468
|
|
1519
1469
|
$tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)
|
1520
|
-
$tip.find('.popover-content')[
|
1470
|
+
$tip.find('.popover-content')[ // we use append for html objects to maintain js events
|
1471
|
+
this.options.html ? (typeof content == 'string' ? 'html' : 'append') : 'text'
|
1472
|
+
](content)
|
1521
1473
|
|
1522
1474
|
$tip.removeClass('fade top bottom left right in')
|
1523
1475
|
|
@@ -1561,6 +1513,7 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|
1561
1513
|
var data = $this.data('bs.popover')
|
1562
1514
|
var options = typeof option == 'object' && option
|
1563
1515
|
|
1516
|
+
if (!data && option == 'destroy') return
|
1564
1517
|
if (!data) $this.data('bs.popover', (data = new Popover(this, options)))
|
1565
1518
|
if (typeof option == 'string') data[option]()
|
1566
1519
|
})
|
@@ -1580,26 +1533,16 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|
1580
1533
|
}(jQuery);
|
1581
1534
|
|
1582
1535
|
/* ========================================================================
|
1583
|
-
* Bootstrap: scrollspy.js v3.0
|
1536
|
+
* Bootstrap: scrollspy.js v3.1.0
|
1584
1537
|
* http://getbootstrap.com/javascript/#scrollspy
|
1585
1538
|
* ========================================================================
|
1586
|
-
* Copyright
|
1587
|
-
*
|
1588
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
1589
|
-
* you may not use this file except in compliance with the License.
|
1590
|
-
* You may obtain a copy of the License at
|
1591
|
-
*
|
1592
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
1593
|
-
*
|
1594
|
-
* Unless required by applicable law or agreed to in writing, software
|
1595
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
1596
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
1597
|
-
* See the License for the specific language governing permissions and
|
1598
|
-
* limitations under the License.
|
1539
|
+
* Copyright 2011-2014 Twitter, Inc.
|
1540
|
+
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
1599
1541
|
* ======================================================================== */
|
1600
1542
|
|
1601
1543
|
|
1602
|
-
+function ($) {
|
1544
|
+
+function ($) {
|
1545
|
+
'use strict';
|
1603
1546
|
|
1604
1547
|
// SCROLLSPY CLASS DEFINITION
|
1605
1548
|
// ==========================
|
@@ -1639,10 +1582,11 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|
1639
1582
|
.map(function () {
|
1640
1583
|
var $el = $(this)
|
1641
1584
|
var href = $el.data('target') || $el.attr('href')
|
1642
|
-
var $href =
|
1585
|
+
var $href = /^#./.test(href) && $(href)
|
1643
1586
|
|
1644
1587
|
return ($href
|
1645
1588
|
&& $href.length
|
1589
|
+
&& $href.is(':visible')
|
1646
1590
|
&& [[ $href[offsetMethod]().top + (!$.isWindow(self.$scrollElement.get(0)) && self.$scrollElement.scrollTop()), href ]]) || null
|
1647
1591
|
})
|
1648
1592
|
.sort(function (a, b) { return a[0] - b[0] })
|
@@ -1665,6 +1609,10 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|
1665
1609
|
return activeTarget != (i = targets.last()[0]) && this.activate(i)
|
1666
1610
|
}
|
1667
1611
|
|
1612
|
+
if (activeTarget && scrollTop <= offsets[0]) {
|
1613
|
+
return activeTarget != (i = targets[0]) && this.activate(i)
|
1614
|
+
}
|
1615
|
+
|
1668
1616
|
for (i = offsets.length; i--;) {
|
1669
1617
|
activeTarget != targets[i]
|
1670
1618
|
&& scrollTop >= offsets[i]
|
@@ -1677,24 +1625,24 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|
1677
1625
|
this.activeTarget = target
|
1678
1626
|
|
1679
1627
|
$(this.selector)
|
1680
|
-
.
|
1628
|
+
.parentsUntil(this.options.target, '.active')
|
1681
1629
|
.removeClass('active')
|
1682
1630
|
|
1683
|
-
var selector = this.selector
|
1684
|
-
|
1685
|
-
|
1631
|
+
var selector = this.selector +
|
1632
|
+
'[data-target="' + target + '"],' +
|
1633
|
+
this.selector + '[href="' + target + '"]'
|
1686
1634
|
|
1687
1635
|
var active = $(selector)
|
1688
1636
|
.parents('li')
|
1689
1637
|
.addClass('active')
|
1690
1638
|
|
1691
|
-
if (active.parent('.dropdown-menu').length)
|
1639
|
+
if (active.parent('.dropdown-menu').length) {
|
1692
1640
|
active = active
|
1693
1641
|
.closest('li.dropdown')
|
1694
1642
|
.addClass('active')
|
1695
1643
|
}
|
1696
1644
|
|
1697
|
-
active.trigger('activate')
|
1645
|
+
active.trigger('activate.bs.scrollspy')
|
1698
1646
|
}
|
1699
1647
|
|
1700
1648
|
|
@@ -1739,26 +1687,16 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|
1739
1687
|
}(jQuery);
|
1740
1688
|
|
1741
1689
|
/* ========================================================================
|
1742
|
-
* Bootstrap: tab.js v3.0
|
1690
|
+
* Bootstrap: tab.js v3.1.0
|
1743
1691
|
* http://getbootstrap.com/javascript/#tabs
|
1744
1692
|
* ========================================================================
|
1745
|
-
* Copyright
|
1746
|
-
*
|
1747
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
1748
|
-
* you may not use this file except in compliance with the License.
|
1749
|
-
* You may obtain a copy of the License at
|
1750
|
-
*
|
1751
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
1752
|
-
*
|
1753
|
-
* Unless required by applicable law or agreed to in writing, software
|
1754
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
1755
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
1756
|
-
* See the License for the specific language governing permissions and
|
1757
|
-
* limitations under the License.
|
1693
|
+
* Copyright 2011-2014 Twitter, Inc.
|
1694
|
+
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
1758
1695
|
* ======================================================================== */
|
1759
1696
|
|
1760
1697
|
|
1761
|
-
+function ($) {
|
1698
|
+
+function ($) {
|
1699
|
+
'use strict';
|
1762
1700
|
|
1763
1701
|
// TAB CLASS DEFINITION
|
1764
1702
|
// ====================
|
@@ -1793,8 +1731,8 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|
1793
1731
|
this.activate($this.parent('li'), $ul)
|
1794
1732
|
this.activate($target, $target.parent(), function () {
|
1795
1733
|
$this.trigger({
|
1796
|
-
type: 'shown.bs.tab'
|
1797
|
-
|
1734
|
+
type: 'shown.bs.tab',
|
1735
|
+
relatedTarget: previous
|
1798
1736
|
})
|
1799
1737
|
})
|
1800
1738
|
}
|
@@ -1875,26 +1813,16 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|
1875
1813
|
}(jQuery);
|
1876
1814
|
|
1877
1815
|
/* ========================================================================
|
1878
|
-
* Bootstrap: affix.js v3.0
|
1816
|
+
* Bootstrap: affix.js v3.1.0
|
1879
1817
|
* http://getbootstrap.com/javascript/#affix
|
1880
1818
|
* ========================================================================
|
1881
|
-
* Copyright
|
1882
|
-
*
|
1883
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
1884
|
-
* you may not use this file except in compliance with the License.
|
1885
|
-
* You may obtain a copy of the License at
|
1886
|
-
*
|
1887
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
1888
|
-
*
|
1889
|
-
* Unless required by applicable law or agreed to in writing, software
|
1890
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
1891
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
1892
|
-
* See the License for the specific language governing permissions and
|
1893
|
-
* limitations under the License.
|
1819
|
+
* Copyright 2011-2014 Twitter, Inc.
|
1820
|
+
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
1894
1821
|
* ======================================================================== */
|
1895
1822
|
|
1896
1823
|
|
1897
|
-
+function ($) {
|
1824
|
+
+function ($) {
|
1825
|
+
'use strict';
|
1898
1826
|
|
1899
1827
|
// AFFIX CLASS DEFINITION
|
1900
1828
|
// ======================
|
@@ -1905,9 +1833,10 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|
1905
1833
|
.on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this))
|
1906
1834
|
.on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this))
|
1907
1835
|
|
1908
|
-
this.$element
|
1909
|
-
this.affixed
|
1910
|
-
this.unpin
|
1836
|
+
this.$element = $(element)
|
1837
|
+
this.affixed =
|
1838
|
+
this.unpin =
|
1839
|
+
this.pinnedOffset = null
|
1911
1840
|
|
1912
1841
|
this.checkPosition()
|
1913
1842
|
}
|
@@ -1918,6 +1847,14 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|
1918
1847
|
offset: 0
|
1919
1848
|
}
|
1920
1849
|
|
1850
|
+
Affix.prototype.getPinnedOffset = function () {
|
1851
|
+
if (this.pinnedOffset) return this.pinnedOffset
|
1852
|
+
this.$element.removeClass(Affix.RESET).addClass('affix')
|
1853
|
+
var scrollTop = this.$window.scrollTop()
|
1854
|
+
var position = this.$element.offset()
|
1855
|
+
return (this.pinnedOffset = position.top - scrollTop)
|
1856
|
+
}
|
1857
|
+
|
1921
1858
|
Affix.prototype.checkPositionWithEventLoop = function () {
|
1922
1859
|
setTimeout($.proxy(this.checkPosition, this), 1)
|
1923
1860
|
}
|
@@ -1932,9 +1869,11 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|
1932
1869
|
var offsetTop = offset.top
|
1933
1870
|
var offsetBottom = offset.bottom
|
1934
1871
|
|
1872
|
+
if (this.affixed == 'top') position.top += scrollTop
|
1873
|
+
|
1935
1874
|
if (typeof offset != 'object') offsetBottom = offsetTop = offset
|
1936
|
-
if (typeof offsetTop == 'function') offsetTop = offset.top()
|
1937
|
-
if (typeof offsetBottom == 'function') offsetBottom = offset.bottom()
|
1875
|
+
if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element)
|
1876
|
+
if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element)
|
1938
1877
|
|
1939
1878
|
var affix = this.unpin != null && (scrollTop + this.unpin <= position.top) ? false :
|
1940
1879
|
offsetBottom != null && (position.top + this.$element.height() >= scrollHeight - offsetBottom) ? 'bottom' :
|
@@ -1943,13 +1882,23 @@ if (typeof jQuery === "undefined") { throw new Error("Bootstrap requires jQuery"
|
|
1943
1882
|
if (this.affixed === affix) return
|
1944
1883
|
if (this.unpin) this.$element.css('top', '')
|
1945
1884
|
|
1885
|
+
var affixType = 'affix' + (affix ? '-' + affix : '')
|
1886
|
+
var e = $.Event(affixType + '.bs.affix')
|
1887
|
+
|
1888
|
+
this.$element.trigger(e)
|
1889
|
+
|
1890
|
+
if (e.isDefaultPrevented()) return
|
1891
|
+
|
1946
1892
|
this.affixed = affix
|
1947
|
-
this.unpin
|
1893
|
+
this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null
|
1948
1894
|
|
1949
|
-
this.$element
|
1895
|
+
this.$element
|
1896
|
+
.removeClass(Affix.RESET)
|
1897
|
+
.addClass(affixType)
|
1898
|
+
.trigger($.Event(affixType.replace('affix', 'affixed')))
|
1950
1899
|
|
1951
1900
|
if (affix == 'bottom') {
|
1952
|
-
this.$element.offset({ top:
|
1901
|
+
this.$element.offset({ top: scrollHeight - offsetBottom - this.$element.height() })
|
1953
1902
|
}
|
1954
1903
|
}
|
1955
1904
|
|