api_taster 0.8.2 → 0.8.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. checksums.yaml +4 -4
  2. data/api_taster.gemspec +3 -3
  3. data/lib/api_taster.rb +1 -1
  4. data/lib/api_taster/engine.rb +2 -0
  5. data/lib/api_taster/version.rb +1 -1
  6. data/vendor/assets/images/glyphicons-halflings-white.png +0 -0
  7. data/vendor/assets/images/glyphicons-halflings.png +0 -0
  8. data/vendor/assets/javascripts/bootstrap-affix.js +117 -0
  9. data/vendor/assets/javascripts/bootstrap-alert.js +99 -0
  10. data/vendor/assets/javascripts/bootstrap-button.js +105 -0
  11. data/vendor/assets/javascripts/bootstrap-carousel.js +207 -0
  12. data/vendor/assets/javascripts/bootstrap-collapse.js +167 -0
  13. data/vendor/assets/javascripts/bootstrap-dropdown.js +169 -0
  14. data/vendor/assets/javascripts/bootstrap-modal.js +247 -0
  15. data/vendor/assets/javascripts/bootstrap-popover.js +114 -0
  16. data/vendor/assets/javascripts/bootstrap-scrollspy.js +162 -0
  17. data/vendor/assets/javascripts/bootstrap-tab.js +144 -0
  18. data/vendor/assets/javascripts/bootstrap-tooltip.js +361 -0
  19. data/vendor/assets/javascripts/bootstrap-transition.js +60 -0
  20. data/vendor/assets/javascripts/bootstrap-typeahead.js +335 -0
  21. data/vendor/assets/javascripts/bootstrap.js +13 -0
  22. data/vendor/assets/stylesheets/bootstrap-responsive.scss +1 -0
  23. data/vendor/assets/stylesheets/bootstrap.scss +1 -0
  24. data/vendor/assets/stylesheets/bootstrap/_accordion.scss +34 -0
  25. data/vendor/assets/stylesheets/bootstrap/_alerts.scss +79 -0
  26. data/vendor/assets/stylesheets/bootstrap/_breadcrumbs.scss +24 -0
  27. data/vendor/assets/stylesheets/bootstrap/_button-groups.scss +229 -0
  28. data/vendor/assets/stylesheets/bootstrap/_buttons.scss +228 -0
  29. data/vendor/assets/stylesheets/bootstrap/_carousel.scss +158 -0
  30. data/vendor/assets/stylesheets/bootstrap/_close.scss +32 -0
  31. data/vendor/assets/stylesheets/bootstrap/_code.scss +61 -0
  32. data/vendor/assets/stylesheets/bootstrap/_component-animations.scss +22 -0
  33. data/vendor/assets/stylesheets/bootstrap/_dropdowns.scss +248 -0
  34. data/vendor/assets/stylesheets/bootstrap/_forms.scss +689 -0
  35. data/vendor/assets/stylesheets/bootstrap/_grid.scss +21 -0
  36. data/vendor/assets/stylesheets/bootstrap/_hero-unit.scss +25 -0
  37. data/vendor/assets/stylesheets/bootstrap/_labels-badges.scss +83 -0
  38. data/vendor/assets/stylesheets/bootstrap/_layouts.scss +16 -0
  39. data/vendor/assets/stylesheets/bootstrap/_media.scss +55 -0
  40. data/vendor/assets/stylesheets/bootstrap/_mixins.scss +696 -0
  41. data/vendor/assets/stylesheets/bootstrap/_modals.scss +95 -0
  42. data/vendor/assets/stylesheets/bootstrap/_navbar.scss +497 -0
  43. data/vendor/assets/stylesheets/bootstrap/_navs.scss +409 -0
  44. data/vendor/assets/stylesheets/bootstrap/_pager.scss +43 -0
  45. data/vendor/assets/stylesheets/bootstrap/_pagination.scss +123 -0
  46. data/vendor/assets/stylesheets/bootstrap/_popovers.scss +133 -0
  47. data/vendor/assets/stylesheets/bootstrap/_progress-bars.scss +122 -0
  48. data/vendor/assets/stylesheets/bootstrap/_reset.scss +216 -0
  49. data/vendor/assets/stylesheets/bootstrap/_responsive-1200px-min.scss +28 -0
  50. data/vendor/assets/stylesheets/bootstrap/_responsive-767px-max.scss +193 -0
  51. data/vendor/assets/stylesheets/bootstrap/_responsive-768px-979px.scss +19 -0
  52. data/vendor/assets/stylesheets/bootstrap/_responsive-navbar.scss +189 -0
  53. data/vendor/assets/stylesheets/bootstrap/_responsive-utilities.scss +74 -0
  54. data/vendor/assets/stylesheets/bootstrap/_scaffolding.scss +53 -0
  55. data/vendor/assets/stylesheets/bootstrap/_sprites.scss +197 -0
  56. data/vendor/assets/stylesheets/bootstrap/_tables.scss +235 -0
  57. data/vendor/assets/stylesheets/bootstrap/_thumbnails.scss +53 -0
  58. data/vendor/assets/stylesheets/bootstrap/_tooltip.scss +70 -0
  59. data/vendor/assets/stylesheets/bootstrap/_type.scss +247 -0
  60. data/vendor/assets/stylesheets/bootstrap/_utilities.scss +45 -0
  61. data/vendor/assets/stylesheets/bootstrap/_variables.scss +301 -0
  62. data/vendor/assets/stylesheets/bootstrap/_wells.scss +29 -0
  63. data/vendor/assets/stylesheets/bootstrap/bootstrap.scss +63 -0
  64. data/vendor/assets/stylesheets/bootstrap/responsive.scss +48 -0
  65. metadata +63 -16
