flashgrid 3.2.1 → 3.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3b5bb59cfc4399618e852ba8c74e560c7ad2ea32
4
- data.tar.gz: cd389cd460ed316e0fa55b0d2d8ecc998d442776
3
+ metadata.gz: 30927f439da1c0f4a5972e27e9260fc9d2a76f6c
4
+ data.tar.gz: f7c6d592f41e1c436fa89c2345708a0aa1761e9a
5
5
  SHA512:
6
- metadata.gz: 16749ef4478940b5545a4a948822b0e7a5b8df1235dc575b3cd3bbd1beaaa634d2fe0de5f1647fdfc971cfe1d853a2c900238885a00c1566bbc21a06441d7bcf
7
- data.tar.gz: aab9c0bbf80bf9aa97a66bd6dff3dc02d2e2ed252635615762af77f8259fb9a928da153f3eb44f2da1ef85b844eef157bf9b06f1c56ecd72dfbc0afe27e7ef6d
6
+ metadata.gz: bfb98838ed6930a4272e823ebaa71dede8ebf9640ab82b333373378bc096ae3bf0c921eaf7a96305e2eebb88860cf50d9f05432ddc5c3bdff07e399e738d5065
7
+ data.tar.gz: 19e4e88dd1f1286b59130fdb59955d94097a894e676ed12dece5656ca9252bb7c6112c1b3cfca49e3700e3dd6caf989d4f0bb683641ba934c19e6c1c069dede8
data/README.md CHANGED
@@ -55,7 +55,7 @@ Add the CSS files you want to include:
55
55
  *= require progress.css
56
56
  *= require reset.css (place before any files)
57
57
  *= require spinner.css
58
- *= require switch.css
58
+ *= require swoggle.css
59
59
  *= require table.css
60
60
  *= require timepicker.css
61
61
  *= require tooltip.css
@@ -81,7 +81,7 @@ Add the JS files you want to include:
81
81
  //= require modal.js
82
82
  //= require popover.js (place after tooltip)
83
83
  //= require scrollspy.js
84
- //= require switch.js
84
+ //= require swoggle.js
85
85
  //= require tab.js
86
86
  //= require tablespy.js
87
87
  //= require time_picker.js
@@ -1,3 +1,3 @@
1
1
  module Flashgrid
2
- VERSION = "3.2.1"
2
+ VERSION = "3.3.0"
3
3
  end
@@ -19,7 +19,7 @@
19
19
  this.checkPosition()
20
20
  }
21
21
 
22
- Affix.VERSION = '3.2.0'
22
+ Affix.VERSION = '3.3.0'
23
23
 
24
24
  Affix.RESET = 'affix affix-top affix-bottom'
25
25
 
@@ -9,7 +9,7 @@
9
9
  $(el).on('click', dismiss, this.close)
10
10
  }
11
11
 
12
- Alert.VERSION = '3.2.0'
12
+ Alert.VERSION = '3.3.0'
13
13
 
14
14
  Alert.TRANSITION_DURATION = 150
15
15
 
