contour 2.3.0 → 2.4.0.beta1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/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
|
|