diff --git a/.travis.yml b/.travis.yml index 40aa7bcf..74290c94 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,2 +1,2 @@ rvm: - - 1.9.3 + - 2.2.2 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..bbbf0eec 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 is 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/` subdirectory 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..59b4651a 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,10 @@ 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) - return "jquery.js" if dep_entry == 'jquery' - - "#{dep_entry.sub 'ui.', ''}.js" +def source_file_for_dependency_entry(caller, dep_entry) + p = Pathname.new caller + parent_path = p.parent + parent_path.join(dep_entry + '.js').to_s end # return a Hash of dependency info, whose keys are jquery-ui @@ -33,19 +27,33 @@ 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*([\"\.\/\,\w\s-\:]+)\]/m) + + next if matchdata.nil? + + deps = matchdata[1] - deps = build_info['dependencies'].keys + # remove lines with comments + deps = deps.gsub(/\/\/.+\s/, "") + + # remove all non-path symbols + deps = deps.gsub(/[\r\n\t\"\[\]\s]/, "") + + deps_paths = deps.split(',') + + deps_paths.map!(&method(:remove_js_extension)) # 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| source_file_for_dependency_entry path, d } - dependencies[source_file_name] = deps + dependencies[basename] = deps_paths end dependencies end @@ -70,7 +78,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 +115,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 +140,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 +149,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 = remove_js_extension(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 = remove_js_extension(path).gsub('/ui', '') + out.write("//= require #{clean_path}\n") + end + Dir.glob("jquery-ui/ui/effects/*.js").sort.each do |path| + clean_path = remove_js_extension(path).gsub('/ui', '') + out.write("//= require #{clean_path}\n") + end + Dir.glob("jquery-ui/ui/widgets/*.js").sort.each do |path| + clean_path = remove_js_extension(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 5b5dab2a..a2e6bfc0 100644 Binary files a/app/assets/images/jquery-ui/ui-bg_flat_0_aaaaaa_40x100.png and b/app/assets/images/jquery-ui/ui-bg_flat_0_aaaaaa_40x100.png differ 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 ac8b229a..00000000 Binary files a/app/assets/images/jquery-ui/ui-bg_flat_75_ffffff_40x100.png and /dev/null differ 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 ad3d6346..00000000 Binary files a/app/assets/images/jquery-ui/ui-bg_glass_55_fbf9ee_1x400.png and /dev/null differ 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 42ccba26..00000000 Binary files a/app/assets/images/jquery-ui/ui-bg_glass_65_ffffff_1x400.png and /dev/null differ 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 5a46b47c..00000000 Binary files a/app/assets/images/jquery-ui/ui-bg_glass_75_dadada_1x400.png and /dev/null differ diff --git a/app/assets/images/jquery-ui/ui-bg_glass_75_e6e6e6_1x400.png b/app/assets/images/jquery-ui/ui-bg_glass_75_e6e6e6_1x400.png deleted file mode 100644 index 86c2baa6..00000000 Binary files a/app/assets/images/jquery-ui/ui-bg_glass_75_e6e6e6_1x400.png and /dev/null differ diff --git a/app/assets/images/jquery-ui/ui-bg_glass_95_fef1ec_1x400.png b/app/assets/images/jquery-ui/ui-bg_glass_95_fef1ec_1x400.png deleted file mode 100644 index 4443fdc1..00000000 Binary files a/app/assets/images/jquery-ui/ui-bg_glass_95_fef1ec_1x400.png and /dev/null differ 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 7c9fa6c6..00000000 Binary files a/app/assets/images/jquery-ui/ui-bg_highlight-soft_75_cccccc_1x100.png and /dev/null differ diff --git a/app/assets/images/jquery-ui/ui-icons_222222_256x240.png b/app/assets/images/jquery-ui/ui-icons_222222_256x240.png deleted file mode 100644 index ee039dc0..00000000 Binary files a/app/assets/images/jquery-ui/ui-icons_222222_256x240.png and /dev/null differ 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 45e8928e..00000000 Binary files a/app/assets/images/jquery-ui/ui-icons_2e83ff_256x240.png and /dev/null differ 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 00000000..92214389 Binary files /dev/null and b/app/assets/images/jquery-ui/ui-icons_444444_256x240.png differ 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 7ec70d11..00000000 Binary files a/app/assets/images/jquery-ui/ui-icons_454545_256x240.png and /dev/null differ 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 00000000..4c372960 Binary files /dev/null and b/app/assets/images/jquery-ui/ui-icons_555555_256x240.png differ diff --git a/app/assets/images/jquery-ui/ui-icons_777620_256x240.png b/app/assets/images/jquery-ui/ui-icons_777620_256x240.png new file mode 100644 index 00000000..3b4ce686 Binary files /dev/null and b/app/assets/images/jquery-ui/ui-icons_777620_256x240.png differ 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 00000000..de6cf086 Binary files /dev/null and b/app/assets/images/jquery-ui/ui-icons_777777_256x240.png differ diff --git a/app/assets/images/jquery-ui/ui-icons_888888_256x240.png b/app/assets/images/jquery-ui/ui-icons_888888_256x240.png deleted file mode 100644 index 5ba708c3..00000000 Binary files a/app/assets/images/jquery-ui/ui-icons_888888_256x240.png and /dev/null differ diff --git a/app/assets/images/jquery-ui/ui-icons_cc0000_256x240.png b/app/assets/images/jquery-ui/ui-icons_cc0000_256x240.png new file mode 100644 index 00000000..6c64c85e Binary files /dev/null and b/app/assets/images/jquery-ui/ui-icons_cc0000_256x240.png differ diff --git a/app/assets/images/jquery-ui/ui-icons_cd0a0a_256x240.png b/app/assets/images/jquery-ui/ui-icons_cd0a0a_256x240.png deleted file mode 100644 index 7930a558..00000000 Binary files a/app/assets/images/jquery-ui/ui-icons_cd0a0a_256x240.png and /dev/null differ 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 00000000..4ab379a1 Binary files /dev/null and b/app/assets/images/jquery-ui/ui-icons_ffffff_256x240.png differ diff --git a/app/assets/javascripts/jquery-ui.js b/app/assets/javascripts/jquery-ui.js index b12268c3..8b583db0 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/data +//= require jquery-ui/disable-selection //= require jquery-ui/effect -//= require jquery-ui/menu -//= require jquery-ui/mouse +//= require jquery-ui/escape-selector +//= require jquery-ui/focusable +//= require jquery-ui/form-reset-mixin +//= require jquery-ui/form +//= require jquery-ui/ie +//= require jquery-ui/jquery-1-7 +//= require jquery-ui/keycode +//= require jquery-ui/labels +//= require jquery-ui/plugin //= 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/safe-active-element +//= require jquery-ui/safe-blur +//= require jquery-ui/scroll-parent +//= require jquery-ui/tabbable +//= require jquery-ui/unique-id +//= require jquery-ui/version //= require jquery-ui/widget +//= require jquery-ui/effects/effect-blind +//= require jquery-ui/effects/effect-bounce +//= require jquery-ui/effects/effect-clip +//= require jquery-ui/effects/effect-drop +//= require jquery-ui/effects/effect-explode +//= require jquery-ui/effects/effect-fade +//= require jquery-ui/effects/effect-fold +//= require jquery-ui/effects/effect-highlight +//= require jquery-ui/effects/effect-puff +//= require jquery-ui/effects/effect-pulsate +//= require jquery-ui/effects/effect-scale +//= require jquery-ui/effects/effect-shake +//= require jquery-ui/effects/effect-size +//= require jquery-ui/effects/effect-slide +//= require jquery-ui/effects/effect-transfer +//= require jquery-ui/widgets/accordion +//= require jquery-ui/widgets/autocomplete +//= require jquery-ui/widgets/button +//= require jquery-ui/widgets/checkboxradio +//= require jquery-ui/widgets/controlgroup +//= require jquery-ui/widgets/datepicker +//= require jquery-ui/widgets/dialog +//= require jquery-ui/widgets/draggable +//= require jquery-ui/widgets/droppable +//= require jquery-ui/widgets/menu +//= require jquery-ui/widgets/mouse +//= require jquery-ui/widgets/progressbar +//= require jquery-ui/widgets/resizable +//= require jquery-ui/widgets/selectable +//= require jquery-ui/widgets/selectmenu +//= require jquery-ui/widgets/slider +//= require jquery-ui/widgets/sortable +//= require jquery-ui/widgets/spinner +//= require jquery-ui/widgets/tabs +//= require jquery-ui/widgets/tooltip 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..ef6e1760 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 +//= require jquery-ui/effects/effect-bounce +//= require jquery-ui/effects/effect-clip +//= require jquery-ui/effects/effect-drop +//= require jquery-ui/effects/effect-explode +//= require jquery-ui/effects/effect-fade +//= require jquery-ui/effects/effect-fold +//= require jquery-ui/effects/effect-highlight +//= require jquery-ui/effects/effect-puff +//= require jquery-ui/effects/effect-pulsate +//= require jquery-ui/effects/effect-scale +//= require jquery-ui/effects/effect-shake +//= require jquery-ui/effects/effect-size +//= require jquery-ui/effects/effect-slide +//= require jquery-ui/effects/effect-transfer 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