@@ -1,82 +1,42 @@
1
1
  (function ($, window, document, undefined) {
2
-
3
- // Function-level strict mode syntax
4
2
  'use strict';
5
3
 
6
- $.fn.animateCSS = function (effect, delay, callback) {
7
-
8
- // Return this to maintain chainability
9
- return this.each(function () {
10
-
11
- // Cache $(this) for speed and compression
12
- var $this = $(this),
13
- transitionEnd = "webkitAnimationEnd oanimationend msAnimationEnd animationend",
14
- animated = "animated",
15
- visibility = "visibility",
16
- visible = "visible",
17
- hidden = "hidden";
18
-
19
- // Create a function we can call later
20
- function run() {
21
-
22
- // Add the animation effect with classes
23
- $this.addClass( animated + " " + effect);
24
-
25
- // Check if the elemenr has been hidden to start with
26
- if ($this.css( visibility ) === hidden) {
27
-
28
- // If it has, show it (after the class has been added)
29
- $this.css( visibility, visible);
30
-
31
- }
32
-
33
- // If the element is hidden
34
- if ($this.is(":" + hidden)) {
35
-
36
- // Show it
37
- $this.show();
38
-
39
- }
40
-
41
- // Event triggered when the animation has finished
42
- $this.bind( transitionEnd, function () {
43
-
44
- // Remove the classes so they can be added again later
45
- $this.removeClass(animated + " " + effect);
46
-
47
- // Add a callback event
48
- if (typeof callback === "function") {
49
-
50
- // Execute the callback
51
- callback.call(this);
52
-
53
- // Unbind the event handlers
54
- $this.unbind( transitionEnd );
55
-
56
- }
57
-
58
- });
59
-
60
- }
61
-
62
- // Check if delay exists or if it"s a callback
63
- if (!delay || typeof delay === "function") {
64
-
65
- // If it"s a callback, move it to callback so we can call it later
66
- callback = delay;
67
-
68
- // Run the animation (without delay)
69
- run();
70
-
71
- } else {
72
-
73
- // Start a counter so we can delay the animation if required
74
- setTimeout( run, delay );
75
-
76
- }
77
-
4
+ $.fn.animateCSS = function (effect, delay, callback) {
5
+ return this.each(function () {
6
+ var $this = $(this),
7
+ transitionEnd = "webkitAnimationEnd oanimationend msAnimationEnd animationend",
8
+ animated = "animated",
9
+ visibility = "visibility",
10
+ visible = "visible",
11
+ hidden = "hidden";
12
+
13
+ function run() {
14
+ $this.addClass( animated + " " + effect);
15
+
16
+ if ($this.css( visibility ) === hidden) {
17
+ $this.css( visibility, visible);
18
+ };
19
+
20
+ if ($this.is(":" + hidden)) {
21
+ $this.show();
22
+ };
23
+
24
+ $this.bind( transitionEnd, function () {
25
+ $this.removeClass(animated + " " + effect);
26
+
27
+ if (typeof callback === "function") {
28
+ callback.call(this);
29
+ $this.unbind( transitionEnd );
30
+ };
78
31
  });
79
-
80
- };
81
-
32
+ };
33
+
34
+ if (!delay || typeof delay === "function") {
35
+ callback = delay;
36
+ run();
37
+ } else {
38
+ setTimeout( run, delay );
39
+ };
40
+ });
41
+ };
82
42
  })(jQuery, window, document);
@@ -10,7 +10,7 @@
10
10
  this.isLoading = false
11
11
  }
12
12
 
13
- Button.VERSION = '3.2.0'
13
+ Button.VERSION = '3.3.0'
14
14
 
15
15
  Button.DEFAULTS = {
16
16
  loadingText: 'loading...'
@@ -26,10 +26,10 @@
26
26
 
27
27
  if (data.resetText == null) $el.data('resetText', $el[val]())
28
28
 
29
- $el[val](data[state] == null ? this.options[state] : data[state])
30
-
31
29
  // push to event loop to allow forms to submit
32
30
  setTimeout($.proxy(function () {
31
+ $el[val](data[state] == null ? this.options[state] : data[state])
32
+
33
33
  if (state == 'loadingText') {
34
34
  this.isLoading = true
35
35
  $el.addClass(d).attr(d, d)
@@ -51,6 +51,8 @@
51
51
  else $parent.find('.active').removeClass('active')
52
52
  }
53
53
  if (changed) $input.prop('checked', !this.$element.hasClass('active')).trigger('change')
54
+ } else {
55
+ this.$element.attr('aria-pressed', !this.$element.hasClass('active'))
54
56
  }
55
57
 
56
58
  if (changed) this.$element.toggleClass('active')
@@ -99,7 +101,7 @@
99
101
  e.preventDefault()
100
102
  })
101
103
  .on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^="button"]', function (e) {
102
- $(e.target).closest('.btn').toggleClass('focus', e.type == 'focus')
104
+ $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type))
103
105
  })
104
106
 
105
107
  }(jQuery);
@@ -21,7 +21,7 @@
21
21
  .on('mouseleave.bs.carousel', $.proxy(this.cycle, this))
