jquery-ui-rails 4.2.1 → 8.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/.travis.yml +1 -1
- data/History.md +45 -2
- data/README.md +100 -83
- data/Rakefile +82 -49
- data/VERSIONS.md +10 -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/data.js +39 -0
- data/app/assets/javascripts/jquery-ui/disable-selection.js +51 -0
- data/app/assets/javascripts/jquery-ui/effect.all.js +15 -0
- data/app/assets/javascripts/jquery-ui/effect.js +954 -0
- 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 +79 -0
- data/app/assets/javascripts/jquery-ui/form-reset-mixin.js +81 -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 +41 -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/jquery-patch.js +58 -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 +70 -0
- data/app/assets/javascripts/jquery-ui/plugin.js +49 -0
- data/app/assets/javascripts/{jquery.ui.position.js → jquery-ui/position.js} +123 -111
- 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 +691 -0
- data/app/assets/javascripts/jquery-ui/version.js +20 -0
- data/app/assets/javascripts/jquery-ui/widget.js +761 -0
- data/app/assets/javascripts/{jquery.ui.accordion.js → jquery-ui/widgets/accordion.js} +263 -209
- data/app/assets/javascripts/{jquery.ui.autocomplete.js → jquery-ui/widgets/autocomplete.js} +177 -142
- data/app/assets/javascripts/jquery-ui/widgets/button.js +454 -0
- data/app/assets/javascripts/jquery-ui/widgets/checkboxradio.js +294 -0
- data/app/assets/javascripts/jquery-ui/widgets/controlgroup.js +304 -0
- data/app/assets/javascripts/jquery-ui/widgets/datepicker.js +2240 -0
- data/app/assets/javascripts/jquery-ui/widgets/dialog.js +957 -0
- data/app/assets/javascripts/jquery-ui/widgets/draggable.js +1264 -0
- data/app/assets/javascripts/jquery-ui/widgets/droppable.js +508 -0
- data/app/assets/javascripts/{jquery.ui.menu.js → jquery-ui/widgets/menu.js} +276 -189
- data/app/assets/javascripts/jquery-ui/widgets/mouse.js +226 -0
- data/app/assets/javascripts/jquery-ui/widgets/progressbar.js +184 -0
- data/app/assets/javascripts/jquery-ui/widgets/resizable.js +1281 -0
- data/app/assets/javascripts/jquery-ui/widgets/selectable.js +321 -0
- data/app/assets/javascripts/jquery-ui/widgets/selectmenu.js +675 -0
- data/app/assets/javascripts/{jquery.ui.slider.js → jquery-ui/widgets/slider.js} +256 -176
- data/app/assets/javascripts/jquery-ui/widgets/sortable.js +1614 -0
- data/app/assets/javascripts/{jquery.ui.spinner.js → jquery-ui/widgets/spinner.js} +200 -137
- data/app/assets/javascripts/{jquery.ui.tabs.js → jquery-ui/widgets/tabs.js} +322 -277
- data/app/assets/javascripts/jquery-ui/widgets/tooltip.js +528 -0
- data/app/assets/javascripts/jquery-ui.js +52 -0
- data/app/assets/stylesheets/jquery-ui/accordion.css +26 -0
- data/app/assets/stylesheets/jquery-ui/all.css +14 -0
- data/app/assets/stylesheets/jquery-ui/autocomplete.css +19 -0
- data/app/assets/stylesheets/jquery-ui/base.css +32 -0
- data/app/assets/stylesheets/jquery-ui/button.css +80 -0
- data/app/assets/stylesheets/jquery-ui/checkboxradio.css +37 -0
- data/app/assets/stylesheets/jquery-ui/controlgroup.css +65 -0
- data/app/assets/stylesheets/{jquery.ui.core.css.erb → jquery-ui/core.css} +15 -12
- data/app/assets/stylesheets/{jquery.ui.datepicker.css.erb → jquery-ui/datepicker.css} +17 -8
- data/app/assets/stylesheets/{jquery.ui.dialog.css.erb → jquery-ui/dialog.css} +43 -15
- data/app/assets/stylesheets/jquery-ui/draggable.css +14 -0
- data/app/assets/stylesheets/jquery-ui/menu.css +65 -0
- data/app/assets/stylesheets/jquery-ui/progressbar.css +30 -0
- data/app/assets/stylesheets/{jquery.ui.resizable.css.erb → jquery-ui/resizable.css} +6 -6
- data/app/assets/stylesheets/jquery-ui/selectable.css +19 -0
- data/app/assets/stylesheets/jquery-ui/selectmenu.css +53 -0
- data/app/assets/stylesheets/{jquery.ui.slider.css.erb → jquery-ui/slider.css} +8 -14
- data/app/assets/stylesheets/jquery-ui/sortable.css +14 -0
- data/app/assets/stylesheets/{jquery.ui.spinner.css.erb → jquery-ui/spinner.css} +12 -27
- data/app/assets/stylesheets/{jquery.ui.tabs.css.erb → jquery-ui/tabs.css} +6 -7
- data/app/assets/stylesheets/{jquery.ui.theme.css.erb → jquery-ui/theme.css.erb} +121 -102
- data/app/assets/stylesheets/jquery-ui/tooltip.css +22 -0
- data/app/assets/stylesheets/jquery-ui.css +1 -0
- data/lib/jquery/ui/rails/version.rb +2 -2
- metadata +178 -169
- data/app/assets/images/jquery-ui/animated-overlay.gif +0 -0
- 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.all.js +0 -34
- data/app/assets/javascripts/jquery.ui.button.js +0 -398
- data/app/assets/javascripts/jquery.ui.core.js +0 -320
- data/app/assets/javascripts/jquery.ui.datepicker-af.js +0 -23
- data/app/assets/javascripts/jquery.ui.datepicker-ar-DZ.js +0 -23
- data/app/assets/javascripts/jquery.ui.datepicker-ar.js +0 -23
- data/app/assets/javascripts/jquery.ui.datepicker-az.js +0 -23
- data/app/assets/javascripts/jquery.ui.datepicker-be.js +0 -23
- data/app/assets/javascripts/jquery.ui.datepicker-bg.js +0 -24
- data/app/assets/javascripts/jquery.ui.datepicker-bs.js +0 -23
- data/app/assets/javascripts/jquery.ui.datepicker-ca.js +0 -23
- data/app/assets/javascripts/jquery.ui.datepicker-cs.js +0 -23
- data/app/assets/javascripts/jquery.ui.datepicker-cy-GB.js +0 -23
- data/app/assets/javascripts/jquery.ui.datepicker-da.js +0 -23
- data/app/assets/javascripts/jquery.ui.datepicker-de.js +0 -23
- data/app/assets/javascripts/jquery.ui.datepicker-el.js +0 -23
- data/app/assets/javascripts/jquery.ui.datepicker-en-AU.js +0 -23
- data/app/assets/javascripts/jquery.ui.datepicker-en-GB.js +0 -23
- data/app/assets/javascripts/jquery.ui.datepicker-en-NZ.js +0 -23
- data/app/assets/javascripts/jquery.ui.datepicker-eo.js +0 -23
- data/app/assets/javascripts/jquery.ui.datepicker-es.js +0 -23
- data/app/assets/javascripts/jquery.ui.datepicker-et.js +0 -23
- data/app/assets/javascripts/jquery.ui.datepicker-eu.js +0 -23
- data/app/assets/javascripts/jquery.ui.datepicker-fa.js +0 -59
- data/app/assets/javascripts/jquery.ui.datepicker-fi.js +0 -23
- data/app/assets/javascripts/jquery.ui.datepicker-fo.js +0 -23
- data/app/assets/javascripts/jquery.ui.datepicker-fr-CA.js +0 -23
- data/app/assets/javascripts/jquery.ui.datepicker-fr-CH.js +0 -23
- data/app/assets/javascripts/jquery.ui.datepicker-fr.js +0 -25
- data/app/assets/javascripts/jquery.ui.datepicker-gl.js +0 -23
- data/app/assets/javascripts/jquery.ui.datepicker-he.js +0 -23
- data/app/assets/javascripts/jquery.ui.datepicker-hi.js +0 -23
- data/app/assets/javascripts/jquery.ui.datepicker-hr.js +0 -23
- data/app/assets/javascripts/jquery.ui.datepicker-hu.js +0 -23
- data/app/assets/javascripts/jquery.ui.datepicker-hy.js +0 -23
- data/app/assets/javascripts/jquery.ui.datepicker-id.js +0 -23
- data/app/assets/javascripts/jquery.ui.datepicker-is.js +0 -23
- data/app/assets/javascripts/jquery.ui.datepicker-it.js +0 -23
- data/app/assets/javascripts/jquery.ui.datepicker-ja.js +0 -23
- data/app/assets/javascripts/jquery.ui.datepicker-ka.js +0 -21
- data/app/assets/javascripts/jquery.ui.datepicker-kk.js +0 -23
- data/app/assets/javascripts/jquery.ui.datepicker-km.js +0 -23
- data/app/assets/javascripts/jquery.ui.datepicker-ko.js +0 -23
- data/app/assets/javascripts/jquery.ui.datepicker-ky.js +0 -24
- data/app/assets/javascripts/jquery.ui.datepicker-lb.js +0 -23
- data/app/assets/javascripts/jquery.ui.datepicker-lt.js +0 -23
- data/app/assets/javascripts/jquery.ui.datepicker-lv.js +0 -23
- data/app/assets/javascripts/jquery.ui.datepicker-mk.js +0 -23
- data/app/assets/javascripts/jquery.ui.datepicker-ml.js +0 -23
- data/app/assets/javascripts/jquery.ui.datepicker-ms.js +0 -23
- data/app/assets/javascripts/jquery.ui.datepicker-nb.js +0 -22
- data/app/assets/javascripts/jquery.ui.datepicker-nl-BE.js +0 -23
- data/app/assets/javascripts/jquery.ui.datepicker-nl.js +0 -23
- data/app/assets/javascripts/jquery.ui.datepicker-nn.js +0 -22
- data/app/assets/javascripts/jquery.ui.datepicker-no.js +0 -23
- data/app/assets/javascripts/jquery.ui.datepicker-pl.js +0 -23
- data/app/assets/javascripts/jquery.ui.datepicker-pt-BR.js +0 -23
- data/app/assets/javascripts/jquery.ui.datepicker-pt.js +0 -22
- data/app/assets/javascripts/jquery.ui.datepicker-rm.js +0 -21
- data/app/assets/javascripts/jquery.ui.datepicker-ro.js +0 -26
- data/app/assets/javascripts/jquery.ui.datepicker-ru.js +0 -23
- data/app/assets/javascripts/jquery.ui.datepicker-sk.js +0 -23
- data/app/assets/javascripts/jquery.ui.datepicker-sl.js +0 -24
- data/app/assets/javascripts/jquery.ui.datepicker-sq.js +0 -23
- data/app/assets/javascripts/jquery.ui.datepicker-sr-SR.js +0 -23
- data/app/assets/javascripts/jquery.ui.datepicker-sr.js +0 -23
- data/app/assets/javascripts/jquery.ui.datepicker-sv.js +0 -23
- data/app/assets/javascripts/jquery.ui.datepicker-ta.js +0 -23
- data/app/assets/javascripts/jquery.ui.datepicker-th.js +0 -23
- data/app/assets/javascripts/jquery.ui.datepicker-tj.js +0 -23
- data/app/assets/javascripts/jquery.ui.datepicker-tr.js +0 -23
- data/app/assets/javascripts/jquery.ui.datepicker-uk.js +0 -24
- data/app/assets/javascripts/jquery.ui.datepicker-vi.js +0 -23
- data/app/assets/javascripts/jquery.ui.datepicker-zh-CN.js +0 -23
- data/app/assets/javascripts/jquery.ui.datepicker-zh-HK.js +0 -23
- data/app/assets/javascripts/jquery.ui.datepicker-zh-TW.js +0 -23
- data/app/assets/javascripts/jquery.ui.datepicker.js +0 -2040
- data/app/assets/javascripts/jquery.ui.dialog.js +0 -830
- data/app/assets/javascripts/jquery.ui.draggable.js +0 -962
- data/app/assets/javascripts/jquery.ui.droppable.js +0 -394
- data/app/assets/javascripts/jquery.ui.effect-blind.js +0 -84
- data/app/assets/javascripts/jquery.ui.effect-bounce.js +0 -115
- data/app/assets/javascripts/jquery.ui.effect-clip.js +0 -69
- data/app/assets/javascripts/jquery.ui.effect-drop.js +0 -67
- data/app/assets/javascripts/jquery.ui.effect-explode.js +0 -99
- data/app/assets/javascripts/jquery.ui.effect-fade.js +0 -32
- data/app/assets/javascripts/jquery.ui.effect-fold.js +0 -78
- data/app/assets/javascripts/jquery.ui.effect-highlight.js +0 -52
- data/app/assets/javascripts/jquery.ui.effect-pulsate.js +0 -65
- data/app/assets/javascripts/jquery.ui.effect-scale.js +0 -320
- data/app/assets/javascripts/jquery.ui.effect-shake.js +0 -76
- data/app/assets/javascripts/jquery.ui.effect-slide.js +0 -66
- data/app/assets/javascripts/jquery.ui.effect-transfer.js +0 -49
- data/app/assets/javascripts/jquery.ui.effect.all.js +0 -14
- data/app/assets/javascripts/jquery.ui.effect.js +0 -1289
- data/app/assets/javascripts/jquery.ui.mouse.js +0 -172
- data/app/assets/javascripts/jquery.ui.progressbar.js +0 -148
- data/app/assets/javascripts/jquery.ui.resizable.js +0 -982
- data/app/assets/javascripts/jquery.ui.selectable.js +0 -281
- data/app/assets/javascripts/jquery.ui.sortable.js +0 -1293
- data/app/assets/javascripts/jquery.ui.tooltip.js +0 -406
- data/app/assets/javascripts/jquery.ui.widget.js +0 -521
- data/app/assets/stylesheets/jquery.ui.accordion.css.erb +0 -42
- data/app/assets/stylesheets/jquery.ui.all.css.erb +0 -14
- data/app/assets/stylesheets/jquery.ui.autocomplete.css.erb +0 -21
- data/app/assets/stylesheets/jquery.ui.base.css.erb +0 -27
- data/app/assets/stylesheets/jquery.ui.button.css.erb +0 -118
- data/app/assets/stylesheets/jquery.ui.menu.css.erb +0 -83
- data/app/assets/stylesheets/jquery.ui.progressbar.css.erb +0 -37
- data/app/assets/stylesheets/jquery.ui.selectable.css.erb +0 -17
- data/app/assets/stylesheets/jquery.ui.tooltip.css.erb +0 -25
@@ -1,32 +1,58 @@
|
|
1
|
-
//= require jquery
|
2
|
-
//= require jquery
|
3
|
-
//= require jquery
|
1
|
+
//= require jquery-ui/keycode
|
2
|
+
//= require jquery-ui/position
|
3
|
+
//= require jquery-ui/unique-id
|
4
|
+
//= require jquery-ui/version
|
5
|
+
//= require jquery-ui/widget
|
4
6
|
|
5
7
|
/*!
|
6
|
-
* jQuery UI Menu 1.
|
7
|
-
*
|
8
|
+
* jQuery UI Menu 1.14.1
|
9
|
+
* https://jqueryui.com
|
8
10
|
*
|
9
|
-
* Copyright
|
11
|
+
* Copyright OpenJS Foundation and other contributors
|
10
12
|
* Released under the MIT license.
|
11
|
-
*
|
12
|
-
*
|
13
|
-
* http://api.jqueryui.com/menu/
|
14
|
-
*
|
15
|
-
* Depends:
|
16
|
-
* jquery.ui.core.js
|
17
|
-
* jquery.ui.widget.js
|
18
|
-
* jquery.ui.position.js
|
13
|
+
* https://jquery.org/license
|
19
14
|
*/
|
20
|
-
(function( $, undefined ) {
|
21
15
|
|
22
|
-
|
23
|
-
|
16
|
+
//>>label: Menu
|
17
|
+
//>>group: Widgets
|
18
|
+
//>>description: Creates nestable menus.
|
19
|
+
//>>docs: https://api.jqueryui.com/menu/
|
20
|
+
//>>demos: https://jqueryui.com/menu/
|
21
|
+
//>>css.structure: ../../themes/base/core.css
|
22
|
+
//>>css.structure: ../../themes/base/menu.css
|
23
|
+
//>>css.theme: ../../themes/base/theme.css
|
24
|
+
|
25
|
+
( function( factory ) {
|
26
|
+
"use strict";
|
27
|
+
|
28
|
+
if ( typeof define === "function" && define.amd ) {
|
29
|
+
|
30
|
+
// AMD. Register as an anonymous module.
|
31
|
+
define( [
|
32
|
+
"jquery",
|
33
|
+
"../keycode",
|
34
|
+
"../position",
|
35
|
+
"../unique-id",
|
36
|
+
"../version",
|
37
|
+
"../widget"
|
38
|
+
], factory );
|
39
|
+
} else {
|
40
|
+
|
41
|
+
// Browser globals
|
42
|
+
factory( jQuery );
|
43
|
+
}
|
44
|
+
} )( function( $ ) {
|
45
|
+
"use strict";
|
46
|
+
|
47
|
+
return $.widget( "ui.menu", {
|
48
|
+
version: "1.14.1",
|
24
49
|
defaultElement: "<ul>",
|
25
50
|
delay: 300,
|
26
51
|
options: {
|
27
52
|
icons: {
|
28
|
-
submenu: "ui-icon-
|
53
|
+
submenu: "ui-icon-caret-1-e"
|
29
54
|
},
|
55
|
+
items: "> *",
|
30
56
|
menus: "ul",
|
31
57
|
position: {
|
32
58
|
my: "left top",
|
@@ -34,7 +60,7 @@ $.widget( "ui.menu", {
|
|
34
60
|
},
|
35
61
|
role: "menu",
|
36
62
|
|
37
|
-
//
|
63
|
+
// Callbacks
|
38
64
|
blur: null,
|
39
65
|
focus: null,
|
40
66
|
select: null
|
@@ -42,42 +68,31 @@ $.widget( "ui.menu", {
|
|
42
68
|
|
43
69
|
_create: function() {
|
44
70
|
this.activeMenu = this.element;
|
45
|
-
|
71
|
+
|
72
|
+
// Flag used to prevent firing of the click handler
|
46
73
|
// as the event bubbles up through nested menus
|
47
74
|
this.mouseHandled = false;
|
75
|
+
this.lastMousePosition = { x: null, y: null };
|
48
76
|
this.element
|
49
77
|
.uniqueId()
|
50
|
-
.
|
51
|
-
.toggleClass( "ui-menu-icons", !!this.element.find( ".ui-icon" ).length )
|
52
|
-
.attr({
|
78
|
+
.attr( {
|
53
79
|
role: this.options.role,
|
54
80
|
tabIndex: 0
|
55
|
-
})
|
56
|
-
// need to catch all clicks on disabled menu
|
57
|
-
// not possible through _on
|
58
|
-
.bind( "click" + this.eventNamespace, $.proxy(function( event ) {
|
59
|
-
if ( this.options.disabled ) {
|
60
|
-
event.preventDefault();
|
61
|
-
}
|
62
|
-
}, this ));
|
81
|
+
} );
|
63
82
|
|
64
|
-
|
65
|
-
|
66
|
-
.addClass( "ui-state-disabled" )
|
67
|
-
.attr( "aria-disabled", "true" );
|
68
|
-
}
|
83
|
+
this._addClass( "ui-menu", "ui-widget ui-widget-content" );
|
84
|
+
this._on( {
|
69
85
|
|
70
|
-
this._on({
|
71
86
|
// Prevent focus from sticking to links inside menu after clicking
|
72
87
|
// them (focus should always stay on UL during navigation).
|
73
|
-
"mousedown .ui-menu-item
|
74
|
-
event.preventDefault();
|
75
|
-
},
|
76
|
-
"click .ui-state-disabled > a": function( event ) {
|
88
|
+
"mousedown .ui-menu-item": function( event ) {
|
77
89
|
event.preventDefault();
|
90
|
+
|
91
|
+
this._activateItem( event );
|
78
92
|
},
|
79
|
-
"click .ui-menu-item
|
80
|
-
var target = $( event.target )
|
93
|
+
"click .ui-menu-item": function( event ) {
|
94
|
+
var target = $( event.target );
|
95
|
+
var active = $( this.document[ 0 ].activeElement );
|
81
96
|
if ( !this.mouseHandled && target.not( ".ui-state-disabled" ).length ) {
|
82
97
|
this.select( event );
|
83
98
|
|
@@ -89,7 +104,8 @@ $.widget( "ui.menu", {
|
|
89
104
|
// Open submenu on click
|
90
105
|
if ( target.has( ".ui-menu" ).length ) {
|
91
106
|
this.expand( event );
|
92
|
-
} else if ( !this.element.is( ":focus" ) &&
|
107
|
+
} else if ( !this.element.is( ":focus" ) &&
|
108
|
+
active.closest( ".ui-menu" ).length ) {
|
93
109
|
|
94
110
|
// Redirect focus to the menu
|
95
111
|
this.element.trigger( "focus", [ true ] );
|
@@ -102,94 +118,117 @@ $.widget( "ui.menu", {
|
|
102
118
|
}
|
103
119
|
}
|
104
120
|
},
|
105
|
-
"mouseenter .ui-menu-item":
|
106
|
-
|
107
|
-
// Remove ui-state-active class from siblings of the newly focused menu item
|
108
|
-
// to avoid a jump caused by adjacent elements both having a class with a border
|
109
|
-
target.siblings().children( ".ui-state-active" ).removeClass( "ui-state-active" );
|
110
|
-
this.focus( event, target );
|
111
|
-
},
|
121
|
+
"mouseenter .ui-menu-item": "_activateItem",
|
122
|
+
"mousemove .ui-menu-item": "_activateItem",
|
112
123
|
mouseleave: "collapseAll",
|
113
124
|
"mouseleave .ui-menu": "collapseAll",
|
114
125
|
focus: function( event, keepActiveItem ) {
|
126
|
+
|
115
127
|
// If there's already an active item, keep it active
|
116
128
|
// If not, activate the first item
|
117
|
-
var item = this.active || this.
|
129
|
+
var item = this.active || this._menuItems().first();
|
118
130
|
|
119
131
|
if ( !keepActiveItem ) {
|
120
132
|
this.focus( event, item );
|
121
133
|
}
|
122
134
|
},
|
123
135
|
blur: function( event ) {
|
124
|
-
this._delay(function() {
|
125
|
-
|
136
|
+
this._delay( function() {
|
137
|
+
var notContained = !$.contains(
|
138
|
+
this.element[ 0 ],
|
139
|
+
this.document[ 0 ].activeElement
|
140
|
+
);
|
141
|
+
if ( notContained ) {
|
126
142
|
this.collapseAll( event );
|
127
143
|
}
|
128
|
-
});
|
144
|
+
} );
|
129
145
|
},
|
130
146
|
keydown: "_keydown"
|
131
|
-
});
|
147
|
+
} );
|
132
148
|
|
133
149
|
this.refresh();
|
134
150
|
|
135
151
|
// Clicks outside of a menu collapse any open menus
|
136
152
|
this._on( this.document, {
|
137
153
|
click: function( event ) {
|
138
|
-
if (
|
139
|
-
this.collapseAll( event );
|
154
|
+
if ( this._closeOnDocumentClick( event ) ) {
|
155
|
+
this.collapseAll( event, true );
|
140
156
|
}
|
141
157
|
|
142
158
|
// Reset the mouseHandled flag
|
143
159
|
this.mouseHandled = false;
|
144
160
|
}
|
145
|
-
});
|
161
|
+
} );
|
162
|
+
},
|
163
|
+
|
164
|
+
_activateItem: function( event ) {
|
165
|
+
|
166
|
+
// Ignore mouse events while typeahead is active, see #10458.
|
167
|
+
// Prevents focusing the wrong item when typeahead causes a scroll while the mouse
|
168
|
+
// is over an item in the menu
|
169
|
+
if ( this.previousFilter ) {
|
170
|
+
return;
|
171
|
+
}
|
172
|
+
|
173
|
+
// If the mouse didn't actually move, but the page was scrolled, ignore the event (#9356)
|
174
|
+
if ( event.clientX === this.lastMousePosition.x &&
|
175
|
+
event.clientY === this.lastMousePosition.y ) {
|
176
|
+
return;
|
177
|
+
}
|
178
|
+
|
179
|
+
this.lastMousePosition = {
|
180
|
+
x: event.clientX,
|
181
|
+
y: event.clientY
|
182
|
+
};
|
183
|
+
|
184
|
+
var actualTarget = $( event.target ).closest( ".ui-menu-item" ),
|
185
|
+
target = $( event.currentTarget );
|
186
|
+
|
187
|
+
// Ignore bubbled events on parent items, see #11641
|
188
|
+
if ( actualTarget[ 0 ] !== target[ 0 ] ) {
|
189
|
+
return;
|
190
|
+
}
|
191
|
+
|
192
|
+
// If the item is already active, there's nothing to do
|
193
|
+
if ( target.is( ".ui-state-active" ) ) {
|
194
|
+
return;
|
195
|
+
}
|
196
|
+
|
197
|
+
// Remove ui-state-active class from siblings of the newly focused menu item
|
198
|
+
// to avoid a jump caused by adjacent elements both having a class with a border
|
199
|
+
this._removeClass( target.siblings().children( ".ui-state-active" ),
|
200
|
+
null, "ui-state-active" );
|
201
|
+
this.focus( event, target );
|
146
202
|
},
|
147
203
|
|
148
204
|
_destroy: function() {
|
205
|
+
var items = this.element.find( ".ui-menu-item" )
|
206
|
+
.removeAttr( "role aria-disabled" ),
|
207
|
+
submenus = items.children( ".ui-menu-item-wrapper" )
|
208
|
+
.removeUniqueId()
|
209
|
+
.removeAttr( "tabIndex role aria-haspopup" );
|
210
|
+
|
149
211
|
// Destroy (sub)menus
|
150
212
|
this.element
|
151
213
|
.removeAttr( "aria-activedescendant" )
|
152
214
|
.find( ".ui-menu" ).addBack()
|
153
|
-
.
|
154
|
-
|
155
|
-
.removeAttr( "tabIndex" )
|
156
|
-
.removeAttr( "aria-labelledby" )
|
157
|
-
.removeAttr( "aria-expanded" )
|
158
|
-
.removeAttr( "aria-hidden" )
|
159
|
-
.removeAttr( "aria-disabled" )
|
215
|
+
.removeAttr( "role aria-labelledby aria-expanded aria-hidden aria-disabled " +
|
216
|
+
"tabIndex" )
|
160
217
|
.removeUniqueId()
|
161
218
|
.show();
|
162
219
|
|
163
|
-
|
164
|
-
|
165
|
-
.
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
.removeUniqueId()
|
170
|
-
.removeClass( "ui-corner-all ui-state-hover" )
|
171
|
-
.removeAttr( "tabIndex" )
|
172
|
-
.removeAttr( "role" )
|
173
|
-
.removeAttr( "aria-haspopup" )
|
174
|
-
.children().each( function() {
|
175
|
-
var elem = $( this );
|
176
|
-
if ( elem.data( "ui-menu-submenu-carat" ) ) {
|
177
|
-
elem.remove();
|
178
|
-
}
|
179
|
-
});
|
180
|
-
|
181
|
-
// Destroy menu dividers
|
182
|
-
this.element.find( ".ui-menu-divider" ).removeClass( "ui-menu-divider ui-widget-content" );
|
220
|
+
submenus.children().each( function() {
|
221
|
+
var elem = $( this );
|
222
|
+
if ( elem.data( "ui-menu-submenu-caret" ) ) {
|
223
|
+
elem.remove();
|
224
|
+
}
|
225
|
+
} );
|
183
226
|
},
|
184
227
|
|
185
228
|
_keydown: function( event ) {
|
186
|
-
var match, prev, character, skip,
|
229
|
+
var match, prev, character, skip,
|
187
230
|
preventDefault = true;
|
188
231
|
|
189
|
-
function escape( value ) {
|
190
|
-
return value.replace( /[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&" );
|
191
|
-
}
|
192
|
-
|
193
232
|
switch ( event.keyCode ) {
|
194
233
|
case $.ui.keyCode.PAGE_UP:
|
195
234
|
this.previousPage( event );
|
@@ -227,9 +266,12 @@ $.widget( "ui.menu", {
|
|
227
266
|
default:
|
228
267
|
preventDefault = false;
|
229
268
|
prev = this.previousFilter || "";
|
230
|
-
character = String.fromCharCode( event.keyCode );
|
231
269
|
skip = false;
|
232
270
|
|
271
|
+
// Support number pad values
|
272
|
+
character = event.keyCode >= 96 && event.keyCode <= 105 ?
|
273
|
+
( event.keyCode - 96 ).toString() : String.fromCharCode( event.keyCode );
|
274
|
+
|
233
275
|
clearTimeout( this.filterTimer );
|
234
276
|
|
235
277
|
if ( character === prev ) {
|
@@ -238,10 +280,7 @@ $.widget( "ui.menu", {
|
|
238
280
|
character = prev + character;
|
239
281
|
}
|
240
282
|
|
241
|
-
|
242
|
-
match = this.activeMenu.children( ".ui-menu-item" ).filter(function() {
|
243
|
-
return regex.test( $( this ).children( "a" ).text() );
|
244
|
-
});
|
283
|
+
match = this._filterMenuItems( character );
|
245
284
|
match = skip && match.index( this.active.next() ) !== -1 ?
|
246
285
|
this.active.nextAll( ".ui-menu-item" ) :
|
247
286
|
match;
|
@@ -250,22 +289,15 @@ $.widget( "ui.menu", {
|
|
250
289
|
// to move down the menu to the first item that starts with that character
|
251
290
|
if ( !match.length ) {
|
252
291
|
character = String.fromCharCode( event.keyCode );
|
253
|
-
|
254
|
-
match = this.activeMenu.children( ".ui-menu-item" ).filter(function() {
|
255
|
-
return regex.test( $( this ).children( "a" ).text() );
|
256
|
-
});
|
292
|
+
match = this._filterMenuItems( character );
|
257
293
|
}
|
258
294
|
|
259
295
|
if ( match.length ) {
|
260
296
|
this.focus( event, match );
|
261
|
-
|
262
|
-
|
263
|
-
this.filterTimer = this._delay(function() {
|
264
|
-
delete this.previousFilter;
|
265
|
-
}, 1000 );
|
266
|
-
} else {
|
297
|
+
this.previousFilter = character;
|
298
|
+
this.filterTimer = this._delay( function() {
|
267
299
|
delete this.previousFilter;
|
268
|
-
}
|
300
|
+
}, 1000 );
|
269
301
|
} else {
|
270
302
|
delete this.previousFilter;
|
271
303
|
}
|
@@ -277,8 +309,8 @@ $.widget( "ui.menu", {
|
|
277
309
|
},
|
278
310
|
|
279
311
|
_activate: function( event ) {
|
280
|
-
if ( !this.active.is( ".ui-state-disabled" ) ) {
|
281
|
-
if ( this.active.children( "
|
312
|
+
if ( this.active && !this.active.is( ".ui-state-disabled" ) ) {
|
313
|
+
if ( this.active.children( "[aria-haspopup='true']" ).length ) {
|
282
314
|
this.expand( event );
|
283
315
|
} else {
|
284
316
|
this.select( event );
|
@@ -287,59 +319,60 @@ $.widget( "ui.menu", {
|
|
287
319
|
},
|
288
320
|
|
289
321
|
refresh: function() {
|
290
|
-
var menus,
|
322
|
+
var menus, items, newSubmenus, newItems, newWrappers,
|
323
|
+
that = this,
|
291
324
|
icon = this.options.icons.submenu,
|
292
325
|
submenus = this.element.find( this.options.menus );
|
293
326
|
|
294
|
-
this.
|
327
|
+
this._toggleClass( "ui-menu-icons", null, !!this.element.find( ".ui-icon" ).length );
|
295
328
|
|
296
329
|
// Initialize nested menus
|
297
|
-
submenus.filter( ":not(.ui-menu)" )
|
298
|
-
.addClass( "ui-menu ui-widget ui-widget-content ui-corner-all" )
|
330
|
+
newSubmenus = submenus.filter( ":not(.ui-menu)" )
|
299
331
|
.hide()
|
300
|
-
.attr({
|
332
|
+
.attr( {
|
301
333
|
role: this.options.role,
|
302
334
|
"aria-hidden": "true",
|
303
335
|
"aria-expanded": "false"
|
304
|
-
})
|
305
|
-
.each(function() {
|
336
|
+
} )
|
337
|
+
.each( function() {
|
306
338
|
var menu = $( this ),
|
307
|
-
item = menu.prev(
|
308
|
-
|
309
|
-
.addClass( "ui-menu-icon ui-icon " + icon )
|
310
|
-
.data( "ui-menu-submenu-carat", true );
|
339
|
+
item = menu.prev(),
|
340
|
+
submenuCaret = $( "<span>" ).data( "ui-menu-submenu-caret", true );
|
311
341
|
|
342
|
+
that._addClass( submenuCaret, "ui-menu-icon", "ui-icon " + icon );
|
312
343
|
item
|
313
344
|
.attr( "aria-haspopup", "true" )
|
314
|
-
.prepend(
|
345
|
+
.prepend( submenuCaret );
|
315
346
|
menu.attr( "aria-labelledby", item.attr( "id" ) );
|
316
|
-
});
|
347
|
+
} );
|
348
|
+
|
349
|
+
this._addClass( newSubmenus, "ui-menu", "ui-widget ui-widget-content ui-front" );
|
317
350
|
|
318
351
|
menus = submenus.add( this.element );
|
352
|
+
items = menus.find( this.options.items );
|
353
|
+
|
354
|
+
// Initialize menu-items containing spaces and/or dashes only as dividers
|
355
|
+
items.not( ".ui-menu-item" ).each( function() {
|
356
|
+
var item = $( this );
|
357
|
+
if ( that._isDivider( item ) ) {
|
358
|
+
that._addClass( item, "ui-menu-divider", "ui-widget-content" );
|
359
|
+
}
|
360
|
+
} );
|
319
361
|
|
320
362
|
// Don't refresh list items that are already adapted
|
321
|
-
|
322
|
-
|
323
|
-
.
|
324
|
-
.children( "a" )
|
363
|
+
newItems = items.not( ".ui-menu-item, .ui-menu-divider" );
|
364
|
+
newWrappers = newItems.children()
|
365
|
+
.not( ".ui-menu" )
|
325
366
|
.uniqueId()
|
326
|
-
.
|
327
|
-
.attr({
|
367
|
+
.attr( {
|
328
368
|
tabIndex: -1,
|
329
369
|
role: this._itemRole()
|
330
|
-
});
|
331
|
-
|
332
|
-
|
333
|
-
menus.children( ":not(.ui-menu-item)" ).each(function() {
|
334
|
-
var item = $( this );
|
335
|
-
// hyphen, em dash, en dash
|
336
|
-
if ( !/[^\-\u2014\u2013\s]/.test( item.text() ) ) {
|
337
|
-
item.addClass( "ui-widget-content ui-menu-divider" );
|
338
|
-
}
|
339
|
-
});
|
370
|
+
} );
|
371
|
+
this._addClass( newItems, "ui-menu-item" )
|
372
|
+
._addClass( newWrappers, "ui-menu-item-wrapper" );
|
340
373
|
|
341
374
|
// Add aria-disabled attribute to any disabled menu item
|
342
|
-
|
375
|
+
items.filter( ".ui-state-disabled" ).attr( "aria-disabled", "true" );
|
343
376
|
|
344
377
|
// If the active item has been removed, blur the menu
|
345
378
|
if ( this.active && !$.contains( this.element[ 0 ], this.active[ 0 ] ) ) {
|
@@ -356,21 +389,31 @@ $.widget( "ui.menu", {
|
|
356
389
|
|
357
390
|
_setOption: function( key, value ) {
|
358
391
|
if ( key === "icons" ) {
|
359
|
-
this.element.find( ".ui-menu-icon" )
|
360
|
-
|
361
|
-
.
|
392
|
+
var icons = this.element.find( ".ui-menu-icon" );
|
393
|
+
this._removeClass( icons, null, this.options.icons.submenu )
|
394
|
+
._addClass( icons, null, value.submenu );
|
362
395
|
}
|
363
396
|
this._super( key, value );
|
364
397
|
},
|
365
398
|
|
399
|
+
_setOptionDisabled: function( value ) {
|
400
|
+
this._super( value );
|
401
|
+
|
402
|
+
this.element.attr( "aria-disabled", String( value ) );
|
403
|
+
this._toggleClass( null, "ui-state-disabled", !!value );
|
404
|
+
},
|
405
|
+
|
366
406
|
focus: function( event, item ) {
|
367
|
-
var nested, focused;
|
407
|
+
var nested, focused, activeParent;
|
368
408
|
this.blur( event, event && event.type === "focus" );
|
369
409
|
|
370
410
|
this._scrollIntoView( item );
|
371
411
|
|
372
412
|
this.active = item.first();
|
373
|
-
|
413
|
+
|
414
|
+
focused = this.active.children( ".ui-menu-item-wrapper" );
|
415
|
+
this._addClass( focused, null, "ui-state-active" );
|
416
|
+
|
374
417
|
// Only update aria-activedescendant if there's a role
|
375
418
|
// otherwise we assume focus is managed elsewhere
|
376
419
|
if ( this.options.role ) {
|
@@ -378,23 +421,23 @@ $.widget( "ui.menu", {
|
|
378
421
|
}
|
379
422
|
|
380
423
|
// Highlight active parent menu item, if any
|
381
|
-
this.active
|
424
|
+
activeParent = this.active
|
382
425
|
.parent()
|
383
|
-
|
384
|
-
|
385
|
-
|
426
|
+
.closest( ".ui-menu-item" )
|
427
|
+
.children( ".ui-menu-item-wrapper" );
|
428
|
+
this._addClass( activeParent, null, "ui-state-active" );
|
386
429
|
|
387
430
|
if ( event && event.type === "keydown" ) {
|
388
431
|
this._close();
|
389
432
|
} else {
|
390
|
-
this.timer = this._delay(function() {
|
433
|
+
this.timer = this._delay( function() {
|
391
434
|
this._close();
|
392
435
|
}, this.delay );
|
393
436
|
}
|
394
437
|
|
395
438
|
nested = item.children( ".ui-menu" );
|
396
439
|
if ( nested.length && event && ( /^mouse/.test( event.type ) ) ) {
|
397
|
-
this._startOpening(nested);
|
440
|
+
this._startOpening( nested );
|
398
441
|
}
|
399
442
|
this.activeMenu = item.parent();
|
400
443
|
|
@@ -404,12 +447,12 @@ $.widget( "ui.menu", {
|
|
404
447
|
_scrollIntoView: function( item ) {
|
405
448
|
var borderTop, paddingTop, offset, scroll, elementHeight, itemHeight;
|
406
449
|
if ( this._hasScroll() ) {
|
407
|
-
borderTop = parseFloat( $.css( this.activeMenu[0], "borderTopWidth" ) ) || 0;
|
408
|
-
paddingTop = parseFloat( $.css( this.activeMenu[0], "paddingTop" ) ) || 0;
|
450
|
+
borderTop = parseFloat( $.css( this.activeMenu[ 0 ], "borderTopWidth" ) ) || 0;
|
451
|
+
paddingTop = parseFloat( $.css( this.activeMenu[ 0 ], "paddingTop" ) ) || 0;
|
409
452
|
offset = item.offset().top - this.activeMenu.offset().top - borderTop - paddingTop;
|
410
453
|
scroll = this.activeMenu.scrollTop();
|
411
454
|
elementHeight = this.activeMenu.height();
|
412
|
-
itemHeight = item.
|
455
|
+
itemHeight = item.outerHeight();
|
413
456
|
|
414
457
|
if ( offset < 0 ) {
|
415
458
|
this.activeMenu.scrollTop( scroll + offset );
|
@@ -428,29 +471,30 @@ $.widget( "ui.menu", {
|
|
428
471
|
return;
|
429
472
|
}
|
430
473
|
|
431
|
-
this.active.children( "
|
432
|
-
|
474
|
+
this._removeClass( this.active.children( ".ui-menu-item-wrapper" ),
|
475
|
+
null, "ui-state-active" );
|
433
476
|
|
434
477
|
this._trigger( "blur", event, { item: this.active } );
|
478
|
+
this.active = null;
|
435
479
|
},
|
436
480
|
|
437
481
|
_startOpening: function( submenu ) {
|
438
482
|
clearTimeout( this.timer );
|
439
483
|
|
440
484
|
// Don't open if already open fixes a Firefox bug that caused a .5 pixel
|
441
|
-
// shift in the submenu position when mousing over the
|
485
|
+
// shift in the submenu position when mousing over the caret icon
|
442
486
|
if ( submenu.attr( "aria-hidden" ) !== "true" ) {
|
443
487
|
return;
|
444
488
|
}
|
445
489
|
|
446
|
-
this.timer = this._delay(function() {
|
490
|
+
this.timer = this._delay( function() {
|
447
491
|
this._close();
|
448
492
|
this._open( submenu );
|
449
493
|
}, this.delay );
|
450
494
|
},
|
451
495
|
|
452
496
|
_open: function( submenu ) {
|
453
|
-
var position = $.extend({
|
497
|
+
var position = $.extend( {
|
454
498
|
of: this.active
|
455
499
|
}, this.options.position );
|
456
500
|
|
@@ -468,12 +512,14 @@ $.widget( "ui.menu", {
|
|
468
512
|
|
469
513
|
collapseAll: function( event, all ) {
|
470
514
|
clearTimeout( this.timer );
|
471
|
-
this.timer = this._delay(function() {
|
515
|
+
this.timer = this._delay( function() {
|
516
|
+
|
472
517
|
// If we were passed an event, look for the submenu that contains the event
|
473
518
|
var currentMenu = all ? this.element :
|
474
519
|
$( event && event.target ).closest( this.element.find( ".ui-menu" ) );
|
475
520
|
|
476
|
-
// If we found no valid submenu ancestor, use the main menu to close all
|
521
|
+
// If we found no valid submenu ancestor, use the main menu to close all
|
522
|
+
// sub menus anyway
|
477
523
|
if ( !currentMenu.length ) {
|
478
524
|
currentMenu = this.element;
|
479
525
|
}
|
@@ -481,8 +527,12 @@ $.widget( "ui.menu", {
|
|
481
527
|
this._close( currentMenu );
|
482
528
|
|
483
529
|
this.blur( event );
|
530
|
+
|
531
|
+
// Work around active item staying active after menu is blurred
|
532
|
+
this._removeClass( currentMenu.find( ".ui-state-active" ), null, "ui-state-active" );
|
533
|
+
|
484
534
|
this.activeMenu = currentMenu;
|
485
|
-
}, this.delay );
|
535
|
+
}, all ? 0 : this.delay );
|
486
536
|
},
|
487
537
|
|
488
538
|
// With no arguments, closes the currently active menu - if nothing is active
|
@@ -492,14 +542,20 @@ $.widget( "ui.menu", {
|
|
492
542
|
startMenu = this.active ? this.active.parent() : this.element;
|
493
543
|
}
|
494
544
|
|
495
|
-
startMenu
|
496
|
-
.
|
497
|
-
|
498
|
-
|
499
|
-
|
500
|
-
|
501
|
-
|
502
|
-
|
545
|
+
startMenu.find( ".ui-menu" )
|
546
|
+
.hide()
|
547
|
+
.attr( "aria-hidden", "true" )
|
548
|
+
.attr( "aria-expanded", "false" );
|
549
|
+
},
|
550
|
+
|
551
|
+
_closeOnDocumentClick: function( event ) {
|
552
|
+
return !$( event.target ).closest( ".ui-menu" ).length;
|
553
|
+
},
|
554
|
+
|
555
|
+
_isDivider: function( item ) {
|
556
|
+
|
557
|
+
// Match hyphen, em dash, en dash
|
558
|
+
return !/[^\-\u2014\u2013\s]/.test( item.text() );
|
503
559
|
},
|
504
560
|
|
505
561
|
collapse: function( event ) {
|
@@ -512,19 +568,15 @@ $.widget( "ui.menu", {
|
|
512
568
|
},
|
513
569
|
|
514
570
|
expand: function( event ) {
|
515
|
-
var newItem = this.active &&
|
516
|
-
this.active
|
517
|
-
.children( ".ui-menu " )
|
518
|
-
.children( ".ui-menu-item" )
|
519
|
-
.first();
|
571
|
+
var newItem = this.active && this._menuItems( this.active.children( ".ui-menu" ) ).first();
|
520
572
|
|
521
573
|
if ( newItem && newItem.length ) {
|
522
574
|
this._open( newItem.parent() );
|
523
575
|
|
524
576
|
// Delay so Firefox will not hide activedescendant change in expanding submenu from AT
|
525
|
-
this._delay(function() {
|
577
|
+
this._delay( function() {
|
526
578
|
this.focus( event, newItem );
|
527
|
-
});
|
579
|
+
} );
|
528
580
|
}
|
529
581
|
},
|
530
582
|
|
@@ -544,21 +596,27 @@ $.widget( "ui.menu", {
|
|
544
596
|
return this.active && !this.active.nextAll( ".ui-menu-item" ).length;
|
545
597
|
},
|
546
598
|
|
599
|
+
_menuItems: function( menu ) {
|
600
|
+
return ( menu || this.element )
|
601
|
+
.find( this.options.items )
|
602
|
+
.filter( ".ui-menu-item" );
|
603
|
+
},
|
604
|
+
|
547
605
|
_move: function( direction, filter, event ) {
|
548
606
|
var next;
|
549
607
|
if ( this.active ) {
|
550
608
|
if ( direction === "first" || direction === "last" ) {
|
551
609
|
next = this.active
|
552
610
|
[ direction === "first" ? "prevAll" : "nextAll" ]( ".ui-menu-item" )
|
553
|
-
.
|
611
|
+
.last();
|
554
612
|
} else {
|
555
613
|
next = this.active
|
556
614
|
[ direction + "All" ]( ".ui-menu-item" )
|
557
|
-
.
|
615
|
+
.first();
|
558
616
|
}
|
559
617
|
}
|
560
618
|
if ( !next || !next.length || !this.active ) {
|
561
|
-
next = this.
|
619
|
+
next = this._menuItems( this.activeMenu )[ filter ]();
|
562
620
|
}
|
563
621
|
|
564
622
|
this.focus( event, next );
|
@@ -576,15 +634,21 @@ $.widget( "ui.menu", {
|
|
576
634
|
}
|
577
635
|
if ( this._hasScroll() ) {
|
578
636
|
base = this.active.offset().top;
|
579
|
-
height = this.element.
|
580
|
-
|
637
|
+
height = this.element.innerHeight();
|
638
|
+
|
639
|
+
// jQuery 3.2 doesn't include scrollbars in innerHeight, add it back.
|
640
|
+
if ( $.fn.jquery.indexOf( "3.2." ) === 0 ) {
|
641
|
+
height += this.element[ 0 ].offsetHeight - this.element.outerHeight();
|
642
|
+
}
|
643
|
+
|
644
|
+
this.active.nextAll( ".ui-menu-item" ).each( function() {
|
581
645
|
item = $( this );
|
582
646
|
return item.offset().top - base - height < 0;
|
583
|
-
});
|
647
|
+
} );
|
584
648
|
|
585
649
|
this.focus( event, item );
|
586
650
|
} else {
|
587
|
-
this.focus( event, this.
|
651
|
+
this.focus( event, this._menuItems( this.activeMenu )
|
588
652
|
[ !this.active ? "first" : "last" ]() );
|
589
653
|
}
|
590
654
|
},
|
@@ -600,15 +664,21 @@ $.widget( "ui.menu", {
|
|
600
664
|
}
|
601
665
|
if ( this._hasScroll() ) {
|
602
666
|
base = this.active.offset().top;
|
603
|
-
height = this.element.
|
604
|
-
|
667
|
+
height = this.element.innerHeight();
|
668
|
+
|
669
|
+
// jQuery 3.2 doesn't include scrollbars in innerHeight, add it back.
|
670
|
+
if ( $.fn.jquery.indexOf( "3.2." ) === 0 ) {
|
671
|
+
height += this.element[ 0 ].offsetHeight - this.element.outerHeight();
|
672
|
+
}
|
673
|
+
|
674
|
+
this.active.prevAll( ".ui-menu-item" ).each( function() {
|
605
675
|
item = $( this );
|
606
676
|
return item.offset().top - base + height > 0;
|
607
|
-
});
|
677
|
+
} );
|
608
678
|
|
609
679
|
this.focus( event, item );
|
610
680
|
} else {
|
611
|
-
this.focus( event, this.
|
681
|
+
this.focus( event, this._menuItems( this.activeMenu ).first() );
|
612
682
|
}
|
613
683
|
},
|
614
684
|
|
@@ -617,6 +687,7 @@ $.widget( "ui.menu", {
|
|
617
687
|
},
|
618
688
|
|
619
689
|
select: function( event ) {
|
690
|
+
|
620
691
|
// TODO: It should never be possible to not have an active item at this
|
621
692
|
// point, but the tests don't trigger mouseenter before click.
|
622
693
|
this.active = this.active || $( event.target ).closest( ".ui-menu-item" );
|
@@ -625,7 +696,23 @@ $.widget( "ui.menu", {
|
|
625
696
|
this.collapseAll( event, true );
|
626
697
|
}
|
627
698
|
this._trigger( "select", event, ui );
|
699
|
+
},
|
700
|
+
|
701
|
+
_filterMenuItems: function( character ) {
|
702
|
+
var escapedCharacter = character.replace( /[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&" ),
|
703
|
+
regex = new RegExp( "^" + escapedCharacter, "i" );
|
704
|
+
|
705
|
+
return this.activeMenu
|
706
|
+
.find( this.options.items )
|
707
|
+
|
708
|
+
// Only match on items, not dividers or other content (#10571)
|
709
|
+
.filter( ".ui-menu-item" )
|
710
|
+
.filter( function() {
|
711
|
+
return regex.test(
|
712
|
+
String.prototype.trim.call(
|
713
|
+
$( this ).children( ".ui-menu-item-wrapper" ).text() ) );
|
714
|
+
} );
|
628
715
|
}
|
629
|
-
});
|
716
|
+
} );
|
630
717
|
|
631
|
-
}
|
718
|
+
} );
|