From d504a40538fe5f7998439ad2f8fc5c4a1f843f1c Mon Sep 17 00:00:00 2001 From: Felix Borzik Date: Sun, 25 Sep 2016 23:10:59 +0300 Subject: [PATCH 1/6] upgrade jquery-ui to 1.12.1 --- History.md | 4 + README.md | 61 +- Rakefile | 75 +- VERSIONS.md | 1 + .../jquery-ui/ui-bg_flat_0_aaaaaa_40x100.png | Bin 180 -> 86 bytes .../jquery-ui/ui-bg_flat_75_ffffff_40x100.png | Bin 178 -> 0 bytes .../jquery-ui/ui-bg_glass_55_fbf9ee_1x400.png | Bin 120 -> 0 bytes .../jquery-ui/ui-bg_glass_65_ffffff_1x400.png | Bin 105 -> 0 bytes .../jquery-ui/ui-bg_glass_75_dadada_1x400.png | Bin 111 -> 0 bytes .../jquery-ui/ui-bg_glass_75_e6e6e6_1x400.png | Bin 110 -> 0 bytes .../jquery-ui/ui-bg_glass_95_fef1ec_1x400.png | Bin 119 -> 0 bytes .../ui-bg_highlight-soft_75_cccccc_1x100.png | Bin 101 -> 0 bytes .../jquery-ui/ui-icons_222222_256x240.png | Bin 4369 -> 0 bytes .../jquery-ui/ui-icons_2e83ff_256x240.png | Bin 4369 -> 0 bytes .../jquery-ui/ui-icons_444444_256x240.png | Bin 0 -> 3756 bytes .../jquery-ui/ui-icons_454545_256x240.png | Bin 4369 -> 0 bytes .../jquery-ui/ui-icons_555555_256x240.png | Bin 0 -> 3756 bytes .../jquery-ui/ui-icons_777620_256x240.png | Bin 0 -> 3756 bytes .../jquery-ui/ui-icons_777777_256x240.png | Bin 0 -> 3756 bytes .../jquery-ui/ui-icons_888888_256x240.png | Bin 4369 -> 0 bytes .../jquery-ui/ui-icons_cc0000_256x240.png | Bin 0 -> 3756 bytes .../jquery-ui/ui-icons_cd0a0a_256x240.png | Bin 4369 -> 0 bytes .../jquery-ui/ui-icons_ffffff_256x240.png | Bin 0 -> 3756 bytes app/assets/javascripts/jquery-ui.js | 93 +- app/assets/javascripts/jquery-ui/button.js | 414 ---- app/assets/javascripts/jquery-ui/core.js | 341 +-- app/assets/javascripts/jquery-ui/data.js | 41 + .../javascripts/jquery-ui/datepicker-af.js | 37 - .../javascripts/jquery-ui/datepicker-ar-DZ.js | 37 - .../javascripts/jquery-ui/datepicker-ar.js | 38 - .../javascripts/jquery-ui/datepicker-az.js | 37 - .../javascripts/jquery-ui/datepicker-be.js | 37 - .../javascripts/jquery-ui/datepicker-bg.js | 38 - .../javascripts/jquery-ui/datepicker-bs.js | 37 - .../javascripts/jquery-ui/datepicker-ca.js | 37 - .../javascripts/jquery-ui/datepicker-cs.js | 37 - .../javascripts/jquery-ui/datepicker-cy-GB.js | 37 - .../javascripts/jquery-ui/datepicker-da.js | 37 - .../javascripts/jquery-ui/datepicker-de.js | 37 - .../javascripts/jquery-ui/datepicker-el.js | 37 - .../javascripts/jquery-ui/datepicker-en-AU.js | 37 - .../javascripts/jquery-ui/datepicker-en-GB.js | 37 - .../javascripts/jquery-ui/datepicker-en-NZ.js | 37 - .../javascripts/jquery-ui/datepicker-eo.js | 37 - .../javascripts/jquery-ui/datepicker-es.js | 37 - .../javascripts/jquery-ui/datepicker-et.js | 37 - .../javascripts/jquery-ui/datepicker-eu.js | 36 - .../javascripts/jquery-ui/datepicker-fa.js | 73 - .../javascripts/jquery-ui/datepicker-fi.js | 37 - .../javascripts/jquery-ui/datepicker-fo.js | 37 - .../javascripts/jquery-ui/datepicker-fr-CA.js | 37 - .../javascripts/jquery-ui/datepicker-fr-CH.js | 37 - .../javascripts/jquery-ui/datepicker-fr.js | 39 - .../javascripts/jquery-ui/datepicker-gl.js | 37 - .../javascripts/jquery-ui/datepicker-he.js | 37 - .../javascripts/jquery-ui/datepicker-hi.js | 37 - .../javascripts/jquery-ui/datepicker-hr.js | 37 - .../javascripts/jquery-ui/datepicker-hu.js | 36 - .../javascripts/jquery-ui/datepicker-hy.js | 37 - .../javascripts/jquery-ui/datepicker-id.js | 37 - .../javascripts/jquery-ui/datepicker-is.js | 37 - .../javascripts/jquery-ui/datepicker-it-CH.js | 37 - .../javascripts/jquery-ui/datepicker-it.js | 37 - .../javascripts/jquery-ui/datepicker-ja.js | 37 - .../javascripts/jquery-ui/datepicker-ka.js | 35 - .../javascripts/jquery-ui/datepicker-kk.js | 37 - .../javascripts/jquery-ui/datepicker-km.js | 37 - .../javascripts/jquery-ui/datepicker-ko.js | 37 - .../javascripts/jquery-ui/datepicker-ky.js | 38 - .../javascripts/jquery-ui/datepicker-lb.js | 37 - .../javascripts/jquery-ui/datepicker-lt.js | 37 - .../javascripts/jquery-ui/datepicker-lv.js | 37 - .../javascripts/jquery-ui/datepicker-mk.js | 37 - .../javascripts/jquery-ui/datepicker-ml.js | 37 - .../javascripts/jquery-ui/datepicker-ms.js | 37 - .../javascripts/jquery-ui/datepicker-nb.js | 36 - .../javascripts/jquery-ui/datepicker-nl-BE.js | 37 - .../javascripts/jquery-ui/datepicker-nl.js | 37 - .../javascripts/jquery-ui/datepicker-nn.js | 36 - .../javascripts/jquery-ui/datepicker-no.js | 37 - .../javascripts/jquery-ui/datepicker-pl.js | 37 - .../javascripts/jquery-ui/datepicker-pt-BR.js | 37 - .../javascripts/jquery-ui/datepicker-pt.js | 36 - .../javascripts/jquery-ui/datepicker-rm.js | 35 - .../javascripts/jquery-ui/datepicker-ro.js | 40 - .../javascripts/jquery-ui/datepicker-ru.js | 37 - .../javascripts/jquery-ui/datepicker-sk.js | 37 - .../javascripts/jquery-ui/datepicker-sl.js | 38 - .../javascripts/jquery-ui/datepicker-sq.js | 37 - .../javascripts/jquery-ui/datepicker-sr-SR.js | 37 - .../javascripts/jquery-ui/datepicker-sr.js | 37 - .../javascripts/jquery-ui/datepicker-sv.js | 37 - .../javascripts/jquery-ui/datepicker-ta.js | 37 - .../javascripts/jquery-ui/datepicker-th.js | 37 - .../javascripts/jquery-ui/datepicker-tj.js | 37 - .../javascripts/jquery-ui/datepicker-tr.js | 37 - .../javascripts/jquery-ui/datepicker-uk.js | 38 - .../javascripts/jquery-ui/datepicker-vi.js | 37 - .../javascripts/jquery-ui/datepicker-zh-CN.js | 37 - .../javascripts/jquery-ui/datepicker-zh-HK.js | 37 - .../javascripts/jquery-ui/datepicker-zh-TW.js | 37 - .../javascripts/jquery-ui/datepicker.js | 2086 ---------------- .../jquery-ui/disable-selection.js | 48 + .../javascripts/jquery-ui/effect-blind.js | 92 - .../javascripts/jquery-ui/effect-bounce.js | 125 - .../javascripts/jquery-ui/effect-clip.js | 79 - .../javascripts/jquery-ui/effect-drop.js | 77 - .../javascripts/jquery-ui/effect-explode.js | 109 - .../javascripts/jquery-ui/effect-fade.js | 42 - .../javascripts/jquery-ui/effect-fold.js | 88 - .../javascripts/jquery-ui/effect-highlight.js | 62 - .../javascripts/jquery-ui/effect-puff.js | 63 - .../javascripts/jquery-ui/effect-pulsate.js | 75 - .../javascripts/jquery-ui/effect-scale.js | 92 - .../javascripts/jquery-ui/effect-shake.js | 86 - .../javascripts/jquery-ui/effect-size.js | 235 -- .../javascripts/jquery-ui/effect-slide.js | 76 - .../javascripts/jquery-ui/effect-transfer.js | 59 - .../javascripts/jquery-ui/effect.all.js | 31 +- app/assets/javascripts/jquery-ui/effect.js | 904 ++++--- .../jquery-ui/effects/effect-blind.js | 73 + .../jquery-ui/effects/effect-bounce.js | 113 + .../jquery-ui/effects/effect-clip.js | 68 + .../jquery-ui/effects/effect-drop.js | 72 + .../jquery-ui/effects/effect-explode.js | 114 + .../jquery-ui/effects/effect-fade.js | 50 + .../jquery-ui/effects/effect-fold.js | 92 + .../jquery-ui/effects/effect-highlight.js | 60 + .../jquery-ui/effects/effect-puff.js | 46 + .../jquery-ui/effects/effect-pulsate.js | 67 + .../jquery-ui/effects/effect-scale.js | 60 + .../jquery-ui/effects/effect-shake.js | 77 + .../jquery-ui/effects/effect-size.js | 194 ++ .../jquery-ui/effects/effect-slide.js | 79 + .../jquery-ui/effects/effect-transfer.js | 43 + .../javascripts/jquery-ui/escape-selector.js | 23 + app/assets/javascripts/jquery-ui/focusable.js | 86 + .../javascripts/jquery-ui/form-reset-mixin.js | 80 + app/assets/javascripts/jquery-ui/form.js | 22 + .../jquery-ui/i18n/datepicker-af.js | 37 + .../jquery-ui/i18n/datepicker-ar-DZ.js | 39 + .../jquery-ui/i18n/datepicker-ar.js | 39 + .../jquery-ui/i18n/datepicker-az.js | 37 + .../jquery-ui/i18n/datepicker-be.js | 37 + .../jquery-ui/i18n/datepicker-bg.js | 38 + .../jquery-ui/i18n/datepicker-bs.js | 37 + .../jquery-ui/i18n/datepicker-ca.js | 37 + .../jquery-ui/i18n/datepicker-cs.js | 37 + .../jquery-ui/i18n/datepicker-cy-GB.js | 45 + .../jquery-ui/i18n/datepicker-da.js | 37 + .../jquery-ui/i18n/datepicker-de.js | 37 + .../jquery-ui/i18n/datepicker-el.js | 37 + .../jquery-ui/i18n/datepicker-en-AU.js | 37 + .../jquery-ui/i18n/datepicker-en-GB.js | 37 + .../jquery-ui/i18n/datepicker-en-NZ.js | 37 + .../jquery-ui/i18n/datepicker-eo.js | 37 + .../jquery-ui/i18n/datepicker-es.js | 37 + .../jquery-ui/i18n/datepicker-et.js | 45 + .../jquery-ui/i18n/datepicker-eu.js | 36 + .../jquery-ui/i18n/datepicker-fa.js | 73 + .../jquery-ui/i18n/datepicker-fi.js | 37 + .../jquery-ui/i18n/datepicker-fo.js | 45 + .../jquery-ui/i18n/datepicker-fr-CA.js | 37 + .../jquery-ui/i18n/datepicker-fr-CH.js | 37 + .../jquery-ui/i18n/datepicker-fr.js | 39 + .../jquery-ui/i18n/datepicker-gl.js | 37 + .../jquery-ui/i18n/datepicker-he.js | 37 + .../jquery-ui/i18n/datepicker-hi.js | 37 + .../jquery-ui/i18n/datepicker-hr.js | 37 + .../jquery-ui/i18n/datepicker-hu.js | 36 + .../jquery-ui/i18n/datepicker-hy.js | 37 + .../jquery-ui/i18n/datepicker-id.js | 37 + .../jquery-ui/i18n/datepicker-is.js | 45 + .../jquery-ui/i18n/datepicker-it-CH.js | 37 + .../jquery-ui/i18n/datepicker-it.js | 37 + .../jquery-ui/i18n/datepicker-ja.js | 37 + .../jquery-ui/i18n/datepicker-ka.js | 48 + .../jquery-ui/i18n/datepicker-kk.js | 37 + .../jquery-ui/i18n/datepicker-km.js | 37 + .../jquery-ui/i18n/datepicker-ko.js | 37 + .../jquery-ui/i18n/datepicker-ky.js | 38 + .../jquery-ui/i18n/datepicker-lb.js | 45 + .../jquery-ui/i18n/datepicker-lt.js | 45 + .../jquery-ui/i18n/datepicker-lv.js | 45 + .../jquery-ui/i18n/datepicker-mk.js | 37 + .../jquery-ui/i18n/datepicker-ml.js | 37 + .../jquery-ui/i18n/datepicker-ms.js | 37 + .../jquery-ui/i18n/datepicker-nb.js | 49 + .../jquery-ui/i18n/datepicker-nl-BE.js | 37 + .../jquery-ui/i18n/datepicker-nl.js | 37 + .../jquery-ui/i18n/datepicker-nn.js | 49 + .../jquery-ui/i18n/datepicker-no.js | 50 + .../jquery-ui/i18n/datepicker-pl.js | 37 + .../jquery-ui/i18n/datepicker-pt-BR.js | 45 + .../jquery-ui/i18n/datepicker-pt.js | 44 + .../jquery-ui/i18n/datepicker-rm.js | 61 + .../jquery-ui/i18n/datepicker-ro.js | 40 + .../jquery-ui/i18n/datepicker-ru.js | 37 + .../jquery-ui/i18n/datepicker-sk.js | 37 + .../jquery-ui/i18n/datepicker-sl.js | 38 + .../jquery-ui/i18n/datepicker-sq.js | 37 + .../jquery-ui/i18n/datepicker-sr-SR.js | 37 + .../jquery-ui/i18n/datepicker-sr.js | 37 + .../jquery-ui/i18n/datepicker-sv.js | 37 + .../jquery-ui/i18n/datepicker-ta.js | 53 + .../jquery-ui/i18n/datepicker-th.js | 37 + .../jquery-ui/i18n/datepicker-tj.js | 37 + .../jquery-ui/i18n/datepicker-tr.js | 37 + .../jquery-ui/i18n/datepicker-uk.js | 38 + .../jquery-ui/i18n/datepicker-vi.js | 37 + .../jquery-ui/i18n/datepicker-zh-CN.js | 37 + .../jquery-ui/i18n/datepicker-zh-HK.js | 37 + .../jquery-ui/i18n/datepicker-zh-TW.js | 37 + app/assets/javascripts/jquery-ui/ie.js | 17 + .../javascripts/jquery-ui/jquery-1-7.js | 91 + app/assets/javascripts/jquery-ui/keycode.js | 47 + app/assets/javascripts/jquery-ui/labels.js | 65 + app/assets/javascripts/jquery-ui/mouse.js | 202 -- app/assets/javascripts/jquery-ui/plugin.js | 46 + app/assets/javascripts/jquery-ui/position.js | 201 +- .../jquery-ui/safe-active-element.js | 42 + app/assets/javascripts/jquery-ui/safe-blur.js | 23 + .../javascripts/jquery-ui/scroll-parent.js | 47 + .../javascripts/jquery-ui/selectable.js | 291 --- app/assets/javascripts/jquery-ui/sortable.js | 1319 ---------- app/assets/javascripts/jquery-ui/tabbable.js | 38 + app/assets/javascripts/jquery-ui/unique-id.js | 51 + app/assets/javascripts/jquery-ui/version.js | 17 + app/assets/javascripts/jquery-ui/widget.js | 479 ++-- .../jquery-ui/{ => widgets}/accordion.js | 349 +-- .../jquery-ui/{ => widgets}/autocomplete.js | 240 +- .../javascripts/jquery-ui/widgets/button.js | 391 +++ .../jquery-ui/widgets/checkboxradio.js | 291 +++ .../jquery-ui/widgets/controlgroup.js | 300 +++ .../jquery-ui/widgets/datepicker.js | 2123 +++++++++++++++++ .../jquery-ui/{ => widgets}/dialog.js | 387 +-- .../jquery-ui/{ => widgets}/draggable.js | 709 +++--- .../jquery-ui/{ => widgets}/droppable.js | 250 +- .../jquery-ui/{ => widgets}/menu.js | 298 +-- .../javascripts/jquery-ui/widgets/mouse.js | 230 ++ .../jquery-ui/{ => widgets}/progressbar.js | 101 +- .../jquery-ui/{ => widgets}/resizable.js | 775 +++--- .../jquery-ui/widgets/selectable.js | 314 +++ .../jquery-ui/{ => widgets}/selectmenu.js | 429 ++-- .../jquery-ui/{ => widgets}/slider.js | 350 +-- .../javascripts/jquery-ui/widgets/sortable.js | 1561 ++++++++++++ .../jquery-ui/{ => widgets}/spinner.js | 287 ++- .../jquery-ui/{ => widgets}/tabs.js | 432 ++-- .../jquery-ui/{ => widgets}/tooltip.js | 223 +- .../stylesheets/jquery-ui/accordion.css | 16 +- app/assets/stylesheets/jquery-ui/all.css | 2 +- .../stylesheets/jquery-ui/autocomplete.css | 4 +- app/assets/stylesheets/jquery-ui/base.css | 4 +- app/assets/stylesheets/jquery-ui/button.css | 103 +- .../stylesheets/jquery-ui/checkboxradio.css | 37 + .../stylesheets/jquery-ui/controlgroup.css | 68 + app/assets/stylesheets/jquery-ui/core.css | 18 +- .../stylesheets/jquery-ui/datepicker.css | 13 +- app/assets/stylesheets/jquery-ui/dialog.css | 49 +- .../stylesheets/jquery-ui/draggable.css | 3 +- app/assets/stylesheets/jquery-ui/menu.css | 14 +- .../stylesheets/jquery-ui/progressbar.css | 3 +- .../stylesheets/jquery-ui/resizable.css | 3 +- .../stylesheets/jquery-ui/selectable.css | 3 +- .../stylesheets/jquery-ui/selectmenu.css | 33 +- app/assets/stylesheets/jquery-ui/slider.css | 3 +- app/assets/stylesheets/jquery-ui/sortable.css | 3 +- app/assets/stylesheets/jquery-ui/spinner.css | 29 +- app/assets/stylesheets/jquery-ui/tabs.css | 3 +- .../stylesheets/jquery-ui/theme.css.erb | 200 +- app/assets/stylesheets/jquery-ui/tooltip.css | 5 +- jquery-ui | 2 +- lib/jquery/ui/rails/version.rb | 4 +- testapp/Gemfile.lock | 5 +- .../app/assets/javascripts/jquery_ui_test.js | 2 +- testapp/config/environments/development.rb | 2 +- testapp/config/environments/test.rb | 2 +- 277 files changed, 14524 insertions(+), 11722 deletions(-) delete mode 100644 app/assets/images/jquery-ui/ui-bg_flat_75_ffffff_40x100.png delete mode 100644 app/assets/images/jquery-ui/ui-bg_glass_55_fbf9ee_1x400.png delete mode 100644 app/assets/images/jquery-ui/ui-bg_glass_65_ffffff_1x400.png delete mode 100644 app/assets/images/jquery-ui/ui-bg_glass_75_dadada_1x400.png delete mode 100644 app/assets/images/jquery-ui/ui-bg_glass_75_e6e6e6_1x400.png delete mode 100644 app/assets/images/jquery-ui/ui-bg_glass_95_fef1ec_1x400.png delete mode 100644 app/assets/images/jquery-ui/ui-bg_highlight-soft_75_cccccc_1x100.png delete mode 100644 app/assets/images/jquery-ui/ui-icons_222222_256x240.png delete mode 100644 app/assets/images/jquery-ui/ui-icons_2e83ff_256x240.png create mode 100644 app/assets/images/jquery-ui/ui-icons_444444_256x240.png delete mode 100644 app/assets/images/jquery-ui/ui-icons_454545_256x240.png create mode 100644 app/assets/images/jquery-ui/ui-icons_555555_256x240.png create mode 100644 app/assets/images/jquery-ui/ui-icons_777620_256x240.png create mode 100644 app/assets/images/jquery-ui/ui-icons_777777_256x240.png delete mode 100644 app/assets/images/jquery-ui/ui-icons_888888_256x240.png create mode 100644 app/assets/images/jquery-ui/ui-icons_cc0000_256x240.png delete mode 100644 app/assets/images/jquery-ui/ui-icons_cd0a0a_256x240.png create mode 100644 app/assets/images/jquery-ui/ui-icons_ffffff_256x240.png delete mode 100644 app/assets/javascripts/jquery-ui/button.js create mode 100644 app/assets/javascripts/jquery-ui/data.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-af.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-ar-DZ.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-ar.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-az.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-be.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-bg.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-bs.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-ca.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-cs.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-cy-GB.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-da.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-de.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-el.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-en-AU.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-en-GB.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-en-NZ.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-eo.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-es.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-et.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-eu.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-fa.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-fi.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-fo.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-fr-CA.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-fr-CH.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-fr.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-gl.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-he.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-hi.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-hr.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-hu.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-hy.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-id.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-is.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-it-CH.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-it.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-ja.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-ka.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-kk.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-km.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-ko.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-ky.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-lb.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-lt.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-lv.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-mk.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-ml.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-ms.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-nb.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-nl-BE.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-nl.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-nn.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-no.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-pl.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-pt-BR.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-pt.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-rm.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-ro.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-ru.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-sk.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-sl.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-sq.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-sr-SR.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-sr.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-sv.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-ta.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-th.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-tj.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-tr.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-uk.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-vi.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-zh-CN.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-zh-HK.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker-zh-TW.js delete mode 100644 app/assets/javascripts/jquery-ui/datepicker.js create mode 100644 app/assets/javascripts/jquery-ui/disable-selection.js delete mode 100644 app/assets/javascripts/jquery-ui/effect-blind.js delete mode 100644 app/assets/javascripts/jquery-ui/effect-bounce.js delete mode 100644 app/assets/javascripts/jquery-ui/effect-clip.js delete mode 100644 app/assets/javascripts/jquery-ui/effect-drop.js delete mode 100644 app/assets/javascripts/jquery-ui/effect-explode.js delete mode 100644 app/assets/javascripts/jquery-ui/effect-fade.js delete mode 100644 app/assets/javascripts/jquery-ui/effect-fold.js delete mode 100644 app/assets/javascripts/jquery-ui/effect-highlight.js delete mode 100644 app/assets/javascripts/jquery-ui/effect-puff.js delete mode 100644 app/assets/javascripts/jquery-ui/effect-pulsate.js delete mode 100644 app/assets/javascripts/jquery-ui/effect-scale.js delete mode 100644 app/assets/javascripts/jquery-ui/effect-shake.js delete mode 100644 app/assets/javascripts/jquery-ui/effect-size.js delete mode 100644 app/assets/javascripts/jquery-ui/effect-slide.js delete mode 100644 app/assets/javascripts/jquery-ui/effect-transfer.js create mode 100644 app/assets/javascripts/jquery-ui/effects/effect-blind.js create mode 100644 app/assets/javascripts/jquery-ui/effects/effect-bounce.js create mode 100644 app/assets/javascripts/jquery-ui/effects/effect-clip.js create mode 100644 app/assets/javascripts/jquery-ui/effects/effect-drop.js create mode 100644 app/assets/javascripts/jquery-ui/effects/effect-explode.js create mode 100644 app/assets/javascripts/jquery-ui/effects/effect-fade.js create mode 100644 app/assets/javascripts/jquery-ui/effects/effect-fold.js create mode 100644 app/assets/javascripts/jquery-ui/effects/effect-highlight.js create mode 100644 app/assets/javascripts/jquery-ui/effects/effect-puff.js create mode 100644 app/assets/javascripts/jquery-ui/effects/effect-pulsate.js create mode 100644 app/assets/javascripts/jquery-ui/effects/effect-scale.js create mode 100644 app/assets/javascripts/jquery-ui/effects/effect-shake.js create mode 100644 app/assets/javascripts/jquery-ui/effects/effect-size.js create mode 100644 app/assets/javascripts/jquery-ui/effects/effect-slide.js create mode 100644 app/assets/javascripts/jquery-ui/effects/effect-transfer.js create mode 100644 app/assets/javascripts/jquery-ui/escape-selector.js create mode 100644 app/assets/javascripts/jquery-ui/focusable.js create mode 100644 app/assets/javascripts/jquery-ui/form-reset-mixin.js create mode 100644 app/assets/javascripts/jquery-ui/form.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-af.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-ar-DZ.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-ar.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-az.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-be.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-bg.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-bs.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-ca.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-cs.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-cy-GB.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-da.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-de.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-el.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-en-AU.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-en-GB.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-en-NZ.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-eo.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-es.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-et.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-eu.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-fa.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-fi.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-fo.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-fr-CA.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-fr-CH.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-fr.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-gl.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-he.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-hi.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-hr.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-hu.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-hy.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-id.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-is.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-it-CH.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-it.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-ja.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-ka.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-kk.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-km.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-ko.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-ky.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-lb.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-lt.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-lv.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-mk.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-ml.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-ms.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-nb.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-nl-BE.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-nl.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-nn.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-no.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-pl.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-pt-BR.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-pt.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-rm.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-ro.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-ru.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-sk.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-sl.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-sq.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-sr-SR.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-sr.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-sv.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-ta.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-th.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-tj.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-tr.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-uk.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-vi.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-zh-CN.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-zh-HK.js create mode 100644 app/assets/javascripts/jquery-ui/i18n/datepicker-zh-TW.js create mode 100644 app/assets/javascripts/jquery-ui/ie.js create mode 100644 app/assets/javascripts/jquery-ui/jquery-1-7.js create mode 100644 app/assets/javascripts/jquery-ui/keycode.js create mode 100644 app/assets/javascripts/jquery-ui/labels.js delete mode 100644 app/assets/javascripts/jquery-ui/mouse.js create mode 100644 app/assets/javascripts/jquery-ui/plugin.js create mode 100644 app/assets/javascripts/jquery-ui/safe-active-element.js create mode 100644 app/assets/javascripts/jquery-ui/safe-blur.js create mode 100644 app/assets/javascripts/jquery-ui/scroll-parent.js delete mode 100644 app/assets/javascripts/jquery-ui/selectable.js delete mode 100644 app/assets/javascripts/jquery-ui/sortable.js create mode 100644 app/assets/javascripts/jquery-ui/tabbable.js create mode 100644 app/assets/javascripts/jquery-ui/unique-id.js create mode 100644 app/assets/javascripts/jquery-ui/version.js rename app/assets/javascripts/jquery-ui/{ => widgets}/accordion.js (62%) rename app/assets/javascripts/jquery-ui/{ => widgets}/autocomplete.js (76%) create mode 100644 app/assets/javascripts/jquery-ui/widgets/button.js create mode 100644 app/assets/javascripts/jquery-ui/widgets/checkboxradio.js create mode 100644 app/assets/javascripts/jquery-ui/widgets/controlgroup.js create mode 100644 app/assets/javascripts/jquery-ui/widgets/datepicker.js rename app/assets/javascripts/jquery-ui/{ => widgets}/dialog.js (72%) rename app/assets/javascripts/jquery-ui/{ => widgets}/draggable.js (57%) rename app/assets/javascripts/jquery-ui/{ => widgets}/droppable.js (66%) rename app/assets/javascripts/jquery-ui/{ => widgets}/menu.js (70%) create mode 100644 app/assets/javascripts/jquery-ui/widgets/mouse.js rename app/assets/javascripts/jquery-ui/{ => widgets}/progressbar.js (54%) rename app/assets/javascripts/jquery-ui/{ => widgets}/resizable.js (52%) create mode 100644 app/assets/javascripts/jquery-ui/widgets/selectable.js rename app/assets/javascripts/jquery-ui/{ => widgets}/selectmenu.js (55%) rename app/assets/javascripts/jquery-ui/{ => widgets}/slider.js (66%) create mode 100644 app/assets/javascripts/jquery-ui/widgets/sortable.js rename app/assets/javascripts/jquery-ui/{ => widgets}/spinner.js (64%) rename app/assets/javascripts/jquery-ui/{ => widgets}/tabs.js (71%) rename app/assets/javascripts/jquery-ui/{ => widgets}/tooltip.js (73%) create mode 100644 app/assets/stylesheets/jquery-ui/checkboxradio.css create mode 100644 app/assets/stylesheets/jquery-ui/controlgroup.css diff --git a/History.md b/History.md index e53ee526..9c38c5fd 100644 --- a/History.md +++ b/History.md @@ -1,5 +1,9 @@ # master +# 6.0.0 + +* Update to jQuery UI 1.12.1 + # 5.0.5 * Update to jQuery UI 1.11.4 diff --git a/README.md b/README.md index 3c7c105c..8e689392 100644 --- a/README.md +++ b/README.md @@ -41,9 +41,12 @@ Also add the jQuery UI CSS to your application.css: */ ``` -Warning: If you are using a version below 5.0, you will have to use a different naming -for the files to require, see https://github.com/joliss/jquery-ui-rails/blob/v4.2.1/README.md -for more information. +### Warning: +Due to directory structure changes between jQuery-UI 1.10, 1.11, and 1.12, +if you use version lower than 6.0, you will have to use a different naming +for the files to require, please check following links for more information: +[For 5.0 users](https://github.com/joliss/jquery-ui-rails/blob/v5.0.5/README.md) +[For 4.2 users](https://github.com/joliss/jquery-ui-rails/blob/v4.2.1/README.md) All images required by jQuery UI are automatically served through the asset pipeline, so you are good to go! For example, this code will add a @@ -66,10 +69,11 @@ For example, if you only need the datepicker module, add this to your application.js: ```javascript -//= require jquery-ui/datepicker +//= require jquery-ui/widgets/datepicker ``` -In your application.css, require the corresponding CSS module: +In your application.css, require the corresponding CSS module (notice +no `widgets/` path here: ```css /* @@ -84,7 +88,6 @@ In your application.css, require the corresponding CSS module: ```javascript //= require jquery-ui/core //= require jquery-ui/widget -//= require jquery-ui/mouse //= require jquery-ui/position ``` @@ -94,31 +97,32 @@ other JavaScript modules as needed. ### Interactions ```javascript -//= require jquery-ui/draggable -//= require jquery-ui/droppable -//= require jquery-ui/resizable -//= require jquery-ui/selectable -//= require jquery-ui/sortable +//= require jquery-ui/widgets/mouse +//= require jquery-ui/widgets/draggable +//= require jquery-ui/widgets/droppable +//= require jquery-ui/widgets/resizable +//= require jquery-ui/widgets/selectable +//= require jquery-ui/widgets/sortable ``` -For all but `jquery-ui/droppable`, remember to `require` their matching CSS +For all but `jquery-ui/mouse` and `jquery-ui/droppable`, remember to `require` their matching CSS files in your application.css as well. ### Widgets ```javascript -//= require jquery-ui/accordion -//= require jquery-ui/autocomplete -//= require jquery-ui/button -//= require jquery-ui/datepicker -//= require jquery-ui/dialog -//= require jquery-ui/menu -//= require jquery-ui/progressbar -//= require jquery-ui/selectmenu -//= require jquery-ui/slider -//= require jquery-ui/spinner -//= require jquery-ui/tabs -//= require jquery-ui/tooltip +//= require jquery-ui/widgets/accordion +//= require jquery-ui/widgets/autocomplete +//= require jquery-ui/widgets/button +//= require jquery-ui/widgets/datepicker +//= require jquery-ui/widgets/dialog +//= require jquery-ui/widgets/menu +//= require jquery-ui/widgets/progressbar +//= require jquery-ui/widgets/selectmenu +//= require jquery-ui/widgets/slider +//= require jquery-ui/widgets/spinner +//= require jquery-ui/widgets/tabs +//= require jquery-ui/widgets/tooltip ``` For all of these, remember to `require` their matching CSS files in your @@ -132,8 +136,8 @@ Datepicker has optional i18n modules for non-US locales, named for example: ```javascript -//= require jquery-ui/datepicker -//= require jquery-ui/datepicker-pt-BR +//= require jquery-ui/widgets/datepicker +//= require jquery-ui/i18n/datepicker-pt-BR ``` Note that you still need to include the main datepicker module. It is not @@ -144,6 +148,11 @@ reasons](https://github.com/joliss/jquery-ui-rails/issues/9#issuecomment-6524987 ```javascript //= require jquery-ui/effect.all +``` + +OR + +```javascript //= require jquery-ui/effect //= require jquery-ui/effect-blind //= require jquery-ui/effect-bounce diff --git a/Rakefile b/Rakefile index d19c73e5..bcb6df3c 100644 --- a/Rakefile +++ b/Rakefile @@ -2,12 +2,6 @@ Encoding.default_external = "UTF-8" if defined?(Encoding) require 'json' require 'bundler/gem_tasks' -# returns the source filename for a given JSON build file -# (e.g., "ui.core.jquery.json" returns "core.js") -def source_file_for_build_file(build_file) - "#{build_file.sub('ui.', '').sub('.jquery.json', '')}.js" -end - # returns the source filename for a named file in the 'dependencies' # array of a JSON build file # (e.g., if the JSON build file contains @@ -22,10 +16,12 @@ end # # The only exception is "jquery", which doesn't follow the # same naming conventions so it's a special case. -def source_file_for_dependency_entry(dep_entry) +def source_file_for_dependency_entry(caller, dep_entry) return "jquery.js" if dep_entry == 'jquery' - "#{dep_entry.sub 'ui.', ''}.js" + p = Pathname.new caller + parent_path = p.parent + parent_path.join(dep_entry).to_s end # return a Hash of dependency info, whose keys are jquery-ui @@ -33,19 +29,35 @@ end # they depend on def map_dependencies dependencies = {} - Dir.glob("jquery-ui/*.jquery.json").each do |build_file| - build_info = JSON.parse(File.read build_file) - source_file_name = source_file_for_build_file(File.basename(build_file)) + Dir.glob("jquery-ui/ui/**/*.js").each do |path| + basename = File.basename path + file = File.read path + + matchdata = file.match(/define\(.*\[[\S\s]+\]\, factory \);/m) + + matchdata ||= file.match(/define\(.*\[[\S\s]+\](\, factory )?.*\);/m) + + next if matchdata.nil? + + deps_str = matchdata[0] - deps = build_info['dependencies'].keys + deps = deps_str.match(/\[[\s\S]*\]/)[0] + + deps = deps.gsub(/\/\/.+\s/, "") + + deps = deps.gsub(/[\r\n\t\"\[\]\s]/, "") + + deps_paths = deps.split(',') # None of jquery.ui files should depend on jquery.js, # so we remove 'jquery' from the list of dependencies for all files - deps.reject! {|d| d == "jquery" } + deps_paths.reject! {|d| d == "jquery" } - deps.map! {|d| source_file_for_dependency_entry d } + deps_paths.map! {|d| d + '.js' } - dependencies[source_file_name] = deps + deps_paths.map! {|d| source_file_for_dependency_entry path, d } + + dependencies[basename] = deps_paths end dependencies end @@ -70,7 +82,7 @@ def get_js_dependencies(basename) end # Make sure we do not package assets with broken dependencies dependencies.each do |dep| - unless File.exist?("jquery-ui/ui/#{dep}") + unless File.exist?("#{dep}") fail "#{basename}: missing #{dep}" end end @@ -107,13 +119,18 @@ task :javascripts => :submodule do target_dir = "app/assets/javascripts" target_ui_dir = "#{target_dir}/jquery-ui" mkdir_p target_ui_dir + mkdir_p target_ui_dir + '/effects' + mkdir_p target_ui_dir + '/widgets' + mkdir_p target_ui_dir + '/i18n' - Dir.glob("jquery-ui/ui/*.js").each do |path| + Dir.glob("jquery-ui/ui/**/*.js").each do |path| basename = File.basename(path) + clean_path = path.gsub('/ui', '') dep_modules = get_js_dependencies(basename).map(&method(:remove_js_extension)) - File.open("#{target_ui_dir}/#{basename}", "w") do |out| + File.open("#{target_dir}/#{clean_path}", "w") do |out| dep_modules.each do |mod| - out.write("//= require jquery-ui/#{mod}\n") + mod.gsub!('/ui', '') + out.write("//= require #{mod}\n") end out.write("\n") unless dep_modules.empty? source_code = File.read(path) @@ -127,7 +144,7 @@ task :javascripts => :submodule do # https://github.com/joliss/jquery-ui-rails/issues/9 Dir.glob("jquery-ui/ui/i18n/*.js").each do |path| basename = File.basename(path) - File.open("#{target_ui_dir}/#{basename}", "w") do |out| + File.open("#{target_ui_dir}/i18n/#{basename}", "w") do |out| source_code = File.read(path) source_code.gsub!('@VERSION', version) protect_copyright_notice(source_code) @@ -136,15 +153,23 @@ task :javascripts => :submodule do end File.open("#{target_ui_dir}/effect.all.js", "w") do |out| - Dir.glob("jquery-ui/ui/effect*.js").sort.each do |path| - asset_name = remove_js_extension(File.basename(path)) - out.write("//= require jquery-ui/#{asset_name}\n") + Dir.glob("jquery-ui/ui/effects/*.js").sort.each do |path| + clean_path = path.gsub('/ui', '') + out.write("//= require #{clean_path}\n") end end File.open("#{target_dir}/jquery-ui.js", "w") do |out| Dir.glob("jquery-ui/ui/*.js").sort.each do |path| - asset_name = remove_js_extension(File.basename(path)) - out.write("//= require jquery-ui/#{asset_name}\n") + clean_path = path.gsub('/ui', '') + out.write("//= require #{clean_path}\n") + end + Dir.glob("jquery-ui/ui/effects/*.js").sort.each do |path| + clean_path = path.gsub('/ui', '') + out.write("//= require #{clean_path}\n") + end + Dir.glob("jquery-ui/ui/widgets/*.js").sort.each do |path| + clean_path = path.gsub('/ui', '') + out.write("//= require #{clean_path}\n") end end end diff --git a/VERSIONS.md b/VERSIONS.md index 7a4d269b..0bc4e60f 100644 --- a/VERSIONS.md +++ b/VERSIONS.md @@ -2,6 +2,7 @@ | Gem | jQuery UI | |--------|-----------| +| 6.0.0 | 1.12.1 | | 5.0.5 | 1.11.4 | | 5.0.4 | 1.11.3 | | 5.0.3 | 1.11.2 | diff --git a/app/assets/images/jquery-ui/ui-bg_flat_0_aaaaaa_40x100.png b/app/assets/images/jquery-ui/ui-bg_flat_0_aaaaaa_40x100.png index 5b5dab2ab7b1c50dea9cfe73dc5a269a92d2d4b4..a2e6bfc085f51b392569e58b72d454586b900f61 100644 GIT binary patch delta 68 zcmdnO7&bw|j**#xf#KY$2bMsJIlw2xb=9g>f_1-t0=ayiE{-7;jL8caC0G|TFfc_h VFvdLG5d@TB@O1TaS?83{1OS|L6F~p~ literal 180 zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*FscKIb$B>N1x91EQ4=4yQ7#`R^ z$vje}bP0l+XkK DSH>_4 diff --git a/app/assets/images/jquery-ui/ui-bg_flat_75_ffffff_40x100.png b/app/assets/images/jquery-ui/ui-bg_flat_75_ffffff_40x100.png deleted file mode 100644 index ac8b229af950c29356abf64a6c4aa894575445f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 178 zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*FsY*{5$B>N1x91EQ4=4yQYz+E8 zPo9&<{J;c_6SHRil>2s{Zw^OT)6@jj2u|u!(plXsM>LJD`vD!n;OXk;vd$@?2>^GI BH@yG= diff --git a/app/assets/images/jquery-ui/ui-bg_glass_55_fbf9ee_1x400.png b/app/assets/images/jquery-ui/ui-bg_glass_55_fbf9ee_1x400.png deleted file mode 100644 index ad3d6346e00f246102f72f2e026ed0491988b394..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 120 zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAK^akKnour0hLi978O6-<~(*I$*%ybaDOn z{W;e!B}_MSUQoPXhYd^Y6RUoS1yepnPx`2Kz)7OXQG!!=-jY=F+d2OOy?#DnJ32>z UEim$g7SJdLPgg&ebxsLQ09~*s;{X5v diff --git a/app/assets/images/jquery-ui/ui-bg_glass_65_ffffff_1x400.png b/app/assets/images/jquery-ui/ui-bg_glass_65_ffffff_1x400.png deleted file mode 100644 index 42ccba269b6e91bef12ad0fa18be651b5ef0ee68..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 105 zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAK^akKnouqzpV=978O6-=0?FV^9z|eBtf= z|7WztIJ;WT>{+tN>ySr~=F{k$>;_x^_y?afmf9pRKH0)6?eSP?3s5hEr>mdKI;Vst E0O;M1& diff --git a/app/assets/images/jquery-ui/ui-bg_glass_75_dadada_1x400.png b/app/assets/images/jquery-ui/ui-bg_glass_75_dadada_1x400.png deleted file mode 100644 index 5a46b47cb16631068aee9e0bd61269fc4e95e5cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 111 zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAK^akKnouq|7{B978O6lPf+wIa#m9#>Unb zm^4K~wN3Zq+uP{vDV26o)#~38k_!`W=^oo1w6ixmPC4R1b Tyd6G3lNdZ*{an^LB{Ts5`idse diff --git a/app/assets/images/jquery-ui/ui-bg_highlight-soft_75_cccccc_1x100.png b/app/assets/images/jquery-ui/ui-bg_highlight-soft_75_cccccc_1x100.png deleted file mode 100644 index 7c9fa6c6edcfcdd3e5b77e6f547b719e6fc66e30..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 101 zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3HGVb)pi0l#Zv1V~E7mI3`<(O3xvulR&VAkQJHZBho(m=l0{{SA7UpJl008iB z3Rqvn`1P1SiomLXkg776;)RSXXXV1Iqu_@e2%8dEPZ*NvG6-d*$oWlBXKKg zV({l@ll0gM+F;pm#SBg*2mQ!Rn_HBhT&5w_d`jyG6+_vuxMHXoKj|Yh2EGJ-B`N+E z$pmy>sA-*C0S`BfHv`&Y>Z626r?uZY8?`zzbXj7u1}` z;TS<~e1eY(jD4j)wElgyeR*V7`qdhf3S5Vcdq_R*a&F^r|9|M*i>!yeL)xMH?-6M_ zJjl&7(M|RQJ2z;fI7;E!$?Pfq$usWpjLxzlazT~K6v`ft@@P32;&o$5@b}Yj#d~r) z9^2%vhdyIgOXOGiCNOR_sjx3j8*01pUqQBn7r}I@E53HUy&DusRETO9wG~Rdfx=Ta zwD>0smtXx6l#X>f`lTc3c!pmLbwTP$Zfe7s__87<&i+s33P`Udim99RAA$T_Y7T3^ z>vV9wL8Sc0x! z_eRl4cEFZ`EXPfL3omdIIY|MS@P4-79I_Af%(!ONP=msk&*mFs^(0gOj->4HEJ}Ca zL(HZSEXEQH#fbJDfQ^RQnvtlx$kD>NeLhPB+yUp!E5O$&?fP1}JdI;l4(=H(hEfAQ zNRU;>uU@{f`2)^*UI^NA8VHraDlXrE*?OWOs z7D#P(ftiy|@ab?=t923@#mR}=S6GNj1 z?mTR4hby}vE*2>Wg7-X!KAz3vwvJ)qVMtB~**$wrQ^&0>;8UR6E7imZV-)iH?Tt~> zX-EGVhMYWVxX}dU)MQaN+jv0*8;3JBy*az#1aW|^_4%i?mlU$yRTy>-wCJJVC==P> zEx=B7cZ&E7jJ@{Z{CG+0A-lAG;ovs3FALs8|JLq?o#M-to~~wx^JI)GhP%l=X?-mS zEbfx}Nj)D74<>(1{)gt2^%v7UAlLYp6gO$gsv=`$#2)3F9ed8@mcK6i!h@mGQqU}e zyItCAfl~4IqG~(AU2lV?`)nu#S5+1BrCJv>QmoI?LyuLj8e^o>li?U6OMey{r_T(* zY8RG<@x>cK$(nNMlhy)E`{;|c6$@%L*hZEYs{mUmt$8-u8m?YV3{83m{YAwB%6Y{L z6k9V^jd0tnd%q4+xwp&Yfr#>WqoooH9K5xYM|V_s8{16~N?TcuYd@6+y1_aS;c{q^(Kyv6DZcFd zd@RkCqyC{5yX5E=oHd-`WBQ0I>9_&^<}<7793`JA=$mRuSrr}iQyzxG9T)%=Xp2g4 zkFI*p1^XIjQQE0yQNGyZNn{h@1;N1>r@)!(21u5LGg2Ob1==Thh`ZXost~Y05y+XE zrc7k%zx|Fxe^LX9HhqjcV~P|W`3AXYj%WAaFNz@uZ-xRmf!NHrNh4zKSO1WrwFL6P zXM}G=*p9v_k=mUmpg-$Y6I7Mt4@y2D+ys?c;_C@aVePnKabqAS%y%AoFzKI#JaeQxo%Il=}>GqqqxhG8cPyu>P?R=}Ol7vhvDcW{Z8i0Zn zzm^YCS5qT4m#*SycTaxzIpnMMHwFrEO>lJzqr0i6lGn6M7x;$7B7Iy)6renY$OiZc zMEFF-;Ff)@RWrYEodz{P?avD?^RtUsN$GEP>xrgxlbtd22`L1q+Vm;zyBzLIj#2fp zQZS2sUF)*%MR5S(jid&TIT<2`Js!yUdi}%lzzxkuKjf|bHvGZz#1l5%O0plla6C28K&%)=R}0F6xRI>HvM|=4x#=-to|lSN^N9P6&xIP z2dq0{CX-Xc&YJNeXXD#dn;c9feR-*P_CfUEp8(wN{z!yEZrI*MPs**fh@b|xe*S&i zHc8i5C2XFuJ)xhg7K~%2H`zsX?JhZT+>};UB5HaE$E92V@>aXAPbP zjHGY7LH_&c+;-7yblDf5tKrky!+N>Vx>?)QZi1hm1Aea(92RyRiFczw&w7)GT*KddVhT(T~0Egdo9qyLRosyG6?!=QbqPzk^x9!b!;O zjEYZ(YM2+oYg-TrJTt9??(26|bMF?&#cgl&%SzC;-tOToW%SoAmvaoExO%bz%?xjk zc(|{^J<~z4;>Loltn&Q#cD-zLlA0oFa(P1*5{sdl$v0#75<`$?CT{uv?urEF5%l#% z1*lLBO|PYH2z}OUCDP!56T6(s<{oG|TOAmiP3Z95>EKzFu=~wRiHd}%-yn`p^?J6( zih27|xpMpU0(-^Ma=J7`xm^&DhSqXkjnQt=LQjM?m_ss!!0cIcfgCXk7TijCGz5At zUKx0OZ(Pc2owm3zR5RS0N)Y#iMfl$WQCVB&sa%OY<#3FtYF&H{`S5{&n#aQKe2Se9 zB?KD>qbcT%&$2w0lfgg>hoa-{bj}D!0GrB0(o9%dP6Pxsw8y%(rU7O|*#fSHYBm2h zyytq$C(2?`j}W=ORiP$Y;41*}G=Y$(2OhqHVfd_b2NmhSboLunMtOr5!~U=jF_g7g zx!U^R$M++HtM%nJWA0HW6A->{j|_B;D@i9waP$)>{6HyW zi?%Q-uGS3xs5_COdmgZjld7Pfo4dBxil@eQDw4^F*Vcb}d)bfW?|OD#N(nd^;T^jB zZea;L9}obXL9cH4o}9qQv(@ovFw_meU5D94g#m>tZ>F(pY-+sVc~p1lWWYncfsZBD zlLUulh#8ZKbJZaXx~7T%9*9kCI?ptUWNtB6zk6wB?Esa@U>adq3-GJsAap@@buxd8 zEh*0kH65g*0pwfcCE82`98Gls@jB5(U`@lWMLxq4sPDlmq!Rv*Vp(zSX$437XGBPqZRXNva3-1V4LK`FF19js@6mZK*48gf-Z-ZNB zLM=}?fKd18YCyN<3I%#wqeFjR9^PLn0C|nbyn1-&Ph!re@O0EEp`97_ouN^T>luaA zQbRd68s2B-M1Q}bL`59M`{jC(<_`P4m+_LOgr`2Gt(Rm4y+wDaGcvik0$;t-0c3C{ zKhx0TB~7CpakFn?r9>!&+;ccIO!hd{$-sX1k+O&#=VmV@?^gOz?c=kZ*8x}L)H)dP zYzhfqNU`(IVUtd)A!)GN@5UL@&OX&+@1C?lb`+!>)>=w1JnE$X>Lw#Yjk7&t)#5>X#Cjs|&jQ!X46aWn?QOjkKm*1G ztbhAifM)AKF=tIbp&vSIPqX&9FQ`BEN|??$UXR)85VQkj*P`!)ht-9)fQ|t&EI}c) zY_Dp0Km2C(q8potDF7er6kZ;VOs*dAVznYFU=Tj)$Gq2%pheYQJdTMt)xV?d0aA0f zf!9BB;E?X!!FWTWHx>8q_1{a`32+aVn2QqF4@>>wO;ea#m&96EhNkjIR(#vwq%yr` zfH0w))fHpM%M^W;nW$_)tb@EVVvhrYi*g_wUlF^|U`HFf<~&JOeBOMX&56=R~^VwL+|j!Ca?>Tx==&$#g^C#2+mS?tyG29g?7BC;5|* zhNhNJ?*-LgdlM)3Jx?L+w7;FK4mFXC;;XzQ429NM`AD>QNUJVX`T3s9}m~hbK7csE0P(!l|C~FWjU=g#?C}12ipKQAA~kz3%msO zg2N0*dRqd|SG=WcPVM-2UAcd>w1y8d%zsl=9Z^nq83TK_9xPH=!{}}AuqY7aaFPnP l;BjQ_^4`vQQuBMqxOYB4T*@HG=I>V@U~v|0R%wcf{y%IJ0Z9M= diff --git a/app/assets/images/jquery-ui/ui-icons_2e83ff_256x240.png b/app/assets/images/jquery-ui/ui-icons_2e83ff_256x240.png deleted file mode 100644 index 45e8928e5284adacea3f9ec07b9b50667d2ac65f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4369 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 diff --git a/app/assets/images/jquery-ui/ui-icons_444444_256x240.png b/app/assets/images/jquery-ui/ui-icons_444444_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..92214389270e76aea5ff5e4b2f4a90c101e3602f GIT binary patch literal 3756 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 R^Y1chWnq8($uV5=e*lq0v~&Of literal 0 HcmV?d00001 diff --git a/app/assets/images/jquery-ui/ui-icons_454545_256x240.png b/app/assets/images/jquery-ui/ui-icons_454545_256x240.png deleted file mode 100644 index 7ec70d11bfb2f77374dfd00ef61ba0c3647b5a0c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4369 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 k*Kv;w;*%(i9W@fAqs5i2wiq diff --git a/app/assets/images/jquery-ui/ui-icons_555555_256x240.png b/app/assets/images/jquery-ui/ui-icons_555555_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..4c37296071b0a0b21d099d70fcf9c616939bb788 GIT binary patch literal 3756 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 S?mz#2My<^4Pd+(;P5BR$ddn;T literal 0 HcmV?d00001 diff --git a/app/assets/images/jquery-ui/ui-icons_777777_256x240.png b/app/assets/images/jquery-ui/ui-icons_777777_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..de6cf086bbfb5839ab4f538b5de7856d915f8404 GIT binary patch literal 3756 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 diff --git a/app/assets/images/jquery-ui/ui-icons_ffffff_256x240.png b/app/assets/images/jquery-ui/ui-icons_ffffff_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..4ab379a1f772135922de4046a14c82679e6c4cbf GIT binary patch literal 3756 zcmeH~`#;m~8^_<aW6&Y_agCMoB0&avd&K{-TD8%v064wEPrLOQ8b%wdyq zh{A_LHI(xy6B=Xlt?^+mSHf6Lh4f+}7QD>M}M6 zC%;R-M@+>;`k18+LfLEIemxhhRKqkvTUcjryOD)rQ+-Rq!Gu%STOZWY{Cw^$)OEp zHet1@#+)*JA@kN>X!G^WK+l%se0)=q-%mn9!&|5P0HFf-BGwVyiIg~Hcf-r-3&<-; zNF6hjO#R?A(uyLQWzFH{(~5ri&Tphi37F=X|6W@Vd#=2)L_V8*LAdp*n4JK36QsDfOY zu#dtdNISkJ_j0Y71Vy+qal2|guSyaYu@_1Y!YBy7rGruIM_NBN6S4M5((6Pe6nS*> zD8j)8HR;R$_vS!P9^a2W3>*6L3x2+7rQpl$%@b`b$TZ}R0rh>HrQJ|nN=vBX&DE8e zIME0rqxLTBy&KVApAo%MG)9e&_N_lZOHOV`iR4I>orfGG$cwj&>w6o%M(xMPznfmW z3e4>Lrm#VckoOv(ih()=S0$*FZ4-vU#Da9YB_@Y8~N4Ppxoz$>=S{rS!rA zY;H^eQ1%Zg+$dv?->@(UCHw$?@2~}>+z@e(^VhpGb&vO0PYKcM#@zART^Sw= zd;B2}jPyc_N8{C+*_@r7PN){UfA*-d^2qnL!01=XuFJ&_b9QGoD|8KEP=ApCmBmH+ zJ)1tNlp!U1>q{FKK#I8I{4)9-vV(4OPMO_5lsxN>2jA&zl$n?pe@&pg4LyD9{4*?d z&E3kj)3@hPj<#KuZ~7=&Gb%oBG1|##x2whPF<~*epwoJ|h;r>OB7@ONI+v2O&>&SI z$McM60zXjnL~`+)F~JttErSC&-nnavm1mqkwCg<>th))=8-t`i*S-VGc_Nm?uRuz} zJEH-$E|`!4q(_ozS^`0ZLyY2CllSZa7-qY+Gm09?P7z_u<5k6gSw58TM*1NHG3{^w z8t1jw$$q3^w~F;N9|B9GiPfbs%1M=J3|kAQ5OrexW<3RX#Cu3G&4uA6eI?5KLyYBB zi0}M!;E+Ol8)Q`|;4F{j^Os^AB%B*sOns4Q#_FL!HUTmWt3&Acq>(qR;Wz_kDNJT) zcaC$`7aRl72>b2``LBSE37oMm(pTX0j(F;2g?uzP{TMnnVoL>rOaM|v2=-9hM?70V zhgJ2ezCiPa5A^L^fo1!F`GVH@Whg+4wy!?;*X*UxSWf7Y8rD&n zjNQsOz7#7!2)4CBG7XuMRsqcJv# zd)eBHZtbs6M|h*+%yj3~REXBq^Yyf&y3-jClPkNH5R8g-p^a=8t6d>I=|GMTz`G*b zoUlZ3hc~*Zue)f}gac1kIGl-_by#Wy&vica#(TdlfB9jli%rc{c6pa^J)!2i>ZYs% zY?^XKu;2ri?XTulSuO0Zi2>ql!WZto@fpe!N4d{Gfyf&VaSkFt>o;Gsb-YI@&phhm zq3Mzp${-J@3GXeZ?Nc~`4u@Tn@WPYWLvVN@$uj%$D)i3RD0I@0NsbVrZ%L3jI~v-H zbZ`m-4K@IK(LUUZ@j8UJn1rqGD{b(^rqu&z`?&f~x@}6}Y5UUnC+l|02BR_rMN1V+ zB*cR|=P6NQ1tCYI@v-u=j_SD6hx@HmJ7cHvG7L8-_lOV%uGa=%oh%%OIvKxc;Bcb} zJ7c4xXH?5chg*1)h9TGL-f(I@`#hd9MxMOiNT#{zF3Qhd(f=#f@tAhGK)p_Hl|CN_ z?+kMN0-<`V*XGvk?d&^JCuH&_xHOS>1irs9lJ)?fSuu6CX-2x8*Sw0OXX2@mEMOZI9Re@2ZU~jvwjk?}$icLPkoH{@V5I9C~&O8KM zfLMCn_tJS-V-5Cr=A7{qDT6&>_TJ~>Qy*?llxS>e-oXUT@+atSgE2Tm?vg<8^mj$1 zC*Q@Uog8<+yDhXyAM{2F#qg*P&;n_Jj5l25-pmSn8K@FDgt~?*?L~v4vNzuq!G=ns zRy_kd2vZS}0HXXy=5s|Cr8rT`1;3X<68FTdJ-}K4wZ>B>R)AG-SFOyP0Bg{t(P0QN zqDRf@p2}4l85sZG3+|me!pQeJ?UvWo_}D4axK5~V^9;QtU7=LKQ}(tVAp&BP4;7D7 zV%@2j5q$Lo3B^i56C`(!yA*S{-TV55#sh9PJ0AB}m8Oj>5YTBa;7LX{bw|W<-&D1d zj_|s=+WwVYkg>h7i{XHo|HU%c)|!yHvR&5wrW_!B!Q%m;@sn}}LDn04s;8=>kwHLD z_6VSY(`I=qFv1ggzbQ^G!9P1FyjHx2*K!jsVB1 z0+FhFrU@bl{o)Vl#!?qrHvtp!Ak1wi*?7F3h!c|lyS2eC0GJK&&Zmq@cz`I%R6MCK zo}cLcoJf73up=HVP44S2eAZU<6E=X!heOEQgYh#kQQoFD<27C!f95joFXPC;SX1?^ z1?6S3k*fQX4bDoOEs)88;#RIjU5`^dG&VbZST8t2&xQB<)pf7aCw(78Ycck+K&mS^ zv}@Zd6O6eO!LFCT?-XiTqeBc(9|3S$AT*_&P^u!ts8k5h{HXb(WC?KY)nxya9q%H6 z*wdZ_?U;5?T)nvLzfk+t)VI}mJd~xtC1o8aZq~c8gJvgA;YBEl0X&`=o^I~BLfY_t zlrPb~!Nmz`F_5#z$lvfw6TvR{{g;6`+h=nzK~T%jpr!iSGVhiHa6fEQDBVDA zz%op>8=z=e%P>sQf^MuIo0*RHLFu$g@1r#L2T1}+Pom`H{(iic4PA@gkvN5CFQBt$ zR+eG2Gdw*S@8?hq-*PKSc6+#uNz6Yyla$!O;%=~^h34~k!L^Q$ct8Tc6cS?sE5CA> zzbEfD4+Q5rcc7^^*{v8wyUd2Q4!BfbWKwZSOvQH8z#!M5VsMAc9vcLO3ME2n{W^{C zmiT%l>CMd?U8DgWMqTC!4$pL7;6g>IIYmCe?b3!6P9v-u57mlx!la@3iqv12n=0Lz zft;`UxlC?qbGC^Sz!8gn5sSo96ne#+W8H(|g2?$XzXm@161Q1ZR$Mil{&$2Goq%ml z_Qcif!~+XMFw;%_J-Duy4}J;{V#Q~iBJ-WVqf zk^Kn1RgnB&Bx&B*5Z&WHJ`7?0VZN~}-%(_w+j4J}L42C0V}hZm=OkM|mKo%piOKGc^9Vu?!{U-OH Qf0t1!3;W|wj^R@N0}0i75C8xG literal 0 HcmV?d00001 diff --git a/app/assets/javascripts/jquery-ui.js b/app/assets/javascripts/jquery-ui.js index b12268c3..4e75cb8a 100644 --- a/app/assets/javascripts/jquery-ui.js +++ b/app/assets/javascripts/jquery-ui.js @@ -1,37 +1,56 @@ -//= require jquery-ui/accordion -//= require jquery-ui/autocomplete -//= require jquery-ui/button -//= require jquery-ui/core -//= require jquery-ui/datepicker -//= require jquery-ui/dialog -//= require jquery-ui/draggable -//= require jquery-ui/droppable -//= require jquery-ui/effect-blind -//= require jquery-ui/effect-bounce -//= require jquery-ui/effect-clip -//= require jquery-ui/effect-drop -//= require jquery-ui/effect-explode -//= require jquery-ui/effect-fade -//= require jquery-ui/effect-fold -//= require jquery-ui/effect-highlight -//= require jquery-ui/effect-puff -//= require jquery-ui/effect-pulsate -//= require jquery-ui/effect-scale -//= require jquery-ui/effect-shake -//= require jquery-ui/effect-size -//= require jquery-ui/effect-slide -//= require jquery-ui/effect-transfer -//= require jquery-ui/effect -//= require jquery-ui/menu -//= require jquery-ui/mouse -//= require jquery-ui/position -//= require jquery-ui/progressbar -//= require jquery-ui/resizable -//= require jquery-ui/selectable -//= require jquery-ui/selectmenu -//= require jquery-ui/slider -//= require jquery-ui/sortable -//= require jquery-ui/spinner -//= require jquery-ui/tabs -//= require jquery-ui/tooltip -//= require jquery-ui/widget +//= require jquery-ui/core.js +//= require jquery-ui/data.js +//= require jquery-ui/disable-selection.js +//= require jquery-ui/effect.js +//= require jquery-ui/escape-selector.js +//= require jquery-ui/focusable.js +//= require jquery-ui/form-reset-mixin.js +//= require jquery-ui/form.js +//= require jquery-ui/ie.js +//= require jquery-ui/jquery-1-7.js +//= require jquery-ui/keycode.js +//= require jquery-ui/labels.js +//= require jquery-ui/plugin.js +//= require jquery-ui/position.js +//= require jquery-ui/safe-active-element.js +//= require jquery-ui/safe-blur.js +//= require jquery-ui/scroll-parent.js +//= require jquery-ui/tabbable.js +//= require jquery-ui/unique-id.js +//= require jquery-ui/version.js +//= require jquery-ui/widget.js +//= require jquery-ui/effects/effect-blind.js +//= require jquery-ui/effects/effect-bounce.js +//= require jquery-ui/effects/effect-clip.js +//= require jquery-ui/effects/effect-drop.js +//= require jquery-ui/effects/effect-explode.js +//= require jquery-ui/effects/effect-fade.js +//= require jquery-ui/effects/effect-fold.js +//= require jquery-ui/effects/effect-highlight.js +//= require jquery-ui/effects/effect-puff.js +//= require jquery-ui/effects/effect-pulsate.js +//= require jquery-ui/effects/effect-scale.js +//= require jquery-ui/effects/effect-shake.js +//= require jquery-ui/effects/effect-size.js +//= require jquery-ui/effects/effect-slide.js +//= require jquery-ui/effects/effect-transfer.js +//= require jquery-ui/widgets/accordion.js +//= require jquery-ui/widgets/autocomplete.js +//= require jquery-ui/widgets/button.js +//= require jquery-ui/widgets/checkboxradio.js +//= require jquery-ui/widgets/controlgroup.js +//= require jquery-ui/widgets/datepicker.js +//= require jquery-ui/widgets/dialog.js +//= require jquery-ui/widgets/draggable.js +//= require jquery-ui/widgets/droppable.js +//= require jquery-ui/widgets/menu.js +//= require jquery-ui/widgets/mouse.js +//= require jquery-ui/widgets/progressbar.js +//= require jquery-ui/widgets/resizable.js +//= require jquery-ui/widgets/selectable.js +//= require jquery-ui/widgets/selectmenu.js +//= require jquery-ui/widgets/slider.js +//= require jquery-ui/widgets/sortable.js +//= require jquery-ui/widgets/spinner.js +//= require jquery-ui/widgets/tabs.js +//= require jquery-ui/widgets/tooltip.js diff --git a/app/assets/javascripts/jquery-ui/button.js b/app/assets/javascripts/jquery-ui/button.js deleted file mode 100644 index 0a5f9349..00000000 --- a/app/assets/javascripts/jquery-ui/button.js +++ /dev/null @@ -1,414 +0,0 @@ -//= require jquery-ui/core -//= require jquery-ui/widget - -/*! - * jQuery UI Button 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/button/ - */ -(function( factory ) { - if ( typeof define === "function" && define.amd ) { - - // AMD. Register as an anonymous module. - define([ - "jquery", - "./core", - "./widget" - ], factory ); - } else { - - // Browser globals - factory( jQuery ); - } -}(function( $ ) { - -var lastActive, - baseClasses = "ui-button ui-widget ui-state-default ui-corner-all", - typeClasses = "ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only", - formResetHandler = function() { - var form = $( this ); - setTimeout(function() { - form.find( ":ui-button" ).button( "refresh" ); - }, 1 ); - }, - radioGroup = function( radio ) { - var name = radio.name, - form = radio.form, - radios = $( [] ); - if ( name ) { - name = name.replace( /'/g, "\\'" ); - if ( form ) { - radios = $( form ).find( "[name='" + name + "'][type=radio]" ); - } else { - radios = $( "[name='" + name + "'][type=radio]", radio.ownerDocument ) - .filter(function() { - return !this.form; - }); - } - } - return radios; - }; - -$.widget( "ui.button", { - version: "1.11.4", - defaultElement: "").addClass(this._triggerClass). - html(!buttonImage ? buttonText : $("").attr( - { src:buttonImage, alt:buttonText, title:buttonText }))); - input[isRTL ? "before" : "after"](inst.trigger); - inst.trigger.click(function() { - if ($.datepicker._datepickerShowing && $.datepicker._lastInput === input[0]) { - $.datepicker._hideDatepicker(); - } else if ($.datepicker._datepickerShowing && $.datepicker._lastInput !== input[0]) { - $.datepicker._hideDatepicker(); - $.datepicker._showDatepicker(input[0]); - } else { - $.datepicker._showDatepicker(input[0]); - } - return false; - }); - } - }, - - /* Apply the maximum length for the date format. */ - _autoSize: function(inst) { - if (this._get(inst, "autoSize") && !inst.inline) { - var findMax, max, maxI, i, - date = new Date(2009, 12 - 1, 20), // Ensure double digits - dateFormat = this._get(inst, "dateFormat"); - - if (dateFormat.match(/[DM]/)) { - findMax = function(names) { - max = 0; - maxI = 0; - for (i = 0; i < names.length; i++) { - if (names[i].length > max) { - max = names[i].length; - maxI = i; - } - } - return maxI; - }; - date.setMonth(findMax(this._get(inst, (dateFormat.match(/MM/) ? - "monthNames" : "monthNamesShort")))); - date.setDate(findMax(this._get(inst, (dateFormat.match(/DD/) ? - "dayNames" : "dayNamesShort"))) + 20 - date.getDay()); - } - inst.input.attr("size", this._formatDate(inst, date).length); - } - }, - - /* Attach an inline date picker to a div. */ - _inlineDatepicker: function(target, inst) { - var divSpan = $(target); - if (divSpan.hasClass(this.markerClassName)) { - return; - } - divSpan.addClass(this.markerClassName).append(inst.dpDiv); - $.data(target, "datepicker", inst); - this._setDate(inst, this._getDefaultDate(inst), true); - this._updateDatepicker(inst); - this._updateAlternate(inst); - //If disabled option is true, disable the datepicker before showing it (see ticket #5665) - if( inst.settings.disabled ) { - this._disableDatepicker( target ); - } - // Set display:block in place of inst.dpDiv.show() which won't work on disconnected elements - // http://bugs.jqueryui.com/ticket/7552 - A Datepicker created on a detached div has zero height - inst.dpDiv.css( "display", "block" ); - }, - - /* Pop-up the date picker in a "dialog" box. - * @param input element - ignored - * @param date string or Date - the initial date to display - * @param onSelect function - the function to call when a date is selected - * @param settings object - update the dialog date picker instance's settings (anonymous object) - * @param pos int[2] - coordinates for the dialog's position within the screen or - * event - with x/y coordinates or - * leave empty for default (screen centre) - * @return the manager object - */ - _dialogDatepicker: function(input, date, onSelect, settings, pos) { - var id, browserWidth, browserHeight, scrollX, scrollY, - inst = this._dialogInst; // internal instance - - if (!inst) { - this.uuid += 1; - id = "dp" + this.uuid; - this._dialogInput = $(""); - this._dialogInput.keydown(this._doKeyDown); - $("body").append(this._dialogInput); - inst = this._dialogInst = this._newInst(this._dialogInput, false); - inst.settings = {}; - $.data(this._dialogInput[0], "datepicker", inst); - } - datepicker_extendRemove(inst.settings, settings || {}); - date = (date && date.constructor === Date ? this._formatDate(inst, date) : date); - this._dialogInput.val(date); - - this._pos = (pos ? (pos.length ? pos : [pos.pageX, pos.pageY]) : null); - if (!this._pos) { - browserWidth = document.documentElement.clientWidth; - browserHeight = document.documentElement.clientHeight; - scrollX = document.documentElement.scrollLeft || document.body.scrollLeft; - scrollY = document.documentElement.scrollTop || document.body.scrollTop; - this._pos = // should use actual width/height below - [(browserWidth / 2) - 100 + scrollX, (browserHeight / 2) - 150 + scrollY]; - } - - // move input on screen for focus, but hidden behind dialog - this._dialogInput.css("left", (this._pos[0] + 20) + "px").css("top", this._pos[1] + "px"); - inst.settings.onSelect = onSelect; - this._inDialog = true; - this.dpDiv.addClass(this._dialogClass); - this._showDatepicker(this._dialogInput[0]); - if ($.blockUI) { - $.blockUI(this.dpDiv); - } - $.data(this._dialogInput[0], "datepicker", inst); - return this; - }, - - /* Detach a datepicker from its control. - * @param target element - the target input field or division or span - */ - _destroyDatepicker: function(target) { - var nodeName, - $target = $(target), - inst = $.data(target, "datepicker"); - - if (!$target.hasClass(this.markerClassName)) { - return; - } - - nodeName = target.nodeName.toLowerCase(); - $.removeData(target, "datepicker"); - if (nodeName === "input") { - inst.append.remove(); - inst.trigger.remove(); - $target.removeClass(this.markerClassName). - unbind("focus", this._showDatepicker). - unbind("keydown", this._doKeyDown). - unbind("keypress", this._doKeyPress). - unbind("keyup", this._doKeyUp); - } else if (nodeName === "div" || nodeName === "span") { - $target.removeClass(this.markerClassName).empty(); - } - - if ( datepicker_instActive === inst ) { - datepicker_instActive = null; - } - }, - - /* Enable the date picker to a jQuery selection. - * @param target element - the target input field or division or span - */ - _enableDatepicker: function(target) { - var nodeName, inline, - $target = $(target), - inst = $.data(target, "datepicker"); - - if (!$target.hasClass(this.markerClassName)) { - return; - } - - nodeName = target.nodeName.toLowerCase(); - if (nodeName === "input") { - target.disabled = false; - inst.trigger.filter("button"). - each(function() { this.disabled = false; }).end(). - filter("img").css({opacity: "1.0", cursor: ""}); - } else if (nodeName === "div" || nodeName === "span") { - inline = $target.children("." + this._inlineClass); - inline.children().removeClass("ui-state-disabled"); - inline.find("select.ui-datepicker-month, select.ui-datepicker-year"). - prop("disabled", false); - } - this._disabledInputs = $.map(this._disabledInputs, - function(value) { return (value === target ? null : value); }); // delete entry - }, - - /* Disable the date picker to a jQuery selection. - * @param target element - the target input field or division or span - */ - _disableDatepicker: function(target) { - var nodeName, inline, - $target = $(target), - inst = $.data(target, "datepicker"); - - if (!$target.hasClass(this.markerClassName)) { - return; - } - - nodeName = target.nodeName.toLowerCase(); - if (nodeName === "input") { - target.disabled = true; - inst.trigger.filter("button"). - each(function() { this.disabled = true; }).end(). - filter("img").css({opacity: "0.5", cursor: "default"}); - } else if (nodeName === "div" || nodeName === "span") { - inline = $target.children("." + this._inlineClass); - inline.children().addClass("ui-state-disabled"); - inline.find("select.ui-datepicker-month, select.ui-datepicker-year"). - prop("disabled", true); - } - this._disabledInputs = $.map(this._disabledInputs, - function(value) { return (value === target ? null : value); }); // delete entry - this._disabledInputs[this._disabledInputs.length] = target; - }, - - /* Is the first field in a jQuery collection disabled as a datepicker? - * @param target element - the target input field or division or span - * @return boolean - true if disabled, false if enabled - */ - _isDisabledDatepicker: function(target) { - if (!target) { - return false; - } - for (var i = 0; i < this._disabledInputs.length; i++) { - if (this._disabledInputs[i] === target) { - return true; - } - } - return false; - }, - - /* Retrieve the instance data for the target control. - * @param target element - the target input field or division or span - * @return object - the associated instance data - * @throws error if a jQuery problem getting data - */ - _getInst: function(target) { - try { - return $.data(target, "datepicker"); - } - catch (err) { - throw "Missing instance data for this datepicker"; - } - }, - - /* Update or retrieve the settings for a date picker attached to an input field or division. - * @param target element - the target input field or division or span - * @param name object - the new settings to update or - * string - the name of the setting to change or retrieve, - * when retrieving also "all" for all instance settings or - * "defaults" for all global defaults - * @param value any - the new value for the setting - * (omit if above is an object or to retrieve a value) - */ - _optionDatepicker: function(target, name, value) { - var settings, date, minDate, maxDate, - inst = this._getInst(target); - - if (arguments.length === 2 && typeof name === "string") { - return (name === "defaults" ? $.extend({}, $.datepicker._defaults) : - (inst ? (name === "all" ? $.extend({}, inst.settings) : - this._get(inst, name)) : null)); - } - - settings = name || {}; - if (typeof name === "string") { - settings = {}; - settings[name] = value; - } - - if (inst) { - if (this._curInst === inst) { - this._hideDatepicker(); - } - - date = this._getDateDatepicker(target, true); - minDate = this._getMinMaxDate(inst, "min"); - maxDate = this._getMinMaxDate(inst, "max"); - datepicker_extendRemove(inst.settings, settings); - // reformat the old minDate/maxDate values if dateFormat changes and a new minDate/maxDate isn't provided - if (minDate !== null && settings.dateFormat !== undefined && settings.minDate === undefined) { - inst.settings.minDate = this._formatDate(inst, minDate); - } - if (maxDate !== null && settings.dateFormat !== undefined && settings.maxDate === undefined) { - inst.settings.maxDate = this._formatDate(inst, maxDate); - } - if ( "disabled" in settings ) { - if ( settings.disabled ) { - this._disableDatepicker(target); - } else { - this._enableDatepicker(target); - } - } - this._attachments($(target), inst); - this._autoSize(inst); - this._setDate(inst, date); - this._updateAlternate(inst); - this._updateDatepicker(inst); - } - }, - - // change method deprecated - _changeDatepicker: function(target, name, value) { - this._optionDatepicker(target, name, value); - }, - - /* Redraw the date picker attached to an input field or division. - * @param target element - the target input field or division or span - */ - _refreshDatepicker: function(target) { - var inst = this._getInst(target); - if (inst) { - this._updateDatepicker(inst); - } - }, - - /* Set the dates for a jQuery selection. - * @param target element - the target input field or division or span - * @param date Date - the new date - */ - _setDateDatepicker: function(target, date) { - var inst = this._getInst(target); - if (inst) { - this._setDate(inst, date); - this._updateDatepicker(inst); - this._updateAlternate(inst); - } - }, - - /* Get the date(s) for the first entry in a jQuery selection. - * @param target element - the target input field or division or span - * @param noDefault boolean - true if no default date is to be used - * @return Date - the current date - */ - _getDateDatepicker: function(target, noDefault) { - var inst = this._getInst(target); - if (inst && !inst.inline) { - this._setDateFromField(inst, noDefault); - } - return (inst ? this._getDate(inst) : null); - }, - - /* Handle keystrokes. */ - _doKeyDown: function(event) { - var onSelect, dateStr, sel, - inst = $.datepicker._getInst(event.target), - handled = true, - isRTL = inst.dpDiv.is(".ui-datepicker-rtl"); - - inst._keyEvent = true; - if ($.datepicker._datepickerShowing) { - switch (event.keyCode) { - case 9: $.datepicker._hideDatepicker(); - handled = false; - break; // hide on tab out - case 13: sel = $("td." + $.datepicker._dayOverClass + ":not(." + - $.datepicker._currentClass + ")", inst.dpDiv); - if (sel[0]) { - $.datepicker._selectDay(event.target, inst.selectedMonth, inst.selectedYear, sel[0]); - } - - onSelect = $.datepicker._get(inst, "onSelect"); - if (onSelect) { - dateStr = $.datepicker._formatDate(inst); - - // trigger custom callback - onSelect.apply((inst.input ? inst.input[0] : null), [dateStr, inst]); - } else { - $.datepicker._hideDatepicker(); - } - - return false; // don't submit the form - case 27: $.datepicker._hideDatepicker(); - break; // hide on escape - case 33: $.datepicker._adjustDate(event.target, (event.ctrlKey ? - -$.datepicker._get(inst, "stepBigMonths") : - -$.datepicker._get(inst, "stepMonths")), "M"); - break; // previous month/year on page up/+ ctrl - case 34: $.datepicker._adjustDate(event.target, (event.ctrlKey ? - +$.datepicker._get(inst, "stepBigMonths") : - +$.datepicker._get(inst, "stepMonths")), "M"); - break; // next month/year on page down/+ ctrl - case 35: if (event.ctrlKey || event.metaKey) { - $.datepicker._clearDate(event.target); - } - handled = event.ctrlKey || event.metaKey; - break; // clear on ctrl or command +end - case 36: if (event.ctrlKey || event.metaKey) { - $.datepicker._gotoToday(event.target); - } - handled = event.ctrlKey || event.metaKey; - break; // current on ctrl or command +home - case 37: if (event.ctrlKey || event.metaKey) { - $.datepicker._adjustDate(event.target, (isRTL ? +1 : -1), "D"); - } - handled = event.ctrlKey || event.metaKey; - // -1 day on ctrl or command +left - if (event.originalEvent.altKey) { - $.datepicker._adjustDate(event.target, (event.ctrlKey ? - -$.datepicker._get(inst, "stepBigMonths") : - -$.datepicker._get(inst, "stepMonths")), "M"); - } - // next month/year on alt +left on Mac - break; - case 38: if (event.ctrlKey || event.metaKey) { - $.datepicker._adjustDate(event.target, -7, "D"); - } - handled = event.ctrlKey || event.metaKey; - break; // -1 week on ctrl or command +up - case 39: if (event.ctrlKey || event.metaKey) { - $.datepicker._adjustDate(event.target, (isRTL ? -1 : +1), "D"); - } - handled = event.ctrlKey || event.metaKey; - // +1 day on ctrl or command +right - if (event.originalEvent.altKey) { - $.datepicker._adjustDate(event.target, (event.ctrlKey ? - +$.datepicker._get(inst, "stepBigMonths") : - +$.datepicker._get(inst, "stepMonths")), "M"); - } - // next month/year on alt +right - break; - case 40: if (event.ctrlKey || event.metaKey) { - $.datepicker._adjustDate(event.target, +7, "D"); - } - handled = event.ctrlKey || event.metaKey; - break; // +1 week on ctrl or command +down - default: handled = false; - } - } else if (event.keyCode === 36 && event.ctrlKey) { // display the date picker on ctrl+home - $.datepicker._showDatepicker(this); - } else { - handled = false; - } - - if (handled) { - event.preventDefault(); - event.stopPropagation(); - } - }, - - /* Filter entered characters - based on date format. */ - _doKeyPress: function(event) { - var chars, chr, - inst = $.datepicker._getInst(event.target); - - if ($.datepicker._get(inst, "constrainInput")) { - chars = $.datepicker._possibleChars($.datepicker._get(inst, "dateFormat")); - chr = String.fromCharCode(event.charCode == null ? event.keyCode : event.charCode); - return event.ctrlKey || event.metaKey || (chr < " " || !chars || chars.indexOf(chr) > -1); - } - }, - - /* Synchronise manual entry and field/alternate field. */ - _doKeyUp: function(event) { - var date, - inst = $.datepicker._getInst(event.target); - - if (inst.input.val() !== inst.lastVal) { - try { - date = $.datepicker.parseDate($.datepicker._get(inst, "dateFormat"), - (inst.input ? inst.input.val() : null), - $.datepicker._getFormatConfig(inst)); - - if (date) { // only if valid - $.datepicker._setDateFromField(inst); - $.datepicker._updateAlternate(inst); - $.datepicker._updateDatepicker(inst); - } - } - catch (err) { - } - } - return true; - }, - - /* Pop-up the date picker for a given input field. - * If false returned from beforeShow event handler do not show. - * @param input element - the input field attached to the date picker or - * event - if triggered by focus - */ - _showDatepicker: function(input) { - input = input.target || input; - if (input.nodeName.toLowerCase() !== "input") { // find from button/image trigger - input = $("input", input.parentNode)[0]; - } - - if ($.datepicker._isDisabledDatepicker(input) || $.datepicker._lastInput === input) { // already here - return; - } - - var inst, beforeShow, beforeShowSettings, isFixed, - offset, showAnim, duration; - - inst = $.datepicker._getInst(input); - if ($.datepicker._curInst && $.datepicker._curInst !== inst) { - $.datepicker._curInst.dpDiv.stop(true, true); - if ( inst && $.datepicker._datepickerShowing ) { - $.datepicker._hideDatepicker( $.datepicker._curInst.input[0] ); - } - } - - beforeShow = $.datepicker._get(inst, "beforeShow"); - beforeShowSettings = beforeShow ? beforeShow.apply(input, [input, inst]) : {}; - if(beforeShowSettings === false){ - return; - } - datepicker_extendRemove(inst.settings, beforeShowSettings); - - inst.lastVal = null; - $.datepicker._lastInput = input; - $.datepicker._setDateFromField(inst); - - if ($.datepicker._inDialog) { // hide cursor - input.value = ""; - } - if (!$.datepicker._pos) { // position below input - $.datepicker._pos = $.datepicker._findPos(input); - $.datepicker._pos[1] += input.offsetHeight; // add the height - } - - isFixed = false; - $(input).parents().each(function() { - isFixed |= $(this).css("position") === "fixed"; - return !isFixed; - }); - - offset = {left: $.datepicker._pos[0], top: $.datepicker._pos[1]}; - $.datepicker._pos = null; - //to avoid flashes on Firefox - inst.dpDiv.empty(); - // determine sizing offscreen - inst.dpDiv.css({position: "absolute", display: "block", top: "-1000px"}); - $.datepicker._updateDatepicker(inst); - // fix width for dynamic number of date pickers - // and adjust position before showing - offset = $.datepicker._checkOffset(inst, offset, isFixed); - inst.dpDiv.css({position: ($.datepicker._inDialog && $.blockUI ? - "static" : (isFixed ? "fixed" : "absolute")), display: "none", - left: offset.left + "px", top: offset.top + "px"}); - - if (!inst.inline) { - showAnim = $.datepicker._get(inst, "showAnim"); - duration = $.datepicker._get(inst, "duration"); - inst.dpDiv.css( "z-index", datepicker_getZindex( $( input ) ) + 1 ); - $.datepicker._datepickerShowing = true; - - if ( $.effects && $.effects.effect[ showAnim ] ) { - inst.dpDiv.show(showAnim, $.datepicker._get(inst, "showOptions"), duration); - } else { - inst.dpDiv[showAnim || "show"](showAnim ? duration : null); - } - - if ( $.datepicker._shouldFocusInput( inst ) ) { - inst.input.focus(); - } - - $.datepicker._curInst = inst; - } - }, - - /* Generate the date picker content. */ - _updateDatepicker: function(inst) { - this.maxRows = 4; //Reset the max number of rows being displayed (see #7043) - datepicker_instActive = inst; // for delegate hover events - inst.dpDiv.empty().append(this._generateHTML(inst)); - this._attachHandlers(inst); - - var origyearshtml, - numMonths = this._getNumberOfMonths(inst), - cols = numMonths[1], - width = 17, - activeCell = inst.dpDiv.find( "." + this._dayOverClass + " a" ); - - if ( activeCell.length > 0 ) { - datepicker_handleMouseover.apply( activeCell.get( 0 ) ); - } - - inst.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""); - if (cols > 1) { - inst.dpDiv.addClass("ui-datepicker-multi-" + cols).css("width", (width * cols) + "em"); - } - inst.dpDiv[(numMonths[0] !== 1 || numMonths[1] !== 1 ? "add" : "remove") + - "Class"]("ui-datepicker-multi"); - inst.dpDiv[(this._get(inst, "isRTL") ? "add" : "remove") + - "Class"]("ui-datepicker-rtl"); - - if (inst === $.datepicker._curInst && $.datepicker._datepickerShowing && $.datepicker._shouldFocusInput( inst ) ) { - inst.input.focus(); - } - - // deffered render of the years select (to avoid flashes on Firefox) - if( inst.yearshtml ){ - origyearshtml = inst.yearshtml; - setTimeout(function(){ - //assure that inst.yearshtml didn't change. - if( origyearshtml === inst.yearshtml && inst.yearshtml ){ - inst.dpDiv.find("select.ui-datepicker-year:first").replaceWith(inst.yearshtml); - } - origyearshtml = inst.yearshtml = null; - }, 0); - } - }, - - // #6694 - don't focus the input if it's already focused - // this breaks the change event in IE - // Support: IE and jQuery <1.9 - _shouldFocusInput: function( inst ) { - return inst.input && inst.input.is( ":visible" ) && !inst.input.is( ":disabled" ) && !inst.input.is( ":focus" ); - }, - - /* Check positioning to remain on screen. */ - _checkOffset: function(inst, offset, isFixed) { - var dpWidth = inst.dpDiv.outerWidth(), - dpHeight = inst.dpDiv.outerHeight(), - inputWidth = inst.input ? inst.input.outerWidth() : 0, - inputHeight = inst.input ? inst.input.outerHeight() : 0, - viewWidth = document.documentElement.clientWidth + (isFixed ? 0 : $(document).scrollLeft()), - viewHeight = document.documentElement.clientHeight + (isFixed ? 0 : $(document).scrollTop()); - - offset.left -= (this._get(inst, "isRTL") ? (dpWidth - inputWidth) : 0); - offset.left -= (isFixed && offset.left === inst.input.offset().left) ? $(document).scrollLeft() : 0; - offset.top -= (isFixed && offset.top === (inst.input.offset().top + inputHeight)) ? $(document).scrollTop() : 0; - - // now check if datepicker is showing outside window viewport - move to a better place if so. - offset.left -= Math.min(offset.left, (offset.left + dpWidth > viewWidth && viewWidth > dpWidth) ? - Math.abs(offset.left + dpWidth - viewWidth) : 0); - offset.top -= Math.min(offset.top, (offset.top + dpHeight > viewHeight && viewHeight > dpHeight) ? - Math.abs(dpHeight + inputHeight) : 0); - - return offset; - }, - - /* Find an object's position on the screen. */ - _findPos: function(obj) { - var position, - inst = this._getInst(obj), - isRTL = this._get(inst, "isRTL"); - - while (obj && (obj.type === "hidden" || obj.nodeType !== 1 || $.expr.filters.hidden(obj))) { - obj = obj[isRTL ? "previousSibling" : "nextSibling"]; - } - - position = $(obj).offset(); - return [position.left, position.top]; - }, - - /* Hide the date picker from view. - * @param input element - the input field attached to the date picker - */ - _hideDatepicker: function(input) { - var showAnim, duration, postProcess, onClose, - inst = this._curInst; - - if (!inst || (input && inst !== $.data(input, "datepicker"))) { - return; - } - - if (this._datepickerShowing) { - showAnim = this._get(inst, "showAnim"); - duration = this._get(inst, "duration"); - postProcess = function() { - $.datepicker._tidyDialog(inst); - }; - - // DEPRECATED: after BC for 1.8.x $.effects[ showAnim ] is not needed - if ( $.effects && ( $.effects.effect[ showAnim ] || $.effects[ showAnim ] ) ) { - inst.dpDiv.hide(showAnim, $.datepicker._get(inst, "showOptions"), duration, postProcess); - } else { - inst.dpDiv[(showAnim === "slideDown" ? "slideUp" : - (showAnim === "fadeIn" ? "fadeOut" : "hide"))]((showAnim ? duration : null), postProcess); - } - - if (!showAnim) { - postProcess(); - } - this._datepickerShowing = false; - - onClose = this._get(inst, "onClose"); - if (onClose) { - onClose.apply((inst.input ? inst.input[0] : null), [(inst.input ? inst.input.val() : ""), inst]); - } - - this._lastInput = null; - if (this._inDialog) { - this._dialogInput.css({ position: "absolute", left: "0", top: "-100px" }); - if ($.blockUI) { - $.unblockUI(); - $("body").append(this.dpDiv); - } - } - this._inDialog = false; - } - }, - - /* Tidy up after a dialog display. */ - _tidyDialog: function(inst) { - inst.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar"); - }, - - /* Close date picker if clicked elsewhere. */ - _checkExternalClick: function(event) { - if (!$.datepicker._curInst) { - return; - } - - var $target = $(event.target), - inst = $.datepicker._getInst($target[0]); - - if ( ( ( $target[0].id !== $.datepicker._mainDivId && - $target.parents("#" + $.datepicker._mainDivId).length === 0 && - !$target.hasClass($.datepicker.markerClassName) && - !$target.closest("." + $.datepicker._triggerClass).length && - $.datepicker._datepickerShowing && !($.datepicker._inDialog && $.blockUI) ) ) || - ( $target.hasClass($.datepicker.markerClassName) && $.datepicker._curInst !== inst ) ) { - $.datepicker._hideDatepicker(); - } - }, - - /* Adjust one of the date sub-fields. */ - _adjustDate: function(id, offset, period) { - var target = $(id), - inst = this._getInst(target[0]); - - if (this._isDisabledDatepicker(target[0])) { - return; - } - this._adjustInstDate(inst, offset + - (period === "M" ? this._get(inst, "showCurrentAtPos") : 0), // undo positioning - period); - this._updateDatepicker(inst); - }, - - /* Action for current link. */ - _gotoToday: function(id) { - var date, - target = $(id), - inst = this._getInst(target[0]); - - if (this._get(inst, "gotoCurrent") && inst.currentDay) { - inst.selectedDay = inst.currentDay; - inst.drawMonth = inst.selectedMonth = inst.currentMonth; - inst.drawYear = inst.selectedYear = inst.currentYear; - } else { - date = new Date(); - inst.selectedDay = date.getDate(); - inst.drawMonth = inst.selectedMonth = date.getMonth(); - inst.drawYear = inst.selectedYear = date.getFullYear(); - } - this._notifyChange(inst); - this._adjustDate(target); - }, - - /* Action for selecting a new month/year. */ - _selectMonthYear: function(id, select, period) { - var target = $(id), - inst = this._getInst(target[0]); - - inst["selected" + (period === "M" ? "Month" : "Year")] = - inst["draw" + (period === "M" ? "Month" : "Year")] = - parseInt(select.options[select.selectedIndex].value,10); - - this._notifyChange(inst); - this._adjustDate(target); - }, - - /* Action for selecting a day. */ - _selectDay: function(id, month, year, td) { - var inst, - target = $(id); - - if ($(td).hasClass(this._unselectableClass) || this._isDisabledDatepicker(target[0])) { - return; - } - - inst = this._getInst(target[0]); - inst.selectedDay = inst.currentDay = $("a", td).html(); - inst.selectedMonth = inst.currentMonth = month; - inst.selectedYear = inst.currentYear = year; - this._selectDate(id, this._formatDate(inst, - inst.currentDay, inst.currentMonth, inst.currentYear)); - }, - - /* Erase the input field and hide the date picker. */ - _clearDate: function(id) { - var target = $(id); - this._selectDate(target, ""); - }, - - /* Update the input field with the selected date. */ - _selectDate: function(id, dateStr) { - var onSelect, - target = $(id), - inst = this._getInst(target[0]); - - dateStr = (dateStr != null ? dateStr : this._formatDate(inst)); - if (inst.input) { - inst.input.val(dateStr); - } - this._updateAlternate(inst); - - onSelect = this._get(inst, "onSelect"); - if (onSelect) { - onSelect.apply((inst.input ? inst.input[0] : null), [dateStr, inst]); // trigger custom callback - } else if (inst.input) { - inst.input.trigger("change"); // fire the change event - } - - if (inst.inline){ - this._updateDatepicker(inst); - } else { - this._hideDatepicker(); - this._lastInput = inst.input[0]; - if (typeof(inst.input[0]) !== "object") { - inst.input.focus(); // restore focus - } - this._lastInput = null; - } - }, - - /* Update any alternate field to synchronise with the main field. */ - _updateAlternate: function(inst) { - var altFormat, date, dateStr, - altField = this._get(inst, "altField"); - - if (altField) { // update alternate field too - altFormat = this._get(inst, "altFormat") || this._get(inst, "dateFormat"); - date = this._getDate(inst); - dateStr = this.formatDate(altFormat, date, this._getFormatConfig(inst)); - $(altField).each(function() { $(this).val(dateStr); }); - } - }, - - /* Set as beforeShowDay function to prevent selection of weekends. - * @param date Date - the date to customise - * @return [boolean, string] - is this date selectable?, what is its CSS class? - */ - noWeekends: function(date) { - var day = date.getDay(); - return [(day > 0 && day < 6), ""]; - }, - - /* Set as calculateWeek to determine the week of the year based on the ISO 8601 definition. - * @param date Date - the date to get the week for - * @return number - the number of the week within the year that contains this date - */ - iso8601Week: function(date) { - var time, - checkDate = new Date(date.getTime()); - - // Find Thursday of this week starting on Monday - checkDate.setDate(checkDate.getDate() + 4 - (checkDate.getDay() || 7)); - - time = checkDate.getTime(); - checkDate.setMonth(0); // Compare with Jan 1 - checkDate.setDate(1); - return Math.floor(Math.round((time - checkDate) / 86400000) / 7) + 1; - }, - - /* Parse a string value into a date object. - * See formatDate below for the possible formats. - * - * @param format string - the expected format of the date - * @param value string - the date in the above format - * @param settings Object - attributes include: - * shortYearCutoff number - the cutoff year for determining the century (optional) - * dayNamesShort string[7] - abbreviated names of the days from Sunday (optional) - * dayNames string[7] - names of the days from Sunday (optional) - * monthNamesShort string[12] - abbreviated names of the months (optional) - * monthNames string[12] - names of the months (optional) - * @return Date - the extracted date value or null if value is blank - */ - parseDate: function (format, value, settings) { - if (format == null || value == null) { - throw "Invalid arguments"; - } - - value = (typeof value === "object" ? value.toString() : value + ""); - if (value === "") { - return null; - } - - var iFormat, dim, extra, - iValue = 0, - shortYearCutoffTemp = (settings ? settings.shortYearCutoff : null) || this._defaults.shortYearCutoff, - shortYearCutoff = (typeof shortYearCutoffTemp !== "string" ? shortYearCutoffTemp : - new Date().getFullYear() % 100 + parseInt(shortYearCutoffTemp, 10)), - dayNamesShort = (settings ? settings.dayNamesShort : null) || this._defaults.dayNamesShort, - dayNames = (settings ? settings.dayNames : null) || this._defaults.dayNames, - monthNamesShort = (settings ? settings.monthNamesShort : null) || this._defaults.monthNamesShort, - monthNames = (settings ? settings.monthNames : null) || this._defaults.monthNames, - year = -1, - month = -1, - day = -1, - doy = -1, - literal = false, - date, - // Check whether a format character is doubled - lookAhead = function(match) { - var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) === match); - if (matches) { - iFormat++; - } - return matches; - }, - // Extract a number from the string value - getNumber = function(match) { - var isDoubled = lookAhead(match), - size = (match === "@" ? 14 : (match === "!" ? 20 : - (match === "y" && isDoubled ? 4 : (match === "o" ? 3 : 2)))), - minSize = (match === "y" ? size : 1), - digits = new RegExp("^\\d{" + minSize + "," + size + "}"), - num = value.substring(iValue).match(digits); - if (!num) { - throw "Missing number at position " + iValue; - } - iValue += num[0].length; - return parseInt(num[0], 10); - }, - // Extract a name from the string value and convert to an index - getName = function(match, shortNames, longNames) { - var index = -1, - names = $.map(lookAhead(match) ? longNames : shortNames, function (v, k) { - return [ [k, v] ]; - }).sort(function (a, b) { - return -(a[1].length - b[1].length); - }); - - $.each(names, function (i, pair) { - var name = pair[1]; - if (value.substr(iValue, name.length).toLowerCase() === name.toLowerCase()) { - index = pair[0]; - iValue += name.length; - return false; - } - }); - if (index !== -1) { - return index + 1; - } else { - throw "Unknown name at position " + iValue; - } - }, - // Confirm that a literal character matches the string value - checkLiteral = function() { - if (value.charAt(iValue) !== format.charAt(iFormat)) { - throw "Unexpected literal at position " + iValue; - } - iValue++; - }; - - for (iFormat = 0; iFormat < format.length; iFormat++) { - if (literal) { - if (format.charAt(iFormat) === "'" && !lookAhead("'")) { - literal = false; - } else { - checkLiteral(); - } - } else { - switch (format.charAt(iFormat)) { - case "d": - day = getNumber("d"); - break; - case "D": - getName("D", dayNamesShort, dayNames); - break; - case "o": - doy = getNumber("o"); - break; - case "m": - month = getNumber("m"); - break; - case "M": - month = getName("M", monthNamesShort, monthNames); - break; - case "y": - year = getNumber("y"); - break; - case "@": - date = new Date(getNumber("@")); - year = date.getFullYear(); - month = date.getMonth() + 1; - day = date.getDate(); - break; - case "!": - date = new Date((getNumber("!") - this._ticksTo1970) / 10000); - year = date.getFullYear(); - month = date.getMonth() + 1; - day = date.getDate(); - break; - case "'": - if (lookAhead("'")){ - checkLiteral(); - } else { - literal = true; - } - break; - default: - checkLiteral(); - } - } - } - - if (iValue < value.length){ - extra = value.substr(iValue); - if (!/^\s+/.test(extra)) { - throw "Extra/unparsed characters found in date: " + extra; - } - } - - if (year === -1) { - year = new Date().getFullYear(); - } else if (year < 100) { - year += new Date().getFullYear() - new Date().getFullYear() % 100 + - (year <= shortYearCutoff ? 0 : -100); - } - - if (doy > -1) { - month = 1; - day = doy; - do { - dim = this._getDaysInMonth(year, month - 1); - if (day <= dim) { - break; - } - month++; - day -= dim; - } while (true); - } - - date = this._daylightSavingAdjust(new Date(year, month - 1, day)); - if (date.getFullYear() !== year || date.getMonth() + 1 !== month || date.getDate() !== day) { - throw "Invalid date"; // E.g. 31/02/00 - } - return date; - }, - - /* Standard date formats. */ - ATOM: "yy-mm-dd", // RFC 3339 (ISO 8601) - COOKIE: "D, dd M yy", - ISO_8601: "yy-mm-dd", - RFC_822: "D, d M y", - RFC_850: "DD, dd-M-y", - RFC_1036: "D, d M y", - RFC_1123: "D, d M yy", - RFC_2822: "D, d M yy", - RSS: "D, d M y", // RFC 822 - TICKS: "!", - TIMESTAMP: "@", - W3C: "yy-mm-dd", // ISO 8601 - - _ticksTo1970: (((1970 - 1) * 365 + Math.floor(1970 / 4) - Math.floor(1970 / 100) + - Math.floor(1970 / 400)) * 24 * 60 * 60 * 10000000), - - /* Format a date object into a string value. - * The format can be combinations of the following: - * d - day of month (no leading zero) - * dd - day of month (two digit) - * o - day of year (no leading zeros) - * oo - day of year (three digit) - * D - day name short - * DD - day name long - * m - month of year (no leading zero) - * mm - month of year (two digit) - * M - month name short - * MM - month name long - * y - year (two digit) - * yy - year (four digit) - * @ - Unix timestamp (ms since 01/01/1970) - * ! - Windows ticks (100ns since 01/01/0001) - * "..." - literal text - * '' - single quote - * - * @param format string - the desired format of the date - * @param date Date - the date value to format - * @param settings Object - attributes include: - * dayNamesShort string[7] - abbreviated names of the days from Sunday (optional) - * dayNames string[7] - names of the days from Sunday (optional) - * monthNamesShort string[12] - abbreviated names of the months (optional) - * monthNames string[12] - names of the months (optional) - * @return string - the date in the above format - */ - formatDate: function (format, date, settings) { - if (!date) { - return ""; - } - - var iFormat, - dayNamesShort = (settings ? settings.dayNamesShort : null) || this._defaults.dayNamesShort, - dayNames = (settings ? settings.dayNames : null) || this._defaults.dayNames, - monthNamesShort = (settings ? settings.monthNamesShort : null) || this._defaults.monthNamesShort, - monthNames = (settings ? settings.monthNames : null) || this._defaults.monthNames, - // Check whether a format character is doubled - lookAhead = function(match) { - var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) === match); - if (matches) { - iFormat++; - } - return matches; - }, - // Format a number, with leading zero if necessary - formatNumber = function(match, value, len) { - var num = "" + value; - if (lookAhead(match)) { - while (num.length < len) { - num = "0" + num; - } - } - return num; - }, - // Format a name, short or long as requested - formatName = function(match, value, shortNames, longNames) { - return (lookAhead(match) ? longNames[value] : shortNames[value]); - }, - output = "", - literal = false; - - if (date) { - for (iFormat = 0; iFormat < format.length; iFormat++) { - if (literal) { - if (format.charAt(iFormat) === "'" && !lookAhead("'")) { - literal = false; - } else { - output += format.charAt(iFormat); - } - } else { - switch (format.charAt(iFormat)) { - case "d": - output += formatNumber("d", date.getDate(), 2); - break; - case "D": - output += formatName("D", date.getDay(), dayNamesShort, dayNames); - break; - case "o": - output += formatNumber("o", - Math.round((new Date(date.getFullYear(), date.getMonth(), date.getDate()).getTime() - new Date(date.getFullYear(), 0, 0).getTime()) / 86400000), 3); - break; - case "m": - output += formatNumber("m", date.getMonth() + 1, 2); - break; - case "M": - output += formatName("M", date.getMonth(), monthNamesShort, monthNames); - break; - case "y": - output += (lookAhead("y") ? date.getFullYear() : - (date.getYear() % 100 < 10 ? "0" : "") + date.getYear() % 100); - break; - case "@": - output += date.getTime(); - break; - case "!": - output += date.getTime() * 10000 + this._ticksTo1970; - break; - case "'": - if (lookAhead("'")) { - output += "'"; - } else { - literal = true; - } - break; - default: - output += format.charAt(iFormat); - } - } - } - } - return output; - }, - - /* Extract all possible characters from the date format. */ - _possibleChars: function (format) { - var iFormat, - chars = "", - literal = false, - // Check whether a format character is doubled - lookAhead = function(match) { - var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) === match); - if (matches) { - iFormat++; - } - return matches; - }; - - for (iFormat = 0; iFormat < format.length; iFormat++) { - if (literal) { - if (format.charAt(iFormat) === "'" && !lookAhead("'")) { - literal = false; - } else { - chars += format.charAt(iFormat); - } - } else { - switch (format.charAt(iFormat)) { - case "d": case "m": case "y": case "@": - chars += "0123456789"; - break; - case "D": case "M": - return null; // Accept anything - case "'": - if (lookAhead("'")) { - chars += "'"; - } else { - literal = true; - } - break; - default: - chars += format.charAt(iFormat); - } - } - } - return chars; - }, - - /* Get a setting value, defaulting if necessary. */ - _get: function(inst, name) { - return inst.settings[name] !== undefined ? - inst.settings[name] : this._defaults[name]; - }, - - /* Parse existing date and initialise date picker. */ - _setDateFromField: function(inst, noDefault) { - if (inst.input.val() === inst.lastVal) { - return; - } - - var dateFormat = this._get(inst, "dateFormat"), - dates = inst.lastVal = inst.input ? inst.input.val() : null, - defaultDate = this._getDefaultDate(inst), - date = defaultDate, - settings = this._getFormatConfig(inst); - - try { - date = this.parseDate(dateFormat, dates, settings) || defaultDate; - } catch (event) { - dates = (noDefault ? "" : dates); - } - inst.selectedDay = date.getDate(); - inst.drawMonth = inst.selectedMonth = date.getMonth(); - inst.drawYear = inst.selectedYear = date.getFullYear(); - inst.currentDay = (dates ? date.getDate() : 0); - inst.currentMonth = (dates ? date.getMonth() : 0); - inst.currentYear = (dates ? date.getFullYear() : 0); - this._adjustInstDate(inst); - }, - - /* Retrieve the default date shown on opening. */ - _getDefaultDate: function(inst) { - return this._restrictMinMax(inst, - this._determineDate(inst, this._get(inst, "defaultDate"), new Date())); - }, - - /* A date may be specified as an exact value or a relative one. */ - _determineDate: function(inst, date, defaultDate) { - var offsetNumeric = function(offset) { - var date = new Date(); - date.setDate(date.getDate() + offset); - return date; - }, - offsetString = function(offset) { - try { - return $.datepicker.parseDate($.datepicker._get(inst, "dateFormat"), - offset, $.datepicker._getFormatConfig(inst)); - } - catch (e) { - // Ignore - } - - var date = (offset.toLowerCase().match(/^c/) ? - $.datepicker._getDate(inst) : null) || new Date(), - year = date.getFullYear(), - month = date.getMonth(), - day = date.getDate(), - pattern = /([+\-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g, - matches = pattern.exec(offset); - - while (matches) { - switch (matches[2] || "d") { - case "d" : case "D" : - day += parseInt(matches[1],10); break; - case "w" : case "W" : - day += parseInt(matches[1],10) * 7; break; - case "m" : case "M" : - month += parseInt(matches[1],10); - day = Math.min(day, $.datepicker._getDaysInMonth(year, month)); - break; - case "y": case "Y" : - year += parseInt(matches[1],10); - day = Math.min(day, $.datepicker._getDaysInMonth(year, month)); - break; - } - matches = pattern.exec(offset); - } - return new Date(year, month, day); - }, - newDate = (date == null || date === "" ? defaultDate : (typeof date === "string" ? offsetString(date) : - (typeof date === "number" ? (isNaN(date) ? defaultDate : offsetNumeric(date)) : new Date(date.getTime())))); - - newDate = (newDate && newDate.toString() === "Invalid Date" ? defaultDate : newDate); - if (newDate) { - newDate.setHours(0); - newDate.setMinutes(0); - newDate.setSeconds(0); - newDate.setMilliseconds(0); - } - return this._daylightSavingAdjust(newDate); - }, - - /* Handle switch to/from daylight saving. - * Hours may be non-zero on daylight saving cut-over: - * > 12 when midnight changeover, but then cannot generate - * midnight datetime, so jump to 1AM, otherwise reset. - * @param date (Date) the date to check - * @return (Date) the corrected date - */ - _daylightSavingAdjust: function(date) { - if (!date) { - return null; - } - date.setHours(date.getHours() > 12 ? date.getHours() + 2 : 0); - return date; - }, - - /* Set the date(s) directly. */ - _setDate: function(inst, date, noChange) { - var clear = !date, - origMonth = inst.selectedMonth, - origYear = inst.selectedYear, - newDate = this._restrictMinMax(inst, this._determineDate(inst, date, new Date())); - - inst.selectedDay = inst.currentDay = newDate.getDate(); - inst.drawMonth = inst.selectedMonth = inst.currentMonth = newDate.getMonth(); - inst.drawYear = inst.selectedYear = inst.currentYear = newDate.getFullYear(); - if ((origMonth !== inst.selectedMonth || origYear !== inst.selectedYear) && !noChange) { - this._notifyChange(inst); - } - this._adjustInstDate(inst); - if (inst.input) { - inst.input.val(clear ? "" : this._formatDate(inst)); - } - }, - - /* Retrieve the date(s) directly. */ - _getDate: function(inst) { - var startDate = (!inst.currentYear || (inst.input && inst.input.val() === "") ? null : - this._daylightSavingAdjust(new Date( - inst.currentYear, inst.currentMonth, inst.currentDay))); - return startDate; - }, - - /* Attach the onxxx handlers. These are declared statically so - * they work with static code transformers like Caja. - */ - _attachHandlers: function(inst) { - var stepMonths = this._get(inst, "stepMonths"), - id = "#" + inst.id.replace( /\\\\/g, "\\" ); - inst.dpDiv.find("[data-handler]").map(function () { - var handler = { - prev: function () { - $.datepicker._adjustDate(id, -stepMonths, "M"); - }, - next: function () { - $.datepicker._adjustDate(id, +stepMonths, "M"); - }, - hide: function () { - $.datepicker._hideDatepicker(); - }, - today: function () { - $.datepicker._gotoToday(id); - }, - selectDay: function () { - $.datepicker._selectDay(id, +this.getAttribute("data-month"), +this.getAttribute("data-year"), this); - return false; - }, - selectMonth: function () { - $.datepicker._selectMonthYear(id, this, "M"); - return false; - }, - selectYear: function () { - $.datepicker._selectMonthYear(id, this, "Y"); - return false; - } - }; - $(this).bind(this.getAttribute("data-event"), handler[this.getAttribute("data-handler")]); - }); - }, - - /* Generate the HTML for the current state of the date picker. */ - _generateHTML: function(inst) { - var maxDraw, prevText, prev, nextText, next, currentText, gotoDate, - controls, buttonPanel, firstDay, showWeek, dayNames, dayNamesMin, - monthNames, monthNamesShort, beforeShowDay, showOtherMonths, - selectOtherMonths, defaultDate, html, dow, row, group, col, selectedDate, - cornerClass, calender, thead, day, daysInMonth, leadDays, curRows, numRows, - printDate, dRow, tbody, daySettings, otherMonth, unselectable, - tempDate = new Date(), - today = this._daylightSavingAdjust( - new Date(tempDate.getFullYear(), tempDate.getMonth(), tempDate.getDate())), // clear time - isRTL = this._get(inst, "isRTL"), - showButtonPanel = this._get(inst, "showButtonPanel"), - hideIfNoPrevNext = this._get(inst, "hideIfNoPrevNext"), - navigationAsDateFormat = this._get(inst, "navigationAsDateFormat"), - numMonths = this._getNumberOfMonths(inst), - showCurrentAtPos = this._get(inst, "showCurrentAtPos"), - stepMonths = this._get(inst, "stepMonths"), - isMultiMonth = (numMonths[0] !== 1 || numMonths[1] !== 1), - currentDate = this._daylightSavingAdjust((!inst.currentDay ? new Date(9999, 9, 9) : - new Date(inst.currentYear, inst.currentMonth, inst.currentDay))), - minDate = this._getMinMaxDate(inst, "min"), - maxDate = this._getMinMaxDate(inst, "max"), - drawMonth = inst.drawMonth - showCurrentAtPos, - drawYear = inst.drawYear; - - if (drawMonth < 0) { - drawMonth += 12; - drawYear--; - } - if (maxDate) { - maxDraw = this._daylightSavingAdjust(new Date(maxDate.getFullYear(), - maxDate.getMonth() - (numMonths[0] * numMonths[1]) + 1, maxDate.getDate())); - maxDraw = (minDate && maxDraw < minDate ? minDate : maxDraw); - while (this._daylightSavingAdjust(new Date(drawYear, drawMonth, 1)) > maxDraw) { - drawMonth--; - if (drawMonth < 0) { - drawMonth = 11; - drawYear--; - } - } - } - inst.drawMonth = drawMonth; - inst.drawYear = drawYear; - - prevText = this._get(inst, "prevText"); - prevText = (!navigationAsDateFormat ? prevText : this.formatDate(prevText, - this._daylightSavingAdjust(new Date(drawYear, drawMonth - stepMonths, 1)), - this._getFormatConfig(inst))); - - prev = (this._canAdjustMonth(inst, -1, drawYear, drawMonth) ? - "" + prevText + "" : - (hideIfNoPrevNext ? "" : "" + prevText + "")); - - nextText = this._get(inst, "nextText"); - nextText = (!navigationAsDateFormat ? nextText : this.formatDate(nextText, - this._daylightSavingAdjust(new Date(drawYear, drawMonth + stepMonths, 1)), - this._getFormatConfig(inst))); - - next = (this._canAdjustMonth(inst, +1, drawYear, drawMonth) ? - "" + nextText + "" : - (hideIfNoPrevNext ? "" : "" + nextText + "")); - - currentText = this._get(inst, "currentText"); - gotoDate = (this._get(inst, "gotoCurrent") && inst.currentDay ? currentDate : today); - currentText = (!navigationAsDateFormat ? currentText : - this.formatDate(currentText, gotoDate, this._getFormatConfig(inst))); - - controls = (!inst.inline ? "" : ""); - - buttonPanel = (showButtonPanel) ? "
" + (isRTL ? controls : "") + - (this._isInRange(inst, gotoDate) ? "" : "") + (isRTL ? "" : controls) + "
" : ""; - - firstDay = parseInt(this._get(inst, "firstDay"),10); - firstDay = (isNaN(firstDay) ? 0 : firstDay); - - showWeek = this._get(inst, "showWeek"); - dayNames = this._get(inst, "dayNames"); - dayNamesMin = this._get(inst, "dayNamesMin"); - monthNames = this._get(inst, "monthNames"); - monthNamesShort = this._get(inst, "monthNamesShort"); - beforeShowDay = this._get(inst, "beforeShowDay"); - showOtherMonths = this._get(inst, "showOtherMonths"); - selectOtherMonths = this._get(inst, "selectOtherMonths"); - defaultDate = this._getDefaultDate(inst); - html = ""; - dow; - for (row = 0; row < numMonths[0]; row++) { - group = ""; - this.maxRows = 4; - for (col = 0; col < numMonths[1]; col++) { - selectedDate = this._daylightSavingAdjust(new Date(drawYear, drawMonth, inst.selectedDay)); - cornerClass = " ui-corner-all"; - calender = ""; - if (isMultiMonth) { - calender += "
"; - } - calender += "
" + - (/all|left/.test(cornerClass) && row === 0 ? (isRTL ? next : prev) : "") + - (/all|right/.test(cornerClass) && row === 0 ? (isRTL ? prev : next) : "") + - this._generateMonthYearHeader(inst, drawMonth, drawYear, minDate, maxDate, - row > 0 || col > 0, monthNames, monthNamesShort) + // draw month headers - "
" + - ""; - thead = (showWeek ? "" : ""); - for (dow = 0; dow < 7; dow++) { // days of the week - day = (dow + firstDay) % 7; - thead += ""; - } - calender += thead + ""; - daysInMonth = this._getDaysInMonth(drawYear, drawMonth); - if (drawYear === inst.selectedYear && drawMonth === inst.selectedMonth) { - inst.selectedDay = Math.min(inst.selectedDay, daysInMonth); - } - leadDays = (this._getFirstDayOfMonth(drawYear, drawMonth) - firstDay + 7) % 7; - curRows = Math.ceil((leadDays + daysInMonth) / 7); // calculate the number of rows to generate - numRows = (isMultiMonth ? this.maxRows > curRows ? this.maxRows : curRows : curRows); //If multiple months, use the higher number of rows (see #7043) - this.maxRows = numRows; - printDate = this._daylightSavingAdjust(new Date(drawYear, drawMonth, 1 - leadDays)); - for (dRow = 0; dRow < numRows; dRow++) { // create date picker rows - calender += ""; - tbody = (!showWeek ? "" : ""); - for (dow = 0; dow < 7; dow++) { // create date picker days - daySettings = (beforeShowDay ? - beforeShowDay.apply((inst.input ? inst.input[0] : null), [printDate]) : [true, ""]); - otherMonth = (printDate.getMonth() !== drawMonth); - unselectable = (otherMonth && !selectOtherMonths) || !daySettings[0] || - (minDate && printDate < minDate) || (maxDate && printDate > maxDate); - tbody += ""; // display selectable date - printDate.setDate(printDate.getDate() + 1); - printDate = this._daylightSavingAdjust(printDate); - } - calender += tbody + ""; - } - drawMonth++; - if (drawMonth > 11) { - drawMonth = 0; - drawYear++; - } - calender += "
" + this._get(inst, "weekHeader") + "= 5 ? " class='ui-datepicker-week-end'" : "") + ">" + - "" + dayNamesMin[day] + "
" + - this._get(inst, "calculateWeek")(printDate) + "" + // actions - (otherMonth && !showOtherMonths ? " " : // display for other months - (unselectable ? "" + printDate.getDate() + "" : "" + printDate.getDate() + "")) + "
" + (isMultiMonth ? "
" + - ((numMonths[0] > 0 && col === numMonths[1]-1) ? "
" : "") : ""); - group += calender; - } - html += group; - } - html += buttonPanel; - inst._keyEvent = false; - return html; - }, - - /* Generate the month and year header. */ - _generateMonthYearHeader: function(inst, drawMonth, drawYear, minDate, maxDate, - secondary, monthNames, monthNamesShort) { - - var inMinYear, inMaxYear, month, years, thisYear, determineYear, year, endYear, - changeMonth = this._get(inst, "changeMonth"), - changeYear = this._get(inst, "changeYear"), - showMonthAfterYear = this._get(inst, "showMonthAfterYear"), - html = "
", - monthHtml = ""; - - // month selection - if (secondary || !changeMonth) { - monthHtml += "" + monthNames[drawMonth] + ""; - } else { - inMinYear = (minDate && minDate.getFullYear() === drawYear); - inMaxYear = (maxDate && maxDate.getFullYear() === drawYear); - monthHtml += ""; - } - - if (!showMonthAfterYear) { - html += monthHtml + (secondary || !(changeMonth && changeYear) ? " " : ""); - } - - // year selection - if ( !inst.yearshtml ) { - inst.yearshtml = ""; - if (secondary || !changeYear) { - html += "" + drawYear + ""; - } else { - // determine range of years to display - years = this._get(inst, "yearRange").split(":"); - thisYear = new Date().getFullYear(); - determineYear = function(value) { - var year = (value.match(/c[+\-].*/) ? drawYear + parseInt(value.substring(1), 10) : - (value.match(/[+\-].*/) ? thisYear + parseInt(value, 10) : - parseInt(value, 10))); - return (isNaN(year) ? thisYear : year); - }; - year = determineYear(years[0]); - endYear = Math.max(year, determineYear(years[1] || "")); - year = (minDate ? Math.max(year, minDate.getFullYear()) : year); - endYear = (maxDate ? Math.min(endYear, maxDate.getFullYear()) : endYear); - inst.yearshtml += ""; - - html += inst.yearshtml; - inst.yearshtml = null; - } - } - - html += this._get(inst, "yearSuffix"); - if (showMonthAfterYear) { - html += (secondary || !(changeMonth && changeYear) ? " " : "") + monthHtml; - } - html += "
"; // Close datepicker_header - return html; - }, - - /* Adjust one of the date sub-fields. */ - _adjustInstDate: function(inst, offset, period) { - var year = inst.drawYear + (period === "Y" ? offset : 0), - month = inst.drawMonth + (period === "M" ? offset : 0), - day = Math.min(inst.selectedDay, this._getDaysInMonth(year, month)) + (period === "D" ? offset : 0), - date = this._restrictMinMax(inst, this._daylightSavingAdjust(new Date(year, month, day))); - - inst.selectedDay = date.getDate(); - inst.drawMonth = inst.selectedMonth = date.getMonth(); - inst.drawYear = inst.selectedYear = date.getFullYear(); - if (period === "M" || period === "Y") { - this._notifyChange(inst); - } - }, - - /* Ensure a date is within any min/max bounds. */ - _restrictMinMax: function(inst, date) { - var minDate = this._getMinMaxDate(inst, "min"), - maxDate = this._getMinMaxDate(inst, "max"), - newDate = (minDate && date < minDate ? minDate : date); - return (maxDate && newDate > maxDate ? maxDate : newDate); - }, - - /* Notify change of month/year. */ - _notifyChange: function(inst) { - var onChange = this._get(inst, "onChangeMonthYear"); - if (onChange) { - onChange.apply((inst.input ? inst.input[0] : null), - [inst.selectedYear, inst.selectedMonth + 1, inst]); - } - }, - - /* Determine the number of months to show. */ - _getNumberOfMonths: function(inst) { - var numMonths = this._get(inst, "numberOfMonths"); - return (numMonths == null ? [1, 1] : (typeof numMonths === "number" ? [1, numMonths] : numMonths)); - }, - - /* Determine the current maximum date - ensure no time components are set. */ - _getMinMaxDate: function(inst, minMax) { - return this._determineDate(inst, this._get(inst, minMax + "Date"), null); - }, - - /* Find the number of days in a given month. */ - _getDaysInMonth: function(year, month) { - return 32 - this._daylightSavingAdjust(new Date(year, month, 32)).getDate(); - }, - - /* Find the day of the week of the first of a month. */ - _getFirstDayOfMonth: function(year, month) { - return new Date(year, month, 1).getDay(); - }, - - /* Determines if we should allow a "next/prev" month display change. */ - _canAdjustMonth: function(inst, offset, curYear, curMonth) { - var numMonths = this._getNumberOfMonths(inst), - date = this._daylightSavingAdjust(new Date(curYear, - curMonth + (offset < 0 ? offset : numMonths[0] * numMonths[1]), 1)); - - if (offset < 0) { - date.setDate(this._getDaysInMonth(date.getFullYear(), date.getMonth())); - } - return this._isInRange(inst, date); - }, - - /* Is the given date in the accepted range? */ - _isInRange: function(inst, date) { - var yearSplit, currentYear, - minDate = this._getMinMaxDate(inst, "min"), - maxDate = this._getMinMaxDate(inst, "max"), - minYear = null, - maxYear = null, - years = this._get(inst, "yearRange"); - if (years){ - yearSplit = years.split(":"); - currentYear = new Date().getFullYear(); - minYear = parseInt(yearSplit[0], 10); - maxYear = parseInt(yearSplit[1], 10); - if ( yearSplit[0].match(/[+\-].*/) ) { - minYear += currentYear; - } - if ( yearSplit[1].match(/[+\-].*/) ) { - maxYear += currentYear; - } - } - - return ((!minDate || date.getTime() >= minDate.getTime()) && - (!maxDate || date.getTime() <= maxDate.getTime()) && - (!minYear || date.getFullYear() >= minYear) && - (!maxYear || date.getFullYear() <= maxYear)); - }, - - /* Provide the configuration settings for formatting/parsing. */ - _getFormatConfig: function(inst) { - var shortYearCutoff = this._get(inst, "shortYearCutoff"); - shortYearCutoff = (typeof shortYearCutoff !== "string" ? shortYearCutoff : - new Date().getFullYear() % 100 + parseInt(shortYearCutoff, 10)); - return {shortYearCutoff: shortYearCutoff, - dayNamesShort: this._get(inst, "dayNamesShort"), dayNames: this._get(inst, "dayNames"), - monthNamesShort: this._get(inst, "monthNamesShort"), monthNames: this._get(inst, "monthNames")}; - }, - - /* Format the given date for display. */ - _formatDate: function(inst, day, month, year) { - if (!day) { - inst.currentDay = inst.selectedDay; - inst.currentMonth = inst.selectedMonth; - inst.currentYear = inst.selectedYear; - } - var date = (day ? (typeof day === "object" ? day : - this._daylightSavingAdjust(new Date(year, month, day))) : - this._daylightSavingAdjust(new Date(inst.currentYear, inst.currentMonth, inst.currentDay))); - return this.formatDate(this._get(inst, "dateFormat"), date, this._getFormatConfig(inst)); - } -}); - -/* - * Bind hover events for datepicker elements. - * Done via delegate so the binding only occurs once in the lifetime of the parent div. - * Global datepicker_instActive, set by _updateDatepicker allows the handlers to find their way back to the active picker. - */ -function datepicker_bindHover(dpDiv) { - var selector = "button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a"; - return dpDiv.delegate(selector, "mouseout", function() { - $(this).removeClass("ui-state-hover"); - if (this.className.indexOf("ui-datepicker-prev") !== -1) { - $(this).removeClass("ui-datepicker-prev-hover"); - } - if (this.className.indexOf("ui-datepicker-next") !== -1) { - $(this).removeClass("ui-datepicker-next-hover"); - } - }) - .delegate( selector, "mouseover", datepicker_handleMouseover ); -} - -function datepicker_handleMouseover() { - if (!$.datepicker._isDisabledDatepicker( datepicker_instActive.inline? datepicker_instActive.dpDiv.parent()[0] : datepicker_instActive.input[0])) { - $(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"); - $(this).addClass("ui-state-hover"); - if (this.className.indexOf("ui-datepicker-prev") !== -1) { - $(this).addClass("ui-datepicker-prev-hover"); - } - if (this.className.indexOf("ui-datepicker-next") !== -1) { - $(this).addClass("ui-datepicker-next-hover"); - } - } -} - -/* jQuery extend now ignores nulls! */ -function datepicker_extendRemove(target, props) { - $.extend(target, props); - for (var name in props) { - if (props[name] == null) { - target[name] = props[name]; - } - } - return target; -} - -/* Invoke the datepicker functionality. - @param options string - a command, optionally followed by additional parameters or - Object - settings for attaching new datepicker functionality - @return jQuery object */ -$.fn.datepicker = function(options){ - - /* Verify an empty collection wasn't passed - Fixes #6976 */ - if ( !this.length ) { - return this; - } - - /* Initialise the date picker. */ - if (!$.datepicker.initialized) { - $(document).mousedown($.datepicker._checkExternalClick); - $.datepicker.initialized = true; - } - - /* Append datepicker main container to body if not exist. */ - if ($("#"+$.datepicker._mainDivId).length === 0) { - $("body").append($.datepicker.dpDiv); - } - - var otherArgs = Array.prototype.slice.call(arguments, 1); - if (typeof options === "string" && (options === "isDisabled" || options === "getDate" || options === "widget")) { - return $.datepicker["_" + options + "Datepicker"]. - apply($.datepicker, [this[0]].concat(otherArgs)); - } - if (options === "option" && arguments.length === 2 && typeof arguments[1] === "string") { - return $.datepicker["_" + options + "Datepicker"]. - apply($.datepicker, [this[0]].concat(otherArgs)); - } - return this.each(function() { - typeof options === "string" ? - $.datepicker["_" + options + "Datepicker"]. - apply($.datepicker, [this].concat(otherArgs)) : - $.datepicker._attachDatepicker(this, options); - }); -}; - -$.datepicker = new Datepicker(); // singleton instance -$.datepicker.initialized = false; -$.datepicker.uuid = new Date().getTime(); -$.datepicker.version = "1.11.4"; - -return $.datepicker; - -})); diff --git a/app/assets/javascripts/jquery-ui/disable-selection.js b/app/assets/javascripts/jquery-ui/disable-selection.js new file mode 100644 index 00000000..ca89e9aa --- /dev/null +++ b/app/assets/javascripts/jquery-ui/disable-selection.js @@ -0,0 +1,48 @@ +//= require jquery-ui/version + +/*! + * jQuery UI Disable Selection 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: disableSelection +//>>group: Core +//>>description: Disable selection of text content within the set of matched elements. +//>>docs: http://api.jqueryui.com/disableSelection/ + +// This file is deprecated +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "jquery", "./version" ], factory ); + } else { + + // Browser globals + factory( jQuery ); + } +} ( function( $ ) { + +return $.fn.extend( { + disableSelection: ( function() { + var eventType = "onselectstart" in document.createElement( "div" ) ? + "selectstart" : + "mousedown"; + + return function() { + return this.on( eventType + ".ui-disableSelection", function( event ) { + event.preventDefault(); + } ); + }; + } )(), + + enableSelection: function() { + return this.off( ".ui-disableSelection" ); + } +} ); + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/effect-blind.js b/app/assets/javascripts/jquery-ui/effect-blind.js deleted file mode 100644 index 0f8be493..00000000 --- a/app/assets/javascripts/jquery-ui/effect-blind.js +++ /dev/null @@ -1,92 +0,0 @@ -//= require jquery-ui/effect - -/*! - * jQuery UI Effects Blind 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/blind-effect/ - */ -(function( factory ) { - if ( typeof define === "function" && define.amd ) { - - // AMD. Register as an anonymous module. - define([ - "jquery", - "./effect" - ], factory ); - } else { - - // Browser globals - factory( jQuery ); - } -}(function( $ ) { - -return $.effects.effect.blind = function( o, done ) { - // Create element - var el = $( this ), - rvertical = /up|down|vertical/, - rpositivemotion = /up|left|vertical|horizontal/, - props = [ "position", "top", "bottom", "left", "right", "height", "width" ], - mode = $.effects.setMode( el, o.mode || "hide" ), - direction = o.direction || "up", - vertical = rvertical.test( direction ), - ref = vertical ? "height" : "width", - ref2 = vertical ? "top" : "left", - motion = rpositivemotion.test( direction ), - animation = {}, - show = mode === "show", - wrapper, distance, margin; - - // if already wrapped, the wrapper's properties are my property. #6245 - if ( el.parent().is( ".ui-effects-wrapper" ) ) { - $.effects.save( el.parent(), props ); - } else { - $.effects.save( el, props ); - } - el.show(); - wrapper = $.effects.createWrapper( el ).css({ - overflow: "hidden" - }); - - distance = wrapper[ ref ](); - margin = parseFloat( wrapper.css( ref2 ) ) || 0; - - animation[ ref ] = show ? distance : 0; - if ( !motion ) { - el - .css( vertical ? "bottom" : "right", 0 ) - .css( vertical ? "top" : "left", "auto" ) - .css({ position: "absolute" }); - - animation[ ref2 ] = show ? margin : distance + margin; - } - - // start at 0 if we are showing - if ( show ) { - wrapper.css( ref, 0 ); - if ( !motion ) { - wrapper.css( ref2, margin + distance ); - } - } - - // Animate - wrapper.animate( animation, { - duration: o.duration, - easing: o.easing, - queue: false, - complete: function() { - if ( mode === "hide" ) { - el.hide(); - } - $.effects.restore( el, props ); - $.effects.removeWrapper( el ); - done(); - } - }); -}; - -})); diff --git a/app/assets/javascripts/jquery-ui/effect-bounce.js b/app/assets/javascripts/jquery-ui/effect-bounce.js deleted file mode 100644 index 68117911..00000000 --- a/app/assets/javascripts/jquery-ui/effect-bounce.js +++ /dev/null @@ -1,125 +0,0 @@ -//= require jquery-ui/effect - -/*! - * jQuery UI Effects Bounce 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/bounce-effect/ - */ -(function( factory ) { - if ( typeof define === "function" && define.amd ) { - - // AMD. Register as an anonymous module. - define([ - "jquery", - "./effect" - ], factory ); - } else { - - // Browser globals - factory( jQuery ); - } -}(function( $ ) { - -return $.effects.effect.bounce = function( o, done ) { - var el = $( this ), - props = [ "position", "top", "bottom", "left", "right", "height", "width" ], - - // defaults: - mode = $.effects.setMode( el, o.mode || "effect" ), - hide = mode === "hide", - show = mode === "show", - direction = o.direction || "up", - distance = o.distance, - times = o.times || 5, - - // number of internal animations - anims = times * 2 + ( show || hide ? 1 : 0 ), - speed = o.duration / anims, - easing = o.easing, - - // utility: - ref = ( direction === "up" || direction === "down" ) ? "top" : "left", - motion = ( direction === "up" || direction === "left" ), - i, - upAnim, - downAnim, - - // we will need to re-assemble the queue to stack our animations in place - queue = el.queue(), - queuelen = queue.length; - - // Avoid touching opacity to prevent clearType and PNG issues in IE - if ( show || hide ) { - props.push( "opacity" ); - } - - $.effects.save( el, props ); - el.show(); - $.effects.createWrapper( el ); // Create Wrapper - - // default distance for the BIGGEST bounce is the outer Distance / 3 - if ( !distance ) { - distance = el[ ref === "top" ? "outerHeight" : "outerWidth" ]() / 3; - } - - if ( show ) { - downAnim = { opacity: 1 }; - downAnim[ ref ] = 0; - - // if we are showing, force opacity 0 and set the initial position - // then do the "first" animation - el.css( "opacity", 0 ) - .css( ref, motion ? -distance * 2 : distance * 2 ) - .animate( downAnim, speed, easing ); - } - - // start at the smallest distance if we are hiding - if ( hide ) { - distance = distance / Math.pow( 2, times - 1 ); - } - - downAnim = {}; - downAnim[ ref ] = 0; - // Bounces up/down/left/right then back to 0 -- times * 2 animations happen here - for ( i = 0; i < times; i++ ) { - upAnim = {}; - upAnim[ ref ] = ( motion ? "-=" : "+=" ) + distance; - - el.animate( upAnim, speed, easing ) - .animate( downAnim, speed, easing ); - - distance = hide ? distance * 2 : distance / 2; - } - - // Last Bounce when Hiding - if ( hide ) { - upAnim = { opacity: 0 }; - upAnim[ ref ] = ( motion ? "-=" : "+=" ) + distance; - - el.animate( upAnim, speed, easing ); - } - - el.queue(function() { - if ( hide ) { - el.hide(); - } - $.effects.restore( el, props ); - $.effects.removeWrapper( el ); - done(); - }); - - // inject all the animations we just queued to be first in line (after "inprogress") - if ( queuelen > 1) { - queue.splice.apply( queue, - [ 1, 0 ].concat( queue.splice( queuelen, anims + 1 ) ) ); - } - el.dequeue(); - -}; - -})); diff --git a/app/assets/javascripts/jquery-ui/effect-clip.js b/app/assets/javascripts/jquery-ui/effect-clip.js deleted file mode 100644 index a30536a6..00000000 --- a/app/assets/javascripts/jquery-ui/effect-clip.js +++ /dev/null @@ -1,79 +0,0 @@ -//= require jquery-ui/effect - -/*! - * jQuery UI Effects Clip 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/clip-effect/ - */ -(function( factory ) { - if ( typeof define === "function" && define.amd ) { - - // AMD. Register as an anonymous module. - define([ - "jquery", - "./effect" - ], factory ); - } else { - - // Browser globals - factory( jQuery ); - } -}(function( $ ) { - -return $.effects.effect.clip = function( o, done ) { - // Create element - var el = $( this ), - props = [ "position", "top", "bottom", "left", "right", "height", "width" ], - mode = $.effects.setMode( el, o.mode || "hide" ), - show = mode === "show", - direction = o.direction || "vertical", - vert = direction === "vertical", - size = vert ? "height" : "width", - position = vert ? "top" : "left", - animation = {}, - wrapper, animate, distance; - - // Save & Show - $.effects.save( el, props ); - el.show(); - - // Create Wrapper - wrapper = $.effects.createWrapper( el ).css({ - overflow: "hidden" - }); - animate = ( el[0].tagName === "IMG" ) ? wrapper : el; - distance = animate[ size ](); - - // Shift - if ( show ) { - animate.css( size, 0 ); - animate.css( position, distance / 2 ); - } - - // Create Animation Object: - animation[ size ] = show ? distance : 0; - animation[ position ] = show ? 0 : distance / 2; - - // Animate - animate.animate( animation, { - queue: false, - duration: o.duration, - easing: o.easing, - complete: function() { - if ( !show ) { - el.hide(); - } - $.effects.restore( el, props ); - $.effects.removeWrapper( el ); - done(); - } - }); - -}; - -})); diff --git a/app/assets/javascripts/jquery-ui/effect-drop.js b/app/assets/javascripts/jquery-ui/effect-drop.js deleted file mode 100644 index 1ef3d9f9..00000000 --- a/app/assets/javascripts/jquery-ui/effect-drop.js +++ /dev/null @@ -1,77 +0,0 @@ -//= require jquery-ui/effect - -/*! - * jQuery UI Effects Drop 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/drop-effect/ - */ -(function( factory ) { - if ( typeof define === "function" && define.amd ) { - - // AMD. Register as an anonymous module. - define([ - "jquery", - "./effect" - ], factory ); - } else { - - // Browser globals - factory( jQuery ); - } -}(function( $ ) { - -return $.effects.effect.drop = function( o, done ) { - - var el = $( this ), - props = [ "position", "top", "bottom", "left", "right", "opacity", "height", "width" ], - mode = $.effects.setMode( el, o.mode || "hide" ), - show = mode === "show", - direction = o.direction || "left", - ref = ( direction === "up" || direction === "down" ) ? "top" : "left", - motion = ( direction === "up" || direction === "left" ) ? "pos" : "neg", - animation = { - opacity: show ? 1 : 0 - }, - distance; - - // Adjust - $.effects.save( el, props ); - el.show(); - $.effects.createWrapper( el ); - - distance = o.distance || el[ ref === "top" ? "outerHeight" : "outerWidth" ]( true ) / 2; - - if ( show ) { - el - .css( "opacity", 0 ) - .css( ref, motion === "pos" ? -distance : distance ); - } - - // Animation - animation[ ref ] = ( show ? - ( motion === "pos" ? "+=" : "-=" ) : - ( motion === "pos" ? "-=" : "+=" ) ) + - distance; - - // Animate - el.animate( animation, { - queue: false, - duration: o.duration, - easing: o.easing, - complete: function() { - if ( mode === "hide" ) { - el.hide(); - } - $.effects.restore( el, props ); - $.effects.removeWrapper( el ); - done(); - } - }); -}; - -})); diff --git a/app/assets/javascripts/jquery-ui/effect-explode.js b/app/assets/javascripts/jquery-ui/effect-explode.js deleted file mode 100644 index a0484730..00000000 --- a/app/assets/javascripts/jquery-ui/effect-explode.js +++ /dev/null @@ -1,109 +0,0 @@ -//= require jquery-ui/effect - -/*! - * jQuery UI Effects Explode 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/explode-effect/ - */ -(function( factory ) { - if ( typeof define === "function" && define.amd ) { - - // AMD. Register as an anonymous module. - define([ - "jquery", - "./effect" - ], factory ); - } else { - - // Browser globals - factory( jQuery ); - } -}(function( $ ) { - -return $.effects.effect.explode = function( o, done ) { - - var rows = o.pieces ? Math.round( Math.sqrt( o.pieces ) ) : 3, - cells = rows, - el = $( this ), - mode = $.effects.setMode( el, o.mode || "hide" ), - show = mode === "show", - - // show and then visibility:hidden the element before calculating offset - offset = el.show().css( "visibility", "hidden" ).offset(), - - // width and height of a piece - width = Math.ceil( el.outerWidth() / cells ), - height = Math.ceil( el.outerHeight() / rows ), - pieces = [], - - // loop - i, j, left, top, mx, my; - - // children animate complete: - function childComplete() { - pieces.push( this ); - if ( pieces.length === rows * cells ) { - animComplete(); - } - } - - // clone the element for each row and cell. - for ( i = 0; i < rows ; i++ ) { // ===> - top = offset.top + i * height; - my = i - ( rows - 1 ) / 2 ; - - for ( j = 0; j < cells ; j++ ) { // ||| - left = offset.left + j * width; - mx = j - ( cells - 1 ) / 2 ; - - // Create a clone of the now hidden main element that will be absolute positioned - // within a wrapper div off the -left and -top equal to size of our pieces - el - .clone() - .appendTo( "body" ) - .wrap( "
" ) - .css({ - position: "absolute", - visibility: "visible", - left: -j * width, - top: -i * height - }) - - // select the wrapper - make it overflow: hidden and absolute positioned based on - // where the original was located +left and +top equal to the size of pieces - .parent() - .addClass( "ui-effects-explode" ) - .css({ - position: "absolute", - overflow: "hidden", - width: width, - height: height, - left: left + ( show ? mx * width : 0 ), - top: top + ( show ? my * height : 0 ), - opacity: show ? 0 : 1 - }).animate({ - left: left + ( show ? 0 : mx * width ), - top: top + ( show ? 0 : my * height ), - opacity: show ? 1 : 0 - }, o.duration || 500, o.easing, childComplete ); - } - } - - function animComplete() { - el.css({ - visibility: "visible" - }); - $( pieces ).remove(); - if ( !show ) { - el.hide(); - } - done(); - } -}; - -})); diff --git a/app/assets/javascripts/jquery-ui/effect-fade.js b/app/assets/javascripts/jquery-ui/effect-fade.js deleted file mode 100644 index 1846c19d..00000000 --- a/app/assets/javascripts/jquery-ui/effect-fade.js +++ /dev/null @@ -1,42 +0,0 @@ -//= require jquery-ui/effect - -/*! - * jQuery UI Effects Fade 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/fade-effect/ - */ -(function( factory ) { - if ( typeof define === "function" && define.amd ) { - - // AMD. Register as an anonymous module. - define([ - "jquery", - "./effect" - ], factory ); - } else { - - // Browser globals - factory( jQuery ); - } -}(function( $ ) { - -return $.effects.effect.fade = function( o, done ) { - var el = $( this ), - mode = $.effects.setMode( el, o.mode || "toggle" ); - - el.animate({ - opacity: mode - }, { - queue: false, - duration: o.duration, - easing: o.easing, - complete: done - }); -}; - -})); diff --git a/app/assets/javascripts/jquery-ui/effect-fold.js b/app/assets/javascripts/jquery-ui/effect-fold.js deleted file mode 100644 index ddd8c991..00000000 --- a/app/assets/javascripts/jquery-ui/effect-fold.js +++ /dev/null @@ -1,88 +0,0 @@ -//= require jquery-ui/effect - -/*! - * jQuery UI Effects Fold 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/fold-effect/ - */ -(function( factory ) { - if ( typeof define === "function" && define.amd ) { - - // AMD. Register as an anonymous module. - define([ - "jquery", - "./effect" - ], factory ); - } else { - - // Browser globals - factory( jQuery ); - } -}(function( $ ) { - -return $.effects.effect.fold = function( o, done ) { - - // Create element - var el = $( this ), - props = [ "position", "top", "bottom", "left", "right", "height", "width" ], - mode = $.effects.setMode( el, o.mode || "hide" ), - show = mode === "show", - hide = mode === "hide", - size = o.size || 15, - percent = /([0-9]+)%/.exec( size ), - horizFirst = !!o.horizFirst, - widthFirst = show !== horizFirst, - ref = widthFirst ? [ "width", "height" ] : [ "height", "width" ], - duration = o.duration / 2, - wrapper, distance, - animation1 = {}, - animation2 = {}; - - $.effects.save( el, props ); - el.show(); - - // Create Wrapper - wrapper = $.effects.createWrapper( el ).css({ - overflow: "hidden" - }); - distance = widthFirst ? - [ wrapper.width(), wrapper.height() ] : - [ wrapper.height(), wrapper.width() ]; - - if ( percent ) { - size = parseInt( percent[ 1 ], 10 ) / 100 * distance[ hide ? 0 : 1 ]; - } - if ( show ) { - wrapper.css( horizFirst ? { - height: 0, - width: size - } : { - height: size, - width: 0 - }); - } - - // Animation - animation1[ ref[ 0 ] ] = show ? distance[ 0 ] : size; - animation2[ ref[ 1 ] ] = show ? distance[ 1 ] : 0; - - // Animate - wrapper - .animate( animation1, duration, o.easing ) - .animate( animation2, duration, o.easing, function() { - if ( hide ) { - el.hide(); - } - $.effects.restore( el, props ); - $.effects.removeWrapper( el ); - done(); - }); - -}; - -})); diff --git a/app/assets/javascripts/jquery-ui/effect-highlight.js b/app/assets/javascripts/jquery-ui/effect-highlight.js deleted file mode 100644 index a6a4c913..00000000 --- a/app/assets/javascripts/jquery-ui/effect-highlight.js +++ /dev/null @@ -1,62 +0,0 @@ -//= require jquery-ui/effect - -/*! - * jQuery UI Effects Highlight 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/highlight-effect/ - */ -(function( factory ) { - if ( typeof define === "function" && define.amd ) { - - // AMD. Register as an anonymous module. - define([ - "jquery", - "./effect" - ], factory ); - } else { - - // Browser globals - factory( jQuery ); - } -}(function( $ ) { - -return $.effects.effect.highlight = function( o, done ) { - var elem = $( this ), - props = [ "backgroundImage", "backgroundColor", "opacity" ], - mode = $.effects.setMode( elem, o.mode || "show" ), - animation = { - backgroundColor: elem.css( "backgroundColor" ) - }; - - if (mode === "hide") { - animation.opacity = 0; - } - - $.effects.save( elem, props ); - - elem - .show() - .css({ - backgroundImage: "none", - backgroundColor: o.color || "#ffff99" - }) - .animate( animation, { - queue: false, - duration: o.duration, - easing: o.easing, - complete: function() { - if ( mode === "hide" ) { - elem.hide(); - } - $.effects.restore( elem, props ); - done(); - } - }); -}; - -})); diff --git a/app/assets/javascripts/jquery-ui/effect-puff.js b/app/assets/javascripts/jquery-ui/effect-puff.js deleted file mode 100644 index 184169e2..00000000 --- a/app/assets/javascripts/jquery-ui/effect-puff.js +++ /dev/null @@ -1,63 +0,0 @@ -//= require jquery-ui/effect -//= require jquery-ui/effect-scale - -/*! - * jQuery UI Effects Puff 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/puff-effect/ - */ -(function( factory ) { - if ( typeof define === "function" && define.amd ) { - - // AMD. Register as an anonymous module. - define([ - "jquery", - "./effect", - "./effect-scale" - ], factory ); - } else { - - // Browser globals - factory( jQuery ); - } -}(function( $ ) { - -return $.effects.effect.puff = function( o, done ) { - var elem = $( this ), - mode = $.effects.setMode( elem, o.mode || "hide" ), - hide = mode === "hide", - percent = parseInt( o.percent, 10 ) || 150, - factor = percent / 100, - original = { - height: elem.height(), - width: elem.width(), - outerHeight: elem.outerHeight(), - outerWidth: elem.outerWidth() - }; - - $.extend( o, { - effect: "scale", - queue: false, - fade: true, - mode: mode, - complete: done, - percent: hide ? percent : 100, - from: hide ? - original : - { - height: original.height * factor, - width: original.width * factor, - outerHeight: original.outerHeight * factor, - outerWidth: original.outerWidth * factor - } - }); - - elem.effect( o ); -}; - -})); diff --git a/app/assets/javascripts/jquery-ui/effect-pulsate.js b/app/assets/javascripts/jquery-ui/effect-pulsate.js deleted file mode 100644 index 13b3ae44..00000000 --- a/app/assets/javascripts/jquery-ui/effect-pulsate.js +++ /dev/null @@ -1,75 +0,0 @@ -//= require jquery-ui/effect - -/*! - * jQuery UI Effects Pulsate 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/pulsate-effect/ - */ -(function( factory ) { - if ( typeof define === "function" && define.amd ) { - - // AMD. Register as an anonymous module. - define([ - "jquery", - "./effect" - ], factory ); - } else { - - // Browser globals - factory( jQuery ); - } -}(function( $ ) { - -return $.effects.effect.pulsate = function( o, done ) { - var elem = $( this ), - mode = $.effects.setMode( elem, o.mode || "show" ), - show = mode === "show", - hide = mode === "hide", - showhide = ( show || mode === "hide" ), - - // showing or hiding leaves of the "last" animation - anims = ( ( o.times || 5 ) * 2 ) + ( showhide ? 1 : 0 ), - duration = o.duration / anims, - animateTo = 0, - queue = elem.queue(), - queuelen = queue.length, - i; - - if ( show || !elem.is(":visible")) { - elem.css( "opacity", 0 ).show(); - animateTo = 1; - } - - // anims - 1 opacity "toggles" - for ( i = 1; i < anims; i++ ) { - elem.animate({ - opacity: animateTo - }, duration, o.easing ); - animateTo = 1 - animateTo; - } - - elem.animate({ - opacity: animateTo - }, duration, o.easing); - - elem.queue(function() { - if ( hide ) { - elem.hide(); - } - done(); - }); - - // We just queued up "anims" animations, we need to put them next in the queue - if ( queuelen > 1 ) { - queue.splice.apply( queue, - [ 1, 0 ].concat( queue.splice( queuelen, anims + 1 ) ) ); - } - elem.dequeue(); -}; - -})); diff --git a/app/assets/javascripts/jquery-ui/effect-scale.js b/app/assets/javascripts/jquery-ui/effect-scale.js deleted file mode 100644 index 0bede7f6..00000000 --- a/app/assets/javascripts/jquery-ui/effect-scale.js +++ /dev/null @@ -1,92 +0,0 @@ -//= require jquery-ui/effect -//= require jquery-ui/effect-size - -/*! - * jQuery UI Effects Scale 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/scale-effect/ - */ -(function( factory ) { - if ( typeof define === "function" && define.amd ) { - - // AMD. Register as an anonymous module. - define([ - "jquery", - "./effect", - "./effect-size" - ], factory ); - } else { - - // Browser globals - factory( jQuery ); - } -}(function( $ ) { - -return $.effects.effect.scale = function( o, done ) { - - // Create element - var el = $( this ), - options = $.extend( true, {}, o ), - mode = $.effects.setMode( el, o.mode || "effect" ), - percent = parseInt( o.percent, 10 ) || - ( parseInt( o.percent, 10 ) === 0 ? 0 : ( mode === "hide" ? 0 : 100 ) ), - direction = o.direction || "both", - origin = o.origin, - original = { - height: el.height(), - width: el.width(), - outerHeight: el.outerHeight(), - outerWidth: el.outerWidth() - }, - factor = { - y: direction !== "horizontal" ? (percent / 100) : 1, - x: direction !== "vertical" ? (percent / 100) : 1 - }; - - // We are going to pass this effect to the size effect: - options.effect = "size"; - options.queue = false; - options.complete = done; - - // Set default origin and restore for show/hide - if ( mode !== "effect" ) { - options.origin = origin || [ "middle", "center" ]; - options.restore = true; - } - - options.from = o.from || ( mode === "show" ? { - height: 0, - width: 0, - outerHeight: 0, - outerWidth: 0 - } : original ); - options.to = { - height: original.height * factor.y, - width: original.width * factor.x, - outerHeight: original.outerHeight * factor.y, - outerWidth: original.outerWidth * factor.x - }; - - // Fade option to support puff - if ( options.fade ) { - if ( mode === "show" ) { - options.from.opacity = 0; - options.to.opacity = 1; - } - if ( mode === "hide" ) { - options.from.opacity = 1; - options.to.opacity = 0; - } - } - - // Animate - el.effect( options ); - -}; - -})); diff --git a/app/assets/javascripts/jquery-ui/effect-shake.js b/app/assets/javascripts/jquery-ui/effect-shake.js deleted file mode 100644 index 3f8ae4d2..00000000 --- a/app/assets/javascripts/jquery-ui/effect-shake.js +++ /dev/null @@ -1,86 +0,0 @@ -//= require jquery-ui/effect - -/*! - * jQuery UI Effects Shake 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/shake-effect/ - */ -(function( factory ) { - if ( typeof define === "function" && define.amd ) { - - // AMD. Register as an anonymous module. - define([ - "jquery", - "./effect" - ], factory ); - } else { - - // Browser globals - factory( jQuery ); - } -}(function( $ ) { - -return $.effects.effect.shake = function( o, done ) { - - var el = $( this ), - props = [ "position", "top", "bottom", "left", "right", "height", "width" ], - mode = $.effects.setMode( el, o.mode || "effect" ), - direction = o.direction || "left", - distance = o.distance || 20, - times = o.times || 3, - anims = times * 2 + 1, - speed = Math.round( o.duration / anims ), - ref = (direction === "up" || direction === "down") ? "top" : "left", - positiveMotion = (direction === "up" || direction === "left"), - animation = {}, - animation1 = {}, - animation2 = {}, - i, - - // we will need to re-assemble the queue to stack our animations in place - queue = el.queue(), - queuelen = queue.length; - - $.effects.save( el, props ); - el.show(); - $.effects.createWrapper( el ); - - // Animation - animation[ ref ] = ( positiveMotion ? "-=" : "+=" ) + distance; - animation1[ ref ] = ( positiveMotion ? "+=" : "-=" ) + distance * 2; - animation2[ ref ] = ( positiveMotion ? "-=" : "+=" ) + distance * 2; - - // Animate - el.animate( animation, speed, o.easing ); - - // Shakes - for ( i = 1; i < times; i++ ) { - el.animate( animation1, speed, o.easing ).animate( animation2, speed, o.easing ); - } - el - .animate( animation1, speed, o.easing ) - .animate( animation, speed / 2, o.easing ) - .queue(function() { - if ( mode === "hide" ) { - el.hide(); - } - $.effects.restore( el, props ); - $.effects.removeWrapper( el ); - done(); - }); - - // inject all the animations we just queued to be first in line (after "inprogress") - if ( queuelen > 1) { - queue.splice.apply( queue, - [ 1, 0 ].concat( queue.splice( queuelen, anims + 1 ) ) ); - } - el.dequeue(); - -}; - -})); diff --git a/app/assets/javascripts/jquery-ui/effect-size.js b/app/assets/javascripts/jquery-ui/effect-size.js deleted file mode 100644 index eb7deb38..00000000 --- a/app/assets/javascripts/jquery-ui/effect-size.js +++ /dev/null @@ -1,235 +0,0 @@ -//= require jquery-ui/effect - -/*! - * jQuery UI Effects Size 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/size-effect/ - */ -(function( factory ) { - if ( typeof define === "function" && define.amd ) { - - // AMD. Register as an anonymous module. - define([ - "jquery", - "./effect" - ], factory ); - } else { - - // Browser globals - factory( jQuery ); - } -}(function( $ ) { - -return $.effects.effect.size = function( o, done ) { - - // Create element - var original, baseline, factor, - el = $( this ), - props0 = [ "position", "top", "bottom", "left", "right", "width", "height", "overflow", "opacity" ], - - // Always restore - props1 = [ "position", "top", "bottom", "left", "right", "overflow", "opacity" ], - - // Copy for children - props2 = [ "width", "height", "overflow" ], - cProps = [ "fontSize" ], - vProps = [ "borderTopWidth", "borderBottomWidth", "paddingTop", "paddingBottom" ], - hProps = [ "borderLeftWidth", "borderRightWidth", "paddingLeft", "paddingRight" ], - - // Set options - mode = $.effects.setMode( el, o.mode || "effect" ), - restore = o.restore || mode !== "effect", - scale = o.scale || "both", - origin = o.origin || [ "middle", "center" ], - position = el.css( "position" ), - props = restore ? props0 : props1, - zero = { - height: 0, - width: 0, - outerHeight: 0, - outerWidth: 0 - }; - - if ( mode === "show" ) { - el.show(); - } - original = { - height: el.height(), - width: el.width(), - outerHeight: el.outerHeight(), - outerWidth: el.outerWidth() - }; - - if ( o.mode === "toggle" && mode === "show" ) { - el.from = o.to || zero; - el.to = o.from || original; - } else { - el.from = o.from || ( mode === "show" ? zero : original ); - el.to = o.to || ( mode === "hide" ? zero : original ); - } - - // Set scaling factor - factor = { - from: { - y: el.from.height / original.height, - x: el.from.width / original.width - }, - to: { - y: el.to.height / original.height, - x: el.to.width / original.width - } - }; - - // Scale the css box - if ( scale === "box" || scale === "both" ) { - - // Vertical props scaling - if ( factor.from.y !== factor.to.y ) { - props = props.concat( vProps ); - el.from = $.effects.setTransition( el, vProps, factor.from.y, el.from ); - el.to = $.effects.setTransition( el, vProps, factor.to.y, el.to ); - } - - // Horizontal props scaling - if ( factor.from.x !== factor.to.x ) { - props = props.concat( hProps ); - el.from = $.effects.setTransition( el, hProps, factor.from.x, el.from ); - el.to = $.effects.setTransition( el, hProps, factor.to.x, el.to ); - } - } - - // Scale the content - if ( scale === "content" || scale === "both" ) { - - // Vertical props scaling - if ( factor.from.y !== factor.to.y ) { - props = props.concat( cProps ).concat( props2 ); - el.from = $.effects.setTransition( el, cProps, factor.from.y, el.from ); - el.to = $.effects.setTransition( el, cProps, factor.to.y, el.to ); - } - } - - $.effects.save( el, props ); - el.show(); - $.effects.createWrapper( el ); - el.css( "overflow", "hidden" ).css( el.from ); - - // Adjust - if (origin) { // Calculate baseline shifts - baseline = $.effects.getBaseline( origin, original ); - el.from.top = ( original.outerHeight - el.outerHeight() ) * baseline.y; - el.from.left = ( original.outerWidth - el.outerWidth() ) * baseline.x; - el.to.top = ( original.outerHeight - el.to.outerHeight ) * baseline.y; - el.to.left = ( original.outerWidth - el.to.outerWidth ) * baseline.x; - } - el.css( el.from ); // set top & left - - // Animate - if ( scale === "content" || scale === "both" ) { // Scale the children - - // Add margins/font-size - vProps = vProps.concat([ "marginTop", "marginBottom" ]).concat(cProps); - hProps = hProps.concat([ "marginLeft", "marginRight" ]); - props2 = props0.concat(vProps).concat(hProps); - - el.find( "*[width]" ).each( function() { - var child = $( this ), - c_original = { - height: child.height(), - width: child.width(), - outerHeight: child.outerHeight(), - outerWidth: child.outerWidth() - }; - if (restore) { - $.effects.save(child, props2); - } - - child.from = { - height: c_original.height * factor.from.y, - width: c_original.width * factor.from.x, - outerHeight: c_original.outerHeight * factor.from.y, - outerWidth: c_original.outerWidth * factor.from.x - }; - child.to = { - height: c_original.height * factor.to.y, - width: c_original.width * factor.to.x, - outerHeight: c_original.height * factor.to.y, - outerWidth: c_original.width * factor.to.x - }; - - // Vertical props scaling - if ( factor.from.y !== factor.to.y ) { - child.from = $.effects.setTransition( child, vProps, factor.from.y, child.from ); - child.to = $.effects.setTransition( child, vProps, factor.to.y, child.to ); - } - - // Horizontal props scaling - if ( factor.from.x !== factor.to.x ) { - child.from = $.effects.setTransition( child, hProps, factor.from.x, child.from ); - child.to = $.effects.setTransition( child, hProps, factor.to.x, child.to ); - } - - // Animate children - child.css( child.from ); - child.animate( child.to, o.duration, o.easing, function() { - - // Restore children - if ( restore ) { - $.effects.restore( child, props2 ); - } - }); - }); - } - - // Animate - el.animate( el.to, { - queue: false, - duration: o.duration, - easing: o.easing, - complete: function() { - if ( el.to.opacity === 0 ) { - el.css( "opacity", el.from.opacity ); - } - if ( mode === "hide" ) { - el.hide(); - } - $.effects.restore( el, props ); - if ( !restore ) { - - // we need to calculate our new positioning based on the scaling - if ( position === "static" ) { - el.css({ - position: "relative", - top: el.to.top, - left: el.to.left - }); - } else { - $.each([ "top", "left" ], function( idx, pos ) { - el.css( pos, function( _, str ) { - var val = parseInt( str, 10 ), - toRef = idx ? el.to.left : el.to.top; - - // if original was "auto", recalculate the new value from wrapper - if ( str === "auto" ) { - return toRef + "px"; - } - - return val + toRef + "px"; - }); - }); - } - } - - $.effects.removeWrapper( el ); - done(); - } - }); - -}; - -})); diff --git a/app/assets/javascripts/jquery-ui/effect-slide.js b/app/assets/javascripts/jquery-ui/effect-slide.js deleted file mode 100644 index 6a77e296..00000000 --- a/app/assets/javascripts/jquery-ui/effect-slide.js +++ /dev/null @@ -1,76 +0,0 @@ -//= require jquery-ui/effect - -/*! - * jQuery UI Effects Slide 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/slide-effect/ - */ -(function( factory ) { - if ( typeof define === "function" && define.amd ) { - - // AMD. Register as an anonymous module. - define([ - "jquery", - "./effect" - ], factory ); - } else { - - // Browser globals - factory( jQuery ); - } -}(function( $ ) { - -return $.effects.effect.slide = function( o, done ) { - - // Create element - var el = $( this ), - props = [ "position", "top", "bottom", "left", "right", "width", "height" ], - mode = $.effects.setMode( el, o.mode || "show" ), - show = mode === "show", - direction = o.direction || "left", - ref = (direction === "up" || direction === "down") ? "top" : "left", - positiveMotion = (direction === "up" || direction === "left"), - distance, - animation = {}; - - // Adjust - $.effects.save( el, props ); - el.show(); - distance = o.distance || el[ ref === "top" ? "outerHeight" : "outerWidth" ]( true ); - - $.effects.createWrapper( el ).css({ - overflow: "hidden" - }); - - if ( show ) { - el.css( ref, positiveMotion ? (isNaN(distance) ? "-" + distance : -distance) : distance ); - } - - // Animation - animation[ ref ] = ( show ? - ( positiveMotion ? "+=" : "-=") : - ( positiveMotion ? "-=" : "+=")) + - distance; - - // Animate - el.animate( animation, { - queue: false, - duration: o.duration, - easing: o.easing, - complete: function() { - if ( mode === "hide" ) { - el.hide(); - } - $.effects.restore( el, props ); - $.effects.removeWrapper( el ); - done(); - } - }); -}; - -})); diff --git a/app/assets/javascripts/jquery-ui/effect-transfer.js b/app/assets/javascripts/jquery-ui/effect-transfer.js deleted file mode 100644 index c5e288ce..00000000 --- a/app/assets/javascripts/jquery-ui/effect-transfer.js +++ /dev/null @@ -1,59 +0,0 @@ -//= require jquery-ui/effect - -/*! - * jQuery UI Effects Transfer 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/transfer-effect/ - */ -(function( factory ) { - if ( typeof define === "function" && define.amd ) { - - // AMD. Register as an anonymous module. - define([ - "jquery", - "./effect" - ], factory ); - } else { - - // Browser globals - factory( jQuery ); - } -}(function( $ ) { - -return $.effects.effect.transfer = function( o, done ) { - var elem = $( this ), - target = $( o.to ), - targetFixed = target.css( "position" ) === "fixed", - body = $("body"), - fixTop = targetFixed ? body.scrollTop() : 0, - fixLeft = targetFixed ? body.scrollLeft() : 0, - endPosition = target.offset(), - animation = { - top: endPosition.top - fixTop, - left: endPosition.left - fixLeft, - height: target.innerHeight(), - width: target.innerWidth() - }, - startPosition = elem.offset(), - transfer = $( "
" ) - .appendTo( document.body ) - .addClass( o.className ) - .css({ - top: startPosition.top - fixTop, - left: startPosition.left - fixLeft, - height: elem.innerHeight(), - width: elem.innerWidth(), - position: targetFixed ? "fixed" : "absolute" - }) - .animate( animation, o.duration, o.easing, function() { - transfer.remove(); - done(); - }); -}; - -})); diff --git a/app/assets/javascripts/jquery-ui/effect.all.js b/app/assets/javascripts/jquery-ui/effect.all.js index 98e9cef6..f2dc0a95 100644 --- a/app/assets/javascripts/jquery-ui/effect.all.js +++ b/app/assets/javascripts/jquery-ui/effect.all.js @@ -1,16 +1,15 @@ -//= require jquery-ui/effect-blind -//= require jquery-ui/effect-bounce -//= require jquery-ui/effect-clip -//= require jquery-ui/effect-drop -//= require jquery-ui/effect-explode -//= require jquery-ui/effect-fade -//= require jquery-ui/effect-fold -//= require jquery-ui/effect-highlight -//= require jquery-ui/effect-puff -//= require jquery-ui/effect-pulsate -//= require jquery-ui/effect-scale -//= require jquery-ui/effect-shake -//= require jquery-ui/effect-size -//= require jquery-ui/effect-slide -//= require jquery-ui/effect-transfer -//= require jquery-ui/effect +//= require jquery-ui/effects/effect-blind.js +//= require jquery-ui/effects/effect-bounce.js +//= require jquery-ui/effects/effect-clip.js +//= require jquery-ui/effects/effect-drop.js +//= require jquery-ui/effects/effect-explode.js +//= require jquery-ui/effects/effect-fade.js +//= require jquery-ui/effects/effect-fold.js +//= require jquery-ui/effects/effect-highlight.js +//= require jquery-ui/effects/effect-puff.js +//= require jquery-ui/effects/effect-pulsate.js +//= require jquery-ui/effects/effect-scale.js +//= require jquery-ui/effects/effect-shake.js +//= require jquery-ui/effects/effect-size.js +//= require jquery-ui/effects/effect-slide.js +//= require jquery-ui/effects/effect-transfer.js diff --git a/app/assets/javascripts/jquery-ui/effect.js b/app/assets/javascripts/jquery-ui/effect.js index d2bfe545..4dd85eb5 100644 --- a/app/assets/javascripts/jquery-ui/effect.js +++ b/app/assets/javascripts/jquery-ui/effect.js @@ -1,26 +1,37 @@ +//= require jquery-ui/version + /*! - * jQuery UI Effects 1.11.4 + * jQuery UI Effects 1.12.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license - * - * http://api.jqueryui.com/category/effects-core/ */ -(function( factory ) { + +//>>label: Effects Core +//>>group: Effects +// jscs:disable maximumLineLength +//>>description: Extends the internal jQuery effects. Includes morphing and easing. Required by all other effects. +// jscs:enable maximumLineLength +//>>docs: http://api.jqueryui.com/category/effects-core/ +//>>demos: http://jqueryui.com/effect/ + +( function( factory ) { if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. - define( [ "jquery" ], factory ); + define( [ "jquery", "./version" ], factory ); } else { // Browser globals factory( jQuery ); } -}(function( $ ) { +}( function( $ ) { var dataSpace = "ui-effects-", + dataSpaceStyle = "ui-effects-style", + dataSpaceAnimated = "ui-effects-animated", // Create a local jQuery because jQuery Color relies on it and the // global may not exist with AMD and a custom build (#10199) @@ -40,13 +51,15 @@ $.effects = { * * Date: Wed Jan 16 08:47:09 2013 -0600 */ -(function( jQuery, undefined ) { +( function( jQuery, undefined ) { - var stepHooks = "backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor", + var stepHooks = "backgroundColor borderBottomColor borderLeftColor borderRightColor " + + "borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor", - // plusequals test for += 100 -= 100 + // Plusequals test for += 100 -= 100 rplusequals = /^([\-+])=\s*(\d+\.?\d*)/, - // a set of RE's that can match strings and generate color tuples. + + // A set of RE's that can match strings and generate color tuples. stringParsers = [ { re: /rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/, parse: function( execResult ) { @@ -68,7 +81,8 @@ $.effects = { ]; } }, { - // this regex ignores A-F because it's compared against an already lowercased string + + // This regex ignores A-F because it's compared against an already lowercased string re: /#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/, parse: function( execResult ) { return [ @@ -78,7 +92,8 @@ $.effects = { ]; } }, { - // this regex ignores A-F because it's compared against an already lowercased string + + // This regex ignores A-F because it's compared against an already lowercased string re: /#([a-f0-9])([a-f0-9])([a-f0-9])/, parse: function( execResult ) { return [ @@ -100,7 +115,7 @@ $.effects = { } } ], - // jQuery.Color( ) + // JQuery.Color( ) color = jQuery.Color = function( color, green, blue, alpha ) { return new jQuery.Color.fn.parse( color, green, blue, alpha ); }, @@ -154,20 +169,20 @@ $.effects = { }, support = color.support = {}, - // element for support tests + // Element for support tests supportElem = jQuery( "

" )[ 0 ], - // colors = jQuery.Color.names + // Colors = jQuery.Color.names colors, - // local aliases of functions called often + // Local aliases of functions called often each = jQuery.each; -// determine rgba support immediately +// Determine rgba support immediately supportElem.style.cssText = "background-color:rgba(1,1,1,.5)"; support.rgba = supportElem.style.backgroundColor.indexOf( "rgba" ) > -1; -// define cache name and alpha properties +// Define cache name and alpha properties // for rgba and hsla spaces each( spaces, function( spaceName, space ) { space.cache = "_" + spaceName; @@ -176,13 +191,13 @@ each( spaces, function( spaceName, space ) { type: "percent", def: 1 }; -}); +} ); function clamp( value, prop, allowEmpty ) { var type = propTypes[ prop.type ] || {}; if ( value == null ) { - return (allowEmpty || !prop.def) ? null : prop.def; + return ( allowEmpty || !prop.def ) ? null : prop.def; } // ~~ is an short way of doing floor for positive numbers @@ -195,12 +210,13 @@ function clamp( value, prop, allowEmpty ) { } if ( type.mod ) { - // we add mod before modding to make sure that negatives values + + // We add mod before modding to make sure that negatives values // get converted properly: -10 -> 350 - return (value + type.mod) % type.mod; + return ( value + type.mod ) % type.mod; } - // for now all property types without mod have min and max + // For now all property types without mod have min and max return 0 > value ? 0 : type.max < value ? type.max : value; } @@ -219,20 +235,20 @@ function stringParse( string ) { if ( values ) { parsed = inst[ spaceName ]( values ); - // if this was an rgba parse the assignment might happen twice + // If this was an rgba parse the assignment might happen twice // oh well.... inst[ spaces[ spaceName ].cache ] = parsed[ spaces[ spaceName ].cache ]; rgba = inst._rgba = parsed._rgba; - // exit each( stringParsers ) here because we matched + // Exit each( stringParsers ) here because we matched return false; } - }); + } ); // Found a stringParser that handled it if ( rgba.length ) { - // if this came from a parsed string, force "transparent" when alpha is 0 + // If this came from a parsed string, force "transparent" when alpha is 0 // chrome, (and maybe others) return "transparent" as rgba(0,0,0,0) if ( rgba.join() === "0,0,0,0" ) { jQuery.extend( rgba, colors.transparent ); @@ -240,7 +256,7 @@ function stringParse( string ) { return inst; } - // named colors + // Named colors return colors[ string ]; } @@ -259,7 +275,7 @@ color.fn = jQuery.extend( color.prototype, { type = jQuery.type( red ), rgba = this._rgba = []; - // more than 1 argument specified - assume ( red, green, blue, alpha ) + // More than 1 argument specified - assume ( red, green, blue, alpha ) if ( green !== undefined ) { red = [ red, green, blue, alpha ]; type = "array"; @@ -272,7 +288,7 @@ color.fn = jQuery.extend( color.prototype, { if ( type === "array" ) { each( spaces.rgba.props, function( key, prop ) { rgba[ prop.idx ] = clamp( red[ prop.idx ], prop ); - }); + } ); return this; } @@ -282,16 +298,16 @@ color.fn = jQuery.extend( color.prototype, { if ( red[ space.cache ] ) { inst[ space.cache ] = red[ space.cache ].slice(); } - }); + } ); } else { each( spaces, function( spaceName, space ) { var cache = space.cache; each( space.props, function( key, prop ) { - // if the cache doesn't exist, and we know how to convert + // If the cache doesn't exist, and we know how to convert if ( !inst[ cache ] && space.to ) { - // if the value was null, we don't need to copy it + // If the value was null, we don't need to copy it // if the key was alpha, we don't need to copy it either if ( key === "alpha" || red[ key ] == null ) { return; @@ -299,20 +315,22 @@ color.fn = jQuery.extend( color.prototype, { inst[ cache ] = space.to( inst._rgba ); } - // this is the only case where we allow nulls for ALL properties. + // This is the only case where we allow nulls for ALL properties. // call clamp with alwaysAllowEmpty inst[ cache ][ prop.idx ] = clamp( red[ key ], prop, true ); - }); + } ); - // everything defined but alpha? - if ( inst[ cache ] && jQuery.inArray( null, inst[ cache ].slice( 0, 3 ) ) < 0 ) { - // use the default of 1 + // Everything defined but alpha? + if ( inst[ cache ] && + jQuery.inArray( null, inst[ cache ].slice( 0, 3 ) ) < 0 ) { + + // Use the default of 1 inst[ cache ][ 3 ] = 1; if ( space.from ) { inst._rgba = space.from( inst[ cache ] ); } } - }); + } ); } return this; } @@ -325,17 +343,17 @@ color.fn = jQuery.extend( color.prototype, { each( spaces, function( _, space ) { var localCache, isCache = is[ space.cache ]; - if (isCache) { + if ( isCache ) { localCache = inst[ space.cache ] || space.to && space.to( inst._rgba ) || []; each( space.props, function( _, prop ) { if ( isCache[ prop.idx ] != null ) { same = ( isCache[ prop.idx ] === localCache[ prop.idx ] ); return same; } - }); + } ); } return same; - }); + } ); return same; }, _space: function() { @@ -345,7 +363,7 @@ color.fn = jQuery.extend( color.prototype, { if ( inst[ space.cache ] ) { used.push( spaceName ); } - }); + } ); return used.pop(); }, transition: function( other, distance ) { @@ -363,11 +381,12 @@ color.fn = jQuery.extend( color.prototype, { endValue = end[ index ], type = propTypes[ prop.type ] || {}; - // if null, don't override start value + // If null, don't override start value if ( endValue === null ) { return; } - // if null - use end + + // If null - use end if ( startValue === null ) { result[ index ] = endValue; } else { @@ -380,11 +399,12 @@ color.fn = jQuery.extend( color.prototype, { } result[ index ] = clamp( ( endValue - startValue ) * distance + startValue, prop ); } - }); + } ); return this[ spaceName ]( result ); }, blend: function( opaque ) { - // if we are already opaque - return ourself + + // If we are already opaque - return ourself if ( this._rgba[ 3 ] === 1 ) { return this; } @@ -395,13 +415,13 @@ color.fn = jQuery.extend( color.prototype, { return color( jQuery.map( rgb, function( v, i ) { return ( 1 - a ) * blend[ i ] + a * v; - })); + } ) ); }, toRgbaString: function() { var prefix = "rgba(", rgba = jQuery.map( this._rgba, function( v, i ) { return v == null ? ( i > 2 ? 1 : 0 ) : v; - }); + } ); if ( rgba[ 3 ] === 1 ) { rgba.pop(); @@ -417,12 +437,12 @@ color.fn = jQuery.extend( color.prototype, { v = i > 2 ? 1 : 0; } - // catch 1 and 2 + // Catch 1 and 2 if ( i && i < 3 ) { v = Math.round( v * 100 ) + "%"; } return v; - }); + } ); if ( hsla[ 3 ] === 1 ) { hsla.pop(); @@ -440,18 +460,18 @@ color.fn = jQuery.extend( color.prototype, { return "#" + jQuery.map( rgba, function( v ) { - // default to 0 when nulls exist + // Default to 0 when nulls exist v = ( v || 0 ).toString( 16 ); return v.length === 1 ? "0" + v : v; - }).join(""); + } ).join( "" ); }, toString: function() { return this._rgba[ 3 ] === 0 ? "transparent" : this.toRgbaString(); } -}); +} ); color.fn.parse.prototype = color.fn; -// hsla conversions adapted from: +// Hsla conversions adapted from: // https://code.google.com/p/maashaack/source/browse/packages/graphics/trunk/src/graphics/colors/HUE2RGB.as?r=5021 function hue2rgb( p, q, h ) { @@ -459,7 +479,7 @@ function hue2rgb( p, q, h ) { if ( h * 6 < 1 ) { return p + ( q - p ) * h * 6; } - if ( h * 2 < 1) { + if ( h * 2 < 1 ) { return q; } if ( h * 3 < 2 ) { @@ -493,7 +513,7 @@ spaces.hsla.to = function( rgba ) { h = ( 60 * ( r - g ) / diff ) + 240; } - // chroma (diff) == 0 means greyscale which, by definition, saturation = 0% + // Chroma (diff) == 0 means greyscale which, by definition, saturation = 0% // otherwise, saturation is based on the ratio of chroma (diff) to lightness (add) if ( diff === 0 ) { s = 0; @@ -502,7 +522,7 @@ spaces.hsla.to = function( rgba ) { } else { s = diff / ( 2 - add ); } - return [ Math.round(h) % 360, s, l, a == null ? 1 : a ]; + return [ Math.round( h ) % 360, s, l, a == null ? 1 : a ]; }; spaces.hsla.from = function( hsla ) { @@ -530,10 +550,10 @@ each( spaces, function( spaceName, space ) { to = space.to, from = space.from; - // makes rgba() and hsla() + // Makes rgba() and hsla() color.fn[ spaceName ] = function( value ) { - // generate a cache for this space if it doesn't exist + // Generate a cache for this space if it doesn't exist if ( to && !this[ cache ] ) { this[ cache ] = to( this._rgba ); } @@ -552,7 +572,7 @@ each( spaces, function( spaceName, space ) { val = local[ prop.idx ]; } local[ prop.idx ] = clamp( val, prop ); - }); + } ); if ( from ) { ret = color( from( local ) ); @@ -563,9 +583,10 @@ each( spaces, function( spaceName, space ) { } }; - // makes red() green() blue() alpha() hue() saturation() lightness() + // Makes red() green() blue() alpha() hue() saturation() lightness() each( props, function( key, prop ) { - // alpha is included in more than one space + + // Alpha is included in more than one space if ( color.fn[ key ] ) { return; } @@ -596,10 +617,10 @@ each( spaces, function( spaceName, space ) { local[ prop.idx ] = value; return this[ fn ]( local ); }; - }); -}); + } ); +} ); -// add cssHook and .fx.step function for each named hook. +// Add cssHook and .fx.step function for each named hook. // accept a space separated string of properties color.hook = function( hook ) { var hooks = hook.split( " " ); @@ -609,12 +630,13 @@ color.hook = function( hook ) { var parsed, curElem, backgroundColor = ""; - if ( value !== "transparent" && ( jQuery.type( value ) !== "string" || ( parsed = stringParse( value ) ) ) ) { + if ( value !== "transparent" && ( jQuery.type( value ) !== "string" || + ( parsed = stringParse( value ) ) ) ) { value = color( parsed || value ); if ( !support.rgba && value._rgba[ 3 ] !== 1 ) { curElem = hook === "backgroundColor" ? elem.parentNode : elem; while ( - (backgroundColor === "" || backgroundColor === "transparent") && + ( backgroundColor === "" || backgroundColor === "transparent" ) && curElem && curElem.style ) { try { @@ -634,7 +656,9 @@ color.hook = function( hook ) { try { elem.style[ hook ] = value; } catch ( e ) { - // wrapped to prevent IE from throwing errors on "invalid" values like 'auto' or 'inherit' + + // Wrapped to prevent IE from throwing errors on "invalid" values like + // 'auto' or 'inherit' } } }; @@ -646,7 +670,7 @@ color.hook = function( hook ) { } jQuery.cssHooks[ hook ].set( fx.elem, fx.start.transition( fx.end, fx.pos ) ); }; - }); + } ); }; @@ -658,7 +682,7 @@ jQuery.cssHooks.borderColor = { each( [ "Top", "Right", "Bottom", "Left" ], function( i, part ) { expanded[ "border" + part + "Color" ] = value; - }); + } ); return expanded; } }; @@ -667,6 +691,7 @@ jQuery.cssHooks.borderColor = { // Usage of any of the other color names requires adding yourself or including // jquery.color.svg-names.js. colors = jQuery.Color.names = { + // 4.1. Basic color keywords aqua: "#00ffff", black: "#000000", @@ -691,12 +716,12 @@ colors = jQuery.Color.names = { _default: "#ffffff" }; -})( jQuery ); +} )( jQuery ); /******************************************************************************/ /****************************** CLASS ANIMATIONS ******************************/ /******************************************************************************/ -(function() { +( function() { var classAnimationActions = [ "add", "remove", "toggle" ], shorthandStyles = { @@ -711,14 +736,17 @@ var classAnimationActions = [ "add", "remove", "toggle" ], padding: 1 }; -$.each([ "borderLeftStyle", "borderRightStyle", "borderBottomStyle", "borderTopStyle" ], function( _, prop ) { - $.fx.step[ prop ] = function( fx ) { - if ( fx.end !== "none" && !fx.setAttr || fx.pos === 1 && !fx.setAttr ) { - jQuery.style( fx.elem, prop, fx.end ); - fx.setAttr = true; - } - }; -}); +$.each( + [ "borderLeftStyle", "borderRightStyle", "borderBottomStyle", "borderTopStyle" ], + function( _, prop ) { + $.fx.step[ prop ] = function( fx ) { + if ( fx.end !== "none" && !fx.setAttr || fx.pos === 1 && !fx.setAttr ) { + jQuery.style( fx.elem, prop, fx.end ); + fx.setAttr = true; + } + }; + } +); function getElementStyles( elem ) { var key, len, @@ -735,7 +763,8 @@ function getElementStyles( elem ) { styles[ $.camelCase( key ) ] = style[ key ]; } } - // support: Opera, IE <9 + + // Support: Opera, IE <9 } else { for ( key in style ) { if ( typeof style[ key ] === "string" ) { @@ -765,7 +794,7 @@ function styleDifference( oldStyle, newStyle ) { return diff; } -// support: jQuery <1.8 +// Support: jQuery <1.8 if ( !$.fn.addBack ) { $.fn.addBack = function( selector ) { return this.add( selector == null ? @@ -783,275 +812,448 @@ $.effects.animateClass = function( value, duration, easing, callback ) { applyClassChange, allAnimations = o.children ? animated.find( "*" ).addBack() : animated; - // map the animated objects to store the original styles. - allAnimations = allAnimations.map(function() { + // Map the animated objects to store the original styles. + allAnimations = allAnimations.map( function() { var el = $( this ); return { el: el, start: getElementStyles( this ) }; - }); + } ); - // apply class change + // Apply class change applyClassChange = function() { - $.each( classAnimationActions, function(i, action) { + $.each( classAnimationActions, function( i, action ) { if ( value[ action ] ) { animated[ action + "Class" ]( value[ action ] ); } - }); + } ); }; applyClassChange(); - // map all animated objects again - calculate new styles and diff - allAnimations = allAnimations.map(function() { + // Map all animated objects again - calculate new styles and diff + allAnimations = allAnimations.map( function() { this.end = getElementStyles( this.el[ 0 ] ); this.diff = styleDifference( this.start, this.end ); return this; - }); + } ); - // apply original class + // Apply original class animated.attr( "class", baseClass ); - // map all animated objects again - this time collecting a promise - allAnimations = allAnimations.map(function() { + // Map all animated objects again - this time collecting a promise + allAnimations = allAnimations.map( function() { var styleInfo = this, dfd = $.Deferred(), - opts = $.extend({}, o, { + opts = $.extend( {}, o, { queue: false, complete: function() { dfd.resolve( styleInfo ); } - }); + } ); this.el.animate( this.diff, opts ); return dfd.promise(); - }); + } ); - // once all animations have completed: - $.when.apply( $, allAnimations.get() ).done(function() { + // Once all animations have completed: + $.when.apply( $, allAnimations.get() ).done( function() { - // set the final class + // Set the final class applyClassChange(); - // for each animated element, + // For each animated element, // clear all css properties that were animated $.each( arguments, function() { var el = this.el; - $.each( this.diff, function(key) { + $.each( this.diff, function( key ) { el.css( key, "" ); - }); - }); + } ); + } ); - // this is guarnteed to be there if you use jQuery.speed() + // This is guarnteed to be there if you use jQuery.speed() // it also handles dequeuing the next anim... o.complete.call( animated[ 0 ] ); - }); - }); + } ); + } ); }; -$.fn.extend({ - addClass: (function( orig ) { +$.fn.extend( { + addClass: ( function( orig ) { return function( classNames, speed, easing, callback ) { return speed ? $.effects.animateClass.call( this, { add: classNames }, speed, easing, callback ) : orig.apply( this, arguments ); }; - })( $.fn.addClass ), + } )( $.fn.addClass ), - removeClass: (function( orig ) { + removeClass: ( function( orig ) { return function( classNames, speed, easing, callback ) { return arguments.length > 1 ? $.effects.animateClass.call( this, { remove: classNames }, speed, easing, callback ) : orig.apply( this, arguments ); }; - })( $.fn.removeClass ), + } )( $.fn.removeClass ), - toggleClass: (function( orig ) { + toggleClass: ( function( orig ) { return function( classNames, force, speed, easing, callback ) { if ( typeof force === "boolean" || force === undefined ) { if ( !speed ) { - // without speed parameter + + // Without speed parameter return orig.apply( this, arguments ); } else { return $.effects.animateClass.call( this, - (force ? { add: classNames } : { remove: classNames }), + ( force ? { add: classNames } : { remove: classNames } ), speed, easing, callback ); } } else { - // without force parameter + + // Without force parameter return $.effects.animateClass.call( this, { toggle: classNames }, force, speed, easing ); } }; - })( $.fn.toggleClass ), + } )( $.fn.toggleClass ), - switchClass: function( remove, add, speed, easing, callback) { + switchClass: function( remove, add, speed, easing, callback ) { return $.effects.animateClass.call( this, { add: add, remove: remove }, speed, easing, callback ); } -}); +} ); -})(); +} )(); /******************************************************************************/ /*********************************** EFFECTS **********************************/ /******************************************************************************/ -(function() { +( function() { -$.extend( $.effects, { - version: "1.11.4", +if ( $.expr && $.expr.filters && $.expr.filters.animated ) { + $.expr.filters.animated = ( function( orig ) { + return function( elem ) { + return !!$( elem ).data( dataSpaceAnimated ) || orig( elem ); + }; + } )( $.expr.filters.animated ); +} - // Saves a set of properties in a data storage - save: function( element, set ) { - for ( var i = 0; i < set.length; i++ ) { - if ( set[ i ] !== null ) { - element.data( dataSpace + set[ i ], element[ 0 ].style[ set[ i ] ] ); +if ( $.uiBackCompat !== false ) { + $.extend( $.effects, { + + // Saves a set of properties in a data storage + save: function( element, set ) { + var i = 0, length = set.length; + for ( ; i < length; i++ ) { + if ( set[ i ] !== null ) { + element.data( dataSpace + set[ i ], element[ 0 ].style[ set[ i ] ] ); + } } - } - }, + }, - // Restores a set of previously saved properties from a data storage - restore: function( element, set ) { - var val, i; - for ( i = 0; i < set.length; i++ ) { - if ( set[ i ] !== null ) { - val = element.data( dataSpace + set[ i ] ); - // support: jQuery 1.6.2 - // http://bugs.jquery.com/ticket/9917 - // jQuery 1.6.2 incorrectly returns undefined for any falsy value. - // We can't differentiate between "" and 0 here, so we just assume - // empty string since it's likely to be a more common value... - if ( val === undefined ) { - val = ""; + // Restores a set of previously saved properties from a data storage + restore: function( element, set ) { + var val, i = 0, length = set.length; + for ( ; i < length; i++ ) { + if ( set[ i ] !== null ) { + val = element.data( dataSpace + set[ i ] ); + element.css( set[ i ], val ); } - element.css( set[ i ], val ); } + }, + + setMode: function( el, mode ) { + if ( mode === "toggle" ) { + mode = el.is( ":hidden" ) ? "show" : "hide"; + } + return mode; + }, + + // Wraps the element around a wrapper that copies position properties + createWrapper: function( element ) { + + // If the element is already wrapped, return it + if ( element.parent().is( ".ui-effects-wrapper" ) ) { + return element.parent(); + } + + // Wrap the element + var props = { + width: element.outerWidth( true ), + height: element.outerHeight( true ), + "float": element.css( "float" ) + }, + wrapper = $( "

" ) + .addClass( "ui-effects-wrapper" ) + .css( { + fontSize: "100%", + background: "transparent", + border: "none", + margin: 0, + padding: 0 + } ), + + // Store the size in case width/height are defined in % - Fixes #5245 + size = { + width: element.width(), + height: element.height() + }, + active = document.activeElement; + + // Support: Firefox + // Firefox incorrectly exposes anonymous content + // https://bugzilla.mozilla.org/show_bug.cgi?id=561664 + try { + active.id; + } catch ( e ) { + active = document.body; + } + + element.wrap( wrapper ); + + // Fixes #7595 - Elements lose focus when wrapped. + if ( element[ 0 ] === active || $.contains( element[ 0 ], active ) ) { + $( active ).trigger( "focus" ); + } + + // Hotfix for jQuery 1.4 since some change in wrap() seems to actually + // lose the reference to the wrapped element + wrapper = element.parent(); + + // Transfer positioning properties to the wrapper + if ( element.css( "position" ) === "static" ) { + wrapper.css( { position: "relative" } ); + element.css( { position: "relative" } ); + } else { + $.extend( props, { + position: element.css( "position" ), + zIndex: element.css( "z-index" ) + } ); + $.each( [ "top", "left", "bottom", "right" ], function( i, pos ) { + props[ pos ] = element.css( pos ); + if ( isNaN( parseInt( props[ pos ], 10 ) ) ) { + props[ pos ] = "auto"; + } + } ); + element.css( { + position: "relative", + top: 0, + left: 0, + right: "auto", + bottom: "auto" + } ); + } + element.css( size ); + + return wrapper.css( props ).show(); + }, + + removeWrapper: function( element ) { + var active = document.activeElement; + + if ( element.parent().is( ".ui-effects-wrapper" ) ) { + element.parent().replaceWith( element ); + + // Fixes #7595 - Elements lose focus when wrapped. + if ( element[ 0 ] === active || $.contains( element[ 0 ], active ) ) { + $( active ).trigger( "focus" ); + } + } + + return element; + } + } ); +} + +$.extend( $.effects, { + version: "1.12.1", + + define: function( name, mode, effect ) { + if ( !effect ) { + effect = mode; + mode = "effect"; + } + + $.effects.effect[ name ] = effect; + $.effects.effect[ name ].mode = mode; + + return effect; + }, + + scaledDimensions: function( element, percent, direction ) { + if ( percent === 0 ) { + return { + height: 0, + width: 0, + outerHeight: 0, + outerWidth: 0 + }; + } + + var x = direction !== "horizontal" ? ( ( percent || 100 ) / 100 ) : 1, + y = direction !== "vertical" ? ( ( percent || 100 ) / 100 ) : 1; + + return { + height: element.height() * y, + width: element.width() * x, + outerHeight: element.outerHeight() * y, + outerWidth: element.outerWidth() * x + }; + + }, + + clipToBox: function( animation ) { + return { + width: animation.clip.right - animation.clip.left, + height: animation.clip.bottom - animation.clip.top, + left: animation.clip.left, + top: animation.clip.top + }; + }, + + // Injects recently queued functions to be first in line (after "inprogress") + unshift: function( element, queueLength, count ) { + var queue = element.queue(); + + if ( queueLength > 1 ) { + queue.splice.apply( queue, + [ 1, 0 ].concat( queue.splice( queueLength, count ) ) ); } + element.dequeue(); + }, + + saveStyle: function( element ) { + element.data( dataSpaceStyle, element[ 0 ].style.cssText ); + }, + + restoreStyle: function( element ) { + element[ 0 ].style.cssText = element.data( dataSpaceStyle ) || ""; + element.removeData( dataSpaceStyle ); }, - setMode: function( el, mode ) { - if (mode === "toggle") { - mode = el.is( ":hidden" ) ? "show" : "hide"; + mode: function( element, mode ) { + var hidden = element.is( ":hidden" ); + + if ( mode === "toggle" ) { + mode = hidden ? "show" : "hide"; + } + if ( hidden ? mode === "hide" : mode === "show" ) { + mode = "none"; } return mode; }, // Translates a [top,left] array into a baseline value - // this should be a little more flexible in the future to handle a string & hash getBaseline: function( origin, original ) { var y, x; + switch ( origin[ 0 ] ) { - case "top": y = 0; break; - case "middle": y = 0.5; break; - case "bottom": y = 1; break; - default: y = origin[ 0 ] / original.height; + case "top": + y = 0; + break; + case "middle": + y = 0.5; + break; + case "bottom": + y = 1; + break; + default: + y = origin[ 0 ] / original.height; } + switch ( origin[ 1 ] ) { - case "left": x = 0; break; - case "center": x = 0.5; break; - case "right": x = 1; break; - default: x = origin[ 1 ] / original.width; + case "left": + x = 0; + break; + case "center": + x = 0.5; + break; + case "right": + x = 1; + break; + default: + x = origin[ 1 ] / original.width; } + return { x: x, y: y }; }, - // Wraps the element around a wrapper that copies position properties - createWrapper: function( element ) { - - // if the element is already wrapped, return it - if ( element.parent().is( ".ui-effects-wrapper" )) { - return element.parent(); - } - - // wrap the element - var props = { - width: element.outerWidth(true), - height: element.outerHeight(true), + // Creates a placeholder element so that the original element can be made absolute + createPlaceholder: function( element ) { + var placeholder, + cssPosition = element.css( "position" ), + position = element.position(); + + // Lock in margins first to account for form elements, which + // will change margin if you explicitly set height + // see: http://jsfiddle.net/JZSMt/3/ https://bugs.webkit.org/show_bug.cgi?id=107380 + // Support: Safari + element.css( { + marginTop: element.css( "marginTop" ), + marginBottom: element.css( "marginBottom" ), + marginLeft: element.css( "marginLeft" ), + marginRight: element.css( "marginRight" ) + } ) + .outerWidth( element.outerWidth() ) + .outerHeight( element.outerHeight() ); + + if ( /^(static|relative)/.test( cssPosition ) ) { + cssPosition = "absolute"; + + placeholder = $( "<" + element[ 0 ].nodeName + ">" ).insertAfter( element ).css( { + + // Convert inline to inline block to account for inline elements + // that turn to inline block based on content (like img) + display: /^(inline|ruby)/.test( element.css( "display" ) ) ? + "inline-block" : + "block", + visibility: "hidden", + + // Margins need to be set to account for margin collapse + marginTop: element.css( "marginTop" ), + marginBottom: element.css( "marginBottom" ), + marginLeft: element.css( "marginLeft" ), + marginRight: element.css( "marginRight" ), "float": element.css( "float" ) - }, - wrapper = $( "
" ) - .addClass( "ui-effects-wrapper" ) - .css({ - fontSize: "100%", - background: "transparent", - border: "none", - margin: 0, - padding: 0 - }), - // Store the size in case width/height are defined in % - Fixes #5245 - size = { - width: element.width(), - height: element.height() - }, - active = document.activeElement; - - // support: Firefox - // Firefox incorrectly exposes anonymous content - // https://bugzilla.mozilla.org/show_bug.cgi?id=561664 - try { - active.id; - } catch ( e ) { - active = document.body; - } - - element.wrap( wrapper ); + } ) + .outerWidth( element.outerWidth() ) + .outerHeight( element.outerHeight() ) + .addClass( "ui-effects-placeholder" ); - // Fixes #7595 - Elements lose focus when wrapped. - if ( element[ 0 ] === active || $.contains( element[ 0 ], active ) ) { - $( active ).focus(); + element.data( dataSpace + "placeholder", placeholder ); } - wrapper = element.parent(); //Hotfix for jQuery 1.4 since some change in wrap() seems to actually lose the reference to the wrapped element - - // transfer positioning properties to the wrapper - if ( element.css( "position" ) === "static" ) { - wrapper.css({ position: "relative" }); - element.css({ position: "relative" }); - } else { - $.extend( props, { - position: element.css( "position" ), - zIndex: element.css( "z-index" ) - }); - $.each([ "top", "left", "bottom", "right" ], function(i, pos) { - props[ pos ] = element.css( pos ); - if ( isNaN( parseInt( props[ pos ], 10 ) ) ) { - props[ pos ] = "auto"; - } - }); - element.css({ - position: "relative", - top: 0, - left: 0, - right: "auto", - bottom: "auto" - }); - } - element.css(size); + element.css( { + position: cssPosition, + left: position.left, + top: position.top + } ); - return wrapper.css( props ).show(); + return placeholder; }, - removeWrapper: function( element ) { - var active = document.activeElement; - - if ( element.parent().is( ".ui-effects-wrapper" ) ) { - element.parent().replaceWith( element ); + removePlaceholder: function( element ) { + var dataKey = dataSpace + "placeholder", + placeholder = element.data( dataKey ); - // Fixes #7595 - Elements lose focus when wrapped. - if ( element[ 0 ] === active || $.contains( element[ 0 ], active ) ) { - $( active ).focus(); - } + if ( placeholder ) { + placeholder.remove(); + element.removeData( dataKey ); } + }, - return element; + // Removes a placeholder if it exists and restores + // properties that were modified during placeholder creation + cleanUp: function( element ) { + $.effects.restoreStyle( element ); + $.effects.removePlaceholder( element ); }, setTransition: function( element, list, factor, value ) { @@ -1061,49 +1263,49 @@ $.extend( $.effects, { if ( unit[ 0 ] > 0 ) { value[ x ] = unit[ 0 ] * factor + unit[ 1 ]; } - }); + } ); return value; } -}); +} ); -// return an effect options object for the given parameters: +// Return an effect options object for the given parameters: function _normalizeArguments( effect, options, speed, callback ) { - // allow passing all options as the first parameter + // Allow passing all options as the first parameter if ( $.isPlainObject( effect ) ) { options = effect; effect = effect.effect; } - // convert to an object + // Convert to an object effect = { effect: effect }; - // catch (effect, null, ...) + // Catch (effect, null, ...) if ( options == null ) { options = {}; } - // catch (effect, callback) + // Catch (effect, callback) if ( $.isFunction( options ) ) { callback = options; speed = null; options = {}; } - // catch (effect, speed, ?) + // Catch (effect, speed, ?) if ( typeof options === "number" || $.fx.speeds[ options ] ) { callback = speed; speed = options; options = {}; } - // catch (effect, options, callback) + // Catch (effect, options, callback) if ( $.isFunction( speed ) ) { callback = speed; speed = null; } - // add options to effect + // Add options to effect if ( options ) { $.extend( effect, options ); } @@ -1120,6 +1322,7 @@ function _normalizeArguments( effect, options, speed, callback ) { } function standardAnimationOption( option ) { + // Valid standard speeds (nothing, number, named speed) if ( !option || typeof option === "number" || $.fx.speeds[ option ] ) { return true; @@ -1144,54 +1347,116 @@ function standardAnimationOption( option ) { return false; } -$.fn.extend({ +$.fn.extend( { effect: function( /* effect, options, speed, callback */ ) { var args = _normalizeArguments.apply( this, arguments ), - mode = args.mode, + effectMethod = $.effects.effect[ args.effect ], + defaultMode = effectMethod.mode, queue = args.queue, - effectMethod = $.effects.effect[ args.effect ]; + queueName = queue || "fx", + complete = args.complete, + mode = args.mode, + modes = [], + prefilter = function( next ) { + var el = $( this ), + normalizedMode = $.effects.mode( el, mode ) || defaultMode; + + // Sentinel for duck-punching the :animated psuedo-selector + el.data( dataSpaceAnimated, true ); + + // Save effect mode for later use, + // we can't just call $.effects.mode again later, + // as the .show() below destroys the initial state + modes.push( normalizedMode ); + + // See $.uiBackCompat inside of run() for removal of defaultMode in 1.13 + if ( defaultMode && ( normalizedMode === "show" || + ( normalizedMode === defaultMode && normalizedMode === "hide" ) ) ) { + el.show(); + } + + if ( !defaultMode || normalizedMode !== "none" ) { + $.effects.saveStyle( el ); + } + + if ( $.isFunction( next ) ) { + next(); + } + }; if ( $.fx.off || !effectMethod ) { - // delegate to the original method (e.g., .show()) if possible + + // Delegate to the original method (e.g., .show()) if possible if ( mode ) { - return this[ mode ]( args.duration, args.complete ); + return this[ mode ]( args.duration, complete ); } else { return this.each( function() { - if ( args.complete ) { - args.complete.call( this ); + if ( complete ) { + complete.call( this ); } - }); + } ); } } function run( next ) { - var elem = $( this ), - complete = args.complete, - mode = args.mode; + var elem = $( this ); + + function cleanup() { + elem.removeData( dataSpaceAnimated ); + + $.effects.cleanUp( elem ); + + if ( args.mode === "hide" ) { + elem.hide(); + } + + done(); + } function done() { if ( $.isFunction( complete ) ) { - complete.call( elem[0] ); + complete.call( elem[ 0 ] ); } + if ( $.isFunction( next ) ) { next(); } } - // If the element already has the correct final state, delegate to - // the core methods so the internal tracking of "olddisplay" works. - if ( elem.is( ":hidden" ) ? mode === "hide" : mode === "show" ) { - elem[ mode ](); - done(); + // Override mode option on a per element basis, + // as toggle can be either show or hide depending on element state + args.mode = modes.shift(); + + if ( $.uiBackCompat !== false && !defaultMode ) { + if ( elem.is( ":hidden" ) ? mode === "hide" : mode === "show" ) { + + // Call the core method to track "olddisplay" properly + elem[ mode ](); + done(); + } else { + effectMethod.call( elem[ 0 ], args, done ); + } } else { - effectMethod.call( elem[0], args, done ); + if ( args.mode === "none" ) { + + // Call the core method to track "olddisplay" properly + elem[ mode ](); + done(); + } else { + effectMethod.call( elem[ 0 ], args, cleanup ); + } } } - return queue === false ? this.each( run ) : this.queue( queue || "fx", run ); + // Run prefilter on all elements first to ensure that + // any showing or hiding happens before placeholder creation, + // which ensures that any layout changes are correctly captured. + return queue === false ? + this.each( prefilter ).each( run ) : + this.queue( queueName, prefilter ).queue( queueName, run ); }, - show: (function( orig ) { + show: ( function( orig ) { return function( option ) { if ( standardAnimationOption( option ) ) { return orig.apply( this, arguments ); @@ -1201,9 +1466,9 @@ $.fn.extend({ return this.effect.call( this, args ); } }; - })( $.fn.show ), + } )( $.fn.show ), - hide: (function( orig ) { + hide: ( function( orig ) { return function( option ) { if ( standardAnimationOption( option ) ) { return orig.apply( this, arguments ); @@ -1213,9 +1478,9 @@ $.fn.extend({ return this.effect.call( this, args ); } }; - })( $.fn.hide ), + } )( $.fn.hide ), - toggle: (function( orig ) { + toggle: ( function( orig ) { return function( option ) { if ( standardAnimationOption( option ) || typeof option === "boolean" ) { return orig.apply( this, arguments ); @@ -1225,10 +1490,9 @@ $.fn.extend({ return this.effect.call( this, args ); } }; - })( $.fn.toggle ), + } )( $.fn.toggle ), - // helper functions - cssUnit: function(key) { + cssUnit: function( key ) { var style = this.css( key ), val = []; @@ -1236,20 +1500,92 @@ $.fn.extend({ if ( style.indexOf( unit ) > 0 ) { val = [ parseFloat( style ), unit ]; } - }); + } ); return val; + }, + + cssClip: function( clipObj ) { + if ( clipObj ) { + return this.css( "clip", "rect(" + clipObj.top + "px " + clipObj.right + "px " + + clipObj.bottom + "px " + clipObj.left + "px)" ); + } + return parseClip( this.css( "clip" ), this ); + }, + + transfer: function( options, done ) { + var element = $( this ), + target = $( options.to ), + targetFixed = target.css( "position" ) === "fixed", + body = $( "body" ), + fixTop = targetFixed ? body.scrollTop() : 0, + fixLeft = targetFixed ? body.scrollLeft() : 0, + endPosition = target.offset(), + animation = { + top: endPosition.top - fixTop, + left: endPosition.left - fixLeft, + height: target.innerHeight(), + width: target.innerWidth() + }, + startPosition = element.offset(), + transfer = $( "
" ) + .appendTo( "body" ) + .addClass( options.className ) + .css( { + top: startPosition.top - fixTop, + left: startPosition.left - fixLeft, + height: element.innerHeight(), + width: element.innerWidth(), + position: targetFixed ? "fixed" : "absolute" + } ) + .animate( animation, options.duration, options.easing, function() { + transfer.remove(); + if ( $.isFunction( done ) ) { + done(); + } + } ); } -}); +} ); + +function parseClip( str, element ) { + var outerWidth = element.outerWidth(), + outerHeight = element.outerHeight(), + clipRegex = /^rect\((-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto)\)$/, + values = clipRegex.exec( str ) || [ "", 0, outerWidth, outerHeight, 0 ]; + + return { + top: parseFloat( values[ 1 ] ) || 0, + right: values[ 2 ] === "auto" ? outerWidth : parseFloat( values[ 2 ] ), + bottom: values[ 3 ] === "auto" ? outerHeight : parseFloat( values[ 3 ] ), + left: parseFloat( values[ 4 ] ) || 0 + }; +} + +$.fx.step.clip = function( fx ) { + if ( !fx.clipInit ) { + fx.start = $( fx.elem ).cssClip(); + if ( typeof fx.end === "string" ) { + fx.end = parseClip( fx.end, fx.elem ); + } + fx.clipInit = true; + } + + $( fx.elem ).cssClip( { + top: fx.pos * ( fx.end.top - fx.start.top ) + fx.start.top, + right: fx.pos * ( fx.end.right - fx.start.right ) + fx.start.right, + bottom: fx.pos * ( fx.end.bottom - fx.start.bottom ) + fx.start.bottom, + left: fx.pos * ( fx.end.left - fx.start.left ) + fx.start.left + } ); +}; -})(); +} )(); /******************************************************************************/ /*********************************** EASING ***********************************/ /******************************************************************************/ -(function() { +( function() { -// based on easing equations from Robert Penner (http://www.robertpenner.com/easing) +// Based on easing equations from Robert Penner (http://www.robertpenner.com/easing) var baseEasings = {}; @@ -1257,7 +1593,7 @@ $.each( [ "Quad", "Cubic", "Quart", "Quint", "Expo" ], function( i, name ) { baseEasings[ name ] = function( p ) { return Math.pow( p, i + 2 ); }; -}); +} ); $.extend( baseEasings, { Sine: function( p ) { @@ -1268,7 +1604,7 @@ $.extend( baseEasings, { }, Elastic: function( p ) { return p === 0 || p === 1 ? p : - -Math.pow( 2, 8 * (p - 1) ) * Math.sin( ( (p - 1) * 80 - 7.5 ) * Math.PI / 15 ); + -Math.pow( 2, 8 * ( p - 1 ) ) * Math.sin( ( ( p - 1 ) * 80 - 7.5 ) * Math.PI / 15 ); }, Back: function( p ) { return p * p * ( 3 * p - 2 ); @@ -1280,7 +1616,7 @@ $.extend( baseEasings, { while ( p < ( ( pow2 = Math.pow( 2, --bounce ) ) - 1 ) / 11 ) {} return 1 / Math.pow( 4, 3 - bounce ) - 7.5625 * Math.pow( ( pow2 * 3 - 2 ) / 22 - p, 2 ); } -}); +} ); $.each( baseEasings, function( name, easeIn ) { $.easing[ "easeIn" + name ] = easeIn; @@ -1292,10 +1628,10 @@ $.each( baseEasings, function( name, easeIn ) { easeIn( p * 2 ) / 2 : 1 - easeIn( p * -2 + 2 ) / 2; }; -}); +} ); -})(); +} )(); return $.effects; -})); +} ) ); diff --git a/app/assets/javascripts/jquery-ui/effects/effect-blind.js b/app/assets/javascripts/jquery-ui/effects/effect-blind.js new file mode 100644 index 00000000..2ccd14fa --- /dev/null +++ b/app/assets/javascripts/jquery-ui/effects/effect-blind.js @@ -0,0 +1,73 @@ +//= require jquery-ui/version +//= require jquery-ui/effect + +/*! + * jQuery UI Effects Blind 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Blind Effect +//>>group: Effects +//>>description: Blinds the element. +//>>docs: http://api.jqueryui.com/blind-effect/ +//>>demos: http://jqueryui.com/effect/ + +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ + "jquery", + "../version", + "../effect" + ], factory ); + } else { + + // Browser globals + factory( jQuery ); + } +}( function( $ ) { + +return $.effects.define( "blind", "hide", function( options, done ) { + var map = { + up: [ "bottom", "top" ], + vertical: [ "bottom", "top" ], + down: [ "top", "bottom" ], + left: [ "right", "left" ], + horizontal: [ "right", "left" ], + right: [ "left", "right" ] + }, + element = $( this ), + direction = options.direction || "up", + start = element.cssClip(), + animate = { clip: $.extend( {}, start ) }, + placeholder = $.effects.createPlaceholder( element ); + + animate.clip[ map[ direction ][ 0 ] ] = animate.clip[ map[ direction ][ 1 ] ]; + + if ( options.mode === "show" ) { + element.cssClip( animate.clip ); + if ( placeholder ) { + placeholder.css( $.effects.clipToBox( animate ) ); + } + + animate.clip = start; + } + + if ( placeholder ) { + placeholder.animate( $.effects.clipToBox( animate ), options.duration, options.easing ); + } + + element.animate( animate, { + queue: false, + duration: options.duration, + easing: options.easing, + complete: done + } ); +} ); + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/effects/effect-bounce.js b/app/assets/javascripts/jquery-ui/effects/effect-bounce.js new file mode 100644 index 00000000..3dce7e9e --- /dev/null +++ b/app/assets/javascripts/jquery-ui/effects/effect-bounce.js @@ -0,0 +1,113 @@ +//= require jquery-ui/version +//= require jquery-ui/effect + +/*! + * jQuery UI Effects Bounce 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Bounce Effect +//>>group: Effects +//>>description: Bounces an element horizontally or vertically n times. +//>>docs: http://api.jqueryui.com/bounce-effect/ +//>>demos: http://jqueryui.com/effect/ + +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ + "jquery", + "../version", + "../effect" + ], factory ); + } else { + + // Browser globals + factory( jQuery ); + } +}( function( $ ) { + +return $.effects.define( "bounce", function( options, done ) { + var upAnim, downAnim, refValue, + element = $( this ), + + // Defaults: + mode = options.mode, + hide = mode === "hide", + show = mode === "show", + direction = options.direction || "up", + distance = options.distance, + times = options.times || 5, + + // Number of internal animations + anims = times * 2 + ( show || hide ? 1 : 0 ), + speed = options.duration / anims, + easing = options.easing, + + // Utility: + ref = ( direction === "up" || direction === "down" ) ? "top" : "left", + motion = ( direction === "up" || direction === "left" ), + i = 0, + + queuelen = element.queue().length; + + $.effects.createPlaceholder( element ); + + refValue = element.css( ref ); + + // Default distance for the BIGGEST bounce is the outer Distance / 3 + if ( !distance ) { + distance = element[ ref === "top" ? "outerHeight" : "outerWidth" ]() / 3; + } + + if ( show ) { + downAnim = { opacity: 1 }; + downAnim[ ref ] = refValue; + + // If we are showing, force opacity 0 and set the initial position + // then do the "first" animation + element + .css( "opacity", 0 ) + .css( ref, motion ? -distance * 2 : distance * 2 ) + .animate( downAnim, speed, easing ); + } + + // Start at the smallest distance if we are hiding + if ( hide ) { + distance = distance / Math.pow( 2, times - 1 ); + } + + downAnim = {}; + downAnim[ ref ] = refValue; + + // Bounces up/down/left/right then back to 0 -- times * 2 animations happen here + for ( ; i < times; i++ ) { + upAnim = {}; + upAnim[ ref ] = ( motion ? "-=" : "+=" ) + distance; + + element + .animate( upAnim, speed, easing ) + .animate( downAnim, speed, easing ); + + distance = hide ? distance * 2 : distance / 2; + } + + // Last Bounce when Hiding + if ( hide ) { + upAnim = { opacity: 0 }; + upAnim[ ref ] = ( motion ? "-=" : "+=" ) + distance; + + element.animate( upAnim, speed, easing ); + } + + element.queue( done ); + + $.effects.unshift( element, queuelen, anims + 1 ); +} ); + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/effects/effect-clip.js b/app/assets/javascripts/jquery-ui/effects/effect-clip.js new file mode 100644 index 00000000..b2001995 --- /dev/null +++ b/app/assets/javascripts/jquery-ui/effects/effect-clip.js @@ -0,0 +1,68 @@ +//= require jquery-ui/version +//= require jquery-ui/effect + +/*! + * jQuery UI Effects Clip 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Clip Effect +//>>group: Effects +//>>description: Clips the element on and off like an old TV. +//>>docs: http://api.jqueryui.com/clip-effect/ +//>>demos: http://jqueryui.com/effect/ + +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ + "jquery", + "../version", + "../effect" + ], factory ); + } else { + + // Browser globals + factory( jQuery ); + } +}( function( $ ) { + +return $.effects.define( "clip", "hide", function( options, done ) { + var start, + animate = {}, + element = $( this ), + direction = options.direction || "vertical", + both = direction === "both", + horizontal = both || direction === "horizontal", + vertical = both || direction === "vertical"; + + start = element.cssClip(); + animate.clip = { + top: vertical ? ( start.bottom - start.top ) / 2 : start.top, + right: horizontal ? ( start.right - start.left ) / 2 : start.right, + bottom: vertical ? ( start.bottom - start.top ) / 2 : start.bottom, + left: horizontal ? ( start.right - start.left ) / 2 : start.left + }; + + $.effects.createPlaceholder( element ); + + if ( options.mode === "show" ) { + element.cssClip( animate.clip ); + animate.clip = start; + } + + element.animate( animate, { + queue: false, + duration: options.duration, + easing: options.easing, + complete: done + } ); + +} ); + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/effects/effect-drop.js b/app/assets/javascripts/jquery-ui/effects/effect-drop.js new file mode 100644 index 00000000..e4893e69 --- /dev/null +++ b/app/assets/javascripts/jquery-ui/effects/effect-drop.js @@ -0,0 +1,72 @@ +//= require jquery-ui/version +//= require jquery-ui/effect + +/*! + * jQuery UI Effects Drop 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Drop Effect +//>>group: Effects +//>>description: Moves an element in one direction and hides it at the same time. +//>>docs: http://api.jqueryui.com/drop-effect/ +//>>demos: http://jqueryui.com/effect/ + +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ + "jquery", + "../version", + "../effect" + ], factory ); + } else { + + // Browser globals + factory( jQuery ); + } +}( function( $ ) { + +return $.effects.define( "drop", "hide", function( options, done ) { + + var distance, + element = $( this ), + mode = options.mode, + show = mode === "show", + direction = options.direction || "left", + ref = ( direction === "up" || direction === "down" ) ? "top" : "left", + motion = ( direction === "up" || direction === "left" ) ? "-=" : "+=", + oppositeMotion = ( motion === "+=" ) ? "-=" : "+=", + animation = { + opacity: 0 + }; + + $.effects.createPlaceholder( element ); + + distance = options.distance || + element[ ref === "top" ? "outerHeight" : "outerWidth" ]( true ) / 2; + + animation[ ref ] = motion + distance; + + if ( show ) { + element.css( animation ); + + animation[ ref ] = oppositeMotion + distance; + animation.opacity = 1; + } + + // Animate + element.animate( animation, { + queue: false, + duration: options.duration, + easing: options.easing, + complete: done + } ); +} ); + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/effects/effect-explode.js b/app/assets/javascripts/jquery-ui/effects/effect-explode.js new file mode 100644 index 00000000..05895fae --- /dev/null +++ b/app/assets/javascripts/jquery-ui/effects/effect-explode.js @@ -0,0 +1,114 @@ +//= require jquery-ui/version +//= require jquery-ui/effect + +/*! + * jQuery UI Effects Explode 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Explode Effect +//>>group: Effects +// jscs:disable maximumLineLength +//>>description: Explodes an element in all directions into n pieces. Implodes an element to its original wholeness. +// jscs:enable maximumLineLength +//>>docs: http://api.jqueryui.com/explode-effect/ +//>>demos: http://jqueryui.com/effect/ + +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ + "jquery", + "../version", + "../effect" + ], factory ); + } else { + + // Browser globals + factory( jQuery ); + } +}( function( $ ) { + +return $.effects.define( "explode", "hide", function( options, done ) { + + var i, j, left, top, mx, my, + rows = options.pieces ? Math.round( Math.sqrt( options.pieces ) ) : 3, + cells = rows, + element = $( this ), + mode = options.mode, + show = mode === "show", + + // Show and then visibility:hidden the element before calculating offset + offset = element.show().css( "visibility", "hidden" ).offset(), + + // Width and height of a piece + width = Math.ceil( element.outerWidth() / cells ), + height = Math.ceil( element.outerHeight() / rows ), + pieces = []; + + // Children animate complete: + function childComplete() { + pieces.push( this ); + if ( pieces.length === rows * cells ) { + animComplete(); + } + } + + // Clone the element for each row and cell. + for ( i = 0; i < rows; i++ ) { // ===> + top = offset.top + i * height; + my = i - ( rows - 1 ) / 2; + + for ( j = 0; j < cells; j++ ) { // ||| + left = offset.left + j * width; + mx = j - ( cells - 1 ) / 2; + + // Create a clone of the now hidden main element that will be absolute positioned + // within a wrapper div off the -left and -top equal to size of our pieces + element + .clone() + .appendTo( "body" ) + .wrap( "
" ) + .css( { + position: "absolute", + visibility: "visible", + left: -j * width, + top: -i * height + } ) + + // Select the wrapper - make it overflow: hidden and absolute positioned based on + // where the original was located +left and +top equal to the size of pieces + .parent() + .addClass( "ui-effects-explode" ) + .css( { + position: "absolute", + overflow: "hidden", + width: width, + height: height, + left: left + ( show ? mx * width : 0 ), + top: top + ( show ? my * height : 0 ), + opacity: show ? 0 : 1 + } ) + .animate( { + left: left + ( show ? 0 : mx * width ), + top: top + ( show ? 0 : my * height ), + opacity: show ? 1 : 0 + }, options.duration || 500, options.easing, childComplete ); + } + } + + function animComplete() { + element.css( { + visibility: "visible" + } ); + $( pieces ).remove(); + done(); + } +} ); + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/effects/effect-fade.js b/app/assets/javascripts/jquery-ui/effects/effect-fade.js new file mode 100644 index 00000000..cd6f1d2a --- /dev/null +++ b/app/assets/javascripts/jquery-ui/effects/effect-fade.js @@ -0,0 +1,50 @@ +//= require jquery-ui/version +//= require jquery-ui/effect + +/*! + * jQuery UI Effects Fade 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Fade Effect +//>>group: Effects +//>>description: Fades the element. +//>>docs: http://api.jqueryui.com/fade-effect/ +//>>demos: http://jqueryui.com/effect/ + +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ + "jquery", + "../version", + "../effect" + ], factory ); + } else { + + // Browser globals + factory( jQuery ); + } +}( function( $ ) { + +return $.effects.define( "fade", "toggle", function( options, done ) { + var show = options.mode === "show"; + + $( this ) + .css( "opacity", show ? 0 : 1 ) + .animate( { + opacity: show ? 1 : 0 + }, { + queue: false, + duration: options.duration, + easing: options.easing, + complete: done + } ); +} ); + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/effects/effect-fold.js b/app/assets/javascripts/jquery-ui/effects/effect-fold.js new file mode 100644 index 00000000..b36d60f1 --- /dev/null +++ b/app/assets/javascripts/jquery-ui/effects/effect-fold.js @@ -0,0 +1,92 @@ +//= require jquery-ui/version +//= require jquery-ui/effect + +/*! + * jQuery UI Effects Fold 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Fold Effect +//>>group: Effects +//>>description: Folds an element first horizontally and then vertically. +//>>docs: http://api.jqueryui.com/fold-effect/ +//>>demos: http://jqueryui.com/effect/ + +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ + "jquery", + "../version", + "../effect" + ], factory ); + } else { + + // Browser globals + factory( jQuery ); + } +}( function( $ ) { + +return $.effects.define( "fold", "hide", function( options, done ) { + + // Create element + var element = $( this ), + mode = options.mode, + show = mode === "show", + hide = mode === "hide", + size = options.size || 15, + percent = /([0-9]+)%/.exec( size ), + horizFirst = !!options.horizFirst, + ref = horizFirst ? [ "right", "bottom" ] : [ "bottom", "right" ], + duration = options.duration / 2, + + placeholder = $.effects.createPlaceholder( element ), + + start = element.cssClip(), + animation1 = { clip: $.extend( {}, start ) }, + animation2 = { clip: $.extend( {}, start ) }, + + distance = [ start[ ref[ 0 ] ], start[ ref[ 1 ] ] ], + + queuelen = element.queue().length; + + if ( percent ) { + size = parseInt( percent[ 1 ], 10 ) / 100 * distance[ hide ? 0 : 1 ]; + } + animation1.clip[ ref[ 0 ] ] = size; + animation2.clip[ ref[ 0 ] ] = size; + animation2.clip[ ref[ 1 ] ] = 0; + + if ( show ) { + element.cssClip( animation2.clip ); + if ( placeholder ) { + placeholder.css( $.effects.clipToBox( animation2 ) ); + } + + animation2.clip = start; + } + + // Animate + element + .queue( function( next ) { + if ( placeholder ) { + placeholder + .animate( $.effects.clipToBox( animation1 ), duration, options.easing ) + .animate( $.effects.clipToBox( animation2 ), duration, options.easing ); + } + + next(); + } ) + .animate( animation1, duration, options.easing ) + .animate( animation2, duration, options.easing ) + .queue( done ); + + $.effects.unshift( element, queuelen, 4 ); +} ); + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/effects/effect-highlight.js b/app/assets/javascripts/jquery-ui/effects/effect-highlight.js new file mode 100644 index 00000000..44188a3b --- /dev/null +++ b/app/assets/javascripts/jquery-ui/effects/effect-highlight.js @@ -0,0 +1,60 @@ +//= require jquery-ui/version +//= require jquery-ui/effect + +/*! + * jQuery UI Effects Highlight 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Highlight Effect +//>>group: Effects +//>>description: Highlights the background of an element in a defined color for a custom duration. +//>>docs: http://api.jqueryui.com/highlight-effect/ +//>>demos: http://jqueryui.com/effect/ + +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ + "jquery", + "../version", + "../effect" + ], factory ); + } else { + + // Browser globals + factory( jQuery ); + } +}( function( $ ) { + +return $.effects.define( "highlight", "show", function( options, done ) { + var element = $( this ), + animation = { + backgroundColor: element.css( "backgroundColor" ) + }; + + if ( options.mode === "hide" ) { + animation.opacity = 0; + } + + $.effects.saveStyle( element ); + + element + .css( { + backgroundImage: "none", + backgroundColor: options.color || "#ffff99" + } ) + .animate( animation, { + queue: false, + duration: options.duration, + easing: options.easing, + complete: done + } ); +} ); + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/effects/effect-puff.js b/app/assets/javascripts/jquery-ui/effects/effect-puff.js new file mode 100644 index 00000000..0b56bf84 --- /dev/null +++ b/app/assets/javascripts/jquery-ui/effects/effect-puff.js @@ -0,0 +1,46 @@ +//= require jquery-ui/version +//= require jquery-ui/effect +//= require jquery-ui/effects/effect-scale + +/*! + * jQuery UI Effects Puff 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Puff Effect +//>>group: Effects +//>>description: Creates a puff effect by scaling the element up and hiding it at the same time. +//>>docs: http://api.jqueryui.com/puff-effect/ +//>>demos: http://jqueryui.com/effect/ + +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ + "jquery", + "../version", + "../effect", + "./effect-scale" + ], factory ); + } else { + + // Browser globals + factory( jQuery ); + } +}( function( $ ) { + +return $.effects.define( "puff", "hide", function( options, done ) { + var newOptions = $.extend( true, {}, options, { + fade: true, + percent: parseInt( options.percent, 10 ) || 150 + } ); + + $.effects.effect.scale.call( this, newOptions, done ); +} ); + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/effects/effect-pulsate.js b/app/assets/javascripts/jquery-ui/effects/effect-pulsate.js new file mode 100644 index 00000000..7b0befcf --- /dev/null +++ b/app/assets/javascripts/jquery-ui/effects/effect-pulsate.js @@ -0,0 +1,67 @@ +//= require jquery-ui/version +//= require jquery-ui/effect + +/*! + * jQuery UI Effects Pulsate 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Pulsate Effect +//>>group: Effects +//>>description: Pulsates an element n times by changing the opacity to zero and back. +//>>docs: http://api.jqueryui.com/pulsate-effect/ +//>>demos: http://jqueryui.com/effect/ + +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ + "jquery", + "../version", + "../effect" + ], factory ); + } else { + + // Browser globals + factory( jQuery ); + } +}( function( $ ) { + +return $.effects.define( "pulsate", "show", function( options, done ) { + var element = $( this ), + mode = options.mode, + show = mode === "show", + hide = mode === "hide", + showhide = show || hide, + + // Showing or hiding leaves off the "last" animation + anims = ( ( options.times || 5 ) * 2 ) + ( showhide ? 1 : 0 ), + duration = options.duration / anims, + animateTo = 0, + i = 1, + queuelen = element.queue().length; + + if ( show || !element.is( ":visible" ) ) { + element.css( "opacity", 0 ).show(); + animateTo = 1; + } + + // Anims - 1 opacity "toggles" + for ( ; i < anims; i++ ) { + element.animate( { opacity: animateTo }, duration, options.easing ); + animateTo = 1 - animateTo; + } + + element.animate( { opacity: animateTo }, duration, options.easing ); + + element.queue( done ); + + $.effects.unshift( element, queuelen, anims + 1 ); +} ); + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/effects/effect-scale.js b/app/assets/javascripts/jquery-ui/effects/effect-scale.js new file mode 100644 index 00000000..dbc4996c --- /dev/null +++ b/app/assets/javascripts/jquery-ui/effects/effect-scale.js @@ -0,0 +1,60 @@ +//= require jquery-ui/version +//= require jquery-ui/effect +//= require jquery-ui/effects/effect-size + +/*! + * jQuery UI Effects Scale 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Scale Effect +//>>group: Effects +//>>description: Grows or shrinks an element and its content. +//>>docs: http://api.jqueryui.com/scale-effect/ +//>>demos: http://jqueryui.com/effect/ + +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ + "jquery", + "../version", + "../effect", + "./effect-size" + ], factory ); + } else { + + // Browser globals + factory( jQuery ); + } +}( function( $ ) { + +return $.effects.define( "scale", function( options, done ) { + + // Create element + var el = $( this ), + mode = options.mode, + percent = parseInt( options.percent, 10 ) || + ( parseInt( options.percent, 10 ) === 0 ? 0 : ( mode !== "effect" ? 0 : 100 ) ), + + newOptions = $.extend( true, { + from: $.effects.scaledDimensions( el ), + to: $.effects.scaledDimensions( el, percent, options.direction || "both" ), + origin: options.origin || [ "middle", "center" ] + }, options ); + + // Fade option to support puff + if ( options.fade ) { + newOptions.from.opacity = 1; + newOptions.to.opacity = 0; + } + + $.effects.effect.size.call( this, newOptions, done ); +} ); + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/effects/effect-shake.js b/app/assets/javascripts/jquery-ui/effects/effect-shake.js new file mode 100644 index 00000000..2c2d6f64 --- /dev/null +++ b/app/assets/javascripts/jquery-ui/effects/effect-shake.js @@ -0,0 +1,77 @@ +//= require jquery-ui/version +//= require jquery-ui/effect + +/*! + * jQuery UI Effects Shake 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Shake Effect +//>>group: Effects +//>>description: Shakes an element horizontally or vertically n times. +//>>docs: http://api.jqueryui.com/shake-effect/ +//>>demos: http://jqueryui.com/effect/ + +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ + "jquery", + "../version", + "../effect" + ], factory ); + } else { + + // Browser globals + factory( jQuery ); + } +}( function( $ ) { + +return $.effects.define( "shake", function( options, done ) { + + var i = 1, + element = $( this ), + direction = options.direction || "left", + distance = options.distance || 20, + times = options.times || 3, + anims = times * 2 + 1, + speed = Math.round( options.duration / anims ), + ref = ( direction === "up" || direction === "down" ) ? "top" : "left", + positiveMotion = ( direction === "up" || direction === "left" ), + animation = {}, + animation1 = {}, + animation2 = {}, + + queuelen = element.queue().length; + + $.effects.createPlaceholder( element ); + + // Animation + animation[ ref ] = ( positiveMotion ? "-=" : "+=" ) + distance; + animation1[ ref ] = ( positiveMotion ? "+=" : "-=" ) + distance * 2; + animation2[ ref ] = ( positiveMotion ? "-=" : "+=" ) + distance * 2; + + // Animate + element.animate( animation, speed, options.easing ); + + // Shakes + for ( ; i < times; i++ ) { + element + .animate( animation1, speed, options.easing ) + .animate( animation2, speed, options.easing ); + } + + element + .animate( animation1, speed, options.easing ) + .animate( animation, speed / 2, options.easing ) + .queue( done ); + + $.effects.unshift( element, queuelen, anims + 1 ); +} ); + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/effects/effect-size.js b/app/assets/javascripts/jquery-ui/effects/effect-size.js new file mode 100644 index 00000000..0c08b722 --- /dev/null +++ b/app/assets/javascripts/jquery-ui/effects/effect-size.js @@ -0,0 +1,194 @@ +//= require jquery-ui/version +//= require jquery-ui/effect + +/*! + * jQuery UI Effects Size 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Size Effect +//>>group: Effects +//>>description: Resize an element to a specified width and height. +//>>docs: http://api.jqueryui.com/size-effect/ +//>>demos: http://jqueryui.com/effect/ + +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ + "jquery", + "../version", + "../effect" + ], factory ); + } else { + + // Browser globals + factory( jQuery ); + } +}( function( $ ) { + +return $.effects.define( "size", function( options, done ) { + + // Create element + var baseline, factor, temp, + element = $( this ), + + // Copy for children + cProps = [ "fontSize" ], + vProps = [ "borderTopWidth", "borderBottomWidth", "paddingTop", "paddingBottom" ], + hProps = [ "borderLeftWidth", "borderRightWidth", "paddingLeft", "paddingRight" ], + + // Set options + mode = options.mode, + restore = mode !== "effect", + scale = options.scale || "both", + origin = options.origin || [ "middle", "center" ], + position = element.css( "position" ), + pos = element.position(), + original = $.effects.scaledDimensions( element ), + from = options.from || original, + to = options.to || $.effects.scaledDimensions( element, 0 ); + + $.effects.createPlaceholder( element ); + + if ( mode === "show" ) { + temp = from; + from = to; + to = temp; + } + + // Set scaling factor + factor = { + from: { + y: from.height / original.height, + x: from.width / original.width + }, + to: { + y: to.height / original.height, + x: to.width / original.width + } + }; + + // Scale the css box + if ( scale === "box" || scale === "both" ) { + + // Vertical props scaling + if ( factor.from.y !== factor.to.y ) { + from = $.effects.setTransition( element, vProps, factor.from.y, from ); + to = $.effects.setTransition( element, vProps, factor.to.y, to ); + } + + // Horizontal props scaling + if ( factor.from.x !== factor.to.x ) { + from = $.effects.setTransition( element, hProps, factor.from.x, from ); + to = $.effects.setTransition( element, hProps, factor.to.x, to ); + } + } + + // Scale the content + if ( scale === "content" || scale === "both" ) { + + // Vertical props scaling + if ( factor.from.y !== factor.to.y ) { + from = $.effects.setTransition( element, cProps, factor.from.y, from ); + to = $.effects.setTransition( element, cProps, factor.to.y, to ); + } + } + + // Adjust the position properties based on the provided origin points + if ( origin ) { + baseline = $.effects.getBaseline( origin, original ); + from.top = ( original.outerHeight - from.outerHeight ) * baseline.y + pos.top; + from.left = ( original.outerWidth - from.outerWidth ) * baseline.x + pos.left; + to.top = ( original.outerHeight - to.outerHeight ) * baseline.y + pos.top; + to.left = ( original.outerWidth - to.outerWidth ) * baseline.x + pos.left; + } + element.css( from ); + + // Animate the children if desired + if ( scale === "content" || scale === "both" ) { + + vProps = vProps.concat( [ "marginTop", "marginBottom" ] ).concat( cProps ); + hProps = hProps.concat( [ "marginLeft", "marginRight" ] ); + + // Only animate children with width attributes specified + // TODO: is this right? should we include anything with css width specified as well + element.find( "*[width]" ).each( function() { + var child = $( this ), + childOriginal = $.effects.scaledDimensions( child ), + childFrom = { + height: childOriginal.height * factor.from.y, + width: childOriginal.width * factor.from.x, + outerHeight: childOriginal.outerHeight * factor.from.y, + outerWidth: childOriginal.outerWidth * factor.from.x + }, + childTo = { + height: childOriginal.height * factor.to.y, + width: childOriginal.width * factor.to.x, + outerHeight: childOriginal.height * factor.to.y, + outerWidth: childOriginal.width * factor.to.x + }; + + // Vertical props scaling + if ( factor.from.y !== factor.to.y ) { + childFrom = $.effects.setTransition( child, vProps, factor.from.y, childFrom ); + childTo = $.effects.setTransition( child, vProps, factor.to.y, childTo ); + } + + // Horizontal props scaling + if ( factor.from.x !== factor.to.x ) { + childFrom = $.effects.setTransition( child, hProps, factor.from.x, childFrom ); + childTo = $.effects.setTransition( child, hProps, factor.to.x, childTo ); + } + + if ( restore ) { + $.effects.saveStyle( child ); + } + + // Animate children + child.css( childFrom ); + child.animate( childTo, options.duration, options.easing, function() { + + // Restore children + if ( restore ) { + $.effects.restoreStyle( child ); + } + } ); + } ); + } + + // Animate + element.animate( to, { + queue: false, + duration: options.duration, + easing: options.easing, + complete: function() { + + var offset = element.offset(); + + if ( to.opacity === 0 ) { + element.css( "opacity", from.opacity ); + } + + if ( !restore ) { + element + .css( "position", position === "static" ? "relative" : position ) + .offset( offset ); + + // Need to save style here so that automatic style restoration + // doesn't restore to the original styles from before the animation. + $.effects.saveStyle( element ); + } + + done(); + } + } ); + +} ); + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/effects/effect-slide.js b/app/assets/javascripts/jquery-ui/effects/effect-slide.js new file mode 100644 index 00000000..8b92a19b --- /dev/null +++ b/app/assets/javascripts/jquery-ui/effects/effect-slide.js @@ -0,0 +1,79 @@ +//= require jquery-ui/version +//= require jquery-ui/effect + +/*! + * jQuery UI Effects Slide 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Slide Effect +//>>group: Effects +//>>description: Slides an element in and out of the viewport. +//>>docs: http://api.jqueryui.com/slide-effect/ +//>>demos: http://jqueryui.com/effect/ + +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ + "jquery", + "../version", + "../effect" + ], factory ); + } else { + + // Browser globals + factory( jQuery ); + } +}( function( $ ) { + +return $.effects.define( "slide", "show", function( options, done ) { + var startClip, startRef, + element = $( this ), + map = { + up: [ "bottom", "top" ], + down: [ "top", "bottom" ], + left: [ "right", "left" ], + right: [ "left", "right" ] + }, + mode = options.mode, + direction = options.direction || "left", + ref = ( direction === "up" || direction === "down" ) ? "top" : "left", + positiveMotion = ( direction === "up" || direction === "left" ), + distance = options.distance || + element[ ref === "top" ? "outerHeight" : "outerWidth" ]( true ), + animation = {}; + + $.effects.createPlaceholder( element ); + + startClip = element.cssClip(); + startRef = element.position()[ ref ]; + + // Define hide animation + animation[ ref ] = ( positiveMotion ? -1 : 1 ) * distance + startRef; + animation.clip = element.cssClip(); + animation.clip[ map[ direction ][ 1 ] ] = animation.clip[ map[ direction ][ 0 ] ]; + + // Reverse the animation if we're showing + if ( mode === "show" ) { + element.cssClip( animation.clip ); + element.css( ref, animation[ ref ] ); + animation.clip = startClip; + animation[ ref ] = startRef; + } + + // Actually animate + element.animate( animation, { + queue: false, + duration: options.duration, + easing: options.easing, + complete: done + } ); +} ); + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/effects/effect-transfer.js b/app/assets/javascripts/jquery-ui/effects/effect-transfer.js new file mode 100644 index 00000000..792e2783 --- /dev/null +++ b/app/assets/javascripts/jquery-ui/effects/effect-transfer.js @@ -0,0 +1,43 @@ +//= require jquery-ui/version +//= require jquery-ui/effect + +/*! + * jQuery UI Effects Transfer 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Transfer Effect +//>>group: Effects +//>>description: Displays a transfer effect from one element to another. +//>>docs: http://api.jqueryui.com/transfer-effect/ +//>>demos: http://jqueryui.com/effect/ + +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ + "jquery", + "../version", + "../effect" + ], factory ); + } else { + + // Browser globals + factory( jQuery ); + } +}( function( $ ) { + +var effect; +if ( $.uiBackCompat !== false ) { + effect = $.effects.define( "transfer", function( options, done ) { + $( this ).transfer( options, done ); + } ); +} +return effect; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/escape-selector.js b/app/assets/javascripts/jquery-ui/escape-selector.js new file mode 100644 index 00000000..48d7e629 --- /dev/null +++ b/app/assets/javascripts/jquery-ui/escape-selector.js @@ -0,0 +1,23 @@ +//= require jquery-ui/version + +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "jquery", "./version" ], factory ); + } else { + + // Browser globals + factory( jQuery ); + } +} ( function( $ ) { + +// Internal use only +return $.ui.escapeSelector = ( function() { + var selectorEscape = /([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g; + return function( selector ) { + return selector.replace( selectorEscape, "\\$1" ); + }; +} )(); + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/focusable.js b/app/assets/javascripts/jquery-ui/focusable.js new file mode 100644 index 00000000..2300ba9e --- /dev/null +++ b/app/assets/javascripts/jquery-ui/focusable.js @@ -0,0 +1,86 @@ +//= require jquery-ui/version + +/*! + * jQuery UI Focusable 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: :focusable Selector +//>>group: Core +//>>description: Selects elements which can be focused. +//>>docs: http://api.jqueryui.com/focusable-selector/ + +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "jquery", "./version" ], factory ); + } else { + + // Browser globals + factory( jQuery ); + } +} ( function( $ ) { + +// Selectors +$.ui.focusable = function( element, hasTabindex ) { + var map, mapName, img, focusableIfVisible, fieldset, + nodeName = element.nodeName.toLowerCase(); + + if ( "area" === nodeName ) { + map = element.parentNode; + mapName = map.name; + if ( !element.href || !mapName || map.nodeName.toLowerCase() !== "map" ) { + return false; + } + img = $( "img[usemap='#" + mapName + "']" ); + return img.length > 0 && img.is( ":visible" ); + } + + if ( /^(input|select|textarea|button|object)$/.test( nodeName ) ) { + focusableIfVisible = !element.disabled; + + if ( focusableIfVisible ) { + + // Form controls within a disabled fieldset are disabled. + // However, controls within the fieldset's legend do not get disabled. + // Since controls generally aren't placed inside legends, we skip + // this portion of the check. + fieldset = $( element ).closest( "fieldset" )[ 0 ]; + if ( fieldset ) { + focusableIfVisible = !fieldset.disabled; + } + } + } else if ( "a" === nodeName ) { + focusableIfVisible = element.href || hasTabindex; + } else { + focusableIfVisible = hasTabindex; + } + + return focusableIfVisible && $( element ).is( ":visible" ) && visible( $( element ) ); +}; + +// Support: IE 8 only +// IE 8 doesn't resolve inherit to visible/hidden for computed values +function visible( element ) { + var visibility = element.css( "visibility" ); + while ( visibility === "inherit" ) { + element = element.parent(); + visibility = element.css( "visibility" ); + } + return visibility !== "hidden"; +} + +$.extend( $.expr[ ":" ], { + focusable: function( element ) { + return $.ui.focusable( element, $.attr( element, "tabindex" ) != null ); + } +} ); + +return $.ui.focusable; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/form-reset-mixin.js b/app/assets/javascripts/jquery-ui/form-reset-mixin.js new file mode 100644 index 00000000..db764acb --- /dev/null +++ b/app/assets/javascripts/jquery-ui/form-reset-mixin.js @@ -0,0 +1,80 @@ +//= require jquery-ui/form +//= require jquery-ui/version + +/*! + * jQuery UI Form Reset Mixin 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Form Reset Mixin +//>>group: Core +//>>description: Refresh input widgets when their form is reset +//>>docs: http://api.jqueryui.com/form-reset-mixin/ + +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ + "jquery", + "./form", + "./version" + ], factory ); + } else { + + // Browser globals + factory( jQuery ); + } +}( function( $ ) { + +return $.ui.formResetMixin = { + _formResetHandler: function() { + var form = $( this ); + + // Wait for the form reset to actually happen before refreshing + setTimeout( function() { + var instances = form.data( "ui-form-reset-instances" ); + $.each( instances, function() { + this.refresh(); + } ); + } ); + }, + + _bindFormResetHandler: function() { + this.form = this.element.form(); + if ( !this.form.length ) { + return; + } + + var instances = this.form.data( "ui-form-reset-instances" ) || []; + if ( !instances.length ) { + + // We don't use _on() here because we use a single event handler per form + this.form.on( "reset.ui-form-reset", this._formResetHandler ); + } + instances.push( this ); + this.form.data( "ui-form-reset-instances", instances ); + }, + + _unbindFormResetHandler: function() { + if ( !this.form.length ) { + return; + } + + var instances = this.form.data( "ui-form-reset-instances" ); + instances.splice( $.inArray( this, instances ), 1 ); + if ( instances.length ) { + this.form.data( "ui-form-reset-instances", instances ); + } else { + this.form + .removeData( "ui-form-reset-instances" ) + .off( "reset.ui-form-reset" ); + } + } +}; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/form.js b/app/assets/javascripts/jquery-ui/form.js new file mode 100644 index 00000000..e190082e --- /dev/null +++ b/app/assets/javascripts/jquery-ui/form.js @@ -0,0 +1,22 @@ +//= require jquery-ui/version + +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "jquery", "./version" ], factory ); + } else { + + // Browser globals + factory( jQuery ); + } +} ( function( $ ) { + +// Support: IE8 Only +// IE8 does not support the form attribute and when it is supplied. It overwrites the form prop +// with a string, so we need to find the proper form. +return $.fn.form = function() { + return typeof this[ 0 ].form === "string" ? this.closest( "form" ) : $( this[ 0 ].form ); +}; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-af.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-af.js new file mode 100644 index 00000000..c7568888 --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-af.js @@ -0,0 +1,37 @@ +/* Afrikaans initialisation for the jQuery UI date picker plugin. */ +/* Written by Renier Pretorius. */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional.af = { + closeText: "Selekteer", + prevText: "Vorige", + nextText: "Volgende", + currentText: "Vandag", + monthNames: [ "Januarie","Februarie","Maart","April","Mei","Junie", + "Julie","Augustus","September","Oktober","November","Desember" ], + monthNamesShort: [ "Jan", "Feb", "Mrt", "Apr", "Mei", "Jun", + "Jul", "Aug", "Sep", "Okt", "Nov", "Des" ], + dayNames: [ "Sondag", "Maandag", "Dinsdag", "Woensdag", "Donderdag", "Vrydag", "Saterdag" ], + dayNamesShort: [ "Son", "Maa", "Din", "Woe", "Don", "Vry", "Sat" ], + dayNamesMin: [ "So","Ma","Di","Wo","Do","Vr","Sa" ], + weekHeader: "Wk", + dateFormat: "dd/mm/yy", + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.af ); + +return datepicker.regional.af; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-ar-DZ.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-ar-DZ.js new file mode 100644 index 00000000..a2b1750b --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-ar-DZ.js @@ -0,0 +1,39 @@ +/* Algerian Arabic Translation for jQuery UI date picker plugin. +/* Used in most of Maghreb countries, primarily in Algeria, Tunisia, Morocco. +/* Mohamed Cherif BOUCHELAGHEM -- cherifbouchelaghem@yahoo.fr */ +/* Mohamed Amine HADDAD -- zatamine@gmail.com */ + +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional[ "ar-DZ" ] = { + closeText: "إغلاق", + prevText: "<السابق", + nextText: "التالي>", + currentText: "اليوم", + monthNames: [ "جانفي", "فيفري", "مارس", "أفريل", "ماي", "جوان", + "جويلية", "أوت", "سبتمبر","أكتوبر", "نوفمبر", "ديسمبر" ], + monthNamesShort: [ "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12" ], + dayNames: [ "الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت" ], + dayNamesShort: [ "الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت" ], + dayNamesMin: [ "ح", "ن", "ث", "ر", "خ", "ج", "س" ], + weekHeader: "أسبوع", + dateFormat: "dd/mm/yy", + firstDay: 6, + isRTL: true, + showMonthAfterYear: false, + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional[ "ar-DZ" ] ); + +return datepicker.regional[ "ar-DZ" ]; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-ar.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-ar.js new file mode 100644 index 00000000..95784e88 --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-ar.js @@ -0,0 +1,39 @@ +/* Arabic Translation for jQuery UI date picker plugin. */ +/* Used in most of Arab countries, primarily in Bahrain, */ +/* Kuwait, Oman, Qatar, Saudi Arabia and the United Arab Emirates, Egypt, Sudan and Yemen. */ +/* Written by Mohammed Alshehri -- m@dralshehri.com */ + +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional.ar = { + closeText: "إغلاق", + prevText: "<السابق", + nextText: "التالي>", + currentText: "اليوم", + monthNames: [ "يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", + "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر" ], + monthNamesShort: [ "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12" ], + dayNames: [ "الأحد", "الاثنين", "الثلاثاء", "الأربعاء", "الخميس", "الجمعة", "السبت" ], + dayNamesShort: [ "أحد", "اثنين", "ثلاثاء", "أربعاء", "خميس", "جمعة", "سبت" ], + dayNamesMin: [ "ح", "ن", "ث", "ر", "خ", "ج", "س" ], + weekHeader: "أسبوع", + dateFormat: "dd/mm/yy", + firstDay: 0, + isRTL: true, + showMonthAfterYear: false, + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.ar ); + +return datepicker.regional.ar; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-az.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-az.js new file mode 100644 index 00000000..2ebdcfa8 --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-az.js @@ -0,0 +1,37 @@ +/* Azerbaijani (UTF-8) initialisation for the jQuery UI date picker plugin. */ +/* Written by Jamil Najafov (necefov33@gmail.com). */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional.az = { + closeText: "Bağla", + prevText: "<Geri", + nextText: "İrəli>", + currentText: "Bugün", + monthNames: [ "Yanvar","Fevral","Mart","Aprel","May","İyun", + "İyul","Avqust","Sentyabr","Oktyabr","Noyabr","Dekabr" ], + monthNamesShort: [ "Yan","Fev","Mar","Apr","May","İyun", + "İyul","Avq","Sen","Okt","Noy","Dek" ], + dayNames: [ "Bazar","Bazar ertəsi","Çərşənbə axşamı","Çərşənbə","Cümə axşamı","Cümə","Şənbə" ], + dayNamesShort: [ "B","Be","Ça","Ç","Ca","C","Ş" ], + dayNamesMin: [ "B","B","Ç","С","Ç","C","Ş" ], + weekHeader: "Hf", + dateFormat: "dd.mm.yy", + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.az ); + +return datepicker.regional.az; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-be.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-be.js new file mode 100644 index 00000000..7d96dd1d --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-be.js @@ -0,0 +1,37 @@ +/* Belarusian initialisation for the jQuery UI date picker plugin. */ +/* Written by Pavel Selitskas */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional.be = { + closeText: "Зачыніць", + prevText: "←Папяр.", + nextText: "Наст.→", + currentText: "Сёньня", + monthNames: [ "Студзень","Люты","Сакавік","Красавік","Травень","Чэрвень", + "Ліпень","Жнівень","Верасень","Кастрычнік","Лістапад","Сьнежань" ], + monthNamesShort: [ "Сту","Лют","Сак","Кра","Тра","Чэр", + "Ліп","Жні","Вер","Кас","Ліс","Сьн" ], + dayNames: [ "нядзеля","панядзелак","аўторак","серада","чацьвер","пятніца","субота" ], + dayNamesShort: [ "ндз","пнд","аўт","срд","чцв","птн","сбт" ], + dayNamesMin: [ "Нд","Пн","Аў","Ср","Чц","Пт","Сб" ], + weekHeader: "Тд", + dateFormat: "dd.mm.yy", + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.be ); + +return datepicker.regional.be; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-bg.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-bg.js new file mode 100644 index 00000000..cb066a4c --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-bg.js @@ -0,0 +1,38 @@ +/* Bulgarian initialisation for the jQuery UI date picker plugin. */ +/* Written by Stoyan Kyosev (http://svest.org). */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional.bg = { + closeText: "затвори", + prevText: "<назад", + nextText: "напред>", + nextBigText: ">>", + currentText: "днес", + monthNames: [ "Януари","Февруари","Март","Април","Май","Юни", + "Юли","Август","Септември","Октомври","Ноември","Декември" ], + monthNamesShort: [ "Яну","Фев","Мар","Апр","Май","Юни", + "Юли","Авг","Сеп","Окт","Нов","Дек" ], + dayNames: [ "Неделя","Понеделник","Вторник","Сряда","Четвъртък","Петък","Събота" ], + dayNamesShort: [ "Нед","Пон","Вто","Сря","Чет","Пет","Съб" ], + dayNamesMin: [ "Не","По","Вт","Ср","Че","Пе","Съ" ], + weekHeader: "Wk", + dateFormat: "dd.mm.yy", + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.bg ); + +return datepicker.regional.bg; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-bs.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-bs.js new file mode 100644 index 00000000..b9f2e286 --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-bs.js @@ -0,0 +1,37 @@ +/* Bosnian i18n for the jQuery UI date picker plugin. */ +/* Written by Kenan Konjo. */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional.bs = { + closeText: "Zatvori", + prevText: "<", + nextText: ">", + currentText: "Danas", + monthNames: [ "Januar","Februar","Mart","April","Maj","Juni", + "Juli","August","Septembar","Oktobar","Novembar","Decembar" ], + monthNamesShort: [ "Jan","Feb","Mar","Apr","Maj","Jun", + "Jul","Aug","Sep","Okt","Nov","Dec" ], + dayNames: [ "Nedelja","Ponedeljak","Utorak","Srijeda","Četvrtak","Petak","Subota" ], + dayNamesShort: [ "Ned","Pon","Uto","Sri","Čet","Pet","Sub" ], + dayNamesMin: [ "Ne","Po","Ut","Sr","Če","Pe","Su" ], + weekHeader: "Wk", + dateFormat: "dd.mm.yy", + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.bs ); + +return datepicker.regional.bs; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-ca.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-ca.js new file mode 100644 index 00000000..9febd90e --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-ca.js @@ -0,0 +1,37 @@ +/* Inicialització en català per a l'extensió 'UI date picker' per jQuery. */ +/* Writers: (joan.leon@gmail.com). */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional.ca = { + closeText: "Tanca", + prevText: "Anterior", + nextText: "Següent", + currentText: "Avui", + monthNames: [ "gener","febrer","març","abril","maig","juny", + "juliol","agost","setembre","octubre","novembre","desembre" ], + monthNamesShort: [ "gen","feb","març","abr","maig","juny", + "jul","ag","set","oct","nov","des" ], + dayNames: [ "diumenge","dilluns","dimarts","dimecres","dijous","divendres","dissabte" ], + dayNamesShort: [ "dg","dl","dt","dc","dj","dv","ds" ], + dayNamesMin: [ "dg","dl","dt","dc","dj","dv","ds" ], + weekHeader: "Set", + dateFormat: "dd/mm/yy", + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.ca ); + +return datepicker.regional.ca; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-cs.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-cs.js new file mode 100644 index 00000000..c2f79cf9 --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-cs.js @@ -0,0 +1,37 @@ +/* Czech initialisation for the jQuery UI date picker plugin. */ +/* Written by Tomas Muller (tomas@tomas-muller.net). */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional.cs = { + closeText: "Zavřít", + prevText: "<Dříve", + nextText: "Později>", + currentText: "Nyní", + monthNames: [ "leden","únor","březen","duben","květen","červen", + "červenec","srpen","září","říjen","listopad","prosinec" ], + monthNamesShort: [ "led","úno","bře","dub","kvě","čer", + "čvc","srp","zář","říj","lis","pro" ], + dayNames: [ "neděle", "pondělí", "úterý", "středa", "čtvrtek", "pátek", "sobota" ], + dayNamesShort: [ "ne", "po", "út", "st", "čt", "pá", "so" ], + dayNamesMin: [ "ne","po","út","st","čt","pá","so" ], + weekHeader: "Týd", + dateFormat: "dd.mm.yy", + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.cs ); + +return datepicker.regional.cs; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-cy-GB.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-cy-GB.js new file mode 100644 index 00000000..14fce914 --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-cy-GB.js @@ -0,0 +1,45 @@ +/* Welsh/UK initialisation for the jQuery UI date picker plugin. */ +/* Written by William Griffiths. */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional[ "cy-GB" ] = { + closeText: "Done", + prevText: "Prev", + nextText: "Next", + currentText: "Today", + monthNames: [ "Ionawr","Chwefror","Mawrth","Ebrill","Mai","Mehefin", + "Gorffennaf","Awst","Medi","Hydref","Tachwedd","Rhagfyr" ], + monthNamesShort: [ "Ion", "Chw", "Maw", "Ebr", "Mai", "Meh", + "Gor", "Aws", "Med", "Hyd", "Tac", "Rha" ], + dayNames: [ + "Dydd Sul", + "Dydd Llun", + "Dydd Mawrth", + "Dydd Mercher", + "Dydd Iau", + "Dydd Gwener", + "Dydd Sadwrn" + ], + dayNamesShort: [ "Sul", "Llu", "Maw", "Mer", "Iau", "Gwe", "Sad" ], + dayNamesMin: [ "Su","Ll","Ma","Me","Ia","Gw","Sa" ], + weekHeader: "Wy", + dateFormat: "dd/mm/yy", + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional[ "cy-GB" ] ); + +return datepicker.regional[ "cy-GB" ]; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-da.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-da.js new file mode 100644 index 00000000..273f0e3f --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-da.js @@ -0,0 +1,37 @@ +/* Danish initialisation for the jQuery UI date picker plugin. */ +/* Written by Jan Christensen ( deletestuff@gmail.com). */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional.da = { + closeText: "Luk", + prevText: "<Forrige", + nextText: "Næste>", + currentText: "Idag", + monthNames: [ "Januar","Februar","Marts","April","Maj","Juni", + "Juli","August","September","Oktober","November","December" ], + monthNamesShort: [ "Jan","Feb","Mar","Apr","Maj","Jun", + "Jul","Aug","Sep","Okt","Nov","Dec" ], + dayNames: [ "Søndag","Mandag","Tirsdag","Onsdag","Torsdag","Fredag","Lørdag" ], + dayNamesShort: [ "Søn","Man","Tir","Ons","Tor","Fre","Lør" ], + dayNamesMin: [ "Sø","Ma","Ti","On","To","Fr","Lø" ], + weekHeader: "Uge", + dateFormat: "dd-mm-yy", + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.da ); + +return datepicker.regional.da; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-de.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-de.js new file mode 100644 index 00000000..a6779084 --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-de.js @@ -0,0 +1,37 @@ +/* German initialisation for the jQuery UI date picker plugin. */ +/* Written by Milian Wolff (mail@milianw.de). */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional.de = { + closeText: "Schließen", + prevText: "<Zurück", + nextText: "Vor>", + currentText: "Heute", + monthNames: [ "Januar","Februar","März","April","Mai","Juni", + "Juli","August","September","Oktober","November","Dezember" ], + monthNamesShort: [ "Jan","Feb","Mär","Apr","Mai","Jun", + "Jul","Aug","Sep","Okt","Nov","Dez" ], + dayNames: [ "Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag" ], + dayNamesShort: [ "So","Mo","Di","Mi","Do","Fr","Sa" ], + dayNamesMin: [ "So","Mo","Di","Mi","Do","Fr","Sa" ], + weekHeader: "KW", + dateFormat: "dd.mm.yy", + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.de ); + +return datepicker.regional.de; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-el.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-el.js new file mode 100644 index 00000000..f08d6f27 --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-el.js @@ -0,0 +1,37 @@ +/* Greek (el) initialisation for the jQuery UI date picker plugin. */ +/* Written by Alex Cicovic (http://www.alexcicovic.com) */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional.el = { + closeText: "Κλείσιμο", + prevText: "Προηγούμενος", + nextText: "Επόμενος", + currentText: "Σήμερα", + monthNames: [ "Ιανουάριος","Φεβρουάριος","Μάρτιος","Απρίλιος","Μάιος","Ιούνιος", + "Ιούλιος","Αύγουστος","Σεπτέμβριος","Οκτώβριος","Νοέμβριος","Δεκέμβριος" ], + monthNamesShort: [ "Ιαν","Φεβ","Μαρ","Απρ","Μαι","Ιουν", + "Ιουλ","Αυγ","Σεπ","Οκτ","Νοε","Δεκ" ], + dayNames: [ "Κυριακή","Δευτέρα","Τρίτη","Τετάρτη","Πέμπτη","Παρασκευή","Σάββατο" ], + dayNamesShort: [ "Κυρ","Δευ","Τρι","Τετ","Πεμ","Παρ","Σαβ" ], + dayNamesMin: [ "Κυ","Δε","Τρ","Τε","Πε","Πα","Σα" ], + weekHeader: "Εβδ", + dateFormat: "dd/mm/yy", + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.el ); + +return datepicker.regional.el; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-en-AU.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-en-AU.js new file mode 100644 index 00000000..f15277c3 --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-en-AU.js @@ -0,0 +1,37 @@ +/* English/Australia initialisation for the jQuery UI date picker plugin. */ +/* Based on the en-GB initialisation. */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional[ "en-AU" ] = { + closeText: "Done", + prevText: "Prev", + nextText: "Next", + currentText: "Today", + monthNames: [ "January","February","March","April","May","June", + "July","August","September","October","November","December" ], + monthNamesShort: [ "Jan", "Feb", "Mar", "Apr", "May", "Jun", + "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" ], + dayNames: [ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ], + dayNamesShort: [ "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" ], + dayNamesMin: [ "Su","Mo","Tu","We","Th","Fr","Sa" ], + weekHeader: "Wk", + dateFormat: "dd/mm/yy", + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional[ "en-AU" ] ); + +return datepicker.regional[ "en-AU" ]; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-en-GB.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-en-GB.js new file mode 100644 index 00000000..c961c186 --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-en-GB.js @@ -0,0 +1,37 @@ +/* English/UK initialisation for the jQuery UI date picker plugin. */ +/* Written by Stuart. */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional[ "en-GB" ] = { + closeText: "Done", + prevText: "Prev", + nextText: "Next", + currentText: "Today", + monthNames: [ "January","February","March","April","May","June", + "July","August","September","October","November","December" ], + monthNamesShort: [ "Jan", "Feb", "Mar", "Apr", "May", "Jun", + "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" ], + dayNames: [ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ], + dayNamesShort: [ "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" ], + dayNamesMin: [ "Su","Mo","Tu","We","Th","Fr","Sa" ], + weekHeader: "Wk", + dateFormat: "dd/mm/yy", + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional[ "en-GB" ] ); + +return datepicker.regional[ "en-GB" ]; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-en-NZ.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-en-NZ.js new file mode 100644 index 00000000..70463622 --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-en-NZ.js @@ -0,0 +1,37 @@ +/* English/New Zealand initialisation for the jQuery UI date picker plugin. */ +/* Based on the en-GB initialisation. */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional[ "en-NZ" ] = { + closeText: "Done", + prevText: "Prev", + nextText: "Next", + currentText: "Today", + monthNames: [ "January","February","March","April","May","June", + "July","August","September","October","November","December" ], + monthNamesShort: [ "Jan", "Feb", "Mar", "Apr", "May", "Jun", + "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" ], + dayNames: [ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ], + dayNamesShort: [ "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" ], + dayNamesMin: [ "Su","Mo","Tu","We","Th","Fr","Sa" ], + weekHeader: "Wk", + dateFormat: "dd/mm/yy", + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional[ "en-NZ" ] ); + +return datepicker.regional[ "en-NZ" ]; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-eo.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-eo.js new file mode 100644 index 00000000..25f6162b --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-eo.js @@ -0,0 +1,37 @@ +/* Esperanto initialisation for the jQuery UI date picker plugin. */ +/* Written by Olivier M. (olivierweb@ifrance.com). */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional.eo = { + closeText: "Fermi", + prevText: "<Anta", + nextText: "Sekv>", + currentText: "Nuna", + monthNames: [ "Januaro","Februaro","Marto","Aprilo","Majo","Junio", + "Julio","Aŭgusto","Septembro","Oktobro","Novembro","Decembro" ], + monthNamesShort: [ "Jan","Feb","Mar","Apr","Maj","Jun", + "Jul","Aŭg","Sep","Okt","Nov","Dec" ], + dayNames: [ "Dimanĉo","Lundo","Mardo","Merkredo","Ĵaŭdo","Vendredo","Sabato" ], + dayNamesShort: [ "Dim","Lun","Mar","Mer","Ĵaŭ","Ven","Sab" ], + dayNamesMin: [ "Di","Lu","Ma","Me","Ĵa","Ve","Sa" ], + weekHeader: "Sb", + dateFormat: "dd/mm/yy", + firstDay: 0, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.eo ); + +return datepicker.regional.eo; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-es.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-es.js new file mode 100644 index 00000000..ea7116e0 --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-es.js @@ -0,0 +1,37 @@ +/* Inicialización en español para la extensión 'UI date picker' para jQuery. */ +/* Traducido por Vester (xvester@gmail.com). */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional.es = { + closeText: "Cerrar", + prevText: "<Ant", + nextText: "Sig>", + currentText: "Hoy", + monthNames: [ "enero","febrero","marzo","abril","mayo","junio", + "julio","agosto","septiembre","octubre","noviembre","diciembre" ], + monthNamesShort: [ "ene","feb","mar","abr","may","jun", + "jul","ago","sep","oct","nov","dic" ], + dayNames: [ "domingo","lunes","martes","miércoles","jueves","viernes","sábado" ], + dayNamesShort: [ "dom","lun","mar","mié","jue","vie","sáb" ], + dayNamesMin: [ "D","L","M","X","J","V","S" ], + weekHeader: "Sm", + dateFormat: "dd/mm/yy", + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.es ); + +return datepicker.regional.es; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-et.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-et.js new file mode 100644 index 00000000..b2e226ae --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-et.js @@ -0,0 +1,45 @@ +/* Estonian initialisation for the jQuery UI date picker plugin. */ +/* Written by Mart Sõmermaa (mrts.pydev at gmail com). */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional.et = { + closeText: "Sulge", + prevText: "Eelnev", + nextText: "Järgnev", + currentText: "Täna", + monthNames: [ "Jaanuar","Veebruar","Märts","Aprill","Mai","Juuni", + "Juuli","August","September","Oktoober","November","Detsember" ], + monthNamesShort: [ "Jaan", "Veebr", "Märts", "Apr", "Mai", "Juuni", + "Juuli", "Aug", "Sept", "Okt", "Nov", "Dets" ], + dayNames: [ + "Pühapäev", + "Esmaspäev", + "Teisipäev", + "Kolmapäev", + "Neljapäev", + "Reede", + "Laupäev" + ], + dayNamesShort: [ "Pühap", "Esmasp", "Teisip", "Kolmap", "Neljap", "Reede", "Laup" ], + dayNamesMin: [ "P","E","T","K","N","R","L" ], + weekHeader: "näd", + dateFormat: "dd.mm.yy", + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.et ); + +return datepicker.regional.et; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-eu.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-eu.js new file mode 100644 index 00000000..8ea1ef9e --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-eu.js @@ -0,0 +1,36 @@ +/* Karrikas-ek itzulia (karrikas@karrikas.com) */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional.eu = { + closeText: "Egina", + prevText: "<Aur", + nextText: "Hur>", + currentText: "Gaur", + monthNames: [ "urtarrila","otsaila","martxoa","apirila","maiatza","ekaina", + "uztaila","abuztua","iraila","urria","azaroa","abendua" ], + monthNamesShort: [ "urt.","ots.","mar.","api.","mai.","eka.", + "uzt.","abu.","ira.","urr.","aza.","abe." ], + dayNames: [ "igandea","astelehena","asteartea","asteazkena","osteguna","ostirala","larunbata" ], + dayNamesShort: [ "ig.","al.","ar.","az.","og.","ol.","lr." ], + dayNamesMin: [ "ig","al","ar","az","og","ol","lr" ], + weekHeader: "As", + dateFormat: "yy-mm-dd", + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.eu ); + +return datepicker.regional.eu; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-fa.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-fa.js new file mode 100644 index 00000000..71da4981 --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-fa.js @@ -0,0 +1,73 @@ +/* Persian (Farsi) Translation for the jQuery UI date picker plugin. */ +/* Javad Mowlanezhad -- jmowla@gmail.com */ +/* Jalali calendar should supported soon! (Its implemented but I have to test it) */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional.fa = { + closeText: "بستن", + prevText: "<قبلی", + nextText: "بعدی>", + currentText: "امروز", + monthNames: [ + "ژانویه", + "فوریه", + "مارس", + "آوریل", + "مه", + "ژوئن", + "ژوئیه", + "اوت", + "سپتامبر", + "اکتبر", + "نوامبر", + "دسامبر" + ], + monthNamesShort: [ "1","2","3","4","5","6","7","8","9","10","11","12" ], + dayNames: [ + "يکشنبه", + "دوشنبه", + "سه‌شنبه", + "چهارشنبه", + "پنجشنبه", + "جمعه", + "شنبه" + ], + dayNamesShort: [ + "ی", + "د", + "س", + "چ", + "پ", + "ج", + "ش" + ], + dayNamesMin: [ + "ی", + "د", + "س", + "چ", + "پ", + "ج", + "ش" + ], + weekHeader: "هف", + dateFormat: "yy/mm/dd", + firstDay: 6, + isRTL: true, + showMonthAfterYear: false, + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.fa ); + +return datepicker.regional.fa; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-fi.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-fi.js new file mode 100644 index 00000000..a8386ff6 --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-fi.js @@ -0,0 +1,37 @@ +/* Finnish initialisation for the jQuery UI date picker plugin. */ +/* Written by Harri Kilpiö (harrikilpio@gmail.com). */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional.fi = { + closeText: "Sulje", + prevText: "«Edellinen", + nextText: "Seuraava»", + currentText: "Tänään", + monthNames: [ "Tammikuu","Helmikuu","Maaliskuu","Huhtikuu","Toukokuu","Kesäkuu", + "Heinäkuu","Elokuu","Syyskuu","Lokakuu","Marraskuu","Joulukuu" ], + monthNamesShort: [ "Tammi","Helmi","Maalis","Huhti","Touko","Kesä", + "Heinä","Elo","Syys","Loka","Marras","Joulu" ], + dayNamesShort: [ "Su","Ma","Ti","Ke","To","Pe","La" ], + dayNames: [ "Sunnuntai","Maanantai","Tiistai","Keskiviikko","Torstai","Perjantai","Lauantai" ], + dayNamesMin: [ "Su","Ma","Ti","Ke","To","Pe","La" ], + weekHeader: "Vk", + dateFormat: "d.m.yy", + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.fi ); + +return datepicker.regional.fi; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-fo.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-fo.js new file mode 100644 index 00000000..6c24b8bf --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-fo.js @@ -0,0 +1,45 @@ +/* Faroese initialisation for the jQuery UI date picker plugin */ +/* Written by Sverri Mohr Olsen, sverrimo@gmail.com */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional.fo = { + closeText: "Lat aftur", + prevText: "<Fyrra", + nextText: "Næsta>", + currentText: "Í dag", + monthNames: [ "Januar","Februar","Mars","Apríl","Mei","Juni", + "Juli","August","September","Oktober","November","Desember" ], + monthNamesShort: [ "Jan","Feb","Mar","Apr","Mei","Jun", + "Jul","Aug","Sep","Okt","Nov","Des" ], + dayNames: [ + "Sunnudagur", + "Mánadagur", + "Týsdagur", + "Mikudagur", + "Hósdagur", + "Fríggjadagur", + "Leyardagur" + ], + dayNamesShort: [ "Sun","Mán","Týs","Mik","Hós","Frí","Ley" ], + dayNamesMin: [ "Su","Má","Tý","Mi","Hó","Fr","Le" ], + weekHeader: "Vk", + dateFormat: "dd-mm-yy", + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.fo ); + +return datepicker.regional.fo; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-fr-CA.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-fr-CA.js new file mode 100644 index 00000000..b590277d --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-fr-CA.js @@ -0,0 +1,37 @@ +/* Canadian-French initialisation for the jQuery UI date picker plugin. */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional[ "fr-CA" ] = { + closeText: "Fermer", + prevText: "Précédent", + nextText: "Suivant", + currentText: "Aujourd'hui", + monthNames: [ "janvier", "février", "mars", "avril", "mai", "juin", + "juillet", "août", "septembre", "octobre", "novembre", "décembre" ], + monthNamesShort: [ "janv.", "févr.", "mars", "avril", "mai", "juin", + "juil.", "août", "sept.", "oct.", "nov.", "déc." ], + dayNames: [ "dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi" ], + dayNamesShort: [ "dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam." ], + dayNamesMin: [ "D", "L", "M", "M", "J", "V", "S" ], + weekHeader: "Sem.", + dateFormat: "yy-mm-dd", + firstDay: 0, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: "" +}; +datepicker.setDefaults( datepicker.regional[ "fr-CA" ] ); + +return datepicker.regional[ "fr-CA" ]; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-fr-CH.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-fr-CH.js new file mode 100644 index 00000000..d2f0584d --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-fr-CH.js @@ -0,0 +1,37 @@ +/* Swiss-French initialisation for the jQuery UI date picker plugin. */ +/* Written Martin Voelkle (martin.voelkle@e-tc.ch). */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional[ "fr-CH" ] = { + closeText: "Fermer", + prevText: "<Préc", + nextText: "Suiv>", + currentText: "Courant", + monthNames: [ "janvier", "février", "mars", "avril", "mai", "juin", + "juillet", "août", "septembre", "octobre", "novembre", "décembre" ], + monthNamesShort: [ "janv.", "févr.", "mars", "avril", "mai", "juin", + "juil.", "août", "sept.", "oct.", "nov.", "déc." ], + dayNames: [ "dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi" ], + dayNamesShort: [ "dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam." ], + dayNamesMin: [ "D", "L", "M", "M", "J", "V", "S" ], + weekHeader: "Sm", + dateFormat: "dd.mm.yy", + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional[ "fr-CH" ] ); + +return datepicker.regional[ "fr-CH" ]; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-fr.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-fr.js new file mode 100644 index 00000000..9e39fbd6 --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-fr.js @@ -0,0 +1,39 @@ +/* French initialisation for the jQuery UI date picker plugin. */ +/* Written by Keith Wood (kbwood{at}iinet.com.au), + Stéphane Nahmani (sholby@sholby.net), + Stéphane Raimbault */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional.fr = { + closeText: "Fermer", + prevText: "Précédent", + nextText: "Suivant", + currentText: "Aujourd'hui", + monthNames: [ "janvier", "février", "mars", "avril", "mai", "juin", + "juillet", "août", "septembre", "octobre", "novembre", "décembre" ], + monthNamesShort: [ "janv.", "févr.", "mars", "avr.", "mai", "juin", + "juil.", "août", "sept.", "oct.", "nov.", "déc." ], + dayNames: [ "dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi" ], + dayNamesShort: [ "dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam." ], + dayNamesMin: [ "D","L","M","M","J","V","S" ], + weekHeader: "Sem.", + dateFormat: "dd/mm/yy", + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.fr ); + +return datepicker.regional.fr; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-gl.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-gl.js new file mode 100644 index 00000000..27652307 --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-gl.js @@ -0,0 +1,37 @@ +/* Galician localization for 'UI date picker' jQuery extension. */ +/* Translated by Jorge Barreiro . */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional.gl = { + closeText: "Pechar", + prevText: "<Ant", + nextText: "Seg>", + currentText: "Hoxe", + monthNames: [ "Xaneiro","Febreiro","Marzo","Abril","Maio","Xuño", + "Xullo","Agosto","Setembro","Outubro","Novembro","Decembro" ], + monthNamesShort: [ "Xan","Feb","Mar","Abr","Mai","Xuñ", + "Xul","Ago","Set","Out","Nov","Dec" ], + dayNames: [ "Domingo","Luns","Martes","Mércores","Xoves","Venres","Sábado" ], + dayNamesShort: [ "Dom","Lun","Mar","Mér","Xov","Ven","Sáb" ], + dayNamesMin: [ "Do","Lu","Ma","Mé","Xo","Ve","Sá" ], + weekHeader: "Sm", + dateFormat: "dd/mm/yy", + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.gl ); + +return datepicker.regional.gl; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-he.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-he.js new file mode 100644 index 00000000..fb6238fd --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-he.js @@ -0,0 +1,37 @@ +/* Hebrew initialisation for the UI Datepicker extension. */ +/* Written by Amir Hardon (ahardon at gmail dot com). */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional.he = { + closeText: "סגור", + prevText: "<הקודם", + nextText: "הבא>", + currentText: "היום", + monthNames: [ "ינואר","פברואר","מרץ","אפריל","מאי","יוני", + "יולי","אוגוסט","ספטמבר","אוקטובר","נובמבר","דצמבר" ], + monthNamesShort: [ "ינו","פבר","מרץ","אפר","מאי","יוני", + "יולי","אוג","ספט","אוק","נוב","דצמ" ], + dayNames: [ "ראשון","שני","שלישי","רביעי","חמישי","שישי","שבת" ], + dayNamesShort: [ "א'","ב'","ג'","ד'","ה'","ו'","שבת" ], + dayNamesMin: [ "א'","ב'","ג'","ד'","ה'","ו'","שבת" ], + weekHeader: "Wk", + dateFormat: "dd/mm/yy", + firstDay: 0, + isRTL: true, + showMonthAfterYear: false, + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.he ); + +return datepicker.regional.he; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-hi.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-hi.js new file mode 100644 index 00000000..3b120972 --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-hi.js @@ -0,0 +1,37 @@ +/* Hindi initialisation for the jQuery UI date picker plugin. */ +/* Written by Michael Dawart. */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional.hi = { + closeText: "बंद", + prevText: "पिछला", + nextText: "अगला", + currentText: "आज", + monthNames: [ "जनवरी ","फरवरी","मार्च","अप्रेल","मई","जून", + "जूलाई","अगस्त ","सितम्बर","अक्टूबर","नवम्बर","दिसम्बर" ], + monthNamesShort: [ "जन", "फर", "मार्च", "अप्रेल", "मई", "जून", + "जूलाई", "अग", "सित", "अक्ट", "नव", "दि" ], + dayNames: [ "रविवार", "सोमवार", "मंगलवार", "बुधवार", "गुरुवार", "शुक्रवार", "शनिवार" ], + dayNamesShort: [ "रवि", "सोम", "मंगल", "बुध", "गुरु", "शुक्र", "शनि" ], + dayNamesMin: [ "रवि", "सोम", "मंगल", "बुध", "गुरु", "शुक्र", "शनि" ], + weekHeader: "हफ्ता", + dateFormat: "dd/mm/yy", + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.hi ); + +return datepicker.regional.hi; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-hr.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-hr.js new file mode 100644 index 00000000..5e218c12 --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-hr.js @@ -0,0 +1,37 @@ +/* Croatian i18n for the jQuery UI date picker plugin. */ +/* Written by Vjekoslav Nesek. */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional.hr = { + closeText: "Zatvori", + prevText: "<", + nextText: ">", + currentText: "Danas", + monthNames: [ "Siječanj","Veljača","Ožujak","Travanj","Svibanj","Lipanj", + "Srpanj","Kolovoz","Rujan","Listopad","Studeni","Prosinac" ], + monthNamesShort: [ "Sij","Velj","Ožu","Tra","Svi","Lip", + "Srp","Kol","Ruj","Lis","Stu","Pro" ], + dayNames: [ "Nedjelja","Ponedjeljak","Utorak","Srijeda","Četvrtak","Petak","Subota" ], + dayNamesShort: [ "Ned","Pon","Uto","Sri","Čet","Pet","Sub" ], + dayNamesMin: [ "Ne","Po","Ut","Sr","Če","Pe","Su" ], + weekHeader: "Tje", + dateFormat: "dd.mm.yy.", + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.hr ); + +return datepicker.regional.hr; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-hu.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-hu.js new file mode 100644 index 00000000..22bbe703 --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-hu.js @@ -0,0 +1,36 @@ +/* Hungarian initialisation for the jQuery UI date picker plugin. */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional.hu = { + closeText: "bezár", + prevText: "vissza", + nextText: "előre", + currentText: "ma", + monthNames: [ "Január", "Február", "Március", "Április", "Május", "Június", + "Július", "Augusztus", "Szeptember", "Október", "November", "December" ], + monthNamesShort: [ "Jan", "Feb", "Már", "Ápr", "Máj", "Jún", + "Júl", "Aug", "Szep", "Okt", "Nov", "Dec" ], + dayNames: [ "Vasárnap", "Hétfő", "Kedd", "Szerda", "Csütörtök", "Péntek", "Szombat" ], + dayNamesShort: [ "Vas", "Hét", "Ked", "Sze", "Csü", "Pén", "Szo" ], + dayNamesMin: [ "V", "H", "K", "Sze", "Cs", "P", "Szo" ], + weekHeader: "Hét", + dateFormat: "yy.mm.dd.", + firstDay: 1, + isRTL: false, + showMonthAfterYear: true, + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.hu ); + +return datepicker.regional.hu; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-hy.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-hy.js new file mode 100644 index 00000000..95638b31 --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-hy.js @@ -0,0 +1,37 @@ +/* Armenian(UTF-8) initialisation for the jQuery UI date picker plugin. */ +/* Written by Levon Zakaryan (levon.zakaryan@gmail.com)*/ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional.hy = { + closeText: "Փակել", + prevText: "<Նախ.", + nextText: "Հաջ.>", + currentText: "Այսօր", + monthNames: [ "Հունվար","Փետրվար","Մարտ","Ապրիլ","Մայիս","Հունիս", + "Հուլիս","Օգոստոս","Սեպտեմբեր","Հոկտեմբեր","Նոյեմբեր","Դեկտեմբեր" ], + monthNamesShort: [ "Հունվ","Փետր","Մարտ","Ապր","Մայիս","Հունիս", + "Հուլ","Օգս","Սեպ","Հոկ","Նոյ","Դեկ" ], + dayNames: [ "կիրակի","եկուշաբթի","երեքշաբթի","չորեքշաբթի","հինգշաբթի","ուրբաթ","շաբաթ" ], + dayNamesShort: [ "կիր","երկ","երք","չրք","հնգ","ուրբ","շբթ" ], + dayNamesMin: [ "կիր","երկ","երք","չրք","հնգ","ուրբ","շբթ" ], + weekHeader: "ՇԲՏ", + dateFormat: "dd.mm.yy", + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.hy ); + +return datepicker.regional.hy; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-id.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-id.js new file mode 100644 index 00000000..5aef348a --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-id.js @@ -0,0 +1,37 @@ +/* Indonesian initialisation for the jQuery UI date picker plugin. */ +/* Written by Deden Fathurahman (dedenf@gmail.com). */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional.id = { + closeText: "Tutup", + prevText: "<mundur", + nextText: "maju>", + currentText: "hari ini", + monthNames: [ "Januari","Februari","Maret","April","Mei","Juni", + "Juli","Agustus","September","Oktober","Nopember","Desember" ], + monthNamesShort: [ "Jan","Feb","Mar","Apr","Mei","Jun", + "Jul","Agus","Sep","Okt","Nop","Des" ], + dayNames: [ "Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu" ], + dayNamesShort: [ "Min","Sen","Sel","Rab","kam","Jum","Sab" ], + dayNamesMin: [ "Mg","Sn","Sl","Rb","Km","jm","Sb" ], + weekHeader: "Mg", + dateFormat: "dd/mm/yy", + firstDay: 0, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.id ); + +return datepicker.regional.id; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-is.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-is.js new file mode 100644 index 00000000..b15f37ab --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-is.js @@ -0,0 +1,45 @@ +/* Icelandic initialisation for the jQuery UI date picker plugin. */ +/* Written by Haukur H. Thorsson (haukur@eskill.is). */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional.is = { + closeText: "Loka", + prevText: "< Fyrri", + nextText: "Næsti >", + currentText: "Í dag", + monthNames: [ "Janúar","Febrúar","Mars","Apríl","Maí","Júní", + "Júlí","Ágúst","September","Október","Nóvember","Desember" ], + monthNamesShort: [ "Jan","Feb","Mar","Apr","Maí","Jún", + "Júl","Ágú","Sep","Okt","Nóv","Des" ], + dayNames: [ + "Sunnudagur", + "Mánudagur", + "Þriðjudagur", + "Miðvikudagur", + "Fimmtudagur", + "Föstudagur", + "Laugardagur" + ], + dayNamesShort: [ "Sun","Mán","Þri","Mið","Fim","Fös","Lau" ], + dayNamesMin: [ "Su","Má","Þr","Mi","Fi","Fö","La" ], + weekHeader: "Vika", + dateFormat: "dd.mm.yy", + firstDay: 0, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.is ); + +return datepicker.regional.is; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-it-CH.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-it-CH.js new file mode 100644 index 00000000..9895da4c --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-it-CH.js @@ -0,0 +1,37 @@ +/* Italian initialisation for the jQuery UI date picker plugin. */ +/* Written by Antonello Pasella (antonello.pasella@gmail.com). */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional[ "it-CH" ] = { + closeText: "Chiudi", + prevText: "<Prec", + nextText: "Succ>", + currentText: "Oggi", + monthNames: [ "Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno", + "Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre" ], + monthNamesShort: [ "Gen","Feb","Mar","Apr","Mag","Giu", + "Lug","Ago","Set","Ott","Nov","Dic" ], + dayNames: [ "Domenica","Lunedì","Martedì","Mercoledì","Giovedì","Venerdì","Sabato" ], + dayNamesShort: [ "Dom","Lun","Mar","Mer","Gio","Ven","Sab" ], + dayNamesMin: [ "Do","Lu","Ma","Me","Gi","Ve","Sa" ], + weekHeader: "Sm", + dateFormat: "dd.mm.yy", + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional[ "it-CH" ] ); + +return datepicker.regional[ "it-CH" ]; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-it.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-it.js new file mode 100644 index 00000000..d67cb6c2 --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-it.js @@ -0,0 +1,37 @@ +/* Italian initialisation for the jQuery UI date picker plugin. */ +/* Written by Antonello Pasella (antonello.pasella@gmail.com). */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional.it = { + closeText: "Chiudi", + prevText: "<Prec", + nextText: "Succ>", + currentText: "Oggi", + monthNames: [ "Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno", + "Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre" ], + monthNamesShort: [ "Gen","Feb","Mar","Apr","Mag","Giu", + "Lug","Ago","Set","Ott","Nov","Dic" ], + dayNames: [ "Domenica","Lunedì","Martedì","Mercoledì","Giovedì","Venerdì","Sabato" ], + dayNamesShort: [ "Dom","Lun","Mar","Mer","Gio","Ven","Sab" ], + dayNamesMin: [ "Do","Lu","Ma","Me","Gi","Ve","Sa" ], + weekHeader: "Sm", + dateFormat: "dd/mm/yy", + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.it ); + +return datepicker.regional.it; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-ja.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-ja.js new file mode 100644 index 00000000..52b10583 --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-ja.js @@ -0,0 +1,37 @@ +/* Japanese initialisation for the jQuery UI date picker plugin. */ +/* Written by Kentaro SATO (kentaro@ranvis.com). */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional.ja = { + closeText: "閉じる", + prevText: "<前", + nextText: "次>", + currentText: "今日", + monthNames: [ "1月","2月","3月","4月","5月","6月", + "7月","8月","9月","10月","11月","12月" ], + monthNamesShort: [ "1月","2月","3月","4月","5月","6月", + "7月","8月","9月","10月","11月","12月" ], + dayNames: [ "日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日" ], + dayNamesShort: [ "日","月","火","水","木","金","土" ], + dayNamesMin: [ "日","月","火","水","木","金","土" ], + weekHeader: "週", + dateFormat: "yy/mm/dd", + firstDay: 0, + isRTL: false, + showMonthAfterYear: true, + yearSuffix: "年" }; +datepicker.setDefaults( datepicker.regional.ja ); + +return datepicker.regional.ja; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-ka.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-ka.js new file mode 100644 index 00000000..1f596cb3 --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-ka.js @@ -0,0 +1,48 @@ +/* Georgian (UTF-8) initialisation for the jQuery UI date picker plugin. */ +/* Written by Lado Lomidze (lado.lomidze@gmail.com). */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional.ka = { + closeText: "დახურვა", + prevText: "< წინა", + nextText: "შემდეგი >", + currentText: "დღეს", + monthNames: [ + "იანვარი", + "თებერვალი", + "მარტი", + "აპრილი", + "მაისი", + "ივნისი", + "ივლისი", + "აგვისტო", + "სექტემბერი", + "ოქტომბერი", + "ნოემბერი", + "დეკემბერი" + ], + monthNamesShort: [ "იან","თებ","მარ","აპრ","მაი","ივნ", "ივლ","აგვ","სექ","ოქტ","ნოე","დეკ" ], + dayNames: [ "კვირა","ორშაბათი","სამშაბათი","ოთხშაბათი","ხუთშაბათი","პარასკევი","შაბათი" ], + dayNamesShort: [ "კვ","ორშ","სამ","ოთხ","ხუთ","პარ","შაბ" ], + dayNamesMin: [ "კვ","ორშ","სამ","ოთხ","ხუთ","პარ","შაბ" ], + weekHeader: "კვირა", + dateFormat: "dd-mm-yy", + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.ka ); + +return datepicker.regional.ka; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-kk.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-kk.js new file mode 100644 index 00000000..fa0121f8 --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-kk.js @@ -0,0 +1,37 @@ +/* Kazakh (UTF-8) initialisation for the jQuery UI date picker plugin. */ +/* Written by Dmitriy Karasyov (dmitriy.karasyov@gmail.com). */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional.kk = { + closeText: "Жабу", + prevText: "<Алдыңғы", + nextText: "Келесі>", + currentText: "Бүгін", + monthNames: [ "Қаңтар","Ақпан","Наурыз","Сәуір","Мамыр","Маусым", + "Шілде","Тамыз","Қыркүйек","Қазан","Қараша","Желтоқсан" ], + monthNamesShort: [ "Қаң","Ақп","Нау","Сәу","Мам","Мау", + "Шіл","Там","Қыр","Қаз","Қар","Жел" ], + dayNames: [ "Жексенбі","Дүйсенбі","Сейсенбі","Сәрсенбі","Бейсенбі","Жұма","Сенбі" ], + dayNamesShort: [ "жкс","дсн","ссн","срс","бсн","жма","снб" ], + dayNamesMin: [ "Жк","Дс","Сс","Ср","Бс","Жм","Сн" ], + weekHeader: "Не", + dateFormat: "dd.mm.yy", + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.kk ); + +return datepicker.regional.kk; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-km.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-km.js new file mode 100644 index 00000000..d8a4596b --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-km.js @@ -0,0 +1,37 @@ +/* Khmer initialisation for the jQuery calendar extension. */ +/* Written by Chandara Om (chandara.teacher@gmail.com). */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional.km = { + closeText: "ធ្វើ​រួច", + prevText: "មុន", + nextText: "បន្ទាប់", + currentText: "ថ្ងៃ​នេះ", + monthNames: [ "មករា","កុម្ភៈ","មីនា","មេសា","ឧសភា","មិថុនា", + "កក្កដា","សីហា","កញ្ញា","តុលា","វិច្ឆិកា","ធ្នូ" ], + monthNamesShort: [ "មករា","កុម្ភៈ","មីនា","មេសា","ឧសភា","មិថុនា", + "កក្កដា","សីហា","កញ្ញា","តុលា","វិច្ឆិកា","ធ្នូ" ], + dayNames: [ "អាទិត្យ", "ចន្ទ", "អង្គារ", "ពុធ", "ព្រហស្បតិ៍", "សុក្រ", "សៅរ៍" ], + dayNamesShort: [ "អា", "ច", "អ", "ពុ", "ព្រហ", "សុ", "សៅ" ], + dayNamesMin: [ "អា", "ច", "អ", "ពុ", "ព្រហ", "សុ", "សៅ" ], + weekHeader: "សប្ដាហ៍", + dateFormat: "dd-mm-yy", + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.km ); + +return datepicker.regional.km; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-ko.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-ko.js new file mode 100644 index 00000000..8879a995 --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-ko.js @@ -0,0 +1,37 @@ +/* Korean initialisation for the jQuery calendar extension. */ +/* Written by DaeKwon Kang (ncrash.dk@gmail.com), Edited by Genie and Myeongjin Lee. */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional.ko = { + closeText: "닫기", + prevText: "이전달", + nextText: "다음달", + currentText: "오늘", + monthNames: [ "1월","2월","3월","4월","5월","6월", + "7월","8월","9월","10월","11월","12월" ], + monthNamesShort: [ "1월","2월","3월","4월","5월","6월", + "7월","8월","9월","10월","11월","12월" ], + dayNames: [ "일요일","월요일","화요일","수요일","목요일","금요일","토요일" ], + dayNamesShort: [ "일","월","화","수","목","금","토" ], + dayNamesMin: [ "일","월","화","수","목","금","토" ], + weekHeader: "주", + dateFormat: "yy. m. d.", + firstDay: 0, + isRTL: false, + showMonthAfterYear: true, + yearSuffix: "년" }; +datepicker.setDefaults( datepicker.regional.ko ); + +return datepicker.regional.ko; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-ky.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-ky.js new file mode 100644 index 00000000..f748bc60 --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-ky.js @@ -0,0 +1,38 @@ +/* Kyrgyz (UTF-8) initialisation for the jQuery UI date picker plugin. */ +/* Written by Sergey Kartashov (ebishkek@yandex.ru). */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional.ky = { + closeText: "Жабуу", + prevText: "<Мур", + nextText: "Кий>", + currentText: "Бүгүн", + monthNames: [ "Январь","Февраль","Март","Апрель","Май","Июнь", + "Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь" ], + monthNamesShort: [ "Янв","Фев","Мар","Апр","Май","Июн", + "Июл","Авг","Сен","Окт","Ноя","Дек" ], + dayNames: [ "жекшемби", "дүйшөмбү", "шейшемби", "шаршемби", "бейшемби", "жума", "ишемби" ], + dayNamesShort: [ "жек", "дүй", "шей", "шар", "бей", "жум", "ише" ], + dayNamesMin: [ "Жк","Дш","Шш","Шр","Бш","Жм","Иш" ], + weekHeader: "Жум", + dateFormat: "dd.mm.yy", + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: "" +}; +datepicker.setDefaults( datepicker.regional.ky ); + +return datepicker.regional.ky; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-lb.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-lb.js new file mode 100644 index 00000000..02a9c510 --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-lb.js @@ -0,0 +1,45 @@ +/* Luxembourgish initialisation for the jQuery UI date picker plugin. */ +/* Written by Michel Weimerskirch */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional.lb = { + closeText: "Fäerdeg", + prevText: "Zréck", + nextText: "Weider", + currentText: "Haut", + monthNames: [ "Januar","Februar","Mäerz","Abrëll","Mee","Juni", + "Juli","August","September","Oktober","November","Dezember" ], + monthNamesShort: [ "Jan", "Feb", "Mäe", "Abr", "Mee", "Jun", + "Jul", "Aug", "Sep", "Okt", "Nov", "Dez" ], + dayNames: [ + "Sonndeg", + "Méindeg", + "Dënschdeg", + "Mëttwoch", + "Donneschdeg", + "Freideg", + "Samschdeg" + ], + dayNamesShort: [ "Son", "Méi", "Dën", "Mët", "Don", "Fre", "Sam" ], + dayNamesMin: [ "So","Mé","Dë","Më","Do","Fr","Sa" ], + weekHeader: "W", + dateFormat: "dd.mm.yy", + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.lb ); + +return datepicker.regional.lb; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-lt.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-lt.js new file mode 100644 index 00000000..a57fd9df --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-lt.js @@ -0,0 +1,45 @@ +/* Lithuanian (UTF-8) initialisation for the jQuery UI date picker plugin. */ +/* @author Arturas Paleicikas */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional.lt = { + closeText: "Uždaryti", + prevText: "<Atgal", + nextText: "Pirmyn>", + currentText: "Šiandien", + monthNames: [ "Sausis","Vasaris","Kovas","Balandis","Gegužė","Birželis", + "Liepa","Rugpjūtis","Rugsėjis","Spalis","Lapkritis","Gruodis" ], + monthNamesShort: [ "Sau","Vas","Kov","Bal","Geg","Bir", + "Lie","Rugp","Rugs","Spa","Lap","Gru" ], + dayNames: [ + "sekmadienis", + "pirmadienis", + "antradienis", + "trečiadienis", + "ketvirtadienis", + "penktadienis", + "šeštadienis" + ], + dayNamesShort: [ "sek","pir","ant","tre","ket","pen","šeš" ], + dayNamesMin: [ "Se","Pr","An","Tr","Ke","Pe","Še" ], + weekHeader: "SAV", + dateFormat: "yy-mm-dd", + firstDay: 1, + isRTL: false, + showMonthAfterYear: true, + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.lt ); + +return datepicker.regional.lt; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-lv.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-lv.js new file mode 100644 index 00000000..04556fbc --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-lv.js @@ -0,0 +1,45 @@ +/* Latvian (UTF-8) initialisation for the jQuery UI date picker plugin. */ +/* @author Arturas Paleicikas */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional.lv = { + closeText: "Aizvērt", + prevText: "Iepr.", + nextText: "Nāk.", + currentText: "Šodien", + monthNames: [ "Janvāris","Februāris","Marts","Aprīlis","Maijs","Jūnijs", + "Jūlijs","Augusts","Septembris","Oktobris","Novembris","Decembris" ], + monthNamesShort: [ "Jan","Feb","Mar","Apr","Mai","Jūn", + "Jūl","Aug","Sep","Okt","Nov","Dec" ], + dayNames: [ + "svētdiena", + "pirmdiena", + "otrdiena", + "trešdiena", + "ceturtdiena", + "piektdiena", + "sestdiena" + ], + dayNamesShort: [ "svt","prm","otr","tre","ctr","pkt","sst" ], + dayNamesMin: [ "Sv","Pr","Ot","Tr","Ct","Pk","Ss" ], + weekHeader: "Ned.", + dateFormat: "dd.mm.yy", + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.lv ); + +return datepicker.regional.lv; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-mk.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-mk.js new file mode 100644 index 00000000..97864ab1 --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-mk.js @@ -0,0 +1,37 @@ +/* Macedonian i18n for the jQuery UI date picker plugin. */ +/* Written by Stojce Slavkovski. */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional.mk = { + closeText: "Затвори", + prevText: "<", + nextText: ">", + currentText: "Денес", + monthNames: [ "Јануари","Февруари","Март","Април","Мај","Јуни", + "Јули","Август","Септември","Октомври","Ноември","Декември" ], + monthNamesShort: [ "Јан","Фев","Мар","Апр","Мај","Јун", + "Јул","Авг","Сеп","Окт","Ное","Дек" ], + dayNames: [ "Недела","Понеделник","Вторник","Среда","Четврток","Петок","Сабота" ], + dayNamesShort: [ "Нед","Пон","Вто","Сре","Чет","Пет","Саб" ], + dayNamesMin: [ "Не","По","Вт","Ср","Че","Пе","Са" ], + weekHeader: "Сед", + dateFormat: "dd.mm.yy", + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.mk ); + +return datepicker.regional.mk; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-ml.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-ml.js new file mode 100644 index 00000000..440e09e0 --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-ml.js @@ -0,0 +1,37 @@ +/* Malayalam (UTF-8) initialisation for the jQuery UI date picker plugin. */ +/* Written by Saji Nediyanchath (saji89@gmail.com). */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional.ml = { + closeText: "ശരി", + prevText: "മുന്നത്തെ", + nextText: "അടുത്തത് ", + currentText: "ഇന്ന്", + monthNames: [ "ജനുവരി","ഫെബ്രുവരി","മാര്‍ച്ച്","ഏപ്രില്‍","മേയ്","ജൂണ്‍", + "ജൂലൈ","ആഗസ്റ്റ്","സെപ്റ്റംബര്‍","ഒക്ടോബര്‍","നവംബര്‍","ഡിസംബര്‍" ], + monthNamesShort: [ "ജനു", "ഫെബ്", "മാര്‍", "ഏപ്രി", "മേയ്", "ജൂണ്‍", + "ജൂലാ", "ആഗ", "സെപ്", "ഒക്ടോ", "നവം", "ഡിസ" ], + dayNames: [ "ഞായര്‍", "തിങ്കള്‍", "ചൊവ്വ", "ബുധന്‍", "വ്യാഴം", "വെള്ളി", "ശനി" ], + dayNamesShort: [ "ഞായ", "തിങ്ക", "ചൊവ്വ", "ബുധ", "വ്യാഴം", "വെള്ളി", "ശനി" ], + dayNamesMin: [ "ഞാ","തി","ചൊ","ബു","വ്യാ","വെ","ശ" ], + weekHeader: "ആ", + dateFormat: "dd/mm/yy", + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.ml ); + +return datepicker.regional.ml; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-ms.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-ms.js new file mode 100644 index 00000000..58bc4f57 --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-ms.js @@ -0,0 +1,37 @@ +/* Malaysian initialisation for the jQuery UI date picker plugin. */ +/* Written by Mohd Nawawi Mohamad Jamili (nawawi@ronggeng.net). */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional.ms = { + closeText: "Tutup", + prevText: "<Sebelum", + nextText: "Selepas>", + currentText: "hari ini", + monthNames: [ "Januari","Februari","Mac","April","Mei","Jun", + "Julai","Ogos","September","Oktober","November","Disember" ], + monthNamesShort: [ "Jan","Feb","Mac","Apr","Mei","Jun", + "Jul","Ogo","Sep","Okt","Nov","Dis" ], + dayNames: [ "Ahad","Isnin","Selasa","Rabu","Khamis","Jumaat","Sabtu" ], + dayNamesShort: [ "Aha","Isn","Sel","Rab","kha","Jum","Sab" ], + dayNamesMin: [ "Ah","Is","Se","Ra","Kh","Ju","Sa" ], + weekHeader: "Mg", + dateFormat: "dd/mm/yy", + firstDay: 0, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.ms ); + +return datepicker.regional.ms; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-nb.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-nb.js new file mode 100644 index 00000000..eb1112bc --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-nb.js @@ -0,0 +1,49 @@ +/* Norwegian Bokmål initialisation for the jQuery UI date picker plugin. */ +/* Written by Bjørn Johansen (post@bjornjohansen.no). */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional.nb = { + closeText: "Lukk", + prevText: "«Forrige", + nextText: "Neste»", + currentText: "I dag", + monthNames: [ + "januar", + "februar", + "mars", + "april", + "mai", + "juni", + "juli", + "august", + "september", + "oktober", + "november", + "desember" + ], + monthNamesShort: [ "jan","feb","mar","apr","mai","jun","jul","aug","sep","okt","nov","des" ], + dayNamesShort: [ "søn","man","tir","ons","tor","fre","lør" ], + dayNames: [ "søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag" ], + dayNamesMin: [ "sø","ma","ti","on","to","fr","lø" ], + weekHeader: "Uke", + dateFormat: "dd.mm.yy", + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: "" +}; +datepicker.setDefaults( datepicker.regional.nb ); + +return datepicker.regional.nb; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-nl-BE.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-nl-BE.js new file mode 100644 index 00000000..9ea22002 --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-nl-BE.js @@ -0,0 +1,37 @@ +/* Dutch (Belgium) initialisation for the jQuery UI date picker plugin. */ +/* David De Sloovere @DavidDeSloovere */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional[ "nl-BE" ] = { + closeText: "Sluiten", + prevText: "←", + nextText: "→", + currentText: "Vandaag", + monthNames: [ "januari", "februari", "maart", "april", "mei", "juni", + "juli", "augustus", "september", "oktober", "november", "december" ], + monthNamesShort: [ "jan", "feb", "mrt", "apr", "mei", "jun", + "jul", "aug", "sep", "okt", "nov", "dec" ], + dayNames: [ "zondag", "maandag", "dinsdag", "woensdag", "donderdag", "vrijdag", "zaterdag" ], + dayNamesShort: [ "zon", "maa", "din", "woe", "don", "vri", "zat" ], + dayNamesMin: [ "zo", "ma", "di", "wo", "do", "vr", "za" ], + weekHeader: "Wk", + dateFormat: "dd/mm/yy", + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional[ "nl-BE" ] ); + +return datepicker.regional[ "nl-BE" ]; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-nl.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-nl.js new file mode 100644 index 00000000..7fcbff1a --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-nl.js @@ -0,0 +1,37 @@ +/* Dutch (UTF-8) initialisation for the jQuery UI date picker plugin. */ +/* Written by Mathias Bynens */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional.nl = { + closeText: "Sluiten", + prevText: "←", + nextText: "→", + currentText: "Vandaag", + monthNames: [ "januari", "februari", "maart", "april", "mei", "juni", + "juli", "augustus", "september", "oktober", "november", "december" ], + monthNamesShort: [ "jan", "feb", "mrt", "apr", "mei", "jun", + "jul", "aug", "sep", "okt", "nov", "dec" ], + dayNames: [ "zondag", "maandag", "dinsdag", "woensdag", "donderdag", "vrijdag", "zaterdag" ], + dayNamesShort: [ "zon", "maa", "din", "woe", "don", "vri", "zat" ], + dayNamesMin: [ "zo", "ma", "di", "wo", "do", "vr", "za" ], + weekHeader: "Wk", + dateFormat: "dd-mm-yy", + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.nl ); + +return datepicker.regional.nl; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-nn.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-nn.js new file mode 100644 index 00000000..bacd481a --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-nn.js @@ -0,0 +1,49 @@ +/* Norwegian Nynorsk initialisation for the jQuery UI date picker plugin. */ +/* Written by Bjørn Johansen (post@bjornjohansen.no). */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional.nn = { + closeText: "Lukk", + prevText: "«Førre", + nextText: "Neste»", + currentText: "I dag", + monthNames: [ + "januar", + "februar", + "mars", + "april", + "mai", + "juni", + "juli", + "august", + "september", + "oktober", + "november", + "desember" + ], + monthNamesShort: [ "jan","feb","mar","apr","mai","jun","jul","aug","sep","okt","nov","des" ], + dayNamesShort: [ "sun","mån","tys","ons","tor","fre","lau" ], + dayNames: [ "sundag","måndag","tysdag","onsdag","torsdag","fredag","laurdag" ], + dayNamesMin: [ "su","må","ty","on","to","fr","la" ], + weekHeader: "Veke", + dateFormat: "dd.mm.yy", + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: "" +}; +datepicker.setDefaults( datepicker.regional.nn ); + +return datepicker.regional.nn; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-no.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-no.js new file mode 100644 index 00000000..8a755aae --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-no.js @@ -0,0 +1,50 @@ +/* Norwegian initialisation for the jQuery UI date picker plugin. */ +/* Written by Naimdjon Takhirov (naimdjon@gmail.com). */ + +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional.no = { + closeText: "Lukk", + prevText: "«Forrige", + nextText: "Neste»", + currentText: "I dag", + monthNames: [ + "januar", + "februar", + "mars", + "april", + "mai", + "juni", + "juli", + "august", + "september", + "oktober", + "november", + "desember" + ], + monthNamesShort: [ "jan","feb","mar","apr","mai","jun","jul","aug","sep","okt","nov","des" ], + dayNamesShort: [ "søn","man","tir","ons","tor","fre","lør" ], + dayNames: [ "søndag","mandag","tirsdag","onsdag","torsdag","fredag","lørdag" ], + dayNamesMin: [ "sø","ma","ti","on","to","fr","lø" ], + weekHeader: "Uke", + dateFormat: "dd.mm.yy", + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: "" +}; +datepicker.setDefaults( datepicker.regional.no ); + +return datepicker.regional.no; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-pl.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-pl.js new file mode 100644 index 00000000..c2fddc13 --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-pl.js @@ -0,0 +1,37 @@ +/* Polish initialisation for the jQuery UI date picker plugin. */ +/* Written by Jacek Wysocki (jacek.wysocki@gmail.com). */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional.pl = { + closeText: "Zamknij", + prevText: "<Poprzedni", + nextText: "Następny>", + currentText: "Dziś", + monthNames: [ "Styczeń","Luty","Marzec","Kwiecień","Maj","Czerwiec", + "Lipiec","Sierpień","Wrzesień","Październik","Listopad","Grudzień" ], + monthNamesShort: [ "Sty","Lu","Mar","Kw","Maj","Cze", + "Lip","Sie","Wrz","Pa","Lis","Gru" ], + dayNames: [ "Niedziela","Poniedziałek","Wtorek","Środa","Czwartek","Piątek","Sobota" ], + dayNamesShort: [ "Nie","Pn","Wt","Śr","Czw","Pt","So" ], + dayNamesMin: [ "N","Pn","Wt","Śr","Cz","Pt","So" ], + weekHeader: "Tydz", + dateFormat: "dd.mm.yy", + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.pl ); + +return datepicker.regional.pl; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-pt-BR.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-pt-BR.js new file mode 100644 index 00000000..aeae7ca4 --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-pt-BR.js @@ -0,0 +1,45 @@ +/* Brazilian initialisation for the jQuery UI date picker plugin. */ +/* Written by Leonildo Costa Silva (leocsilva@gmail.com). */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional[ "pt-BR" ] = { + closeText: "Fechar", + prevText: "<Anterior", + nextText: "Próximo>", + currentText: "Hoje", + monthNames: [ "Janeiro","Fevereiro","Março","Abril","Maio","Junho", + "Julho","Agosto","Setembro","Outubro","Novembro","Dezembro" ], + monthNamesShort: [ "Jan","Fev","Mar","Abr","Mai","Jun", + "Jul","Ago","Set","Out","Nov","Dez" ], + dayNames: [ + "Domingo", + "Segunda-feira", + "Terça-feira", + "Quarta-feira", + "Quinta-feira", + "Sexta-feira", + "Sábado" + ], + dayNamesShort: [ "Dom","Seg","Ter","Qua","Qui","Sex","Sáb" ], + dayNamesMin: [ "Dom","Seg","Ter","Qua","Qui","Sex","Sáb" ], + weekHeader: "Sm", + dateFormat: "dd/mm/yy", + firstDay: 0, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional[ "pt-BR" ] ); + +return datepicker.regional[ "pt-BR" ]; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-pt.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-pt.js new file mode 100644 index 00000000..b1afd7b3 --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-pt.js @@ -0,0 +1,44 @@ +/* Portuguese initialisation for the jQuery UI date picker plugin. */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional.pt = { + closeText: "Fechar", + prevText: "Anterior", + nextText: "Seguinte", + currentText: "Hoje", + monthNames: [ "Janeiro","Fevereiro","Março","Abril","Maio","Junho", + "Julho","Agosto","Setembro","Outubro","Novembro","Dezembro" ], + monthNamesShort: [ "Jan","Fev","Mar","Abr","Mai","Jun", + "Jul","Ago","Set","Out","Nov","Dez" ], + dayNames: [ + "Domingo", + "Segunda-feira", + "Terça-feira", + "Quarta-feira", + "Quinta-feira", + "Sexta-feira", + "Sábado" + ], + dayNamesShort: [ "Dom","Seg","Ter","Qua","Qui","Sex","Sáb" ], + dayNamesMin: [ "Dom","Seg","Ter","Qua","Qui","Sex","Sáb" ], + weekHeader: "Sem", + dateFormat: "dd/mm/yy", + firstDay: 0, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.pt ); + +return datepicker.regional.pt; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-rm.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-rm.js new file mode 100644 index 00000000..89a5c77a --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-rm.js @@ -0,0 +1,61 @@ +/* Romansh initialisation for the jQuery UI date picker plugin. */ +/* Written by Yvonne Gienal (yvonne.gienal@educa.ch). */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional.rm = { + closeText: "Serrar", + prevText: "<Suandant", + nextText: "Precedent>", + currentText: "Actual", + monthNames: [ + "Schaner", + "Favrer", + "Mars", + "Avrigl", + "Matg", + "Zercladur", + "Fanadur", + "Avust", + "Settember", + "October", + "November", + "December" + ], + monthNamesShort: [ + "Scha", + "Fev", + "Mar", + "Avr", + "Matg", + "Zer", + "Fan", + "Avu", + "Sett", + "Oct", + "Nov", + "Dec" + ], + dayNames: [ "Dumengia","Glindesdi","Mardi","Mesemna","Gievgia","Venderdi","Sonda" ], + dayNamesShort: [ "Dum","Gli","Mar","Mes","Gie","Ven","Som" ], + dayNamesMin: [ "Du","Gl","Ma","Me","Gi","Ve","So" ], + weekHeader: "emna", + dateFormat: "dd/mm/yy", + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.rm ); + +return datepicker.regional.rm; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-ro.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-ro.js new file mode 100644 index 00000000..b26665c2 --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-ro.js @@ -0,0 +1,40 @@ +/* Romanian initialisation for the jQuery UI date picker plugin. + * + * Written by Edmond L. (ll_edmond@walla.com) + * and Ionut G. Stan (ionut.g.stan@gmail.com) + */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional.ro = { + closeText: "Închide", + prevText: "« Luna precedentă", + nextText: "Luna următoare »", + currentText: "Azi", + monthNames: [ "Ianuarie","Februarie","Martie","Aprilie","Mai","Iunie", + "Iulie","August","Septembrie","Octombrie","Noiembrie","Decembrie" ], + monthNamesShort: [ "Ian", "Feb", "Mar", "Apr", "Mai", "Iun", + "Iul", "Aug", "Sep", "Oct", "Nov", "Dec" ], + dayNames: [ "Duminică", "Luni", "Marţi", "Miercuri", "Joi", "Vineri", "Sâmbătă" ], + dayNamesShort: [ "Dum", "Lun", "Mar", "Mie", "Joi", "Vin", "Sâm" ], + dayNamesMin: [ "Du","Lu","Ma","Mi","Jo","Vi","Sâ" ], + weekHeader: "Săpt", + dateFormat: "dd.mm.yy", + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.ro ); + +return datepicker.regional.ro; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-ru.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-ru.js new file mode 100644 index 00000000..223e7764 --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-ru.js @@ -0,0 +1,37 @@ +/* Russian (UTF-8) initialisation for the jQuery UI date picker plugin. */ +/* Written by Andrew Stromnov (stromnov@gmail.com). */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional.ru = { + closeText: "Закрыть", + prevText: "<Пред", + nextText: "След>", + currentText: "Сегодня", + monthNames: [ "Январь","Февраль","Март","Апрель","Май","Июнь", + "Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь" ], + monthNamesShort: [ "Янв","Фев","Мар","Апр","Май","Июн", + "Июл","Авг","Сен","Окт","Ноя","Дек" ], + dayNames: [ "воскресенье","понедельник","вторник","среда","четверг","пятница","суббота" ], + dayNamesShort: [ "вск","пнд","втр","срд","чтв","птн","сбт" ], + dayNamesMin: [ "Вс","Пн","Вт","Ср","Чт","Пт","Сб" ], + weekHeader: "Нед", + dateFormat: "dd.mm.yy", + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.ru ); + +return datepicker.regional.ru; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-sk.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-sk.js new file mode 100644 index 00000000..16d8bdfe --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-sk.js @@ -0,0 +1,37 @@ +/* Slovak initialisation for the jQuery UI date picker plugin. */ +/* Written by Vojtech Rinik (vojto@hmm.sk). */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional.sk = { + closeText: "Zavrieť", + prevText: "<Predchádzajúci", + nextText: "Nasledujúci>", + currentText: "Dnes", + monthNames: [ "január","február","marec","apríl","máj","jún", + "júl","august","september","október","november","december" ], + monthNamesShort: [ "Jan","Feb","Mar","Apr","Máj","Jún", + "Júl","Aug","Sep","Okt","Nov","Dec" ], + dayNames: [ "nedeľa","pondelok","utorok","streda","štvrtok","piatok","sobota" ], + dayNamesShort: [ "Ned","Pon","Uto","Str","Štv","Pia","Sob" ], + dayNamesMin: [ "Ne","Po","Ut","St","Št","Pia","So" ], + weekHeader: "Ty", + dateFormat: "dd.mm.yy", + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.sk ); + +return datepicker.regional.sk; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-sl.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-sl.js new file mode 100644 index 00000000..68916249 --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-sl.js @@ -0,0 +1,38 @@ +/* Slovenian initialisation for the jQuery UI date picker plugin. */ +/* Written by Jaka Jancar (jaka@kubje.org). */ +/* c = č, s = š z = ž C = Č S = Š Z = Ž */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional.sl = { + closeText: "Zapri", + prevText: "<Prejšnji", + nextText: "Naslednji>", + currentText: "Trenutni", + monthNames: [ "Januar","Februar","Marec","April","Maj","Junij", + "Julij","Avgust","September","Oktober","November","December" ], + monthNamesShort: [ "Jan","Feb","Mar","Apr","Maj","Jun", + "Jul","Avg","Sep","Okt","Nov","Dec" ], + dayNames: [ "Nedelja","Ponedeljek","Torek","Sreda","Četrtek","Petek","Sobota" ], + dayNamesShort: [ "Ned","Pon","Tor","Sre","Čet","Pet","Sob" ], + dayNamesMin: [ "Ne","Po","To","Sr","Če","Pe","So" ], + weekHeader: "Teden", + dateFormat: "dd.mm.yy", + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.sl ); + +return datepicker.regional.sl; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-sq.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-sq.js new file mode 100644 index 00000000..34fe66a5 --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-sq.js @@ -0,0 +1,37 @@ +/* Albanian initialisation for the jQuery UI date picker plugin. */ +/* Written by Flakron Bytyqi (flakron@gmail.com). */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional.sq = { + closeText: "mbylle", + prevText: "<mbrapa", + nextText: "Përpara>", + currentText: "sot", + monthNames: [ "Janar","Shkurt","Mars","Prill","Maj","Qershor", + "Korrik","Gusht","Shtator","Tetor","Nëntor","Dhjetor" ], + monthNamesShort: [ "Jan","Shk","Mar","Pri","Maj","Qer", + "Kor","Gus","Sht","Tet","Nën","Dhj" ], + dayNames: [ "E Diel","E Hënë","E Martë","E Mërkurë","E Enjte","E Premte","E Shtune" ], + dayNamesShort: [ "Di","Hë","Ma","Më","En","Pr","Sh" ], + dayNamesMin: [ "Di","Hë","Ma","Më","En","Pr","Sh" ], + weekHeader: "Ja", + dateFormat: "dd.mm.yy", + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.sq ); + +return datepicker.regional.sq; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-sr-SR.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-sr-SR.js new file mode 100644 index 00000000..e9db26a4 --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-sr-SR.js @@ -0,0 +1,37 @@ +/* Serbian i18n for the jQuery UI date picker plugin. */ +/* Written by Dejan Dimić. */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional[ "sr-SR" ] = { + closeText: "Zatvori", + prevText: "<", + nextText: ">", + currentText: "Danas", + monthNames: [ "Januar","Februar","Mart","April","Maj","Jun", + "Jul","Avgust","Septembar","Oktobar","Novembar","Decembar" ], + monthNamesShort: [ "Jan","Feb","Mar","Apr","Maj","Jun", + "Jul","Avg","Sep","Okt","Nov","Dec" ], + dayNames: [ "Nedelja","Ponedeljak","Utorak","Sreda","Četvrtak","Petak","Subota" ], + dayNamesShort: [ "Ned","Pon","Uto","Sre","Čet","Pet","Sub" ], + dayNamesMin: [ "Ne","Po","Ut","Sr","Če","Pe","Su" ], + weekHeader: "Sed", + dateFormat: "dd.mm.yy", + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional[ "sr-SR" ] ); + +return datepicker.regional[ "sr-SR" ]; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-sr.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-sr.js new file mode 100644 index 00000000..fa8827aa --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-sr.js @@ -0,0 +1,37 @@ +/* Serbian i18n for the jQuery UI date picker plugin. */ +/* Written by Dejan Dimić. */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional.sr = { + closeText: "Затвори", + prevText: "<", + nextText: ">", + currentText: "Данас", + monthNames: [ "Јануар","Фебруар","Март","Април","Мај","Јун", + "Јул","Август","Септембар","Октобар","Новембар","Децембар" ], + monthNamesShort: [ "Јан","Феб","Мар","Апр","Мај","Јун", + "Јул","Авг","Сеп","Окт","Нов","Дец" ], + dayNames: [ "Недеља","Понедељак","Уторак","Среда","Четвртак","Петак","Субота" ], + dayNamesShort: [ "Нед","Пон","Уто","Сре","Чет","Пет","Суб" ], + dayNamesMin: [ "Не","По","Ут","Ср","Че","Пе","Су" ], + weekHeader: "Сед", + dateFormat: "dd.mm.yy", + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.sr ); + +return datepicker.regional.sr; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-sv.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-sv.js new file mode 100644 index 00000000..92686efa --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-sv.js @@ -0,0 +1,37 @@ +/* Swedish initialisation for the jQuery UI date picker plugin. */ +/* Written by Anders Ekdahl ( anders@nomadiz.se). */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional.sv = { + closeText: "Stäng", + prevText: "«Förra", + nextText: "Nästa»", + currentText: "Idag", + monthNames: [ "Januari","Februari","Mars","April","Maj","Juni", + "Juli","Augusti","September","Oktober","November","December" ], + monthNamesShort: [ "Jan","Feb","Mar","Apr","Maj","Jun", + "Jul","Aug","Sep","Okt","Nov","Dec" ], + dayNamesShort: [ "Sön","Mån","Tis","Ons","Tor","Fre","Lör" ], + dayNames: [ "Söndag","Måndag","Tisdag","Onsdag","Torsdag","Fredag","Lördag" ], + dayNamesMin: [ "Sö","Må","Ti","On","To","Fr","Lö" ], + weekHeader: "Ve", + dateFormat: "yy-mm-dd", + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.sv ); + +return datepicker.regional.sv; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-ta.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-ta.js new file mode 100644 index 00000000..722614dd --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-ta.js @@ -0,0 +1,53 @@ +/* Tamil (UTF-8) initialisation for the jQuery UI date picker plugin. */ +/* Written by S A Sureshkumar (saskumar@live.com). */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional.ta = { + closeText: "மூடு", + prevText: "முன்னையது", + nextText: "அடுத்தது", + currentText: "இன்று", + monthNames: [ "தை","மாசி","பங்குனி","சித்திரை","வைகாசி","ஆனி", + "ஆடி","ஆவணி","புரட்டாசி","ஐப்பசி","கார்த்திகை","மார்கழி" ], + monthNamesShort: [ "தை","மாசி","பங்","சித்","வைகா","ஆனி", + "ஆடி","ஆவ","புர","ஐப்","கார்","மார்" ], + dayNames: [ + "ஞாயிற்றுக்கிழமை", + "திங்கட்கிழமை", + "செவ்வாய்க்கிழமை", + "புதன்கிழமை", + "வியாழக்கிழமை", + "வெள்ளிக்கிழமை", + "சனிக்கிழமை" + ], + dayNamesShort: [ + "ஞாயிறு", + "திங்கள்", + "செவ்வாய்", + "புதன்", + "வியாழன்", + "வெள்ளி", + "சனி" + ], + dayNamesMin: [ "ஞா","தி","செ","பு","வி","வெ","ச" ], + weekHeader: "Не", + dateFormat: "dd/mm/yy", + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.ta ); + +return datepicker.regional.ta; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-th.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-th.js new file mode 100644 index 00000000..6de48cf9 --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-th.js @@ -0,0 +1,37 @@ +/* Thai initialisation for the jQuery UI date picker plugin. */ +/* Written by pipo (pipo@sixhead.com). */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional.th = { + closeText: "ปิด", + prevText: "« ย้อน", + nextText: "ถัดไป »", + currentText: "วันนี้", + monthNames: [ "มกราคม","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน", + "กรกฎาคม","สิงหาคม","กันยายน","ตุลาคม","พฤศจิกายน","ธันวาคม" ], + monthNamesShort: [ "ม.ค.","ก.พ.","มี.ค.","เม.ย.","พ.ค.","มิ.ย.", + "ก.ค.","ส.ค.","ก.ย.","ต.ค.","พ.ย.","ธ.ค." ], + dayNames: [ "อาทิตย์","จันทร์","อังคาร","พุธ","พฤหัสบดี","ศุกร์","เสาร์" ], + dayNamesShort: [ "อา.","จ.","อ.","พ.","พฤ.","ศ.","ส." ], + dayNamesMin: [ "อา.","จ.","อ.","พ.","พฤ.","ศ.","ส." ], + weekHeader: "Wk", + dateFormat: "dd/mm/yy", + firstDay: 0, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.th ); + +return datepicker.regional.th; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-tj.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-tj.js new file mode 100644 index 00000000..8ede4ddc --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-tj.js @@ -0,0 +1,37 @@ +/* Tajiki (UTF-8) initialisation for the jQuery UI date picker plugin. */ +/* Written by Abdurahmon Saidov (saidovab@gmail.com). */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional.tj = { + closeText: "Идома", + prevText: "<Қафо", + nextText: "Пеш>", + currentText: "Имрӯз", + monthNames: [ "Январ","Феврал","Март","Апрел","Май","Июн", + "Июл","Август","Сентябр","Октябр","Ноябр","Декабр" ], + monthNamesShort: [ "Янв","Фев","Мар","Апр","Май","Июн", + "Июл","Авг","Сен","Окт","Ноя","Дек" ], + dayNames: [ "якшанбе","душанбе","сешанбе","чоршанбе","панҷшанбе","ҷумъа","шанбе" ], + dayNamesShort: [ "якш","душ","сеш","чор","пан","ҷум","шан" ], + dayNamesMin: [ "Як","Дш","Сш","Чш","Пш","Ҷм","Шн" ], + weekHeader: "Хф", + dateFormat: "dd.mm.yy", + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.tj ); + +return datepicker.regional.tj; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-tr.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-tr.js new file mode 100644 index 00000000..8328e219 --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-tr.js @@ -0,0 +1,37 @@ +/* Turkish initialisation for the jQuery UI date picker plugin. */ +/* Written by Izzet Emre Erkan (kara@karalamalar.net). */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional.tr = { + closeText: "kapat", + prevText: "<geri", + nextText: "ileri>", + currentText: "bugün", + monthNames: [ "Ocak","Şubat","Mart","Nisan","Mayıs","Haziran", + "Temmuz","Ağustos","Eylül","Ekim","Kasım","Aralık" ], + monthNamesShort: [ "Oca","Şub","Mar","Nis","May","Haz", + "Tem","Ağu","Eyl","Eki","Kas","Ara" ], + dayNames: [ "Pazar","Pazartesi","Salı","Çarşamba","Perşembe","Cuma","Cumartesi" ], + dayNamesShort: [ "Pz","Pt","Sa","Ça","Pe","Cu","Ct" ], + dayNamesMin: [ "Pz","Pt","Sa","Ça","Pe","Cu","Ct" ], + weekHeader: "Hf", + dateFormat: "dd.mm.yy", + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.tr ); + +return datepicker.regional.tr; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-uk.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-uk.js new file mode 100644 index 00000000..c82501ad --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-uk.js @@ -0,0 +1,38 @@ +/* Ukrainian (UTF-8) initialisation for the jQuery UI date picker plugin. */ +/* Written by Maxim Drogobitskiy (maxdao@gmail.com). */ +/* Corrected by Igor Milla (igor.fsp.milla@gmail.com). */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional.uk = { + closeText: "Закрити", + prevText: "<", + nextText: ">", + currentText: "Сьогодні", + monthNames: [ "Січень","Лютий","Березень","Квітень","Травень","Червень", + "Липень","Серпень","Вересень","Жовтень","Листопад","Грудень" ], + monthNamesShort: [ "Січ","Лют","Бер","Кві","Тра","Чер", + "Лип","Сер","Вер","Жов","Лис","Гру" ], + dayNames: [ "неділя","понеділок","вівторок","середа","четвер","п’ятниця","субота" ], + dayNamesShort: [ "нед","пнд","вів","срд","чтв","птн","сбт" ], + dayNamesMin: [ "Нд","Пн","Вт","Ср","Чт","Пт","Сб" ], + weekHeader: "Тиж", + dateFormat: "dd.mm.yy", + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.uk ); + +return datepicker.regional.uk; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-vi.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-vi.js new file mode 100644 index 00000000..2c208ab7 --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-vi.js @@ -0,0 +1,37 @@ +/* Vietnamese initialisation for the jQuery UI date picker plugin. */ +/* Translated by Le Thanh Huy (lthanhhuy@cit.ctu.edu.vn). */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional.vi = { + closeText: "Đóng", + prevText: "<Trước", + nextText: "Tiếp>", + currentText: "Hôm nay", + monthNames: [ "Tháng Một", "Tháng Hai", "Tháng Ba", "Tháng Tư", "Tháng Năm", "Tháng Sáu", + "Tháng Bảy", "Tháng Tám", "Tháng Chín", "Tháng Mười", "Tháng Mười Một", "Tháng Mười Hai" ], + monthNamesShort: [ "Tháng 1", "Tháng 2", "Tháng 3", "Tháng 4", "Tháng 5", "Tháng 6", + "Tháng 7", "Tháng 8", "Tháng 9", "Tháng 10", "Tháng 11", "Tháng 12" ], + dayNames: [ "Chủ Nhật", "Thứ Hai", "Thứ Ba", "Thứ Tư", "Thứ Năm", "Thứ Sáu", "Thứ Bảy" ], + dayNamesShort: [ "CN", "T2", "T3", "T4", "T5", "T6", "T7" ], + dayNamesMin: [ "CN", "T2", "T3", "T4", "T5", "T6", "T7" ], + weekHeader: "Tu", + dateFormat: "dd/mm/yy", + firstDay: 0, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: "" }; +datepicker.setDefaults( datepicker.regional.vi ); + +return datepicker.regional.vi; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-zh-CN.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-zh-CN.js new file mode 100644 index 00000000..91f99b4e --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-zh-CN.js @@ -0,0 +1,37 @@ +/* Chinese initialisation for the jQuery UI date picker plugin. */ +/* Written by Cloudream (cloudream@gmail.com). */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional[ "zh-CN" ] = { + closeText: "关闭", + prevText: "<上月", + nextText: "下月>", + currentText: "今天", + monthNames: [ "一月","二月","三月","四月","五月","六月", + "七月","八月","九月","十月","十一月","十二月" ], + monthNamesShort: [ "一月","二月","三月","四月","五月","六月", + "七月","八月","九月","十月","十一月","十二月" ], + dayNames: [ "星期日","星期一","星期二","星期三","星期四","星期五","星期六" ], + dayNamesShort: [ "周日","周一","周二","周三","周四","周五","周六" ], + dayNamesMin: [ "日","一","二","三","四","五","六" ], + weekHeader: "周", + dateFormat: "yy-mm-dd", + firstDay: 1, + isRTL: false, + showMonthAfterYear: true, + yearSuffix: "年" }; +datepicker.setDefaults( datepicker.regional[ "zh-CN" ] ); + +return datepicker.regional[ "zh-CN" ]; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-zh-HK.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-zh-HK.js new file mode 100644 index 00000000..27f02bc6 --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-zh-HK.js @@ -0,0 +1,37 @@ +/* Chinese initialisation for the jQuery UI date picker plugin. */ +/* Written by SCCY (samuelcychan@gmail.com). */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional[ "zh-HK" ] = { + closeText: "關閉", + prevText: "<上月", + nextText: "下月>", + currentText: "今天", + monthNames: [ "一月","二月","三月","四月","五月","六月", + "七月","八月","九月","十月","十一月","十二月" ], + monthNamesShort: [ "一月","二月","三月","四月","五月","六月", + "七月","八月","九月","十月","十一月","十二月" ], + dayNames: [ "星期日","星期一","星期二","星期三","星期四","星期五","星期六" ], + dayNamesShort: [ "周日","周一","周二","周三","周四","周五","周六" ], + dayNamesMin: [ "日","一","二","三","四","五","六" ], + weekHeader: "周", + dateFormat: "dd-mm-yy", + firstDay: 0, + isRTL: false, + showMonthAfterYear: true, + yearSuffix: "年" }; +datepicker.setDefaults( datepicker.regional[ "zh-HK" ] ); + +return datepicker.regional[ "zh-HK" ]; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/i18n/datepicker-zh-TW.js b/app/assets/javascripts/jquery-ui/i18n/datepicker-zh-TW.js new file mode 100644 index 00000000..c20754bd --- /dev/null +++ b/app/assets/javascripts/jquery-ui/i18n/datepicker-zh-TW.js @@ -0,0 +1,37 @@ +/* Chinese initialisation for the jQuery UI date picker plugin. */ +/* Written by Ressol (ressol@gmail.com). */ +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "../widgets/datepicker" ], factory ); + } else { + + // Browser globals + factory( jQuery.datepicker ); + } +}( function( datepicker ) { + +datepicker.regional[ "zh-TW" ] = { + closeText: "關閉", + prevText: "<上月", + nextText: "下月>", + currentText: "今天", + monthNames: [ "一月","二月","三月","四月","五月","六月", + "七月","八月","九月","十月","十一月","十二月" ], + monthNamesShort: [ "一月","二月","三月","四月","五月","六月", + "七月","八月","九月","十月","十一月","十二月" ], + dayNames: [ "星期日","星期一","星期二","星期三","星期四","星期五","星期六" ], + dayNamesShort: [ "周日","周一","周二","周三","周四","周五","周六" ], + dayNamesMin: [ "日","一","二","三","四","五","六" ], + weekHeader: "周", + dateFormat: "yy/mm/dd", + firstDay: 1, + isRTL: false, + showMonthAfterYear: true, + yearSuffix: "年" }; +datepicker.setDefaults( datepicker.regional[ "zh-TW" ] ); + +return datepicker.regional[ "zh-TW" ]; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/ie.js b/app/assets/javascripts/jquery-ui/ie.js new file mode 100644 index 00000000..c339bab1 --- /dev/null +++ b/app/assets/javascripts/jquery-ui/ie.js @@ -0,0 +1,17 @@ +//= require jquery-ui/version + +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "jquery", "./version" ], factory ); + } else { + + // Browser globals + factory( jQuery ); + } +} ( function( $ ) { + +// This file is deprecated +return $.ui.ie = !!/msie [\w.]+/.exec( navigator.userAgent.toLowerCase() ); +} ) ); diff --git a/app/assets/javascripts/jquery-ui/jquery-1-7.js b/app/assets/javascripts/jquery-ui/jquery-1-7.js new file mode 100644 index 00000000..1b8aeaa1 --- /dev/null +++ b/app/assets/javascripts/jquery-ui/jquery-1-7.js @@ -0,0 +1,91 @@ +//= require jquery-ui/version + +/*! + * jQuery UI Support for jQuery core 1.7.x 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + * + */ + +//>>label: jQuery 1.7 Support +//>>group: Core +//>>description: Support version 1.7.x of jQuery core + +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "jquery", "./version" ], factory ); + } else { + + // Browser globals + factory( jQuery ); + } +}( function( $ ) { + +// Support: jQuery 1.7 only +// Not a great way to check versions, but since we only support 1.7+ and only +// need to detect <1.8, this is a simple check that should suffice. Checking +// for "1.7." would be a bit safer, but the version string is 1.7, not 1.7.0 +// and we'll never reach 1.70.0 (if we do, we certainly won't be supporting +// 1.7 anymore). See #11197 for why we're not using feature detection. +if ( $.fn.jquery.substring( 0, 3 ) === "1.7" ) { + + // Setters for .innerWidth(), .innerHeight(), .outerWidth(), .outerHeight() + // Unlike jQuery Core 1.8+, these only support numeric values to set the + // dimensions in pixels + $.each( [ "Width", "Height" ], function( i, name ) { + var side = name === "Width" ? [ "Left", "Right" ] : [ "Top", "Bottom" ], + type = name.toLowerCase(), + orig = { + innerWidth: $.fn.innerWidth, + innerHeight: $.fn.innerHeight, + outerWidth: $.fn.outerWidth, + outerHeight: $.fn.outerHeight + }; + + function reduce( elem, size, border, margin ) { + $.each( side, function() { + size -= parseFloat( $.css( elem, "padding" + this ) ) || 0; + if ( border ) { + size -= parseFloat( $.css( elem, "border" + this + "Width" ) ) || 0; + } + if ( margin ) { + size -= parseFloat( $.css( elem, "margin" + this ) ) || 0; + } + } ); + return size; + } + + $.fn[ "inner" + name ] = function( size ) { + if ( size === undefined ) { + return orig[ "inner" + name ].call( this ); + } + + return this.each( function() { + $( this ).css( type, reduce( this, size ) + "px" ); + } ); + }; + + $.fn[ "outer" + name ] = function( size, margin ) { + if ( typeof size !== "number" ) { + return orig[ "outer" + name ].call( this, size ); + } + + return this.each( function() { + $( this ).css( type, reduce( this, size, true, margin ) + "px" ); + } ); + }; + } ); + + $.fn.addBack = function( selector ) { + return this.add( selector == null ? + this.prevObject : this.prevObject.filter( selector ) + ); + }; +} + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/keycode.js b/app/assets/javascripts/jquery-ui/keycode.js new file mode 100644 index 00000000..7480dfc8 --- /dev/null +++ b/app/assets/javascripts/jquery-ui/keycode.js @@ -0,0 +1,47 @@ +//= require jquery-ui/version + +/*! + * jQuery UI Keycode 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: Keycode +//>>group: Core +//>>description: Provide keycodes as keynames +//>>docs: http://api.jqueryui.com/jQuery.ui.keyCode/ + +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "jquery", "./version" ], factory ); + } else { + + // Browser globals + factory( jQuery ); + } +} ( function( $ ) { +return $.ui.keyCode = { + BACKSPACE: 8, + COMMA: 188, + DELETE: 46, + DOWN: 40, + END: 35, + ENTER: 13, + ESCAPE: 27, + HOME: 36, + LEFT: 37, + PAGE_DOWN: 34, + PAGE_UP: 33, + PERIOD: 190, + RIGHT: 39, + SPACE: 32, + TAB: 9, + UP: 38 +}; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/labels.js b/app/assets/javascripts/jquery-ui/labels.js new file mode 100644 index 00000000..a94c9a46 --- /dev/null +++ b/app/assets/javascripts/jquery-ui/labels.js @@ -0,0 +1,65 @@ +//= require jquery-ui/version +//= require jquery-ui/escape-selector + +/*! + * jQuery UI Labels 1.12.1 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +//>>label: labels +//>>group: Core +//>>description: Find all the labels associated with a given input +//>>docs: http://api.jqueryui.com/labels/ + +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "jquery", "./version", "./escape-selector" ], factory ); + } else { + + // Browser globals + factory( jQuery ); + } +} ( function( $ ) { + +return $.fn.labels = function() { + var ancestor, selector, id, labels, ancestors; + + // Check control.labels first + if ( this[ 0 ].labels && this[ 0 ].labels.length ) { + return this.pushStack( this[ 0 ].labels ); + } + + // Support: IE <= 11, FF <= 37, Android <= 2.3 only + // Above browsers do not support control.labels. Everything below is to support them + // as well as document fragments. control.labels does not work on document fragments + labels = this.eq( 0 ).parents( "label" ); + + // Look for the label based on the id + id = this.attr( "id" ); + if ( id ) { + + // We don't search against the document in case the element + // is disconnected from the DOM + ancestor = this.eq( 0 ).parents().last(); + + // Get a full set of top level ancestors + ancestors = ancestor.add( ancestor.length ? ancestor.siblings() : this.siblings() ); + + // Create a selector for the label based on the id + selector = "label[for='" + $.ui.escapeSelector( id ) + "']"; + + labels = labels.add( ancestors.find( selector ).addBack( selector ) ); + + } + + // Return whatever we have found for labels + return this.pushStack( labels ); +}; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/mouse.js b/app/assets/javascripts/jquery-ui/mouse.js deleted file mode 100644 index 12da35c9..00000000 --- a/app/assets/javascripts/jquery-ui/mouse.js +++ /dev/null @@ -1,202 +0,0 @@ -//= require jquery-ui/core -//= require jquery-ui/widget - -/*! - * jQuery UI Mouse 1.11.4 - * http://jqueryui.com - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license. - * http://jquery.org/license - * - * http://api.jqueryui.com/mouse/ - */ -(function( factory ) { - if ( typeof define === "function" && define.amd ) { - - // AMD. Register as an anonymous module. - define([ - "jquery", - "./widget" - ], factory ); - } else { - - // Browser globals - factory( jQuery ); - } -}(function( $ ) { - -var mouseHandled = false; -$( document ).mouseup( function() { - mouseHandled = false; -}); - -return $.widget("ui.mouse", { - version: "1.11.4", - options: { - cancel: "input,textarea,button,select,option", - distance: 1, - delay: 0 - }, - _mouseInit: function() { - var that = this; - - this.element - .bind("mousedown." + this.widgetName, function(event) { - return that._mouseDown(event); - }) - .bind("click." + this.widgetName, function(event) { - if (true === $.data(event.target, that.widgetName + ".preventClickEvent")) { - $.removeData(event.target, that.widgetName + ".preventClickEvent"); - event.stopImmediatePropagation(); - return false; - } - }); - - this.started = false; - }, - - // TODO: make sure destroying one instance of mouse doesn't mess with - // other instances of mouse - _mouseDestroy: function() { - this.element.unbind("." + this.widgetName); - if ( this._mouseMoveDelegate ) { - this.document - .unbind("mousemove." + this.widgetName, this._mouseMoveDelegate) - .unbind("mouseup." + this.widgetName, this._mouseUpDelegate); - } - }, - - _mouseDown: function(event) { - // don't let more than one widget handle mouseStart - if ( mouseHandled ) { - return; - } - - this._mouseMoved = false; - - // we may have missed mouseup (out of window) - (this._mouseStarted && this._mouseUp(event)); - - this._mouseDownEvent = event; - - var that = this, - btnIsLeft = (event.which === 1), - // event.target.nodeName works around a bug in IE 8 with - // disabled inputs (#7620) - elIsCancel = (typeof this.options.cancel === "string" && event.target.nodeName ? $(event.target).closest(this.options.cancel).length : false); - if (!btnIsLeft || elIsCancel || !this._mouseCapture(event)) { - return true; - } - - this.mouseDelayMet = !this.options.delay; - if (!this.mouseDelayMet) { - this._mouseDelayTimer = setTimeout(function() { - that.mouseDelayMet = true; - }, this.options.delay); - } - - if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) { - this._mouseStarted = (this._mouseStart(event) !== false); - if (!this._mouseStarted) { - event.preventDefault(); - return true; - } - } - - // Click event may never have fired (Gecko & Opera) - if (true === $.data(event.target, this.widgetName + ".preventClickEvent")) { - $.removeData(event.target, this.widgetName + ".preventClickEvent"); - } - - // these delegates are required to keep context - this._mouseMoveDelegate = function(event) { - return that._mouseMove(event); - }; - this._mouseUpDelegate = function(event) { - return that._mouseUp(event); - }; - - this.document - .bind( "mousemove." + this.widgetName, this._mouseMoveDelegate ) - .bind( "mouseup." + this.widgetName, this._mouseUpDelegate ); - - event.preventDefault(); - - mouseHandled = true; - return true; - }, - - _mouseMove: function(event) { - // Only check for mouseups outside the document if you've moved inside the document - // at least once. This prevents the firing of mouseup in the case of IE<9, which will - // fire a mousemove event if content is placed under the cursor. See #7778 - // Support: IE <9 - if ( this._mouseMoved ) { - // IE mouseup check - mouseup happened when mouse was out of window - if ($.ui.ie && ( !document.documentMode || document.documentMode < 9 ) && !event.button) { - return this._mouseUp(event); - - // Iframe mouseup check - mouseup occurred in another document - } else if ( !event.which ) { - return this._mouseUp( event ); - } - } - - if ( event.which || event.button ) { - this._mouseMoved = true; - } - - if (this._mouseStarted) { - this._mouseDrag(event); - return event.preventDefault(); - } - - if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) { - this._mouseStarted = - (this._mouseStart(this._mouseDownEvent, event) !== false); - (this._mouseStarted ? this._mouseDrag(event) : this._mouseUp(event)); - } - - return !this._mouseStarted; - }, - - _mouseUp: function(event) { - this.document - .unbind( "mousemove." + this.widgetName, this._mouseMoveDelegate ) - .unbind( "mouseup." + this.widgetName, this._mouseUpDelegate ); - - if (this._mouseStarted) { - this._mouseStarted = false; - - if (event.target === this._mouseDownEvent.target) { - $.data(event.target, this.widgetName + ".preventClickEvent", true); - } - - this._mouseStop(event); - } - - mouseHandled = false; - return false; - }, - - _mouseDistanceMet: function(event) { - return (Math.max( - Math.abs(this._mouseDownEvent.pageX - event.pageX), - Math.abs(this._mouseDownEvent.pageY - event.pageY) - ) >= this.options.distance - ); - }, - - _mouseDelayMet: function(/* event */) { - return this.mouseDelayMet; - }, - - // These are placeholder methods, to be overriden by extending plugin - _mouseStart: function(/* event */) {}, - _mouseDrag: function(/* event */) {}, - _mouseStop: function(/* event */) {}, - _mouseCapture: function(/* event */) { return true; } -}); - -})); diff --git a/app/assets/javascripts/jquery-ui/plugin.js b/app/assets/javascripts/jquery-ui/plugin.js new file mode 100644 index 00000000..ce60e7b5 --- /dev/null +++ b/app/assets/javascripts/jquery-ui/plugin.js @@ -0,0 +1,46 @@ +//= require jquery-ui/version + +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "jquery", "./version" ], factory ); + } else { + + // Browser globals + factory( jQuery ); + } +} ( function( $ ) { + +// $.ui.plugin is deprecated. Use $.widget() extensions instead. +return $.ui.plugin = { + add: function( module, option, set ) { + var i, + proto = $.ui[ module ].prototype; + for ( i in set ) { + proto.plugins[ i ] = proto.plugins[ i ] || []; + proto.plugins[ i ].push( [ option, set[ i ] ] ); + } + }, + call: function( instance, name, args, allowDisconnected ) { + var i, + set = instance.plugins[ name ]; + + if ( !set ) { + return; + } + + if ( !allowDisconnected && ( !instance.element[ 0 ].parentNode || + instance.element[ 0 ].parentNode.nodeType === 11 ) ) { + return; + } + + for ( i = 0; i < set.length; i++ ) { + if ( instance.options[ set[ i ][ 0 ] ] ) { + set[ i ][ 1 ].apply( instance.element, args ); + } + } + } +}; + +} ) ); diff --git a/app/assets/javascripts/jquery-ui/position.js b/app/assets/javascripts/jquery-ui/position.js index bb97a5b6..7f6bc91d 100644 --- a/app/assets/javascripts/jquery-ui/position.js +++ b/app/assets/javascripts/jquery-ui/position.js @@ -1,5 +1,7 @@ +//= require jquery-ui/version + /*! - * jQuery UI Position 1.11.4 + * jQuery UI Position 1.12.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -8,25 +10,28 @@ * * http://api.jqueryui.com/position/ */ -(function( factory ) { + +//>>label: Position +//>>group: Core +//>>description: Positions elements relative to other elements. +//>>docs: http://api.jqueryui.com/position/ +//>>demos: http://jqueryui.com/position/ + +( function( factory ) { if ( typeof define === "function" && define.amd ) { // AMD. Register as an anonymous module. - define( [ "jquery" ], factory ); + define( [ "jquery", "./version" ], factory ); } else { // Browser globals factory( jQuery ); } -}(function( $ ) { -(function() { - -$.ui = $.ui || {}; - -var cachedScrollbarWidth, supportsOffsetFractions, +}( function( $ ) { +( function() { +var cachedScrollbarWidth, max = Math.max, abs = Math.abs, - round = Math.round, rhorizontal = /left|center|right/, rvertical = /top|center|bottom/, roffset = /[\+\-]\d+(\.[\d]+)?%?/, @@ -46,7 +51,7 @@ function parseCss( element, property ) { } function getDimensions( elem ) { - var raw = elem[0]; + var raw = elem[ 0 ]; if ( raw.nodeType === 9 ) { return { width: elem.width(), @@ -81,8 +86,10 @@ $.position = { return cachedScrollbarWidth; } var w1, w2, - div = $( "
" ), - innerDiv = div.children()[0]; + div = $( "
" + + "
" ), + innerDiv = div.children()[ 0 ]; $( "body" ).append( div ); w1 = innerDiv.offsetWidth; @@ -91,12 +98,12 @@ $.position = { w2 = innerDiv.offsetWidth; if ( w1 === w2 ) { - w2 = div[0].clientWidth; + w2 = div[ 0 ].clientWidth; } div.remove(); - return (cachedScrollbarWidth = w1 - w2); + return ( cachedScrollbarWidth = w1 - w2 ); }, getScrollInfo: function( within ) { var overflowX = within.isWindow || within.isDocument ? "" : @@ -104,9 +111,9 @@ $.position = { overflowY = within.isWindow || within.isDocument ? "" : within.element.css( "overflow-y" ), hasOverflowX = overflowX === "scroll" || - ( overflowX === "auto" && within.width < within.element[0].scrollWidth ), + ( overflowX === "auto" && within.width < within.element[ 0 ].scrollWidth ), hasOverflowY = overflowY === "scroll" || - ( overflowY === "auto" && within.height < within.element[0].scrollHeight ); + ( overflowY === "auto" && within.height < within.element[ 0 ].scrollHeight ); return { width: hasOverflowY ? $.position.scrollbarWidth() : 0, height: hasOverflowX ? $.position.scrollbarWidth() : 0 @@ -114,20 +121,18 @@ $.position = { }, getWithinInfo: function( element ) { var withinElement = $( element || window ), - isWindow = $.isWindow( withinElement[0] ), - isDocument = !!withinElement[ 0 ] && withinElement[ 0 ].nodeType === 9; + isWindow = $.isWindow( withinElement[ 0 ] ), + isDocument = !!withinElement[ 0 ] && withinElement[ 0 ].nodeType === 9, + hasOffset = !isWindow && !isDocument; return { element: withinElement, isWindow: isWindow, isDocument: isDocument, - offset: withinElement.offset() || { left: 0, top: 0 }, + offset: hasOffset ? $( element ).offset() : { left: 0, top: 0 }, scrollLeft: withinElement.scrollLeft(), scrollTop: withinElement.scrollTop(), - - // support: jQuery 1.6.x - // jQuery 1.6 doesn't support .outerWidth/Height() on documents or windows - width: isWindow || isDocument ? withinElement.width() : withinElement.outerWidth(), - height: isWindow || isDocument ? withinElement.height() : withinElement.outerHeight() + width: withinElement.outerWidth(), + height: withinElement.outerHeight() }; } }; @@ -137,7 +142,7 @@ $.fn.position = function( options ) { return _position.apply( this, arguments ); } - // make a copy, we don't want to modify arguments + // Make a copy, we don't want to modify arguments options = $.extend( {}, options ); var atOffset, targetWidth, targetHeight, targetOffset, basePosition, dimensions, @@ -148,24 +153,26 @@ $.fn.position = function( options ) { offsets = {}; dimensions = getDimensions( target ); - if ( target[0].preventDefault ) { - // force left top to allow flipping + if ( target[ 0 ].preventDefault ) { + + // Force left top to allow flipping options.at = "left top"; } targetWidth = dimensions.width; targetHeight = dimensions.height; targetOffset = dimensions.offset; - // clone to reuse original targetOffset later + + // Clone to reuse original targetOffset later basePosition = $.extend( {}, targetOffset ); - // force my and at to have valid horizontal and vertical positions + // Force my and at to have valid horizontal and vertical positions // if a value is missing or invalid, it will be converted to center $.each( [ "my", "at" ], function() { var pos = ( options[ this ] || "" ).split( " " ), horizontalOffset, verticalOffset; - if ( pos.length === 1) { + if ( pos.length === 1 ) { pos = rhorizontal.test( pos[ 0 ] ) ? pos.concat( [ "center" ] ) : rvertical.test( pos[ 0 ] ) ? @@ -175,7 +182,7 @@ $.fn.position = function( options ) { pos[ 0 ] = rhorizontal.test( pos[ 0 ] ) ? pos[ 0 ] : "center"; pos[ 1 ] = rvertical.test( pos[ 1 ] ) ? pos[ 1 ] : "center"; - // calculate offsets + // Calculate offsets horizontalOffset = roffset.exec( pos[ 0 ] ); verticalOffset = roffset.exec( pos[ 1 ] ); offsets[ this ] = [ @@ -183,14 +190,14 @@ $.fn.position = function( options ) { verticalOffset ? verticalOffset[ 0 ] : 0 ]; - // reduce to just the positions without the offsets + // Reduce to just the positions without the offsets options[ this ] = [ rposition.exec( pos[ 0 ] )[ 0 ], rposition.exec( pos[ 1 ] )[ 0 ] ]; - }); + } ); - // normalize collision option + // Normalize collision option if ( collision.length === 1 ) { collision[ 1 ] = collision[ 0 ]; } @@ -211,15 +218,17 @@ $.fn.position = function( options ) { basePosition.left += atOffset[ 0 ]; basePosition.top += atOffset[ 1 ]; - return this.each(function() { + return this.each( function() { var collisionPosition, using, elem = $( this ), elemWidth = elem.outerWidth(), elemHeight = elem.outerHeight(), marginLeft = parseCss( this, "marginLeft" ), marginTop = parseCss( this, "marginTop" ), - collisionWidth = elemWidth + marginLeft + parseCss( this, "marginRight" ) + scrollInfo.width, - collisionHeight = elemHeight + marginTop + parseCss( this, "marginBottom" ) + scrollInfo.height, + collisionWidth = elemWidth + marginLeft + parseCss( this, "marginRight" ) + + scrollInfo.width, + collisionHeight = elemHeight + marginTop + parseCss( this, "marginBottom" ) + + scrollInfo.height, position = $.extend( {}, basePosition ), myOffset = getOffsets( offsets.my, elem.outerWidth(), elem.outerHeight() ); @@ -238,12 +247,6 @@ $.fn.position = function( options ) { position.left += myOffset[ 0 ]; position.top += myOffset[ 1 ]; - // if the browser doesn't support fractions, then round for consistent results - if ( !supportsOffsetFractions ) { - position.left = round( position.left ); - position.top = round( position.top ); - } - collisionPosition = { marginLeft: marginLeft, marginTop: marginTop @@ -264,12 +267,13 @@ $.fn.position = function( options ) { at: options.at, within: within, elem: elem - }); + } ); } - }); + } ); if ( options.using ) { - // adds feedback as second argument to using callback, if present + + // Adds feedback as second argument to using callback, if present using = function( props ) { var left = targetOffset.left - position.left, right = left + targetWidth - elemWidth, @@ -309,7 +313,7 @@ $.fn.position = function( options ) { } elem.offset( $.extend( position, { using: using } ) ); - }); + } ); }; $.ui.position = { @@ -323,16 +327,20 @@ $.ui.position = { overRight = collisionPosLeft + data.collisionWidth - outerWidth - withinOffset, newOverRight; - // element is wider than within + // Element is wider than within if ( data.collisionWidth > outerWidth ) { - // element is initially over the left side of within + + // Element is initially over the left side of within if ( overLeft > 0 && overRight <= 0 ) { - newOverRight = position.left + overLeft + data.collisionWidth - outerWidth - withinOffset; + newOverRight = position.left + overLeft + data.collisionWidth - outerWidth - + withinOffset; position.left += overLeft - newOverRight; - // element is initially over right side of within + + // Element is initially over right side of within } else if ( overRight > 0 && overLeft <= 0 ) { position.left = withinOffset; - // element is initially over both left and right sides of within + + // Element is initially over both left and right sides of within } else { if ( overLeft > overRight ) { position.left = withinOffset + outerWidth - data.collisionWidth; @@ -340,13 +348,16 @@ $.ui.position = { position.left = withinOffset; } } - // too far left -> align with left edge + + // Too far left -> align with left edge } else if ( overLeft > 0 ) { position.left += overLeft; - // too far right -> align with right edge + + // Too far right -> align with right edge } else if ( overRight > 0 ) { position.left -= overRight; - // adjust based on position and margin + + // Adjust based on position and margin } else { position.left = max( position.left - collisionPosLeft, position.left ); } @@ -360,16 +371,20 @@ $.ui.position = { overBottom = collisionPosTop + data.collisionHeight - outerHeight - withinOffset, newOverBottom; - // element is taller than within + // Element is taller than within if ( data.collisionHeight > outerHeight ) { - // element is initially over the top of within + + // Element is initially over the top of within if ( overTop > 0 && overBottom <= 0 ) { - newOverBottom = position.top + overTop + data.collisionHeight - outerHeight - withinOffset; + newOverBottom = position.top + overTop + data.collisionHeight - outerHeight - + withinOffset; position.top += overTop - newOverBottom; - // element is initially over bottom of within + + // Element is initially over bottom of within } else if ( overBottom > 0 && overTop <= 0 ) { position.top = withinOffset; - // element is initially over both top and bottom of within + + // Element is initially over both top and bottom of within } else { if ( overTop > overBottom ) { position.top = withinOffset + outerHeight - data.collisionHeight; @@ -377,13 +392,16 @@ $.ui.position = { position.top = withinOffset; } } - // too far up -> align with top + + // Too far up -> align with top } else if ( overTop > 0 ) { position.top += overTop; - // too far down -> align with bottom edge + + // Too far down -> align with bottom edge } else if ( overBottom > 0 ) { position.top -= overBottom; - // adjust based on position and margin + + // Adjust based on position and margin } else { position.top = max( position.top - collisionPosTop, position.top ); } @@ -413,12 +431,14 @@ $.ui.position = { newOverLeft; if ( overLeft < 0 ) { - newOverRight = position.left + myOffset + atOffset + offset + data.collisionWidth - outerWidth - withinOffset; + newOverRight = position.left + myOffset + atOffset + offset + data.collisionWidth - + outerWidth - withinOffset; if ( newOverRight < 0 || newOverRight < abs( overLeft ) ) { position.left += myOffset + atOffset + offset; } } else if ( overRight > 0 ) { - newOverLeft = position.left - data.collisionPosition.marginLeft + myOffset + atOffset + offset - offsetLeft; + newOverLeft = position.left - data.collisionPosition.marginLeft + myOffset + + atOffset + offset - offsetLeft; if ( newOverLeft > 0 || abs( newOverLeft ) < overRight ) { position.left += myOffset + atOffset + offset; } @@ -447,12 +467,14 @@ $.ui.position = { newOverTop, newOverBottom; if ( overTop < 0 ) { - newOverBottom = position.top + myOffset + atOffset + offset + data.collisionHeight - outerHeight - withinOffset; + newOverBottom = position.top + myOffset + atOffset + offset + data.collisionHeight - + outerHeight - withinOffset; if ( newOverBottom < 0 || newOverBottom < abs( overTop ) ) { position.top += myOffset + atOffset + offset; } } else if ( overBottom > 0 ) { - newOverTop = position.top - data.collisionPosition.marginTop + myOffset + atOffset + offset - offsetTop; + newOverTop = position.top - data.collisionPosition.marginTop + myOffset + atOffset + + offset - offsetTop; if ( newOverTop > 0 || abs( newOverTop ) < overBottom ) { position.top += myOffset + atOffset + offset; } @@ -471,47 +493,8 @@ $.ui.position = { } }; -// fraction support test -(function() { - var testElement, testElementParent, testElementStyle, offsetLeft, i, - body = document.getElementsByTagName( "body" )[ 0 ], - div = document.createElement( "div" ); - - //Create a "fake body" for testing based on method used in jQuery.support - testElement = document.createElement( body ? "div" : "body" ); - testElementStyle = { - visibility: "hidden", - width: 0, - height: 0, - border: 0, - margin: 0, - background: "none" - }; - if ( body ) { - $.extend( testElementStyle, { - position: "absolute", - left: "-1000px", - top: "-1000px" - }); - } - for ( i in testElementStyle ) { - testElement.style[ i ] = testElementStyle[ i ]; - } - testElement.appendChild( div ); - testElementParent = body || document.documentElement; - testElementParent.insertBefore( testElement, testElementParent.firstChild ); - - div.style.cssText = "position: absolute; left: 10.7432222px;"; - - offsetLeft = $( div ).offset().left; - supportsOffsetFractions = offsetLeft > 10 && offsetLeft < 11; - - testElement.innerHTML = ""; - testElementParent.removeChild( testElement ); -})(); - -})(); +} )(); return $.ui.position; -})); +} ) ); diff --git a/app/assets/javascripts/jquery-ui/safe-active-element.js b/app/assets/javascripts/jquery-ui/safe-active-element.js new file mode 100644 index 00000000..69061ea7 --- /dev/null +++ b/app/assets/javascripts/jquery-ui/safe-active-element.js @@ -0,0 +1,42 @@ +//= require jquery-ui/version + +( function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define( [ "jquery", "./version" ], factory ); + } else { + + // Browser globals + factory( jQuery ); + } +} ( function( $ ) { +return $.ui.safeActiveElement = function( document ) { + var activeElement; + + // Support: IE 9 only + // IE9 throws an "Unspecified error" accessing document.activeElement from an