22
22
  }
23
23
 
24
- Carousel.VERSION = '3.2.0'
24
+ Carousel.VERSION = '3.3.0'
25
25
 
26
26
  Carousel.TRANSITION_DURATION = 600
27
27
 
@@ -33,6 +33,7 @@
33
33
  }
34
34
 
35
35
  Carousel.prototype.keydown = function (e) {
36
+ if (/input|textarea/i.test(e.target.tagName)) return
36
37
  switch (e.which) {
37
38
  case 37: this.prev(); break
38
39
  case 39: this.next(); break
@@ -198,7 +199,7 @@
198
199
  // CAROUSEL DATA-API
199
200
  // =================
200
201
 
201
- $(document).on('click.bs.carousel.data-api', '[data-slide], [data-slide-to]', function (e) {
202
+ var clickHandler = function (e) {
202
203
  var href
203
204
  var $this = $(this)
204
205
  var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) // strip for ie7
@@ -214,7 +215,11 @@
214
215
  }
215
216
 
216
217
  e.preventDefault()
217
- })
218
+ }
219
+
220
+ $(document)
221
+ .on('click.bs.carousel.data-api', '[data-slide]', clickHandler)
222
+ .on('click.bs.carousel.data-api', '[data-slide-to]', clickHandler)
218
223
 
