weaver 0.1.9 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/data/weaver/css/bootstrap.css +647 -205
- data/data/weaver/css/bootstrap.css.map +1 -0
- data/data/weaver/css/bootstrap.min.css +3 -3
- data/data/weaver/css/crossfade_style.css +19 -0
- data/data/weaver/css/patterns/1.png +0 -0
- data/data/weaver/css/patterns/2.png +0 -0
- data/data/weaver/css/patterns/3.png +0 -0
- data/data/weaver/css/patterns/4.png +0 -0
- data/data/weaver/css/patterns/5.png +0 -0
- data/data/weaver/css/patterns/6.png +0 -0
- data/data/weaver/css/patterns/7.png +0 -0
- data/data/weaver/css/plugins/awesome-bootstrap-checkbox/awesome-bootstrap-checkbox.css +251 -0
- data/data/weaver/css/plugins/chartist/chartist.min.css +773 -0
- data/data/weaver/css/plugins/clockpicker/clockpicker.css +168 -0
- data/data/weaver/css/plugins/dataTables/dataTables.bootstrap.css +118 -190
- data/data/weaver/css/plugins/dataTables/dataTables.tableTools.min.css +1 -1
- data/data/weaver/css/plugins/daterangepicker/daterangepicker-bs3.css +335 -0
- data/data/weaver/css/plugins/footable/fonts/footable.eot +0 -0
- data/data/weaver/css/plugins/footable/fonts/footable.svg +78 -0
- data/data/weaver/css/plugins/footable/fonts/footable.ttf +0 -0
- data/data/weaver/css/plugins/footable/fonts/footable.woff +0 -0
- data/data/weaver/css/plugins/footable/footable.core.css +178 -0
- data/data/weaver/css/plugins/select2/select2.min.css +1 -0
- data/data/weaver/css/plugins/slick/ajax-loader.gif +0 -0
- data/data/weaver/css/plugins/slick/fonts/slick.eot +0 -0
- data/data/weaver/css/plugins/slick/fonts/slick.svg +14 -0
- data/data/weaver/css/plugins/slick/fonts/slick.ttf +0 -0
- data/data/weaver/css/plugins/slick/fonts/slick.woff +0 -0
- data/data/weaver/css/plugins/slick/slick-theme.css +201 -0
- data/data/weaver/css/plugins/slick/slick.css +119 -0
- data/data/weaver/css/plugins/sweetalert/sweetalert.css +715 -0
- data/data/weaver/css/style.css +4352 -1310
- data/data/weaver/css/style.min.css +1 -1
- data/data/weaver/fonts/glyphicons-halflings-regular.eot +0 -0
- data/data/weaver/fonts/glyphicons-halflings-regular.svg +273 -214
- data/data/weaver/fonts/glyphicons-halflings-regular.ttf +0 -0
- data/data/weaver/fonts/glyphicons-halflings-regular.woff +0 -0
- data/data/weaver/fonts/glyphicons-halflings-regular.woff2 +0 -0
- data/data/weaver/js/bootstrap.js +299 -212
- data/data/weaver/js/bootstrap.min.js +5 -5
- data/data/weaver/js/inspinia.js +184 -42
- data/data/weaver/js/plugins/chartist/chartist.min.js +9 -0
- data/data/weaver/js/plugins/chartist/chartist.min.js.map +1 -0
- data/data/weaver/js/plugins/clockpicker/clockpicker.js +729 -0
- data/data/weaver/js/plugins/dataTables/dataTables.bootstrap.js +195 -234
- data/data/weaver/js/plugins/dataTables/dataTables.tableTools.min.js +46 -45
- data/data/weaver/js/plugins/dataTables/jquery.dataTables.js +628 -373
- data/data/weaver/js/plugins/dataTables/swf/copy_csv_xls.swf +0 -0
- data/data/weaver/js/plugins/dataTables/swf/copy_csv_xls_pdf.swf +0 -0
- data/data/weaver/js/plugins/daterangepicker/daterangepicker.js +1304 -0
- data/data/weaver/js/plugins/diff_match_patch/COPYING +177 -0
- data/data/weaver/js/plugins/diff_match_patch/README.txt +43 -0
- data/data/weaver/js/plugins/diff_match_patch/javascript/diff_match_patch.js +49 -0
- data/data/weaver/js/plugins/footable/footable.all.min.js +14 -0
- data/data/weaver/js/plugins/fullcalendar/moment.min.js +3 -3
- data/data/weaver/js/plugins/idle-timer/idle-timer.min.js +2 -0
- data/data/weaver/js/plugins/jvectormap/jquery-jvectormap-2.0.2.css +130 -0
- data/data/weaver/js/plugins/jvectormap/jquery-jvectormap-2.0.2.min.js +3328 -0
- data/data/weaver/js/plugins/masonary/masonry.pkgd.min.js +9 -0
- data/data/weaver/js/plugins/metisMenu/jquery.metisMenu.js +3 -113
- data/data/weaver/js/plugins/morris/morris.js +27 -23
- data/data/weaver/js/plugins/pace/pace.min.js +2 -2
- data/data/weaver/js/plugins/preetyTextDiff/jquery.pretty-text-diff.min.js +76 -0
- data/data/weaver/js/plugins/select2/select2.full.min.js +3 -0
- data/data/weaver/js/plugins/slick/slick.min.js +18 -0
- data/data/weaver/js/plugins/slimscroll/jquery.slimscroll.js +96 -90
- data/data/weaver/js/plugins/slimscroll/jquery.slimscroll.min.js +10 -10
- data/data/weaver/js/plugins/sweetalert/sweetalert.min.js +1 -0
- data/data/weaver/js/plugins/tinycon/tinycon.min.js +8 -0
- data/data/weaver/js/plugins/wow/wow.min.js +2 -0
- data/{bin → exe}/weaver +3 -2
- data/lib/weaver.rb +236 -53
- data/lib/weaver/version.rb +1 -1
- data/weaver.gemspec +2 -2
- metadata +50 -7
- data/data/weaver/js/plugins/jvectormap/jquery-jvectormap-1.2.2.min.js +0 -8
Binary file
|
Binary file
|
Binary file
|
data/data/weaver/js/bootstrap.js
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
/*!
|
2
|
-
* Bootstrap v3.3.
|
3
|
-
* Copyright 2011-
|
4
|
-
* Licensed under MIT
|
2
|
+
* Bootstrap v3.3.5 (http://getbootstrap.com)
|
3
|
+
* Copyright 2011-2015 Twitter, Inc.
|
4
|
+
* Licensed under the MIT license
|
5
5
|
*/
|
6
6
|
|
7
7
|
if (typeof jQuery === 'undefined') {
|
@@ -9,6 +9,7 @@ if (typeof jQuery === 'undefined') {
|
|
9
9
|
}
|
10
10
|
|
11
11
|
+function ($) {
|
12
|
+
'use strict';
|
12
13
|
var version = $.fn.jquery.split(' ')[0].split('.')
|
13
14
|
if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1)) {
|
14
15
|
throw new Error('Bootstrap\'s JavaScript requires jQuery version 1.9.1 or higher')
|
@@ -16,10 +17,10 @@ if (typeof jQuery === 'undefined') {
|
|
16
17
|
}(jQuery);
|
17
18
|
|
18
19
|
/* ========================================================================
|
19
|
-
* Bootstrap: transition.js v3.3.
|
20
|
+
* Bootstrap: transition.js v3.3.5
|
20
21
|
* http://getbootstrap.com/javascript/#transitions
|
21
22
|
* ========================================================================
|
22
|
-
* Copyright 2011-
|
23
|
+
* Copyright 2011-2015 Twitter, Inc.
|
23
24
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
24
25
|
* ======================================================================== */
|
25
26
|
|
@@ -76,10 +77,10 @@ if (typeof jQuery === 'undefined') {
|
|
76
77
|
}(jQuery);
|
77
78
|
|
78
79
|
/* ========================================================================
|
79
|
-
* Bootstrap: alert.js v3.3.
|
80
|
+
* Bootstrap: alert.js v3.3.5
|
80
81
|
* http://getbootstrap.com/javascript/#alerts
|
81
82
|
* ========================================================================
|
82
|
-
* Copyright 2011-
|
83
|
+
* Copyright 2011-2015 Twitter, Inc.
|
83
84
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
84
85
|
* ======================================================================== */
|
85
86
|
|
@@ -95,7 +96,7 @@ if (typeof jQuery === 'undefined') {
|
|
95
96
|
$(el).on('click', dismiss, this.close)
|
96
97
|
}
|
97
98
|
|
98
|
-
Alert.VERSION = '3.3.
|
99
|
+
Alert.VERSION = '3.3.5'
|
99
100
|
|
100
101
|
Alert.TRANSITION_DURATION = 150
|
101
102
|
|
@@ -171,10 +172,10 @@ if (typeof jQuery === 'undefined') {
|
|
171
172
|
}(jQuery);
|
172
173
|
|
173
174
|
/* ========================================================================
|
174
|
-
* Bootstrap: button.js v3.3.
|
175
|
+
* Bootstrap: button.js v3.3.5
|
175
176
|
* http://getbootstrap.com/javascript/#buttons
|
176
177
|
* ========================================================================
|
177
|
-
* Copyright 2011-
|
178
|
+
* Copyright 2011-2015 Twitter, Inc.
|
178
179
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
179
180
|
* ======================================================================== */
|
180
181
|
|
@@ -191,7 +192,7 @@ if (typeof jQuery === 'undefined') {
|
|
191
192
|
this.isLoading = false
|
192
193
|
}
|
193
194
|
|
194
|
-
Button.VERSION = '3.3.
|
195
|
+
Button.VERSION = '3.3.5'
|
195
196
|
|
196
197
|
Button.DEFAULTS = {
|
197
198
|
loadingText: 'loading...'
|
@@ -203,7 +204,7 @@ if (typeof jQuery === 'undefined') {
|
|
203
204
|
var val = $el.is('input') ? 'val' : 'html'
|
204
205
|
var data = $el.data()
|
205
206
|
|
206
|
-
state
|
207
|
+
state += 'Text'
|
207
208
|
|
208
209
|
if (data.resetText == null) $el.data('resetText', $el[val]())
|
209
210
|
|
@@ -228,15 +229,19 @@ if (typeof jQuery === 'undefined') {
|
|
228
229
|
if ($parent.length) {
|
229
230
|
var $input = this.$element.find('input')
|
230
231
|
if ($input.prop('type') == 'radio') {
|
231
|
-
if ($input.prop('checked')
|
232
|
-
|
232
|
+
if ($input.prop('checked')) changed = false
|
233
|
+
$parent.find('.active').removeClass('active')
|
234
|
+
this.$element.addClass('active')
|
235
|
+
} else if ($input.prop('type') == 'checkbox') {
|
236
|
+
if (($input.prop('checked')) !== this.$element.hasClass('active')) changed = false
|
237
|
+
this.$element.toggleClass('active')
|
233
238
|
}
|
234
|
-
|
239
|
+
$input.prop('checked', this.$element.hasClass('active'))
|
240
|
+
if (changed) $input.trigger('change')
|
235
241
|
} else {
|
236
242
|
this.$element.attr('aria-pressed', !this.$element.hasClass('active'))
|
243
|
+
this.$element.toggleClass('active')
|
237
244
|
}
|
238
|
-
|
239
|
-
if (changed) this.$element.toggleClass('active')
|
240
245
|
}
|
241
246
|
|
242
247
|
|
@@ -279,19 +284,19 @@ if (typeof jQuery === 'undefined') {
|
|
279
284
|
var $btn = $(e.target)
|
280
285
|
if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn')
|
281
286
|
Plugin.call($btn, 'toggle')
|
282
|
-
e.preventDefault()
|
287
|
+
if (!($(e.target).is('input[type="radio"]') || $(e.target).is('input[type="checkbox"]'))) e.preventDefault()
|
283
288
|
})
|
284
289
|
.on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^="button"]', function (e) {
|
285
|
-
$(e.target).closest('.btn').toggleClass('focus', e.type
|
290
|
+
$(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type))
|
286
291
|
})
|
287
292
|
|
288
293
|
}(jQuery);
|
289
294
|
|
290
295
|
/* ========================================================================
|
291
|
-
* Bootstrap: carousel.js v3.3.
|
296
|
+
* Bootstrap: carousel.js v3.3.5
|
292
297
|
* http://getbootstrap.com/javascript/#carousel
|
293
298
|
* ========================================================================
|
294
|
-
* Copyright 2011-
|
299
|
+
* Copyright 2011-2015 Twitter, Inc.
|
295
300
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
296
301
|
* ======================================================================== */
|
297
302
|
|
@@ -306,10 +311,10 @@ if (typeof jQuery === 'undefined') {
|
|
306
311
|
this.$element = $(element)
|
307
312
|
this.$indicators = this.$element.find('.carousel-indicators')
|
308
313
|
this.options = options
|
309
|
-
this.paused =
|
310
|
-
this.sliding =
|
311
|
-
this.interval =
|
312
|
-
this.$active =
|
314
|
+
this.paused = null
|
315
|
+
this.sliding = null
|
316
|
+
this.interval = null
|
317
|
+
this.$active = null
|
313
318
|
this.$items = null
|
314
319
|
|
315
320
|
this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this))
|
@@ -319,7 +324,7 @@ if (typeof jQuery === 'undefined') {
|
|
319
324
|
.on('mouseleave.bs.carousel', $.proxy(this.cycle, this))
|
320
325
|
}
|
321
326
|
|
322
|
-
Carousel.VERSION = '3.3.
|
327
|
+
Carousel.VERSION = '3.3.5'
|
323
328
|
|
324
329
|
Carousel.TRANSITION_DURATION = 600
|
325
330
|
|
@@ -331,6 +336,7 @@ if (typeof jQuery === 'undefined') {
|
|
331
336
|
}
|
332
337
|
|
333
338
|
Carousel.prototype.keydown = function (e) {
|
339
|
+
if (/input|textarea/i.test(e.target.tagName)) return
|
334
340
|
switch (e.which) {
|
335
341
|
case 37: this.prev(); break
|
336
342
|
case 39: this.next(); break
|
@@ -358,8 +364,11 @@ if (typeof jQuery === 'undefined') {
|
|
358
364
|
}
|
359
365
|
|
360
366
|
Carousel.prototype.getItemForDirection = function (direction, active) {
|
361
|
-
var delta = direction == 'prev' ? -1 : 1
|
362
367
|
var activeIndex = this.getItemIndex(active)
|
368
|
+
var willWrap = (direction == 'prev' && activeIndex === 0)
|
369
|
+
|| (direction == 'next' && activeIndex == (this.$items.length - 1))
|
370
|
+
if (willWrap && !this.options.wrap) return active
|
371
|
+
var delta = direction == 'prev' ? -1 : 1
|
363
372
|
var itemIndex = (activeIndex + delta) % this.$items.length
|
364
373
|
return this.$items.eq(itemIndex)
|
365
374
|
}
|
@@ -404,14 +413,8 @@ if (typeof jQuery === 'undefined') {
|
|
404
413
|
var $next = next || this.getItemForDirection(type, $active)
|
405
414
|
var isCycling = this.interval
|
406
415
|
var direction = type == 'next' ? 'left' : 'right'
|
407
|
-
var fallback = type == 'next' ? 'first' : 'last'
|
408
416
|
var that = this
|
409
417
|
|
410
|
-
if (!$next.length) {
|
411
|
-
if (!this.options.wrap) return
|
412
|
-
$next = this.$element.find('.item')[fallback]()
|
413
|
-
}
|
414
|
-
|
415
418
|
if ($next.hasClass('active')) return (this.sliding = false)
|
416
419
|
|
417
420
|
var relatedTarget = $next[0]
|
@@ -528,10 +531,10 @@ if (typeof jQuery === 'undefined') {
|
|
528
531
|
}(jQuery);
|
529
532
|
|
530
533
|
/* ========================================================================
|
531
|
-
* Bootstrap: collapse.js v3.3.
|
534
|
+
* Bootstrap: collapse.js v3.3.5
|
532
535
|
* http://getbootstrap.com/javascript/#collapse
|
533
536
|
* ========================================================================
|
534
|
-
* Copyright 2011-
|
537
|
+
* Copyright 2011-2015 Twitter, Inc.
|
535
538
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
536
539
|
* ======================================================================== */
|
537
540
|
|
@@ -545,7 +548,8 @@ if (typeof jQuery === 'undefined') {
|
|
545
548
|
var Collapse = function (element, options) {
|
546
549
|
this.$element = $(element)
|
547
550
|
this.options = $.extend({}, Collapse.DEFAULTS, options)
|
548
|
-
this.$trigger = $(
|
551
|
+
this.$trigger = $('[data-toggle="collapse"][href="#' + element.id + '"],' +
|
552
|
+
'[data-toggle="collapse"][data-target="#' + element.id + '"]')
|
549
553
|
this.transitioning = null
|
550
554
|
|
551
555
|
if (this.options.parent) {
|
@@ -557,13 +561,12 @@ if (typeof jQuery === 'undefined') {
|
|
557
561
|
if (this.options.toggle) this.toggle()
|
558
562
|
}
|
559
563
|
|
560
|
-
Collapse.VERSION = '3.3.
|
564
|
+
Collapse.VERSION = '3.3.5'
|
561
565
|
|
562
566
|
Collapse.TRANSITION_DURATION = 350
|
563
567
|
|
564
568
|
Collapse.DEFAULTS = {
|
565
|
-
toggle: true
|
566
|
-
trigger: '[data-toggle="collapse"]'
|
569
|
+
toggle: true
|
567
570
|
}
|
568
571
|
|
569
572
|
Collapse.prototype.dimension = function () {
|
@@ -575,7 +578,7 @@ if (typeof jQuery === 'undefined') {
|
|
575
578
|
if (this.transitioning || this.$element.hasClass('in')) return
|
576
579
|
|
577
580
|
var activesData
|
578
|
-
var actives = this.$parent && this.$parent.
|
581
|
+
var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing')
|
579
582
|
|
580
583
|
if (actives && actives.length) {
|
581
584
|
activesData = actives.data('bs.collapse')
|
@@ -701,7 +704,7 @@ if (typeof jQuery === 'undefined') {
|
|
701
704
|
var data = $this.data('bs.collapse')
|
702
705
|
var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option)
|
703
706
|
|
704
|
-
if (!data && options.toggle && option
|
707
|
+
if (!data && options.toggle && /show|hide/.test(option)) options.toggle = false
|
705
708
|
if (!data) $this.data('bs.collapse', (data = new Collapse(this, options)))
|
706
709
|
if (typeof option == 'string') data[option]()
|
707
710
|
})
|
@@ -732,7 +735,7 @@ if (typeof jQuery === 'undefined') {
|
|
732
735
|
|
733
736
|
var $target = getTargetFromTrigger($this)
|
734
737
|
var data = $target.data('bs.collapse')
|
735
|
-
var option = data ? 'toggle' :
|
738
|
+
var option = data ? 'toggle' : $this.data()
|
736
739
|
|
737
740
|
Plugin.call($target, option)
|
738
741
|
})
|
@@ -740,10 +743,10 @@ if (typeof jQuery === 'undefined') {
|
|
740
743
|
}(jQuery);
|
741
744
|
|
742
745
|
/* ========================================================================
|
743
|
-
* Bootstrap: dropdown.js v3.3.
|
746
|
+
* Bootstrap: dropdown.js v3.3.5
|
744
747
|
* http://getbootstrap.com/javascript/#dropdowns
|
745
748
|
* ========================================================================
|
746
|
-
* Copyright 2011-
|
749
|
+
* Copyright 2011-2015 Twitter, Inc.
|
747
750
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
748
751
|
* ======================================================================== */
|
749
752
|
|
@@ -760,7 +763,41 @@ if (typeof jQuery === 'undefined') {
|
|
760
763
|
$(element).on('click.bs.dropdown', this.toggle)
|
761
764
|
}
|
762
765
|
|
763
|
-
Dropdown.VERSION = '3.3.
|
766
|
+
Dropdown.VERSION = '3.3.5'
|
767
|
+
|
768
|
+
function getParent($this) {
|
769
|
+
var selector = $this.attr('data-target')
|
770
|
+
|
771
|
+
if (!selector) {
|
772
|
+
selector = $this.attr('href')
|
773
|
+
selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
|
774
|
+
}
|
775
|
+
|
776
|
+
var $parent = selector && $(selector)
|
777
|
+
|
778
|
+
return $parent && $parent.length ? $parent : $this.parent()
|
779
|
+
}
|
780
|
+
|
781
|
+
function clearMenus(e) {
|
782
|
+
if (e && e.which === 3) return
|
783
|
+
$(backdrop).remove()
|
784
|
+
$(toggle).each(function () {
|
785
|
+
var $this = $(this)
|
786
|
+
var $parent = getParent($this)
|
787
|
+
var relatedTarget = { relatedTarget: this }
|
788
|
+
|
789
|
+
if (!$parent.hasClass('open')) return
|
790
|
+
|
791
|
+
if (e && e.type == 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) return
|
792
|
+
|
793
|
+
$parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget))
|
794
|
+
|
795
|
+
if (e.isDefaultPrevented()) return
|
796
|
+
|
797
|
+
$this.attr('aria-expanded', 'false')
|
798
|
+
$parent.removeClass('open').trigger('hidden.bs.dropdown', relatedTarget)
|
799
|
+
})
|
800
|
+
}
|
764
801
|
|
765
802
|
Dropdown.prototype.toggle = function (e) {
|
766
803
|
var $this = $(this)
|
@@ -775,7 +812,10 @@ if (typeof jQuery === 'undefined') {
|
|
775
812
|
if (!isActive) {
|
776
813
|
if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {
|
777
814
|
// if mobile we use a backdrop because click events don't delegate
|
778
|
-
$('
|
815
|
+
$(document.createElement('div'))
|
816
|
+
.addClass('dropdown-backdrop')
|
817
|
+
.insertAfter($(this))
|
818
|
+
.on('click', clearMenus)
|
779
819
|
}
|
780
820
|
|
781
821
|
var relatedTarget = { relatedTarget: this }
|
@@ -796,7 +836,7 @@ if (typeof jQuery === 'undefined') {
|
|
796
836
|
}
|
797
837
|
|
798
838
|
Dropdown.prototype.keydown = function (e) {
|
799
|
-
if (!/(38|40|27|32)/.test(e.which)) return
|
839
|
+
if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return
|
800
840
|
|
801
841
|
var $this = $(this)
|
802
842
|
|
@@ -808,57 +848,25 @@ if (typeof jQuery === 'undefined') {
|
|
808
848
|
var $parent = getParent($this)
|
809
849
|
var isActive = $parent.hasClass('open')
|
810
850
|
|
811
|
-
if (
|
851
|
+
if (!isActive && e.which != 27 || isActive && e.which == 27) {
|
812
852
|
if (e.which == 27) $parent.find(toggle).trigger('focus')
|
813
853
|
return $this.trigger('click')
|
814
854
|
}
|
815
855
|
|
816
|
-
var desc = ' li:not(.
|
817
|
-
var $items = $parent.find('
|
856
|
+
var desc = ' li:not(.disabled):visible a'
|
857
|
+
var $items = $parent.find('.dropdown-menu' + desc)
|
818
858
|
|
819
859
|
if (!$items.length) return
|
820
860
|
|
821
861
|
var index = $items.index(e.target)
|
822
862
|
|
823
|
-
if (e.which == 38 && index > 0) index--
|
824
|
-
if (e.which == 40 && index < $items.length - 1) index++
|
825
|
-
if (!~index)
|
863
|
+
if (e.which == 38 && index > 0) index-- // up
|
864
|
+
if (e.which == 40 && index < $items.length - 1) index++ // down
|
865
|
+
if (!~index) index = 0
|
826
866
|
|
827
867
|
$items.eq(index).trigger('focus')
|
828
868
|
}
|
829
869
|
|
830
|
-
function clearMenus(e) {
|
831
|
-
if (e && e.which === 3) return
|
832
|
-
$(backdrop).remove()
|
833
|
-
$(toggle).each(function () {
|
834
|
-
var $this = $(this)
|
835
|
-
var $parent = getParent($this)
|
836
|
-
var relatedTarget = { relatedTarget: this }
|
837
|
-
|
838
|
-
if (!$parent.hasClass('open')) return
|
839
|
-
|
840
|
-
$parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget))
|
841
|
-
|
842
|
-
if (e.isDefaultPrevented()) return
|
843
|
-
|
844
|
-
$this.attr('aria-expanded', 'false')
|
845
|
-
$parent.removeClass('open').trigger('hidden.bs.dropdown', relatedTarget)
|
846
|
-
})
|
847
|
-
}
|
848
|
-
|
849
|
-
function getParent($this) {
|
850
|
-
var selector = $this.attr('data-target')
|
851
|
-
|
852
|
-
if (!selector) {
|
853
|
-
selector = $this.attr('href')
|
854
|
-
selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
|
855
|
-
}
|
856
|
-
|
857
|
-
var $parent = selector && $(selector)
|
858
|
-
|
859
|
-
return $parent && $parent.length ? $parent : $this.parent()
|
860
|
-
}
|
861
|
-
|
862
870
|
|
863
871
|
// DROPDOWN PLUGIN DEFINITION
|
864
872
|
// ==========================
|
@@ -896,16 +904,15 @@ if (typeof jQuery === 'undefined') {
|
|
896
904
|
.on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
|
897
905
|
.on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)
|
898
906
|
.on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown)
|
899
|
-
.on('keydown.bs.dropdown.data-api', '
|
900
|
-
.on('keydown.bs.dropdown.data-api', '[role="listbox"]', Dropdown.prototype.keydown)
|
907
|
+
.on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown)
|
901
908
|
|
902
909
|
}(jQuery);
|
903
910
|
|
904
911
|
/* ========================================================================
|
905
|
-
* Bootstrap: modal.js v3.3.
|
912
|
+
* Bootstrap: modal.js v3.3.5
|
906
913
|
* http://getbootstrap.com/javascript/#modals
|
907
914
|
* ========================================================================
|
908
|
-
* Copyright 2011-
|
915
|
+
* Copyright 2011-2015 Twitter, Inc.
|
909
916
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
910
917
|
* ======================================================================== */
|
911
918
|
|
@@ -917,12 +924,15 @@ if (typeof jQuery === 'undefined') {
|
|
917
924
|
// ======================
|
918
925
|
|
919
926
|
var Modal = function (element, options) {
|
920
|
-
this.options
|
921
|
-
this.$body
|
922
|
-
this.$element
|
923
|
-
this.$
|
924
|
-
this
|
925
|
-
this.
|
927
|
+
this.options = options
|
928
|
+
this.$body = $(document.body)
|
929
|
+
this.$element = $(element)
|
930
|
+
this.$dialog = this.$element.find('.modal-dialog')
|
931
|
+
this.$backdrop = null
|
932
|
+
this.isShown = null
|
933
|
+
this.originalBodyPad = null
|
934
|
+
this.scrollbarWidth = 0
|
935
|
+
this.ignoreBackdropClick = false
|
926
936
|
|
927
937
|
if (this.options.remote) {
|
928
938
|
this.$element
|
@@ -933,7 +943,7 @@ if (typeof jQuery === 'undefined') {
|
|
933
943
|
}
|
934
944
|
}
|
935
945
|
|
936
|
-
Modal.VERSION = '3.3.
|
946
|
+
Modal.VERSION = '3.3.5'
|
937
947
|
|
938
948
|
Modal.TRANSITION_DURATION = 300
|
939
949
|
Modal.BACKDROP_TRANSITION_DURATION = 150
|
@@ -959,13 +969,20 @@ if (typeof jQuery === 'undefined') {
|
|
959
969
|
this.isShown = true
|
960
970
|
|
961
971
|
this.checkScrollbar()
|
972
|
+
this.setScrollbar()
|
962
973
|
this.$body.addClass('modal-open')
|
963
974
|
|
964
|
-
this.setScrollbar()
|
965
975
|
this.escape()
|
976
|
+
this.resize()
|
966
977
|
|
967
978
|
this.$element.on('click.dismiss.bs.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this))
|
968
979
|
|
980
|
+
this.$dialog.on('mousedown.dismiss.bs.modal', function () {
|
981
|
+
that.$element.one('mouseup.dismiss.bs.modal', function (e) {
|
982
|
+
if ($(e.target).is(that.$element)) that.ignoreBackdropClick = true
|
983
|
+
})
|
984
|
+
})
|
985
|
+
|
969
986
|
this.backdrop(function () {
|
970
987
|
var transition = $.support.transition && that.$element.hasClass('fade')
|
971
988
|
|
@@ -977,20 +994,20 @@ if (typeof jQuery === 'undefined') {
|
|
977
994
|
.show()
|
978
995
|
.scrollTop(0)
|
979
996
|
|
997
|
+
that.adjustDialog()
|
998
|
+
|
980
999
|
if (transition) {
|
981
1000
|
that.$element[0].offsetWidth // force reflow
|
982
1001
|
}
|
983
1002
|
|
984
|
-
that.$element
|
985
|
-
.addClass('in')
|
986
|
-
.attr('aria-hidden', false)
|
1003
|
+
that.$element.addClass('in')
|
987
1004
|
|
988
1005
|
that.enforceFocus()
|
989
1006
|
|
990
1007
|
var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })
|
991
1008
|
|
992
1009
|
transition ?
|
993
|
-
that.$
|
1010
|
+
that.$dialog // wait for modal to slide in
|
994
1011
|
.one('bsTransitionEnd', function () {
|
995
1012
|
that.$element.trigger('focus').trigger(e)
|
996
1013
|
})
|
@@ -1011,13 +1028,16 @@ if (typeof jQuery === 'undefined') {
|
|
1011
1028
|
this.isShown = false
|
1012
1029
|
|
1013
1030
|
this.escape()
|
1031
|
+
this.resize()
|
1014
1032
|
|
1015
1033
|
$(document).off('focusin.bs.modal')
|
1016
1034
|
|
1017
1035
|
this.$element
|
1018
1036
|
.removeClass('in')
|
1019
|
-
.attr('aria-hidden', true)
|
1020
1037
|
.off('click.dismiss.bs.modal')
|
1038
|
+
.off('mouseup.dismiss.bs.modal')
|
1039
|
+
|
1040
|
+
this.$dialog.off('mousedown.dismiss.bs.modal')
|
1021
1041
|
|
1022
1042
|
$.support.transition && this.$element.hasClass('fade') ?
|
1023
1043
|
this.$element
|
@@ -1046,11 +1066,20 @@ if (typeof jQuery === 'undefined') {
|
|
1046
1066
|
}
|
1047
1067
|
}
|
1048
1068
|
|
1069
|
+
Modal.prototype.resize = function () {
|
1070
|
+
if (this.isShown) {
|
1071
|
+
$(window).on('resize.bs.modal', $.proxy(this.handleUpdate, this))
|
1072
|
+
} else {
|
1073
|
+
$(window).off('resize.bs.modal')
|
1074
|
+
}
|
1075
|
+
}
|
1076
|
+
|
1049
1077
|
Modal.prototype.hideModal = function () {
|
1050
1078
|
var that = this
|
1051
1079
|
this.$element.hide()
|
1052
1080
|
this.backdrop(function () {
|
1053
1081
|
that.$body.removeClass('modal-open')
|
1082
|
+
that.resetAdjustments()
|
1054
1083
|
that.resetScrollbar()
|
1055
1084
|
that.$element.trigger('hidden.bs.modal')
|
1056
1085
|
})
|
@@ -1068,14 +1097,20 @@ if (typeof jQuery === 'undefined') {
|
|
1068
1097
|
if (this.isShown && this.options.backdrop) {
|
1069
1098
|
var doAnimate = $.support.transition && animate
|
1070
1099
|
|
1071
|
-
this.$backdrop = $('
|
1072
|
-
.
|
1073
|
-
.
|
1074
|
-
|
1075
|
-
|
1076
|
-
|
1077
|
-
|
1078
|
-
|
1100
|
+
this.$backdrop = $(document.createElement('div'))
|
1101
|
+
.addClass('modal-backdrop ' + animate)
|
1102
|
+
.appendTo(this.$body)
|
1103
|
+
|
1104
|
+
this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {
|
1105
|
+
if (this.ignoreBackdropClick) {
|
1106
|
+
this.ignoreBackdropClick = false
|
1107
|
+
return
|
1108
|
+
}
|
1109
|
+
if (e.target !== e.currentTarget) return
|
1110
|
+
this.options.backdrop == 'static'
|
1111
|
+
? this.$element[0].focus()
|
1112
|
+
: this.hide()
|
1113
|
+
}, this))
|
1079
1114
|
|
1080
1115
|
if (doAnimate) this.$backdrop[0].offsetWidth // force reflow
|
1081
1116
|
|
@@ -1107,21 +1142,49 @@ if (typeof jQuery === 'undefined') {
|
|
1107
1142
|
}
|
1108
1143
|
}
|
1109
1144
|
|
1145
|
+
// these following methods are used to handle overflowing modals
|
1146
|
+
|
1147
|
+
Modal.prototype.handleUpdate = function () {
|
1148
|
+
this.adjustDialog()
|
1149
|
+
}
|
1150
|
+
|
1151
|
+
Modal.prototype.adjustDialog = function () {
|
1152
|
+
var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight
|
1153
|
+
|
1154
|
+
this.$element.css({
|
1155
|
+
paddingLeft: !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '',
|
1156
|
+
paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : ''
|
1157
|
+
})
|
1158
|
+
}
|
1159
|
+
|
1160
|
+
Modal.prototype.resetAdjustments = function () {
|
1161
|
+
this.$element.css({
|
1162
|
+
paddingLeft: '',
|
1163
|
+
paddingRight: ''
|
1164
|
+
})
|
1165
|
+
}
|
1166
|
+
|
1110
1167
|
Modal.prototype.checkScrollbar = function () {
|
1168
|
+
var fullWindowWidth = window.innerWidth
|
1169
|
+
if (!fullWindowWidth) { // workaround for missing window.innerWidth in IE8
|
1170
|
+
var documentElementRect = document.documentElement.getBoundingClientRect()
|
1171
|
+
fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left)
|
1172
|
+
}
|
1173
|
+
this.bodyIsOverflowing = document.body.clientWidth < fullWindowWidth
|
1111
1174
|
this.scrollbarWidth = this.measureScrollbar()
|
1112
1175
|
}
|
1113
1176
|
|
1114
1177
|
Modal.prototype.setScrollbar = function () {
|
1115
1178
|
var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10)
|
1116
|
-
|
1179
|
+
this.originalBodyPad = document.body.style.paddingRight || ''
|
1180
|
+
if (this.bodyIsOverflowing) this.$body.css('padding-right', bodyPad + this.scrollbarWidth)
|
1117
1181
|
}
|
1118
1182
|
|
1119
1183
|
Modal.prototype.resetScrollbar = function () {
|
1120
|
-
this.$body.css('padding-right',
|
1184
|
+
this.$body.css('padding-right', this.originalBodyPad)
|
1121
1185
|
}
|
1122
1186
|
|
1123
1187
|
Modal.prototype.measureScrollbar = function () { // thx walsh
|
1124
|
-
if (document.body.clientWidth >= window.innerWidth) return 0
|
1125
1188
|
var scrollDiv = document.createElement('div')
|
1126
1189
|
scrollDiv.className = 'modal-scrollbar-measure'
|
1127
1190
|
this.$body.append(scrollDiv)
|
@@ -1184,11 +1247,11 @@ if (typeof jQuery === 'undefined') {
|
|
1184
1247
|
}(jQuery);
|
1185
1248
|
|
1186
1249
|
/* ========================================================================
|
1187
|
-
* Bootstrap: tooltip.js v3.3.
|
1250
|
+
* Bootstrap: tooltip.js v3.3.5
|
1188
1251
|
* http://getbootstrap.com/javascript/#tooltip
|
1189
1252
|
* Inspired by the original jQuery.tipsy by Jason Frame
|
1190
1253
|
* ========================================================================
|
1191
|
-
* Copyright 2011-
|
1254
|
+
* Copyright 2011-2015 Twitter, Inc.
|
1192
1255
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
1193
1256
|
* ======================================================================== */
|
1194
1257
|
|
@@ -1200,17 +1263,18 @@ if (typeof jQuery === 'undefined') {
|
|
1200
1263
|
// ===============================
|
1201
1264
|
|
1202
1265
|
var Tooltip = function (element, options) {
|
1203
|
-
this.type =
|
1204
|
-
this.options =
|
1205
|
-
this.enabled =
|
1206
|
-
this.timeout =
|
1207
|
-
this.hoverState =
|
1266
|
+
this.type = null
|
1267
|
+
this.options = null
|
1268
|
+
this.enabled = null
|
1269
|
+
this.timeout = null
|
1270
|
+
this.hoverState = null
|
1208
1271
|
this.$element = null
|
1272
|
+
this.inState = null
|
1209
1273
|
|
1210
1274
|
this.init('tooltip', element, options)
|
1211
1275
|
}
|
1212
1276
|
|
1213
|
-
Tooltip.VERSION = '3.3.
|
1277
|
+
Tooltip.VERSION = '3.3.5'
|
1214
1278
|
|
1215
1279
|
Tooltip.TRANSITION_DURATION = 150
|
1216
1280
|
|
@@ -1235,7 +1299,12 @@ if (typeof jQuery === 'undefined') {
|
|
1235
1299
|
this.type = type
|
1236
1300
|
this.$element = $(element)
|
1237
1301
|
this.options = this.getOptions(options)
|
1238
|
-
this.$viewport = this.options.viewport && $(this.options.viewport.selector || this.options.viewport)
|
1302
|
+
this.$viewport = this.options.viewport && $($.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : (this.options.viewport.selector || this.options.viewport))
|
1303
|
+
this.inState = { click: false, hover: false, focus: false }
|
1304
|
+
|
1305
|
+
if (this.$element[0] instanceof document.constructor && !this.options.selector) {
|
1306
|
+
throw new Error('`selector` option must be specified when initializing ' + this.type + ' on the window.document object!')
|
1307
|
+
}
|
1239
1308
|
|
1240
1309
|
var triggers = this.options.trigger.split(' ')
|
1241
1310
|
|
@@ -1290,16 +1359,20 @@ if (typeof jQuery === 'undefined') {
|
|
1290
1359
|
var self = obj instanceof this.constructor ?
|
1291
1360
|
obj : $(obj.currentTarget).data('bs.' + this.type)
|
1292
1361
|
|
1293
|
-
if (self && self.$tip && self.$tip.is(':visible')) {
|
1294
|
-
self.hoverState = 'in'
|
1295
|
-
return
|
1296
|
-
}
|
1297
|
-
|
1298
1362
|
if (!self) {
|
1299
1363
|
self = new this.constructor(obj.currentTarget, this.getDelegateOptions())
|
1300
1364
|
$(obj.currentTarget).data('bs.' + this.type, self)
|
1301
1365
|
}
|
1302
1366
|
|
1367
|
+
if (obj instanceof $.Event) {
|
1368
|
+
self.inState[obj.type == 'focusin' ? 'focus' : 'hover'] = true
|
1369
|
+
}
|
1370
|
+
|
1371
|
+
if (self.tip().hasClass('in') || self.hoverState == 'in') {
|
1372
|
+
self.hoverState = 'in'
|
1373
|
+
return
|
1374
|
+
}
|
1375
|
+
|
1303
1376
|
clearTimeout(self.timeout)
|
1304
1377
|
|
1305
1378
|
self.hoverState = 'in'
|
@@ -1311,6 +1384,14 @@ if (typeof jQuery === 'undefined') {
|
|
1311
1384
|
}, self.options.delay.show)
|
1312
1385
|
}
|
1313
1386
|
|
1387
|
+
Tooltip.prototype.isInStateTrue = function () {
|
1388
|
+
for (var key in this.inState) {
|
1389
|
+
if (this.inState[key]) return true
|
1390
|
+
}
|
1391
|
+
|
1392
|
+
return false
|
1393
|
+
}
|
1394
|
+
|
1314
1395
|
Tooltip.prototype.leave = function (obj) {
|
1315
1396
|
var self = obj instanceof this.constructor ?
|
1316
1397
|
obj : $(obj.currentTarget).data('bs.' + this.type)
|
@@ -1320,6 +1401,12 @@ if (typeof jQuery === 'undefined') {
|
|
1320
1401
|
$(obj.currentTarget).data('bs.' + this.type, self)
|
1321
1402
|
}
|
1322
1403
|
|
1404
|
+
if (obj instanceof $.Event) {
|
1405
|
+
self.inState[obj.type == 'focusout' ? 'focus' : 'hover'] = false
|
1406
|
+
}
|
1407
|
+
|
1408
|
+
if (self.isInStateTrue()) return
|
1409
|
+
|
1323
1410
|
clearTimeout(self.timeout)
|
1324
1411
|
|
1325
1412
|
self.hoverState = 'out'
|
@@ -1366,6 +1453,7 @@ if (typeof jQuery === 'undefined') {
|
|
1366
1453
|
.data('bs.' + this.type, this)
|
1367
1454
|
|
1368
1455
|
this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)
|
1456
|
+
this.$element.trigger('inserted.bs.' + this.type)
|
1369
1457
|
|
1370
1458
|
var pos = this.getPosition()
|
1371
1459
|
var actualWidth = $tip[0].offsetWidth
|
@@ -1373,13 +1461,12 @@ if (typeof jQuery === 'undefined') {
|
|
1373
1461
|
|
1374
1462
|
if (autoPlace) {
|
1375
1463
|
var orgPlacement = placement
|
1376
|
-
var
|
1377
|
-
var containerDim = this.getPosition($container)
|
1464
|
+
var viewportDim = this.getPosition(this.$viewport)
|
1378
1465
|
|
1379
|
-
placement = placement == 'bottom' && pos.bottom + actualHeight >
|
1380
|
-
placement == 'top' && pos.top - actualHeight <
|
1381
|
-
placement == 'right' && pos.right + actualWidth >
|
1382
|
-
placement == 'left' && pos.left - actualWidth <
|
1466
|
+
placement = placement == 'bottom' && pos.bottom + actualHeight > viewportDim.bottom ? 'top' :
|
1467
|
+
placement == 'top' && pos.top - actualHeight < viewportDim.top ? 'bottom' :
|
1468
|
+
placement == 'right' && pos.right + actualWidth > viewportDim.width ? 'left' :
|
1469
|
+
placement == 'left' && pos.left - actualWidth < viewportDim.left ? 'right' :
|
1383
1470
|
placement
|
1384
1471
|
|
1385
1472
|
$tip
|
@@ -1420,8 +1507,8 @@ if (typeof jQuery === 'undefined') {
|
|
1420
1507
|
if (isNaN(marginTop)) marginTop = 0
|
1421
1508
|
if (isNaN(marginLeft)) marginLeft = 0
|
1422
1509
|
|
1423
|
-
offset.top
|
1424
|
-
offset.left
|
1510
|
+
offset.top += marginTop
|
1511
|
+
offset.left += marginLeft
|
1425
1512
|
|
1426
1513
|
// $.fn.offset doesn't round pixel values
|
1427
1514
|
// so we use setOffset directly with our own function B-0
|
@@ -1457,10 +1544,10 @@ if (typeof jQuery === 'undefined') {
|
|
1457
1544
|
this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical)
|
1458
1545
|
}
|
1459
1546
|
|
1460
|
-
Tooltip.prototype.replaceArrow = function (delta, dimension,
|
1547
|
+
Tooltip.prototype.replaceArrow = function (delta, dimension, isVertical) {
|
1461
1548
|
this.arrow()
|
1462
|
-
.css(
|
1463
|
-
.css(
|
1549
|
+
.css(isVertical ? 'left' : 'top', 50 * (1 - delta / dimension) + '%')
|
1550
|
+
.css(isVertical ? 'top' : 'left', '')
|
1464
1551
|
}
|
1465
1552
|
|
1466
1553
|
Tooltip.prototype.setContent = function () {
|
@@ -1473,7 +1560,7 @@ if (typeof jQuery === 'undefined') {
|
|
1473
1560
|
|
1474
1561
|
Tooltip.prototype.hide = function (callback) {
|
1475
1562
|
var that = this
|
1476
|
-
var $tip = this
|
1563
|
+
var $tip = $(this.$tip)
|
1477
1564
|
var e = $.Event('hide.bs.' + this.type)
|
1478
1565
|
|
1479
1566
|
function complete() {
|
@@ -1490,7 +1577,7 @@ if (typeof jQuery === 'undefined') {
|
|
1490
1577
|
|
1491
1578
|
$tip.removeClass('in')
|
1492
1579
|
|
1493
|
-
$.support.transition &&
|
1580
|
+
$.support.transition && $tip.hasClass('fade') ?
|
1494
1581
|
$tip
|
1495
1582
|
.one('bsTransitionEnd', complete)
|
1496
1583
|
.emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :
|
@@ -1503,7 +1590,7 @@ if (typeof jQuery === 'undefined') {
|
|
1503
1590
|
|
1504
1591
|
Tooltip.prototype.fixTitle = function () {
|
1505
1592
|
var $e = this.$element
|
1506
|
-
if ($e.attr('title') || typeof
|
1593
|
+
if ($e.attr('title') || typeof $e.attr('data-original-title') != 'string') {
|
1507
1594
|
$e.attr('data-original-title', $e.attr('title') || '').attr('title', '')
|
1508
1595
|
}
|
1509
1596
|
}
|
@@ -1531,10 +1618,10 @@ if (typeof jQuery === 'undefined') {
|
|
1531
1618
|
}
|
1532
1619
|
|
1533
1620
|
Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {
|
1534
|
-
return placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2
|
1535
|
-
placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2
|
1621
|
+
return placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } :
|
1622
|
+
placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :
|
1536
1623
|
placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :
|
1537
|
-
/* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width
|
1624
|
+
/* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }
|
1538
1625
|
|
1539
1626
|
}
|
1540
1627
|
|
@@ -1558,7 +1645,7 @@ if (typeof jQuery === 'undefined') {
|
|
1558
1645
|
var rightEdgeOffset = pos.left + viewportPadding + actualWidth
|
1559
1646
|
if (leftEdgeOffset < viewportDimensions.left) { // left overflow
|
1560
1647
|
delta.left = viewportDimensions.left - leftEdgeOffset
|
1561
|
-
} else if (rightEdgeOffset > viewportDimensions.
|
1648
|
+
} else if (rightEdgeOffset > viewportDimensions.right) { // right overflow
|
1562
1649
|
delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset
|
1563
1650
|
}
|
1564
1651
|
}
|
@@ -1584,7 +1671,13 @@ if (typeof jQuery === 'undefined') {
|
|
1584
1671
|
}
|
1585
1672
|
|
1586
1673
|
Tooltip.prototype.tip = function () {
|
1587
|
-
|
1674
|
+
if (!this.$tip) {
|
1675
|
+
this.$tip = $(this.options.template)
|
1676
|
+
if (this.$tip.length != 1) {
|
1677
|
+
throw new Error(this.type + ' `template` option must consist of exactly 1 top-level element!')
|
1678
|
+
}
|
1679
|
+
}
|
1680
|
+
return this.$tip
|
1588
1681
|
}
|
1589
1682
|
|
1590
1683
|
Tooltip.prototype.arrow = function () {
|
@@ -1613,7 +1706,13 @@ if (typeof jQuery === 'undefined') {
|
|
1613
1706
|
}
|
1614
1707
|
}
|
1615
1708
|
|
1616
|
-
|
1709
|
+
if (e) {
|
1710
|
+
self.inState.click = !self.inState.click
|
1711
|
+
if (self.isInStateTrue()) self.enter(self)
|
1712
|
+
else self.leave(self)
|
1713
|
+
} else {
|
1714
|
+
self.tip().hasClass('in') ? self.leave(self) : self.enter(self)
|
1715
|
+
}
|
1617
1716
|
}
|
1618
1717
|
|
1619
1718
|
Tooltip.prototype.destroy = function () {
|
@@ -1621,6 +1720,12 @@ if (typeof jQuery === 'undefined') {
|
|
1621
1720
|
clearTimeout(this.timeout)
|
1622
1721
|
this.hide(function () {
|
1623
1722
|
that.$element.off('.' + that.type).removeData('bs.' + that.type)
|
1723
|
+
if (that.$tip) {
|
1724
|
+
that.$tip.detach()
|
1725
|
+
}
|
1726
|
+
that.$tip = null
|
1727
|
+
that.$arrow = null
|
1728
|
+
that.$viewport = null
|
1624
1729
|
})
|
1625
1730
|
}
|
1626
1731
|
|
@@ -1630,18 +1735,12 @@ if (typeof jQuery === 'undefined') {
|
|
1630
1735
|
|
1631
1736
|
function Plugin(option) {
|
1632
1737
|
return this.each(function () {
|
1633
|
-
var $this
|
1634
|
-
var data
|
1635
|
-
var options
|
1636
|
-
|
1637
|
-
|
1638
|
-
if (!data
|
1639
|
-
if (selector) {
|
1640
|
-
if (!data) $this.data('bs.tooltip', (data = {}))
|
1641
|
-
if (!data[selector]) data[selector] = new Tooltip(this, options)
|
1642
|
-
} else {
|
1643
|
-
if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))
|
1644
|
-
}
|
1738
|
+
var $this = $(this)
|
1739
|
+
var data = $this.data('bs.tooltip')
|
1740
|
+
var options = typeof option == 'object' && option
|
1741
|
+
|
1742
|
+
if (!data && /destroy|hide/.test(option)) return
|
1743
|
+
if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))
|
1645
1744
|
if (typeof option == 'string') data[option]()
|
1646
1745
|
})
|
1647
1746
|
}
|
@@ -1663,10 +1762,10 @@ if (typeof jQuery === 'undefined') {
|
|
1663
1762
|
}(jQuery);
|
1664
1763
|
|
1665
1764
|
/* ========================================================================
|
1666
|
-
* Bootstrap: popover.js v3.3.
|
1765
|
+
* Bootstrap: popover.js v3.3.5
|
1667
1766
|
* http://getbootstrap.com/javascript/#popovers
|
1668
1767
|
* ========================================================================
|
1669
|
-
* Copyright 2011-
|
1768
|
+
* Copyright 2011-2015 Twitter, Inc.
|
1670
1769
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
1671
1770
|
* ======================================================================== */
|
1672
1771
|
|
@@ -1683,7 +1782,7 @@ if (typeof jQuery === 'undefined') {
|
|
1683
1782
|
|
1684
1783
|
if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')
|
1685
1784
|
|
1686
|
-
Popover.VERSION = '3.3.
|
1785
|
+
Popover.VERSION = '3.3.5'
|
1687
1786
|
|
1688
1787
|
Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {
|
1689
1788
|
placement: 'right',
|
@@ -1739,29 +1838,18 @@ if (typeof jQuery === 'undefined') {
|
|
1739
1838
|
return (this.$arrow = this.$arrow || this.tip().find('.arrow'))
|
1740
1839
|
}
|
1741
1840
|
|
1742
|
-
Popover.prototype.tip = function () {
|
1743
|
-
if (!this.$tip) this.$tip = $(this.options.template)
|
1744
|
-
return this.$tip
|
1745
|
-
}
|
1746
|
-
|
1747
1841
|
|
1748
1842
|
// POPOVER PLUGIN DEFINITION
|
1749
1843
|
// =========================
|
1750
1844
|
|
1751
1845
|
function Plugin(option) {
|
1752
1846
|
return this.each(function () {
|
1753
|
-
var $this
|
1754
|
-
var data
|
1755
|
-
var options
|
1756
|
-
|
1757
|
-
|
1758
|
-
if (!data
|
1759
|
-
if (selector) {
|
1760
|
-
if (!data) $this.data('bs.popover', (data = {}))
|
1761
|
-
if (!data[selector]) data[selector] = new Popover(this, options)
|
1762
|
-
} else {
|
1763
|
-
if (!data) $this.data('bs.popover', (data = new Popover(this, options)))
|
1764
|
-
}
|
1847
|
+
var $this = $(this)
|
1848
|
+
var data = $this.data('bs.popover')
|
1849
|
+
var options = typeof option == 'object' && option
|
1850
|
+
|
1851
|
+
if (!data && /destroy|hide/.test(option)) return
|
1852
|
+
if (!data) $this.data('bs.popover', (data = new Popover(this, options)))
|
1765
1853
|
if (typeof option == 'string') data[option]()
|
1766
1854
|
})
|
1767
1855
|
}
|
@@ -1783,10 +1871,10 @@ if (typeof jQuery === 'undefined') {
|
|
1783
1871
|
}(jQuery);
|
1784
1872
|
|
1785
1873
|
/* ========================================================================
|
1786
|
-
* Bootstrap: scrollspy.js v3.3.
|
1874
|
+
* Bootstrap: scrollspy.js v3.3.5
|
1787
1875
|
* http://getbootstrap.com/javascript/#scrollspy
|
1788
1876
|
* ========================================================================
|
1789
|
-
* Copyright 2011-
|
1877
|
+
* Copyright 2011-2015 Twitter, Inc.
|
1790
1878
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
1791
1879
|
* ======================================================================== */
|
1792
1880
|
|
@@ -1798,10 +1886,8 @@ if (typeof jQuery === 'undefined') {
|
|
1798
1886
|
// ==========================
|
1799
1887
|
|
1800
1888
|
function ScrollSpy(element, options) {
|
1801
|
-
|
1802
|
-
|
1803
|
-
this.$body = $('body')
|
1804
|
-
this.$scrollElement = $(element).is('body') ? $(window) : $(element)
|
1889
|
+
this.$body = $(document.body)
|
1890
|
+
this.$scrollElement = $(element).is(document.body) ? $(window) : $(element)
|
1805
1891
|
this.options = $.extend({}, ScrollSpy.DEFAULTS, options)
|
1806
1892
|
this.selector = (this.options.target || '') + ' .nav li > a'
|
1807
1893
|
this.offsets = []
|
@@ -1809,12 +1895,12 @@ if (typeof jQuery === 'undefined') {
|
|
1809
1895
|
this.activeTarget = null
|
1810
1896
|
this.scrollHeight = 0
|
1811
1897
|
|
1812
|
-
this.$scrollElement.on('scroll.bs.scrollspy', process)
|
1898
|
+
this.$scrollElement.on('scroll.bs.scrollspy', $.proxy(this.process, this))
|
1813
1899
|
this.refresh()
|
1814
1900
|
this.process()
|
1815
1901
|
}
|
1816
1902
|
|
1817
|
-
ScrollSpy.VERSION = '3.3.
|
1903
|
+
ScrollSpy.VERSION = '3.3.5'
|
1818
1904
|
|
1819
1905
|
ScrollSpy.DEFAULTS = {
|
1820
1906
|
offset: 10
|
@@ -1825,20 +1911,19 @@ if (typeof jQuery === 'undefined') {
|
|
1825
1911
|
}
|
1826
1912
|
|
1827
1913
|
ScrollSpy.prototype.refresh = function () {
|
1828
|
-
var
|
1829
|
-
var
|
1914
|
+
var that = this
|
1915
|
+
var offsetMethod = 'offset'
|
1916
|
+
var offsetBase = 0
|
1917
|
+
|
1918
|
+
this.offsets = []
|
1919
|
+
this.targets = []
|
1920
|
+
this.scrollHeight = this.getScrollHeight()
|
1830
1921
|
|
1831
1922
|
if (!$.isWindow(this.$scrollElement[0])) {
|
1832
1923
|
offsetMethod = 'position'
|
1833
1924
|
offsetBase = this.$scrollElement.scrollTop()
|
1834
1925
|
}
|
1835
1926
|
|
1836
|
-
this.offsets = []
|
1837
|
-
this.targets = []
|
1838
|
-
this.scrollHeight = this.getScrollHeight()
|
1839
|
-
|
1840
|
-
var self = this
|
1841
|
-
|
1842
1927
|
this.$body
|
1843
1928
|
.find(this.selector)
|
1844
1929
|
.map(function () {
|
@@ -1853,8 +1938,8 @@ if (typeof jQuery === 'undefined') {
|
|
1853
1938
|
})
|
1854
1939
|
.sort(function (a, b) { return a[0] - b[0] })
|
1855
1940
|
.each(function () {
|
1856
|
-
|
1857
|
-
|
1941
|
+
that.offsets.push(this[0])
|
1942
|
+
that.targets.push(this[1])
|
1858
1943
|
})
|
1859
1944
|
}
|
1860
1945
|
|
@@ -1883,7 +1968,7 @@ if (typeof jQuery === 'undefined') {
|
|
1883
1968
|
for (i = offsets.length; i--;) {
|
1884
1969
|
activeTarget != targets[i]
|
1885
1970
|
&& scrollTop >= offsets[i]
|
1886
|
-
&& (
|
1971
|
+
&& (offsets[i + 1] === undefined || scrollTop < offsets[i + 1])
|
1887
1972
|
&& this.activate(targets[i])
|
1888
1973
|
}
|
1889
1974
|
}
|
@@ -1894,8 +1979,8 @@ if (typeof jQuery === 'undefined') {
|
|
1894
1979
|
this.clear()
|
1895
1980
|
|
1896
1981
|
var selector = this.selector +
|
1897
|
-
|
1898
|
-
|
1982
|
+
'[data-target="' + target + '"],' +
|
1983
|
+
this.selector + '[href="' + target + '"]'
|
1899
1984
|
|
1900
1985
|
var active = $(selector)
|
1901
1986
|
.parents('li')
|
@@ -1959,10 +2044,10 @@ if (typeof jQuery === 'undefined') {
|
|
1959
2044
|
}(jQuery);
|
1960
2045
|
|
1961
2046
|
/* ========================================================================
|
1962
|
-
* Bootstrap: tab.js v3.3.
|
2047
|
+
* Bootstrap: tab.js v3.3.5
|
1963
2048
|
* http://getbootstrap.com/javascript/#tabs
|
1964
2049
|
* ========================================================================
|
1965
|
-
* Copyright 2011-
|
2050
|
+
* Copyright 2011-2015 Twitter, Inc.
|
1966
2051
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
1967
2052
|
* ======================================================================== */
|
1968
2053
|
|
@@ -1974,10 +2059,12 @@ if (typeof jQuery === 'undefined') {
|
|
1974
2059
|
// ====================
|
1975
2060
|
|
1976
2061
|
var Tab = function (element) {
|
2062
|
+
// jscs:disable requireDollarBeforejQueryAssignment
|
1977
2063
|
this.element = $(element)
|
2064
|
+
// jscs:enable requireDollarBeforejQueryAssignment
|
1978
2065
|
}
|
1979
2066
|
|
1980
|
-
Tab.VERSION = '3.3.
|
2067
|
+
Tab.VERSION = '3.3.5'
|
1981
2068
|
|
1982
2069
|
Tab.TRANSITION_DURATION = 150
|
1983
2070
|
|
@@ -2025,7 +2112,7 @@ if (typeof jQuery === 'undefined') {
|
|
2025
2112
|
var $active = container.find('> .active')
|
2026
2113
|
var transition = callback
|
2027
2114
|
&& $.support.transition
|
2028
|
-
&& (
|
2115
|
+
&& ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length)
|
2029
2116
|
|
2030
2117
|
function next() {
|
2031
2118
|
$active
|
@@ -2048,7 +2135,7 @@ if (typeof jQuery === 'undefined') {
|
|
2048
2135
|
element.removeClass('fade')
|
2049
2136
|
}
|
2050
2137
|
|
2051
|
-
if (element.parent('.dropdown-menu')) {
|
2138
|
+
if (element.parent('.dropdown-menu').length) {
|
2052
2139
|
element
|
2053
2140
|
.closest('li.dropdown')
|
2054
2141
|
.addClass('active')
|
@@ -2113,10 +2200,10 @@ if (typeof jQuery === 'undefined') {
|
|
2113
2200
|
}(jQuery);
|
2114
2201
|
|
2115
2202
|
/* ========================================================================
|
2116
|
-
* Bootstrap: affix.js v3.3.
|
2203
|
+
* Bootstrap: affix.js v3.3.5
|
2117
2204
|
* http://getbootstrap.com/javascript/#affix
|
2118
2205
|
* ========================================================================
|
2119
|
-
* Copyright 2011-
|
2206
|
+
* Copyright 2011-2015 Twitter, Inc.
|
2120
2207
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
2121
2208
|
* ======================================================================== */
|
2122
2209
|
|
@@ -2135,14 +2222,14 @@ if (typeof jQuery === 'undefined') {
|
|
2135
2222
|
.on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this))
|
2136
2223
|
|
2137
2224
|
this.$element = $(element)
|
2138
|
-
this.affixed =
|
2139
|
-
this.unpin =
|
2225
|
+
this.affixed = null
|
2226
|
+
this.unpin = null
|
2140
2227
|
this.pinnedOffset = null
|
2141
2228
|
|
2142
2229
|
this.checkPosition()
|
2143
2230
|
}
|
2144
2231
|
|
2145
|
-
Affix.VERSION = '3.3.
|
2232
|
+
Affix.VERSION = '3.3.5'
|
2146
2233
|
|
2147
2234
|
Affix.RESET = 'affix affix-top affix-bottom'
|
2148
2235
|
|
@@ -2167,7 +2254,7 @@ if (typeof jQuery === 'undefined') {
|
|
2167
2254
|
var colliderTop = initializing ? scrollTop : position.top
|
2168
2255
|
var colliderHeight = initializing ? targetHeight : height
|
2169
2256
|
|
2170
|
-
if (offsetTop != null &&
|
2257
|
+
if (offsetTop != null && scrollTop <= offsetTop) return 'top'
|
2171
2258
|
if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom'
|
2172
2259
|
|
2173
2260
|
return false
|
@@ -2192,7 +2279,7 @@ if (typeof jQuery === 'undefined') {
|
|
2192
2279
|
var offset = this.options.offset
|
2193
2280
|
var offsetTop = offset.top
|
2194
2281
|
var offsetBottom = offset.bottom
|
2195
|
-
var scrollHeight = $(
|
2282
|
+
var scrollHeight = Math.max($(document).height(), $(document.body).height())
|
2196
2283
|
|
2197
2284
|
if (typeof offset != 'object') offsetBottom = offsetTop = offset
|
2198
2285
|
if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element)
|