@@ -0,0 +1,167 @@
1
+ /* =============================================================
2
+ * bootstrap-collapse.js v2.3.2
3
+ * http://twitter.github.com/bootstrap/javascript.html#collapse
4
+ * =============================================================
5
+ * Copyright 2012 Twitter, Inc.
6
+ *
7
+ * Licensed under the Apache License, Version 2.0 (the "License");
8
+ * you may not use this file except in compliance with the License.
9
+ * You may obtain a copy of the License at
10
+ *
11
+ * http://www.apache.org/licenses/LICENSE-2.0
12
+ *
13
+ * Unless required by applicable law or agreed to in writing, software
14
+ * distributed under the License is distributed on an "AS IS" BASIS,
15
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ * See the License for the specific language governing permissions and
17
+ * limitations under the License.
18
+ * ============================================================ */
19
+
20
+
21
+ !function ($) {
22
+
23
+ "use strict"; // jshint ;_;
24
+
25
+
26
+ /* COLLAPSE PUBLIC CLASS DEFINITION
27
+ * ================================ */
28
+
29
+ var Collapse = function (element, options) {
30
+ this.$element = $(element)
31
+ this.options = $.extend({}, $.fn.collapse.defaults, options)
32
+
33
+ if (this.options.parent) {
34
+ this.$parent = $(this.options.parent)
35
+ }
36
+
37
+ this.options.toggle && this.toggle()
38
+ }
39
+
40
+ Collapse.prototype = {
41
+
42
+ constructor: Collapse
43
+
44
+ , dimension: function () {
45
+ var hasWidth = this.$element.hasClass('width')
46
+ return hasWidth ? 'width' : 'height'
47
+ }
48
+
49
+ , show: function () {
50
+ var dimension
51
+ , scroll
52
+ , actives
53
+ , hasData
54
+
55
+ if (this.transitioning || this.$element.hasClass('in')) return
56
+
57
+ dimension = this.dimension()
58
+ scroll = $.camelCase(['scroll', dimension].join('-'))
59
+ actives = this.$parent && this.$parent.find('> .accordion-group > .in')
60
+
61
+ if (actives && actives.length) {
62
+ hasData = actives.data('collapse')
63
+ if (hasData && hasData.transitioning) return
64
+ actives.collapse('hide')
65
+ hasData || actives.data('collapse', null)
66
+ }
67
+
68
+ this.$element[dimension](0)
69
+ this.transition('addClass', $.Event('show'), 'shown')
70
+ $.support.transition && this.$element[dimension](this.$element[0][scroll])
71
+ }
72
+
73
+ , hide: function () {
74
+ var dimension
75
+ if (this.transitioning || !this.$element.hasClass('in')) return
76
+ dimension = this.dimension()
77
+ this.reset(this.$element[dimension]())
78
+ this.transition('removeClass', $.Event('hide'), 'hidden')
79
+ this.$element[dimension](0)
80
+ }
81
+
82
+ , reset: function (size) {
83
+ var dimension = this.dimension()
84
+
85
+ this.$element
86
+ .removeClass('collapse')
87
+ [dimension](size || 'auto')
88
+ [0].offsetWidth
89
+
90
+ this.$element[size !== null ? 'addClass' : 'removeClass']('collapse')
91
+
92
+ return this
93
+ }
94
+
95
+ , transition: function (method, startEvent, completeEvent) {
96
+ var that = this
97
+ , complete = function () {
98
+ if (startEvent.type == 'show') that.reset()
99
+ that.transitioning = 0
100
+ that.$element.trigger(completeEvent)
101
+ }
102
+
103
+ this.$element.trigger(startEvent)
104
+
105
+ if (startEvent.isDefaultPrevented()) return
106
+
107
+ this.transitioning = 1
108
+
109
+ this.$element[method]('in')
110
+
111
+ $.support.transition && this.$element.hasClass('collapse') ?
112
+ this.$element.one($.support.transition.end, complete) :
113
+ complete()
114
+ }
115
+
116
+ , toggle: function () {
117
+ this[this.$element.hasClass('in') ? 'hide' : 'show']()
118
+ }
119
+
120
+ }
121
+
122
+
123
+ /* COLLAPSE PLUGIN DEFINITION
124
+ * ========================== */
125
+
126
+ var old = $.fn.collapse
127
+
128
+ $.fn.collapse = function (option) {
129
+ return this.each(function () {
130
+ var $this = $(this)
131
+ , data = $this.data('collapse')
132
+ , options = $.extend({}, $.fn.collapse.defaults, $this.data(), typeof option == 'object' && option)
133
+ if (!data) $this.data('collapse', (data = new Collapse(this, options)))
134
+ if (typeof option == 'string') data[option]()
135
+ })
136
+ }
137
+
138
+ $.fn.collapse.defaults = {
139
+ toggle: true
140
+ }
141
+
142
+ $.fn.collapse.Constructor = Collapse
143
+
144
+
145
+ /* COLLAPSE NO CONFLICT
146
+ * ==================== */
147
+
148
+ $.fn.collapse.noConflict = function () {
149
+ $.fn.collapse = old
150
+ return this
151
+ }
152
+
153
+
154
+ /* COLLAPSE DATA-API
155
+ * ================= */
156
+
157
+ $(document).on('click.collapse.data-api', '[data-toggle=collapse]', function (e) {
158
+ var $this = $(this), href
159
+ , target = $this.attr('data-target')
160
+ || e.preventDefault()
161
+ || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7
162
+ , option = $(target).data('collapse') ? 'toggle' : $this.data()
163
+ $this[$(target).hasClass('in') ? 'addClass' : 'removeClass']('collapsed')
164
+ $(target).collapse(option)
165
+ })
166
+
167
+ }(window.jQuery);
@@ -0,0 +1,169 @@
1
+ /* ============================================================
2
+ * bootstrap-dropdown.js v2.3.2
3
+ * http://twitter.github.com/bootstrap/javascript.html#dropdowns
4
+ * ============================================================
5
+ * Copyright 2012 Twitter, Inc.
6
+ *
7
+ * Licensed under the Apache License, Version 2.0 (the "License");
8
+ * you may not use this file except in compliance with the License.
9
+ * You may obtain a copy of the License at
10
+ *
11
+ * http://www.apache.org/licenses/LICENSE-2.0
12
+ *
13
+ * Unless required by applicable law or agreed to in writing, software
14
+ * distributed under the License is distributed on an "AS IS" BASIS,
15
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ * See the License for the specific language governing permissions and
17
+ * limitations under the License.
18
+ * ============================================================ */
19
+
20
+
21
+ !function ($) {
22
+
23
+ "use strict"; // jshint ;_;
24
+
25
+
26
+ /* DROPDOWN CLASS DEFINITION
27
+ * ========================= */
28
+
29
+ var toggle = '[data-toggle=dropdown]'
30
+ , Dropdown = function (element) {
31
+ var $el = $(element).on('click.dropdown.data-api', this.toggle)
32
+ $('html').on('click.dropdown.data-api', function () {
33
+ $el.parent().removeClass('open')
34
+ })
35
+ }
36
+
37
+ Dropdown.prototype = {
38
+
39
+ constructor: Dropdown
40
+
41
+ , toggle: function (e) {
42
+ var $this = $(this)
43
+ , $parent
44
+ , isActive
45
+
46
+ if ($this.is('.disabled, :disabled')) return
47
+
48
+ $parent = getParent($this)
49
+
50
+ isActive = $parent.hasClass('open')
51
+
52
+ clearMenus()
53
+
54
+ if (!isActive) {
55
+ if ('ontouchstart' in document.documentElement) {
56
+ // if mobile we we use a backdrop because click events don't delegate
57
+ $('<div class="dropdown-backdrop"/>').insertBefore($(this)).on('click', clearMenus)
58
+ }
59
+ $parent.toggleClass('open')
60
+ }
61
+
62
+ $this.focus()
63
+
64
+ return false
65
+ }
66
+
67
+ , keydown: function (e) {
68
+ var $this
69
+ , $items
70
+ , $active
71
+ , $parent
72
+ , isActive
73
+ , index
74
+
75
+ if (!/(38|40|27)/.test(e.keyCode)) return
76
+
77
+ $this = $(this)
78
+
79
+ e.preventDefault()
80
+ e.stopPropagation()
81
+
82
+ if ($this.is('.disabled, :disabled')) return
83
+
84
+ $parent = getParent($this)
85
+
86
+ isActive = $parent.hasClass('open')
87
+
88
+ if (!isActive || (isActive && e.keyCode == 27)) {
89
+ if (e.which == 27) $parent.find(toggle).focus()
90
+ return $this.click()
91
+ }
92
+
93
+ $items = $('[role=menu] li:not(.divider):visible a', $parent)
94
+
95
+ if (!$items.length) return
96
+
97
+ index = $items.index($items.filter(':focus'))
98
+
99
+ if (e.keyCode == 38 && index > 0) index-- // up
100
+ if (e.keyCode == 40 && index < $items.length - 1) index++ // down
101
+ if (!~index) index = 0
102
+
103
+ $items
104
+ .eq(index)
105
+ .focus()
106
+ }
107
+
108
+ }
109
+
110
+ function clearMenus() {
111
+ $('.dropdown-backdrop').remove()
112
+ $(toggle).each(function () {
113
+ getParent($(this)).removeClass('open')
114
+ })
115
+ }
116
+
117
+ function getParent($this) {
118
+ var selector = $this.attr('data-target')
119
+ , $parent
120
+
121
+ if (!selector) {
122
+ selector = $this.attr('href')
123
+ selector = selector && /#/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
124
+ }
125
+
126
+ $parent = selector && $(selector)
127
+
128
+ if (!$parent || !$parent.length) $parent = $this.parent()
129
+
130
+ return $parent
131
+ }
132
+
133
+
134
+ /* DROPDOWN PLUGIN DEFINITION
135
+ * ========================== */
136
+
137
+ var old = $.fn.dropdown
138
+
139
+ $.fn.dropdown = function (option) {
140
+ return this.each(function () {
141
+ var $this = $(this)
142
+ , data = $this.data('dropdown')
143
+ if (!data) $this.data('dropdown', (data = new Dropdown(this)))
144
+ if (typeof option == 'string') data[option].call($this)
145
+ })
146
+ }
147
+
148
+ $.fn.dropdown.Constructor = Dropdown
149
+
150
+
151
+ /* DROPDOWN NO CONFLICT
152
+ * ==================== */
153
+
154
+ $.fn.dropdown.noConflict = function () {
155
+ $.fn.dropdown = old
156
+ return this
157
+ }
158
+
159
+
160
+ /* APPLY TO STANDARD DROPDOWN ELEMENTS
161
+ * =================================== */
162
+
163
+ $(document)
164
+ .on('click.dropdown.data-api', clearMenus)
165
+ .on('click.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
166
+ .on('click.dropdown.data-api' , toggle, Dropdown.prototype.toggle)
167
+ .on('keydown.dropdown.data-api', toggle + ', [role=menu]' , Dropdown.prototype.keydown)
168
+
169
+ }(window.jQuery);
@@ -0,0 +1,247 @@
1
+ /* =========================================================
2
+ * bootstrap-modal.js v2.3.2
3
+ * http://twitter.github.com/bootstrap/javascript.html#modals
4
+ * =========================================================
5
+ * Copyright 2012 Twitter, Inc.
6
+ *
7
+ * Licensed under the Apache License, Version 2.0 (the "License");
8
+ * you may not use this file except in compliance with the License.
9
+ * You may obtain a copy of the License at
10
+ *
11
+ * http://www.apache.org/licenses/LICENSE-2.0
12
+ *
13
+ * Unless required by applicable law or agreed to in writing, software
14
+ * distributed under the License is distributed on an "AS IS" BASIS,
15
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ * See the License for the specific language governing permissions and
17
+ * limitations under the License.
18
+ * ========================================================= */
19
+
20
+
21
+ !function ($) {
22
+
23
+ "use strict"; // jshint ;_;
24
+
25
+
26
+ /* MODAL CLASS DEFINITION
27
+ * ====================== */
28
+
29
+ var Modal = function (element, options) {
30
+ this.options = options
31
+ this.$element = $(element)
32
+ .delegate('[data-dismiss="modal"]', 'click.dismiss.modal', $.proxy(this.hide, this))
33
+ this.options.remote && this.$element.find('.modal-body').load(this.options.remote)
34
+ }
35
+
36
+ Modal.prototype = {
37
+
38
+ constructor: Modal
39
+
40
+ , toggle: function () {
41
+ return this[!this.isShown ? 'show' : 'hide']()
42
+ }
43
+
44
+ , show: function () {
45
+ var that = this
46
+ , e = $.Event('show')
47
+
48
+ this.$element.trigger(e)
49
+
50
+ if (this.isShown || e.isDefaultPrevented()) return
51
+
52
+ this.isShown = true
53
+
54
+ this.escape()
55
+
56
+ this.backdrop(function () {
57
+ var transition = $.support.transition && that.$element.hasClass('fade')
58
+
59
+ if (!that.$element.parent().length) {
60
+ that.$element.appendTo(document.body) //don't move modals dom position
61
+ }
62
+
63
+ that.$element.show()
64
+
65
+ if (transition) {
66
+ that.$element[0].offsetWidth // force reflow
67
+ }
68
+
69
+ that.$element
70
+ .addClass('in')
71
+ .attr('aria-hidden', false)
72
+
73
+ that.enforceFocus()
74
+
75
+ transition ?
76
+ that.$element.one($.support.transition.end, function () { that.$element.focus().trigger('shown') }) :
77
+ that.$element.focus().trigger('shown')
78
+
79
+ })
80
+ }
81
+
82
+ , hide: function (e) {
83
+ e && e.preventDefault()
84
+
85
+ var that = this
86
+
87
+ e = $.Event('hide')
88
+
89
+ this.$element.trigger(e)
90
+
91
+ if (!this.isShown || e.isDefaultPrevented()) return
92
+
93
+ this.isShown = false
94
+
95
+ this.escape()
96
+
97
+ $(document).off('focusin.modal')
98
+
99
+ this.$element
100
+ .removeClass('in')
101
+ .attr('aria-hidden', true)
102
+
103
+ $.support.transition && this.$element.hasClass('fade') ?
104
+ this.hideWithTransition() :
105
+ this.hideModal()
106
+ }
107
+
108
+ , enforceFocus: function () {
109
+ var that = this
110
+ $(document).on('focusin.modal', function (e) {
111
+ if (that.$element[0] !== e.target && !that.$element.has(e.target).length) {
112
+ that.$element.focus()
113
+ }
114
+ })
115
+ }
116
+
117
+ , escape: function () {
118
+ var that = this
119
+ if (this.isShown && this.options.keyboard) {
120
+ this.$element.on('keyup.dismiss.modal', function ( e ) {
121
+ e.which == 27 && that.hide()
122
+ })
123
+ } else if (!this.isShown) {
124
+ this.$element.off('keyup.dismiss.modal')
125
+ }
126
+ }
127
+
128
+ , hideWithTransition: function () {
129
+ var that = this
130
+ , timeout = setTimeout(function () {
131
+ that.$element.off($.support.transition.end)
132
+ that.hideModal()
133
+ }, 500)
134
+
135
+ this.$element.one($.support.transition.end, function () {
136
+ clearTimeout(timeout)
137
+ that.hideModal()
138
+ })
139
+ }
140
+
141
+ , hideModal: function () {
142
+ var that = this
143
+ this.$element.hide()
144
+ this.backdrop(function () {
145
+ that.removeBackdrop()
146
+ that.$element.trigger('hidden')
147
+ })
148
+ }
149
+
150
+ , removeBackdrop: function () {
151
+ this.$backdrop && this.$backdrop.remove()
152
+ this.$backdrop = null
153
+ }
154
+
155
+ , backdrop: function (callback) {
156
+ var that = this
157
+ , animate = this.$element.hasClass('fade') ? 'fade' : ''
158
+
159
+ if (this.isShown && this.options.backdrop) {
160
+ var doAnimate = $.support.transition && animate
161
+
162
+ this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />')
163
+ .appendTo(document.body)
164
+
165
+ this.$backdrop.click(
166
+ this.options.backdrop == 'static' ?
167
+ $.proxy(this.$element[0].focus, this.$element[0])
168
+ : $.proxy(this.hide, this)
169
+ )
170
+
171
+ if (doAnimate) this.$backdrop[0].offsetWidth // force reflow
172
+
173
+ this.$backdrop.addClass('in')
174
+
175
+ if (!callback) return
176
+
177
+ doAnimate ?
178
+ this.$backdrop.one($.support.transition.end, callback) :
179
+ callback()
180
+
181
+ } else if (!this.isShown && this.$backdrop) {
182
+ this.$backdrop.removeClass('in')
183
+
184
+ $.support.transition && this.$element.hasClass('fade')?
185
+ this.$backdrop.one($.support.transition.end, callback) :
186
+ callback()
187
+
188
+ } else if (callback) {
189
+ callback()
190
+ }
191
+ }
192
+ }
193
+
194
+
195
+ /* MODAL PLUGIN DEFINITION
196
+ * ======================= */
197
+
198
+ var old = $.fn.modal
199
+
200
+ $.fn.modal = function (option) {
201
+ return this.each(function () {
202
+ var $this = $(this)
203
+ , data = $this.data('modal')
204
+ , options = $.extend({}, $.fn.modal.defaults, $this.data(), typeof option == 'object' && option)
205
+ if (!data) $this.data('modal', (data = new Modal(this, options)))
206
+ if (typeof option == 'string') data[option]()
207
+ else if (options.show) data.show()
208
+ })
209
+ }
210
+
211
+ $.fn.modal.defaults = {
212
+ backdrop: true
213
+ , keyboard: true
214
+ , show: true
215
+ }
216
+
217
+ $.fn.modal.Constructor = Modal
218
+
219
+
220
+ /* MODAL NO CONFLICT
221
+ * ================= */
222
+
223
+ $.fn.modal.noConflict = function () {
224
+ $.fn.modal = old
225
+ return this
226
+ }
227
+
228
+
229
+ /* MODAL DATA-API
230
+ * ============== */
231
+
232
+ $(document).on('click.modal.data-api', '[data-toggle="modal"]', function (e) {
233
+ var $this = $(this)
234
+ , href = $this.attr('href')
235
+ , $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) //strip for ie7
236
+ , option = $target.data('modal') ? 'toggle' : $.extend({ remote:!/#/.test(href) && href }, $target.data(), $this.data())
237
+
238
+ e.preventDefault()
239
+
240
+ $target
241
+ .modal(option)
242
+ .one('hide', function () {
243
+ $this.focus()
244
+ })
245
+ })
246
+
247
+ }(window.jQuery);