219
224
  $(window).on('load', function () {
220
225
  $('[data-ride="carousel"]').each(function () {
@@ -7,18 +7,25 @@
7
7
  var Collapse = function (element, options) {
8
8
  this.$element = $(element)
9
9
  this.options = $.extend({}, Collapse.DEFAULTS, options)
10
+ this.$trigger = $(this.options.trigger).filter('[href="#' + element.id + '"], [data-target="#' + element.id + '"]')
10
11
  this.transitioning = null
11
12
 
12
- if (this.options.parent) this.$parent = $(this.options.parent)
13
+ if (this.options.parent) {
14
+ this.$parent = this.getParent()
15
+ } else {
16
+ this.addAriaAndCollapsedClass(this.$element, this.$trigger)
17
+ }
18
+
13
19
  if (this.options.toggle) this.toggle()
14
20
  }
15
21
 
16
- Collapse.VERSION = '3.2.0'
22
+ Collapse.VERSION = '3.3.0'
17
23
 
18
24
  Collapse.TRANSITION_DURATION = 350
19
25
 
20
26
  Collapse.DEFAULTS = {
21
- toggle: true
27
+ toggle: true,
28
+ trigger: '[data-toggle="collapse"]'
22
29
  }
23
30
 
24
31
  Collapse.prototype.dimension = function () {
@@ -53,6 +60,10 @@
53
60
  .addClass('collapsing')[dimension](0)
54
61
  .attr('aria-expanded', true)
55
62
 
63
+ this.$trigger
64
+ .removeClass('collapsed')
65
+ .attr('aria-expanded', true)
66
+
56
67
  this.transitioning = 1
57
68
 
58
69
  var complete = function () {
@@ -89,6 +100,10 @@
89
100
  .removeClass('collapse in')
90
101
  .attr('aria-expanded', false)
91
102
 
103
+ this.$trigger
104
+ .addClass('collapsed')
105
+ .attr('aria-expanded', false)
106
+
92
107
  this.transitioning = 1
93
108
 
94
109
  var complete = function () {
@@ -111,6 +126,33 @@
111
126
  this[this.$element.hasClass('in') ? 'hide' : 'show']()
112
127
  }
113
128
 
129
+ Collapse.prototype.getParent = function () {
130
+ return $(this.options.parent)
131
+ .find('[data-toggle="collapse"][data-parent="' + this.options.parent + '"]')
132
+ .each($.proxy(function (i, element) {
133
+ var $element = $(element)
134
+ this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element)
135
+ }, this))
136
+ .end()
137
+ }
138
+
139
+ Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) {
140
+ var isOpen = $element.hasClass('in')
141
+
142
+ $element.attr('aria-expanded', isOpen)
143
+ $trigger
144
+ .toggleClass('collapsed', !isOpen)
145
+ .attr('aria-expanded', isOpen)
146
+ }
147
+
148
+ function getTargetFromTrigger($trigger) {
149
+ var href
150
+ var target = $trigger.attr('data-target')
151
+ || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') // strip for ie7
152
+
153
+ return $(target)
154
+ }
155
+
114
156
 
115
157
  // COLLAPSE PLUGIN DEFINITION
116
158
  // ==========================
@@ -146,22 +188,13 @@
146
188
  // =================
147
189
 
148
190
  $(document).on('click.bs.collapse.data-api', '[data-toggle="collapse"]', function (e) {
149
- var href
150
191
  var $this = $(this)
151
- var target = $this.attr('data-target')
152
- || e.preventDefault()
153
- || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') // strip for ie7
154
- var $target = $(target)
192
+
193
+ if (!$this.attr('data-target')) e.preventDefault()
194
+
195
+ var $target = getTargetFromTrigger($this)
155
196
  var data = $target.data('bs.collapse')
156
- var option = data ? 'toggle' : $this.data()
157
- var parent = $this.attr('data-parent')
158
- var $parent = parent && $(parent)
159
-
160
- if (!data || !data.transitioning) {
161
- if ($parent) $parent.find('[data-toggle="collapse"][data-parent="' + parent + '"]').not($this).addClass('collapsed').attr('aria-expanded', false)
162
- var isCollapsed = $target.hasClass('in')
163
- $this.toggleClass('collapsed', isCollapsed).attr('aria-expanded', !isCollapsed)
164
- }
197
+ var option = data ? 'toggle' : $.extend({}, $this.data(), { trigger: this })
165
198
 
166
199
  Plugin.call($target, option)
167
200
  })
@@ -10,7 +10,7 @@
10
10
  $(element).on('click.bs.dropdown', this.toggle)
11
11
  }
12
12
 
13
- Dropdown.VERSION = '3.2.0'
13
+ Dropdown.VERSION = '3.3.0'
14
14
 
15
15
  Dropdown.prototype.toggle = function (e) {
16
16
  var $this = $(this)
@@ -68,7 +68,7 @@
68
68
 
69
69
  if (!$items.length) return
70
70
 
71
- var index = $items.index($items.filter(':focus'))
71
+ var index = $items.index(e.target)
72
72
 
73
73
  if (e.which == 38 && index > 0) index-- // up
74
74
  if (e.which == 40 && index < $items.length - 1) index++ // down
@@ -145,6 +145,8 @@
145
145
  .on('click.bs.dropdown.data-api', clearMenus)
146
146
  .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
147
147
  .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)
148
- .on('keydown.bs.dropdown.data-api', toggle + ', [role="menu"], [role="listbox"]', Dropdown.prototype.keydown)
148
+ .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown)
149
+ .on('keydown.bs.dropdown.data-api', '[role="menu"]', Dropdown.prototype.keydown)
150
+ .on('keydown.bs.dropdown.data-api', '[role="listbox"]', Dropdown.prototype.keydown)
149
151
 
150
152
  }(jQuery);
@@ -21,10 +21,7 @@
21
21
  }
22
22
  }
23
23
 
24
- Modal.VERSION = '3.2.0'
25
-
26
- Modal.TRANSITION_DURATION = 300
27
- Modal.BACKDROP_TRANSITION_DURATION = 150
24
+ Modal.VERSION = '3.3.0'
28
25
 
29
26
  Modal.DEFAULTS = {
30
27
  backdrop: true,
@@ -82,7 +79,7 @@
82
79
  .one('bsTransitionEnd', function () {
83
80
  that.$element.trigger('focus').trigger(e)
84
81
  })
85
- .emulateTransitionEnd(Modal.TRANSITION_DURATION) :
82
+ .emulateTransitionEnd(300) :
86
83
  that.$element.trigger('focus').trigger(e)
87
84
  })
88
85
  }
@@ -98,6 +95,9 @@
98
95
 
99
96
  this.isShown = false
