jquery-ui-rails 5.0.4 → 7.0.0
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 +7 -0
- data/.gitmodules +1 -1
- data/.travis.yml +1 -1
- data/History.md +23 -2
- data/README.md +67 -50
- data/Rakefile +58 -29
- data/VERSIONS.md +4 -0
- data/app/assets/images/jquery-ui/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_444444_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_555555_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_777620_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_777777_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_cc0000_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_ffffff_256x240.png +0 -0
- data/app/assets/javascripts/jquery-ui/core.js +15 -304
- data/app/assets/javascripts/jquery-ui/data.js +45 -0
- data/app/assets/javascripts/jquery-ui/disable-selection.js +51 -0
- data/app/assets/javascripts/jquery-ui/effect.all.js +15 -16
- data/app/assets/javascripts/jquery-ui/effect.js +565 -891
- data/app/assets/javascripts/jquery-ui/effects/effect-blind.js +76 -0
- data/app/assets/javascripts/jquery-ui/effects/effect-bounce.js +116 -0
- data/app/assets/javascripts/jquery-ui/effects/effect-clip.js +71 -0
- data/app/assets/javascripts/jquery-ui/effects/effect-drop.js +75 -0
- data/app/assets/javascripts/jquery-ui/effects/effect-explode.js +117 -0
- data/app/assets/javascripts/jquery-ui/effects/effect-fade.js +53 -0
- data/app/assets/javascripts/jquery-ui/effects/effect-fold.js +95 -0
- data/app/assets/javascripts/jquery-ui/effects/effect-highlight.js +63 -0
- data/app/assets/javascripts/jquery-ui/effects/effect-puff.js +49 -0
- data/app/assets/javascripts/jquery-ui/effects/effect-pulsate.js +70 -0
- data/app/assets/javascripts/jquery-ui/effects/effect-scale.js +63 -0
- data/app/assets/javascripts/jquery-ui/effects/effect-shake.js +80 -0
- data/app/assets/javascripts/jquery-ui/effects/effect-size.js +199 -0
- data/app/assets/javascripts/jquery-ui/effects/effect-slide.js +82 -0
- data/app/assets/javascripts/jquery-ui/effects/effect-transfer.js +46 -0
- data/app/assets/javascripts/jquery-ui/focusable.js +89 -0
- data/app/assets/javascripts/jquery-ui/form-reset-mixin.js +83 -0
- data/app/assets/javascripts/jquery-ui/form.js +25 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-af.js +40 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-ar-DZ.js +42 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-ar.js +42 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-az.js +40 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-be.js +40 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-bg.js +41 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-bs.js +40 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-ca.js +40 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-cs.js +40 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-cy-GB.js +48 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-da.js +40 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-de-AT.js +41 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-de.js +40 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-el.js +40 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-en-AU.js +40 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-en-GB.js +40 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-en-NZ.js +40 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-eo.js +40 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-es.js +40 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-et.js +48 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-eu.js +39 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-fa.js +76 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-fi.js +40 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-fo.js +48 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-fr-CA.js +40 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-fr-CH.js +40 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-fr.js +42 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-gl.js +40 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-he.js +40 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-hi.js +40 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-hr.js +40 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-hu.js +39 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-hy.js +40 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-id.js +40 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-is.js +48 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-it-CH.js +40 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-it.js +40 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-ja.js +40 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-ka.js +51 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-kk.js +40 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-km.js +40 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-ko.js +40 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-ky.js +41 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-lb.js +48 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-lt.js +48 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-lv.js +48 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-mk.js +40 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-ml.js +40 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-ms.js +40 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-nb.js +52 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-nl-BE.js +40 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-nl.js +40 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-nn.js +52 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-no.js +53 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-pl.js +40 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-pt-BR.js +48 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-pt.js +47 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-rm.js +64 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-ro.js +43 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-ru.js +40 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-sk.js +40 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-sl.js +41 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-sq.js +40 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-sr-SR.js +40 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-sr.js +40 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-sv.js +40 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-ta.js +56 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-th.js +40 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-tj.js +40 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-tr.js +40 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-uk.js +41 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-vi.js +40 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-zh-CN.js +40 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-zh-HK.js +40 -0
- data/app/assets/javascripts/jquery-ui/i18n/datepicker-zh-TW.js +40 -0
- data/app/assets/javascripts/jquery-ui/ie.js +20 -0
- data/app/assets/javascripts/jquery-ui/jquery-patch.js +91 -0
- data/app/assets/javascripts/jquery-ui/jquery-var-for-color.js +24 -0
- data/app/assets/javascripts/jquery-ui/keycode.js +51 -0
- data/app/assets/javascripts/jquery-ui/labels.js +71 -0
- data/app/assets/javascripts/jquery-ui/plugin.js +49 -0
- data/app/assets/javascripts/jquery-ui/position.js +107 -111
- data/app/assets/javascripts/jquery-ui/safe-active-element.js +46 -0
- data/app/assets/javascripts/jquery-ui/safe-blur.js +27 -0
- data/app/assets/javascripts/jquery-ui/scroll-parent.js +50 -0
- data/app/assets/javascripts/jquery-ui/tabbable.js +41 -0
- data/app/assets/javascripts/jquery-ui/unique-id.js +54 -0
- data/app/assets/javascripts/jquery-ui/vendor/jquery-color/jquery.color.js +722 -0
- data/app/assets/javascripts/jquery-ui/version.js +20 -0
- data/app/assets/javascripts/jquery-ui/widget.js +359 -163
- data/app/assets/javascripts/jquery-ui/{accordion.js → widgets/accordion.js} +200 -163
- data/app/assets/javascripts/jquery-ui/{autocomplete.js → widgets/autocomplete.js} +153 -106
- data/app/assets/javascripts/jquery-ui/widgets/button.js +454 -0
- data/app/assets/javascripts/jquery-ui/widgets/checkboxradio.js +289 -0
- data/app/assets/javascripts/jquery-ui/widgets/controlgroup.js +304 -0
- data/app/assets/javascripts/jquery-ui/widgets/datepicker.js +2243 -0
- data/app/assets/javascripts/jquery-ui/{dialog.js → widgets/dialog.js} +267 -181
- data/app/assets/javascripts/jquery-ui/{draggable.js → widgets/draggable.js} +430 -294
- data/app/assets/javascripts/jquery-ui/{droppable.js → widgets/droppable.js} +174 -84
- data/app/assets/javascripts/jquery-ui/{menu.js → widgets/menu.js} +228 -158
- data/app/assets/javascripts/jquery-ui/widgets/mouse.js +241 -0
- data/app/assets/javascripts/jquery-ui/{progressbar.js → widgets/progressbar.js} +63 -41
- data/app/assets/javascripts/jquery-ui/widgets/resizable.js +1225 -0
- data/app/assets/javascripts/jquery-ui/widgets/selectable.js +321 -0
- data/app/assets/javascripts/jquery-ui/{selectmenu.js → widgets/selectmenu.js} +259 -177
- data/app/assets/javascripts/jquery-ui/{slider.js → widgets/slider.js} +199 -160
- data/app/assets/javascripts/jquery-ui/widgets/sortable.js +1623 -0
- data/app/assets/javascripts/jquery-ui/{spinner.js → widgets/spinner.js} +184 -114
- data/app/assets/javascripts/jquery-ui/{tabs.js → widgets/tabs.js} +258 -211
- data/app/assets/javascripts/jquery-ui/{tooltip.js → widgets/tooltip.js} +165 -100
- data/app/assets/javascripts/jquery-ui.js +53 -33
- data/app/assets/stylesheets/jquery-ui/accordion.css +1 -15
- data/app/assets/stylesheets/jquery-ui/all.css +1 -1
- data/app/assets/stylesheets/jquery-ui/autocomplete.css +1 -3
- data/app/assets/stylesheets/jquery-ui/base.css +3 -1
- data/app/assets/stylesheets/jquery-ui/button.css +35 -68
- data/app/assets/stylesheets/jquery-ui/checkboxradio.css +37 -0
- data/app/assets/stylesheets/jquery-ui/controlgroup.css +68 -0
- data/app/assets/stylesheets/jquery-ui/core.css +12 -8
- data/app/assets/stylesheets/jquery-ui/datepicker.css +11 -2
- data/app/assets/stylesheets/jquery-ui/dialog.css +38 -11
- data/app/assets/stylesheets/jquery-ui/draggable.css +1 -2
- data/app/assets/stylesheets/jquery-ui/menu.css +7 -7
- data/app/assets/stylesheets/jquery-ui/progressbar.css +2 -3
- data/app/assets/stylesheets/jquery-ui/resizable.css +1 -2
- data/app/assets/stylesheets/jquery-ui/selectable.css +1 -2
- data/app/assets/stylesheets/jquery-ui/selectmenu.css +11 -22
- data/app/assets/stylesheets/jquery-ui/slider.css +2 -3
- data/app/assets/stylesheets/jquery-ui/sortable.css +1 -2
- data/app/assets/stylesheets/jquery-ui/spinner.css +7 -22
- data/app/assets/stylesheets/jquery-ui/tabs.css +1 -2
- data/app/assets/stylesheets/jquery-ui/theme.css.erb +121 -92
- data/app/assets/stylesheets/jquery-ui/tooltip.css +1 -4
- data/lib/jquery/ui/rails/version.rb +2 -2
- metadata +153 -146
- data/app/assets/images/jquery-ui/ui-bg_flat_75_ffffff_40x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_glass_75_dadada_1x400.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_glass_95_fef1ec_1x400.png +0 -0
- data/app/assets/images/jquery-ui/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_222222_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_2e83ff_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_454545_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_888888_256x240.png +0 -0
- data/app/assets/images/jquery-ui/ui-icons_cd0a0a_256x240.png +0 -0
- data/app/assets/javascripts/jquery-ui/button.js +0 -414
- data/app/assets/javascripts/jquery-ui/datepicker-af.js +0 -37
- data/app/assets/javascripts/jquery-ui/datepicker-ar-DZ.js +0 -37
- data/app/assets/javascripts/jquery-ui/datepicker-ar.js +0 -38
- data/app/assets/javascripts/jquery-ui/datepicker-az.js +0 -37
- data/app/assets/javascripts/jquery-ui/datepicker-be.js +0 -37
- data/app/assets/javascripts/jquery-ui/datepicker-bg.js +0 -38
- data/app/assets/javascripts/jquery-ui/datepicker-bs.js +0 -37
- data/app/assets/javascripts/jquery-ui/datepicker-ca.js +0 -37
- data/app/assets/javascripts/jquery-ui/datepicker-cs.js +0 -37
- data/app/assets/javascripts/jquery-ui/datepicker-cy-GB.js +0 -37
- data/app/assets/javascripts/jquery-ui/datepicker-da.js +0 -37
- data/app/assets/javascripts/jquery-ui/datepicker-de.js +0 -37
- data/app/assets/javascripts/jquery-ui/datepicker-el.js +0 -37
- data/app/assets/javascripts/jquery-ui/datepicker-en-AU.js +0 -37
- data/app/assets/javascripts/jquery-ui/datepicker-en-GB.js +0 -37
- data/app/assets/javascripts/jquery-ui/datepicker-en-NZ.js +0 -37
- data/app/assets/javascripts/jquery-ui/datepicker-eo.js +0 -37
- data/app/assets/javascripts/jquery-ui/datepicker-es.js +0 -37
- data/app/assets/javascripts/jquery-ui/datepicker-et.js +0 -37
- data/app/assets/javascripts/jquery-ui/datepicker-eu.js +0 -36
- data/app/assets/javascripts/jquery-ui/datepicker-fa.js +0 -73
- data/app/assets/javascripts/jquery-ui/datepicker-fi.js +0 -37
- data/app/assets/javascripts/jquery-ui/datepicker-fo.js +0 -37
- data/app/assets/javascripts/jquery-ui/datepicker-fr-CA.js +0 -37
- data/app/assets/javascripts/jquery-ui/datepicker-fr-CH.js +0 -37
- data/app/assets/javascripts/jquery-ui/datepicker-fr.js +0 -39
- data/app/assets/javascripts/jquery-ui/datepicker-gl.js +0 -37
- data/app/assets/javascripts/jquery-ui/datepicker-he.js +0 -37
- data/app/assets/javascripts/jquery-ui/datepicker-hi.js +0 -37
- data/app/assets/javascripts/jquery-ui/datepicker-hr.js +0 -37
- data/app/assets/javascripts/jquery-ui/datepicker-hu.js +0 -36
- data/app/assets/javascripts/jquery-ui/datepicker-hy.js +0 -37
- data/app/assets/javascripts/jquery-ui/datepicker-id.js +0 -37
- data/app/assets/javascripts/jquery-ui/datepicker-is.js +0 -37
- data/app/assets/javascripts/jquery-ui/datepicker-it-CH.js +0 -37
- data/app/assets/javascripts/jquery-ui/datepicker-it.js +0 -37
- data/app/assets/javascripts/jquery-ui/datepicker-ja.js +0 -37
- data/app/assets/javascripts/jquery-ui/datepicker-ka.js +0 -35
- data/app/assets/javascripts/jquery-ui/datepicker-kk.js +0 -37
- data/app/assets/javascripts/jquery-ui/datepicker-km.js +0 -37
- data/app/assets/javascripts/jquery-ui/datepicker-ko.js +0 -37
- data/app/assets/javascripts/jquery-ui/datepicker-ky.js +0 -38
- data/app/assets/javascripts/jquery-ui/datepicker-lb.js +0 -37
- data/app/assets/javascripts/jquery-ui/datepicker-lt.js +0 -37
- data/app/assets/javascripts/jquery-ui/datepicker-lv.js +0 -37
- data/app/assets/javascripts/jquery-ui/datepicker-mk.js +0 -37
- data/app/assets/javascripts/jquery-ui/datepicker-ml.js +0 -37
- data/app/assets/javascripts/jquery-ui/datepicker-ms.js +0 -37
- data/app/assets/javascripts/jquery-ui/datepicker-nb.js +0 -36
- data/app/assets/javascripts/jquery-ui/datepicker-nl-BE.js +0 -37
- data/app/assets/javascripts/jquery-ui/datepicker-nl.js +0 -37
- data/app/assets/javascripts/jquery-ui/datepicker-nn.js +0 -36
- data/app/assets/javascripts/jquery-ui/datepicker-no.js +0 -37
- data/app/assets/javascripts/jquery-ui/datepicker-pl.js +0 -37
- data/app/assets/javascripts/jquery-ui/datepicker-pt-BR.js +0 -37
- data/app/assets/javascripts/jquery-ui/datepicker-pt.js +0 -36
- data/app/assets/javascripts/jquery-ui/datepicker-rm.js +0 -35
- data/app/assets/javascripts/jquery-ui/datepicker-ro.js +0 -40
- data/app/assets/javascripts/jquery-ui/datepicker-ru.js +0 -37
- data/app/assets/javascripts/jquery-ui/datepicker-sk.js +0 -37
- data/app/assets/javascripts/jquery-ui/datepicker-sl.js +0 -38
- data/app/assets/javascripts/jquery-ui/datepicker-sq.js +0 -37
- data/app/assets/javascripts/jquery-ui/datepicker-sr-SR.js +0 -37
- data/app/assets/javascripts/jquery-ui/datepicker-sr.js +0 -37
- data/app/assets/javascripts/jquery-ui/datepicker-sv.js +0 -37
- data/app/assets/javascripts/jquery-ui/datepicker-ta.js +0 -37
- data/app/assets/javascripts/jquery-ui/datepicker-th.js +0 -37
- data/app/assets/javascripts/jquery-ui/datepicker-tj.js +0 -37
- data/app/assets/javascripts/jquery-ui/datepicker-tr.js +0 -37
- data/app/assets/javascripts/jquery-ui/datepicker-uk.js +0 -38
- data/app/assets/javascripts/jquery-ui/datepicker-vi.js +0 -37
- data/app/assets/javascripts/jquery-ui/datepicker-zh-CN.js +0 -37
- data/app/assets/javascripts/jquery-ui/datepicker-zh-HK.js +0 -37
- data/app/assets/javascripts/jquery-ui/datepicker-zh-TW.js +0 -37
- data/app/assets/javascripts/jquery-ui/datepicker.js +0 -2086
- data/app/assets/javascripts/jquery-ui/effect-blind.js +0 -92
- data/app/assets/javascripts/jquery-ui/effect-bounce.js +0 -125
- data/app/assets/javascripts/jquery-ui/effect-clip.js +0 -79
- data/app/assets/javascripts/jquery-ui/effect-drop.js +0 -77
- data/app/assets/javascripts/jquery-ui/effect-explode.js +0 -109
- data/app/assets/javascripts/jquery-ui/effect-fade.js +0 -42
- data/app/assets/javascripts/jquery-ui/effect-fold.js +0 -88
- data/app/assets/javascripts/jquery-ui/effect-highlight.js +0 -62
- data/app/assets/javascripts/jquery-ui/effect-puff.js +0 -63
- data/app/assets/javascripts/jquery-ui/effect-pulsate.js +0 -75
- data/app/assets/javascripts/jquery-ui/effect-scale.js +0 -92
- data/app/assets/javascripts/jquery-ui/effect-shake.js +0 -86
- data/app/assets/javascripts/jquery-ui/effect-size.js +0 -235
- data/app/assets/javascripts/jquery-ui/effect-slide.js +0 -76
- data/app/assets/javascripts/jquery-ui/effect-transfer.js +0 -59
- data/app/assets/javascripts/jquery-ui/mouse.js +0 -202
- data/app/assets/javascripts/jquery-ui/resizable.js +0 -1183
- data/app/assets/javascripts/jquery-ui/selectable.js +0 -291
- data/app/assets/javascripts/jquery-ui/sortable.js +0 -1308
@@ -1,113 +1,132 @@
|
|
1
|
+
//= require jquery-ui/version
|
2
|
+
|
1
3
|
/*!
|
2
|
-
* jQuery UI Widget 1.
|
4
|
+
* jQuery UI Widget 1.13.0
|
3
5
|
* http://jqueryui.com
|
4
6
|
*
|
5
7
|
* Copyright jQuery Foundation and other contributors
|
6
8
|
* Released under the MIT license.
|
7
9
|
* http://jquery.org/license
|
8
|
-
*
|
9
|
-
* http://api.jqueryui.com/jQuery.widget/
|
10
10
|
*/
|
11
|
-
|
11
|
+
|
12
|
+
//>>label: Widget
|
13
|
+
//>>group: Core
|
14
|
+
//>>description: Provides a factory for creating stateful widgets with a common API.
|
15
|
+
//>>docs: http://api.jqueryui.com/jQuery.widget/
|
16
|
+
//>>demos: http://jqueryui.com/widget/
|
17
|
+
|
18
|
+
( function( factory ) {
|
19
|
+
"use strict";
|
20
|
+
|
12
21
|
if ( typeof define === "function" && define.amd ) {
|
13
22
|
|
14
23
|
// AMD. Register as an anonymous module.
|
15
|
-
define( [ "jquery" ], factory );
|
24
|
+
define( [ "jquery", "./version" ], factory );
|
16
25
|
} else {
|
17
26
|
|
18
27
|
// Browser globals
|
19
28
|
factory( jQuery );
|
20
29
|
}
|
21
|
-
}(function( $ ) {
|
30
|
+
} )( function( $ ) {
|
31
|
+
"use strict";
|
22
32
|
|
23
|
-
var
|
24
|
-
|
33
|
+
var widgetUuid = 0;
|
34
|
+
var widgetHasOwnProperty = Array.prototype.hasOwnProperty;
|
35
|
+
var widgetSlice = Array.prototype.slice;
|
25
36
|
|
26
|
-
$.cleanData = (function( orig ) {
|
37
|
+
$.cleanData = ( function( orig ) {
|
27
38
|
return function( elems ) {
|
28
39
|
var events, elem, i;
|
29
|
-
for ( i = 0; (elem = elems[i]) != null; i++ ) {
|
30
|
-
try {
|
31
|
-
|
32
|
-
// Only trigger remove when necessary to save time
|
33
|
-
events = $._data( elem, "events" );
|
34
|
-
if ( events && events.remove ) {
|
35
|
-
$( elem ).triggerHandler( "remove" );
|
36
|
-
}
|
40
|
+
for ( i = 0; ( elem = elems[ i ] ) != null; i++ ) {
|
37
41
|
|
38
|
-
//
|
39
|
-
|
42
|
+
// Only trigger remove when necessary to save time
|
43
|
+
events = $._data( elem, "events" );
|
44
|
+
if ( events && events.remove ) {
|
45
|
+
$( elem ).triggerHandler( "remove" );
|
46
|
+
}
|
40
47
|
}
|
41
48
|
orig( elems );
|
42
49
|
};
|
43
|
-
})( $.cleanData );
|
50
|
+
} )( $.cleanData );
|
44
51
|
|
45
52
|
$.widget = function( name, base, prototype ) {
|
46
|
-
var
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
53
|
+
var existingConstructor, constructor, basePrototype;
|
54
|
+
|
55
|
+
// ProxiedPrototype allows the provided prototype to remain unmodified
|
56
|
+
// so that it can be used as a mixin for multiple widgets (#8876)
|
57
|
+
var proxiedPrototype = {};
|
51
58
|
|
59
|
+
var namespace = name.split( "." )[ 0 ];
|
52
60
|
name = name.split( "." )[ 1 ];
|
53
|
-
fullName = namespace + "-" + name;
|
61
|
+
var fullName = namespace + "-" + name;
|
54
62
|
|
55
63
|
if ( !prototype ) {
|
56
64
|
prototype = base;
|
57
65
|
base = $.Widget;
|
58
66
|
}
|
59
67
|
|
60
|
-
|
61
|
-
|
68
|
+
if ( Array.isArray( prototype ) ) {
|
69
|
+
prototype = $.extend.apply( null, [ {} ].concat( prototype ) );
|
70
|
+
}
|
71
|
+
|
72
|
+
// Create selector for plugin
|
73
|
+
$.expr.pseudos[ fullName.toLowerCase() ] = function( elem ) {
|
62
74
|
return !!$.data( elem, fullName );
|
63
75
|
};
|
64
76
|
|
65
77
|
$[ namespace ] = $[ namespace ] || {};
|
66
78
|
existingConstructor = $[ namespace ][ name ];
|
67
79
|
constructor = $[ namespace ][ name ] = function( options, element ) {
|
68
|
-
|
80
|
+
|
81
|
+
// Allow instantiation without "new" keyword
|
69
82
|
if ( !this._createWidget ) {
|
70
83
|
return new constructor( options, element );
|
71
84
|
}
|
72
85
|
|
73
|
-
//
|
86
|
+
// Allow instantiation without initializing for simple inheritance
|
74
87
|
// must use "new" keyword (the code above always passes args)
|
75
88
|
if ( arguments.length ) {
|
76
89
|
this._createWidget( options, element );
|
77
90
|
}
|
78
91
|
};
|
79
|
-
|
92
|
+
|
93
|
+
// Extend with the existing constructor to carry over any static properties
|
80
94
|
$.extend( constructor, existingConstructor, {
|
81
95
|
version: prototype.version,
|
82
|
-
|
96
|
+
|
97
|
+
// Copy the object used to create the prototype in case we need to
|
83
98
|
// redefine the widget later
|
84
99
|
_proto: $.extend( {}, prototype ),
|
85
|
-
|
100
|
+
|
101
|
+
// Track widgets that inherit from this widget in case this widget is
|
86
102
|
// redefined after a widget inherits from it
|
87
103
|
_childConstructors: []
|
88
|
-
});
|
104
|
+
} );
|
89
105
|
|
90
106
|
basePrototype = new base();
|
91
|
-
|
107
|
+
|
108
|
+
// We need to make the options hash a property directly on the new instance
|
92
109
|
// otherwise we'll modify the options hash on the prototype that we're
|
93
110
|
// inheriting from
|
94
111
|
basePrototype.options = $.widget.extend( {}, basePrototype.options );
|
95
112
|
$.each( prototype, function( prop, value ) {
|
96
|
-
if (
|
113
|
+
if ( typeof value !== "function" ) {
|
97
114
|
proxiedPrototype[ prop ] = value;
|
98
115
|
return;
|
99
116
|
}
|
100
|
-
proxiedPrototype[ prop ] = (function() {
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
117
|
+
proxiedPrototype[ prop ] = ( function() {
|
118
|
+
function _super() {
|
119
|
+
return base.prototype[ prop ].apply( this, arguments );
|
120
|
+
}
|
121
|
+
|
122
|
+
function _superApply( args ) {
|
123
|
+
return base.prototype[ prop ].apply( this, args );
|
124
|
+
}
|
125
|
+
|
107
126
|
return function() {
|
108
|
-
var __super = this._super
|
109
|
-
|
110
|
-
|
127
|
+
var __super = this._super;
|
128
|
+
var __superApply = this._superApply;
|
129
|
+
var returnValue;
|
111
130
|
|
112
131
|
this._super = _super;
|
113
132
|
this._superApply = _superApply;
|
@@ -119,19 +138,20 @@ $.widget = function( name, base, prototype ) {
|
|
119
138
|
|
120
139
|
return returnValue;
|
121
140
|
};
|
122
|
-
})();
|
123
|
-
});
|
141
|
+
} )();
|
142
|
+
} );
|
124
143
|
constructor.prototype = $.widget.extend( basePrototype, {
|
144
|
+
|
125
145
|
// TODO: remove support for widgetEventPrefix
|
126
146
|
// always use the name + a colon as the prefix, e.g., draggable:start
|
127
147
|
// don't prefix for widgets that aren't DOM-based
|
128
|
-
widgetEventPrefix: existingConstructor ? (basePrototype.widgetEventPrefix || name) : name
|
148
|
+
widgetEventPrefix: existingConstructor ? ( basePrototype.widgetEventPrefix || name ) : name
|
129
149
|
}, proxiedPrototype, {
|
130
150
|
constructor: constructor,
|
131
151
|
namespace: namespace,
|
132
152
|
widgetName: name,
|
133
153
|
widgetFullName: fullName
|
134
|
-
});
|
154
|
+
} );
|
135
155
|
|
136
156
|
// If this widget is being redefined then we need to find all widgets that
|
137
157
|
// are inheriting from it and redefine all of them so that they inherit from
|
@@ -141,11 +161,13 @@ $.widget = function( name, base, prototype ) {
|
|
141
161
|
$.each( existingConstructor._childConstructors, function( i, child ) {
|
142
162
|
var childPrototype = child.prototype;
|
143
163
|
|
144
|
-
//
|
164
|
+
// Redefine the child widget using the same prototype that was
|
145
165
|
// originally used, but inherit from the new version of the base
|
146
|
-
$.widget( childPrototype.namespace + "." + childPrototype.widgetName, constructor,
|
147
|
-
|
148
|
-
|
166
|
+
$.widget( childPrototype.namespace + "." + childPrototype.widgetName, constructor,
|
167
|
+
child._proto );
|
168
|
+
} );
|
169
|
+
|
170
|
+
// Remove the list of existing child constructors from the old constructor
|
149
171
|
// so the old child constructors can be garbage collected
|
150
172
|
delete existingConstructor._childConstructors;
|
151
173
|
} else {
|
@@ -158,21 +180,25 @@ $.widget = function( name, base, prototype ) {
|
|
158
180
|
};
|
159
181
|
|
160
182
|
$.widget.extend = function( target ) {
|
161
|
-
var input =
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
183
|
+
var input = widgetSlice.call( arguments, 1 );
|
184
|
+
var inputIndex = 0;
|
185
|
+
var inputLength = input.length;
|
186
|
+
var key;
|
187
|
+
var value;
|
188
|
+
|
166
189
|
for ( ; inputIndex < inputLength; inputIndex++ ) {
|
167
190
|
for ( key in input[ inputIndex ] ) {
|
168
191
|
value = input[ inputIndex ][ key ];
|
169
|
-
if ( input[ inputIndex ]
|
192
|
+
if ( widgetHasOwnProperty.call( input[ inputIndex ], key ) && value !== undefined ) {
|
193
|
+
|
170
194
|
// Clone objects
|
171
195
|
if ( $.isPlainObject( value ) ) {
|
172
196
|
target[ key ] = $.isPlainObject( target[ key ] ) ?
|
173
197
|
$.widget.extend( {}, target[ key ], value ) :
|
198
|
+
|
174
199
|
// Don't extend strings, arrays, etc. with objects
|
175
200
|
$.widget.extend( {}, value );
|
201
|
+
|
176
202
|
// Copy everything else by reference
|
177
203
|
} else {
|
178
204
|
target[ key ] = value;
|
@@ -186,41 +212,56 @@ $.widget.extend = function( target ) {
|
|
186
212
|
$.widget.bridge = function( name, object ) {
|
187
213
|
var fullName = object.prototype.widgetFullName || name;
|
188
214
|
$.fn[ name ] = function( options ) {
|
189
|
-
var isMethodCall = typeof options === "string"
|
190
|
-
|
191
|
-
|
215
|
+
var isMethodCall = typeof options === "string";
|
216
|
+
var args = widgetSlice.call( arguments, 1 );
|
217
|
+
var returnValue = this;
|
192
218
|
|
193
219
|
if ( isMethodCall ) {
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
220
|
+
|
221
|
+
// If this is an empty collection, we need to have the instance method
|
222
|
+
// return undefined instead of the jQuery instance
|
223
|
+
if ( !this.length && options === "instance" ) {
|
224
|
+
returnValue = undefined;
|
225
|
+
} else {
|
226
|
+
this.each( function() {
|
227
|
+
var methodValue;
|
228
|
+
var instance = $.data( this, fullName );
|
229
|
+
|
230
|
+
if ( options === "instance" ) {
|
231
|
+
returnValue = instance;
|
232
|
+
return false;
|
233
|
+
}
|
234
|
+
|
235
|
+
if ( !instance ) {
|
236
|
+
return $.error( "cannot call methods on " + name +
|
237
|
+
" prior to initialization; " +
|
238
|
+
"attempted to call method '" + options + "'" );
|
239
|
+
}
|
240
|
+
|
241
|
+
if ( typeof instance[ options ] !== "function" ||
|
242
|
+
options.charAt( 0 ) === "_" ) {
|
243
|
+
return $.error( "no such method '" + options + "' for " + name +
|
244
|
+
" widget instance" );
|
245
|
+
}
|
246
|
+
|
247
|
+
methodValue = instance[ options ].apply( instance, args );
|
248
|
+
|
249
|
+
if ( methodValue !== instance && methodValue !== undefined ) {
|
250
|
+
returnValue = methodValue && methodValue.jquery ?
|
251
|
+
returnValue.pushStack( methodValue.get() ) :
|
252
|
+
methodValue;
|
253
|
+
return false;
|
254
|
+
}
|
255
|
+
} );
|
256
|
+
}
|
216
257
|
} else {
|
217
258
|
|
218
259
|
// Allow multiple hashes to be passed on init
|
219
260
|
if ( args.length ) {
|
220
|
-
options = $.widget.extend.apply( null, [ options ].concat(args) );
|
261
|
+
options = $.widget.extend.apply( null, [ options ].concat( args ) );
|
221
262
|
}
|
222
263
|
|
223
|
-
this.each(function() {
|
264
|
+
this.each( function() {
|
224
265
|
var instance = $.data( this, fullName );
|
225
266
|
if ( instance ) {
|
226
267
|
instance.option( options || {} );
|
@@ -230,7 +271,7 @@ $.widget.bridge = function( name, object ) {
|
|
230
271
|
} else {
|
231
272
|
$.data( this, fullName, new object( options, this ) );
|
232
273
|
}
|
233
|
-
});
|
274
|
+
} );
|
234
275
|
}
|
235
276
|
|
236
277
|
return returnValue;
|
@@ -244,21 +285,25 @@ $.Widget.prototype = {
|
|
244
285
|
widgetName: "widget",
|
245
286
|
widgetEventPrefix: "",
|
246
287
|
defaultElement: "<div>",
|
288
|
+
|
247
289
|
options: {
|
290
|
+
classes: {},
|
248
291
|
disabled: false,
|
249
292
|
|
250
|
-
//
|
293
|
+
// Callbacks
|
251
294
|
create: null
|
252
295
|
},
|
296
|
+
|
253
297
|
_createWidget: function( options, element ) {
|
254
298
|
element = $( element || this.defaultElement || this )[ 0 ];
|
255
299
|
this.element = $( element );
|
256
|
-
this.uuid =
|
300
|
+
this.uuid = widgetUuid++;
|
257
301
|
this.eventNamespace = "." + this.widgetName + this.uuid;
|
258
302
|
|
259
303
|
this.bindings = $();
|
260
304
|
this.hoverable = $();
|
261
305
|
this.focusable = $();
|
306
|
+
this.classesElementLookup = {};
|
262
307
|
|
263
308
|
if ( element !== this ) {
|
264
309
|
$.data( element, this.widgetFullName, this );
|
@@ -268,13 +313,15 @@ $.Widget.prototype = {
|
|
268
313
|
this.destroy();
|
269
314
|
}
|
270
315
|
}
|
271
|
-
});
|
316
|
+
} );
|
272
317
|
this.document = $( element.style ?
|
273
|
-
|
318
|
+
|
319
|
+
// Element within the document
|
274
320
|
element.ownerDocument :
|
275
|
-
|
321
|
+
|
322
|
+
// Element is window or document
|
276
323
|
element.document || element );
|
277
|
-
this.window = $( this.document[0].defaultView || this.document[0].parentWindow );
|
324
|
+
this.window = $( this.document[ 0 ].defaultView || this.document[ 0 ].parentWindow );
|
278
325
|
}
|
279
326
|
|
280
327
|
this.options = $.widget.extend( {},
|
@@ -283,36 +330,46 @@ $.Widget.prototype = {
|
|
283
330
|
options );
|
284
331
|
|
285
332
|
this._create();
|
333
|
+
|
334
|
+
if ( this.options.disabled ) {
|
335
|
+
this._setOptionDisabled( this.options.disabled );
|
336
|
+
}
|
337
|
+
|
286
338
|
this._trigger( "create", null, this._getCreateEventData() );
|
287
339
|
this._init();
|
288
340
|
},
|
289
|
-
|
341
|
+
|
342
|
+
_getCreateOptions: function() {
|
343
|
+
return {};
|
344
|
+
},
|
345
|
+
|
290
346
|
_getCreateEventData: $.noop,
|
347
|
+
|
291
348
|
_create: $.noop,
|
349
|
+
|
292
350
|
_init: $.noop,
|
293
351
|
|
294
352
|
destroy: function() {
|
353
|
+
var that = this;
|
354
|
+
|
295
355
|
this._destroy();
|
296
|
-
|
356
|
+
$.each( this.classesElementLookup, function( key, value ) {
|
357
|
+
that._removeClass( value, key );
|
358
|
+
} );
|
359
|
+
|
360
|
+
// We can probably remove the unbind calls in 2.0
|
297
361
|
// all event bindings should go through this._on()
|
298
362
|
this.element
|
299
|
-
.
|
300
|
-
.removeData( this.widgetFullName )
|
301
|
-
// support: jquery <1.6.3
|
302
|
-
// http://bugs.jquery.com/ticket/9413
|
303
|
-
.removeData( $.camelCase( this.widgetFullName ) );
|
363
|
+
.off( this.eventNamespace )
|
364
|
+
.removeData( this.widgetFullName );
|
304
365
|
this.widget()
|
305
|
-
.
|
306
|
-
.removeAttr( "aria-disabled" )
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
// clean up events and states
|
312
|
-
this.bindings.unbind( this.eventNamespace );
|
313
|
-
this.hoverable.removeClass( "ui-state-hover" );
|
314
|
-
this.focusable.removeClass( "ui-state-focus" );
|
366
|
+
.off( this.eventNamespace )
|
367
|
+
.removeAttr( "aria-disabled" );
|
368
|
+
|
369
|
+
// Clean up events and states
|
370
|
+
this.bindings.off( this.eventNamespace );
|
315
371
|
},
|
372
|
+
|
316
373
|
_destroy: $.noop,
|
317
374
|
|
318
375
|
widget: function() {
|
@@ -320,18 +377,20 @@ $.Widget.prototype = {
|
|
320
377
|
},
|
321
378
|
|
322
379
|
option: function( key, value ) {
|
323
|
-
var options = key
|
324
|
-
|
325
|
-
|
326
|
-
|
380
|
+
var options = key;
|
381
|
+
var parts;
|
382
|
+
var curOption;
|
383
|
+
var i;
|
327
384
|
|
328
385
|
if ( arguments.length === 0 ) {
|
329
|
-
|
386
|
+
|
387
|
+
// Don't return a reference to the internal hash
|
330
388
|
return $.widget.extend( {}, this.options );
|
331
389
|
}
|
332
390
|
|
333
391
|
if ( typeof key === "string" ) {
|
334
|
-
|
392
|
+
|
393
|
+
// Handle nested keys, e.g., "foo.bar" => { foo: { bar: ___ } }
|
335
394
|
options = {};
|
336
395
|
parts = key.split( "." );
|
337
396
|
key = parts.shift();
|
@@ -358,6 +417,7 @@ $.Widget.prototype = {
|
|
358
417
|
|
359
418
|
return this;
|
360
419
|
},
|
420
|
+
|
361
421
|
_setOptions: function( options ) {
|
362
422
|
var key;
|
363
423
|
|
@@ -367,42 +427,168 @@ $.Widget.prototype = {
|
|
367
427
|
|
368
428
|
return this;
|
369
429
|
},
|
430
|
+
|
370
431
|
_setOption: function( key, value ) {
|
432
|
+
if ( key === "classes" ) {
|
433
|
+
this._setOptionClasses( value );
|
434
|
+
}
|
435
|
+
|
371
436
|
this.options[ key ] = value;
|
372
437
|
|
373
438
|
if ( key === "disabled" ) {
|
374
|
-
this.
|
375
|
-
|
439
|
+
this._setOptionDisabled( value );
|
440
|
+
}
|
376
441
|
|
377
|
-
|
378
|
-
|
379
|
-
|
380
|
-
|
442
|
+
return this;
|
443
|
+
},
|
444
|
+
|
445
|
+
_setOptionClasses: function( value ) {
|
446
|
+
var classKey, elements, currentElements;
|
447
|
+
|
448
|
+
for ( classKey in value ) {
|
449
|
+
currentElements = this.classesElementLookup[ classKey ];
|
450
|
+
if ( value[ classKey ] === this.options.classes[ classKey ] ||
|
451
|
+
!currentElements ||
|
452
|
+
!currentElements.length ) {
|
453
|
+
continue;
|
381
454
|
}
|
455
|
+
|
456
|
+
// We are doing this to create a new jQuery object because the _removeClass() call
|
457
|
+
// on the next line is going to destroy the reference to the current elements being
|
458
|
+
// tracked. We need to save a copy of this collection so that we can add the new classes
|
459
|
+
// below.
|
460
|
+
elements = $( currentElements.get() );
|
461
|
+
this._removeClass( currentElements, classKey );
|
462
|
+
|
463
|
+
// We don't use _addClass() here, because that uses this.options.classes
|
464
|
+
// for generating the string of classes. We want to use the value passed in from
|
465
|
+
// _setOption(), this is the new value of the classes option which was passed to
|
466
|
+
// _setOption(). We pass this value directly to _classes().
|
467
|
+
elements.addClass( this._classes( {
|
468
|
+
element: elements,
|
469
|
+
keys: classKey,
|
470
|
+
classes: value,
|
471
|
+
add: true
|
472
|
+
} ) );
|
382
473
|
}
|
474
|
+
},
|
383
475
|
|
384
|
-
|
476
|
+
_setOptionDisabled: function( value ) {
|
477
|
+
this._toggleClass( this.widget(), this.widgetFullName + "-disabled", null, !!value );
|
478
|
+
|
479
|
+
// If the widget is becoming disabled, then nothing is interactive
|
480
|
+
if ( value ) {
|
481
|
+
this._removeClass( this.hoverable, null, "ui-state-hover" );
|
482
|
+
this._removeClass( this.focusable, null, "ui-state-focus" );
|
483
|
+
}
|
385
484
|
},
|
386
485
|
|
387
486
|
enable: function() {
|
388
|
-
return this._setOptions({ disabled: false });
|
487
|
+
return this._setOptions( { disabled: false } );
|
389
488
|
},
|
489
|
+
|
390
490
|
disable: function() {
|
391
|
-
return this._setOptions({ disabled: true });
|
491
|
+
return this._setOptions( { disabled: true } );
|
492
|
+
},
|
493
|
+
|
494
|
+
_classes: function( options ) {
|
495
|
+
var full = [];
|
496
|
+
var that = this;
|
497
|
+
|
498
|
+
options = $.extend( {
|
499
|
+
element: this.element,
|
500
|
+
classes: this.options.classes || {}
|
501
|
+
}, options );
|
502
|
+
|
503
|
+
function bindRemoveEvent() {
|
504
|
+
options.element.each( function( _, element ) {
|
505
|
+
var isTracked = $.map( that.classesElementLookup, function( elements ) {
|
506
|
+
return elements;
|
507
|
+
} )
|
508
|
+
.some( function( elements ) {
|
509
|
+
return elements.is( element );
|
510
|
+
} );
|
511
|
+
|
512
|
+
if ( !isTracked ) {
|
513
|
+
that._on( $( element ), {
|
514
|
+
remove: "_untrackClassesElement"
|
515
|
+
} );
|
516
|
+
}
|
517
|
+
} );
|
518
|
+
}
|
519
|
+
|
520
|
+
function processClassString( classes, checkOption ) {
|
521
|
+
var current, i;
|
522
|
+
for ( i = 0; i < classes.length; i++ ) {
|
523
|
+
current = that.classesElementLookup[ classes[ i ] ] || $();
|
524
|
+
if ( options.add ) {
|
525
|
+
bindRemoveEvent();
|
526
|
+
current = $( $.uniqueSort( current.get().concat( options.element.get() ) ) );
|
527
|
+
} else {
|
528
|
+
current = $( current.not( options.element ).get() );
|
529
|
+
}
|
530
|
+
that.classesElementLookup[ classes[ i ] ] = current;
|
531
|
+
full.push( classes[ i ] );
|
532
|
+
if ( checkOption && options.classes[ classes[ i ] ] ) {
|
533
|
+
full.push( options.classes[ classes[ i ] ] );
|
534
|
+
}
|
535
|
+
}
|
536
|
+
}
|
537
|
+
|
538
|
+
if ( options.keys ) {
|
539
|
+
processClassString( options.keys.match( /\S+/g ) || [], true );
|
540
|
+
}
|
541
|
+
if ( options.extra ) {
|
542
|
+
processClassString( options.extra.match( /\S+/g ) || [] );
|
543
|
+
}
|
544
|
+
|
545
|
+
return full.join( " " );
|
546
|
+
},
|
547
|
+
|
548
|
+
_untrackClassesElement: function( event ) {
|
549
|
+
var that = this;
|
550
|
+
$.each( that.classesElementLookup, function( key, value ) {
|
551
|
+
if ( $.inArray( event.target, value ) !== -1 ) {
|
552
|
+
that.classesElementLookup[ key ] = $( value.not( event.target ).get() );
|
553
|
+
}
|
554
|
+
} );
|
555
|
+
|
556
|
+
this._off( $( event.target ) );
|
557
|
+
},
|
558
|
+
|
559
|
+
_removeClass: function( element, keys, extra ) {
|
560
|
+
return this._toggleClass( element, keys, extra, false );
|
561
|
+
},
|
562
|
+
|
563
|
+
_addClass: function( element, keys, extra ) {
|
564
|
+
return this._toggleClass( element, keys, extra, true );
|
565
|
+
},
|
566
|
+
|
567
|
+
_toggleClass: function( element, keys, extra, add ) {
|
568
|
+
add = ( typeof add === "boolean" ) ? add : extra;
|
569
|
+
var shift = ( typeof element === "string" || element === null ),
|
570
|
+
options = {
|
571
|
+
extra: shift ? keys : extra,
|
572
|
+
keys: shift ? element : keys,
|
573
|
+
element: shift ? this.element : element,
|
574
|
+
add: add
|
575
|
+
};
|
576
|
+
options.element.toggleClass( this._classes( options ), add );
|
577
|
+
return this;
|
392
578
|
},
|
393
579
|
|
394
580
|
_on: function( suppressDisabledCheck, element, handlers ) {
|
395
|
-
var delegateElement
|
396
|
-
|
581
|
+
var delegateElement;
|
582
|
+
var instance = this;
|
397
583
|
|
398
|
-
//
|
584
|
+
// No suppressDisabledCheck flag, shuffle arguments
|
399
585
|
if ( typeof suppressDisabledCheck !== "boolean" ) {
|
400
586
|
handlers = element;
|
401
587
|
element = suppressDisabledCheck;
|
402
588
|
suppressDisabledCheck = false;
|
403
589
|
}
|
404
590
|
|
405
|
-
//
|
591
|
+
// No element argument, shuffle and use this.element
|
406
592
|
if ( !handlers ) {
|
407
593
|
handlers = element;
|
408
594
|
element = this.element;
|
@@ -414,39 +600,41 @@ $.Widget.prototype = {
|
|
414
600
|
|
415
601
|
$.each( handlers, function( event, handler ) {
|
416
602
|
function handlerProxy() {
|
417
|
-
|
603
|
+
|
604
|
+
// Allow widgets to customize the disabled handling
|
418
605
|
// - disabled as an array instead of boolean
|
419
606
|
// - disabled class as method for disabling individual parts
|
420
607
|
if ( !suppressDisabledCheck &&
|
421
608
|
( instance.options.disabled === true ||
|
422
|
-
|
609
|
+
$( this ).hasClass( "ui-state-disabled" ) ) ) {
|
423
610
|
return;
|
424
611
|
}
|
425
612
|
return ( typeof handler === "string" ? instance[ handler ] : handler )
|
426
613
|
.apply( instance, arguments );
|
427
614
|
}
|
428
615
|
|
429
|
-
//
|
616
|
+
// Copy the guid so direct unbinding works
|
430
617
|
if ( typeof handler !== "string" ) {
|
431
618
|
handlerProxy.guid = handler.guid =
|
432
619
|
handler.guid || handlerProxy.guid || $.guid++;
|
433
620
|
}
|
434
621
|
|
435
|
-
var match = event.match( /^([\w:-]*)\s*(.*)$/ )
|
436
|
-
|
437
|
-
|
622
|
+
var match = event.match( /^([\w:-]*)\s*(.*)$/ );
|
623
|
+
var eventName = match[ 1 ] + instance.eventNamespace;
|
624
|
+
var selector = match[ 2 ];
|
625
|
+
|
438
626
|
if ( selector ) {
|
439
|
-
delegateElement.
|
627
|
+
delegateElement.on( eventName, selector, handlerProxy );
|
440
628
|
} else {
|
441
|
-
element.
|
629
|
+
element.on( eventName, handlerProxy );
|
442
630
|
}
|
443
|
-
});
|
631
|
+
} );
|
444
632
|
},
|
445
633
|
|
446
634
|
_off: function( element, eventName ) {
|
447
|
-
eventName = (eventName || "").split( " " ).join( this.eventNamespace + " " ) +
|
635
|
+
eventName = ( eventName || "" ).split( " " ).join( this.eventNamespace + " " ) +
|
448
636
|
this.eventNamespace;
|
449
|
-
element.
|
637
|
+
element.off( eventName );
|
450
638
|
|
451
639
|
// Clear the stack to avoid memory leaks (#10056)
|
452
640
|
this.bindings = $( this.bindings.not( element ).get() );
|
@@ -467,40 +655,41 @@ $.Widget.prototype = {
|
|
467
655
|
this.hoverable = this.hoverable.add( element );
|
468
656
|
this._on( element, {
|
469
657
|
mouseenter: function( event ) {
|
470
|
-
$( event.currentTarget )
|
658
|
+
this._addClass( $( event.currentTarget ), null, "ui-state-hover" );
|
471
659
|
},
|
472
660
|
mouseleave: function( event ) {
|
473
|
-
$( event.currentTarget )
|
661
|
+
this._removeClass( $( event.currentTarget ), null, "ui-state-hover" );
|
474
662
|
}
|
475
|
-
});
|
663
|
+
} );
|
476
664
|
},
|
477
665
|
|
478
666
|
_focusable: function( element ) {
|
479
667
|
this.focusable = this.focusable.add( element );
|
480
668
|
this._on( element, {
|
481
669
|
focusin: function( event ) {
|
482
|
-
$( event.currentTarget )
|
670
|
+
this._addClass( $( event.currentTarget ), null, "ui-state-focus" );
|
483
671
|
},
|
484
672
|
focusout: function( event ) {
|
485
|
-
$( event.currentTarget )
|
673
|
+
this._removeClass( $( event.currentTarget ), null, "ui-state-focus" );
|
486
674
|
}
|
487
|
-
});
|
675
|
+
} );
|
488
676
|
},
|
489
677
|
|
490
678
|
_trigger: function( type, event, data ) {
|
491
|
-
var prop, orig
|
492
|
-
|
679
|
+
var prop, orig;
|
680
|
+
var callback = this.options[ type ];
|
493
681
|
|
494
682
|
data = data || {};
|
495
683
|
event = $.Event( event );
|
496
684
|
event.type = ( type === this.widgetEventPrefix ?
|
497
685
|
type :
|
498
686
|
this.widgetEventPrefix + type ).toLowerCase();
|
499
|
-
|
687
|
+
|
688
|
+
// The original event may come from any element
|
500
689
|
// so we need to reset the target on the new event
|
501
690
|
event.target = this.element[ 0 ];
|
502
691
|
|
503
|
-
//
|
692
|
+
// Copy original event properties over to the new event
|
504
693
|
orig = event.originalEvent;
|
505
694
|
if ( orig ) {
|
506
695
|
for ( prop in orig ) {
|
@@ -511,8 +700,8 @@ $.Widget.prototype = {
|
|
511
700
|
}
|
512
701
|
|
513
702
|
this.element.trigger( event, data );
|
514
|
-
return !(
|
515
|
-
callback.apply( this.element[0], [ event ].concat( data ) ) === false ||
|
703
|
+
return !( typeof callback === "function" &&
|
704
|
+
callback.apply( this.element[ 0 ], [ event ].concat( data ) ) === false ||
|
516
705
|
event.isDefaultPrevented() );
|
517
706
|
}
|
518
707
|
};
|
@@ -522,37 +711,44 @@ $.each( { show: "fadeIn", hide: "fadeOut" }, function( method, defaultEffect ) {
|
|
522
711
|
if ( typeof options === "string" ) {
|
523
712
|
options = { effect: options };
|
524
713
|
}
|
525
|
-
|
526
|
-
|
527
|
-
|
528
|
-
|
529
|
-
|
530
|
-
|
714
|
+
|
715
|
+
var hasOptions;
|
716
|
+
var effectName = !options ?
|
717
|
+
method :
|
718
|
+
options === true || typeof options === "number" ?
|
719
|
+
defaultEffect :
|
720
|
+
options.effect || defaultEffect;
|
721
|
+
|
531
722
|
options = options || {};
|
532
723
|
if ( typeof options === "number" ) {
|
533
724
|
options = { duration: options };
|
725
|
+
} else if ( options === true ) {
|
726
|
+
options = {};
|
534
727
|
}
|
728
|
+
|
535
729
|
hasOptions = !$.isEmptyObject( options );
|
536
730
|
options.complete = callback;
|
731
|
+
|
537
732
|
if ( options.delay ) {
|
538
733
|
element.delay( options.delay );
|
539
734
|
}
|
735
|
+
|
540
736
|
if ( hasOptions && $.effects && $.effects.effect[ effectName ] ) {
|
541
737
|
element[ method ]( options );
|
542
738
|
} else if ( effectName !== method && element[ effectName ] ) {
|
543
739
|
element[ effectName ]( options.duration, options.easing, callback );
|
544
740
|
} else {
|
545
|
-
element.queue(function( next ) {
|
741
|
+
element.queue( function( next ) {
|
546
742
|
$( this )[ method ]();
|
547
743
|
if ( callback ) {
|
548
744
|
callback.call( element[ 0 ] );
|
549
745
|
}
|
550
746
|
next();
|
551
|
-
});
|
747
|
+
} );
|
552
748
|
}
|
553
749
|
};
|
554
|
-
});
|
750
|
+
} );
|
555
751
|
|
556
752
|
return $.widget;
|
557
753
|
|
558
|
-
})
|
754
|
+
} );
|