mirror of
https://github.com/openSUSE/osem.git
synced 2025-12-23 22:28:15 -05:00
Get off off rails-assets
Just moving the things we currently use (and should drop in the ASAP) to vendor/assets
This commit is contained in:
31
Gemfile
31
Gemfile
@@ -8,11 +8,6 @@ source 'https://rubygems.org'
|
||||
|
||||
ruby ENV.fetch('OSEM_RUBY_VERSION', '3.1.4')
|
||||
|
||||
# rails-assets requires >= 1.8.4
|
||||
if Gem::Version.new(Bundler::VERSION) < Gem::Version.new('1.8.4')
|
||||
abort "Bundler version >= 1.8.4 is required"
|
||||
end
|
||||
|
||||
# as web framework
|
||||
if next?
|
||||
gem 'rails', '~> 7.1'
|
||||
@@ -94,32 +89,6 @@ gem 'jquery-ui-rails', '~> 6.0.1'
|
||||
# for languages validation
|
||||
gem 'iso-639'
|
||||
|
||||
# frontend javascripts
|
||||
source 'https://rails-assets.org' do
|
||||
# for placeholder images
|
||||
gem 'rails-assets-holderjs'
|
||||
# for formating dates
|
||||
gem 'rails-assets-date.format'
|
||||
# for or parsing, validating, manipulating, and formatting dates
|
||||
gem 'rails-assets-momentjs'
|
||||
# for smooth scrolling
|
||||
gem 'rails-assets-jquery-smooth-scroll'
|
||||
# as color picker
|
||||
gem 'rails-assets-spectrum'
|
||||
# for color manipulation
|
||||
gem 'rails-assets-tinycolor'
|
||||
# for drawing triangle backgrounds
|
||||
gem 'rails-assets-trianglify'
|
||||
# for scroll way points
|
||||
gem 'rails-assets-waypoints'
|
||||
# for markdown editors
|
||||
gem 'rails-assets-bootstrap-markdown'
|
||||
# for select with icon
|
||||
gem 'rails-assets-bootstrap-select'
|
||||
gem 'rails-assets-markdown'
|
||||
gem 'rails-assets-to-markdown', '~> 3'
|
||||
end
|
||||
|
||||
# as date picker
|
||||
gem 'bootstrap3-datetimepicker-rails', '~> 4.17.47'
|
||||
|
||||
|
||||
36
Gemfile.lock
36
Gemfile.lock
@@ -1,27 +1,3 @@
|
||||
GEM
|
||||
remote: https://rails-assets.org/
|
||||
specs:
|
||||
rails-assets-bootstrap (3.4.1)
|
||||
rails-assets-jquery (>= 1.9.1, < 4)
|
||||
rails-assets-bootstrap-markdown (2.10.0)
|
||||
rails-assets-bootstrap (~> 3)
|
||||
rails-assets-bootstrap-select (1.13.10)
|
||||
rails-assets-bootstrap (>= 3.0.0)
|
||||
rails-assets-jquery (>= 1.9.1, < 4)
|
||||
rails-assets-date.format (1.2.3)
|
||||
rails-assets-holderjs (2.9.6)
|
||||
rails-assets-jquery (3.4.1)
|
||||
rails-assets-jquery-smooth-scroll (2.2.0)
|
||||
rails-assets-jquery (>= 1.7.0)
|
||||
rails-assets-markdown (0.5.0)
|
||||
rails-assets-momentjs (2.29.4)
|
||||
rails-assets-spectrum (1.8.0)
|
||||
rails-assets-jquery (>= 1.7.2)
|
||||
rails-assets-tinycolor (1.6.0)
|
||||
rails-assets-to-markdown (3.1.1)
|
||||
rails-assets-trianglify (1.2.0)
|
||||
rails-assets-waypoints (4.0.1)
|
||||
|
||||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
@@ -697,18 +673,6 @@ DEPENDENCIES
|
||||
prawn-rails
|
||||
puma
|
||||
rails (~> 7.0)
|
||||
rails-assets-bootstrap-markdown!
|
||||
rails-assets-bootstrap-select!
|
||||
rails-assets-date.format!
|
||||
rails-assets-holderjs!
|
||||
rails-assets-jquery-smooth-scroll!
|
||||
rails-assets-markdown!
|
||||
rails-assets-momentjs!
|
||||
rails-assets-spectrum!
|
||||
rails-assets-tinycolor!
|
||||
rails-assets-to-markdown (~> 3)!
|
||||
rails-assets-trianglify!
|
||||
rails-assets-waypoints!
|
||||
rails-controller-testing
|
||||
rails-i18n
|
||||
recaptcha
|
||||
|
||||
BIN
vendor/assets/images/holderjs/test/image.jpg
vendored
Normal file
BIN
vendor/assets/images/holderjs/test/image.jpg
vendored
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 9.8 KiB |
1
vendor/assets/javascripts/bootstrap-markdown.js
vendored
Normal file
1
vendor/assets/javascripts/bootstrap-markdown.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
//= require bootstrap-markdown/bootstrap-markdown.js
|
||||
1390
vendor/assets/javascripts/bootstrap-markdown/bootstrap-markdown.js
vendored
Normal file
1390
vendor/assets/javascripts/bootstrap-markdown/bootstrap-markdown.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1
vendor/assets/javascripts/bootstrap-select.js
vendored
Normal file
1
vendor/assets/javascripts/bootstrap-select.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
//= require bootstrap-select/bootstrap-select.js
|
||||
3138
vendor/assets/javascripts/bootstrap-select/bootstrap-select.js
vendored
Normal file
3138
vendor/assets/javascripts/bootstrap-select/bootstrap-select.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
45
vendor/assets/javascripts/bootstrap-select/i18n/defaults-am_ET.js
vendored
Normal file
45
vendor/assets/javascripts/bootstrap-select/i18n/defaults-am_ET.js
vendored
Normal file
@@ -0,0 +1,45 @@
|
||||
/*!
|
||||
* Bootstrap-select v1.13.10 (https://developer.snapappointments.com/bootstrap-select)
|
||||
*
|
||||
* Copyright 2012-2019 SnapAppointments, LLC
|
||||
* Licensed under MIT (https://github.com/snapappointments/bootstrap-select/blob/master/LICENSE)
|
||||
*/
|
||||
|
||||
(function (root, factory) {
|
||||
if (root === undefined && window !== undefined) root = window;
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
// AMD. Register as an anonymous module unless amdModuleId is set
|
||||
define(["jquery"], function (a0) {
|
||||
return (factory(a0));
|
||||
});
|
||||
} else if (typeof module === 'object' && module.exports) {
|
||||
// Node. Does not work with strict CommonJS, but
|
||||
// only CommonJS-like environments that support module.exports,
|
||||
// like Node.
|
||||
module.exports = factory(require("jquery"));
|
||||
} else {
|
||||
factory(root["jQuery"]);
|
||||
}
|
||||
}(this, function (jQuery) {
|
||||
|
||||
(function ($) {
|
||||
$.fn.selectpicker.defaults = {
|
||||
noneSelectedText: 'ምንም አልተመረጠም',
|
||||
noneResultsText: 'ከ{0} ጋር ተመሳሳይ ውጤት የለም',
|
||||
countSelectedText: function (numSelected, numTotal) {
|
||||
return (numSelected == 1) ? '{0} ምርጫ ተመርጧል' : '{0} ምርጫዎች ተመርጠዋል';
|
||||
},
|
||||
maxOptionsText: function (numAll, numGroup) {
|
||||
return [
|
||||
(numAll == 1) ? 'ገደብ ላይ ተደርሷል (ቢበዛ {n} ምርጫ)' : 'ገደብ ላይ ተደርሷል (ቢበዛ {n} ምርጫዎች)',
|
||||
(numGroup == 1) ? 'የቡድን ገደብ ላይ ተደርሷል (ቢበዛ {n} ምርጫ)' : 'የቡድን ገደብ ላይ ተደርሷል (ቢበዛ {n} ምርጫዎች)'
|
||||
];
|
||||
},
|
||||
selectAllText: 'ሁሉም ይመረጥ',
|
||||
deselectAllText: 'ሁሉም አይመረጥ',
|
||||
multipleSeparator: ' ፣ '
|
||||
};
|
||||
})(jQuery);
|
||||
|
||||
|
||||
}));
|
||||
50
vendor/assets/javascripts/bootstrap-select/i18n/defaults-ar_AR.js
vendored
Normal file
50
vendor/assets/javascripts/bootstrap-select/i18n/defaults-ar_AR.js
vendored
Normal file
@@ -0,0 +1,50 @@
|
||||
/*!
|
||||
* Bootstrap-select v1.13.10 (https://developer.snapappointments.com/bootstrap-select)
|
||||
*
|
||||
* Copyright 2012-2019 SnapAppointments, LLC
|
||||
* Licensed under MIT (https://github.com/snapappointments/bootstrap-select/blob/master/LICENSE)
|
||||
*/
|
||||
|
||||
(function (root, factory) {
|
||||
if (root === undefined && window !== undefined) root = window;
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
// AMD. Register as an anonymous module unless amdModuleId is set
|
||||
define(["jquery"], function (a0) {
|
||||
return (factory(a0));
|
||||
});
|
||||
} else if (typeof module === 'object' && module.exports) {
|
||||
// Node. Does not work with strict CommonJS, but
|
||||
// only CommonJS-like environments that support module.exports,
|
||||
// like Node.
|
||||
module.exports = factory(require("jquery"));
|
||||
} else {
|
||||
factory(root["jQuery"]);
|
||||
}
|
||||
}(this, function (jQuery) {
|
||||
|
||||
/*!
|
||||
* Translated default messages for bootstrap-select.
|
||||
* Locale: AR (Arabic)
|
||||
* Author: Yasser Lotfy <y_l@alive.com>
|
||||
*/
|
||||
(function ($) {
|
||||
$.fn.selectpicker.defaults = {
|
||||
noneSelectedText: 'لم يتم إختيار شئ',
|
||||
noneResultsText: 'لا توجد نتائج مطابقة لـ {0}',
|
||||
countSelectedText: function (numSelected, numTotal) {
|
||||
return (numSelected == 1) ? '{0} خيار تم إختياره' : '{0} خيارات تمت إختيارها';
|
||||
},
|
||||
maxOptionsText: function (numAll, numGroup) {
|
||||
return [
|
||||
(numAll == 1) ? 'تخطى الحد المسموح ({n} خيار بحد أقصى)' : 'تخطى الحد المسموح ({n} خيارات بحد أقصى)',
|
||||
(numGroup == 1) ? 'تخطى الحد المسموح للمجموعة ({n} خيار بحد أقصى)' : 'تخطى الحد المسموح للمجموعة ({n} خيارات بحد أقصى)'
|
||||
];
|
||||
},
|
||||
selectAllText: 'إختيار الجميع',
|
||||
deselectAllText: 'إلغاء إختيار الجميع',
|
||||
multipleSeparator: '، '
|
||||
};
|
||||
})(jQuery);
|
||||
|
||||
|
||||
}));
|
||||
45
vendor/assets/javascripts/bootstrap-select/i18n/defaults-bg_BG.js
vendored
Normal file
45
vendor/assets/javascripts/bootstrap-select/i18n/defaults-bg_BG.js
vendored
Normal file
@@ -0,0 +1,45 @@
|
||||
/*!
|
||||
* Bootstrap-select v1.13.10 (https://developer.snapappointments.com/bootstrap-select)
|
||||
*
|
||||
* Copyright 2012-2019 SnapAppointments, LLC
|
||||
* Licensed under MIT (https://github.com/snapappointments/bootstrap-select/blob/master/LICENSE)
|
||||
*/
|
||||
|
||||
(function (root, factory) {
|
||||
if (root === undefined && window !== undefined) root = window;
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
// AMD. Register as an anonymous module unless amdModuleId is set
|
||||
define(["jquery"], function (a0) {
|
||||
return (factory(a0));
|
||||
});
|
||||
} else if (typeof module === 'object' && module.exports) {
|
||||
// Node. Does not work with strict CommonJS, but
|
||||
// only CommonJS-like environments that support module.exports,
|
||||
// like Node.
|
||||
module.exports = factory(require("jquery"));
|
||||
} else {
|
||||
factory(root["jQuery"]);
|
||||
}
|
||||
}(this, function (jQuery) {
|
||||
|
||||
(function ($) {
|
||||
$.fn.selectpicker.defaults = {
|
||||
noneSelectedText: 'Нищо избрано',
|
||||
noneResultsText: 'Няма резултат за {0}',
|
||||
countSelectedText: function (numSelected, numTotal) {
|
||||
return (numSelected == 1) ? '{0} избран елемент' : '{0} избрани елемента';
|
||||
},
|
||||
maxOptionsText: function (numAll, numGroup) {
|
||||
return [
|
||||
(numAll == 1) ? 'Лимита е достигнат ({n} елемент максимум)' : 'Лимита е достигнат ({n} елемента максимум)',
|
||||
(numGroup == 1) ? 'Груповия лимит е достигнат ({n} елемент максимум)' : 'Груповия лимит е достигнат ({n} елемента максимум)'
|
||||
];
|
||||
},
|
||||
selectAllText: 'Избери всички',
|
||||
deselectAllText: 'Размаркирай всички',
|
||||
multipleSeparator: ', '
|
||||
};
|
||||
})(jQuery);
|
||||
|
||||
|
||||
}));
|
||||
38
vendor/assets/javascripts/bootstrap-select/i18n/defaults-cs_CZ.js
vendored
Normal file
38
vendor/assets/javascripts/bootstrap-select/i18n/defaults-cs_CZ.js
vendored
Normal file
@@ -0,0 +1,38 @@
|
||||
/*!
|
||||
* Bootstrap-select v1.13.10 (https://developer.snapappointments.com/bootstrap-select)
|
||||
*
|
||||
* Copyright 2012-2019 SnapAppointments, LLC
|
||||
* Licensed under MIT (https://github.com/snapappointments/bootstrap-select/blob/master/LICENSE)
|
||||
*/
|
||||
|
||||
(function (root, factory) {
|
||||
if (root === undefined && window !== undefined) root = window;
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
// AMD. Register as an anonymous module unless amdModuleId is set
|
||||
define(["jquery"], function (a0) {
|
||||
return (factory(a0));
|
||||
});
|
||||
} else if (typeof module === 'object' && module.exports) {
|
||||
// Node. Does not work with strict CommonJS, but
|
||||
// only CommonJS-like environments that support module.exports,
|
||||
// like Node.
|
||||
module.exports = factory(require("jquery"));
|
||||
} else {
|
||||
factory(root["jQuery"]);
|
||||
}
|
||||
}(this, function (jQuery) {
|
||||
|
||||
(function ($) {
|
||||
$.fn.selectpicker.defaults = {
|
||||
noneSelectedText: 'Nic není vybráno',
|
||||
noneResultsText: 'Žádné výsledky {0}',
|
||||
countSelectedText: 'Označeno {0} z {1}',
|
||||
maxOptionsText: ['Limit překročen ({n} {var} max)', 'Limit skupiny překročen ({n} {var} max)', ['položek', 'položka']],
|
||||
multipleSeparator: ', ',
|
||||
selectAllText: 'Vybrat Vše',
|
||||
deselectAllText: 'Odznačit Vše'
|
||||
};
|
||||
})(jQuery);
|
||||
|
||||
|
||||
}));
|
||||
45
vendor/assets/javascripts/bootstrap-select/i18n/defaults-da_DK.js
vendored
Normal file
45
vendor/assets/javascripts/bootstrap-select/i18n/defaults-da_DK.js
vendored
Normal file
@@ -0,0 +1,45 @@
|
||||
/*!
|
||||
* Bootstrap-select v1.13.10 (https://developer.snapappointments.com/bootstrap-select)
|
||||
*
|
||||
* Copyright 2012-2019 SnapAppointments, LLC
|
||||
* Licensed under MIT (https://github.com/snapappointments/bootstrap-select/blob/master/LICENSE)
|
||||
*/
|
||||
|
||||
(function (root, factory) {
|
||||
if (root === undefined && window !== undefined) root = window;
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
// AMD. Register as an anonymous module unless amdModuleId is set
|
||||
define(["jquery"], function (a0) {
|
||||
return (factory(a0));
|
||||
});
|
||||
} else if (typeof module === 'object' && module.exports) {
|
||||
// Node. Does not work with strict CommonJS, but
|
||||
// only CommonJS-like environments that support module.exports,
|
||||
// like Node.
|
||||
module.exports = factory(require("jquery"));
|
||||
} else {
|
||||
factory(root["jQuery"]);
|
||||
}
|
||||
}(this, function (jQuery) {
|
||||
|
||||
(function ($) {
|
||||
$.fn.selectpicker.defaults = {
|
||||
noneSelectedText: 'Intet valgt',
|
||||
noneResultsText: 'Ingen resultater fundet {0}',
|
||||
countSelectedText: function (numSelected, numTotal) {
|
||||
return (numSelected == 1) ? '{0} valgt' : '{0} valgt';
|
||||
},
|
||||
maxOptionsText: function (numAll, numGroup) {
|
||||
return [
|
||||
(numAll == 1) ? 'Begrænsning nået (max {n} valgt)' : 'Begrænsning nået (max {n} valgte)',
|
||||
(numGroup == 1) ? 'Gruppe-begrænsning nået (max {n} valgt)' : 'Gruppe-begrænsning nået (max {n} valgte)'
|
||||
];
|
||||
},
|
||||
selectAllText: 'Markér alle',
|
||||
deselectAllText: 'Afmarkér alle',
|
||||
multipleSeparator: ', '
|
||||
};
|
||||
})(jQuery);
|
||||
|
||||
|
||||
}));
|
||||
45
vendor/assets/javascripts/bootstrap-select/i18n/defaults-de_DE.js
vendored
Normal file
45
vendor/assets/javascripts/bootstrap-select/i18n/defaults-de_DE.js
vendored
Normal file
@@ -0,0 +1,45 @@
|
||||
/*!
|
||||
* Bootstrap-select v1.13.10 (https://developer.snapappointments.com/bootstrap-select)
|
||||
*
|
||||
* Copyright 2012-2019 SnapAppointments, LLC
|
||||
* Licensed under MIT (https://github.com/snapappointments/bootstrap-select/blob/master/LICENSE)
|
||||
*/
|
||||
|
||||
(function (root, factory) {
|
||||
if (root === undefined && window !== undefined) root = window;
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
// AMD. Register as an anonymous module unless amdModuleId is set
|
||||
define(["jquery"], function (a0) {
|
||||
return (factory(a0));
|
||||
});
|
||||
} else if (typeof module === 'object' && module.exports) {
|
||||
// Node. Does not work with strict CommonJS, but
|
||||
// only CommonJS-like environments that support module.exports,
|
||||
// like Node.
|
||||
module.exports = factory(require("jquery"));
|
||||
} else {
|
||||
factory(root["jQuery"]);
|
||||
}
|
||||
}(this, function (jQuery) {
|
||||
|
||||
(function ($) {
|
||||
$.fn.selectpicker.defaults = {
|
||||
noneSelectedText: 'Bitte wählen...',
|
||||
noneResultsText: 'Keine Ergebnisse für {0}',
|
||||
countSelectedText: function (numSelected, numTotal) {
|
||||
return (numSelected == 1) ? '{0} Element ausgewählt' : '{0} Elemente ausgewählt';
|
||||
},
|
||||
maxOptionsText: function (numAll, numGroup) {
|
||||
return [
|
||||
(numAll == 1) ? 'Limit erreicht ({n} Element max.)' : 'Limit erreicht ({n} Elemente max.)',
|
||||
(numGroup == 1) ? 'Gruppen-Limit erreicht ({n} Element max.)' : 'Gruppen-Limit erreicht ({n} Elemente max.)'
|
||||
];
|
||||
},
|
||||
selectAllText: 'Alles auswählen',
|
||||
deselectAllText: 'Nichts auswählen',
|
||||
multipleSeparator: ', '
|
||||
};
|
||||
})(jQuery);
|
||||
|
||||
|
||||
}));
|
||||
45
vendor/assets/javascripts/bootstrap-select/i18n/defaults-en_US.js
vendored
Normal file
45
vendor/assets/javascripts/bootstrap-select/i18n/defaults-en_US.js
vendored
Normal file
@@ -0,0 +1,45 @@
|
||||
/*!
|
||||
* Bootstrap-select v1.13.10 (https://developer.snapappointments.com/bootstrap-select)
|
||||
*
|
||||
* Copyright 2012-2019 SnapAppointments, LLC
|
||||
* Licensed under MIT (https://github.com/snapappointments/bootstrap-select/blob/master/LICENSE)
|
||||
*/
|
||||
|
||||
(function (root, factory) {
|
||||
if (root === undefined && window !== undefined) root = window;
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
// AMD. Register as an anonymous module unless amdModuleId is set
|
||||
define(["jquery"], function (a0) {
|
||||
return (factory(a0));
|
||||
});
|
||||
} else if (typeof module === 'object' && module.exports) {
|
||||
// Node. Does not work with strict CommonJS, but
|
||||
// only CommonJS-like environments that support module.exports,
|
||||
// like Node.
|
||||
module.exports = factory(require("jquery"));
|
||||
} else {
|
||||
factory(root["jQuery"]);
|
||||
}
|
||||
}(this, function (jQuery) {
|
||||
|
||||
(function ($) {
|
||||
$.fn.selectpicker.defaults = {
|
||||
noneSelectedText: 'Nothing selected',
|
||||
noneResultsText: 'No results match {0}',
|
||||
countSelectedText: function (numSelected, numTotal) {
|
||||
return (numSelected == 1) ? '{0} item selected' : '{0} items selected';
|
||||
},
|
||||
maxOptionsText: function (numAll, numGroup) {
|
||||
return [
|
||||
(numAll == 1) ? 'Limit reached ({n} item max)' : 'Limit reached ({n} items max)',
|
||||
(numGroup == 1) ? 'Group limit reached ({n} item max)' : 'Group limit reached ({n} items max)'
|
||||
];
|
||||
},
|
||||
selectAllText: 'Select All',
|
||||
deselectAllText: 'Deselect All',
|
||||
multipleSeparator: ', '
|
||||
};
|
||||
})(jQuery);
|
||||
|
||||
|
||||
}));
|
||||
38
vendor/assets/javascripts/bootstrap-select/i18n/defaults-es_CL.js
vendored
Normal file
38
vendor/assets/javascripts/bootstrap-select/i18n/defaults-es_CL.js
vendored
Normal file
@@ -0,0 +1,38 @@
|
||||
/*!
|
||||
* Bootstrap-select v1.13.10 (https://developer.snapappointments.com/bootstrap-select)
|
||||
*
|
||||
* Copyright 2012-2019 SnapAppointments, LLC
|
||||
* Licensed under MIT (https://github.com/snapappointments/bootstrap-select/blob/master/LICENSE)
|
||||
*/
|
||||
|
||||
(function (root, factory) {
|
||||
if (root === undefined && window !== undefined) root = window;
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
// AMD. Register as an anonymous module unless amdModuleId is set
|
||||
define(["jquery"], function (a0) {
|
||||
return (factory(a0));
|
||||
});
|
||||
} else if (typeof module === 'object' && module.exports) {
|
||||
// Node. Does not work with strict CommonJS, but
|
||||
// only CommonJS-like environments that support module.exports,
|
||||
// like Node.
|
||||
module.exports = factory(require("jquery"));
|
||||
} else {
|
||||
factory(root["jQuery"]);
|
||||
}
|
||||
}(this, function (jQuery) {
|
||||
|
||||
(function ($) {
|
||||
$.fn.selectpicker.defaults = {
|
||||
noneSelectedText: 'No hay selección',
|
||||
noneResultsText: 'No hay resultados {0}',
|
||||
countSelectedText: 'Seleccionados {0} de {1}',
|
||||
maxOptionsText: ['Límite alcanzado ({n} {var} max)', 'Límite del grupo alcanzado({n} {var} max)', ['elementos', 'element']],
|
||||
multipleSeparator: ', ',
|
||||
selectAllText: 'Seleccionar Todos',
|
||||
deselectAllText: 'Desmarcar Todos'
|
||||
};
|
||||
})(jQuery);
|
||||
|
||||
|
||||
}));
|
||||
38
vendor/assets/javascripts/bootstrap-select/i18n/defaults-es_ES.js
vendored
Normal file
38
vendor/assets/javascripts/bootstrap-select/i18n/defaults-es_ES.js
vendored
Normal file
@@ -0,0 +1,38 @@
|
||||
/*!
|
||||
* Bootstrap-select v1.13.10 (https://developer.snapappointments.com/bootstrap-select)
|
||||
*
|
||||
* Copyright 2012-2019 SnapAppointments, LLC
|
||||
* Licensed under MIT (https://github.com/snapappointments/bootstrap-select/blob/master/LICENSE)
|
||||
*/
|
||||
|
||||
(function (root, factory) {
|
||||
if (root === undefined && window !== undefined) root = window;
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
// AMD. Register as an anonymous module unless amdModuleId is set
|
||||
define(["jquery"], function (a0) {
|
||||
return (factory(a0));
|
||||
});
|
||||
} else if (typeof module === 'object' && module.exports) {
|
||||
// Node. Does not work with strict CommonJS, but
|
||||
// only CommonJS-like environments that support module.exports,
|
||||
// like Node.
|
||||
module.exports = factory(require("jquery"));
|
||||
} else {
|
||||
factory(root["jQuery"]);
|
||||
}
|
||||
}(this, function (jQuery) {
|
||||
|
||||
(function ($) {
|
||||
$.fn.selectpicker.defaults = {
|
||||
noneSelectedText: 'No hay selección',
|
||||
noneResultsText: 'No hay resultados {0}',
|
||||
countSelectedText: 'Seleccionados {0} de {1}',
|
||||
maxOptionsText: ['Límite alcanzado ({n} {var} max)', 'Límite del grupo alcanzado({n} {var} max)', ['elementos', 'element']],
|
||||
multipleSeparator: ', ',
|
||||
selectAllText: 'Seleccionar Todos',
|
||||
deselectAllText: 'Desmarcar Todos'
|
||||
};
|
||||
})(jQuery);
|
||||
|
||||
|
||||
}));
|
||||
45
vendor/assets/javascripts/bootstrap-select/i18n/defaults-et_EE.js
vendored
Normal file
45
vendor/assets/javascripts/bootstrap-select/i18n/defaults-et_EE.js
vendored
Normal file
@@ -0,0 +1,45 @@
|
||||
/*!
|
||||
* Bootstrap-select v1.13.10 (https://developer.snapappointments.com/bootstrap-select)
|
||||
*
|
||||
* Copyright 2012-2019 SnapAppointments, LLC
|
||||
* Licensed under MIT (https://github.com/snapappointments/bootstrap-select/blob/master/LICENSE)
|
||||
*/
|
||||
|
||||
(function (root, factory) {
|
||||
if (root === undefined && window !== undefined) root = window;
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
// AMD. Register as an anonymous module unless amdModuleId is set
|
||||
define(["jquery"], function (a0) {
|
||||
return (factory(a0));
|
||||
});
|
||||
} else if (typeof module === 'object' && module.exports) {
|
||||
// Node. Does not work with strict CommonJS, but
|
||||
// only CommonJS-like environments that support module.exports,
|
||||
// like Node.
|
||||
module.exports = factory(require("jquery"));
|
||||
} else {
|
||||
factory(root["jQuery"]);
|
||||
}
|
||||
}(this, function (jQuery) {
|
||||
|
||||
(function ($) {
|
||||
$.fn.selectpicker.defaults = {
|
||||
noneSelectedText: 'Valikut pole tehtud',
|
||||
noneResultsText: 'Otsingule {0} ei ole vasteid',
|
||||
countSelectedText: function (numSelected, numTotal) {
|
||||
return (numSelected == 1) ? '{0} item selected' : '{0} items selected';
|
||||
},
|
||||
maxOptionsText: function (numAll, numGroup) {
|
||||
return [
|
||||
'Limiit on {n} max',
|
||||
'Globaalne limiit on {n} max'
|
||||
];
|
||||
},
|
||||
selectAllText: 'Vali kõik',
|
||||
deselectAllText: 'Tühista kõik',
|
||||
multipleSeparator: ', '
|
||||
};
|
||||
})(jQuery);
|
||||
|
||||
|
||||
}));
|
||||
38
vendor/assets/javascripts/bootstrap-select/i18n/defaults-eu.js
vendored
Normal file
38
vendor/assets/javascripts/bootstrap-select/i18n/defaults-eu.js
vendored
Normal file
@@ -0,0 +1,38 @@
|
||||
/*!
|
||||
* Bootstrap-select v1.13.10 (https://developer.snapappointments.com/bootstrap-select)
|
||||
*
|
||||
* Copyright 2012-2019 SnapAppointments, LLC
|
||||
* Licensed under MIT (https://github.com/snapappointments/bootstrap-select/blob/master/LICENSE)
|
||||
*/
|
||||
|
||||
(function (root, factory) {
|
||||
if (root === undefined && window !== undefined) root = window;
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
// AMD. Register as an anonymous module unless amdModuleId is set
|
||||
define(["jquery"], function (a0) {
|
||||
return (factory(a0));
|
||||
});
|
||||
} else if (typeof module === 'object' && module.exports) {
|
||||
// Node. Does not work with strict CommonJS, but
|
||||
// only CommonJS-like environments that support module.exports,
|
||||
// like Node.
|
||||
module.exports = factory(require("jquery"));
|
||||
} else {
|
||||
factory(root["jQuery"]);
|
||||
}
|
||||
}(this, function (jQuery) {
|
||||
|
||||
(function ($) {
|
||||
$.fn.selectpicker.defaults = {
|
||||
noneSelectedText: 'Hautapenik ez',
|
||||
noneResultsText: 'Emaitzarik ez {0}',
|
||||
countSelectedText: '{1}(e)tik {0} hautatuta',
|
||||
maxOptionsText: ['Mugara iritsita ({n} {var} gehienez)', 'Taldearen mugara iritsita ({n} {var} gehienez)', ['elementu', 'elementu']],
|
||||
multipleSeparator: ', ',
|
||||
selectAllText: 'Hautatu Guztiak',
|
||||
deselectAllText: 'Desautatu Guztiak'
|
||||
};
|
||||
})(jQuery);
|
||||
|
||||
|
||||
}));
|
||||
38
vendor/assets/javascripts/bootstrap-select/i18n/defaults-fa_IR.js
vendored
Normal file
38
vendor/assets/javascripts/bootstrap-select/i18n/defaults-fa_IR.js
vendored
Normal file
@@ -0,0 +1,38 @@
|
||||
/*!
|
||||
* Bootstrap-select v1.13.10 (https://developer.snapappointments.com/bootstrap-select)
|
||||
*
|
||||
* Copyright 2012-2019 SnapAppointments, LLC
|
||||
* Licensed under MIT (https://github.com/snapappointments/bootstrap-select/blob/master/LICENSE)
|
||||
*/
|
||||
|
||||
(function (root, factory) {
|
||||
if (root === undefined && window !== undefined) root = window;
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
// AMD. Register as an anonymous module unless amdModuleId is set
|
||||
define(["jquery"], function (a0) {
|
||||
return (factory(a0));
|
||||
});
|
||||
} else if (typeof module === 'object' && module.exports) {
|
||||
// Node. Does not work with strict CommonJS, but
|
||||
// only CommonJS-like environments that support module.exports,
|
||||
// like Node.
|
||||
module.exports = factory(require("jquery"));
|
||||
} else {
|
||||
factory(root["jQuery"]);
|
||||
}
|
||||
}(this, function (jQuery) {
|
||||
|
||||
(function ($) {
|
||||
$.fn.selectpicker.defaults = {
|
||||
noneSelectedText: 'چیزی انتخاب نشده است',
|
||||
noneResultsText: 'هیج مشابهی برای {0} پیدا نشد',
|
||||
countSelectedText: '{0} از {1} مورد انتخاب شده',
|
||||
maxOptionsText: ['بیشتر ممکن نیست {حداکثر {n} عدد}', 'بیشتر ممکن نیست {حداکثر {n} عدد}'],
|
||||
selectAllText: 'انتخاب همه',
|
||||
deselectAllText: 'انتخاب هیچ کدام',
|
||||
multipleSeparator: ', '
|
||||
};
|
||||
})(jQuery);
|
||||
|
||||
|
||||
}));
|
||||
45
vendor/assets/javascripts/bootstrap-select/i18n/defaults-fi_FI.js
vendored
Normal file
45
vendor/assets/javascripts/bootstrap-select/i18n/defaults-fi_FI.js
vendored
Normal file
@@ -0,0 +1,45 @@
|
||||
/*!
|
||||
* Bootstrap-select v1.13.10 (https://developer.snapappointments.com/bootstrap-select)
|
||||
*
|
||||
* Copyright 2012-2019 SnapAppointments, LLC
|
||||
* Licensed under MIT (https://github.com/snapappointments/bootstrap-select/blob/master/LICENSE)
|
||||
*/
|
||||
|
||||
(function (root, factory) {
|
||||
if (root === undefined && window !== undefined) root = window;
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
// AMD. Register as an anonymous module unless amdModuleId is set
|
||||
define(["jquery"], function (a0) {
|
||||
return (factory(a0));
|
||||
});
|
||||
} else if (typeof module === 'object' && module.exports) {
|
||||
// Node. Does not work with strict CommonJS, but
|
||||
// only CommonJS-like environments that support module.exports,
|
||||
// like Node.
|
||||
module.exports = factory(require("jquery"));
|
||||
} else {
|
||||
factory(root["jQuery"]);
|
||||
}
|
||||
}(this, function (jQuery) {
|
||||
|
||||
(function ($) {
|
||||
$.fn.selectpicker.defaults = {
|
||||
noneSelectedText: 'Ei valintoja',
|
||||
noneResultsText: 'Ei hakutuloksia {0}',
|
||||
countSelectedText: function (numSelected, numTotal) {
|
||||
return (numSelected == 1) ? '{0} valittu' : '{0} valitut';
|
||||
},
|
||||
maxOptionsText: function (numAll, numGroup) {
|
||||
return [
|
||||
(numAll == 1) ? 'Valintojen maksimimäärä ({n} saavutettu)' : 'Valintojen maksimimäärä ({n} saavutettu)',
|
||||
(numGroup == 1) ? 'Ryhmän maksimimäärä ({n} saavutettu)' : 'Ryhmän maksimimäärä ({n} saavutettu)'
|
||||
];
|
||||
},
|
||||
selectAllText: 'Valitse kaikki',
|
||||
deselectAllText: 'Poista kaikki',
|
||||
multipleSeparator: ', '
|
||||
};
|
||||
})(jQuery);
|
||||
|
||||
|
||||
}));
|
||||
45
vendor/assets/javascripts/bootstrap-select/i18n/defaults-fr_FR.js
vendored
Normal file
45
vendor/assets/javascripts/bootstrap-select/i18n/defaults-fr_FR.js
vendored
Normal file
@@ -0,0 +1,45 @@
|
||||
/*!
|
||||
* Bootstrap-select v1.13.10 (https://developer.snapappointments.com/bootstrap-select)
|
||||
*
|
||||
* Copyright 2012-2019 SnapAppointments, LLC
|
||||
* Licensed under MIT (https://github.com/snapappointments/bootstrap-select/blob/master/LICENSE)
|
||||
*/
|
||||
|
||||
(function (root, factory) {
|
||||
if (root === undefined && window !== undefined) root = window;
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
// AMD. Register as an anonymous module unless amdModuleId is set
|
||||
define(["jquery"], function (a0) {
|
||||
return (factory(a0));
|
||||
});
|
||||
} else if (typeof module === 'object' && module.exports) {
|
||||
// Node. Does not work with strict CommonJS, but
|
||||
// only CommonJS-like environments that support module.exports,
|
||||
// like Node.
|
||||
module.exports = factory(require("jquery"));
|
||||
} else {
|
||||
factory(root["jQuery"]);
|
||||
}
|
||||
}(this, function (jQuery) {
|
||||
|
||||
(function ($) {
|
||||
$.fn.selectpicker.defaults = {
|
||||
noneSelectedText: 'Aucune sélection',
|
||||
noneResultsText: 'Aucun résultat pour {0}',
|
||||
countSelectedText: function (numSelected, numTotal) {
|
||||
return (numSelected > 1) ? '{0} éléments sélectionnés' : '{0} élément sélectionné';
|
||||
},
|
||||
maxOptionsText: function (numAll, numGroup) {
|
||||
return [
|
||||
(numAll > 1) ? 'Limite atteinte ({n} éléments max)' : 'Limite atteinte ({n} élément max)',
|
||||
(numGroup > 1) ? 'Limite du groupe atteinte ({n} éléments max)' : 'Limite du groupe atteinte ({n} élément max)'
|
||||
];
|
||||
},
|
||||
multipleSeparator: ', ',
|
||||
selectAllText: 'Tout sélectionner',
|
||||
deselectAllText: 'Tout désélectionner'
|
||||
};
|
||||
})(jQuery);
|
||||
|
||||
|
||||
}));
|
||||
45
vendor/assets/javascripts/bootstrap-select/i18n/defaults-hr_HR.js
vendored
Normal file
45
vendor/assets/javascripts/bootstrap-select/i18n/defaults-hr_HR.js
vendored
Normal file
@@ -0,0 +1,45 @@
|
||||
/*!
|
||||
* Bootstrap-select v1.13.10 (https://developer.snapappointments.com/bootstrap-select)
|
||||
*
|
||||
* Copyright 2012-2019 SnapAppointments, LLC
|
||||
* Licensed under MIT (https://github.com/snapappointments/bootstrap-select/blob/master/LICENSE)
|
||||
*/
|
||||
|
||||
(function (root, factory) {
|
||||
if (root === undefined && window !== undefined) root = window;
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
// AMD. Register as an anonymous module unless amdModuleId is set
|
||||
define(["jquery"], function (a0) {
|
||||
return (factory(a0));
|
||||
});
|
||||
} else if (typeof module === 'object' && module.exports) {
|
||||
// Node. Does not work with strict CommonJS, but
|
||||
// only CommonJS-like environments that support module.exports,
|
||||
// like Node.
|
||||
module.exports = factory(require("jquery"));
|
||||
} else {
|
||||
factory(root["jQuery"]);
|
||||
}
|
||||
}(this, function (jQuery) {
|
||||
|
||||
(function ($) {
|
||||
$.fn.selectpicker.defaults = {
|
||||
noneSelectedText: 'Odaberite stavku',
|
||||
noneResultsText: 'Nema rezultata pretrage {0}',
|
||||
countSelectedText: function (numSelected, numTotal) {
|
||||
return (numSelected == 1) ? '{0} stavka selektirana' : '{0} stavke selektirane';
|
||||
},
|
||||
maxOptionsText: function (numAll, numGroup) {
|
||||
return [
|
||||
(numAll == 1) ? 'Limit je postignut ({n} stvar maximalno)' : 'Limit je postignut ({n} stavke maksimalno)',
|
||||
(numGroup == 1) ? 'Grupni limit je postignut ({n} stvar maksimalno)' : 'Grupni limit je postignut ({n} stavke maksimalno)'
|
||||
];
|
||||
},
|
||||
selectAllText: 'Selektiraj sve',
|
||||
deselectAllText: 'Deselektiraj sve',
|
||||
multipleSeparator: ', '
|
||||
};
|
||||
})(jQuery);
|
||||
|
||||
|
||||
}));
|
||||
45
vendor/assets/javascripts/bootstrap-select/i18n/defaults-hu_HU.js
vendored
Normal file
45
vendor/assets/javascripts/bootstrap-select/i18n/defaults-hu_HU.js
vendored
Normal file
@@ -0,0 +1,45 @@
|
||||
/*!
|
||||
* Bootstrap-select v1.13.10 (https://developer.snapappointments.com/bootstrap-select)
|
||||
*
|
||||
* Copyright 2012-2019 SnapAppointments, LLC
|
||||
* Licensed under MIT (https://github.com/snapappointments/bootstrap-select/blob/master/LICENSE)
|
||||
*/
|
||||
|
||||
(function (root, factory) {
|
||||
if (root === undefined && window !== undefined) root = window;
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
// AMD. Register as an anonymous module unless amdModuleId is set
|
||||
define(["jquery"], function (a0) {
|
||||
return (factory(a0));
|
||||
});
|
||||
} else if (typeof module === 'object' && module.exports) {
|
||||
// Node. Does not work with strict CommonJS, but
|
||||
// only CommonJS-like environments that support module.exports,
|
||||
// like Node.
|
||||
module.exports = factory(require("jquery"));
|
||||
} else {
|
||||
factory(root["jQuery"]);
|
||||
}
|
||||
}(this, function (jQuery) {
|
||||
|
||||
(function ($) {
|
||||
$.fn.selectpicker.defaults = {
|
||||
noneSelectedText: 'Válasszon!',
|
||||
noneResultsText: 'Nincs találat {0}',
|
||||
countSelectedText: function (numSelected, numTotal) {
|
||||
return '{0} elem kiválasztva';
|
||||
},
|
||||
maxOptionsText: function (numAll, numGroup) {
|
||||
return [
|
||||
'Legfeljebb {n} elem választható',
|
||||
'A csoportban legfeljebb {n} elem választható'
|
||||
];
|
||||
},
|
||||
selectAllText: 'Mind',
|
||||
deselectAllText: 'Egyik sem',
|
||||
multipleSeparator: ', '
|
||||
};
|
||||
})(jQuery);
|
||||
|
||||
|
||||
}));
|
||||
38
vendor/assets/javascripts/bootstrap-select/i18n/defaults-id_ID.js
vendored
Normal file
38
vendor/assets/javascripts/bootstrap-select/i18n/defaults-id_ID.js
vendored
Normal file
@@ -0,0 +1,38 @@
|
||||
/*!
|
||||
* Bootstrap-select v1.13.10 (https://developer.snapappointments.com/bootstrap-select)
|
||||
*
|
||||
* Copyright 2012-2019 SnapAppointments, LLC
|
||||
* Licensed under MIT (https://github.com/snapappointments/bootstrap-select/blob/master/LICENSE)
|
||||
*/
|
||||
|
||||
(function (root, factory) {
|
||||
if (root === undefined && window !== undefined) root = window;
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
// AMD. Register as an anonymous module unless amdModuleId is set
|
||||
define(["jquery"], function (a0) {
|
||||
return (factory(a0));
|
||||
});
|
||||
} else if (typeof module === 'object' && module.exports) {
|
||||
// Node. Does not work with strict CommonJS, but
|
||||
// only CommonJS-like environments that support module.exports,
|
||||
// like Node.
|
||||
module.exports = factory(require("jquery"));
|
||||
} else {
|
||||
factory(root["jQuery"]);
|
||||
}
|
||||
}(this, function (jQuery) {
|
||||
|
||||
(function ($) {
|
||||
$.fn.selectpicker.defaults = {
|
||||
noneSelectedText: 'Tidak ada yang dipilih',
|
||||
noneResultsText: 'Tidak ada yang cocok {0}',
|
||||
countSelectedText: '{0} terpilih',
|
||||
maxOptionsText: ['Mencapai batas (maksimum {n})', 'Mencapai batas grup (maksimum {n})'],
|
||||
selectAllText: 'Pilih Semua',
|
||||
deselectAllText: 'Hapus Semua',
|
||||
multipleSeparator: ', '
|
||||
};
|
||||
})(jQuery);
|
||||
|
||||
|
||||
}));
|
||||
40
vendor/assets/javascripts/bootstrap-select/i18n/defaults-it_IT.js
vendored
Normal file
40
vendor/assets/javascripts/bootstrap-select/i18n/defaults-it_IT.js
vendored
Normal file
@@ -0,0 +1,40 @@
|
||||
/*!
|
||||
* Bootstrap-select v1.13.10 (https://developer.snapappointments.com/bootstrap-select)
|
||||
*
|
||||
* Copyright 2012-2019 SnapAppointments, LLC
|
||||
* Licensed under MIT (https://github.com/snapappointments/bootstrap-select/blob/master/LICENSE)
|
||||
*/
|
||||
|
||||
(function (root, factory) {
|
||||
if (root === undefined && window !== undefined) root = window;
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
// AMD. Register as an anonymous module unless amdModuleId is set
|
||||
define(["jquery"], function (a0) {
|
||||
return (factory(a0));
|
||||
});
|
||||
} else if (typeof module === 'object' && module.exports) {
|
||||
// Node. Does not work with strict CommonJS, but
|
||||
// only CommonJS-like environments that support module.exports,
|
||||
// like Node.
|
||||
module.exports = factory(require("jquery"));
|
||||
} else {
|
||||
factory(root["jQuery"]);
|
||||
}
|
||||
}(this, function (jQuery) {
|
||||
|
||||
(function ($) {
|
||||
$.fn.selectpicker.defaults = {
|
||||
noneSelectedText: 'Nessuna selezione',
|
||||
noneResultsText: 'Nessun risultato per {0}',
|
||||
countSelectedText: function (numSelected, numTotal) {
|
||||
return (numSelected == 1) ? 'Selezionato {0} di {1}' : 'Selezionati {0} di {1}';
|
||||
},
|
||||
maxOptionsText: ['Limite raggiunto ({n} {var} max)', 'Limite del gruppo raggiunto ({n} {var} max)', ['elementi', 'elemento']],
|
||||
multipleSeparator: ', ',
|
||||
selectAllText: 'Seleziona Tutto',
|
||||
deselectAllText: 'Deseleziona Tutto'
|
||||
};
|
||||
})(jQuery);
|
||||
|
||||
|
||||
}));
|
||||
38
vendor/assets/javascripts/bootstrap-select/i18n/defaults-ja_JP.js
vendored
Normal file
38
vendor/assets/javascripts/bootstrap-select/i18n/defaults-ja_JP.js
vendored
Normal file
@@ -0,0 +1,38 @@
|
||||
/*!
|
||||
* Bootstrap-select v1.13.10 (https://developer.snapappointments.com/bootstrap-select)
|
||||
*
|
||||
* Copyright 2012-2019 SnapAppointments, LLC
|
||||
* Licensed under MIT (https://github.com/snapappointments/bootstrap-select/blob/master/LICENSE)
|
||||
*/
|
||||
|
||||
(function (root, factory) {
|
||||
if (root === undefined && window !== undefined) root = window;
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
// AMD. Register as an anonymous module unless amdModuleId is set
|
||||
define(["jquery"], function (a0) {
|
||||
return (factory(a0));
|
||||
});
|
||||
} else if (typeof module === 'object' && module.exports) {
|
||||
// Node. Does not work with strict CommonJS, but
|
||||
// only CommonJS-like environments that support module.exports,
|
||||
// like Node.
|
||||
module.exports = factory(require("jquery"));
|
||||
} else {
|
||||
factory(root["jQuery"]);
|
||||
}
|
||||
}(this, function (jQuery) {
|
||||
|
||||
(function ($) {
|
||||
$.fn.selectpicker.defaults = {
|
||||
noneSelectedText: '何もが選択した',
|
||||
noneResultsText: '\'{0}\'が結果を返さない',
|
||||
countSelectedText: '{0}/{1}が選択した',
|
||||
maxOptionsText: ['限界は達した({n}{var}最大)', '限界をグループは達した({n}{var}最大)', ['アイテム', 'アイテム']],
|
||||
selectAllText: '全部を選択する',
|
||||
deselectAllText: '何も選択しない',
|
||||
multipleSeparator: ', '
|
||||
};
|
||||
})(jQuery);
|
||||
|
||||
|
||||
}));
|
||||
45
vendor/assets/javascripts/bootstrap-select/i18n/defaults-kh_KM.js
vendored
Normal file
45
vendor/assets/javascripts/bootstrap-select/i18n/defaults-kh_KM.js
vendored
Normal file
@@ -0,0 +1,45 @@
|
||||
/*!
|
||||
* Bootstrap-select v1.13.10 (https://developer.snapappointments.com/bootstrap-select)
|
||||
*
|
||||
* Copyright 2012-2019 SnapAppointments, LLC
|
||||
* Licensed under MIT (https://github.com/snapappointments/bootstrap-select/blob/master/LICENSE)
|
||||
*/
|
||||
|
||||
(function (root, factory) {
|
||||
if (root === undefined && window !== undefined) root = window;
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
// AMD. Register as an anonymous module unless amdModuleId is set
|
||||
define(["jquery"], function (a0) {
|
||||
return (factory(a0));
|
||||
});
|
||||
} else if (typeof module === 'object' && module.exports) {
|
||||
// Node. Does not work with strict CommonJS, but
|
||||
// only CommonJS-like environments that support module.exports,
|
||||
// like Node.
|
||||
module.exports = factory(require("jquery"));
|
||||
} else {
|
||||
factory(root["jQuery"]);
|
||||
}
|
||||
}(this, function (jQuery) {
|
||||
|
||||
(function ($) {
|
||||
$.fn.selectpicker.defaults = {
|
||||
noneSelectedText: 'មិនមានអ្វីបានជ្រើសរើស',
|
||||
noneResultsText: 'មិនមានលទ្ធផល {0}',
|
||||
countSelectedText: function (numSelected, numTotal) {
|
||||
return (numSelected == 1) ? '{0} ធាតុដែលបានជ្រើស' : '{0} ធាតុដែលបានជ្រើស';
|
||||
},
|
||||
maxOptionsText: function (numAll, numGroup) {
|
||||
return [
|
||||
(numAll == 1) ? 'ឈានដល់ដែនកំណត់ ( {n} ធាតុអតិបរមា)' : 'អតិបរមាឈានដល់ដែនកំណត់ ( {n} ធាតុ)',
|
||||
(numGroup == 1) ? 'ដែនកំណត់ក្រុមឈានដល់ ( {n} អតិបរមាធាតុ)' : 'អតិបរមាក្រុមឈានដល់ដែនកំណត់ ( {n} ធាតុ)'
|
||||
];
|
||||
},
|
||||
selectAllText: 'ជ្រើសយកទាំងអស់',
|
||||
deselectAllText: 'មិនជ្រើសយកទាំងអស',
|
||||
multipleSeparator: ', '
|
||||
};
|
||||
})(jQuery);
|
||||
|
||||
|
||||
}));
|
||||
45
vendor/assets/javascripts/bootstrap-select/i18n/defaults-ko_KR.js
vendored
Normal file
45
vendor/assets/javascripts/bootstrap-select/i18n/defaults-ko_KR.js
vendored
Normal file
@@ -0,0 +1,45 @@
|
||||
/*!
|
||||
* Bootstrap-select v1.13.10 (https://developer.snapappointments.com/bootstrap-select)
|
||||
*
|
||||
* Copyright 2012-2019 SnapAppointments, LLC
|
||||
* Licensed under MIT (https://github.com/snapappointments/bootstrap-select/blob/master/LICENSE)
|
||||
*/
|
||||
|
||||
(function (root, factory) {
|
||||
if (root === undefined && window !== undefined) root = window;
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
// AMD. Register as an anonymous module unless amdModuleId is set
|
||||
define(["jquery"], function (a0) {
|
||||
return (factory(a0));
|
||||
});
|
||||
} else if (typeof module === 'object' && module.exports) {
|
||||
// Node. Does not work with strict CommonJS, but
|
||||
// only CommonJS-like environments that support module.exports,
|
||||
// like Node.
|
||||
module.exports = factory(require("jquery"));
|
||||
} else {
|
||||
factory(root["jQuery"]);
|
||||
}
|
||||
}(this, function (jQuery) {
|
||||
|
||||
(function ($) {
|
||||
$.fn.selectpicker.defaults = {
|
||||
noneSelectedText: '항목을 선택해주세요',
|
||||
noneResultsText: '{0} 검색 결과가 없습니다',
|
||||
countSelectedText: function (numSelected, numTotal) {
|
||||
return '{0}개를 선택하였습니다';
|
||||
},
|
||||
maxOptionsText: function (numAll, numGroup) {
|
||||
return [
|
||||
'{n}개까지 선택 가능합니다',
|
||||
'해당 그룹은 {n}개까지 선택 가능합니다'
|
||||
];
|
||||
},
|
||||
selectAllText: '전체선택',
|
||||
deselectAllText: '전체해제',
|
||||
multipleSeparator: ', '
|
||||
};
|
||||
})(jQuery);
|
||||
|
||||
|
||||
}));
|
||||
45
vendor/assets/javascripts/bootstrap-select/i18n/defaults-lt_LT.js
vendored
Normal file
45
vendor/assets/javascripts/bootstrap-select/i18n/defaults-lt_LT.js
vendored
Normal file
@@ -0,0 +1,45 @@
|
||||
/*!
|
||||
* Bootstrap-select v1.13.10 (https://developer.snapappointments.com/bootstrap-select)
|
||||
*
|
||||
* Copyright 2012-2019 SnapAppointments, LLC
|
||||
* Licensed under MIT (https://github.com/snapappointments/bootstrap-select/blob/master/LICENSE)
|
||||
*/
|
||||
|
||||
(function (root, factory) {
|
||||
if (root === undefined && window !== undefined) root = window;
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
// AMD. Register as an anonymous module unless amdModuleId is set
|
||||
define(["jquery"], function (a0) {
|
||||
return (factory(a0));
|
||||
});
|
||||
} else if (typeof module === 'object' && module.exports) {
|
||||
// Node. Does not work with strict CommonJS, but
|
||||
// only CommonJS-like environments that support module.exports,
|
||||
// like Node.
|
||||
module.exports = factory(require("jquery"));
|
||||
} else {
|
||||
factory(root["jQuery"]);
|
||||
}
|
||||
}(this, function (jQuery) {
|
||||
|
||||
(function ($) {
|
||||
$.fn.selectpicker.defaults = {
|
||||
noneSelectedText: 'Niekas nepasirinkta',
|
||||
noneResultsText: 'Niekas nesutapo su {0}',
|
||||
countSelectedText: function (numSelected, numTotal) {
|
||||
return (numSelected == 1) ? '{0} elementas pasirinktas' : '{0} elementai(-ų) pasirinkta';
|
||||
},
|
||||
maxOptionsText: function (numAll, numGroup) {
|
||||
return [
|
||||
(numAll == 1) ? 'Pasiekta riba ({n} elementas daugiausiai)' : 'Riba pasiekta ({n} elementai(-ų) daugiausiai)',
|
||||
(numGroup == 1) ? 'Grupės riba pasiekta ({n} elementas daugiausiai)' : 'Grupės riba pasiekta ({n} elementai(-ų) daugiausiai)'
|
||||
];
|
||||
},
|
||||
selectAllText: 'Pasirinkti visus',
|
||||
deselectAllText: 'Atmesti visus',
|
||||
multipleSeparator: ', '
|
||||
};
|
||||
})(jQuery);
|
||||
|
||||
|
||||
}));
|
||||
45
vendor/assets/javascripts/bootstrap-select/i18n/defaults-lv_LV.js
vendored
Normal file
45
vendor/assets/javascripts/bootstrap-select/i18n/defaults-lv_LV.js
vendored
Normal file
@@ -0,0 +1,45 @@
|
||||
/*!
|
||||
* Bootstrap-select v1.13.10 (https://developer.snapappointments.com/bootstrap-select)
|
||||
*
|
||||
* Copyright 2012-2019 SnapAppointments, LLC
|
||||
* Licensed under MIT (https://github.com/snapappointments/bootstrap-select/blob/master/LICENSE)
|
||||
*/
|
||||
|
||||
(function (root, factory) {
|
||||
if (root === undefined && window !== undefined) root = window;
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
// AMD. Register as an anonymous module unless amdModuleId is set
|
||||
define(["jquery"], function (a0) {
|
||||
return (factory(a0));
|
||||
});
|
||||
} else if (typeof module === 'object' && module.exports) {
|
||||
// Node. Does not work with strict CommonJS, but
|
||||
// only CommonJS-like environments that support module.exports,
|
||||
// like Node.
|
||||
module.exports = factory(require("jquery"));
|
||||
} else {
|
||||
factory(root["jQuery"]);
|
||||
}
|
||||
}(this, function (jQuery) {
|
||||
|
||||
(function ($) {
|
||||
$.fn.selectpicker.defaults = {
|
||||
noneSelectedText: 'Nekas nav atzīmēts',
|
||||
noneResultsText: 'Nav neviena rezultāta {0}',
|
||||
countSelectedText: function (numSelected, numTotal) {
|
||||
return (numSelected == 1) ? '{0} ieraksts atzīmēts' : '{0} ieraksti atzīmēts';
|
||||
},
|
||||
maxOptionsText: function (numAll, numGroup) {
|
||||
return [
|
||||
(numAll == 1) ? 'Sasniegts limits ({n} ieraksts maksimums)' : 'Sasniegts limits ({n} ieraksti maksimums)',
|
||||
(numGroup == 1) ? 'Sasniegts grupas limits ({n} ieraksts maksimums)' : 'Sasniegts grupas limits ({n} ieraksti maksimums)'
|
||||
];
|
||||
},
|
||||
selectAllText: 'Atzīmēt visu',
|
||||
deselectAllText: 'Neatzīmēt nevienu',
|
||||
multipleSeparator: ', '
|
||||
};
|
||||
})(jQuery);
|
||||
|
||||
|
||||
}));
|
||||
45
vendor/assets/javascripts/bootstrap-select/i18n/defaults-nb_NO.js
vendored
Normal file
45
vendor/assets/javascripts/bootstrap-select/i18n/defaults-nb_NO.js
vendored
Normal file
@@ -0,0 +1,45 @@
|
||||
/*!
|
||||
* Bootstrap-select v1.13.10 (https://developer.snapappointments.com/bootstrap-select)
|
||||
*
|
||||
* Copyright 2012-2019 SnapAppointments, LLC
|
||||
* Licensed under MIT (https://github.com/snapappointments/bootstrap-select/blob/master/LICENSE)
|
||||
*/
|
||||
|
||||
(function (root, factory) {
|
||||
if (root === undefined && window !== undefined) root = window;
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
// AMD. Register as an anonymous module unless amdModuleId is set
|
||||
define(["jquery"], function (a0) {
|
||||
return (factory(a0));
|
||||
});
|
||||
} else if (typeof module === 'object' && module.exports) {
|
||||
// Node. Does not work with strict CommonJS, but
|
||||
// only CommonJS-like environments that support module.exports,
|
||||
// like Node.
|
||||
module.exports = factory(require("jquery"));
|
||||
} else {
|
||||
factory(root["jQuery"]);
|
||||
}
|
||||
}(this, function (jQuery) {
|
||||
|
||||
(function ($) {
|
||||
$.fn.selectpicker.defaults = {
|
||||
noneSelectedText: 'Ingen valgt',
|
||||
noneResultsText: 'Søket gir ingen treff {0}',
|
||||
countSelectedText: function (numSelected, numTotal) {
|
||||
return (numSelected == 1) ? '{0} alternativ valgt' : '{0} alternativer valgt';
|
||||
},
|
||||
maxOptionsText: function (numAll, numGroup) {
|
||||
return [
|
||||
(numAll == 1) ? 'Grense nådd (maks {n} valg)' : 'Grense nådd (maks {n} valg)',
|
||||
(numGroup == 1) ? 'Grense for grupper nådd (maks {n} grupper)' : 'Grense for grupper nådd (maks {n} grupper)'
|
||||
];
|
||||
},
|
||||
selectAllText: 'Merk alle',
|
||||
deselectAllText: 'Fjern alle',
|
||||
multipleSeparator: ', '
|
||||
};
|
||||
})(jQuery);
|
||||
|
||||
|
||||
}));
|
||||
38
vendor/assets/javascripts/bootstrap-select/i18n/defaults-nl_NL.js
vendored
Normal file
38
vendor/assets/javascripts/bootstrap-select/i18n/defaults-nl_NL.js
vendored
Normal file
@@ -0,0 +1,38 @@
|
||||
/*!
|
||||
* Bootstrap-select v1.13.10 (https://developer.snapappointments.com/bootstrap-select)
|
||||
*
|
||||
* Copyright 2012-2019 SnapAppointments, LLC
|
||||
* Licensed under MIT (https://github.com/snapappointments/bootstrap-select/blob/master/LICENSE)
|
||||
*/
|
||||
|
||||
(function (root, factory) {
|
||||
if (root === undefined && window !== undefined) root = window;
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
// AMD. Register as an anonymous module unless amdModuleId is set
|
||||
define(["jquery"], function (a0) {
|
||||
return (factory(a0));
|
||||
});
|
||||
} else if (typeof module === 'object' && module.exports) {
|
||||
// Node. Does not work with strict CommonJS, but
|
||||
// only CommonJS-like environments that support module.exports,
|
||||
// like Node.
|
||||
module.exports = factory(require("jquery"));
|
||||
} else {
|
||||
factory(root["jQuery"]);
|
||||
}
|
||||
}(this, function (jQuery) {
|
||||
|
||||
(function ($) {
|
||||
$.fn.selectpicker.defaults = {
|
||||
noneSelectedText: 'Niets geselecteerd',
|
||||
noneResultsText: 'Geen resultaten gevonden voor {0}',
|
||||
countSelectedText: '{0} van {1} geselecteerd',
|
||||
maxOptionsText: ['Limiet bereikt ({n} {var} max)', 'Groep limiet bereikt ({n} {var} max)', ['items', 'item']],
|
||||
selectAllText: 'Alles selecteren',
|
||||
deselectAllText: 'Alles deselecteren',
|
||||
multipleSeparator: ', '
|
||||
};
|
||||
})(jQuery);
|
||||
|
||||
|
||||
}));
|
||||
38
vendor/assets/javascripts/bootstrap-select/i18n/defaults-pl_PL.js
vendored
Normal file
38
vendor/assets/javascripts/bootstrap-select/i18n/defaults-pl_PL.js
vendored
Normal file
@@ -0,0 +1,38 @@
|
||||
/*!
|
||||
* Bootstrap-select v1.13.10 (https://developer.snapappointments.com/bootstrap-select)
|
||||
*
|
||||
* Copyright 2012-2019 SnapAppointments, LLC
|
||||
* Licensed under MIT (https://github.com/snapappointments/bootstrap-select/blob/master/LICENSE)
|
||||
*/
|
||||
|
||||
(function (root, factory) {
|
||||
if (root === undefined && window !== undefined) root = window;
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
// AMD. Register as an anonymous module unless amdModuleId is set
|
||||
define(["jquery"], function (a0) {
|
||||
return (factory(a0));
|
||||
});
|
||||
} else if (typeof module === 'object' && module.exports) {
|
||||
// Node. Does not work with strict CommonJS, but
|
||||
// only CommonJS-like environments that support module.exports,
|
||||
// like Node.
|
||||
module.exports = factory(require("jquery"));
|
||||
} else {
|
||||
factory(root["jQuery"]);
|
||||
}
|
||||
}(this, function (jQuery) {
|
||||
|
||||
(function ($) {
|
||||
$.fn.selectpicker.defaults = {
|
||||
noneSelectedText: 'Nic nie zaznaczono',
|
||||
noneResultsText: 'Brak wyników wyszukiwania {0}',
|
||||
countSelectedText: 'Zaznaczono {0} z {1}',
|
||||
maxOptionsText: ['Osiągnięto limit ({n} {var} max)', 'Limit grupy osiągnięty ({n} {var} max)', ['elementy', 'element']],
|
||||
selectAllText: 'Zaznacz wszystkie',
|
||||
deselectAllText: 'Odznacz wszystkie',
|
||||
multipleSeparator: ', '
|
||||
};
|
||||
})(jQuery);
|
||||
|
||||
|
||||
}));
|
||||
38
vendor/assets/javascripts/bootstrap-select/i18n/defaults-pt_BR.js
vendored
Normal file
38
vendor/assets/javascripts/bootstrap-select/i18n/defaults-pt_BR.js
vendored
Normal file
@@ -0,0 +1,38 @@
|
||||
/*!
|
||||
* Bootstrap-select v1.13.10 (https://developer.snapappointments.com/bootstrap-select)
|
||||
*
|
||||
* Copyright 2012-2019 SnapAppointments, LLC
|
||||
* Licensed under MIT (https://github.com/snapappointments/bootstrap-select/blob/master/LICENSE)
|
||||
*/
|
||||
|
||||
(function (root, factory) {
|
||||
if (root === undefined && window !== undefined) root = window;
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
// AMD. Register as an anonymous module unless amdModuleId is set
|
||||
define(["jquery"], function (a0) {
|
||||
return (factory(a0));
|
||||
});
|
||||
} else if (typeof module === 'object' && module.exports) {
|
||||
// Node. Does not work with strict CommonJS, but
|
||||
// only CommonJS-like environments that support module.exports,
|
||||
// like Node.
|
||||
module.exports = factory(require("jquery"));
|
||||
} else {
|
||||
factory(root["jQuery"]);
|
||||
}
|
||||
}(this, function (jQuery) {
|
||||
|
||||
(function ($) {
|
||||
$.fn.selectpicker.defaults = {
|
||||
noneSelectedText: 'Nada selecionado',
|
||||
noneResultsText: 'Nada encontrado contendo {0}',
|
||||
countSelectedText: 'Selecionado {0} de {1}',
|
||||
maxOptionsText: ['Limite excedido (máx. {n} {var})', 'Limite do grupo excedido (máx. {n} {var})', ['itens', 'item']],
|
||||
multipleSeparator: ', ',
|
||||
selectAllText: 'Selecionar Todos',
|
||||
deselectAllText: 'Desmarcar Todos'
|
||||
};
|
||||
})(jQuery);
|
||||
|
||||
|
||||
}));
|
||||
38
vendor/assets/javascripts/bootstrap-select/i18n/defaults-pt_PT.js
vendored
Normal file
38
vendor/assets/javascripts/bootstrap-select/i18n/defaults-pt_PT.js
vendored
Normal file
@@ -0,0 +1,38 @@
|
||||
/*!
|
||||
* Bootstrap-select v1.13.10 (https://developer.snapappointments.com/bootstrap-select)
|
||||
*
|
||||
* Copyright 2012-2019 SnapAppointments, LLC
|
||||
* Licensed under MIT (https://github.com/snapappointments/bootstrap-select/blob/master/LICENSE)
|
||||
*/
|
||||
|
||||
(function (root, factory) {
|
||||
if (root === undefined && window !== undefined) root = window;
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
// AMD. Register as an anonymous module unless amdModuleId is set
|
||||
define(["jquery"], function (a0) {
|
||||
return (factory(a0));
|
||||
});
|
||||
} else if (typeof module === 'object' && module.exports) {
|
||||
// Node. Does not work with strict CommonJS, but
|
||||
// only CommonJS-like environments that support module.exports,
|
||||
// like Node.
|
||||
module.exports = factory(require("jquery"));
|
||||
} else {
|
||||
factory(root["jQuery"]);
|
||||
}
|
||||
}(this, function (jQuery) {
|
||||
|
||||
(function ($) {
|
||||
$.fn.selectpicker.defaults = {
|
||||
noneSelectedText: 'Nenhum seleccionado',
|
||||
noneResultsText: 'Sem resultados contendo {0}',
|
||||
countSelectedText: 'Selecionado {0} de {1}',
|
||||
maxOptionsText: ['Limite ultrapassado (máx. {n} {var})', 'Limite de seleções ultrapassado (máx. {n} {var})', ['itens', 'item']],
|
||||
multipleSeparator: ', ',
|
||||
selectAllText: 'Selecionar Tudo',
|
||||
deselectAllText: 'Desmarcar Todos'
|
||||
};
|
||||
})(jQuery);
|
||||
|
||||
|
||||
}));
|
||||
39
vendor/assets/javascripts/bootstrap-select/i18n/defaults-ro_RO.js
vendored
Normal file
39
vendor/assets/javascripts/bootstrap-select/i18n/defaults-ro_RO.js
vendored
Normal file
@@ -0,0 +1,39 @@
|
||||
/*!
|
||||
* Bootstrap-select v1.13.10 (https://developer.snapappointments.com/bootstrap-select)
|
||||
*
|
||||
* Copyright 2012-2019 SnapAppointments, LLC
|
||||
* Licensed under MIT (https://github.com/snapappointments/bootstrap-select/blob/master/LICENSE)
|
||||
*/
|
||||
|
||||
(function (root, factory) {
|
||||
if (root === undefined && window !== undefined) root = window;
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
// AMD. Register as an anonymous module unless amdModuleId is set
|
||||
define(["jquery"], function (a0) {
|
||||
return (factory(a0));
|
||||
});
|
||||
} else if (typeof module === 'object' && module.exports) {
|
||||
// Node. Does not work with strict CommonJS, but
|
||||
// only CommonJS-like environments that support module.exports,
|
||||
// like Node.
|
||||
module.exports = factory(require("jquery"));
|
||||
} else {
|
||||
factory(root["jQuery"]);
|
||||
}
|
||||
}(this, function (jQuery) {
|
||||
|
||||
(function ($) {
|
||||
$.fn.selectpicker.defaults = {
|
||||
doneButtonText: 'Închide',
|
||||
noneSelectedText: 'Nu a fost selectat nimic',
|
||||
noneResultsText: 'Nu există niciun rezultat {0}',
|
||||
countSelectedText: '{0} din {1} selectat(e)',
|
||||
maxOptionsText: ['Limita a fost atinsă ({n} {var} max)', 'Limita de grup a fost atinsă ({n} {var} max)', ['iteme', 'item']],
|
||||
selectAllText: 'Selectează toate',
|
||||
deselectAllText: 'Deselectează toate',
|
||||
multipleSeparator: ', '
|
||||
};
|
||||
})(jQuery);
|
||||
|
||||
|
||||
}));
|
||||
39
vendor/assets/javascripts/bootstrap-select/i18n/defaults-ru_RU.js
vendored
Normal file
39
vendor/assets/javascripts/bootstrap-select/i18n/defaults-ru_RU.js
vendored
Normal file
@@ -0,0 +1,39 @@
|
||||
/*!
|
||||
* Bootstrap-select v1.13.10 (https://developer.snapappointments.com/bootstrap-select)
|
||||
*
|
||||
* Copyright 2012-2019 SnapAppointments, LLC
|
||||
* Licensed under MIT (https://github.com/snapappointments/bootstrap-select/blob/master/LICENSE)
|
||||
*/
|
||||
|
||||
(function (root, factory) {
|
||||
if (root === undefined && window !== undefined) root = window;
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
// AMD. Register as an anonymous module unless amdModuleId is set
|
||||
define(["jquery"], function (a0) {
|
||||
return (factory(a0));
|
||||
});
|
||||
} else if (typeof module === 'object' && module.exports) {
|
||||
// Node. Does not work with strict CommonJS, but
|
||||
// only CommonJS-like environments that support module.exports,
|
||||
// like Node.
|
||||
module.exports = factory(require("jquery"));
|
||||
} else {
|
||||
factory(root["jQuery"]);
|
||||
}
|
||||
}(this, function (jQuery) {
|
||||
|
||||
(function ($) {
|
||||
$.fn.selectpicker.defaults = {
|
||||
noneSelectedText: 'Ничего не выбрано',
|
||||
noneResultsText: 'Совпадений не найдено {0}',
|
||||
countSelectedText: 'Выбрано {0} из {1}',
|
||||
maxOptionsText: ['Достигнут предел ({n} {var} максимум)', 'Достигнут предел в группе ({n} {var} максимум)', ['шт.', 'шт.']],
|
||||
doneButtonText: 'Закрыть',
|
||||
selectAllText: 'Выбрать все',
|
||||
deselectAllText: 'Отменить все',
|
||||
multipleSeparator: ', '
|
||||
};
|
||||
})(jQuery);
|
||||
|
||||
|
||||
}));
|
||||
38
vendor/assets/javascripts/bootstrap-select/i18n/defaults-sk_SK.js
vendored
Normal file
38
vendor/assets/javascripts/bootstrap-select/i18n/defaults-sk_SK.js
vendored
Normal file
@@ -0,0 +1,38 @@
|
||||
/*!
|
||||
* Bootstrap-select v1.13.10 (https://developer.snapappointments.com/bootstrap-select)
|
||||
*
|
||||
* Copyright 2012-2019 SnapAppointments, LLC
|
||||
* Licensed under MIT (https://github.com/snapappointments/bootstrap-select/blob/master/LICENSE)
|
||||
*/
|
||||
|
||||
(function (root, factory) {
|
||||
if (root === undefined && window !== undefined) root = window;
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
// AMD. Register as an anonymous module unless amdModuleId is set
|
||||
define(["jquery"], function (a0) {
|
||||
return (factory(a0));
|
||||
});
|
||||
} else if (typeof module === 'object' && module.exports) {
|
||||
// Node. Does not work with strict CommonJS, but
|
||||
// only CommonJS-like environments that support module.exports,
|
||||
// like Node.
|
||||
module.exports = factory(require("jquery"));
|
||||
} else {
|
||||
factory(root["jQuery"]);
|
||||
}
|
||||
}(this, function (jQuery) {
|
||||
|
||||
(function ($) {
|
||||
$.fn.selectpicker.defaults = {
|
||||
noneSelectedText: 'Vyberte zo zoznamu',
|
||||
noneResultsText: 'Pre výraz {0} neboli nájdené žiadne výsledky',
|
||||
countSelectedText: 'Vybrané {0} z {1}',
|
||||
maxOptionsText: ['Limit prekročený ({n} {var} max)', 'Limit skupiny prekročený ({n} {var} max)', ['položiek', 'položka']],
|
||||
selectAllText: 'Vybrať všetky',
|
||||
deselectAllText: 'Zrušiť výber',
|
||||
multipleSeparator: ', '
|
||||
};
|
||||
})(jQuery);
|
||||
|
||||
|
||||
}));
|
||||
43
vendor/assets/javascripts/bootstrap-select/i18n/defaults-sl_SI.js
vendored
Normal file
43
vendor/assets/javascripts/bootstrap-select/i18n/defaults-sl_SI.js
vendored
Normal file
@@ -0,0 +1,43 @@
|
||||
/*!
|
||||
* Bootstrap-select v1.13.10 (https://developer.snapappointments.com/bootstrap-select)
|
||||
*
|
||||
* Copyright 2012-2019 SnapAppointments, LLC
|
||||
* Licensed under MIT (https://github.com/snapappointments/bootstrap-select/blob/master/LICENSE)
|
||||
*/
|
||||
|
||||
(function (root, factory) {
|
||||
if (root === undefined && window !== undefined) root = window;
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
// AMD. Register as an anonymous module unless amdModuleId is set
|
||||
define(["jquery"], function (a0) {
|
||||
return (factory(a0));
|
||||
});
|
||||
} else if (typeof module === 'object' && module.exports) {
|
||||
// Node. Does not work with strict CommonJS, but
|
||||
// only CommonJS-like environments that support module.exports,
|
||||
// like Node.
|
||||
module.exports = factory(require("jquery"));
|
||||
} else {
|
||||
factory(root["jQuery"]);
|
||||
}
|
||||
}(this, function (jQuery) {
|
||||
|
||||
(function ($) {
|
||||
$.fn.selectpicker.defaults = {
|
||||
noneSelectedText: 'Nič izbranega',
|
||||
noneResultsText: 'Ni zadetkov za {0}',
|
||||
countSelectedText: '{0} od {1} izbranih',
|
||||
maxOptionsText: function (numAll, numGroup) {
|
||||
return [
|
||||
'Omejitev dosežena (max. izbranih: {n})',
|
||||
'Omejitev skupine dosežena (max. izbranih: {n})'
|
||||
];
|
||||
},
|
||||
selectAllText: 'Izberi vse',
|
||||
deselectAllText: 'Počisti izbor',
|
||||
multipleSeparator: ', '
|
||||
};
|
||||
})(jQuery);
|
||||
|
||||
|
||||
}));
|
||||
45
vendor/assets/javascripts/bootstrap-select/i18n/defaults-sv_SE.js
vendored
Normal file
45
vendor/assets/javascripts/bootstrap-select/i18n/defaults-sv_SE.js
vendored
Normal file
@@ -0,0 +1,45 @@
|
||||
/*!
|
||||
* Bootstrap-select v1.13.10 (https://developer.snapappointments.com/bootstrap-select)
|
||||
*
|
||||
* Copyright 2012-2019 SnapAppointments, LLC
|
||||
* Licensed under MIT (https://github.com/snapappointments/bootstrap-select/blob/master/LICENSE)
|
||||
*/
|
||||
|
||||
(function (root, factory) {
|
||||
if (root === undefined && window !== undefined) root = window;
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
// AMD. Register as an anonymous module unless amdModuleId is set
|
||||
define(["jquery"], function (a0) {
|
||||
return (factory(a0));
|
||||
});
|
||||
} else if (typeof module === 'object' && module.exports) {
|
||||
// Node. Does not work with strict CommonJS, but
|
||||
// only CommonJS-like environments that support module.exports,
|
||||
// like Node.
|
||||
module.exports = factory(require("jquery"));
|
||||
} else {
|
||||
factory(root["jQuery"]);
|
||||
}
|
||||
}(this, function (jQuery) {
|
||||
|
||||
(function ($) {
|
||||
$.fn.selectpicker.defaults = {
|
||||
noneSelectedText: 'Inget valt',
|
||||
noneResultsText: 'Inget sökresultat matchar {0}',
|
||||
countSelectedText: function (numSelected, numTotal) {
|
||||
return (numSelected === 1) ? '{0} alternativ valt' : '{0} alternativ valda';
|
||||
},
|
||||
maxOptionsText: function (numAll, numGroup) {
|
||||
return [
|
||||
'Gräns uppnåd (max {n} alternativ)',
|
||||
'Gräns uppnåd (max {n} gruppalternativ)'
|
||||
];
|
||||
},
|
||||
selectAllText: 'Markera alla',
|
||||
deselectAllText: 'Avmarkera alla',
|
||||
multipleSeparator: ', '
|
||||
};
|
||||
})(jQuery);
|
||||
|
||||
|
||||
}));
|
||||
45
vendor/assets/javascripts/bootstrap-select/i18n/defaults-tr_TR.js
vendored
Normal file
45
vendor/assets/javascripts/bootstrap-select/i18n/defaults-tr_TR.js
vendored
Normal file
@@ -0,0 +1,45 @@
|
||||
/*!
|
||||
* Bootstrap-select v1.13.10 (https://developer.snapappointments.com/bootstrap-select)
|
||||
*
|
||||
* Copyright 2012-2019 SnapAppointments, LLC
|
||||
* Licensed under MIT (https://github.com/snapappointments/bootstrap-select/blob/master/LICENSE)
|
||||
*/
|
||||
|
||||
(function (root, factory) {
|
||||
if (root === undefined && window !== undefined) root = window;
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
// AMD. Register as an anonymous module unless amdModuleId is set
|
||||
define(["jquery"], function (a0) {
|
||||
return (factory(a0));
|
||||
});
|
||||
} else if (typeof module === 'object' && module.exports) {
|
||||
// Node. Does not work with strict CommonJS, but
|
||||
// only CommonJS-like environments that support module.exports,
|
||||
// like Node.
|
||||
module.exports = factory(require("jquery"));
|
||||
} else {
|
||||
factory(root["jQuery"]);
|
||||
}
|
||||
}(this, function (jQuery) {
|
||||
|
||||
(function ($) {
|
||||
$.fn.selectpicker.defaults = {
|
||||
noneSelectedText: 'Hiçbiri seçilmedi',
|
||||
noneResultsText: 'Hiçbir sonuç bulunamadı {0}',
|
||||
countSelectedText: function (numSelected, numTotal) {
|
||||
return (numSelected == 1) ? '{0} öğe seçildi' : '{0} öğe seçildi';
|
||||
},
|
||||
maxOptionsText: function (numAll, numGroup) {
|
||||
return [
|
||||
(numAll == 1) ? 'Limit aşıldı (maksimum {n} sayıda öğe )' : 'Limit aşıldı (maksimum {n} sayıda öğe)',
|
||||
(numGroup == 1) ? 'Grup limiti aşıldı (maksimum {n} sayıda öğe)' : 'Grup limiti aşıldı (maksimum {n} sayıda öğe)'
|
||||
];
|
||||
},
|
||||
selectAllText: 'Tümünü Seç',
|
||||
deselectAllText: 'Seçiniz',
|
||||
multipleSeparator: ', '
|
||||
};
|
||||
})(jQuery);
|
||||
|
||||
|
||||
}));
|
||||
38
vendor/assets/javascripts/bootstrap-select/i18n/defaults-ua_UA.js
vendored
Normal file
38
vendor/assets/javascripts/bootstrap-select/i18n/defaults-ua_UA.js
vendored
Normal file
@@ -0,0 +1,38 @@
|
||||
/*!
|
||||
* Bootstrap-select v1.13.10 (https://developer.snapappointments.com/bootstrap-select)
|
||||
*
|
||||
* Copyright 2012-2019 SnapAppointments, LLC
|
||||
* Licensed under MIT (https://github.com/snapappointments/bootstrap-select/blob/master/LICENSE)
|
||||
*/
|
||||
|
||||
(function (root, factory) {
|
||||
if (root === undefined && window !== undefined) root = window;
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
// AMD. Register as an anonymous module unless amdModuleId is set
|
||||
define(["jquery"], function (a0) {
|
||||
return (factory(a0));
|
||||
});
|
||||
} else if (typeof module === 'object' && module.exports) {
|
||||
// Node. Does not work with strict CommonJS, but
|
||||
// only CommonJS-like environments that support module.exports,
|
||||
// like Node.
|
||||
module.exports = factory(require("jquery"));
|
||||
} else {
|
||||
factory(root["jQuery"]);
|
||||
}
|
||||
}(this, function (jQuery) {
|
||||
|
||||
(function ($) {
|
||||
$.fn.selectpicker.defaults = {
|
||||
noneSelectedText: 'Нічого не вибрано',
|
||||
noneResultsText: 'Збігів не знайдено {0}',
|
||||
countSelectedText: 'Вибрано {0} із {1}',
|
||||
maxOptionsText: ['Досягнута межа ({n} {var} максимум)', 'Досягнута межа в групі ({n} {var} максимум)', ['items', 'item']],
|
||||
multipleSeparator: ', ',
|
||||
selectAllText: 'Вибрати все',
|
||||
deselectAllText: 'Скасувати вибір усі'
|
||||
};
|
||||
})(jQuery);
|
||||
|
||||
|
||||
}));
|
||||
45
vendor/assets/javascripts/bootstrap-select/i18n/defaults-vi_VN.js
vendored
Normal file
45
vendor/assets/javascripts/bootstrap-select/i18n/defaults-vi_VN.js
vendored
Normal file
@@ -0,0 +1,45 @@
|
||||
/*!
|
||||
* Bootstrap-select v1.13.10 (https://developer.snapappointments.com/bootstrap-select)
|
||||
*
|
||||
* Copyright 2012-2019 SnapAppointments, LLC
|
||||
* Licensed under MIT (https://github.com/snapappointments/bootstrap-select/blob/master/LICENSE)
|
||||
*/
|
||||
|
||||
(function (root, factory) {
|
||||
if (root === undefined && window !== undefined) root = window;
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
// AMD. Register as an anonymous module unless amdModuleId is set
|
||||
define(["jquery"], function (a0) {
|
||||
return (factory(a0));
|
||||
});
|
||||
} else if (typeof module === 'object' && module.exports) {
|
||||
// Node. Does not work with strict CommonJS, but
|
||||
// only CommonJS-like environments that support module.exports,
|
||||
// like Node.
|
||||
module.exports = factory(require("jquery"));
|
||||
} else {
|
||||
factory(root["jQuery"]);
|
||||
}
|
||||
}(this, function (jQuery) {
|
||||
|
||||
(function ($) {
|
||||
$.fn.selectpicker.defaults = {
|
||||
noneSelectedText: 'Chưa chọn',
|
||||
noneResultsText: 'Không có kết quả cho {0}',
|
||||
countSelectedText: function (numSelected, numTotal) {
|
||||
return '{0} mục đã chọn';
|
||||
},
|
||||
maxOptionsText: function (numAll, numGroup) {
|
||||
return [
|
||||
'Không thể chọn (giới hạn {n} mục)',
|
||||
'Không thể chọn (giới hạn {n} mục)'
|
||||
];
|
||||
},
|
||||
selectAllText: 'Chọn tất cả',
|
||||
deselectAllText: 'Bỏ chọn',
|
||||
multipleSeparator: ', '
|
||||
};
|
||||
})(jQuery);
|
||||
|
||||
|
||||
}));
|
||||
38
vendor/assets/javascripts/bootstrap-select/i18n/defaults-zh_CN.js
vendored
Normal file
38
vendor/assets/javascripts/bootstrap-select/i18n/defaults-zh_CN.js
vendored
Normal file
@@ -0,0 +1,38 @@
|
||||
/*!
|
||||
* Bootstrap-select v1.13.10 (https://developer.snapappointments.com/bootstrap-select)
|
||||
*
|
||||
* Copyright 2012-2019 SnapAppointments, LLC
|
||||
* Licensed under MIT (https://github.com/snapappointments/bootstrap-select/blob/master/LICENSE)
|
||||
*/
|
||||
|
||||
(function (root, factory) {
|
||||
if (root === undefined && window !== undefined) root = window;
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
// AMD. Register as an anonymous module unless amdModuleId is set
|
||||
define(["jquery"], function (a0) {
|
||||
return (factory(a0));
|
||||
});
|
||||
} else if (typeof module === 'object' && module.exports) {
|
||||
// Node. Does not work with strict CommonJS, but
|
||||
// only CommonJS-like environments that support module.exports,
|
||||
// like Node.
|
||||
module.exports = factory(require("jquery"));
|
||||
} else {
|
||||
factory(root["jQuery"]);
|
||||
}
|
||||
}(this, function (jQuery) {
|
||||
|
||||
(function ($) {
|
||||
$.fn.selectpicker.defaults = {
|
||||
noneSelectedText: '没有选中任何项',
|
||||
noneResultsText: '没有找到匹配项',
|
||||
countSelectedText: '选中{1}中的{0}项',
|
||||
maxOptionsText: ['超出限制 (最多选择{n}项)', '组选择超出限制(最多选择{n}组)'],
|
||||
multipleSeparator: ', ',
|
||||
selectAllText: '全选',
|
||||
deselectAllText: '取消全选'
|
||||
};
|
||||
})(jQuery);
|
||||
|
||||
|
||||
}));
|
||||
38
vendor/assets/javascripts/bootstrap-select/i18n/defaults-zh_TW.js
vendored
Normal file
38
vendor/assets/javascripts/bootstrap-select/i18n/defaults-zh_TW.js
vendored
Normal file
@@ -0,0 +1,38 @@
|
||||
/*!
|
||||
* Bootstrap-select v1.13.10 (https://developer.snapappointments.com/bootstrap-select)
|
||||
*
|
||||
* Copyright 2012-2019 SnapAppointments, LLC
|
||||
* Licensed under MIT (https://github.com/snapappointments/bootstrap-select/blob/master/LICENSE)
|
||||
*/
|
||||
|
||||
(function (root, factory) {
|
||||
if (root === undefined && window !== undefined) root = window;
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
// AMD. Register as an anonymous module unless amdModuleId is set
|
||||
define(["jquery"], function (a0) {
|
||||
return (factory(a0));
|
||||
});
|
||||
} else if (typeof module === 'object' && module.exports) {
|
||||
// Node. Does not work with strict CommonJS, but
|
||||
// only CommonJS-like environments that support module.exports,
|
||||
// like Node.
|
||||
module.exports = factory(require("jquery"));
|
||||
} else {
|
||||
factory(root["jQuery"]);
|
||||
}
|
||||
}(this, function (jQuery) {
|
||||
|
||||
(function ($) {
|
||||
$.fn.selectpicker.defaults = {
|
||||
noneSelectedText: '沒有選取任何項目',
|
||||
noneResultsText: '沒有找到符合的結果',
|
||||
countSelectedText: '已經選取{0}個項目',
|
||||
maxOptionsText: ['超過限制 (最多選擇{n}項)', '超過限制(最多選擇{n}組)'],
|
||||
selectAllText: '選取全部',
|
||||
deselectAllText: '全部取消',
|
||||
multipleSeparator: ', '
|
||||
};
|
||||
})(jQuery);
|
||||
|
||||
|
||||
}));
|
||||
1
vendor/assets/javascripts/date.format.js
vendored
Normal file
1
vendor/assets/javascripts/date.format.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
//= require date.format/date.format.js
|
||||
126
vendor/assets/javascripts/date.format/date.format.js
vendored
Normal file
126
vendor/assets/javascripts/date.format/date.format.js
vendored
Normal file
@@ -0,0 +1,126 @@
|
||||
/*
|
||||
* Date Format 1.2.3
|
||||
* (c) 2007-2009 Steven Levithan <stevenlevithan.com>
|
||||
* MIT license
|
||||
*
|
||||
* Includes enhancements by Scott Trenda <scott.trenda.net>
|
||||
* and Kris Kowal <cixar.com/~kris.kowal/>
|
||||
*
|
||||
* Accepts a date, a mask, or a date and a mask.
|
||||
* Returns a formatted version of the given date.
|
||||
* The date defaults to the current date/time.
|
||||
* The mask defaults to dateFormat.masks.default.
|
||||
*/
|
||||
|
||||
var dateFormat = function () {
|
||||
var token = /d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,
|
||||
timezone = /\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,
|
||||
timezoneClip = /[^-+\dA-Z]/g,
|
||||
pad = function (val, len) {
|
||||
val = String(val);
|
||||
len = len || 2;
|
||||
while (val.length < len) val = "0" + val;
|
||||
return val;
|
||||
};
|
||||
|
||||
// Regexes and supporting functions are cached through closure
|
||||
return function (date, mask, utc) {
|
||||
var dF = dateFormat;
|
||||
|
||||
// You can't provide utc if you skip other args (use the "UTC:" mask prefix)
|
||||
if (arguments.length == 1 && Object.prototype.toString.call(date) == "[object String]" && !/\d/.test(date)) {
|
||||
mask = date;
|
||||
date = undefined;
|
||||
}
|
||||
|
||||
// Passing date through Date applies Date.parse, if necessary
|
||||
date = date ? new Date(date) : new Date;
|
||||
if (isNaN(date)) throw SyntaxError("invalid date");
|
||||
|
||||
mask = String(dF.masks[mask] || mask || dF.masks["default"]);
|
||||
|
||||
// Allow setting the utc argument via the mask
|
||||
if (mask.slice(0, 4) == "UTC:") {
|
||||
mask = mask.slice(4);
|
||||
utc = true;
|
||||
}
|
||||
|
||||
var _ = utc ? "getUTC" : "get",
|
||||
d = date[_ + "Date"](),
|
||||
D = date[_ + "Day"](),
|
||||
m = date[_ + "Month"](),
|
||||
y = date[_ + "FullYear"](),
|
||||
H = date[_ + "Hours"](),
|
||||
M = date[_ + "Minutes"](),
|
||||
s = date[_ + "Seconds"](),
|
||||
L = date[_ + "Milliseconds"](),
|
||||
o = utc ? 0 : date.getTimezoneOffset(),
|
||||
flags = {
|
||||
d: d,
|
||||
dd: pad(d),
|
||||
ddd: dF.i18n.dayNames[D],
|
||||
dddd: dF.i18n.dayNames[D + 7],
|
||||
m: m + 1,
|
||||
mm: pad(m + 1),
|
||||
mmm: dF.i18n.monthNames[m],
|
||||
mmmm: dF.i18n.monthNames[m + 12],
|
||||
yy: String(y).slice(2),
|
||||
yyyy: y,
|
||||
h: H % 12 || 12,
|
||||
hh: pad(H % 12 || 12),
|
||||
H: H,
|
||||
HH: pad(H),
|
||||
M: M,
|
||||
MM: pad(M),
|
||||
s: s,
|
||||
ss: pad(s),
|
||||
l: pad(L, 3),
|
||||
L: pad(L > 99 ? Math.round(L / 10) : L),
|
||||
t: H < 12 ? "a" : "p",
|
||||
tt: H < 12 ? "am" : "pm",
|
||||
T: H < 12 ? "A" : "P",
|
||||
TT: H < 12 ? "AM" : "PM",
|
||||
Z: utc ? "UTC" : (String(date).match(timezone) || [""]).pop().replace(timezoneClip, ""),
|
||||
o: (o > 0 ? "-" : "+") + pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4),
|
||||
S: ["th", "st", "nd", "rd"][d % 10 > 3 ? 0 : (d % 100 - d % 10 != 10) * d % 10]
|
||||
};
|
||||
|
||||
return mask.replace(token, function ($0) {
|
||||
return $0 in flags ? flags[$0] : $0.slice(1, $0.length - 1);
|
||||
});
|
||||
};
|
||||
}();
|
||||
|
||||
// Some common format strings
|
||||
dateFormat.masks = {
|
||||
"default": "ddd mmm dd yyyy HH:MM:ss",
|
||||
shortDate: "m/d/yy",
|
||||
mediumDate: "mmm d, yyyy",
|
||||
longDate: "mmmm d, yyyy",
|
||||
fullDate: "dddd, mmmm d, yyyy",
|
||||
shortTime: "h:MM TT",
|
||||
mediumTime: "h:MM:ss TT",
|
||||
longTime: "h:MM:ss TT Z",
|
||||
isoDate: "yyyy-mm-dd",
|
||||
isoTime: "HH:MM:ss",
|
||||
isoDateTime: "yyyy-mm-dd'T'HH:MM:ss",
|
||||
isoUtcDateTime: "UTC:yyyy-mm-dd'T'HH:MM:ss'Z'"
|
||||
};
|
||||
|
||||
// Internationalization strings
|
||||
dateFormat.i18n = {
|
||||
dayNames: [
|
||||
"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat",
|
||||
"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"
|
||||
],
|
||||
monthNames: [
|
||||
"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec",
|
||||
"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"
|
||||
]
|
||||
};
|
||||
|
||||
// For convenience...
|
||||
Date.prototype.format = function (mask, utc) {
|
||||
return dateFormat(this, mask, utc);
|
||||
};
|
||||
|
||||
1
vendor/assets/javascripts/holderjs.js
vendored
Normal file
1
vendor/assets/javascripts/holderjs.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
//= require holderjs/holder.js
|
||||
114
vendor/assets/javascripts/holderjs/gulpfile.js
vendored
Normal file
114
vendor/assets/javascripts/holderjs/gulpfile.js
vendored
Normal file
@@ -0,0 +1,114 @@
|
||||
var gulp = require('gulp');
|
||||
var concat = require('gulp-concat');
|
||||
var uglify = require('gulp-uglify');
|
||||
var header = require('gulp-header');
|
||||
var jshint = require('gulp-jshint');
|
||||
var todo = require('gulp-todo');
|
||||
var gulputil = require('gulp-util');
|
||||
var replace = require('gulp-replace');
|
||||
var webpack = require('webpack-stream');
|
||||
var beautify = require('gulp-jsbeautifier');
|
||||
var rename = require('gulp-rename');
|
||||
|
||||
var moment = require('moment');
|
||||
var pkg = require('./package.json');
|
||||
|
||||
var banner =
|
||||
'/*!\n\n' +
|
||||
'<%= pkg.officialName %> - <%= pkg.summary %>\nVersion <%= pkg.version %>+<%= build %>\n' +
|
||||
'\u00A9 <%= year %> <%= pkg.author.name %> - <%= pkg.author.url %>\n\n' +
|
||||
'Site: <%= pkg.homepage %>\n' +
|
||||
'Issues: <%= pkg.bugs.url %>\n' +
|
||||
'License: <%= pkg.license %>\n\n' +
|
||||
'*/\n';
|
||||
|
||||
function generateBuild() {
|
||||
var date = new Date;
|
||||
return Math.floor((date - (new Date(date.getFullYear(), 0, 0))) / 1000).toString(36)
|
||||
}
|
||||
|
||||
var build = generateBuild();
|
||||
|
||||
gulp.task('jshint', function() {
|
||||
return gulp.src([
|
||||
'src/lib/*.js',
|
||||
'src/lib/renderers/*.js',
|
||||
'src/renderers/*.js',
|
||||
'src/index.js'
|
||||
])
|
||||
.pipe(jshint())
|
||||
.pipe(jshint.reporter('default'));
|
||||
});
|
||||
|
||||
gulp.task('todo', function() {
|
||||
return gulp.src([
|
||||
'src/lib/*.js',
|
||||
'src/lib/renderers/*.js',
|
||||
'src/renderers/*.js',
|
||||
'src/index.js'
|
||||
])
|
||||
.pipe(todo())
|
||||
.pipe(gulp.dest('./'));
|
||||
});
|
||||
|
||||
gulp.task('build', ['jshint'], function() {
|
||||
return gulp.src('src/index.js')
|
||||
.pipe(webpack({
|
||||
output: {
|
||||
library: 'Holder',
|
||||
filename: 'holder.js',
|
||||
libraryTarget: 'umd'
|
||||
}
|
||||
}))
|
||||
.pipe(gulp.dest('./'));
|
||||
});
|
||||
|
||||
gulp.task('bundle', ['build'], function() {
|
||||
return gulp.src([
|
||||
'src/lib/vendor/polyfills.js',
|
||||
'holder.js',
|
||||
'src/meteor/shim.js'
|
||||
])
|
||||
.pipe(concat('holder.js'))
|
||||
.pipe(gulp.dest('./'));
|
||||
});
|
||||
|
||||
gulp.task('minify', ['bundle'], function() {
|
||||
return gulp.src('holder.js')
|
||||
.pipe(uglify())
|
||||
.pipe(rename('holder.min.js'))
|
||||
.pipe(gulp.dest('./'));
|
||||
});
|
||||
|
||||
gulp.task('banner', ['minify'], function() {
|
||||
return gulp.src(['holder*.js'])
|
||||
.pipe(replace('%version%', pkg.version))
|
||||
.pipe(header(banner, {
|
||||
pkg: pkg,
|
||||
year: moment().format('YYYY'),
|
||||
build: build
|
||||
}))
|
||||
.pipe(gulp.dest('./'));
|
||||
});
|
||||
|
||||
gulp.task('beautify', function() {
|
||||
return gulp.src(['src/lib/*.js'])
|
||||
.pipe(beautify())
|
||||
.pipe(gulp.dest('src/lib/'));
|
||||
});
|
||||
|
||||
gulp.task('meteor', function() {
|
||||
return gulp.src('src/meteor/package.js')
|
||||
.pipe(replace('%version%', pkg.version))
|
||||
.pipe(replace('%summary%', pkg.description))
|
||||
.pipe(gulp.dest('./'));
|
||||
});
|
||||
|
||||
gulp.task('watch', function() {
|
||||
gulp.watch('src/*.js', ['default']);
|
||||
});
|
||||
|
||||
gulp.task('default', ['todo', 'bundle', 'minify', 'banner', 'meteor'], function() {
|
||||
gulputil.log('Finished build ' + build);
|
||||
build = generateBuild();
|
||||
});
|
||||
3070
vendor/assets/javascripts/holderjs/holder.js
vendored
Normal file
3070
vendor/assets/javascripts/holderjs/holder.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
12
vendor/assets/javascripts/holderjs/package.js
vendored
Normal file
12
vendor/assets/javascripts/holderjs/package.js
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
Package.describe({
|
||||
summary: 'Holder uses SVG to render image placeholders entirely in browser.',
|
||||
version: '2.9.6',
|
||||
name: 'imsky:holder',
|
||||
git: 'https://github.com/imsky/holder',
|
||||
});
|
||||
|
||||
Package.onUse(function(api) {
|
||||
api.versionsFrom('0.9.0');
|
||||
api.export('Holder', 'client');
|
||||
api.addFiles('holder.js', 'client');
|
||||
});
|
||||
6
vendor/assets/javascripts/holderjs/src/index.js
vendored
Normal file
6
vendor/assets/javascripts/holderjs/src/index.js
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
/*
|
||||
Holder.js - client side image placeholders
|
||||
(c) 2012-2015 Ivan Malopinsky - http://imsky.co
|
||||
*/
|
||||
|
||||
module.exports = require('./lib');
|
||||
202
vendor/assets/javascripts/holderjs/src/lib/color.js
vendored
Normal file
202
vendor/assets/javascripts/holderjs/src/lib/color.js
vendored
Normal file
@@ -0,0 +1,202 @@
|
||||
var Color = function(color, options) {
|
||||
//todo: support rgba, hsla, and rrggbbaa notation
|
||||
//todo: use CIELAB internally
|
||||
//todo: add clamp function (with sign)
|
||||
if (typeof color !== 'string') return;
|
||||
|
||||
this.original = color;
|
||||
|
||||
if (color.charAt(0) === '#') {
|
||||
color = color.slice(1);
|
||||
}
|
||||
|
||||
if (/[^a-f0-9]+/i.test(color)) return;
|
||||
|
||||
if (color.length === 3) {
|
||||
color = color.replace(/./g, '$&$&');
|
||||
}
|
||||
|
||||
if (color.length !== 6) return;
|
||||
|
||||
this.alpha = 1;
|
||||
|
||||
if (options && options.alpha) {
|
||||
this.alpha = options.alpha;
|
||||
}
|
||||
|
||||
this.set(parseInt(color, 16));
|
||||
};
|
||||
|
||||
//todo: jsdocs
|
||||
Color.rgb2hex = function(r, g, b) {
|
||||
function format (decimal) {
|
||||
var hex = (decimal | 0).toString(16);
|
||||
if (decimal < 16) {
|
||||
hex = '0' + hex;
|
||||
}
|
||||
return hex;
|
||||
}
|
||||
|
||||
return [r, g, b].map(format).join('');
|
||||
};
|
||||
|
||||
//todo: jsdocs
|
||||
Color.hsl2rgb = function (h, s, l) {
|
||||
var H = h / 60;
|
||||
var C = (1 - Math.abs(2 * l - 1)) * s;
|
||||
var X = C * (1 - Math.abs(parseInt(H) % 2 - 1));
|
||||
var m = l - (C / 2);
|
||||
|
||||
var r = 0, g = 0, b = 0;
|
||||
|
||||
if (H >= 0 && H < 1) {
|
||||
r = C;
|
||||
g = X;
|
||||
} else if (H >= 1 && H < 2) {
|
||||
r = X;
|
||||
g = C;
|
||||
} else if (H >= 2 && H < 3) {
|
||||
g = C;
|
||||
b = X;
|
||||
} else if (H >= 3 && H < 4) {
|
||||
g = X;
|
||||
b = C;
|
||||
} else if (H >= 4 && H < 5) {
|
||||
r = X;
|
||||
b = C;
|
||||
} else if (H >= 5 && H < 6) {
|
||||
r = C;
|
||||
b = X;
|
||||
}
|
||||
|
||||
r += m;
|
||||
g += m;
|
||||
b += m;
|
||||
|
||||
r = parseInt(r * 255);
|
||||
g = parseInt(g * 255);
|
||||
b = parseInt(b * 255);
|
||||
|
||||
return [r, g, b];
|
||||
};
|
||||
|
||||
/**
|
||||
* Sets the color from a raw RGB888 integer
|
||||
* @param raw RGB888 representation of color
|
||||
*/
|
||||
//todo: refactor into a static method
|
||||
//todo: factor out individual color spaces
|
||||
//todo: add HSL, CIELAB, and CIELUV
|
||||
Color.prototype.set = function (val) {
|
||||
this.raw = val;
|
||||
|
||||
var r = (this.raw & 0xFF0000) >> 16;
|
||||
var g = (this.raw & 0x00FF00) >> 8;
|
||||
var b = (this.raw & 0x0000FF);
|
||||
|
||||
// BT.709
|
||||
var y = 0.2126 * r + 0.7152 * g + 0.0722 * b;
|
||||
var u = -0.09991 * r - 0.33609 * g + 0.436 * b;
|
||||
var v = 0.615 * r - 0.55861 * g - 0.05639 * b;
|
||||
|
||||
this.rgb = {
|
||||
r: r,
|
||||
g: g,
|
||||
b: b
|
||||
};
|
||||
|
||||
this.yuv = {
|
||||
y: y,
|
||||
u: u,
|
||||
v: v
|
||||
};
|
||||
|
||||
return this;
|
||||
};
|
||||
|
||||
/**
|
||||
* Lighten or darken a color
|
||||
* @param multiplier Amount to lighten or darken (-1 to 1)
|
||||
*/
|
||||
Color.prototype.lighten = function(multiplier) {
|
||||
var cm = Math.min(1, Math.max(0, Math.abs(multiplier))) * (multiplier < 0 ? -1 : 1);
|
||||
var bm = (255 * cm) | 0;
|
||||
var cr = Math.min(255, Math.max(0, this.rgb.r + bm));
|
||||
var cg = Math.min(255, Math.max(0, this.rgb.g + bm));
|
||||
var cb = Math.min(255, Math.max(0, this.rgb.b + bm));
|
||||
var hex = Color.rgb2hex(cr, cg, cb);
|
||||
return new Color(hex);
|
||||
};
|
||||
|
||||
/**
|
||||
* Output color in hex format
|
||||
* @param addHash Add a hash character to the beginning of the output
|
||||
*/
|
||||
Color.prototype.toHex = function(addHash) {
|
||||
return (addHash ? '#' : '') + this.raw.toString(16);
|
||||
};
|
||||
|
||||
/**
|
||||
* Returns whether or not current color is lighter than another color
|
||||
* @param color Color to compare against
|
||||
*/
|
||||
Color.prototype.lighterThan = function(color) {
|
||||
if (!(color instanceof Color)) {
|
||||
color = new Color(color);
|
||||
}
|
||||
|
||||
return this.yuv.y > color.yuv.y;
|
||||
};
|
||||
|
||||
/**
|
||||
* Returns the result of mixing current color with another color
|
||||
* @param color Color to mix with
|
||||
* @param multiplier How much to mix with the other color
|
||||
*/
|
||||
/*
|
||||
Color.prototype.mix = function (color, multiplier) {
|
||||
if (!(color instanceof Color)) {
|
||||
color = new Color(color);
|
||||
}
|
||||
|
||||
var r = this.rgb.r;
|
||||
var g = this.rgb.g;
|
||||
var b = this.rgb.b;
|
||||
var a = this.alpha;
|
||||
|
||||
var m = typeof multiplier !== 'undefined' ? multiplier : 0.5;
|
||||
|
||||
//todo: write a lerp function
|
||||
r = r + m * (color.rgb.r - r);
|
||||
g = g + m * (color.rgb.g - g);
|
||||
b = b + m * (color.rgb.b - b);
|
||||
a = a + m * (color.alpha - a);
|
||||
|
||||
return new Color(Color.rgbToHex(r, g, b), {
|
||||
'alpha': a
|
||||
});
|
||||
};
|
||||
*/
|
||||
|
||||
/**
|
||||
* Returns the result of blending another color on top of current color with alpha
|
||||
* @param color Color to blend on top of current color, i.e. "Ca"
|
||||
*/
|
||||
//todo: see if .blendAlpha can be merged into .mix
|
||||
Color.prototype.blendAlpha = function(color) {
|
||||
if (!(color instanceof Color)) {
|
||||
color = new Color(color);
|
||||
}
|
||||
|
||||
var Ca = color;
|
||||
var Cb = this;
|
||||
|
||||
//todo: write alpha blending function
|
||||
var r = Ca.alpha * Ca.rgb.r + (1 - Ca.alpha) * Cb.rgb.r;
|
||||
var g = Ca.alpha * Ca.rgb.g + (1 - Ca.alpha) * Cb.rgb.g;
|
||||
var b = Ca.alpha * Ca.rgb.b + (1 - Ca.alpha) * Cb.rgb.b;
|
||||
|
||||
return new Color(Color.rgb2hex(r, g, b));
|
||||
};
|
||||
|
||||
module.exports = Color;
|
||||
4
vendor/assets/javascripts/holderjs/src/lib/constants.js
vendored
Normal file
4
vendor/assets/javascripts/holderjs/src/lib/constants.js
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
module.exports = {
|
||||
'version': '%version%',
|
||||
'svg_ns': 'http://www.w3.org/2000/svg'
|
||||
};
|
||||
62
vendor/assets/javascripts/holderjs/src/lib/dom.js
vendored
Normal file
62
vendor/assets/javascripts/holderjs/src/lib/dom.js
vendored
Normal file
@@ -0,0 +1,62 @@
|
||||
/**
|
||||
* Generic new DOM element function
|
||||
*
|
||||
* @param tag Tag to create
|
||||
* @param namespace Optional namespace value
|
||||
*/
|
||||
exports.newEl = function(tag, namespace) {
|
||||
if (!global.document) return;
|
||||
|
||||
if (namespace == null) {
|
||||
return global.document.createElement(tag);
|
||||
} else {
|
||||
return global.document.createElementNS(namespace, tag);
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Generic setAttribute function
|
||||
*
|
||||
* @param el Reference to DOM element
|
||||
* @param attrs Object with attribute keys and values
|
||||
*/
|
||||
exports.setAttr = function (el, attrs) {
|
||||
for (var a in attrs) {
|
||||
el.setAttribute(a, attrs[a]);
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Creates a XML document
|
||||
* @private
|
||||
*/
|
||||
exports.createXML = function() {
|
||||
if (!global.DOMParser) return;
|
||||
return new DOMParser().parseFromString('<xml />', 'application/xml');
|
||||
};
|
||||
|
||||
/**
|
||||
* Converts a value into an array of DOM nodes
|
||||
*
|
||||
* @param val A string, a NodeList, a Node, or an HTMLCollection
|
||||
*/
|
||||
exports.getNodeArray = function(val) {
|
||||
var retval = null;
|
||||
if (typeof(val) == 'string') {
|
||||
retval = document.querySelectorAll(val);
|
||||
} else if (global.NodeList && val instanceof global.NodeList) {
|
||||
retval = val;
|
||||
} else if (global.Node && val instanceof global.Node) {
|
||||
retval = [val];
|
||||
} else if (global.HTMLCollection && val instanceof global.HTMLCollection) {
|
||||
retval = val;
|
||||
} else if (val instanceof Array) {
|
||||
retval = val;
|
||||
} else if (val === null) {
|
||||
retval = [];
|
||||
}
|
||||
|
||||
retval = Array.prototype.slice.call(retval);
|
||||
|
||||
return retval;
|
||||
};
|
||||
1198
vendor/assets/javascripts/holderjs/src/lib/index.js
vendored
Normal file
1198
vendor/assets/javascripts/holderjs/src/lib/index.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
64
vendor/assets/javascripts/holderjs/src/lib/renderers/canvas.js
vendored
Normal file
64
vendor/assets/javascripts/holderjs/src/lib/renderers/canvas.js
vendored
Normal file
@@ -0,0 +1,64 @@
|
||||
var DOM = require('../dom');
|
||||
var utils = require('../utils');
|
||||
|
||||
module.exports = (function() {
|
||||
var canvas = DOM.newEl('canvas');
|
||||
var ctx = null;
|
||||
|
||||
return function(sceneGraph) {
|
||||
if (ctx == null) {
|
||||
ctx = canvas.getContext('2d');
|
||||
}
|
||||
|
||||
var dpr = utils.canvasRatio();
|
||||
var root = sceneGraph.root;
|
||||
canvas.width = dpr * root.properties.width;
|
||||
canvas.height = dpr * root.properties.height ;
|
||||
ctx.textBaseline = 'middle';
|
||||
|
||||
var bg = root.children.holderBg;
|
||||
var bgWidth = dpr * bg.width;
|
||||
var bgHeight = dpr * bg.height;
|
||||
//todo: parametrize outline width (e.g. in scene object)
|
||||
var outlineWidth = 2;
|
||||
var outlineOffsetWidth = outlineWidth / 2;
|
||||
|
||||
ctx.fillStyle = bg.properties.fill;
|
||||
ctx.fillRect(0, 0, bgWidth, bgHeight);
|
||||
|
||||
if (bg.properties.outline) {
|
||||
//todo: abstract this into a method
|
||||
ctx.strokeStyle = bg.properties.outline.fill;
|
||||
ctx.lineWidth = bg.properties.outline.width;
|
||||
ctx.moveTo(outlineOffsetWidth, outlineOffsetWidth);
|
||||
// TL, TR, BR, BL
|
||||
ctx.lineTo(bgWidth - outlineOffsetWidth, outlineOffsetWidth);
|
||||
ctx.lineTo(bgWidth - outlineOffsetWidth, bgHeight - outlineOffsetWidth);
|
||||
ctx.lineTo(outlineOffsetWidth, bgHeight - outlineOffsetWidth);
|
||||
ctx.lineTo(outlineOffsetWidth, outlineOffsetWidth);
|
||||
// Diagonals
|
||||
ctx.moveTo(0, outlineOffsetWidth);
|
||||
ctx.lineTo(bgWidth, bgHeight - outlineOffsetWidth);
|
||||
ctx.moveTo(0, bgHeight - outlineOffsetWidth);
|
||||
ctx.lineTo(bgWidth, outlineOffsetWidth);
|
||||
ctx.stroke();
|
||||
}
|
||||
|
||||
var textGroup = root.children.holderTextGroup;
|
||||
ctx.font = textGroup.properties.font.weight + ' ' + (dpr * textGroup.properties.font.size) + textGroup.properties.font.units + ' ' + textGroup.properties.font.family + ', monospace';
|
||||
ctx.fillStyle = textGroup.properties.fill;
|
||||
|
||||
for (var lineKey in textGroup.children) {
|
||||
var line = textGroup.children[lineKey];
|
||||
for (var wordKey in line.children) {
|
||||
var word = line.children[wordKey];
|
||||
var x = dpr * (textGroup.x + line.x + word.x);
|
||||
var y = dpr * (textGroup.y + line.y + word.y + (textGroup.properties.leading / 2));
|
||||
|
||||
ctx.fillText(word.properties.text, x, y);
|
||||
}
|
||||
}
|
||||
|
||||
return canvas.toDataURL('image/png');
|
||||
};
|
||||
})();
|
||||
122
vendor/assets/javascripts/holderjs/src/lib/renderers/svg-dom.js
vendored
Normal file
122
vendor/assets/javascripts/holderjs/src/lib/renderers/svg-dom.js
vendored
Normal file
@@ -0,0 +1,122 @@
|
||||
var SVG = require('../svg');
|
||||
var DOM = require('../dom');
|
||||
var utils = require('../utils');
|
||||
var constants = require('../constants');
|
||||
|
||||
var SVG_NS = constants.svg_ns;
|
||||
|
||||
var generatorComment = '\n' +
|
||||
'Created with Holder.js ' + constants.version + '.\n' +
|
||||
'Learn more at http://holderjs.com\n' +
|
||||
'(c) 2012-2015 Ivan Malopinsky - http://imsky.co\n';
|
||||
|
||||
module.exports = (function() {
|
||||
//Prevent IE <9 from initializing SVG renderer
|
||||
if (!global.XMLSerializer) return;
|
||||
var xml = DOM.createXML();
|
||||
var svg = SVG.initSVG(null, 0, 0);
|
||||
var bgEl = DOM.newEl('rect', SVG_NS);
|
||||
svg.appendChild(bgEl);
|
||||
|
||||
//todo: create a reusable pool for textNodes, resize if more words present
|
||||
|
||||
return function(sceneGraph, renderSettings) {
|
||||
var root = sceneGraph.root;
|
||||
|
||||
SVG.initSVG(svg, root.properties.width, root.properties.height);
|
||||
|
||||
var groups = svg.querySelectorAll('g');
|
||||
|
||||
for (var i = 0; i < groups.length; i++) {
|
||||
groups[i].parentNode.removeChild(groups[i]);
|
||||
}
|
||||
|
||||
var holderURL = renderSettings.holderSettings.flags.holderURL;
|
||||
var holderId = 'holder_' + (Number(new Date()) + 32768 + (0 | Math.random() * 32768)).toString(16);
|
||||
var sceneGroupEl = DOM.newEl('g', SVG_NS);
|
||||
var textGroup = root.children.holderTextGroup;
|
||||
var tgProps = textGroup.properties;
|
||||
var textGroupEl = DOM.newEl('g', SVG_NS);
|
||||
var tpdata = textGroup.textPositionData;
|
||||
var textCSSRule = '#' + holderId + ' text { ' +
|
||||
utils.cssProps({
|
||||
'fill': tgProps.fill,
|
||||
'font-weight': tgProps.font.weight,
|
||||
'font-family': tgProps.font.family + ', monospace',
|
||||
'font-size': tgProps.font.size + tgProps.font.units
|
||||
}) + ' } ';
|
||||
var commentNode = xml.createComment('\n' + 'Source URL: ' + holderURL + generatorComment);
|
||||
var holderCSS = xml.createCDATASection(textCSSRule);
|
||||
var styleEl = svg.querySelector('style');
|
||||
var bg = root.children.holderBg;
|
||||
|
||||
DOM.setAttr(sceneGroupEl, {
|
||||
id: holderId
|
||||
});
|
||||
|
||||
svg.insertBefore(commentNode, svg.firstChild);
|
||||
styleEl.appendChild(holderCSS);
|
||||
|
||||
sceneGroupEl.appendChild(bgEl);
|
||||
|
||||
//todo: abstract this into a cross-browser SVG outline method
|
||||
if (bg.properties.outline) {
|
||||
var outlineEl = DOM.newEl('path', SVG_NS);
|
||||
var outlineWidth = bg.properties.outline.width;
|
||||
var outlineOffsetWidth = outlineWidth / 2;
|
||||
DOM.setAttr(outlineEl, {
|
||||
'd': [
|
||||
'M', outlineOffsetWidth, outlineOffsetWidth,
|
||||
'H', bg.width - outlineOffsetWidth,
|
||||
'V', bg.height - outlineOffsetWidth,
|
||||
'H', outlineOffsetWidth,
|
||||
'V', 0,
|
||||
'M', 0, outlineOffsetWidth,
|
||||
'L', bg.width, bg.height - outlineOffsetWidth,
|
||||
'M', 0, bg.height - outlineOffsetWidth,
|
||||
'L', bg.width, outlineOffsetWidth
|
||||
].join(' '),
|
||||
'stroke-width': bg.properties.outline.width,
|
||||
'stroke': bg.properties.outline.fill,
|
||||
'fill': 'none'
|
||||
});
|
||||
sceneGroupEl.appendChild(outlineEl);
|
||||
}
|
||||
|
||||
sceneGroupEl.appendChild(textGroupEl);
|
||||
svg.appendChild(sceneGroupEl);
|
||||
|
||||
DOM.setAttr(bgEl, {
|
||||
'width': bg.width,
|
||||
'height': bg.height,
|
||||
'fill': bg.properties.fill
|
||||
});
|
||||
|
||||
textGroup.y += tpdata.boundingBox.height * 0.8;
|
||||
|
||||
for (var lineKey in textGroup.children) {
|
||||
var line = textGroup.children[lineKey];
|
||||
for (var wordKey in line.children) {
|
||||
var word = line.children[wordKey];
|
||||
var x = textGroup.x + line.x + word.x;
|
||||
var y = textGroup.y + line.y + word.y;
|
||||
|
||||
var textEl = DOM.newEl('text', SVG_NS);
|
||||
var textNode = document.createTextNode(null);
|
||||
|
||||
DOM.setAttr(textEl, {
|
||||
'x': x,
|
||||
'y': y
|
||||
});
|
||||
|
||||
textNode.nodeValue = word.properties.text;
|
||||
textEl.appendChild(textNode);
|
||||
textGroupEl.appendChild(textEl);
|
||||
}
|
||||
}
|
||||
|
||||
//todo: factor the background check up the chain, perhaps only return reference
|
||||
var svgString = SVG.svgStringToDataURI(SVG.serializeSVG(svg, renderSettings.engineSettings), renderSettings.mode === 'background');
|
||||
return svgString;
|
||||
};
|
||||
})();
|
||||
157
vendor/assets/javascripts/holderjs/src/lib/renderers/svg-text.js
vendored
Normal file
157
vendor/assets/javascripts/holderjs/src/lib/renderers/svg-text.js
vendored
Normal file
@@ -0,0 +1,157 @@
|
||||
var shaven = require('shaven');
|
||||
|
||||
var SVG = require('../svg');
|
||||
var constants = require('../constants');
|
||||
var utils = require('../utils');
|
||||
|
||||
var SVG_NS = constants.svg_ns;
|
||||
|
||||
var templates = {
|
||||
'element': function (options) {
|
||||
var tag = options.tag;
|
||||
var content = options.content || '';
|
||||
delete options.tag;
|
||||
delete options.content;
|
||||
return [tag, content, options];
|
||||
}
|
||||
};
|
||||
|
||||
//todo: deprecate tag arg, infer tag from shape object
|
||||
function convertShape (shape, tag) {
|
||||
return templates.element({
|
||||
'tag': tag,
|
||||
'width': shape.width,
|
||||
'height': shape.height,
|
||||
'fill': shape.properties.fill
|
||||
});
|
||||
}
|
||||
|
||||
function textCss (properties) {
|
||||
return utils.cssProps({
|
||||
'fill': properties.fill,
|
||||
'font-weight': properties.font.weight,
|
||||
'font-family': properties.font.family + ', monospace',
|
||||
'font-size': properties.font.size + properties.font.units
|
||||
});
|
||||
}
|
||||
|
||||
function outlinePath (bgWidth, bgHeight, outlineWidth) {
|
||||
var outlineOffsetWidth = outlineWidth / 2;
|
||||
|
||||
return [
|
||||
'M', outlineOffsetWidth, outlineOffsetWidth,
|
||||
'H', bgWidth - outlineOffsetWidth,
|
||||
'V', bgHeight - outlineOffsetWidth,
|
||||
'H', outlineOffsetWidth,
|
||||
'V', 0,
|
||||
'M', 0, outlineOffsetWidth,
|
||||
'L', bgWidth, bgHeight - outlineOffsetWidth,
|
||||
'M', 0, bgHeight - outlineOffsetWidth,
|
||||
'L', bgWidth, outlineOffsetWidth
|
||||
].join(' ');
|
||||
}
|
||||
|
||||
module.exports = function (sceneGraph, renderSettings) {
|
||||
var engineSettings = renderSettings.engineSettings;
|
||||
var stylesheets = engineSettings.stylesheets;
|
||||
var stylesheetXml = stylesheets.map(function (stylesheet) {
|
||||
return '<?xml-stylesheet rel="stylesheet" href="' + stylesheet + '"?>';
|
||||
}).join('\n');
|
||||
|
||||
var holderId = 'holder_' + Number(new Date()).toString(16);
|
||||
|
||||
var root = sceneGraph.root;
|
||||
var textGroup = root.children.holderTextGroup;
|
||||
|
||||
var css = '#' + holderId + ' text { ' + textCss(textGroup.properties) + ' } ';
|
||||
|
||||
// push text down to be equally vertically aligned with canvas renderer
|
||||
textGroup.y += textGroup.textPositionData.boundingBox.height * 0.8;
|
||||
|
||||
var wordTags = [];
|
||||
|
||||
Object.keys(textGroup.children).forEach(function (lineKey) {
|
||||
var line = textGroup.children[lineKey];
|
||||
|
||||
Object.keys(line.children).forEach(function (wordKey) {
|
||||
var word = line.children[wordKey];
|
||||
var x = textGroup.x + line.x + word.x;
|
||||
var y = textGroup.y + line.y + word.y;
|
||||
var wordTag = templates.element({
|
||||
'tag': 'text',
|
||||
'content': word.properties.text,
|
||||
'x': x,
|
||||
'y': y
|
||||
});
|
||||
|
||||
wordTags.push(wordTag);
|
||||
});
|
||||
});
|
||||
|
||||
var text = templates.element({
|
||||
'tag': 'g',
|
||||
'content': wordTags
|
||||
});
|
||||
|
||||
var outline = null;
|
||||
|
||||
if (root.children.holderBg.properties.outline) {
|
||||
var outlineProperties = root.children.holderBg.properties.outline;
|
||||
outline = templates.element({
|
||||
'tag': 'path',
|
||||
'd': outlinePath(root.children.holderBg.width, root.children.holderBg.height, outlineProperties.width),
|
||||
'stroke-width': outlineProperties.width,
|
||||
'stroke': outlineProperties.fill,
|
||||
'fill': 'none'
|
||||
});
|
||||
}
|
||||
|
||||
var bg = convertShape(root.children.holderBg, 'rect');
|
||||
|
||||
var sceneContent = [];
|
||||
|
||||
sceneContent.push(bg);
|
||||
if (outlineProperties) {
|
||||
sceneContent.push(outline);
|
||||
}
|
||||
sceneContent.push(text);
|
||||
|
||||
var scene = templates.element({
|
||||
'tag': 'g',
|
||||
'id': holderId,
|
||||
'content': sceneContent
|
||||
});
|
||||
|
||||
var style = templates.element({
|
||||
'tag': 'style',
|
||||
//todo: figure out how to add CDATA directive
|
||||
'content': css,
|
||||
'type': 'text/css'
|
||||
});
|
||||
|
||||
var defs = templates.element({
|
||||
'tag': 'defs',
|
||||
'content': style
|
||||
});
|
||||
|
||||
var svg = templates.element({
|
||||
'tag': 'svg',
|
||||
'content': [defs, scene],
|
||||
'width': root.properties.width,
|
||||
'height': root.properties.height,
|
||||
'xmlns': SVG_NS,
|
||||
'viewBox': [0, 0, root.properties.width, root.properties.height].join(' '),
|
||||
'preserveAspectRatio': 'none'
|
||||
});
|
||||
|
||||
var output = shaven(svg);
|
||||
|
||||
if (/\&(x)?#[0-9A-Fa-f]/.test(output[0])) {
|
||||
output[0] = output[0].replace(/&#/gm, '&#');
|
||||
}
|
||||
|
||||
output = stylesheetXml + output[0];
|
||||
|
||||
var svgString = SVG.svgStringToDataURI(output, renderSettings.mode === 'background');
|
||||
return svgString;
|
||||
};
|
||||
105
vendor/assets/javascripts/holderjs/src/lib/scenegraph.js
vendored
Normal file
105
vendor/assets/javascripts/holderjs/src/lib/scenegraph.js
vendored
Normal file
@@ -0,0 +1,105 @@
|
||||
var SceneGraph = function(sceneProperties) {
|
||||
var nodeCount = 1;
|
||||
|
||||
//todo: move merge to helpers section
|
||||
function merge(parent, child) {
|
||||
for (var prop in child) {
|
||||
parent[prop] = child[prop];
|
||||
}
|
||||
return parent;
|
||||
}
|
||||
|
||||
var SceneNode = function(name) {
|
||||
nodeCount++;
|
||||
this.parent = null;
|
||||
this.children = {};
|
||||
this.id = nodeCount;
|
||||
this.name = 'n' + nodeCount;
|
||||
if (typeof name !== 'undefined') {
|
||||
this.name = name;
|
||||
}
|
||||
this.x = this.y = this.z = 0;
|
||||
this.width = this.height = 0;
|
||||
};
|
||||
|
||||
SceneNode.prototype.resize = function(width, height) {
|
||||
if (width != null) {
|
||||
this.width = width;
|
||||
}
|
||||
if (height != null) {
|
||||
this.height = height;
|
||||
}
|
||||
};
|
||||
|
||||
SceneNode.prototype.moveTo = function(x, y, z) {
|
||||
this.x = x != null ? x : this.x;
|
||||
this.y = y != null ? y : this.y;
|
||||
this.z = z != null ? z : this.z;
|
||||
};
|
||||
|
||||
SceneNode.prototype.add = function(child) {
|
||||
var name = child.name;
|
||||
if (typeof this.children[name] === 'undefined') {
|
||||
this.children[name] = child;
|
||||
child.parent = this;
|
||||
} else {
|
||||
throw 'SceneGraph: child already exists: ' + name;
|
||||
}
|
||||
};
|
||||
|
||||
var RootNode = function() {
|
||||
SceneNode.call(this, 'root');
|
||||
this.properties = sceneProperties;
|
||||
};
|
||||
|
||||
RootNode.prototype = new SceneNode();
|
||||
|
||||
var Shape = function(name, props) {
|
||||
SceneNode.call(this, name);
|
||||
this.properties = {
|
||||
'fill': '#000000'
|
||||
};
|
||||
if (typeof props !== 'undefined') {
|
||||
merge(this.properties, props);
|
||||
} else if (typeof name !== 'undefined' && typeof name !== 'string') {
|
||||
throw 'SceneGraph: invalid node name';
|
||||
}
|
||||
};
|
||||
|
||||
Shape.prototype = new SceneNode();
|
||||
|
||||
var Group = function() {
|
||||
Shape.apply(this, arguments);
|
||||
this.type = 'group';
|
||||
};
|
||||
|
||||
Group.prototype = new Shape();
|
||||
|
||||
var Rect = function() {
|
||||
Shape.apply(this, arguments);
|
||||
this.type = 'rect';
|
||||
};
|
||||
|
||||
Rect.prototype = new Shape();
|
||||
|
||||
var Text = function(text) {
|
||||
Shape.call(this);
|
||||
this.type = 'text';
|
||||
this.properties.text = text;
|
||||
};
|
||||
|
||||
Text.prototype = new Shape();
|
||||
|
||||
var root = new RootNode();
|
||||
|
||||
this.Shape = {
|
||||
'Rect': Rect,
|
||||
'Text': Text,
|
||||
'Group': Group
|
||||
};
|
||||
|
||||
this.root = root;
|
||||
return this;
|
||||
};
|
||||
|
||||
module.exports = SceneGraph;
|
||||
109
vendor/assets/javascripts/holderjs/src/lib/svg.js
vendored
Normal file
109
vendor/assets/javascripts/holderjs/src/lib/svg.js
vendored
Normal file
@@ -0,0 +1,109 @@
|
||||
var DOM = require('./dom');
|
||||
|
||||
var SVG_NS = 'http://www.w3.org/2000/svg';
|
||||
var NODE_TYPE_COMMENT = 8;
|
||||
|
||||
/**
|
||||
* Generic SVG element creation function
|
||||
*
|
||||
* @param svg SVG context, set to null if new
|
||||
* @param width Document width
|
||||
* @param height Document height
|
||||
*/
|
||||
exports.initSVG = function(svg, width, height) {
|
||||
var defs, style, initialize = false;
|
||||
|
||||
if (svg && svg.querySelector) {
|
||||
style = svg.querySelector('style');
|
||||
if (style === null) {
|
||||
initialize = true;
|
||||
}
|
||||
} else {
|
||||
svg = DOM.newEl('svg', SVG_NS);
|
||||
initialize = true;
|
||||
}
|
||||
|
||||
if (initialize) {
|
||||
defs = DOM.newEl('defs', SVG_NS);
|
||||
style = DOM.newEl('style', SVG_NS);
|
||||
DOM.setAttr(style, {
|
||||
'type': 'text/css'
|
||||
});
|
||||
defs.appendChild(style);
|
||||
svg.appendChild(defs);
|
||||
}
|
||||
|
||||
//IE throws an exception if this is set and Chrome requires it to be set
|
||||
if (svg.webkitMatchesSelector) {
|
||||
svg.setAttribute('xmlns', SVG_NS);
|
||||
}
|
||||
|
||||
//Remove comment nodes
|
||||
for (var i = 0; i < svg.childNodes.length; i++) {
|
||||
if (svg.childNodes[i].nodeType === NODE_TYPE_COMMENT) {
|
||||
svg.removeChild(svg.childNodes[i]);
|
||||
}
|
||||
}
|
||||
|
||||
//Remove CSS
|
||||
while (style.childNodes.length) {
|
||||
style.removeChild(style.childNodes[0]);
|
||||
}
|
||||
|
||||
DOM.setAttr(svg, {
|
||||
'width': width,
|
||||
'height': height,
|
||||
'viewBox': '0 0 ' + width + ' ' + height,
|
||||
'preserveAspectRatio': 'none'
|
||||
});
|
||||
|
||||
return svg;
|
||||
};
|
||||
|
||||
/**
|
||||
* Converts serialized SVG to a string suitable for data URI use
|
||||
* @param svgString Serialized SVG string
|
||||
* @param [base64] Use base64 encoding for data URI
|
||||
*/
|
||||
exports.svgStringToDataURI = function() {
|
||||
var rawPrefix = 'data:image/svg+xml;charset=UTF-8,';
|
||||
var base64Prefix = 'data:image/svg+xml;charset=UTF-8;base64,';
|
||||
|
||||
return function(svgString, base64) {
|
||||
if (base64) {
|
||||
return base64Prefix + btoa(global.unescape(encodeURIComponent(svgString)));
|
||||
} else {
|
||||
return rawPrefix + encodeURIComponent(svgString);
|
||||
}
|
||||
};
|
||||
}();
|
||||
|
||||
/**
|
||||
* Returns serialized SVG with XML processing instructions
|
||||
*
|
||||
* @param svg SVG context
|
||||
* @param stylesheets CSS stylesheets to include
|
||||
*/
|
||||
exports.serializeSVG = function(svg, engineSettings) {
|
||||
if (!global.XMLSerializer) return;
|
||||
var serializer = new XMLSerializer();
|
||||
var svgCSS = '';
|
||||
var stylesheets = engineSettings.stylesheets;
|
||||
|
||||
//External stylesheets: Processing Instruction method
|
||||
if (engineSettings.svgXMLStylesheet) {
|
||||
var xml = DOM.createXML();
|
||||
//Add <?xml-stylesheet ?> directives
|
||||
for (var i = stylesheets.length - 1; i >= 0; i--) {
|
||||
var csspi = xml.createProcessingInstruction('xml-stylesheet', 'href="' + stylesheets[i] + '" rel="stylesheet"');
|
||||
xml.insertBefore(csspi, xml.firstChild);
|
||||
}
|
||||
|
||||
xml.removeChild(xml.documentElement);
|
||||
svgCSS = serializer.serializeToString(xml);
|
||||
}
|
||||
|
||||
var svgText = serializer.serializeToString(svg);
|
||||
svgText = svgText.replace(/\&(\#[0-9]{2,}\;)/g, '&$1');
|
||||
return svgCSS + svgText;
|
||||
};
|
||||
173
vendor/assets/javascripts/holderjs/src/lib/utils.js
vendored
Normal file
173
vendor/assets/javascripts/holderjs/src/lib/utils.js
vendored
Normal file
@@ -0,0 +1,173 @@
|
||||
/**
|
||||
* Shallow object clone and merge
|
||||
*
|
||||
* @param a Object A
|
||||
* @param b Object B
|
||||
* @returns {Object} New object with all of A's properties, and all of B's properties, overwriting A's properties
|
||||
*/
|
||||
exports.extend = function(a, b) {
|
||||
var c = {};
|
||||
for (var x in a) {
|
||||
if (a.hasOwnProperty(x)) {
|
||||
c[x] = a[x];
|
||||
}
|
||||
}
|
||||
if (b != null) {
|
||||
for (var y in b) {
|
||||
if (b.hasOwnProperty(y)) {
|
||||
c[y] = b[y];
|
||||
}
|
||||
}
|
||||
}
|
||||
return c;
|
||||
};
|
||||
|
||||
/**
|
||||
* Takes a k/v list of CSS properties and returns a rule
|
||||
*
|
||||
* @param props CSS properties object
|
||||
*/
|
||||
exports.cssProps = function(props) {
|
||||
var ret = [];
|
||||
for (var p in props) {
|
||||
if (props.hasOwnProperty(p)) {
|
||||
ret.push(p + ':' + props[p]);
|
||||
}
|
||||
}
|
||||
return ret.join(';');
|
||||
};
|
||||
|
||||
/**
|
||||
* Encodes HTML entities in a string
|
||||
*
|
||||
* @param str Input string
|
||||
*/
|
||||
exports.encodeHtmlEntity = function(str) {
|
||||
var buf = [];
|
||||
var charCode = 0;
|
||||
for (var i = str.length - 1; i >= 0; i--) {
|
||||
charCode = str.charCodeAt(i);
|
||||
if (charCode > 128) {
|
||||
buf.unshift(['&#', charCode, ';'].join(''));
|
||||
} else {
|
||||
buf.unshift(str[i]);
|
||||
}
|
||||
}
|
||||
return buf.join('');
|
||||
};
|
||||
|
||||
/**
|
||||
* Checks if an image exists
|
||||
*
|
||||
* @param src URL of image
|
||||
* @param callback Callback to call once image status has been found
|
||||
*/
|
||||
exports.imageExists = function(src, callback) {
|
||||
var image = new Image();
|
||||
image.onerror = function() {
|
||||
callback.call(this, false);
|
||||
};
|
||||
image.onload = function() {
|
||||
callback.call(this, true);
|
||||
};
|
||||
image.src = src;
|
||||
};
|
||||
|
||||
/**
|
||||
* Decodes HTML entities in a string
|
||||
*
|
||||
* @param str Input string
|
||||
*/
|
||||
exports.decodeHtmlEntity = function(str) {
|
||||
return str.replace(/&#(\d+);/g, function(match, dec) {
|
||||
return String.fromCharCode(dec);
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Returns an element's dimensions if it's visible, `false` otherwise.
|
||||
*
|
||||
* @param el DOM element
|
||||
*/
|
||||
exports.dimensionCheck = function(el) {
|
||||
var dimensions = {
|
||||
height: el.clientHeight,
|
||||
width: el.clientWidth
|
||||
};
|
||||
|
||||
if (dimensions.height && dimensions.width) {
|
||||
return dimensions;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Returns true if value is truthy or if it is "semantically truthy"
|
||||
* @param val
|
||||
*/
|
||||
exports.truthy = function(val) {
|
||||
if (typeof val === 'string') {
|
||||
return val === 'true' || val === 'yes' || val === '1' || val === 'on' || val === '✓';
|
||||
}
|
||||
return !!val;
|
||||
};
|
||||
|
||||
/**
|
||||
* Parses input into a well-formed CSS color
|
||||
* @param val
|
||||
*/
|
||||
exports.parseColor = function(val) {
|
||||
var hexre = /(^(?:#?)[0-9a-f]{6}$)|(^(?:#?)[0-9a-f]{3}$)/i;
|
||||
var rgbre = /^rgb\((\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)$/;
|
||||
var rgbare = /^rgba\((\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(0\.\d{1,}|1)\)$/;
|
||||
|
||||
var match = val.match(hexre);
|
||||
var retval;
|
||||
|
||||
if (match !== null) {
|
||||
retval = match[1] || match[2];
|
||||
if (retval[0] !== '#') {
|
||||
return '#' + retval;
|
||||
} else {
|
||||
return retval;
|
||||
}
|
||||
}
|
||||
|
||||
match = val.match(rgbre);
|
||||
|
||||
if (match !== null) {
|
||||
retval = 'rgb(' + match.slice(1).join(',') + ')';
|
||||
return retval;
|
||||
}
|
||||
|
||||
match = val.match(rgbare);
|
||||
|
||||
if (match !== null) {
|
||||
retval = 'rgba(' + match.slice(1).join(',') + ')';
|
||||
return retval;
|
||||
}
|
||||
|
||||
return null;
|
||||
};
|
||||
|
||||
/**
|
||||
* Provides the correct scaling ratio for canvas drawing operations on HiDPI screens (e.g. Retina displays)
|
||||
*/
|
||||
exports.canvasRatio = function () {
|
||||
var devicePixelRatio = 1;
|
||||
var backingStoreRatio = 1;
|
||||
|
||||
if (global.document) {
|
||||
var canvas = global.document.createElement('canvas');
|
||||
if (canvas.getContext) {
|
||||
var ctx = canvas.getContext('2d');
|
||||
devicePixelRatio = global.devicePixelRatio || 1;
|
||||
backingStoreRatio = ctx.webkitBackingStorePixelRatio || ctx.mozBackingStorePixelRatio || ctx.msBackingStorePixelRatio || ctx.oBackingStorePixelRatio || ctx.backingStorePixelRatio || 1;
|
||||
}
|
||||
}
|
||||
|
||||
return devicePixelRatio / backingStoreRatio;
|
||||
};
|
||||
155
vendor/assets/javascripts/holderjs/src/lib/vendor/ondomready.js
vendored
Normal file
155
vendor/assets/javascripts/holderjs/src/lib/vendor/ondomready.js
vendored
Normal file
@@ -0,0 +1,155 @@
|
||||
/*!
|
||||
* onDomReady.js 1.4.0 (c) 2013 Tubal Martin - MIT license
|
||||
*
|
||||
* Specially modified to work with Holder.js
|
||||
*/
|
||||
|
||||
function _onDomReady(win) {
|
||||
//Lazy loading fix for Firefox < 3.6
|
||||
//http://webreflection.blogspot.com/2009/11/195-chars-to-help-lazy-loading.html
|
||||
if (document.readyState == null && document.addEventListener) {
|
||||
document.addEventListener("DOMContentLoaded", function DOMContentLoaded() {
|
||||
document.removeEventListener("DOMContentLoaded", DOMContentLoaded, false);
|
||||
document.readyState = "complete";
|
||||
}, false);
|
||||
document.readyState = "loading";
|
||||
}
|
||||
|
||||
var doc = win.document,
|
||||
docElem = doc.documentElement,
|
||||
|
||||
LOAD = "load",
|
||||
FALSE = false,
|
||||
ONLOAD = "on"+LOAD,
|
||||
COMPLETE = "complete",
|
||||
READYSTATE = "readyState",
|
||||
ATTACHEVENT = "attachEvent",
|
||||
DETACHEVENT = "detachEvent",
|
||||
ADDEVENTLISTENER = "addEventListener",
|
||||
DOMCONTENTLOADED = "DOMContentLoaded",
|
||||
ONREADYSTATECHANGE = "onreadystatechange",
|
||||
REMOVEEVENTLISTENER = "removeEventListener",
|
||||
|
||||
// W3C Event model
|
||||
w3c = ADDEVENTLISTENER in doc,
|
||||
_top = FALSE,
|
||||
|
||||
// isReady: Is the DOM ready to be used? Set to true once it occurs.
|
||||
isReady = FALSE,
|
||||
|
||||
// Callbacks pending execution until DOM is ready
|
||||
callbacks = [];
|
||||
|
||||
// Handle when the DOM is ready
|
||||
function ready( fn ) {
|
||||
if ( !isReady ) {
|
||||
|
||||
// Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443).
|
||||
if ( !doc.body ) {
|
||||
return defer( ready );
|
||||
}
|
||||
|
||||
// Remember that the DOM is ready
|
||||
isReady = true;
|
||||
|
||||
// Execute all callbacks
|
||||
while ( fn = callbacks.shift() ) {
|
||||
defer( fn );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// The ready event handler
|
||||
function completed( event ) {
|
||||
// readyState === "complete" is good enough for us to call the dom ready in oldIE
|
||||
if ( w3c || event.type === LOAD || doc[READYSTATE] === COMPLETE ) {
|
||||
detach();
|
||||
ready();
|
||||
}
|
||||
}
|
||||
|
||||
// Clean-up method for dom ready events
|
||||
function detach() {
|
||||
if ( w3c ) {
|
||||
doc[REMOVEEVENTLISTENER]( DOMCONTENTLOADED, completed, FALSE );
|
||||
win[REMOVEEVENTLISTENER]( LOAD, completed, FALSE );
|
||||
} else {
|
||||
doc[DETACHEVENT]( ONREADYSTATECHANGE, completed );
|
||||
win[DETACHEVENT]( ONLOAD, completed );
|
||||
}
|
||||
}
|
||||
|
||||
// Defers a function, scheduling it to run after the current call stack has cleared.
|
||||
function defer( fn, wait ) {
|
||||
// Allow 0 to be passed
|
||||
setTimeout( fn, +wait >= 0 ? wait : 1 );
|
||||
}
|
||||
|
||||
// Attach the listeners:
|
||||
|
||||
// Catch cases where onDomReady is called after the browser event has already occurred.
|
||||
// we once tried to use readyState "interactive" here, but it caused issues like the one
|
||||
// discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15
|
||||
if ( doc[READYSTATE] === COMPLETE ) {
|
||||
// Handle it asynchronously to allow scripts the opportunity to delay ready
|
||||
defer( ready );
|
||||
|
||||
// Standards-based browsers support DOMContentLoaded
|
||||
} else if ( w3c ) {
|
||||
// Use the handy event callback
|
||||
doc[ADDEVENTLISTENER]( DOMCONTENTLOADED, completed, FALSE );
|
||||
|
||||
// A fallback to window.onload, that will always work
|
||||
win[ADDEVENTLISTENER]( LOAD, completed, FALSE );
|
||||
|
||||
// If IE event model is used
|
||||
} else {
|
||||
// Ensure firing before onload, maybe late but safe also for iframes
|
||||
doc[ATTACHEVENT]( ONREADYSTATECHANGE, completed );
|
||||
|
||||
// A fallback to window.onload, that will always work
|
||||
win[ATTACHEVENT]( ONLOAD, completed );
|
||||
|
||||
// If IE and not a frame
|
||||
// continually check to see if the document is ready
|
||||
try {
|
||||
_top = win.frameElement == null && docElem;
|
||||
} catch(e) {}
|
||||
|
||||
if ( _top && _top.doScroll ) {
|
||||
(function doScrollCheck() {
|
||||
if ( !isReady ) {
|
||||
try {
|
||||
// Use the trick by Diego Perini
|
||||
// http://javascript.nwbox.com/IEContentLoaded/
|
||||
_top.doScroll("left");
|
||||
} catch(e) {
|
||||
return defer( doScrollCheck, 50 );
|
||||
}
|
||||
|
||||
// detach all dom ready events
|
||||
detach();
|
||||
|
||||
// and execute any waiting functions
|
||||
ready();
|
||||
}
|
||||
})();
|
||||
}
|
||||
}
|
||||
|
||||
function onDomReady( fn ) {
|
||||
// If DOM is ready, execute the function (async), otherwise wait
|
||||
isReady ? defer( fn ) : callbacks.push( fn );
|
||||
}
|
||||
|
||||
// Add version
|
||||
onDomReady.version = "1.4.0";
|
||||
// Add method to check if DOM is ready
|
||||
onDomReady.isReady = function(){
|
||||
return isReady;
|
||||
};
|
||||
|
||||
return onDomReady;
|
||||
}
|
||||
|
||||
module.exports = typeof window !== "undefined" && _onDomReady(window);
|
||||
234
vendor/assets/javascripts/holderjs/src/lib/vendor/polyfills.js
vendored
Normal file
234
vendor/assets/javascripts/holderjs/src/lib/vendor/polyfills.js
vendored
Normal file
@@ -0,0 +1,234 @@
|
||||
(function (window) {
|
||||
if (!window.document) return;
|
||||
var document = window.document;
|
||||
|
||||
//https://github.com/inexorabletash/polyfill/blob/master/web.js
|
||||
if (!document.querySelectorAll) {
|
||||
document.querySelectorAll = function (selectors) {
|
||||
var style = document.createElement('style'), elements = [], element;
|
||||
document.documentElement.firstChild.appendChild(style);
|
||||
document._qsa = [];
|
||||
|
||||
style.styleSheet.cssText = selectors + '{x-qsa:expression(document._qsa && document._qsa.push(this))}';
|
||||
window.scrollBy(0, 0);
|
||||
style.parentNode.removeChild(style);
|
||||
|
||||
while (document._qsa.length) {
|
||||
element = document._qsa.shift();
|
||||
element.style.removeAttribute('x-qsa');
|
||||
elements.push(element);
|
||||
}
|
||||
document._qsa = null;
|
||||
return elements;
|
||||
};
|
||||
}
|
||||
|
||||
if (!document.querySelector) {
|
||||
document.querySelector = function (selectors) {
|
||||
var elements = document.querySelectorAll(selectors);
|
||||
return (elements.length) ? elements[0] : null;
|
||||
};
|
||||
}
|
||||
|
||||
if (!document.getElementsByClassName) {
|
||||
document.getElementsByClassName = function (classNames) {
|
||||
classNames = String(classNames).replace(/^|\s+/g, '.');
|
||||
return document.querySelectorAll(classNames);
|
||||
};
|
||||
}
|
||||
|
||||
//https://github.com/inexorabletash/polyfill
|
||||
// ES5 15.2.3.14 Object.keys ( O )
|
||||
// https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/keys
|
||||
if (!Object.keys) {
|
||||
Object.keys = function (o) {
|
||||
if (o !== Object(o)) { throw TypeError('Object.keys called on non-object'); }
|
||||
var ret = [], p;
|
||||
for (p in o) {
|
||||
if (Object.prototype.hasOwnProperty.call(o, p)) {
|
||||
ret.push(p);
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
};
|
||||
}
|
||||
|
||||
// ES5 15.4.4.18 Array.prototype.forEach ( callbackfn [ , thisArg ] )
|
||||
// From https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/forEach
|
||||
if (!Array.prototype.forEach) {
|
||||
Array.prototype.forEach = function (fun /*, thisp */) {
|
||||
if (this === void 0 || this === null) { throw TypeError(); }
|
||||
|
||||
var t = Object(this);
|
||||
var len = t.length >>> 0;
|
||||
if (typeof fun !== "function") { throw TypeError(); }
|
||||
|
||||
var thisp = arguments[1], i;
|
||||
for (i = 0; i < len; i++) {
|
||||
if (i in t) {
|
||||
fun.call(thisp, t[i], i, t);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
//https://github.com/inexorabletash/polyfill/blob/master/web.js
|
||||
(function (global) {
|
||||
var B64_ALPHABET = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
|
||||
global.atob = global.atob || function (input) {
|
||||
input = String(input);
|
||||
var position = 0,
|
||||
output = [],
|
||||
buffer = 0, bits = 0, n;
|
||||
|
||||
input = input.replace(/\s/g, '');
|
||||
if ((input.length % 4) === 0) { input = input.replace(/=+$/, ''); }
|
||||
if ((input.length % 4) === 1) { throw Error('InvalidCharacterError'); }
|
||||
if (/[^+/0-9A-Za-z]/.test(input)) { throw Error('InvalidCharacterError'); }
|
||||
|
||||
while (position < input.length) {
|
||||
n = B64_ALPHABET.indexOf(input.charAt(position));
|
||||
buffer = (buffer << 6) | n;
|
||||
bits += 6;
|
||||
|
||||
if (bits === 24) {
|
||||
output.push(String.fromCharCode((buffer >> 16) & 0xFF));
|
||||
output.push(String.fromCharCode((buffer >> 8) & 0xFF));
|
||||
output.push(String.fromCharCode(buffer & 0xFF));
|
||||
bits = 0;
|
||||
buffer = 0;
|
||||
}
|
||||
position += 1;
|
||||
}
|
||||
|
||||
if (bits === 12) {
|
||||
buffer = buffer >> 4;
|
||||
output.push(String.fromCharCode(buffer & 0xFF));
|
||||
} else if (bits === 18) {
|
||||
buffer = buffer >> 2;
|
||||
output.push(String.fromCharCode((buffer >> 8) & 0xFF));
|
||||
output.push(String.fromCharCode(buffer & 0xFF));
|
||||
}
|
||||
|
||||
return output.join('');
|
||||
};
|
||||
|
||||
global.btoa = global.btoa || function (input) {
|
||||
input = String(input);
|
||||
var position = 0,
|
||||
out = [],
|
||||
o1, o2, o3,
|
||||
e1, e2, e3, e4;
|
||||
|
||||
if (/[^\x00-\xFF]/.test(input)) { throw Error('InvalidCharacterError'); }
|
||||
|
||||
while (position < input.length) {
|
||||
o1 = input.charCodeAt(position++);
|
||||
o2 = input.charCodeAt(position++);
|
||||
o3 = input.charCodeAt(position++);
|
||||
|
||||
// 111111 112222 222233 333333
|
||||
e1 = o1 >> 2;
|
||||
e2 = ((o1 & 0x3) << 4) | (o2 >> 4);
|
||||
e3 = ((o2 & 0xf) << 2) | (o3 >> 6);
|
||||
e4 = o3 & 0x3f;
|
||||
|
||||
if (position === input.length + 2) {
|
||||
e3 = 64; e4 = 64;
|
||||
}
|
||||
else if (position === input.length + 1) {
|
||||
e4 = 64;
|
||||
}
|
||||
|
||||
out.push(B64_ALPHABET.charAt(e1),
|
||||
B64_ALPHABET.charAt(e2),
|
||||
B64_ALPHABET.charAt(e3),
|
||||
B64_ALPHABET.charAt(e4));
|
||||
}
|
||||
|
||||
return out.join('');
|
||||
};
|
||||
}(window));
|
||||
|
||||
//https://gist.github.com/jimeh/332357
|
||||
if (!Object.prototype.hasOwnProperty){
|
||||
/*jshint -W001, -W103 */
|
||||
Object.prototype.hasOwnProperty = function(prop) {
|
||||
var proto = this.__proto__ || this.constructor.prototype;
|
||||
return (prop in this) && (!(prop in proto) || proto[prop] !== this[prop]);
|
||||
};
|
||||
/*jshint +W001, +W103 */
|
||||
}
|
||||
|
||||
// @license http://opensource.org/licenses/MIT
|
||||
// copyright Paul Irish 2015
|
||||
|
||||
|
||||
// Date.now() is supported everywhere except IE8. For IE8 we use the Date.now polyfill
|
||||
// github.com/Financial-Times/polyfill-service/blob/master/polyfills/Date.now/polyfill.js
|
||||
// as Safari 6 doesn't have support for NavigationTiming, we use a Date.now() timestamp for relative values
|
||||
|
||||
// if you want values similar to what you'd get with real perf.now, place this towards the head of the page
|
||||
// but in reality, you're just getting the delta between now() calls, so it's not terribly important where it's placed
|
||||
|
||||
|
||||
(function(){
|
||||
|
||||
if ('performance' in window === false) {
|
||||
window.performance = {};
|
||||
}
|
||||
|
||||
Date.now = (Date.now || function () { // thanks IE8
|
||||
return new Date().getTime();
|
||||
});
|
||||
|
||||
if ('now' in window.performance === false){
|
||||
|
||||
var nowOffset = Date.now();
|
||||
|
||||
if (performance.timing && performance.timing.navigationStart){
|
||||
nowOffset = performance.timing.navigationStart;
|
||||
}
|
||||
|
||||
window.performance.now = function now(){
|
||||
return Date.now() - nowOffset;
|
||||
};
|
||||
}
|
||||
|
||||
})();
|
||||
|
||||
//requestAnimationFrame polyfill for older Firefox/Chrome versions
|
||||
if (!window.requestAnimationFrame) {
|
||||
if (window.webkitRequestAnimationFrame && window.webkitCancelAnimationFrame) {
|
||||
//https://github.com/Financial-Times/polyfill-service/blob/master/polyfills/requestAnimationFrame/polyfill-webkit.js
|
||||
(function (global) {
|
||||
global.requestAnimationFrame = function (callback) {
|
||||
return webkitRequestAnimationFrame(function () {
|
||||
callback(global.performance.now());
|
||||
});
|
||||
};
|
||||
|
||||
global.cancelAnimationFrame = global.webkitCancelAnimationFrame;
|
||||
}(window));
|
||||
} else if (window.mozRequestAnimationFrame && window.mozCancelAnimationFrame) {
|
||||
//https://github.com/Financial-Times/polyfill-service/blob/master/polyfills/requestAnimationFrame/polyfill-moz.js
|
||||
(function (global) {
|
||||
global.requestAnimationFrame = function (callback) {
|
||||
return mozRequestAnimationFrame(function () {
|
||||
callback(global.performance.now());
|
||||
});
|
||||
};
|
||||
|
||||
global.cancelAnimationFrame = global.mozCancelAnimationFrame;
|
||||
}(window));
|
||||
} else {
|
||||
(function (global) {
|
||||
global.requestAnimationFrame = function (callback) {
|
||||
return global.setTimeout(callback, 1000 / 60);
|
||||
};
|
||||
|
||||
global.cancelAnimationFrame = global.clearTimeout;
|
||||
})(window);
|
||||
}
|
||||
}
|
||||
})(this);
|
||||
102
vendor/assets/javascripts/holderjs/src/lib/vendor/querystring.js
vendored
Normal file
102
vendor/assets/javascripts/holderjs/src/lib/vendor/querystring.js
vendored
Normal file
@@ -0,0 +1,102 @@
|
||||
//Modified version of component/querystring
|
||||
//Changes: updated dependencies, dot notation parsing, JSHint fixes
|
||||
//Fork at https://github.com/imsky/querystring
|
||||
|
||||
/**
|
||||
* Module dependencies.
|
||||
*/
|
||||
|
||||
var encode = encodeURIComponent;
|
||||
var decode = decodeURIComponent;
|
||||
var trim = require('trim');
|
||||
var type = require('component-type');
|
||||
|
||||
var arrayRegex = /(\w+)\[(\d+)\]/;
|
||||
var objectRegex = /\w+\.\w+/;
|
||||
|
||||
/**
|
||||
* Parse the given query `str`.
|
||||
*
|
||||
* @param {String} str
|
||||
* @return {Object}
|
||||
* @api public
|
||||
*/
|
||||
|
||||
exports.parse = function(str){
|
||||
if ('string' !== typeof str) return {};
|
||||
|
||||
str = trim(str);
|
||||
if ('' === str) return {};
|
||||
if ('?' === str.charAt(0)) str = str.slice(1);
|
||||
|
||||
var obj = {};
|
||||
var pairs = str.split('&');
|
||||
for (var i = 0; i < pairs.length; i++) {
|
||||
var parts = pairs[i].split('=');
|
||||
var key = decode(parts[0]);
|
||||
var m, ctx, prop;
|
||||
|
||||
if (m = arrayRegex.exec(key)) {
|
||||
obj[m[1]] = obj[m[1]] || [];
|
||||
obj[m[1]][m[2]] = decode(parts[1]);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (m = objectRegex.test(key)) {
|
||||
m = key.split('.');
|
||||
ctx = obj;
|
||||
|
||||
while (m.length) {
|
||||
prop = m.shift();
|
||||
|
||||
if (!prop.length) continue;
|
||||
|
||||
if (!ctx[prop]) {
|
||||
ctx[prop] = {};
|
||||
} else if (ctx[prop] && typeof ctx[prop] !== 'object') {
|
||||
break;
|
||||
}
|
||||
|
||||
if (!m.length) {
|
||||
ctx[prop] = decode(parts[1]);
|
||||
}
|
||||
|
||||
ctx = ctx[prop];
|
||||
}
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
obj[parts[0]] = null == parts[1] ? '' : decode(parts[1]);
|
||||
}
|
||||
|
||||
return obj;
|
||||
};
|
||||
|
||||
/**
|
||||
* Stringify the given `obj`.
|
||||
*
|
||||
* @param {Object} obj
|
||||
* @return {String}
|
||||
* @api public
|
||||
*/
|
||||
|
||||
exports.stringify = function(obj){
|
||||
if (!obj) return '';
|
||||
var pairs = [];
|
||||
|
||||
for (var key in obj) {
|
||||
var value = obj[key];
|
||||
|
||||
if ('array' == type(value)) {
|
||||
for (var i = 0; i < value.length; ++i) {
|
||||
pairs.push(encode(key + '[' + i + ']') + '=' + encode(value[i]));
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
pairs.push(encode(key) + '=' + encode(obj[key]));
|
||||
}
|
||||
|
||||
return pairs.join('&');
|
||||
};
|
||||
12
vendor/assets/javascripts/holderjs/src/meteor/package.js
vendored
Normal file
12
vendor/assets/javascripts/holderjs/src/meteor/package.js
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
Package.describe({
|
||||
summary: '%summary%',
|
||||
version: '%version%',
|
||||
name: 'imsky:holder',
|
||||
git: 'https://github.com/imsky/holder',
|
||||
});
|
||||
|
||||
Package.onUse(function(api) {
|
||||
api.versionsFrom('0.9.0');
|
||||
api.export('Holder', 'client');
|
||||
api.addFiles('holder.js', 'client');
|
||||
});
|
||||
5
vendor/assets/javascripts/holderjs/src/meteor/shim.js
vendored
Normal file
5
vendor/assets/javascripts/holderjs/src/meteor/shim.js
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
(function(ctx, isMeteorPackage) {
|
||||
if (isMeteorPackage) {
|
||||
Holder = ctx.Holder;
|
||||
}
|
||||
})(this, typeof Meteor !== 'undefined' && typeof Package !== 'undefined');
|
||||
3050
vendor/assets/javascripts/holderjs/test/holder.js
vendored
Normal file
3050
vendor/assets/javascripts/holderjs/test/holder.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
19
vendor/assets/javascripts/holderjs/test/index.js
vendored
Normal file
19
vendor/assets/javascripts/holderjs/test/index.js
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
var runner = require('./runner');
|
||||
var server = require('node-http-server');
|
||||
|
||||
server.deploy({
|
||||
'port': 8000,
|
||||
'root': __dirname
|
||||
});
|
||||
|
||||
runner({
|
||||
'browserName': 'chrome'
|
||||
}, function (err, retval) {
|
||||
console.log('Test result: ', retval);
|
||||
|
||||
if (!retval) {
|
||||
process.exitCode = -1;
|
||||
}
|
||||
|
||||
process.exit();
|
||||
});
|
||||
15
vendor/assets/javascripts/holderjs/test/phantom.js
vendored
Normal file
15
vendor/assets/javascripts/holderjs/test/phantom.js
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
var page = require('webpage').create();
|
||||
|
||||
page.onConsoleMessage = function (message) {
|
||||
console.log('Page: ', message);
|
||||
};
|
||||
|
||||
page.open('index.html', function (status) {
|
||||
console.log(status);
|
||||
|
||||
if (status === 'success') {
|
||||
page.render('phantom.png');
|
||||
}
|
||||
|
||||
phantom.exit();
|
||||
});
|
||||
3050
vendor/assets/javascripts/holderjs/test/renderperf/releases/holder-master/holder.js
vendored
Normal file
3050
vendor/assets/javascripts/holderjs/test/renderperf/releases/holder-master/holder.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
37
vendor/assets/javascripts/holderjs/test/runner.js
vendored
Normal file
37
vendor/assets/javascripts/holderjs/test/runner.js
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
var client = require('webdriverio');
|
||||
|
||||
module.exports = function (options, cb) {
|
||||
var retval = true;
|
||||
|
||||
client.remote({
|
||||
'user': process.env.SAUCE_USERNAME,
|
||||
'key': process.env.SAUCE_ACCESS_KEY,
|
||||
'host': 'localhost',
|
||||
'port': 4445,
|
||||
'desiredCapabilities': {
|
||||
'browserName': options.browserName,
|
||||
'tunnel-identifier': process.env.TRAVIS_JOB_NUMBER,
|
||||
'name': 'Holder.js Test',
|
||||
'tags': [options.browserName]
|
||||
}
|
||||
})
|
||||
.init()
|
||||
.url('http://localhost:8000')
|
||||
.execute(function () {
|
||||
var expectImages = document.querySelectorAll('img').length - document.querySelectorAll('img[data-exclude]').length;
|
||||
var renderedImages = document.querySelectorAll('img[data-holder-rendered]').length;
|
||||
return {'expected': expectImages, 'rendered': renderedImages};
|
||||
}, function (err, ret) {
|
||||
var expected = ret.value.expected;
|
||||
var rendered = ret.value.rendered;
|
||||
console.log('Expected', expected);
|
||||
console.log('Rendered', rendered);
|
||||
if (expected !== rendered) {
|
||||
retval = false;
|
||||
}
|
||||
})
|
||||
.pause(15 * 1000)
|
||||
.end(function () {
|
||||
cb(null, retval);
|
||||
});
|
||||
};
|
||||
1
vendor/assets/javascripts/jquery-smooth-scroll.js
vendored
Normal file
1
vendor/assets/javascripts/jquery-smooth-scroll.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
//= require jquery-smooth-scroll/jquery.smooth-scroll.js
|
||||
358
vendor/assets/javascripts/jquery-smooth-scroll/jquery.smooth-scroll.js
vendored
Normal file
358
vendor/assets/javascripts/jquery-smooth-scroll/jquery.smooth-scroll.js
vendored
Normal file
@@ -0,0 +1,358 @@
|
||||
/*!
|
||||
* jQuery Smooth Scroll - v2.2.0 - 2017-05-05
|
||||
* https://github.com/kswedberg/jquery-smooth-scroll
|
||||
* Copyright (c) 2017 Karl Swedberg
|
||||
* Licensed MIT
|
||||
*/
|
||||
|
||||
(function(factory) {
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
// AMD. Register as an anonymous module.
|
||||
define(['jquery'], factory);
|
||||
} else if (typeof module === 'object' && module.exports) {
|
||||
// CommonJS
|
||||
factory(require('jquery'));
|
||||
} else {
|
||||
// Browser globals
|
||||
factory(jQuery);
|
||||
}
|
||||
}(function($) {
|
||||
|
||||
var version = '2.2.0';
|
||||
var optionOverrides = {};
|
||||
var defaults = {
|
||||
exclude: [],
|
||||
excludeWithin: [],
|
||||
offset: 0,
|
||||
|
||||
// one of 'top' or 'left'
|
||||
direction: 'top',
|
||||
|
||||
// if set, bind click events through delegation
|
||||
// supported since jQuery 1.4.2
|
||||
delegateSelector: null,
|
||||
|
||||
// jQuery set of elements you wish to scroll (for $.smoothScroll).
|
||||
// if null (default), $('html, body').firstScrollable() is used.
|
||||
scrollElement: null,
|
||||
|
||||
// only use if you want to override default behavior
|
||||
scrollTarget: null,
|
||||
|
||||
// automatically focus the target element after scrolling to it
|
||||
autoFocus: false,
|
||||
|
||||
// fn(opts) function to be called before scrolling occurs.
|
||||
// `this` is the element(s) being scrolled
|
||||
beforeScroll: function() {},
|
||||
|
||||
// fn(opts) function to be called after scrolling occurs.
|
||||
// `this` is the triggering element
|
||||
afterScroll: function() {},
|
||||
|
||||
// easing name. jQuery comes with "swing" and "linear." For others, you'll need an easing plugin
|
||||
// from jQuery UI or elsewhere
|
||||
easing: 'swing',
|
||||
|
||||
// speed can be a number or 'auto'
|
||||
// if 'auto', the speed will be calculated based on the formula:
|
||||
// (current scroll position - target scroll position) / autoCoeffic
|
||||
speed: 400,
|
||||
|
||||
// coefficient for "auto" speed
|
||||
autoCoefficient: 2,
|
||||
|
||||
// $.fn.smoothScroll only: whether to prevent the default click action
|
||||
preventDefault: true
|
||||
};
|
||||
|
||||
var getScrollable = function(opts) {
|
||||
var scrollable = [];
|
||||
var scrolled = false;
|
||||
var dir = opts.dir && opts.dir === 'left' ? 'scrollLeft' : 'scrollTop';
|
||||
|
||||
this.each(function() {
|
||||
var el = $(this);
|
||||
|
||||
if (this === document || this === window) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (document.scrollingElement && (this === document.documentElement || this === document.body)) {
|
||||
scrollable.push(document.scrollingElement);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
if (el[dir]() > 0) {
|
||||
scrollable.push(this);
|
||||
} else {
|
||||
// if scroll(Top|Left) === 0, nudge the element 1px and see if it moves
|
||||
el[dir](1);
|
||||
scrolled = el[dir]() > 0;
|
||||
|
||||
if (scrolled) {
|
||||
scrollable.push(this);
|
||||
}
|
||||
// then put it back, of course
|
||||
el[dir](0);
|
||||
}
|
||||
});
|
||||
|
||||
if (!scrollable.length) {
|
||||
this.each(function() {
|
||||
// If no scrollable elements and <html> has scroll-behavior:smooth because
|
||||
// "When this property is specified on the root element, it applies to the viewport instead."
|
||||
// and "The scroll-behavior property of the … body element is *not* propagated to the viewport."
|
||||
// → https://drafts.csswg.org/cssom-view/#propdef-scroll-behavior
|
||||
if (this === document.documentElement && $(this).css('scrollBehavior') === 'smooth') {
|
||||
scrollable = [this];
|
||||
}
|
||||
|
||||
// If still no scrollable elements, fall back to <body>,
|
||||
// if it's in the jQuery collection
|
||||
// (doing this because Safari sets scrollTop async,
|
||||
// so can't set it to 1 and immediately get the value.)
|
||||
if (!scrollable.length && this.nodeName === 'BODY') {
|
||||
scrollable = [this];
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Use the first scrollable element if we're calling firstScrollable()
|
||||
if (opts.el === 'first' && scrollable.length > 1) {
|
||||
scrollable = [scrollable[0]];
|
||||
}
|
||||
|
||||
return scrollable;
|
||||
};
|
||||
|
||||
var rRelative = /^([\-\+]=)(\d+)/;
|
||||
|
||||
$.fn.extend({
|
||||
scrollable: function(dir) {
|
||||
var scrl = getScrollable.call(this, {dir: dir});
|
||||
|
||||
return this.pushStack(scrl);
|
||||
},
|
||||
firstScrollable: function(dir) {
|
||||
var scrl = getScrollable.call(this, {el: 'first', dir: dir});
|
||||
|
||||
return this.pushStack(scrl);
|
||||
},
|
||||
|
||||
smoothScroll: function(options, extra) {
|
||||
options = options || {};
|
||||
|
||||
if (options === 'options') {
|
||||
if (!extra) {
|
||||
return this.first().data('ssOpts');
|
||||
}
|
||||
|
||||
return this.each(function() {
|
||||
var $this = $(this);
|
||||
var opts = $.extend($this.data('ssOpts') || {}, extra);
|
||||
|
||||
$(this).data('ssOpts', opts);
|
||||
});
|
||||
}
|
||||
|
||||
var opts = $.extend({}, $.fn.smoothScroll.defaults, options);
|
||||
|
||||
var clickHandler = function(event) {
|
||||
var escapeSelector = function(str) {
|
||||
return str.replace(/(:|\.|\/)/g, '\\$1');
|
||||
};
|
||||
|
||||
var link = this;
|
||||
var $link = $(this);
|
||||
var thisOpts = $.extend({}, opts, $link.data('ssOpts') || {});
|
||||
var exclude = opts.exclude;
|
||||
var excludeWithin = thisOpts.excludeWithin;
|
||||
var elCounter = 0;
|
||||
var ewlCounter = 0;
|
||||
var include = true;
|
||||
var clickOpts = {};
|
||||
var locationPath = $.smoothScroll.filterPath(location.pathname);
|
||||
var linkPath = $.smoothScroll.filterPath(link.pathname);
|
||||
var hostMatch = location.hostname === link.hostname || !link.hostname;
|
||||
var pathMatch = thisOpts.scrollTarget || (linkPath === locationPath);
|
||||
var thisHash = escapeSelector(link.hash);
|
||||
|
||||
if (thisHash && !$(thisHash).length) {
|
||||
include = false;
|
||||
}
|
||||
|
||||
if (!thisOpts.scrollTarget && (!hostMatch || !pathMatch || !thisHash)) {
|
||||
include = false;
|
||||
} else {
|
||||
while (include && elCounter < exclude.length) {
|
||||
if ($link.is(escapeSelector(exclude[elCounter++]))) {
|
||||
include = false;
|
||||
}
|
||||
}
|
||||
|
||||
while (include && ewlCounter < excludeWithin.length) {
|
||||
if ($link.closest(excludeWithin[ewlCounter++]).length) {
|
||||
include = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (include) {
|
||||
if (thisOpts.preventDefault) {
|
||||
event.preventDefault();
|
||||
}
|
||||
|
||||
$.extend(clickOpts, thisOpts, {
|
||||
scrollTarget: thisOpts.scrollTarget || thisHash,
|
||||
link: link
|
||||
});
|
||||
|
||||
$.smoothScroll(clickOpts);
|
||||
}
|
||||
};
|
||||
|
||||
if (options.delegateSelector !== null) {
|
||||
this
|
||||
.off('click.smoothscroll', options.delegateSelector)
|
||||
.on('click.smoothscroll', options.delegateSelector, clickHandler);
|
||||
} else {
|
||||
this
|
||||
.off('click.smoothscroll')
|
||||
.on('click.smoothscroll', clickHandler);
|
||||
}
|
||||
|
||||
return this;
|
||||
}
|
||||
});
|
||||
|
||||
var getExplicitOffset = function(val) {
|
||||
var explicit = {relative: ''};
|
||||
var parts = typeof val === 'string' && rRelative.exec(val);
|
||||
|
||||
if (typeof val === 'number') {
|
||||
explicit.px = val;
|
||||
} else if (parts) {
|
||||
explicit.relative = parts[1];
|
||||
explicit.px = parseFloat(parts[2]) || 0;
|
||||
}
|
||||
|
||||
return explicit;
|
||||
};
|
||||
|
||||
var onAfterScroll = function(opts) {
|
||||
var $tgt = $(opts.scrollTarget);
|
||||
|
||||
if (opts.autoFocus && $tgt.length) {
|
||||
$tgt[0].focus();
|
||||
|
||||
if (!$tgt.is(document.activeElement)) {
|
||||
$tgt.prop({tabIndex: -1});
|
||||
$tgt[0].focus();
|
||||
}
|
||||
}
|
||||
|
||||
opts.afterScroll.call(opts.link, opts);
|
||||
};
|
||||
|
||||
$.smoothScroll = function(options, px) {
|
||||
if (options === 'options' && typeof px === 'object') {
|
||||
return $.extend(optionOverrides, px);
|
||||
}
|
||||
var opts, $scroller, speed, delta;
|
||||
var explicitOffset = getExplicitOffset(options);
|
||||
var scrollTargetOffset = {};
|
||||
var scrollerOffset = 0;
|
||||
var offPos = 'offset';
|
||||
var scrollDir = 'scrollTop';
|
||||
var aniProps = {};
|
||||
var aniOpts = {};
|
||||
|
||||
if (explicitOffset.px) {
|
||||
opts = $.extend({link: null}, $.fn.smoothScroll.defaults, optionOverrides);
|
||||
} else {
|
||||
opts = $.extend({link: null}, $.fn.smoothScroll.defaults, options || {}, optionOverrides);
|
||||
|
||||
if (opts.scrollElement) {
|
||||
offPos = 'position';
|
||||
|
||||
if (opts.scrollElement.css('position') === 'static') {
|
||||
opts.scrollElement.css('position', 'relative');
|
||||
}
|
||||
}
|
||||
|
||||
if (px) {
|
||||
explicitOffset = getExplicitOffset(px);
|
||||
}
|
||||
}
|
||||
|
||||
scrollDir = opts.direction === 'left' ? 'scrollLeft' : scrollDir;
|
||||
|
||||
if (opts.scrollElement) {
|
||||
$scroller = opts.scrollElement;
|
||||
|
||||
if (!explicitOffset.px && !(/^(?:HTML|BODY)$/).test($scroller[0].nodeName)) {
|
||||
scrollerOffset = $scroller[scrollDir]();
|
||||
}
|
||||
} else {
|
||||
$scroller = $('html, body').firstScrollable(opts.direction);
|
||||
}
|
||||
|
||||
// beforeScroll callback function must fire before calculating offset
|
||||
opts.beforeScroll.call($scroller, opts);
|
||||
|
||||
scrollTargetOffset = explicitOffset.px ? explicitOffset : {
|
||||
relative: '',
|
||||
px: ($(opts.scrollTarget)[offPos]() && $(opts.scrollTarget)[offPos]()[opts.direction]) || 0
|
||||
};
|
||||
|
||||
aniProps[scrollDir] = scrollTargetOffset.relative + (scrollTargetOffset.px + scrollerOffset + opts.offset);
|
||||
|
||||
speed = opts.speed;
|
||||
|
||||
// automatically calculate the speed of the scroll based on distance / coefficient
|
||||
if (speed === 'auto') {
|
||||
|
||||
// $scroller[scrollDir]() is position before scroll, aniProps[scrollDir] is position after
|
||||
// When delta is greater, speed will be greater.
|
||||
delta = Math.abs(aniProps[scrollDir] - $scroller[scrollDir]());
|
||||
|
||||
// Divide the delta by the coefficient
|
||||
speed = delta / opts.autoCoefficient;
|
||||
}
|
||||
|
||||
aniOpts = {
|
||||
duration: speed,
|
||||
easing: opts.easing,
|
||||
complete: function() {
|
||||
onAfterScroll(opts);
|
||||
}
|
||||
};
|
||||
|
||||
if (opts.step) {
|
||||
aniOpts.step = opts.step;
|
||||
}
|
||||
|
||||
if ($scroller.length) {
|
||||
$scroller.stop().animate(aniProps, aniOpts);
|
||||
} else {
|
||||
onAfterScroll(opts);
|
||||
}
|
||||
};
|
||||
|
||||
$.smoothScroll.version = version;
|
||||
$.smoothScroll.filterPath = function(string) {
|
||||
string = string || '';
|
||||
|
||||
return string
|
||||
.replace(/^\//, '')
|
||||
.replace(/(?:index|default).[a-zA-Z]{3,4}$/, '')
|
||||
.replace(/\/$/, '');
|
||||
};
|
||||
|
||||
// default options
|
||||
$.fn.smoothScroll.defaults = defaults;
|
||||
|
||||
}));
|
||||
|
||||
1
vendor/assets/javascripts/markdown.js
vendored
Normal file
1
vendor/assets/javascripts/markdown.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
//= require markdown/markdown.js
|
||||
3
vendor/assets/javascripts/markdown/index.js
vendored
Normal file
3
vendor/assets/javascripts/markdown/index.js
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
// super simple module for the most common nodejs use case.
|
||||
exports.markdown = require("./markdown");
|
||||
exports.parse = exports.markdown.toHTML;
|
||||
1725
vendor/assets/javascripts/markdown/markdown.js
vendored
Normal file
1725
vendor/assets/javascripts/markdown/markdown.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1
vendor/assets/javascripts/momentjs.js
vendored
Normal file
1
vendor/assets/javascripts/momentjs.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
//= require momentjs/moment.js
|
||||
71
vendor/assets/javascripts/momentjs/dist/locale/af.js
vendored
Normal file
71
vendor/assets/javascripts/momentjs/dist/locale/af.js
vendored
Normal file
@@ -0,0 +1,71 @@
|
||||
//! moment.js locale configuration
|
||||
//! locale : Afrikaans [af]
|
||||
//! author : Werner Mollentze : https://github.com/wernerm
|
||||
|
||||
import moment from '../moment';
|
||||
|
||||
export default moment.defineLocale('af', {
|
||||
months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split(
|
||||
'_'
|
||||
),
|
||||
monthsShort: 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'),
|
||||
weekdays: 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split(
|
||||
'_'
|
||||
),
|
||||
weekdaysShort: 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'),
|
||||
weekdaysMin: 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'),
|
||||
meridiemParse: /vm|nm/i,
|
||||
isPM: function (input) {
|
||||
return /^nm$/i.test(input);
|
||||
},
|
||||
meridiem: function (hours, minutes, isLower) {
|
||||
if (hours < 12) {
|
||||
return isLower ? 'vm' : 'VM';
|
||||
} else {
|
||||
return isLower ? 'nm' : 'NM';
|
||||
}
|
||||
},
|
||||
longDateFormat: {
|
||||
LT: 'HH:mm',
|
||||
LTS: 'HH:mm:ss',
|
||||
L: 'DD/MM/YYYY',
|
||||
LL: 'D MMMM YYYY',
|
||||
LLL: 'D MMMM YYYY HH:mm',
|
||||
LLLL: 'dddd, D MMMM YYYY HH:mm',
|
||||
},
|
||||
calendar: {
|
||||
sameDay: '[Vandag om] LT',
|
||||
nextDay: '[Môre om] LT',
|
||||
nextWeek: 'dddd [om] LT',
|
||||
lastDay: '[Gister om] LT',
|
||||
lastWeek: '[Laas] dddd [om] LT',
|
||||
sameElse: 'L',
|
||||
},
|
||||
relativeTime: {
|
||||
future: 'oor %s',
|
||||
past: '%s gelede',
|
||||
s: "'n paar sekondes",
|
||||
ss: '%d sekondes',
|
||||
m: "'n minuut",
|
||||
mm: '%d minute',
|
||||
h: "'n uur",
|
||||
hh: '%d ure',
|
||||
d: "'n dag",
|
||||
dd: '%d dae',
|
||||
M: "'n maand",
|
||||
MM: '%d maande',
|
||||
y: "'n jaar",
|
||||
yy: '%d jaar',
|
||||
},
|
||||
dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/,
|
||||
ordinal: function (number) {
|
||||
return (
|
||||
number +
|
||||
(number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')
|
||||
); // Thanks to Joris Röling : https://github.com/jjupiter
|
||||
},
|
||||
week: {
|
||||
dow: 1, // Maandag is die eerste dag van die week.
|
||||
doy: 4, // Die week wat die 4de Januarie bevat is die eerste week van die jaar.
|
||||
},
|
||||
});
|
||||
156
vendor/assets/javascripts/momentjs/dist/locale/ar-dz.js
vendored
Normal file
156
vendor/assets/javascripts/momentjs/dist/locale/ar-dz.js
vendored
Normal file
@@ -0,0 +1,156 @@
|
||||
//! moment.js locale configuration
|
||||
//! locale : Arabic (Algeria) [ar-dz]
|
||||
//! author : Amine Roukh: https://github.com/Amine27
|
||||
//! author : Abdel Said: https://github.com/abdelsaid
|
||||
//! author : Ahmed Elkhatib
|
||||
//! author : forabi https://github.com/forabi
|
||||
//! author : Noureddine LOUAHEDJ : https://github.com/noureddinem
|
||||
|
||||
import moment from '../moment';
|
||||
|
||||
var pluralForm = function (n) {
|
||||
return n === 0
|
||||
? 0
|
||||
: n === 1
|
||||
? 1
|
||||
: n === 2
|
||||
? 2
|
||||
: n % 100 >= 3 && n % 100 <= 10
|
||||
? 3
|
||||
: n % 100 >= 11
|
||||
? 4
|
||||
: 5;
|
||||
},
|
||||
plurals = {
|
||||
s: [
|
||||
'أقل من ثانية',
|
||||
'ثانية واحدة',
|
||||
['ثانيتان', 'ثانيتين'],
|
||||
'%d ثوان',
|
||||
'%d ثانية',
|
||||
'%d ثانية',
|
||||
],
|
||||
m: [
|
||||
'أقل من دقيقة',
|
||||
'دقيقة واحدة',
|
||||
['دقيقتان', 'دقيقتين'],
|
||||
'%d دقائق',
|
||||
'%d دقيقة',
|
||||
'%d دقيقة',
|
||||
],
|
||||
h: [
|
||||
'أقل من ساعة',
|
||||
'ساعة واحدة',
|
||||
['ساعتان', 'ساعتين'],
|
||||
'%d ساعات',
|
||||
'%d ساعة',
|
||||
'%d ساعة',
|
||||
],
|
||||
d: [
|
||||
'أقل من يوم',
|
||||
'يوم واحد',
|
||||
['يومان', 'يومين'],
|
||||
'%d أيام',
|
||||
'%d يومًا',
|
||||
'%d يوم',
|
||||
],
|
||||
M: [
|
||||
'أقل من شهر',
|
||||
'شهر واحد',
|
||||
['شهران', 'شهرين'],
|
||||
'%d أشهر',
|
||||
'%d شهرا',
|
||||
'%d شهر',
|
||||
],
|
||||
y: [
|
||||
'أقل من عام',
|
||||
'عام واحد',
|
||||
['عامان', 'عامين'],
|
||||
'%d أعوام',
|
||||
'%d عامًا',
|
||||
'%d عام',
|
||||
],
|
||||
},
|
||||
pluralize = function (u) {
|
||||
return function (number, withoutSuffix, string, isFuture) {
|
||||
var f = pluralForm(number),
|
||||
str = plurals[u][pluralForm(number)];
|
||||
if (f === 2) {
|
||||
str = str[withoutSuffix ? 0 : 1];
|
||||
}
|
||||
return str.replace(/%d/i, number);
|
||||
};
|
||||
},
|
||||
months = [
|
||||
'جانفي',
|
||||
'فيفري',
|
||||
'مارس',
|
||||
'أفريل',
|
||||
'ماي',
|
||||
'جوان',
|
||||
'جويلية',
|
||||
'أوت',
|
||||
'سبتمبر',
|
||||
'أكتوبر',
|
||||
'نوفمبر',
|
||||
'ديسمبر',
|
||||
];
|
||||
|
||||
export default moment.defineLocale('ar-dz', {
|
||||
months: months,
|
||||
monthsShort: months,
|
||||
weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
|
||||
weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
|
||||
weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
|
||||
weekdaysParseExact: true,
|
||||
longDateFormat: {
|
||||
LT: 'HH:mm',
|
||||
LTS: 'HH:mm:ss',
|
||||
L: 'D/\u200FM/\u200FYYYY',
|
||||
LL: 'D MMMM YYYY',
|
||||
LLL: 'D MMMM YYYY HH:mm',
|
||||
LLLL: 'dddd D MMMM YYYY HH:mm',
|
||||
},
|
||||
meridiemParse: /ص|م/,
|
||||
isPM: function (input) {
|
||||
return 'م' === input;
|
||||
},
|
||||
meridiem: function (hour, minute, isLower) {
|
||||
if (hour < 12) {
|
||||
return 'ص';
|
||||
} else {
|
||||
return 'م';
|
||||
}
|
||||
},
|
||||
calendar: {
|
||||
sameDay: '[اليوم عند الساعة] LT',
|
||||
nextDay: '[غدًا عند الساعة] LT',
|
||||
nextWeek: 'dddd [عند الساعة] LT',
|
||||
lastDay: '[أمس عند الساعة] LT',
|
||||
lastWeek: 'dddd [عند الساعة] LT',
|
||||
sameElse: 'L',
|
||||
},
|
||||
relativeTime: {
|
||||
future: 'بعد %s',
|
||||
past: 'منذ %s',
|
||||
s: pluralize('s'),
|
||||
ss: pluralize('s'),
|
||||
m: pluralize('m'),
|
||||
mm: pluralize('m'),
|
||||
h: pluralize('h'),
|
||||
hh: pluralize('h'),
|
||||
d: pluralize('d'),
|
||||
dd: pluralize('d'),
|
||||
M: pluralize('M'),
|
||||
MM: pluralize('M'),
|
||||
y: pluralize('y'),
|
||||
yy: pluralize('y'),
|
||||
},
|
||||
postformat: function (string) {
|
||||
return string.replace(/,/g, '،');
|
||||
},
|
||||
week: {
|
||||
dow: 0, // Sunday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
});
|
||||
55
vendor/assets/javascripts/momentjs/dist/locale/ar-kw.js
vendored
Normal file
55
vendor/assets/javascripts/momentjs/dist/locale/ar-kw.js
vendored
Normal file
@@ -0,0 +1,55 @@
|
||||
//! moment.js locale configuration
|
||||
//! locale : Arabic (Kuwait) [ar-kw]
|
||||
//! author : Nusret Parlak: https://github.com/nusretparlak
|
||||
|
||||
import moment from '../moment';
|
||||
|
||||
export default moment.defineLocale('ar-kw', {
|
||||
months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(
|
||||
'_'
|
||||
),
|
||||
monthsShort:
|
||||
'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(
|
||||
'_'
|
||||
),
|
||||
weekdays: 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
|
||||
weekdaysShort: 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),
|
||||
weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
|
||||
weekdaysParseExact: true,
|
||||
longDateFormat: {
|
||||
LT: 'HH:mm',
|
||||
LTS: 'HH:mm:ss',
|
||||
L: 'DD/MM/YYYY',
|
||||
LL: 'D MMMM YYYY',
|
||||
LLL: 'D MMMM YYYY HH:mm',
|
||||
LLLL: 'dddd D MMMM YYYY HH:mm',
|
||||
},
|
||||
calendar: {
|
||||
sameDay: '[اليوم على الساعة] LT',
|
||||
nextDay: '[غدا على الساعة] LT',
|
||||
nextWeek: 'dddd [على الساعة] LT',
|
||||
lastDay: '[أمس على الساعة] LT',
|
||||
lastWeek: 'dddd [على الساعة] LT',
|
||||
sameElse: 'L',
|
||||
},
|
||||
relativeTime: {
|
||||
future: 'في %s',
|
||||
past: 'منذ %s',
|
||||
s: 'ثوان',
|
||||
ss: '%d ثانية',
|
||||
m: 'دقيقة',
|
||||
mm: '%d دقائق',
|
||||
h: 'ساعة',
|
||||
hh: '%d ساعات',
|
||||
d: 'يوم',
|
||||
dd: '%d أيام',
|
||||
M: 'شهر',
|
||||
MM: '%d أشهر',
|
||||
y: 'سنة',
|
||||
yy: '%d سنوات',
|
||||
},
|
||||
week: {
|
||||
dow: 0, // Sunday is the first day of the week.
|
||||
doy: 12, // The week that contains Jan 12th is the first week of the year.
|
||||
},
|
||||
});
|
||||
171
vendor/assets/javascripts/momentjs/dist/locale/ar-ly.js
vendored
Normal file
171
vendor/assets/javascripts/momentjs/dist/locale/ar-ly.js
vendored
Normal file
@@ -0,0 +1,171 @@
|
||||
//! moment.js locale configuration
|
||||
//! locale : Arabic (Libya) [ar-ly]
|
||||
//! author : Ali Hmer: https://github.com/kikoanis
|
||||
|
||||
import moment from '../moment';
|
||||
|
||||
var symbolMap = {
|
||||
1: '1',
|
||||
2: '2',
|
||||
3: '3',
|
||||
4: '4',
|
||||
5: '5',
|
||||
6: '6',
|
||||
7: '7',
|
||||
8: '8',
|
||||
9: '9',
|
||||
0: '0',
|
||||
},
|
||||
pluralForm = function (n) {
|
||||
return n === 0
|
||||
? 0
|
||||
: n === 1
|
||||
? 1
|
||||
: n === 2
|
||||
? 2
|
||||
: n % 100 >= 3 && n % 100 <= 10
|
||||
? 3
|
||||
: n % 100 >= 11
|
||||
? 4
|
||||
: 5;
|
||||
},
|
||||
plurals = {
|
||||
s: [
|
||||
'أقل من ثانية',
|
||||
'ثانية واحدة',
|
||||
['ثانيتان', 'ثانيتين'],
|
||||
'%d ثوان',
|
||||
'%d ثانية',
|
||||
'%d ثانية',
|
||||
],
|
||||
m: [
|
||||
'أقل من دقيقة',
|
||||
'دقيقة واحدة',
|
||||
['دقيقتان', 'دقيقتين'],
|
||||
'%d دقائق',
|
||||
'%d دقيقة',
|
||||
'%d دقيقة',
|
||||
],
|
||||
h: [
|
||||
'أقل من ساعة',
|
||||
'ساعة واحدة',
|
||||
['ساعتان', 'ساعتين'],
|
||||
'%d ساعات',
|
||||
'%d ساعة',
|
||||
'%d ساعة',
|
||||
],
|
||||
d: [
|
||||
'أقل من يوم',
|
||||
'يوم واحد',
|
||||
['يومان', 'يومين'],
|
||||
'%d أيام',
|
||||
'%d يومًا',
|
||||
'%d يوم',
|
||||
],
|
||||
M: [
|
||||
'أقل من شهر',
|
||||
'شهر واحد',
|
||||
['شهران', 'شهرين'],
|
||||
'%d أشهر',
|
||||
'%d شهرا',
|
||||
'%d شهر',
|
||||
],
|
||||
y: [
|
||||
'أقل من عام',
|
||||
'عام واحد',
|
||||
['عامان', 'عامين'],
|
||||
'%d أعوام',
|
||||
'%d عامًا',
|
||||
'%d عام',
|
||||
],
|
||||
},
|
||||
pluralize = function (u) {
|
||||
return function (number, withoutSuffix, string, isFuture) {
|
||||
var f = pluralForm(number),
|
||||
str = plurals[u][pluralForm(number)];
|
||||
if (f === 2) {
|
||||
str = str[withoutSuffix ? 0 : 1];
|
||||
}
|
||||
return str.replace(/%d/i, number);
|
||||
};
|
||||
},
|
||||
months = [
|
||||
'يناير',
|
||||
'فبراير',
|
||||
'مارس',
|
||||
'أبريل',
|
||||
'مايو',
|
||||
'يونيو',
|
||||
'يوليو',
|
||||
'أغسطس',
|
||||
'سبتمبر',
|
||||
'أكتوبر',
|
||||
'نوفمبر',
|
||||
'ديسمبر',
|
||||
];
|
||||
|
||||
export default moment.defineLocale('ar-ly', {
|
||||
months: months,
|
||||
monthsShort: months,
|
||||
weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
|
||||
weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
|
||||
weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
|
||||
weekdaysParseExact: true,
|
||||
longDateFormat: {
|
||||
LT: 'HH:mm',
|
||||
LTS: 'HH:mm:ss',
|
||||
L: 'D/\u200FM/\u200FYYYY',
|
||||
LL: 'D MMMM YYYY',
|
||||
LLL: 'D MMMM YYYY HH:mm',
|
||||
LLLL: 'dddd D MMMM YYYY HH:mm',
|
||||
},
|
||||
meridiemParse: /ص|م/,
|
||||
isPM: function (input) {
|
||||
return 'م' === input;
|
||||
},
|
||||
meridiem: function (hour, minute, isLower) {
|
||||
if (hour < 12) {
|
||||
return 'ص';
|
||||
} else {
|
||||
return 'م';
|
||||
}
|
||||
},
|
||||
calendar: {
|
||||
sameDay: '[اليوم عند الساعة] LT',
|
||||
nextDay: '[غدًا عند الساعة] LT',
|
||||
nextWeek: 'dddd [عند الساعة] LT',
|
||||
lastDay: '[أمس عند الساعة] LT',
|
||||
lastWeek: 'dddd [عند الساعة] LT',
|
||||
sameElse: 'L',
|
||||
},
|
||||
relativeTime: {
|
||||
future: 'بعد %s',
|
||||
past: 'منذ %s',
|
||||
s: pluralize('s'),
|
||||
ss: pluralize('s'),
|
||||
m: pluralize('m'),
|
||||
mm: pluralize('m'),
|
||||
h: pluralize('h'),
|
||||
hh: pluralize('h'),
|
||||
d: pluralize('d'),
|
||||
dd: pluralize('d'),
|
||||
M: pluralize('M'),
|
||||
MM: pluralize('M'),
|
||||
y: pluralize('y'),
|
||||
yy: pluralize('y'),
|
||||
},
|
||||
preparse: function (string) {
|
||||
return string.replace(/،/g, ',');
|
||||
},
|
||||
postformat: function (string) {
|
||||
return string
|
||||
.replace(/\d/g, function (match) {
|
||||
return symbolMap[match];
|
||||
})
|
||||
.replace(/,/g, '،');
|
||||
},
|
||||
week: {
|
||||
dow: 6, // Saturday is the first day of the week.
|
||||
doy: 12, // The week that contains Jan 12th is the first week of the year.
|
||||
},
|
||||
});
|
||||
56
vendor/assets/javascripts/momentjs/dist/locale/ar-ma.js
vendored
Normal file
56
vendor/assets/javascripts/momentjs/dist/locale/ar-ma.js
vendored
Normal file
@@ -0,0 +1,56 @@
|
||||
//! moment.js locale configuration
|
||||
//! locale : Arabic (Morocco) [ar-ma]
|
||||
//! author : ElFadili Yassine : https://github.com/ElFadiliY
|
||||
//! author : Abdel Said : https://github.com/abdelsaid
|
||||
|
||||
import moment from '../moment';
|
||||
|
||||
export default moment.defineLocale('ar-ma', {
|
||||
months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(
|
||||
'_'
|
||||
),
|
||||
monthsShort:
|
||||
'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(
|
||||
'_'
|
||||
),
|
||||
weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
|
||||
weekdaysShort: 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),
|
||||
weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
|
||||
weekdaysParseExact: true,
|
||||
longDateFormat: {
|
||||
LT: 'HH:mm',
|
||||
LTS: 'HH:mm:ss',
|
||||
L: 'DD/MM/YYYY',
|
||||
LL: 'D MMMM YYYY',
|
||||
LLL: 'D MMMM YYYY HH:mm',
|
||||
LLLL: 'dddd D MMMM YYYY HH:mm',
|
||||
},
|
||||
calendar: {
|
||||
sameDay: '[اليوم على الساعة] LT',
|
||||
nextDay: '[غدا على الساعة] LT',
|
||||
nextWeek: 'dddd [على الساعة] LT',
|
||||
lastDay: '[أمس على الساعة] LT',
|
||||
lastWeek: 'dddd [على الساعة] LT',
|
||||
sameElse: 'L',
|
||||
},
|
||||
relativeTime: {
|
||||
future: 'في %s',
|
||||
past: 'منذ %s',
|
||||
s: 'ثوان',
|
||||
ss: '%d ثانية',
|
||||
m: 'دقيقة',
|
||||
mm: '%d دقائق',
|
||||
h: 'ساعة',
|
||||
hh: '%d ساعات',
|
||||
d: 'يوم',
|
||||
dd: '%d أيام',
|
||||
M: 'شهر',
|
||||
MM: '%d أشهر',
|
||||
y: 'سنة',
|
||||
yy: '%d سنوات',
|
||||
},
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
});
|
||||
105
vendor/assets/javascripts/momentjs/dist/locale/ar-sa.js
vendored
Normal file
105
vendor/assets/javascripts/momentjs/dist/locale/ar-sa.js
vendored
Normal file
@@ -0,0 +1,105 @@
|
||||
//! moment.js locale configuration
|
||||
//! locale : Arabic (Saudi Arabia) [ar-sa]
|
||||
//! author : Suhail Alkowaileet : https://github.com/xsoh
|
||||
|
||||
import moment from '../moment';
|
||||
|
||||
var symbolMap = {
|
||||
1: '١',
|
||||
2: '٢',
|
||||
3: '٣',
|
||||
4: '٤',
|
||||
5: '٥',
|
||||
6: '٦',
|
||||
7: '٧',
|
||||
8: '٨',
|
||||
9: '٩',
|
||||
0: '٠',
|
||||
},
|
||||
numberMap = {
|
||||
'١': '1',
|
||||
'٢': '2',
|
||||
'٣': '3',
|
||||
'٤': '4',
|
||||
'٥': '5',
|
||||
'٦': '6',
|
||||
'٧': '7',
|
||||
'٨': '8',
|
||||
'٩': '9',
|
||||
'٠': '0',
|
||||
};
|
||||
|
||||
export default moment.defineLocale('ar-sa', {
|
||||
months: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(
|
||||
'_'
|
||||
),
|
||||
monthsShort:
|
||||
'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(
|
||||
'_'
|
||||
),
|
||||
weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
|
||||
weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
|
||||
weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
|
||||
weekdaysParseExact: true,
|
||||
longDateFormat: {
|
||||
LT: 'HH:mm',
|
||||
LTS: 'HH:mm:ss',
|
||||
L: 'DD/MM/YYYY',
|
||||
LL: 'D MMMM YYYY',
|
||||
LLL: 'D MMMM YYYY HH:mm',
|
||||
LLLL: 'dddd D MMMM YYYY HH:mm',
|
||||
},
|
||||
meridiemParse: /ص|م/,
|
||||
isPM: function (input) {
|
||||
return 'م' === input;
|
||||
},
|
||||
meridiem: function (hour, minute, isLower) {
|
||||
if (hour < 12) {
|
||||
return 'ص';
|
||||
} else {
|
||||
return 'م';
|
||||
}
|
||||
},
|
||||
calendar: {
|
||||
sameDay: '[اليوم على الساعة] LT',
|
||||
nextDay: '[غدا على الساعة] LT',
|
||||
nextWeek: 'dddd [على الساعة] LT',
|
||||
lastDay: '[أمس على الساعة] LT',
|
||||
lastWeek: 'dddd [على الساعة] LT',
|
||||
sameElse: 'L',
|
||||
},
|
||||
relativeTime: {
|
||||
future: 'في %s',
|
||||
past: 'منذ %s',
|
||||
s: 'ثوان',
|
||||
ss: '%d ثانية',
|
||||
m: 'دقيقة',
|
||||
mm: '%d دقائق',
|
||||
h: 'ساعة',
|
||||
hh: '%d ساعات',
|
||||
d: 'يوم',
|
||||
dd: '%d أيام',
|
||||
M: 'شهر',
|
||||
MM: '%d أشهر',
|
||||
y: 'سنة',
|
||||
yy: '%d سنوات',
|
||||
},
|
||||
preparse: function (string) {
|
||||
return string
|
||||
.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {
|
||||
return numberMap[match];
|
||||
})
|
||||
.replace(/،/g, ',');
|
||||
},
|
||||
postformat: function (string) {
|
||||
return string
|
||||
.replace(/\d/g, function (match) {
|
||||
return symbolMap[match];
|
||||
})
|
||||
.replace(/,/g, '،');
|
||||
},
|
||||
week: {
|
||||
dow: 0, // Sunday is the first day of the week.
|
||||
doy: 6, // The week that contains Jan 6th is the first week of the year.
|
||||
},
|
||||
});
|
||||
55
vendor/assets/javascripts/momentjs/dist/locale/ar-tn.js
vendored
Normal file
55
vendor/assets/javascripts/momentjs/dist/locale/ar-tn.js
vendored
Normal file
@@ -0,0 +1,55 @@
|
||||
//! moment.js locale configuration
|
||||
//! locale : Arabic (Tunisia) [ar-tn]
|
||||
//! author : Nader Toukabri : https://github.com/naderio
|
||||
|
||||
import moment from '../moment';
|
||||
|
||||
export default moment.defineLocale('ar-tn', {
|
||||
months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(
|
||||
'_'
|
||||
),
|
||||
monthsShort:
|
||||
'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(
|
||||
'_'
|
||||
),
|
||||
weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
|
||||
weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
|
||||
weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
|
||||
weekdaysParseExact: true,
|
||||
longDateFormat: {
|
||||
LT: 'HH:mm',
|
||||
LTS: 'HH:mm:ss',
|
||||
L: 'DD/MM/YYYY',
|
||||
LL: 'D MMMM YYYY',
|
||||
LLL: 'D MMMM YYYY HH:mm',
|
||||
LLLL: 'dddd D MMMM YYYY HH:mm',
|
||||
},
|
||||
calendar: {
|
||||
sameDay: '[اليوم على الساعة] LT',
|
||||
nextDay: '[غدا على الساعة] LT',
|
||||
nextWeek: 'dddd [على الساعة] LT',
|
||||
lastDay: '[أمس على الساعة] LT',
|
||||
lastWeek: 'dddd [على الساعة] LT',
|
||||
sameElse: 'L',
|
||||
},
|
||||
relativeTime: {
|
||||
future: 'في %s',
|
||||
past: 'منذ %s',
|
||||
s: 'ثوان',
|
||||
ss: '%d ثانية',
|
||||
m: 'دقيقة',
|
||||
mm: '%d دقائق',
|
||||
h: 'ساعة',
|
||||
hh: '%d ساعات',
|
||||
d: 'يوم',
|
||||
dd: '%d أيام',
|
||||
M: 'شهر',
|
||||
MM: '%d أشهر',
|
||||
y: 'سنة',
|
||||
yy: '%d سنوات',
|
||||
},
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
});
|
||||
189
vendor/assets/javascripts/momentjs/dist/locale/ar.js
vendored
Normal file
189
vendor/assets/javascripts/momentjs/dist/locale/ar.js
vendored
Normal file
@@ -0,0 +1,189 @@
|
||||
//! moment.js locale configuration
|
||||
//! locale : Arabic [ar]
|
||||
//! author : Abdel Said: https://github.com/abdelsaid
|
||||
//! author : Ahmed Elkhatib
|
||||
//! author : forabi https://github.com/forabi
|
||||
|
||||
import moment from '../moment';
|
||||
|
||||
var symbolMap = {
|
||||
1: '١',
|
||||
2: '٢',
|
||||
3: '٣',
|
||||
4: '٤',
|
||||
5: '٥',
|
||||
6: '٦',
|
||||
7: '٧',
|
||||
8: '٨',
|
||||
9: '٩',
|
||||
0: '٠',
|
||||
},
|
||||
numberMap = {
|
||||
'١': '1',
|
||||
'٢': '2',
|
||||
'٣': '3',
|
||||
'٤': '4',
|
||||
'٥': '5',
|
||||
'٦': '6',
|
||||
'٧': '7',
|
||||
'٨': '8',
|
||||
'٩': '9',
|
||||
'٠': '0',
|
||||
},
|
||||
pluralForm = function (n) {
|
||||
return n === 0
|
||||
? 0
|
||||
: n === 1
|
||||
? 1
|
||||
: n === 2
|
||||
? 2
|
||||
: n % 100 >= 3 && n % 100 <= 10
|
||||
? 3
|
||||
: n % 100 >= 11
|
||||
? 4
|
||||
: 5;
|
||||
},
|
||||
plurals = {
|
||||
s: [
|
||||
'أقل من ثانية',
|
||||
'ثانية واحدة',
|
||||
['ثانيتان', 'ثانيتين'],
|
||||
'%d ثوان',
|
||||
'%d ثانية',
|
||||
'%d ثانية',
|
||||
],
|
||||
m: [
|
||||
'أقل من دقيقة',
|
||||
'دقيقة واحدة',
|
||||
['دقيقتان', 'دقيقتين'],
|
||||
'%d دقائق',
|
||||
'%d دقيقة',
|
||||
'%d دقيقة',
|
||||
],
|
||||
h: [
|
||||
'أقل من ساعة',
|
||||
'ساعة واحدة',
|
||||
['ساعتان', 'ساعتين'],
|
||||
'%d ساعات',
|
||||
'%d ساعة',
|
||||
'%d ساعة',
|
||||
],
|
||||
d: [
|
||||
'أقل من يوم',
|
||||
'يوم واحد',
|
||||
['يومان', 'يومين'],
|
||||
'%d أيام',
|
||||
'%d يومًا',
|
||||
'%d يوم',
|
||||
],
|
||||
M: [
|
||||
'أقل من شهر',
|
||||
'شهر واحد',
|
||||
['شهران', 'شهرين'],
|
||||
'%d أشهر',
|
||||
'%d شهرا',
|
||||
'%d شهر',
|
||||
],
|
||||
y: [
|
||||
'أقل من عام',
|
||||
'عام واحد',
|
||||
['عامان', 'عامين'],
|
||||
'%d أعوام',
|
||||
'%d عامًا',
|
||||
'%d عام',
|
||||
],
|
||||
},
|
||||
pluralize = function (u) {
|
||||
return function (number, withoutSuffix, string, isFuture) {
|
||||
var f = pluralForm(number),
|
||||
str = plurals[u][pluralForm(number)];
|
||||
if (f === 2) {
|
||||
str = str[withoutSuffix ? 0 : 1];
|
||||
}
|
||||
return str.replace(/%d/i, number);
|
||||
};
|
||||
},
|
||||
months = [
|
||||
'يناير',
|
||||
'فبراير',
|
||||
'مارس',
|
||||
'أبريل',
|
||||
'مايو',
|
||||
'يونيو',
|
||||
'يوليو',
|
||||
'أغسطس',
|
||||
'سبتمبر',
|
||||
'أكتوبر',
|
||||
'نوفمبر',
|
||||
'ديسمبر',
|
||||
];
|
||||
|
||||
export default moment.defineLocale('ar', {
|
||||
months: months,
|
||||
monthsShort: months,
|
||||
weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
|
||||
weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
|
||||
weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
|
||||
weekdaysParseExact: true,
|
||||
longDateFormat: {
|
||||
LT: 'HH:mm',
|
||||
LTS: 'HH:mm:ss',
|
||||
L: 'D/\u200FM/\u200FYYYY',
|
||||
LL: 'D MMMM YYYY',
|
||||
LLL: 'D MMMM YYYY HH:mm',
|
||||
LLLL: 'dddd D MMMM YYYY HH:mm',
|
||||
},
|
||||
meridiemParse: /ص|م/,
|
||||
isPM: function (input) {
|
||||
return 'م' === input;
|
||||
},
|
||||
meridiem: function (hour, minute, isLower) {
|
||||
if (hour < 12) {
|
||||
return 'ص';
|
||||
} else {
|
||||
return 'م';
|
||||
}
|
||||
},
|
||||
calendar: {
|
||||
sameDay: '[اليوم عند الساعة] LT',
|
||||
nextDay: '[غدًا عند الساعة] LT',
|
||||
nextWeek: 'dddd [عند الساعة] LT',
|
||||
lastDay: '[أمس عند الساعة] LT',
|
||||
lastWeek: 'dddd [عند الساعة] LT',
|
||||
sameElse: 'L',
|
||||
},
|
||||
relativeTime: {
|
||||
future: 'بعد %s',
|
||||
past: 'منذ %s',
|
||||
s: pluralize('s'),
|
||||
ss: pluralize('s'),
|
||||
m: pluralize('m'),
|
||||
mm: pluralize('m'),
|
||||
h: pluralize('h'),
|
||||
hh: pluralize('h'),
|
||||
d: pluralize('d'),
|
||||
dd: pluralize('d'),
|
||||
M: pluralize('M'),
|
||||
MM: pluralize('M'),
|
||||
y: pluralize('y'),
|
||||
yy: pluralize('y'),
|
||||
},
|
||||
preparse: function (string) {
|
||||
return string
|
||||
.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {
|
||||
return numberMap[match];
|
||||
})
|
||||
.replace(/،/g, ',');
|
||||
},
|
||||
postformat: function (string) {
|
||||
return string
|
||||
.replace(/\d/g, function (match) {
|
||||
return symbolMap[match];
|
||||
})
|
||||
.replace(/,/g, '،');
|
||||
},
|
||||
week: {
|
||||
dow: 6, // Saturday is the first day of the week.
|
||||
doy: 12, // The week that contains Jan 12th is the first week of the year.
|
||||
},
|
||||
});
|
||||
102
vendor/assets/javascripts/momentjs/dist/locale/az.js
vendored
Normal file
102
vendor/assets/javascripts/momentjs/dist/locale/az.js
vendored
Normal file
@@ -0,0 +1,102 @@
|
||||
//! moment.js locale configuration
|
||||
//! locale : Azerbaijani [az]
|
||||
//! author : topchiyev : https://github.com/topchiyev
|
||||
|
||||
import moment from '../moment';
|
||||
|
||||
var suffixes = {
|
||||
1: '-inci',
|
||||
5: '-inci',
|
||||
8: '-inci',
|
||||
70: '-inci',
|
||||
80: '-inci',
|
||||
2: '-nci',
|
||||
7: '-nci',
|
||||
20: '-nci',
|
||||
50: '-nci',
|
||||
3: '-üncü',
|
||||
4: '-üncü',
|
||||
100: '-üncü',
|
||||
6: '-ncı',
|
||||
9: '-uncu',
|
||||
10: '-uncu',
|
||||
30: '-uncu',
|
||||
60: '-ıncı',
|
||||
90: '-ıncı',
|
||||
};
|
||||
|
||||
export default moment.defineLocale('az', {
|
||||
months: 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split(
|
||||
'_'
|
||||
),
|
||||
monthsShort: 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'),
|
||||
weekdays:
|
||||
'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split(
|
||||
'_'
|
||||
),
|
||||
weekdaysShort: 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'),
|
||||
weekdaysMin: 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'),
|
||||
weekdaysParseExact: true,
|
||||
longDateFormat: {
|
||||
LT: 'HH:mm',
|
||||
LTS: 'HH:mm:ss',
|
||||
L: 'DD.MM.YYYY',
|
||||
LL: 'D MMMM YYYY',
|
||||
LLL: 'D MMMM YYYY HH:mm',
|
||||
LLLL: 'dddd, D MMMM YYYY HH:mm',
|
||||
},
|
||||
calendar: {
|
||||
sameDay: '[bugün saat] LT',
|
||||
nextDay: '[sabah saat] LT',
|
||||
nextWeek: '[gələn həftə] dddd [saat] LT',
|
||||
lastDay: '[dünən] LT',
|
||||
lastWeek: '[keçən həftə] dddd [saat] LT',
|
||||
sameElse: 'L',
|
||||
},
|
||||
relativeTime: {
|
||||
future: '%s sonra',
|
||||
past: '%s əvvəl',
|
||||
s: 'bir neçə saniyə',
|
||||
ss: '%d saniyə',
|
||||
m: 'bir dəqiqə',
|
||||
mm: '%d dəqiqə',
|
||||
h: 'bir saat',
|
||||
hh: '%d saat',
|
||||
d: 'bir gün',
|
||||
dd: '%d gün',
|
||||
M: 'bir ay',
|
||||
MM: '%d ay',
|
||||
y: 'bir il',
|
||||
yy: '%d il',
|
||||
},
|
||||
meridiemParse: /gecə|səhər|gündüz|axşam/,
|
||||
isPM: function (input) {
|
||||
return /^(gündüz|axşam)$/.test(input);
|
||||
},
|
||||
meridiem: function (hour, minute, isLower) {
|
||||
if (hour < 4) {
|
||||
return 'gecə';
|
||||
} else if (hour < 12) {
|
||||
return 'səhər';
|
||||
} else if (hour < 17) {
|
||||
return 'gündüz';
|
||||
} else {
|
||||
return 'axşam';
|
||||
}
|
||||
},
|
||||
dayOfMonthOrdinalParse: /\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,
|
||||
ordinal: function (number) {
|
||||
if (number === 0) {
|
||||
// special case for zero
|
||||
return number + '-ıncı';
|
||||
}
|
||||
var a = number % 10,
|
||||
b = (number % 100) - a,
|
||||
c = number >= 100 ? 100 : null;
|
||||
return number + (suffixes[a] || suffixes[b] || suffixes[c]);
|
||||
},
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 7, // The week that contains Jan 7th is the first week of the year.
|
||||
},
|
||||
});
|
||||
142
vendor/assets/javascripts/momentjs/dist/locale/be.js
vendored
Normal file
142
vendor/assets/javascripts/momentjs/dist/locale/be.js
vendored
Normal file
@@ -0,0 +1,142 @@
|
||||
//! moment.js locale configuration
|
||||
//! locale : Belarusian [be]
|
||||
//! author : Dmitry Demidov : https://github.com/demidov91
|
||||
//! author: Praleska: http://praleska.pro/
|
||||
//! Author : Menelion Elensúle : https://github.com/Oire
|
||||
|
||||
import moment from '../moment';
|
||||
|
||||
function plural(word, num) {
|
||||
var forms = word.split('_');
|
||||
return num % 10 === 1 && num % 100 !== 11
|
||||
? forms[0]
|
||||
: num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)
|
||||
? forms[1]
|
||||
: forms[2];
|
||||
}
|
||||
function relativeTimeWithPlural(number, withoutSuffix, key) {
|
||||
var format = {
|
||||
ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',
|
||||
mm: withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін',
|
||||
hh: withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін',
|
||||
dd: 'дзень_дні_дзён',
|
||||
MM: 'месяц_месяцы_месяцаў',
|
||||
yy: 'год_гады_гадоў',
|
||||
};
|
||||
if (key === 'm') {
|
||||
return withoutSuffix ? 'хвіліна' : 'хвіліну';
|
||||
} else if (key === 'h') {
|
||||
return withoutSuffix ? 'гадзіна' : 'гадзіну';
|
||||
} else {
|
||||
return number + ' ' + plural(format[key], +number);
|
||||
}
|
||||
}
|
||||
|
||||
export default moment.defineLocale('be', {
|
||||
months: {
|
||||
format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split(
|
||||
'_'
|
||||
),
|
||||
standalone:
|
||||
'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split(
|
||||
'_'
|
||||
),
|
||||
},
|
||||
monthsShort:
|
||||
'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split('_'),
|
||||
weekdays: {
|
||||
format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split(
|
||||
'_'
|
||||
),
|
||||
standalone:
|
||||
'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split(
|
||||
'_'
|
||||
),
|
||||
isFormat: /\[ ?[Ууў] ?(?:мінулую|наступную)? ?\] ?dddd/,
|
||||
},
|
||||
weekdaysShort: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),
|
||||
weekdaysMin: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),
|
||||
longDateFormat: {
|
||||
LT: 'HH:mm',
|
||||
LTS: 'HH:mm:ss',
|
||||
L: 'DD.MM.YYYY',
|
||||
LL: 'D MMMM YYYY г.',
|
||||
LLL: 'D MMMM YYYY г., HH:mm',
|
||||
LLLL: 'dddd, D MMMM YYYY г., HH:mm',
|
||||
},
|
||||
calendar: {
|
||||
sameDay: '[Сёння ў] LT',
|
||||
nextDay: '[Заўтра ў] LT',
|
||||
lastDay: '[Учора ў] LT',
|
||||
nextWeek: function () {
|
||||
return '[У] dddd [ў] LT';
|
||||
},
|
||||
lastWeek: function () {
|
||||
switch (this.day()) {
|
||||
case 0:
|
||||
case 3:
|
||||
case 5:
|
||||
case 6:
|
||||
return '[У мінулую] dddd [ў] LT';
|
||||
case 1:
|
||||
case 2:
|
||||
case 4:
|
||||
return '[У мінулы] dddd [ў] LT';
|
||||
}
|
||||
},
|
||||
sameElse: 'L',
|
||||
},
|
||||
relativeTime: {
|
||||
future: 'праз %s',
|
||||
past: '%s таму',
|
||||
s: 'некалькі секунд',
|
||||
m: relativeTimeWithPlural,
|
||||
mm: relativeTimeWithPlural,
|
||||
h: relativeTimeWithPlural,
|
||||
hh: relativeTimeWithPlural,
|
||||
d: 'дзень',
|
||||
dd: relativeTimeWithPlural,
|
||||
M: 'месяц',
|
||||
MM: relativeTimeWithPlural,
|
||||
y: 'год',
|
||||
yy: relativeTimeWithPlural,
|
||||
},
|
||||
meridiemParse: /ночы|раніцы|дня|вечара/,
|
||||
isPM: function (input) {
|
||||
return /^(дня|вечара)$/.test(input);
|
||||
},
|
||||
meridiem: function (hour, minute, isLower) {
|
||||
if (hour < 4) {
|
||||
return 'ночы';
|
||||
} else if (hour < 12) {
|
||||
return 'раніцы';
|
||||
} else if (hour < 17) {
|
||||
return 'дня';
|
||||
} else {
|
||||
return 'вечара';
|
||||
}
|
||||
},
|
||||
dayOfMonthOrdinalParse: /\d{1,2}-(і|ы|га)/,
|
||||
ordinal: function (number, period) {
|
||||
switch (period) {
|
||||
case 'M':
|
||||
case 'd':
|
||||
case 'DDD':
|
||||
case 'w':
|
||||
case 'W':
|
||||
return (number % 10 === 2 || number % 10 === 3) &&
|
||||
number % 100 !== 12 &&
|
||||
number % 100 !== 13
|
||||
? number + '-і'
|
||||
: number + '-ы';
|
||||
case 'D':
|
||||
return number + '-га';
|
||||
default:
|
||||
return number;
|
||||
}
|
||||
},
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 7, // The week that contains Jan 7th is the first week of the year.
|
||||
},
|
||||
});
|
||||
87
vendor/assets/javascripts/momentjs/dist/locale/bg.js
vendored
Normal file
87
vendor/assets/javascripts/momentjs/dist/locale/bg.js
vendored
Normal file
@@ -0,0 +1,87 @@
|
||||
//! moment.js locale configuration
|
||||
//! locale : Bulgarian [bg]
|
||||
//! author : Krasen Borisov : https://github.com/kraz
|
||||
|
||||
import moment from '../moment';
|
||||
|
||||
export default moment.defineLocale('bg', {
|
||||
months: 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split(
|
||||
'_'
|
||||
),
|
||||
monthsShort: 'яну_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'),
|
||||
weekdays: 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split(
|
||||
'_'
|
||||
),
|
||||
weekdaysShort: 'нед_пон_вто_сря_чет_пет_съб'.split('_'),
|
||||
weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
|
||||
longDateFormat: {
|
||||
LT: 'H:mm',
|
||||
LTS: 'H:mm:ss',
|
||||
L: 'D.MM.YYYY',
|
||||
LL: 'D MMMM YYYY',
|
||||
LLL: 'D MMMM YYYY H:mm',
|
||||
LLLL: 'dddd, D MMMM YYYY H:mm',
|
||||
},
|
||||
calendar: {
|
||||
sameDay: '[Днес в] LT',
|
||||
nextDay: '[Утре в] LT',
|
||||
nextWeek: 'dddd [в] LT',
|
||||
lastDay: '[Вчера в] LT',
|
||||
lastWeek: function () {
|
||||
switch (this.day()) {
|
||||
case 0:
|
||||
case 3:
|
||||
case 6:
|
||||
return '[Миналата] dddd [в] LT';
|
||||
case 1:
|
||||
case 2:
|
||||
case 4:
|
||||
case 5:
|
||||
return '[Миналия] dddd [в] LT';
|
||||
}
|
||||
},
|
||||
sameElse: 'L',
|
||||
},
|
||||
relativeTime: {
|
||||
future: 'след %s',
|
||||
past: 'преди %s',
|
||||
s: 'няколко секунди',
|
||||
ss: '%d секунди',
|
||||
m: 'минута',
|
||||
mm: '%d минути',
|
||||
h: 'час',
|
||||
hh: '%d часа',
|
||||
d: 'ден',
|
||||
dd: '%d дена',
|
||||
w: 'седмица',
|
||||
ww: '%d седмици',
|
||||
M: 'месец',
|
||||
MM: '%d месеца',
|
||||
y: 'година',
|
||||
yy: '%d години',
|
||||
},
|
||||
dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/,
|
||||
ordinal: function (number) {
|
||||
var lastDigit = number % 10,
|
||||
last2Digits = number % 100;
|
||||
if (number === 0) {
|
||||
return number + '-ев';
|
||||
} else if (last2Digits === 0) {
|
||||
return number + '-ен';
|
||||
} else if (last2Digits > 10 && last2Digits < 20) {
|
||||
return number + '-ти';
|
||||
} else if (lastDigit === 1) {
|
||||
return number + '-ви';
|
||||
} else if (lastDigit === 2) {
|
||||
return number + '-ри';
|
||||
} else if (lastDigit === 7 || lastDigit === 8) {
|
||||
return number + '-ми';
|
||||
} else {
|
||||
return number + '-ти';
|
||||
}
|
||||
},
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 7, // The week that contains Jan 7th is the first week of the year.
|
||||
},
|
||||
});
|
||||
52
vendor/assets/javascripts/momentjs/dist/locale/bm.js
vendored
Normal file
52
vendor/assets/javascripts/momentjs/dist/locale/bm.js
vendored
Normal file
@@ -0,0 +1,52 @@
|
||||
//! moment.js locale configuration
|
||||
//! locale : Bambara [bm]
|
||||
//! author : Estelle Comment : https://github.com/estellecomment
|
||||
// Language contact person : Abdoufata Kane : https://github.com/abdoufata
|
||||
|
||||
import moment from '../moment';
|
||||
|
||||
export default moment.defineLocale('bm', {
|
||||
months: 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo'.split(
|
||||
'_'
|
||||
),
|
||||
monthsShort: 'Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des'.split('_'),
|
||||
weekdays: 'Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'),
|
||||
weekdaysShort: 'Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib'.split('_'),
|
||||
weekdaysMin: 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'),
|
||||
longDateFormat: {
|
||||
LT: 'HH:mm',
|
||||
LTS: 'HH:mm:ss',
|
||||
L: 'DD/MM/YYYY',
|
||||
LL: 'MMMM [tile] D [san] YYYY',
|
||||
LLL: 'MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',
|
||||
LLLL: 'dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',
|
||||
},
|
||||
calendar: {
|
||||
sameDay: '[Bi lɛrɛ] LT',
|
||||
nextDay: '[Sini lɛrɛ] LT',
|
||||
nextWeek: 'dddd [don lɛrɛ] LT',
|
||||
lastDay: '[Kunu lɛrɛ] LT',
|
||||
lastWeek: 'dddd [tɛmɛnen lɛrɛ] LT',
|
||||
sameElse: 'L',
|
||||
},
|
||||
relativeTime: {
|
||||
future: '%s kɔnɔ',
|
||||
past: 'a bɛ %s bɔ',
|
||||
s: 'sanga dama dama',
|
||||
ss: 'sekondi %d',
|
||||
m: 'miniti kelen',
|
||||
mm: 'miniti %d',
|
||||
h: 'lɛrɛ kelen',
|
||||
hh: 'lɛrɛ %d',
|
||||
d: 'tile kelen',
|
||||
dd: 'tile %d',
|
||||
M: 'kalo kelen',
|
||||
MM: 'kalo %d',
|
||||
y: 'san kelen',
|
||||
yy: 'san %d',
|
||||
},
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
});
|
||||
129
vendor/assets/javascripts/momentjs/dist/locale/bn-bd.js
vendored
Normal file
129
vendor/assets/javascripts/momentjs/dist/locale/bn-bd.js
vendored
Normal file
@@ -0,0 +1,129 @@
|
||||
//! moment.js locale configuration
|
||||
//! locale : Bengali (Bangladesh) [bn-bd]
|
||||
//! author : Asraf Hossain Patoary : https://github.com/ashwoolford
|
||||
|
||||
import moment from '../moment';
|
||||
|
||||
var symbolMap = {
|
||||
1: '১',
|
||||
2: '২',
|
||||
3: '৩',
|
||||
4: '৪',
|
||||
5: '৫',
|
||||
6: '৬',
|
||||
7: '৭',
|
||||
8: '৮',
|
||||
9: '৯',
|
||||
0: '০',
|
||||
},
|
||||
numberMap = {
|
||||
'১': '1',
|
||||
'২': '2',
|
||||
'৩': '3',
|
||||
'৪': '4',
|
||||
'৫': '5',
|
||||
'৬': '6',
|
||||
'৭': '7',
|
||||
'৮': '8',
|
||||
'৯': '9',
|
||||
'০': '0',
|
||||
};
|
||||
|
||||
export default moment.defineLocale('bn-bd', {
|
||||
months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split(
|
||||
'_'
|
||||
),
|
||||
monthsShort:
|
||||
'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split(
|
||||
'_'
|
||||
),
|
||||
weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split(
|
||||
'_'
|
||||
),
|
||||
weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),
|
||||
weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),
|
||||
longDateFormat: {
|
||||
LT: 'A h:mm সময়',
|
||||
LTS: 'A h:mm:ss সময়',
|
||||
L: 'DD/MM/YYYY',
|
||||
LL: 'D MMMM YYYY',
|
||||
LLL: 'D MMMM YYYY, A h:mm সময়',
|
||||
LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',
|
||||
},
|
||||
calendar: {
|
||||
sameDay: '[আজ] LT',
|
||||
nextDay: '[আগামীকাল] LT',
|
||||
nextWeek: 'dddd, LT',
|
||||
lastDay: '[গতকাল] LT',
|
||||
lastWeek: '[গত] dddd, LT',
|
||||
sameElse: 'L',
|
||||
},
|
||||
relativeTime: {
|
||||
future: '%s পরে',
|
||||
past: '%s আগে',
|
||||
s: 'কয়েক সেকেন্ড',
|
||||
ss: '%d সেকেন্ড',
|
||||
m: 'এক মিনিট',
|
||||
mm: '%d মিনিট',
|
||||
h: 'এক ঘন্টা',
|
||||
hh: '%d ঘন্টা',
|
||||
d: 'এক দিন',
|
||||
dd: '%d দিন',
|
||||
M: 'এক মাস',
|
||||
MM: '%d মাস',
|
||||
y: 'এক বছর',
|
||||
yy: '%d বছর',
|
||||
},
|
||||
preparse: function (string) {
|
||||
return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {
|
||||
return numberMap[match];
|
||||
});
|
||||
},
|
||||
postformat: function (string) {
|
||||
return string.replace(/\d/g, function (match) {
|
||||
return symbolMap[match];
|
||||
});
|
||||
},
|
||||
|
||||
meridiemParse: /রাত|ভোর|সকাল|দুপুর|বিকাল|সন্ধ্যা|রাত/,
|
||||
meridiemHour: function (hour, meridiem) {
|
||||
if (hour === 12) {
|
||||
hour = 0;
|
||||
}
|
||||
if (meridiem === 'রাত') {
|
||||
return hour < 4 ? hour : hour + 12;
|
||||
} else if (meridiem === 'ভোর') {
|
||||
return hour;
|
||||
} else if (meridiem === 'সকাল') {
|
||||
return hour;
|
||||
} else if (meridiem === 'দুপুর') {
|
||||
return hour >= 3 ? hour : hour + 12;
|
||||
} else if (meridiem === 'বিকাল') {
|
||||
return hour + 12;
|
||||
} else if (meridiem === 'সন্ধ্যা') {
|
||||
return hour + 12;
|
||||
}
|
||||
},
|
||||
|
||||
meridiem: function (hour, minute, isLower) {
|
||||
if (hour < 4) {
|
||||
return 'রাত';
|
||||
} else if (hour < 6) {
|
||||
return 'ভোর';
|
||||
} else if (hour < 12) {
|
||||
return 'সকাল';
|
||||
} else if (hour < 15) {
|
||||
return 'দুপুর';
|
||||
} else if (hour < 18) {
|
||||
return 'বিকাল';
|
||||
} else if (hour < 20) {
|
||||
return 'সন্ধ্যা';
|
||||
} else {
|
||||
return 'রাত';
|
||||
}
|
||||
},
|
||||
week: {
|
||||
dow: 0, // Sunday is the first day of the week.
|
||||
doy: 6, // The week that contains Jan 6th is the first week of the year.
|
||||
},
|
||||
});
|
||||
119
vendor/assets/javascripts/momentjs/dist/locale/bn.js
vendored
Normal file
119
vendor/assets/javascripts/momentjs/dist/locale/bn.js
vendored
Normal file
@@ -0,0 +1,119 @@
|
||||
//! moment.js locale configuration
|
||||
//! locale : Bengali [bn]
|
||||
//! author : Kaushik Gandhi : https://github.com/kaushikgandhi
|
||||
|
||||
import moment from '../moment';
|
||||
|
||||
var symbolMap = {
|
||||
1: '১',
|
||||
2: '২',
|
||||
3: '৩',
|
||||
4: '৪',
|
||||
5: '৫',
|
||||
6: '৬',
|
||||
7: '৭',
|
||||
8: '৮',
|
||||
9: '৯',
|
||||
0: '০',
|
||||
},
|
||||
numberMap = {
|
||||
'১': '1',
|
||||
'২': '2',
|
||||
'৩': '3',
|
||||
'৪': '4',
|
||||
'৫': '5',
|
||||
'৬': '6',
|
||||
'৭': '7',
|
||||
'৮': '8',
|
||||
'৯': '9',
|
||||
'০': '0',
|
||||
};
|
||||
|
||||
export default moment.defineLocale('bn', {
|
||||
months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split(
|
||||
'_'
|
||||
),
|
||||
monthsShort:
|
||||
'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split(
|
||||
'_'
|
||||
),
|
||||
weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split(
|
||||
'_'
|
||||
),
|
||||
weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),
|
||||
weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),
|
||||
longDateFormat: {
|
||||
LT: 'A h:mm সময়',
|
||||
LTS: 'A h:mm:ss সময়',
|
||||
L: 'DD/MM/YYYY',
|
||||
LL: 'D MMMM YYYY',
|
||||
LLL: 'D MMMM YYYY, A h:mm সময়',
|
||||
LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',
|
||||
},
|
||||
calendar: {
|
||||
sameDay: '[আজ] LT',
|
||||
nextDay: '[আগামীকাল] LT',
|
||||
nextWeek: 'dddd, LT',
|
||||
lastDay: '[গতকাল] LT',
|
||||
lastWeek: '[গত] dddd, LT',
|
||||
sameElse: 'L',
|
||||
},
|
||||
relativeTime: {
|
||||
future: '%s পরে',
|
||||
past: '%s আগে',
|
||||
s: 'কয়েক সেকেন্ড',
|
||||
ss: '%d সেকেন্ড',
|
||||
m: 'এক মিনিট',
|
||||
mm: '%d মিনিট',
|
||||
h: 'এক ঘন্টা',
|
||||
hh: '%d ঘন্টা',
|
||||
d: 'এক দিন',
|
||||
dd: '%d দিন',
|
||||
M: 'এক মাস',
|
||||
MM: '%d মাস',
|
||||
y: 'এক বছর',
|
||||
yy: '%d বছর',
|
||||
},
|
||||
preparse: function (string) {
|
||||
return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {
|
||||
return numberMap[match];
|
||||
});
|
||||
},
|
||||
postformat: function (string) {
|
||||
return string.replace(/\d/g, function (match) {
|
||||
return symbolMap[match];
|
||||
});
|
||||
},
|
||||
meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/,
|
||||
meridiemHour: function (hour, meridiem) {
|
||||
if (hour === 12) {
|
||||
hour = 0;
|
||||
}
|
||||
if (
|
||||
(meridiem === 'রাত' && hour >= 4) ||
|
||||
(meridiem === 'দুপুর' && hour < 5) ||
|
||||
meridiem === 'বিকাল'
|
||||
) {
|
||||
return hour + 12;
|
||||
} else {
|
||||
return hour;
|
||||
}
|
||||
},
|
||||
meridiem: function (hour, minute, isLower) {
|
||||
if (hour < 4) {
|
||||
return 'রাত';
|
||||
} else if (hour < 10) {
|
||||
return 'সকাল';
|
||||
} else if (hour < 17) {
|
||||
return 'দুপুর';
|
||||
} else if (hour < 20) {
|
||||
return 'বিকাল';
|
||||
} else {
|
||||
return 'রাত';
|
||||
}
|
||||
},
|
||||
week: {
|
||||
dow: 0, // Sunday is the first day of the week.
|
||||
doy: 6, // The week that contains Jan 6th is the first week of the year.
|
||||
},
|
||||
});
|
||||
124
vendor/assets/javascripts/momentjs/dist/locale/bo.js
vendored
Normal file
124
vendor/assets/javascripts/momentjs/dist/locale/bo.js
vendored
Normal file
@@ -0,0 +1,124 @@
|
||||
//! moment.js locale configuration
|
||||
//! locale : Tibetan [bo]
|
||||
//! author : Thupten N. Chakrishar : https://github.com/vajradog
|
||||
|
||||
import moment from '../moment';
|
||||
|
||||
var symbolMap = {
|
||||
1: '༡',
|
||||
2: '༢',
|
||||
3: '༣',
|
||||
4: '༤',
|
||||
5: '༥',
|
||||
6: '༦',
|
||||
7: '༧',
|
||||
8: '༨',
|
||||
9: '༩',
|
||||
0: '༠',
|
||||
},
|
||||
numberMap = {
|
||||
'༡': '1',
|
||||
'༢': '2',
|
||||
'༣': '3',
|
||||
'༤': '4',
|
||||
'༥': '5',
|
||||
'༦': '6',
|
||||
'༧': '7',
|
||||
'༨': '8',
|
||||
'༩': '9',
|
||||
'༠': '0',
|
||||
};
|
||||
|
||||
export default moment.defineLocale('bo', {
|
||||
months: 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split(
|
||||
'_'
|
||||
),
|
||||
monthsShort:
|
||||
'ཟླ་1_ཟླ་2_ཟླ་3_ཟླ་4_ཟླ་5_ཟླ་6_ཟླ་7_ཟླ་8_ཟླ་9_ཟླ་10_ཟླ་11_ཟླ་12'.split(
|
||||
'_'
|
||||
),
|
||||
monthsShortRegex: /^(ཟླ་\d{1,2})/,
|
||||
monthsParseExact: true,
|
||||
weekdays:
|
||||
'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split(
|
||||
'_'
|
||||
),
|
||||
weekdaysShort: 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split(
|
||||
'_'
|
||||
),
|
||||
weekdaysMin: 'ཉི_ཟླ_མིག_ལྷག_ཕུར_སངས_སྤེན'.split('_'),
|
||||
longDateFormat: {
|
||||
LT: 'A h:mm',
|
||||
LTS: 'A h:mm:ss',
|
||||
L: 'DD/MM/YYYY',
|
||||
LL: 'D MMMM YYYY',
|
||||
LLL: 'D MMMM YYYY, A h:mm',
|
||||
LLLL: 'dddd, D MMMM YYYY, A h:mm',
|
||||
},
|
||||
calendar: {
|
||||
sameDay: '[དི་རིང] LT',
|
||||
nextDay: '[སང་ཉིན] LT',
|
||||
nextWeek: '[བདུན་ཕྲག་རྗེས་མ], LT',
|
||||
lastDay: '[ཁ་སང] LT',
|
||||
lastWeek: '[བདུན་ཕྲག་མཐའ་མ] dddd, LT',
|
||||
sameElse: 'L',
|
||||
},
|
||||
relativeTime: {
|
||||
future: '%s ལ་',
|
||||
past: '%s སྔན་ལ',
|
||||
s: 'ལམ་སང',
|
||||
ss: '%d སྐར་ཆ།',
|
||||
m: 'སྐར་མ་གཅིག',
|
||||
mm: '%d སྐར་མ',
|
||||
h: 'ཆུ་ཚོད་གཅིག',
|
||||
hh: '%d ཆུ་ཚོད',
|
||||
d: 'ཉིན་གཅིག',
|
||||
dd: '%d ཉིན་',
|
||||
M: 'ཟླ་བ་གཅིག',
|
||||
MM: '%d ཟླ་བ',
|
||||
y: 'ལོ་གཅིག',
|
||||
yy: '%d ལོ',
|
||||
},
|
||||
preparse: function (string) {
|
||||
return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) {
|
||||
return numberMap[match];
|
||||
});
|
||||
},
|
||||
postformat: function (string) {
|
||||
return string.replace(/\d/g, function (match) {
|
||||
return symbolMap[match];
|
||||
});
|
||||
},
|
||||
meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,
|
||||
meridiemHour: function (hour, meridiem) {
|
||||
if (hour === 12) {
|
||||
hour = 0;
|
||||
}
|
||||
if (
|
||||
(meridiem === 'མཚན་མོ' && hour >= 4) ||
|
||||
(meridiem === 'ཉིན་གུང' && hour < 5) ||
|
||||
meridiem === 'དགོང་དག'
|
||||
) {
|
||||
return hour + 12;
|
||||
} else {
|
||||
return hour;
|
||||
}
|
||||
},
|
||||
meridiem: function (hour, minute, isLower) {
|
||||
if (hour < 4) {
|
||||
return 'མཚན་མོ';
|
||||
} else if (hour < 10) {
|
||||
return 'ཞོགས་ཀས';
|
||||
} else if (hour < 17) {
|
||||
return 'ཉིན་གུང';
|
||||
} else if (hour < 20) {
|
||||
return 'དགོང་དག';
|
||||
} else {
|
||||
return 'མཚན་མོ';
|
||||
}
|
||||
},
|
||||
week: {
|
||||
dow: 0, // Sunday is the first day of the week.
|
||||
doy: 6, // The week that contains Jan 6th is the first week of the year.
|
||||
},
|
||||
});
|
||||
168
vendor/assets/javascripts/momentjs/dist/locale/br.js
vendored
Normal file
168
vendor/assets/javascripts/momentjs/dist/locale/br.js
vendored
Normal file
@@ -0,0 +1,168 @@
|
||||
//! moment.js locale configuration
|
||||
//! locale : Breton [br]
|
||||
//! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou
|
||||
|
||||
import moment from '../moment';
|
||||
|
||||
function relativeTimeWithMutation(number, withoutSuffix, key) {
|
||||
var format = {
|
||||
mm: 'munutenn',
|
||||
MM: 'miz',
|
||||
dd: 'devezh',
|
||||
};
|
||||
return number + ' ' + mutation(format[key], number);
|
||||
}
|
||||
function specialMutationForYears(number) {
|
||||
switch (lastNumber(number)) {
|
||||
case 1:
|
||||
case 3:
|
||||
case 4:
|
||||
case 5:
|
||||
case 9:
|
||||
return number + ' bloaz';
|
||||
default:
|
||||
return number + ' vloaz';
|
||||
}
|
||||
}
|
||||
function lastNumber(number) {
|
||||
if (number > 9) {
|
||||
return lastNumber(number % 10);
|
||||
}
|
||||
return number;
|
||||
}
|
||||
function mutation(text, number) {
|
||||
if (number === 2) {
|
||||
return softMutation(text);
|
||||
}
|
||||
return text;
|
||||
}
|
||||
function softMutation(text) {
|
||||
var mutationTable = {
|
||||
m: 'v',
|
||||
b: 'v',
|
||||
d: 'z',
|
||||
};
|
||||
if (mutationTable[text.charAt(0)] === undefined) {
|
||||
return text;
|
||||
}
|
||||
return mutationTable[text.charAt(0)] + text.substring(1);
|
||||
}
|
||||
|
||||
var monthsParse = [
|
||||
/^gen/i,
|
||||
/^c[ʼ\']hwe/i,
|
||||
/^meu/i,
|
||||
/^ebr/i,
|
||||
/^mae/i,
|
||||
/^(mez|eve)/i,
|
||||
/^gou/i,
|
||||
/^eos/i,
|
||||
/^gwe/i,
|
||||
/^her/i,
|
||||
/^du/i,
|
||||
/^ker/i,
|
||||
],
|
||||
monthsRegex =
|
||||
/^(genver|c[ʼ\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[ʼ\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,
|
||||
monthsStrictRegex =
|
||||
/^(genver|c[ʼ\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i,
|
||||
monthsShortStrictRegex =
|
||||
/^(gen|c[ʼ\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,
|
||||
fullWeekdaysParse = [
|
||||
/^sul/i,
|
||||
/^lun/i,
|
||||
/^meurzh/i,
|
||||
/^merc[ʼ\']her/i,
|
||||
/^yaou/i,
|
||||
/^gwener/i,
|
||||
/^sadorn/i,
|
||||
],
|
||||
shortWeekdaysParse = [
|
||||
/^Sul/i,
|
||||
/^Lun/i,
|
||||
/^Meu/i,
|
||||
/^Mer/i,
|
||||
/^Yao/i,
|
||||
/^Gwe/i,
|
||||
/^Sad/i,
|
||||
],
|
||||
minWeekdaysParse = [
|
||||
/^Su/i,
|
||||
/^Lu/i,
|
||||
/^Me([^r]|$)/i,
|
||||
/^Mer/i,
|
||||
/^Ya/i,
|
||||
/^Gw/i,
|
||||
/^Sa/i,
|
||||
];
|
||||
|
||||
export default moment.defineLocale('br', {
|
||||
months: 'Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split(
|
||||
'_'
|
||||
),
|
||||
monthsShort: 'Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'),
|
||||
weekdays: 'Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn'.split('_'),
|
||||
weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'),
|
||||
weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'),
|
||||
weekdaysParse: minWeekdaysParse,
|
||||
fullWeekdaysParse: fullWeekdaysParse,
|
||||
shortWeekdaysParse: shortWeekdaysParse,
|
||||
minWeekdaysParse: minWeekdaysParse,
|
||||
|
||||
monthsRegex: monthsRegex,
|
||||
monthsShortRegex: monthsRegex,
|
||||
monthsStrictRegex: monthsStrictRegex,
|
||||
monthsShortStrictRegex: monthsShortStrictRegex,
|
||||
monthsParse: monthsParse,
|
||||
longMonthsParse: monthsParse,
|
||||
shortMonthsParse: monthsParse,
|
||||
|
||||
longDateFormat: {
|
||||
LT: 'HH:mm',
|
||||
LTS: 'HH:mm:ss',
|
||||
L: 'DD/MM/YYYY',
|
||||
LL: 'D [a viz] MMMM YYYY',
|
||||
LLL: 'D [a viz] MMMM YYYY HH:mm',
|
||||
LLLL: 'dddd, D [a viz] MMMM YYYY HH:mm',
|
||||
},
|
||||
calendar: {
|
||||
sameDay: '[Hiziv da] LT',
|
||||
nextDay: '[Warcʼhoazh da] LT',
|
||||
nextWeek: 'dddd [da] LT',
|
||||
lastDay: '[Decʼh da] LT',
|
||||
lastWeek: 'dddd [paset da] LT',
|
||||
sameElse: 'L',
|
||||
},
|
||||
relativeTime: {
|
||||
future: 'a-benn %s',
|
||||
past: '%s ʼzo',
|
||||
s: 'un nebeud segondennoù',
|
||||
ss: '%d eilenn',
|
||||
m: 'ur vunutenn',
|
||||
mm: relativeTimeWithMutation,
|
||||
h: 'un eur',
|
||||
hh: '%d eur',
|
||||
d: 'un devezh',
|
||||
dd: relativeTimeWithMutation,
|
||||
M: 'ur miz',
|
||||
MM: relativeTimeWithMutation,
|
||||
y: 'ur bloaz',
|
||||
yy: specialMutationForYears,
|
||||
},
|
||||
dayOfMonthOrdinalParse: /\d{1,2}(añ|vet)/,
|
||||
ordinal: function (number) {
|
||||
var output = number === 1 ? 'añ' : 'vet';
|
||||
return number + output;
|
||||
},
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
meridiemParse: /a.m.|g.m./, // goude merenn | a-raok merenn
|
||||
isPM: function (token) {
|
||||
return token === 'g.m.';
|
||||
},
|
||||
meridiem: function (hour, minute, isLower) {
|
||||
return hour < 12 ? 'a.m.' : 'g.m.';
|
||||
},
|
||||
});
|
||||
150
vendor/assets/javascripts/momentjs/dist/locale/bs.js
vendored
Normal file
150
vendor/assets/javascripts/momentjs/dist/locale/bs.js
vendored
Normal file
@@ -0,0 +1,150 @@
|
||||
//! moment.js locale configuration
|
||||
//! locale : Bosnian [bs]
|
||||
//! author : Nedim Cholich : https://github.com/frontyard
|
||||
//! based on (hr) translation by Bojan Marković
|
||||
|
||||
import moment from '../moment';
|
||||
|
||||
function translate(number, withoutSuffix, key) {
|
||||
var result = number + ' ';
|
||||
switch (key) {
|
||||
case 'ss':
|
||||
if (number === 1) {
|
||||
result += 'sekunda';
|
||||
} else if (number === 2 || number === 3 || number === 4) {
|
||||
result += 'sekunde';
|
||||
} else {
|
||||
result += 'sekundi';
|
||||
}
|
||||
return result;
|
||||
case 'm':
|
||||
return withoutSuffix ? 'jedna minuta' : 'jedne minute';
|
||||
case 'mm':
|
||||
if (number === 1) {
|
||||
result += 'minuta';
|
||||
} else if (number === 2 || number === 3 || number === 4) {
|
||||
result += 'minute';
|
||||
} else {
|
||||
result += 'minuta';
|
||||
}
|
||||
return result;
|
||||
case 'h':
|
||||
return withoutSuffix ? 'jedan sat' : 'jednog sata';
|
||||
case 'hh':
|
||||
if (number === 1) {
|
||||
result += 'sat';
|
||||
} else if (number === 2 || number === 3 || number === 4) {
|
||||
result += 'sata';
|
||||
} else {
|
||||
result += 'sati';
|
||||
}
|
||||
return result;
|
||||
case 'dd':
|
||||
if (number === 1) {
|
||||
result += 'dan';
|
||||
} else {
|
||||
result += 'dana';
|
||||
}
|
||||
return result;
|
||||
case 'MM':
|
||||
if (number === 1) {
|
||||
result += 'mjesec';
|
||||
} else if (number === 2 || number === 3 || number === 4) {
|
||||
result += 'mjeseca';
|
||||
} else {
|
||||
result += 'mjeseci';
|
||||
}
|
||||
return result;
|
||||
case 'yy':
|
||||
if (number === 1) {
|
||||
result += 'godina';
|
||||
} else if (number === 2 || number === 3 || number === 4) {
|
||||
result += 'godine';
|
||||
} else {
|
||||
result += 'godina';
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
export default moment.defineLocale('bs', {
|
||||
months: 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split(
|
||||
'_'
|
||||
),
|
||||
monthsShort:
|
||||
'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split(
|
||||
'_'
|
||||
),
|
||||
monthsParseExact: true,
|
||||
weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(
|
||||
'_'
|
||||
),
|
||||
weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),
|
||||
weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),
|
||||
weekdaysParseExact: true,
|
||||
longDateFormat: {
|
||||
LT: 'H:mm',
|
||||
LTS: 'H:mm:ss',
|
||||
L: 'DD.MM.YYYY',
|
||||
LL: 'D. MMMM YYYY',
|
||||
LLL: 'D. MMMM YYYY H:mm',
|
||||
LLLL: 'dddd, D. MMMM YYYY H:mm',
|
||||
},
|
||||
calendar: {
|
||||
sameDay: '[danas u] LT',
|
||||
nextDay: '[sutra u] LT',
|
||||
nextWeek: function () {
|
||||
switch (this.day()) {
|
||||
case 0:
|
||||
return '[u] [nedjelju] [u] LT';
|
||||
case 3:
|
||||
return '[u] [srijedu] [u] LT';
|
||||
case 6:
|
||||
return '[u] [subotu] [u] LT';
|
||||
case 1:
|
||||
case 2:
|
||||
case 4:
|
||||
case 5:
|
||||
return '[u] dddd [u] LT';
|
||||
}
|
||||
},
|
||||
lastDay: '[jučer u] LT',
|
||||
lastWeek: function () {
|
||||
switch (this.day()) {
|
||||
case 0:
|
||||
case 3:
|
||||
return '[prošlu] dddd [u] LT';
|
||||
case 6:
|
||||
return '[prošle] [subote] [u] LT';
|
||||
case 1:
|
||||
case 2:
|
||||
case 4:
|
||||
case 5:
|
||||
return '[prošli] dddd [u] LT';
|
||||
}
|
||||
},
|
||||
sameElse: 'L',
|
||||
},
|
||||
relativeTime: {
|
||||
future: 'za %s',
|
||||
past: 'prije %s',
|
||||
s: 'par sekundi',
|
||||
ss: translate,
|
||||
m: translate,
|
||||
mm: translate,
|
||||
h: translate,
|
||||
hh: translate,
|
||||
d: 'dan',
|
||||
dd: translate,
|
||||
M: 'mjesec',
|
||||
MM: translate,
|
||||
y: 'godinu',
|
||||
yy: translate,
|
||||
},
|
||||
dayOfMonthOrdinalParse: /\d{1,2}\./,
|
||||
ordinal: '%d.',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 7, // The week that contains Jan 7th is the first week of the year.
|
||||
},
|
||||
});
|
||||
100
vendor/assets/javascripts/momentjs/dist/locale/ca.js
vendored
Normal file
100
vendor/assets/javascripts/momentjs/dist/locale/ca.js
vendored
Normal file
@@ -0,0 +1,100 @@
|
||||
//! moment.js locale configuration
|
||||
//! locale : Catalan [ca]
|
||||
//! author : Juan G. Hurtado : https://github.com/juanghurtado
|
||||
|
||||
import moment from '../moment';
|
||||
|
||||
export default moment.defineLocale('ca', {
|
||||
months: {
|
||||
standalone:
|
||||
'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split(
|
||||
'_'
|
||||
),
|
||||
format: "de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre".split(
|
||||
'_'
|
||||
),
|
||||
isFormat: /D[oD]?(\s)+MMMM/,
|
||||
},
|
||||
monthsShort:
|
||||
'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split(
|
||||
'_'
|
||||
),
|
||||
monthsParseExact: true,
|
||||
weekdays:
|
||||
'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split(
|
||||
'_'
|
||||
),
|
||||
weekdaysShort: 'dg._dl._dt._dc._dj._dv._ds.'.split('_'),
|
||||
weekdaysMin: 'dg_dl_dt_dc_dj_dv_ds'.split('_'),
|
||||
weekdaysParseExact: true,
|
||||
longDateFormat: {
|
||||
LT: 'H:mm',
|
||||
LTS: 'H:mm:ss',
|
||||
L: 'DD/MM/YYYY',
|
||||
LL: 'D MMMM [de] YYYY',
|
||||
ll: 'D MMM YYYY',
|
||||
LLL: 'D MMMM [de] YYYY [a les] H:mm',
|
||||
lll: 'D MMM YYYY, H:mm',
|
||||
LLLL: 'dddd D MMMM [de] YYYY [a les] H:mm',
|
||||
llll: 'ddd D MMM YYYY, H:mm',
|
||||
},
|
||||
calendar: {
|
||||
sameDay: function () {
|
||||
return '[avui a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';
|
||||
},
|
||||
nextDay: function () {
|
||||
return '[demà a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';
|
||||
},
|
||||
nextWeek: function () {
|
||||
return 'dddd [a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';
|
||||
},
|
||||
lastDay: function () {
|
||||
return '[ahir a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';
|
||||
},
|
||||
lastWeek: function () {
|
||||
return (
|
||||
'[el] dddd [passat a ' +
|
||||
(this.hours() !== 1 ? 'les' : 'la') +
|
||||
'] LT'
|
||||
);
|
||||
},
|
||||
sameElse: 'L',
|
||||
},
|
||||
relativeTime: {
|
||||
future: "d'aquí %s",
|
||||
past: 'fa %s',
|
||||
s: 'uns segons',
|
||||
ss: '%d segons',
|
||||
m: 'un minut',
|
||||
mm: '%d minuts',
|
||||
h: 'una hora',
|
||||
hh: '%d hores',
|
||||
d: 'un dia',
|
||||
dd: '%d dies',
|
||||
M: 'un mes',
|
||||
MM: '%d mesos',
|
||||
y: 'un any',
|
||||
yy: '%d anys',
|
||||
},
|
||||
dayOfMonthOrdinalParse: /\d{1,2}(r|n|t|è|a)/,
|
||||
ordinal: function (number, period) {
|
||||
var output =
|
||||
number === 1
|
||||
? 'r'
|
||||
: number === 2
|
||||
? 'n'
|
||||
: number === 3
|
||||
? 'r'
|
||||
: number === 4
|
||||
? 't'
|
||||
: 'è';
|
||||
if (period === 'w' || period === 'W') {
|
||||
output = 'a';
|
||||
}
|
||||
return number + output;
|
||||
},
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
});
|
||||
180
vendor/assets/javascripts/momentjs/dist/locale/cs.js
vendored
Normal file
180
vendor/assets/javascripts/momentjs/dist/locale/cs.js
vendored
Normal file
@@ -0,0 +1,180 @@
|
||||
//! moment.js locale configuration
|
||||
//! locale : Czech [cs]
|
||||
//! author : petrbela : https://github.com/petrbela
|
||||
|
||||
import moment from '../moment';
|
||||
|
||||
var months = {
|
||||
format: 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split(
|
||||
'_'
|
||||
),
|
||||
standalone:
|
||||
'ledna_února_března_dubna_května_června_července_srpna_září_října_listopadu_prosince'.split(
|
||||
'_'
|
||||
),
|
||||
},
|
||||
monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_'),
|
||||
monthsParse = [
|
||||
/^led/i,
|
||||
/^úno/i,
|
||||
/^bře/i,
|
||||
/^dub/i,
|
||||
/^kvě/i,
|
||||
/^(čvn|červen$|června)/i,
|
||||
/^(čvc|červenec|července)/i,
|
||||
/^srp/i,
|
||||
/^zář/i,
|
||||
/^říj/i,
|
||||
/^lis/i,
|
||||
/^pro/i,
|
||||
],
|
||||
// NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.
|
||||
// Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.
|
||||
monthsRegex =
|
||||
/^(leden|únor|březen|duben|květen|červenec|července|červen|června|srpen|září|říjen|listopad|prosinec|led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i;
|
||||
|
||||
function plural(n) {
|
||||
return n > 1 && n < 5 && ~~(n / 10) !== 1;
|
||||
}
|
||||
function translate(number, withoutSuffix, key, isFuture) {
|
||||
var result = number + ' ';
|
||||
switch (key) {
|
||||
case 's': // a few seconds / in a few seconds / a few seconds ago
|
||||
return withoutSuffix || isFuture ? 'pár sekund' : 'pár sekundami';
|
||||
case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago
|
||||
if (withoutSuffix || isFuture) {
|
||||
return result + (plural(number) ? 'sekundy' : 'sekund');
|
||||
} else {
|
||||
return result + 'sekundami';
|
||||
}
|
||||
case 'm': // a minute / in a minute / a minute ago
|
||||
return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou';
|
||||
case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago
|
||||
if (withoutSuffix || isFuture) {
|
||||
return result + (plural(number) ? 'minuty' : 'minut');
|
||||
} else {
|
||||
return result + 'minutami';
|
||||
}
|
||||
case 'h': // an hour / in an hour / an hour ago
|
||||
return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';
|
||||
case 'hh': // 9 hours / in 9 hours / 9 hours ago
|
||||
if (withoutSuffix || isFuture) {
|
||||
return result + (plural(number) ? 'hodiny' : 'hodin');
|
||||
} else {
|
||||
return result + 'hodinami';
|
||||
}
|
||||
case 'd': // a day / in a day / a day ago
|
||||
return withoutSuffix || isFuture ? 'den' : 'dnem';
|
||||
case 'dd': // 9 days / in 9 days / 9 days ago
|
||||
if (withoutSuffix || isFuture) {
|
||||
return result + (plural(number) ? 'dny' : 'dní');
|
||||
} else {
|
||||
return result + 'dny';
|
||||
}
|
||||
case 'M': // a month / in a month / a month ago
|
||||
return withoutSuffix || isFuture ? 'měsíc' : 'měsícem';
|
||||
case 'MM': // 9 months / in 9 months / 9 months ago
|
||||
if (withoutSuffix || isFuture) {
|
||||
return result + (plural(number) ? 'měsíce' : 'měsíců');
|
||||
} else {
|
||||
return result + 'měsíci';
|
||||
}
|
||||
case 'y': // a year / in a year / a year ago
|
||||
return withoutSuffix || isFuture ? 'rok' : 'rokem';
|
||||
case 'yy': // 9 years / in 9 years / 9 years ago
|
||||
if (withoutSuffix || isFuture) {
|
||||
return result + (plural(number) ? 'roky' : 'let');
|
||||
} else {
|
||||
return result + 'lety';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export default moment.defineLocale('cs', {
|
||||
months: months,
|
||||
monthsShort: monthsShort,
|
||||
monthsRegex: monthsRegex,
|
||||
monthsShortRegex: monthsRegex,
|
||||
// NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.
|
||||
// Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.
|
||||
monthsStrictRegex:
|
||||
/^(leden|ledna|února|únor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|září|říjen|října|listopadu|listopad|prosinec|prosince)/i,
|
||||
monthsShortStrictRegex:
|
||||
/^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i,
|
||||
monthsParse: monthsParse,
|
||||
longMonthsParse: monthsParse,
|
||||
shortMonthsParse: monthsParse,
|
||||
weekdays: 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'),
|
||||
weekdaysShort: 'ne_po_út_st_čt_pá_so'.split('_'),
|
||||
weekdaysMin: 'ne_po_út_st_čt_pá_so'.split('_'),
|
||||
longDateFormat: {
|
||||
LT: 'H:mm',
|
||||
LTS: 'H:mm:ss',
|
||||
L: 'DD.MM.YYYY',
|
||||
LL: 'D. MMMM YYYY',
|
||||
LLL: 'D. MMMM YYYY H:mm',
|
||||
LLLL: 'dddd D. MMMM YYYY H:mm',
|
||||
l: 'D. M. YYYY',
|
||||
},
|
||||
calendar: {
|
||||
sameDay: '[dnes v] LT',
|
||||
nextDay: '[zítra v] LT',
|
||||
nextWeek: function () {
|
||||
switch (this.day()) {
|
||||
case 0:
|
||||
return '[v neděli v] LT';
|
||||
case 1:
|
||||
case 2:
|
||||
return '[v] dddd [v] LT';
|
||||
case 3:
|
||||
return '[ve středu v] LT';
|
||||
case 4:
|
||||
return '[ve čtvrtek v] LT';
|
||||
case 5:
|
||||
return '[v pátek v] LT';
|
||||
case 6:
|
||||
return '[v sobotu v] LT';
|
||||
}
|
||||
},
|
||||
lastDay: '[včera v] LT',
|
||||
lastWeek: function () {
|
||||
switch (this.day()) {
|
||||
case 0:
|
||||
return '[minulou neděli v] LT';
|
||||
case 1:
|
||||
case 2:
|
||||
return '[minulé] dddd [v] LT';
|
||||
case 3:
|
||||
return '[minulou středu v] LT';
|
||||
case 4:
|
||||
case 5:
|
||||
return '[minulý] dddd [v] LT';
|
||||
case 6:
|
||||
return '[minulou sobotu v] LT';
|
||||
}
|
||||
},
|
||||
sameElse: 'L',
|
||||
},
|
||||
relativeTime: {
|
||||
future: 'za %s',
|
||||
past: 'před %s',
|
||||
s: translate,
|
||||
ss: translate,
|
||||
m: translate,
|
||||
mm: translate,
|
||||
h: translate,
|
||||
hh: translate,
|
||||
d: translate,
|
||||
dd: translate,
|
||||
M: translate,
|
||||
MM: translate,
|
||||
y: translate,
|
||||
yy: translate,
|
||||
},
|
||||
dayOfMonthOrdinalParse: /\d{1,2}\./,
|
||||
ordinal: '%d.',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
});
|
||||
63
vendor/assets/javascripts/momentjs/dist/locale/cv.js
vendored
Normal file
63
vendor/assets/javascripts/momentjs/dist/locale/cv.js
vendored
Normal file
@@ -0,0 +1,63 @@
|
||||
//! moment.js locale configuration
|
||||
//! locale : Chuvash [cv]
|
||||
//! author : Anatoly Mironov : https://github.com/mirontoli
|
||||
|
||||
import moment from '../moment';
|
||||
|
||||
export default moment.defineLocale('cv', {
|
||||
months: 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split(
|
||||
'_'
|
||||
),
|
||||
monthsShort: 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'),
|
||||
weekdays:
|
||||
'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split(
|
||||
'_'
|
||||
),
|
||||
weekdaysShort: 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'),
|
||||
weekdaysMin: 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'),
|
||||
longDateFormat: {
|
||||
LT: 'HH:mm',
|
||||
LTS: 'HH:mm:ss',
|
||||
L: 'DD-MM-YYYY',
|
||||
LL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]',
|
||||
LLL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',
|
||||
LLLL: 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',
|
||||
},
|
||||
calendar: {
|
||||
sameDay: '[Паян] LT [сехетре]',
|
||||
nextDay: '[Ыран] LT [сехетре]',
|
||||
lastDay: '[Ӗнер] LT [сехетре]',
|
||||
nextWeek: '[Ҫитес] dddd LT [сехетре]',
|
||||
lastWeek: '[Иртнӗ] dddd LT [сехетре]',
|
||||
sameElse: 'L',
|
||||
},
|
||||
relativeTime: {
|
||||
future: function (output) {
|
||||
var affix = /сехет$/i.exec(output)
|
||||
? 'рен'
|
||||
: /ҫул$/i.exec(output)
|
||||
? 'тан'
|
||||
: 'ран';
|
||||
return output + affix;
|
||||
},
|
||||
past: '%s каялла',
|
||||
s: 'пӗр-ик ҫеккунт',
|
||||
ss: '%d ҫеккунт',
|
||||
m: 'пӗр минут',
|
||||
mm: '%d минут',
|
||||
h: 'пӗр сехет',
|
||||
hh: '%d сехет',
|
||||
d: 'пӗр кун',
|
||||
dd: '%d кун',
|
||||
M: 'пӗр уйӑх',
|
||||
MM: '%d уйӑх',
|
||||
y: 'пӗр ҫул',
|
||||
yy: '%d ҫул',
|
||||
},
|
||||
dayOfMonthOrdinalParse: /\d{1,2}-мӗш/,
|
||||
ordinal: '%d-мӗш',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 7, // The week that contains Jan 7th is the first week of the year.
|
||||
},
|
||||
});
|
||||
98
vendor/assets/javascripts/momentjs/dist/locale/cy.js
vendored
Normal file
98
vendor/assets/javascripts/momentjs/dist/locale/cy.js
vendored
Normal file
@@ -0,0 +1,98 @@
|
||||
//! moment.js locale configuration
|
||||
//! locale : Welsh [cy]
|
||||
//! author : Robert Allen : https://github.com/robgallen
|
||||
//! author : https://github.com/ryangreaves
|
||||
|
||||
import moment from '../moment';
|
||||
|
||||
export default moment.defineLocale('cy', {
|
||||
months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split(
|
||||
'_'
|
||||
),
|
||||
monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split(
|
||||
'_'
|
||||
),
|
||||
weekdays:
|
||||
'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split(
|
||||
'_'
|
||||
),
|
||||
weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'),
|
||||
weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'),
|
||||
weekdaysParseExact: true,
|
||||
// time formats are the same as en-gb
|
||||
longDateFormat: {
|
||||
LT: 'HH:mm',
|
||||
LTS: 'HH:mm:ss',
|
||||
L: 'DD/MM/YYYY',
|
||||
LL: 'D MMMM YYYY',
|
||||
LLL: 'D MMMM YYYY HH:mm',
|
||||
LLLL: 'dddd, D MMMM YYYY HH:mm',
|
||||
},
|
||||
calendar: {
|
||||
sameDay: '[Heddiw am] LT',
|
||||
nextDay: '[Yfory am] LT',
|
||||
nextWeek: 'dddd [am] LT',
|
||||
lastDay: '[Ddoe am] LT',
|
||||
lastWeek: 'dddd [diwethaf am] LT',
|
||||
sameElse: 'L',
|
||||
},
|
||||
relativeTime: {
|
||||
future: 'mewn %s',
|
||||
past: '%s yn ôl',
|
||||
s: 'ychydig eiliadau',
|
||||
ss: '%d eiliad',
|
||||
m: 'munud',
|
||||
mm: '%d munud',
|
||||
h: 'awr',
|
||||
hh: '%d awr',
|
||||
d: 'diwrnod',
|
||||
dd: '%d diwrnod',
|
||||
M: 'mis',
|
||||
MM: '%d mis',
|
||||
y: 'blwyddyn',
|
||||
yy: '%d flynedd',
|
||||
},
|
||||
dayOfMonthOrdinalParse: /\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,
|
||||
// traditional ordinal numbers above 31 are not commonly used in colloquial Welsh
|
||||
ordinal: function (number) {
|
||||
var b = number,
|
||||
output = '',
|
||||
lookup = [
|
||||
'',
|
||||
'af',
|
||||
'il',
|
||||
'ydd',
|
||||
'ydd',
|
||||
'ed',
|
||||
'ed',
|
||||
'ed',
|
||||
'fed',
|
||||
'fed',
|
||||
'fed', // 1af to 10fed
|
||||
'eg',
|
||||
'fed',
|
||||
'eg',
|
||||
'eg',
|
||||
'fed',
|
||||
'eg',
|
||||
'eg',
|
||||
'fed',
|
||||
'eg',
|
||||
'fed', // 11eg to 20fed
|
||||
];
|
||||
if (b > 20) {
|
||||
if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) {
|
||||
output = 'fed'; // not 30ain, 70ain or 90ain
|
||||
} else {
|
||||
output = 'ain';
|
||||
}
|
||||
} else if (b > 0) {
|
||||
output = lookup[b];
|
||||
}
|
||||
return number + output;
|
||||
},
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
});
|
||||
53
vendor/assets/javascripts/momentjs/dist/locale/da.js
vendored
Normal file
53
vendor/assets/javascripts/momentjs/dist/locale/da.js
vendored
Normal file
@@ -0,0 +1,53 @@
|
||||
//! moment.js locale configuration
|
||||
//! locale : Danish [da]
|
||||
//! author : Ulrik Nielsen : https://github.com/mrbase
|
||||
|
||||
import moment from '../moment';
|
||||
|
||||
export default moment.defineLocale('da', {
|
||||
months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split(
|
||||
'_'
|
||||
),
|
||||
monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),
|
||||
weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),
|
||||
weekdaysShort: 'søn_man_tir_ons_tor_fre_lør'.split('_'),
|
||||
weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),
|
||||
longDateFormat: {
|
||||
LT: 'HH:mm',
|
||||
LTS: 'HH:mm:ss',
|
||||
L: 'DD.MM.YYYY',
|
||||
LL: 'D. MMMM YYYY',
|
||||
LLL: 'D. MMMM YYYY HH:mm',
|
||||
LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm',
|
||||
},
|
||||
calendar: {
|
||||
sameDay: '[i dag kl.] LT',
|
||||
nextDay: '[i morgen kl.] LT',
|
||||
nextWeek: 'på dddd [kl.] LT',
|
||||
lastDay: '[i går kl.] LT',
|
||||
lastWeek: '[i] dddd[s kl.] LT',
|
||||
sameElse: 'L',
|
||||
},
|
||||
relativeTime: {
|
||||
future: 'om %s',
|
||||
past: '%s siden',
|
||||
s: 'få sekunder',
|
||||
ss: '%d sekunder',
|
||||
m: 'et minut',
|
||||
mm: '%d minutter',
|
||||
h: 'en time',
|
||||
hh: '%d timer',
|
||||
d: 'en dag',
|
||||
dd: '%d dage',
|
||||
M: 'en måned',
|
||||
MM: '%d måneder',
|
||||
y: 'et år',
|
||||
yy: '%d år',
|
||||
},
|
||||
dayOfMonthOrdinalParse: /\d{1,2}\./,
|
||||
ordinal: '%d.',
|
||||
week: {
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
});
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user