100
97
 
98
+ this.$body.removeClass('modal-open')
99
+
100
+ this.resetScrollbar()
101
101
  this.escape()
102
102
 
103
103
  $(document).off('focusin.bs.modal')
@@ -110,7 +110,7 @@
110
110
  $.support.transition && this.$element.hasClass('fade') ?
111
111
  this.$element
112
112
  .one('bsTransitionEnd', $.proxy(this.hideModal, this))
113
- .emulateTransitionEnd(Modal.TRANSITION_DURATION) :
113
+ .emulateTransitionEnd(300) :
114
114
  this.hideModal()
115
115
  }
116
116
 
@@ -126,11 +126,11 @@
126
126
 
127
127
  Modal.prototype.escape = function () {
128
128
  if (this.isShown && this.options.keyboard) {
129
- this.$element.on('keydown.dismiss.bs.modal', $.proxy(function (e) {
129
+ this.$element.on('keyup.dismiss.bs.modal', $.proxy(function (e) {
130
130
  e.which == 27 && this.hide()
131
131
  }, this))
132
132
  } else if (!this.isShown) {
133
- this.$element.off('keydown.dismiss.bs.modal')
133
+ this.$element.off('keyup.dismiss.bs.modal')
134
134
  }
135
135
  }
136
136
 
@@ -138,8 +138,6 @@
138
138
  var that = this
139
139
  this.$element.hide()
140
140
  this.backdrop(function () {
141
- that.$body.removeClass('modal-open')
142
- that.resetScrollbar()
143
141
  that.$element.trigger('hidden.bs.modal')
144
142
  })
145
143
  }
@@ -157,13 +155,14 @@
157
155
  var doAnimate = $.support.transition && animate
158
156
 
159
157
  this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />')
160
- .prependTo(this.$element)
161
- .on('click.dismiss.bs.modal', $.proxy(function (e) {
162
- if (e.target !== e.currentTarget) return
163
- this.options.backdrop == 'static'
164
- ? this.$element[0].focus.call(this.$element[0])
165
- : this.hide.call(this)
166
- }, this))
158
+ .appendTo(this.$body)
159
+
160
+ this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {
161
+ if (e.target !== e.currentTarget) return
162
+ this.options.backdrop == 'static'
163
+ ? this.$element[0].focus.call(this.$element[0])
164
+ : this.hide.call(this)
165
+ }, this))
167
166
 
168
167
  if (doAnimate) this.$backdrop[0].offsetWidth // force reflow
169
168
 
@@ -174,7 +173,7 @@
174
173
  doAnimate ?
175
174
  this.$backdrop
176
175
  .one('bsTransitionEnd', callback)
177
- .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :
176
+ .emulateTransitionEnd(150) :
178
177
  callback()
179
178
 
180
179
  } else if (!this.isShown && this.$backdrop) {
@@ -187,7 +186,7 @@
187
186
  $.support.transition && this.$element.hasClass('fade') ?
188
187
  this.$backdrop
189
188
  .one('bsTransitionEnd', callbackRemove)
190
- .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :
189
+ .emulateTransitionEnd(150) :
191
190
  callbackRemove()
192
191
 
193
192
  } else if (callback) {
@@ -196,7 +195,8 @@
196
195
  }
197
196
 
198
197
  Modal.prototype.checkScrollbar = function () {
199
- this.scrollbarWidth = this.measureScrollbar()
198
+ if (document.body.clientWidth >= window.innerWidth) return
199
+ this.scrollbarWidth = this.scrollbarWidth || this.measureScrollbar()
200
200
  }
201
201
 
202
202
  Modal.prototype.setScrollbar = function () {
@@ -209,7 +209,6 @@
209
209
  }
210
210
 
211
211
  Modal.prototype.measureScrollbar = function () { // thx walsh
212
- if (document.body.clientWidth >= window.innerWidth) return 0
213
212
  var scrollDiv = document.createElement('div')
214
213
  scrollDiv.className = 'modal-scrollbar-measure'
215
214
  this.$body.append(scrollDiv)