diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md
new file mode 100644
index 0000000000..c4e5e59e9c
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE.md
@@ -0,0 +1,5 @@
+### Expected behavior / Resultado esperado / Résultat attendu
+
+### Actual behavior / Resultado real / Résultat réel
+
+### Steps to reproduce / Pasos para reproducir / Étapes pour reproduire
diff --git a/README.md b/README.md
index b0915ad82c..f005cf3f76 100644
--- a/README.md
+++ b/README.md
@@ -177,4 +177,4 @@ In short, we ask you to send us Pull Requests based on a branch that you create
with this purpose into your repository forked from the original Chamilo repository.
# Documentation
-For more information on Chamilo, visit https://stable.chamilo.org/documentation
+For more information on Chamilo, visit https://1.11.chamilo.org/documentation/index.html
diff --git a/app/Migrations/Schema/V110/Version20151221150100.php b/app/Migrations/Schema/V110/Version20151221150100.php
index 8d4b7ba81a..eeebc5bfe6 100644
--- a/app/Migrations/Schema/V110/Version20151221150100.php
+++ b/app/Migrations/Schema/V110/Version20151221150100.php
@@ -29,9 +29,9 @@ class Version20151221150100 extends AbstractMigrationChamilo
$this->addSql("
UPDATE track_e_attempt a
INNER JOIN c_quiz_answer qa
- ON a.question_id = qa.question_id
+ ON (a.question_id = qa.question_id AND a.c_id = qa.c_id)
INNER JOIN c_quiz_question q
- ON qa.question_id = q.id
+ ON (qa.question_id = q.id AND qa.c_id = q.c_id)
SET a.answer = qa.id_auto
WHERE
a.answer = qa.id AND
@@ -42,9 +42,9 @@ class Version20151221150100 extends AbstractMigrationChamilo
$this->addSql("
UPDATE c_quiz_answer a
INNER JOIN c_quiz_answer b
- ON a.question_id = b.question_id
+ ON (a.question_id = b.question_id AND b.c_id = a.c_id)
INNER JOIN c_quiz_question q
- ON b.question_id = q.id
+ ON (b.question_id = q.id AND b.c_id = q.c_id)
SET a.correct = b.id_auto
WHERE
a.correct = b.id AND
diff --git a/app/Migrations/Schema/V111/Version111.php b/app/Migrations/Schema/V111/Version111.php
index 4bef423f58..54e8338d62 100644
--- a/app/Migrations/Schema/V111/Version111.php
+++ b/app/Migrations/Schema/V111/Version111.php
@@ -270,7 +270,6 @@ class Version111 extends AbstractMigrationChamilo
$this->addSql("INSERT INTO settings_current (variable, subkey, type, category, selected_value, title, comment, scope, subkeytext, access_url_changeable) VALUES ('show_link_ticket_notification', NULL, 'radio', 'Platform', 'false', 'ShowLinkTicketNotificationTitle', 'ShowLinkTicketNotificationComment', NULL, NULL, 0)");
$this->addSql("INSERT INTO settings_current (variable, subkey, type, category, selected_value, title, comment, access_url) VALUES ('sso_authentication_subclass', NULL, 'textfield', 'Security', '', 'SSOSubclassTitle', 'SSOSubclassComment', 1)");
-
$this->addSql("INSERT INTO settings_options (variable, value, display_text) VALUES ('ticket_allow_student_add', 'true', 'Yes'), ('ticket_allow_student_add', 'false', 'No')");
$this->addSql("INSERT INTO settings_options (variable, value, display_text) VALUES ('ticket_allow_category_edition', 'true', 'Yes'), ('ticket_allow_category_edition', 'false', 'No')");
$this->addSql("INSERT INTO settings_options (variable, value, display_text) VALUES ('ticket_send_warning_to_all_admins', 'true', 'Yes'), ('ticket_send_warning_to_all_admins', 'false', 'No')");
@@ -314,6 +313,8 @@ class Version111 extends AbstractMigrationChamilo
$this->addSql('DELETE FROM settings_current WHERE variable = "course_create_active_tools" AND subkey = "online_conference"');
$this->addSql('DELETE FROM settings_options WHERE variable = "visio_use_rtmpt"');
$this->addSql('DELETE FROM course_module WHERE name = "conference"');
+ $this->addSql('ALTER TABLE c_student_publication_assignment CHANGE add_to_calendar add_to_calendar INT NOT NULL;');
+ $this->addSql('ALTER TABLE extra_field ADD visible_to_others TINYINT(1) DEFAULT NULL, CHANGE visible visible_to_self TINYINT(1) DEFAULT NULL');
}
/**
diff --git a/app/Resources/public/assets/MathJax/.bower.json b/app/Resources/public/assets/MathJax/.bower.json
index 083cf71b67..3ddbcd2c80 100644
--- a/app/Resources/public/assets/MathJax/.bower.json
+++ b/app/Resources/public/assets/MathJax/.bower.json
@@ -21,7 +21,7 @@
"tag": "2.5.3",
"commit": "ba9afeb5a743249acdea17540b48b14ebc95dbe4"
},
- "_source": "git://github.com/mathjax/MathJax.git",
+ "_source": "https://github.com/mathjax/MathJax.git",
"_target": "2.5.*",
"_originalSource": "MathJax"
}
\ No newline at end of file
diff --git a/app/Resources/public/assets/blueimp-canvas-to-blob/.bower.json b/app/Resources/public/assets/blueimp-canvas-to-blob/.bower.json
index 23248bfef7..97383b71eb 100644
--- a/app/Resources/public/assets/blueimp-canvas-to-blob/.bower.json
+++ b/app/Resources/public/assets/blueimp-canvas-to-blob/.bower.json
@@ -1,14 +1,14 @@
{
"name": "blueimp-canvas-to-blob",
"homepage": "https://github.com/blueimp/JavaScript-Canvas-to-Blob",
- "version": "3.3.0",
- "_release": "3.3.0",
+ "version": "3.4.0",
+ "_release": "3.4.0",
"_resolution": {
"type": "version",
- "tag": "v3.3.0",
- "commit": "443806e20bf0cc6e5b812b0cf686f3109d791074"
+ "tag": "v3.4.0",
+ "commit": "ca0326180f984600aa25eab8a19c4be11b5f048c"
},
- "_source": "git://github.com/blueimp/JavaScript-Canvas-to-Blob.git",
+ "_source": "https://github.com/blueimp/JavaScript-Canvas-to-Blob.git",
"_target": ">=2.1.1",
"_originalSource": "blueimp-canvas-to-blob"
}
\ No newline at end of file
diff --git a/app/Resources/public/assets/blueimp-canvas-to-blob/js/canvas-to-blob.js b/app/Resources/public/assets/blueimp-canvas-to-blob/js/canvas-to-blob.js
index 35da26e534..32913667b1 100644
--- a/app/Resources/public/assets/blueimp-canvas-to-blob/js/canvas-to-blob.js
+++ b/app/Resources/public/assets/blueimp-canvas-to-blob/js/canvas-to-blob.js
@@ -12,7 +12,7 @@
* http://stackoverflow.com/q/4998908
*/
-/*global window, atob, Blob, ArrayBuffer, Uint8Array, define, module */
+/* global atob, Blob, define */
;(function (window) {
'use strict'
diff --git a/app/Resources/public/assets/blueimp-canvas-to-blob/package.json b/app/Resources/public/assets/blueimp-canvas-to-blob/package.json
index f802ad79f3..c93906a828 100644
--- a/app/Resources/public/assets/blueimp-canvas-to-blob/package.json
+++ b/app/Resources/public/assets/blueimp-canvas-to-blob/package.json
@@ -1,6 +1,6 @@
{
"name": "blueimp-canvas-to-blob",
- "version": "3.3.0",
+ "version": "3.4.0",
"title": "JavaScript Canvas to Blob",
"description": "Canvas to Blob is a polyfill for the standard JavaScript canvas.toBlob method. It can be used to create Blob objects from an HTML canvas element.",
"keywords": [
@@ -22,12 +22,15 @@
"license": "MIT",
"main": "./js/canvas-to-blob.js",
"devDependencies": {
- "mocha-phantomjs": "4.0.1",
- "standard": "6.0.7",
- "uglify-js": "2.6.1"
+ "phantomjs-prebuilt": "2.1.13",
+ "mocha-phantomjs-core": "1.3.1",
+ "standard": "8.3.0",
+ "uglify-js": "2.7.3"
},
"scripts": {
- "test": "standard js/*.js test/*.js && mocha-phantomjs test/index.html",
+ "lint": "standard js/*.js test/*.js",
+ "unit": "phantomjs node_modules/mocha-phantomjs-core/mocha-phantomjs-core.js test/index.html",
+ "test": "npm run lint && npm run unit",
"build": "cd js && uglifyjs canvas-to-blob.js -c -m -o canvas-to-blob.min.js --source-map canvas-to-blob.min.js.map",
"preversion": "npm test",
"version": "npm run build && git add -A js",
diff --git a/app/Resources/public/assets/blueimp-canvas-to-blob/test/index.html b/app/Resources/public/assets/blueimp-canvas-to-blob/test/index.html
index 1b47d0590c..9839390fa6 100644
--- a/app/Resources/public/assets/blueimp-canvas-to-blob/test/index.html
+++ b/app/Resources/public/assets/blueimp-canvas-to-blob/test/index.html
@@ -24,7 +24,7 @@
-
+
-
+
diff --git a/app/Resources/public/assets/blueimp-load-image/js/demo.js b/app/Resources/public/assets/blueimp-load-image/js/demo.js
index 9c4a2a2147..ca1c6900c4 100644
--- a/app/Resources/public/assets/blueimp-load-image/js/demo.js
+++ b/app/Resources/public/assets/blueimp-load-image/js/demo.js
@@ -9,7 +9,7 @@
* http://www.opensource.org/licenses/MIT
*/
-/*global window, document, loadImage, HTMLCanvasElement, $ */
+/* global loadImage, HTMLCanvasElement, $ */
$(function () {
'use strict'
@@ -20,32 +20,7 @@ $(function () {
var actionsNode = $('#actions')
var currentFile
var coordinates
- function replaceResults (img) {
- var content
- if (!(img.src || img instanceof HTMLCanvasElement)) {
- content = $('Loading image file failed')
- } else {
- content = $('').append(img)
- .attr('download', currentFile.name)
- .attr('href', img.src || img.toDataURL())
- }
- result.children().replaceWith(content)
- if (img.getContext) {
- actionsNode.show()
- }
- }
- function displayImage (file, options) {
- currentFile = file
- if (!loadImage(
- file,
- replaceResults,
- options
- )) {
- result.children().replaceWith(
- $('Your browser does not support the URL or FileReader API.')
- )
- }
- }
+
function displayExifData (exif) {
var thumbnail = exif.get('Thumbnail')
var tags = exif.getAll()
@@ -70,6 +45,40 @@ $(function () {
}
exifNode.show()
}
+
+ function updateResults (img, data) {
+ var content
+ if (!(img.src || img instanceof HTMLCanvasElement)) {
+ content = $('Loading image file failed')
+ } else {
+ content = $('').append(img)
+ .attr('download', currentFile.name)
+ .attr('href', img.src || img.toDataURL())
+ }
+ result.children().replaceWith(content)
+ if (img.getContext) {
+ actionsNode.show()
+ }
+ if (data && data.exif) {
+ displayExifData(data.exif)
+ }
+ }
+
+ function displayImage (file, options) {
+ currentFile = file
+ if (!loadImage(
+ file,
+ updateResults,
+ options
+ )) {
+ result.children().replaceWith(
+ $('' +
+ 'Your browser does not support the URL or FileReader API.' +
+ '')
+ )
+ }
+ }
+
function dropChangeHandler (e) {
e.preventDefault()
e = e.originalEvent
@@ -79,25 +88,23 @@ $(function () {
maxWidth: result.width(),
canvas: true,
pixelRatio: window.devicePixelRatio,
- downsamplingRatio: 0.5
+ downsamplingRatio: 0.5,
+ orientation: true
}
if (!file) {
return
}
exifNode.hide()
thumbNode.hide()
- loadImage.parseMetaData(file, function (data) {
- if (data.exif) {
- options.orientation = data.exif.get('Orientation')
- displayExifData(data.exif)
- }
- displayImage(file, options)
- })
+ displayImage(file, options)
}
+
// Hide URL/FileReader API requirement message in capable browsers:
- if (window.createObjectURL || window.URL || window.webkitURL || window.FileReader) {
+ if (window.createObjectURL || window.URL || window.webkitURL ||
+ window.FileReader) {
result.children().hide()
}
+
$(document)
.on('dragover', function (e) {
e.preventDefault()
@@ -105,45 +112,51 @@ $(function () {
e.dataTransfer.dropEffect = 'copy'
})
.on('drop', dropChangeHandler)
- $('#file-input').on('change', dropChangeHandler)
- $('#edit').on('click', function (event) {
- event.preventDefault()
- var imgNode = result.find('img, canvas')
- var img = imgNode[0]
- var pixelRatio = window.devicePixelRatio || 1
- imgNode.Jcrop({
- setSelect: [
- 40,
- 40,
- (img.width / pixelRatio) - 40,
- (img.height / pixelRatio) - 40
- ],
- onSelect: function (coords) {
- coordinates = coords
- },
- onRelease: function () {
+
+ $('#file-input')
+ .on('change', dropChangeHandler)
+
+ $('#edit')
+ .on('click', function (event) {
+ event.preventDefault()
+ var imgNode = result.find('img, canvas')
+ var img = imgNode[0]
+ var pixelRatio = window.devicePixelRatio || 1
+ imgNode.Jcrop({
+ setSelect: [
+ 40,
+ 40,
+ (img.width / pixelRatio) - 40,
+ (img.height / pixelRatio) - 40
+ ],
+ onSelect: function (coords) {
+ coordinates = coords
+ },
+ onRelease: function () {
+ coordinates = null
+ }
+ }).parent().on('click', function (event) {
+ event.preventDefault()
+ })
+ })
+
+ $('#crop')
+ .on('click', function (event) {
+ event.preventDefault()
+ var img = result.find('img, canvas')[0]
+ var pixelRatio = window.devicePixelRatio || 1
+ if (img && coordinates) {
+ updateResults(loadImage.scale(img, {
+ left: coordinates.x * pixelRatio,
+ top: coordinates.y * pixelRatio,
+ sourceWidth: coordinates.w * pixelRatio,
+ sourceHeight: coordinates.h * pixelRatio,
+ minWidth: result.width(),
+ maxWidth: result.width(),
+ pixelRatio: pixelRatio,
+ downsamplingRatio: 0.5
+ }))
coordinates = null
}
- }).parent().on('click', function (event) {
- event.preventDefault()
})
- })
- $('#crop').on('click', function (event) {
- event.preventDefault()
- var img = result.find('img, canvas')[0]
- var pixelRatio = window.devicePixelRatio || 1
- if (img && coordinates) {
- replaceResults(loadImage.scale(img, {
- left: coordinates.x * pixelRatio,
- top: coordinates.y * pixelRatio,
- sourceWidth: coordinates.w * pixelRatio,
- sourceHeight: coordinates.h * pixelRatio,
- minWidth: result.width(),
- maxWidth: result.width(),
- pixelRatio: pixelRatio,
- downsamplingRatio: 0.5
- }))
- coordinates = null
- }
- })
})
diff --git a/app/Resources/public/assets/blueimp-load-image/js/load-image-exif-map.js b/app/Resources/public/assets/blueimp-load-image/js/load-image-exif-map.js
index 1a36108254..3a97c0bec5 100644
--- a/app/Resources/public/assets/blueimp-load-image/js/load-image-exif-map.js
+++ b/app/Resources/public/assets/blueimp-load-image/js/load-image-exif-map.js
@@ -12,7 +12,7 @@
* http://www.opensource.org/licenses/MIT
*/
-/*global define, module, require, window */
+/* global define */
;(function (factory) {
'use strict'
diff --git a/app/Resources/public/assets/blueimp-load-image/js/load-image-exif.js b/app/Resources/public/assets/blueimp-load-image/js/load-image-exif.js
index 96f9824059..bb7fe3798c 100644
--- a/app/Resources/public/assets/blueimp-load-image/js/load-image-exif.js
+++ b/app/Resources/public/assets/blueimp-load-image/js/load-image-exif.js
@@ -9,7 +9,7 @@
* http://www.opensource.org/licenses/MIT
*/
-/*global define, module, require, window, console */
+/* global define */
;(function (factory) {
'use strict'
diff --git a/app/Resources/public/assets/blueimp-load-image/js/load-image-meta.js b/app/Resources/public/assets/blueimp-load-image/js/load-image-meta.js
index 994cf9da7b..0f668c1a64 100644
--- a/app/Resources/public/assets/blueimp-load-image/js/load-image-meta.js
+++ b/app/Resources/public/assets/blueimp-load-image/js/load-image-meta.js
@@ -13,7 +13,7 @@
* http://www.opensource.org/licenses/MIT
*/
-/*global define, module, require, window, DataView, Blob, Uint8Array, console */
+/* global define, Blob */
;(function (factory) {
'use strict'
@@ -49,12 +49,12 @@
// The options arguments accepts an object and supports the following properties:
// * maxMetaDataSize: Defines the maximum number of bytes to parse.
// * disableImageHead: Disables creating the imageHead property.
- loadImage.parseMetaData = function (file, callback, options) {
+ loadImage.parseMetaData = function (file, callback, options, data) {
options = options || {}
+ data = data || {}
var that = this
// 256 KiB should contain all EXIF/ICC/IPTC segments:
var maxMetaDataSize = options.maxMetaDataSize || 262144
- var data = {}
var noMetaData = !(window.DataView && file && file.size >= 12 &&
file.type === 'image/jpeg' && loadImage.blobSlice)
if (noMetaData || !loadImage.readFile(
@@ -140,4 +140,20 @@
callback(data)
}
}
+
+ // Determines if meta data should be loaded automatically:
+ loadImage.hasMetaOption = function (options) {
+ return options.meta
+ }
+
+ var originalTransform = loadImage.transform
+ loadImage.transform = function (img, options, callback, file, data) {
+ if (loadImage.hasMetaOption(options || {})) {
+ loadImage.parseMetaData(file, function (data) {
+ originalTransform.call(loadImage, img, options, callback, file, data)
+ }, options, data)
+ } else {
+ originalTransform.apply(loadImage, arguments)
+ }
+ }
}))
diff --git a/app/Resources/public/assets/blueimp-load-image/js/load-image-orientation.js b/app/Resources/public/assets/blueimp-load-image/js/load-image-orientation.js
index a321b4b846..f38908114d 100644
--- a/app/Resources/public/assets/blueimp-load-image/js/load-image-orientation.js
+++ b/app/Resources/public/assets/blueimp-load-image/js/load-image-orientation.js
@@ -9,7 +9,7 @@
* http://www.opensource.org/licenses/MIT
*/
-/*global define, module, require, window */
+/* global define */
;(function (factory) {
'use strict'
@@ -26,16 +26,22 @@
'use strict'
var originalHasCanvasOption = loadImage.hasCanvasOption
+ var originalHasMetaOption = loadImage.hasMetaOption
var originalTransformCoordinates = loadImage.transformCoordinates
var originalGetTransformedOptions = loadImage.getTransformedOptions
- // This method is used to determine if the target image
- // should be a canvas element:
+ // Determines if the target image should be a canvas element:
loadImage.hasCanvasOption = function (options) {
return !!options.orientation ||
originalHasCanvasOption.call(loadImage, options)
}
+ // Determines if meta data should be loaded automatically:
+ loadImage.hasMetaOption = function (options) {
+ return options.orientation === true ||
+ originalHasMetaOption.call(loadImage, options)
+ }
+
// Transform image orientation based on
// the given EXIF orientation option:
loadImage.transformCoordinates = function (canvas, options) {
@@ -97,11 +103,14 @@
// Transforms coordinate and dimension options
// based on the given orientation option:
- loadImage.getTransformedOptions = function (img, opts) {
+ loadImage.getTransformedOptions = function (img, opts, data) {
var options = originalGetTransformedOptions.call(loadImage, img, opts)
var orientation = options.orientation
var newOptions
var i
+ if (orientation === true && data && data.exif) {
+ orientation = data.exif.get('Orientation')
+ }
if (!orientation || orientation > 8 || orientation === 1) {
return options
}
@@ -111,7 +120,8 @@
newOptions[i] = options[i]
}
}
- switch (options.orientation) {
+ newOptions.orientation = orientation
+ switch (orientation) {
case 2:
// horizontal flip
newOptions.left = options.right
diff --git a/app/Resources/public/assets/blueimp-load-image/js/load-image.all.min.js b/app/Resources/public/assets/blueimp-load-image/js/load-image.all.min.js
index 137b984491..5be6d36809 100644
--- a/app/Resources/public/assets/blueimp-load-image/js/load-image.all.min.js
+++ b/app/Resources/public/assets/blueimp-load-image/js/load-image.all.min.js
@@ -1,2 +1,2 @@
-!function(e){"use strict";var t=function(e,i,a){var o,r,n=document.createElement("img");if(n.onerror=i,n.onload=function(){!r||a&&a.noRevoke||t.revokeObjectURL(r),i&&i(t.scale(n,a))},t.isInstanceOf("Blob",e)||t.isInstanceOf("File",e))o=r=t.createObjectURL(e),n._type=e.type;else{if("string"!=typeof e)return!1;o=e,a&&a.crossOrigin&&(n.crossOrigin=a.crossOrigin)}return o?(n.src=o,n):t.readFile(e,function(e){var t=e.target;t&&t.result?n.src=t.result:i&&i(e)})},i=window.createObjectURL&&window||window.URL&&URL.revokeObjectURL&&URL||window.webkitURL&&webkitURL;t.isInstanceOf=function(e,t){return Object.prototype.toString.call(t)==="[object "+e+"]"},t.transformCoordinates=function(){},t.getTransformedOptions=function(e,t){var i,a,o,r,n=t.aspectRatio;if(!n)return t;i={};for(a in t)t.hasOwnProperty(a)&&(i[a]=t[a]);return i.crop=!0,o=e.naturalWidth||e.width,r=e.naturalHeight||e.height,o/r>n?(i.maxWidth=r*n,i.maxHeight=r):(i.maxWidth=o,i.maxHeight=o/n),i},t.renderImageToCanvas=function(e,t,i,a,o,r,n,s,l,d){return e.getContext("2d").drawImage(t,i,a,o,r,n,s,l,d),e},t.hasCanvasOption=function(e){return e.canvas||e.crop||!!e.aspectRatio},t.scale=function(e,i){function a(){var e=Math.max((s||y)/y,(l||v)/v);e>1&&(y*=e,v*=e)}function o(){var e=Math.min((r||y)/y,(n||v)/v);1>e&&(y*=e,v*=e)}i=i||{};var r,n,s,l,d,u,c,g,f,h,m,p=document.createElement("canvas"),S=e.getContext||t.hasCanvasOption(i)&&p.getContext,b=e.naturalWidth||e.width,x=e.naturalHeight||e.height,y=b,v=x;if(S&&(i=t.getTransformedOptions(e,i),c=i.left||0,g=i.top||0,i.sourceWidth?(d=i.sourceWidth,void 0!==i.right&&void 0===i.left&&(c=b-d-i.right)):d=b-c-(i.right||0),i.sourceHeight?(u=i.sourceHeight,void 0!==i.bottom&&void 0===i.top&&(g=x-u-i.bottom)):u=x-g-(i.bottom||0),y=d,v=u),r=i.maxWidth,n=i.maxHeight,s=i.minWidth,l=i.minHeight,S&&r&&n&&i.crop?(y=r,v=n,m=d/u-r/n,0>m?(u=n*d/r,void 0===i.top&&void 0===i.bottom&&(g=(x-u)/2)):m>0&&(d=r*u/n,void 0===i.left&&void 0===i.right&&(c=(b-d)/2))):((i.contain||i.cover)&&(s=r=r||s,l=n=n||l),i.cover?(o(),a()):(a(),o())),S){if(f=i.pixelRatio,f>1&&(p.style.width=y+"px",p.style.height=v+"px",y*=f,v*=f,p.getContext("2d").scale(f,f)),h=i.downsamplingRatio,h>0&&1>h&&d>y&&u>v)for(;d*h>y;)p.width=d*h,p.height=u*h,t.renderImageToCanvas(p,e,c,g,d,u,0,0,p.width,p.height),d=p.width,u=p.height,e=document.createElement("canvas"),e.width=d,e.height=u,t.renderImageToCanvas(e,p,0,0,d,u,0,0,d,u);return p.width=y,p.height=v,t.transformCoordinates(p,i),t.renderImageToCanvas(p,e,c,g,d,u,0,0,y,v)}return e.width=y,e.height=v,e},t.createObjectURL=function(e){return i?i.createObjectURL(e):!1},t.revokeObjectURL=function(e){return i?i.revokeObjectURL(e):!1},t.readFile=function(e,t,i){if(window.FileReader){var a=new FileReader;if(a.onload=a.onerror=t,i=i||"readAsDataURL",a[i])return a[i](e),a}return!1},"function"==typeof define&&define.amd?define(function(){return t}):"object"==typeof module&&module.exports?module.exports=t:e.loadImage=t}(window),function(e){"use strict";"function"==typeof define&&define.amd?define(["./load-image"],e):e("object"==typeof module&&module.exports?require("./load-image"):window.loadImage)}(function(e){"use strict";var t=e.hasCanvasOption,i=e.transformCoordinates,a=e.getTransformedOptions;e.hasCanvasOption=function(i){return!!i.orientation||t.call(e,i)},e.transformCoordinates=function(t,a){i.call(e,t,a);var o=t.getContext("2d"),r=t.width,n=t.height,s=t.style.width,l=t.style.height,d=a.orientation;if(d&&!(d>8))switch(d>4&&(t.width=n,t.height=r,t.style.width=l,t.style.height=s),d){case 2:o.translate(r,0),o.scale(-1,1);break;case 3:o.translate(r,n),o.rotate(Math.PI);break;case 4:o.translate(0,n),o.scale(1,-1);break;case 5:o.rotate(.5*Math.PI),o.scale(1,-1);break;case 6:o.rotate(.5*Math.PI),o.translate(0,-n);break;case 7:o.rotate(.5*Math.PI),o.translate(r,-n),o.scale(-1,1);break;case 8:o.rotate(-.5*Math.PI),o.translate(-r,0)}},e.getTransformedOptions=function(t,i){var o,r,n=a.call(e,t,i),s=n.orientation;if(!s||s>8||1===s)return n;o={};for(r in n)n.hasOwnProperty(r)&&(o[r]=n[r]);switch(n.orientation){case 2:o.left=n.right,o.right=n.left;break;case 3:o.left=n.right,o.top=n.bottom,o.right=n.left,o.bottom=n.top;break;case 4:o.top=n.bottom,o.bottom=n.top;break;case 5:o.left=n.top,o.top=n.left,o.right=n.bottom,o.bottom=n.right;break;case 6:o.left=n.top,o.top=n.right,o.right=n.bottom,o.bottom=n.left;break;case 7:o.left=n.bottom,o.top=n.right,o.right=n.top,o.bottom=n.left;break;case 8:o.left=n.bottom,o.top=n.left,o.right=n.top,o.bottom=n.right}return n.orientation>4&&(o.maxWidth=n.maxHeight,o.maxHeight=n.maxWidth,o.minWidth=n.minHeight,o.minHeight=n.minWidth,o.sourceWidth=n.sourceHeight,o.sourceHeight=n.sourceWidth),o}}),function(e){"use strict";"function"==typeof define&&define.amd?define(["./load-image"],e):e("object"==typeof module&&module.exports?require("./load-image"):window.loadImage)}(function(e){"use strict";var t=window.Blob&&(Blob.prototype.slice||Blob.prototype.webkitSlice||Blob.prototype.mozSlice);e.blobSlice=t&&function(){var e=this.slice||this.webkitSlice||this.mozSlice;return e.apply(this,arguments)},e.metaDataParsers={jpeg:{65505:[]}},e.parseMetaData=function(t,i,a){a=a||{};var o=this,r=a.maxMetaDataSize||262144,n={},s=!(window.DataView&&t&&t.size>=12&&"image/jpeg"===t.type&&e.blobSlice);(s||!e.readFile(e.blobSlice.call(t,0,r),function(t){if(t.target.error)return console.log(t.target.error),void i(n);var r,s,l,d,u=t.target.result,c=new DataView(u),g=2,f=c.byteLength-4,h=g;if(65496===c.getUint16(0)){for(;f>g&&(r=c.getUint16(g),r>=65504&&65519>=r||65534===r);){if(s=c.getUint16(g+2)+2,g+s>c.byteLength){console.log("Invalid meta data: Invalid segment size.");break}if(l=e.metaDataParsers.jpeg[r])for(d=0;d6&&(u.slice?n.imageHead=u.slice(0,h):n.imageHead=new Uint8Array(u).subarray(0,h))}else console.log("Invalid JPEG file: Missing JPEG marker.");i(n)},"readAsArrayBuffer"))&&i(n)}}),function(e){"use strict";"function"==typeof define&&define.amd?define(["./load-image","./load-image-meta"],e):"object"==typeof module&&module.exports?e(require("./load-image"),require("./load-image-meta")):e(window.loadImage)}(function(e){"use strict";e.ExifMap=function(){return this},e.ExifMap.prototype.map={Orientation:274},e.ExifMap.prototype.get=function(e){return this[e]||this[this.map[e]]},e.getExifThumbnail=function(e,t,i){var a,o,r;if(!i||t+i>e.byteLength)return void console.log("Invalid Exif data: Invalid thumbnail data.");for(a=[],o=0;i>o;o+=1)r=e.getUint8(t+o),a.push((16>r?"0":"")+r.toString(16));return"data:image/jpeg,%"+a.join("%")},e.exifTagTypes={1:{getValue:function(e,t){return e.getUint8(t)},size:1},2:{getValue:function(e,t){return String.fromCharCode(e.getUint8(t))},size:1,ascii:!0},3:{getValue:function(e,t,i){return e.getUint16(t,i)},size:2},4:{getValue:function(e,t,i){return e.getUint32(t,i)},size:4},5:{getValue:function(e,t,i){return e.getUint32(t,i)/e.getUint32(t+4,i)},size:8},9:{getValue:function(e,t,i){return e.getInt32(t,i)},size:4},10:{getValue:function(e,t,i){return e.getInt32(t,i)/e.getInt32(t+4,i)},size:8}},e.exifTagTypes[7]=e.exifTagTypes[1],e.getExifValue=function(t,i,a,o,r,n){var s,l,d,u,c,g,f=e.exifTagTypes[o];if(!f)return void console.log("Invalid Exif data: Invalid tag type.");if(s=f.size*r,l=s>4?i+t.getUint32(a+8,n):a+8,l+s>t.byteLength)return void console.log("Invalid Exif data: Invalid data offset.");if(1===r)return f.getValue(t,l,n);for(d=[],u=0;r>u;u+=1)d[u]=f.getValue(t,l+u*f.size,n);if(f.ascii){for(c="",u=0;ue.byteLength)return void console.log("Invalid Exif data: Invalid directory offset.");if(r=e.getUint16(i,a),n=i+2+12*r,n+4>e.byteLength)return void console.log("Invalid Exif data: Invalid directory size.");for(s=0;r>s;s+=1)this.parseExifTag(e,t,i+2+12*s,a,o);return e.getUint32(n,a)},e.parseExifData=function(t,i,a,o,r){if(!r.disableExif){var n,s,l,d=i+10;if(1165519206===t.getUint32(i+4)){if(d+8>t.byteLength)return void console.log("Invalid Exif data: Invalid segment size.");if(0!==t.getUint16(i+8))return void console.log("Invalid Exif data: Missing byte alignment offset.");switch(t.getUint16(d)){case 18761:n=!0;break;case 19789:n=!1;break;default:return void console.log("Invalid Exif data: Invalid byte alignment marker.")}if(42!==t.getUint16(d+2,n))return void console.log("Invalid Exif data: Missing TIFF marker.");s=t.getUint32(d+4,n),o.exif=new e.ExifMap,s=e.parseExifTags(t,d,d+s,n,o),s&&!r.disableExifThumbnail&&(l={exif:{}},s=e.parseExifTags(t,d,d+s,n,l),l.exif[513]&&(o.exif.Thumbnail=e.getExifThumbnail(t,d+l.exif[513],l.exif[514]))),o.exif[34665]&&!r.disableExifSub&&e.parseExifTags(t,d,d+o.exif[34665],n,o),o.exif[34853]&&!r.disableExifGps&&e.parseExifTags(t,d,d+o.exif[34853],n,o)}}},e.metaDataParsers.jpeg[65505].push(e.parseExifData)}),function(e){"use strict";"function"==typeof define&&define.amd?define(["./load-image","./load-image-exif"],e):"object"==typeof module&&module.exports?e(require("./load-image"),require("./load-image-exif")):e(window.loadImage)}(function(e){"use strict";e.ExifMap.prototype.tags={256:"ImageWidth",257:"ImageHeight",34665:"ExifIFDPointer",34853:"GPSInfoIFDPointer",40965:"InteroperabilityIFDPointer",258:"BitsPerSample",259:"Compression",262:"PhotometricInterpretation",274:"Orientation",277:"SamplesPerPixel",284:"PlanarConfiguration",530:"YCbCrSubSampling",531:"YCbCrPositioning",282:"XResolution",283:"YResolution",296:"ResolutionUnit",273:"StripOffsets",278:"RowsPerStrip",279:"StripByteCounts",513:"JPEGInterchangeFormat",514:"JPEGInterchangeFormatLength",301:"TransferFunction",318:"WhitePoint",319:"PrimaryChromaticities",529:"YCbCrCoefficients",532:"ReferenceBlackWhite",306:"DateTime",270:"ImageDescription",271:"Make",272:"Model",305:"Software",315:"Artist",33432:"Copyright",36864:"ExifVersion",40960:"FlashpixVersion",40961:"ColorSpace",40962:"PixelXDimension",40963:"PixelYDimension",42240:"Gamma",37121:"ComponentsConfiguration",37122:"CompressedBitsPerPixel",37500:"MakerNote",37510:"UserComment",40964:"RelatedSoundFile",36867:"DateTimeOriginal",36868:"DateTimeDigitized",37520:"SubSecTime",37521:"SubSecTimeOriginal",37522:"SubSecTimeDigitized",33434:"ExposureTime",33437:"FNumber",34850:"ExposureProgram",34852:"SpectralSensitivity",34855:"PhotographicSensitivity",34856:"OECF",34864:"SensitivityType",34865:"StandardOutputSensitivity",34866:"RecommendedExposureIndex",34867:"ISOSpeed",34868:"ISOSpeedLatitudeyyy",34869:"ISOSpeedLatitudezzz",37377:"ShutterSpeedValue",37378:"ApertureValue",37379:"BrightnessValue",37380:"ExposureBias",37381:"MaxApertureValue",37382:"SubjectDistance",37383:"MeteringMode",37384:"LightSource",37385:"Flash",37396:"SubjectArea",37386:"FocalLength",41483:"FlashEnergy",41484:"SpatialFrequencyResponse",41486:"FocalPlaneXResolution",41487:"FocalPlaneYResolution",41488:"FocalPlaneResolutionUnit",41492:"SubjectLocation",41493:"ExposureIndex",41495:"SensingMethod",41728:"FileSource",41729:"SceneType",41730:"CFAPattern",41985:"CustomRendered",41986:"ExposureMode",41987:"WhiteBalance",41988:"DigitalZoomRatio",41989:"FocalLengthIn35mmFilm",41990:"SceneCaptureType",41991:"GainControl",41992:"Contrast",41993:"Saturation",41994:"Sharpness",41995:"DeviceSettingDescription",41996:"SubjectDistanceRange",42016:"ImageUniqueID",42032:"CameraOwnerName",42033:"BodySerialNumber",42034:"LensSpecification",42035:"LensMake",42036:"LensModel",42037:"LensSerialNumber",0:"GPSVersionID",1:"GPSLatitudeRef",2:"GPSLatitude",3:"GPSLongitudeRef",4:"GPSLongitude",5:"GPSAltitudeRef",6:"GPSAltitude",7:"GPSTimeStamp",8:"GPSSatellites",9:"GPSStatus",10:"GPSMeasureMode",11:"GPSDOP",12:"GPSSpeedRef",13:"GPSSpeed",14:"GPSTrackRef",15:"GPSTrack",16:"GPSImgDirectionRef",17:"GPSImgDirection",18:"GPSMapDatum",19:"GPSDestLatitudeRef",20:"GPSDestLatitude",21:"GPSDestLongitudeRef",22:"GPSDestLongitude",23:"GPSDestBearingRef",24:"GPSDestBearing",25:"GPSDestDistanceRef",26:"GPSDestDistance",27:"GPSProcessingMethod",28:"GPSAreaInformation",29:"GPSDateStamp",30:"GPSDifferential",31:"GPSHPositioningError"},e.ExifMap.prototype.stringValues={ExposureProgram:{0:"Undefined",1:"Manual",2:"Normal program",3:"Aperture priority",4:"Shutter priority",5:"Creative program",6:"Action program",7:"Portrait mode",8:"Landscape mode"},MeteringMode:{0:"Unknown",1:"Average",2:"CenterWeightedAverage",3:"Spot",4:"MultiSpot",5:"Pattern",6:"Partial",255:"Other"},LightSource:{0:"Unknown",1:"Daylight",2:"Fluorescent",3:"Tungsten (incandescent light)",4:"Flash",9:"Fine weather",10:"Cloudy weather",11:"Shade",12:"Daylight fluorescent (D 5700 - 7100K)",13:"Day white fluorescent (N 4600 - 5400K)",14:"Cool white fluorescent (W 3900 - 4500K)",15:"White fluorescent (WW 3200 - 3700K)",17:"Standard light A",18:"Standard light B",19:"Standard light C",20:"D55",21:"D65",22:"D75",23:"D50",24:"ISO studio tungsten",255:"Other"},Flash:{0:"Flash did not fire",1:"Flash fired",5:"Strobe return light not detected",7:"Strobe return light detected",9:"Flash fired, compulsory flash mode",13:"Flash fired, compulsory flash mode, return light not detected",15:"Flash fired, compulsory flash mode, return light detected",16:"Flash did not fire, compulsory flash mode",24:"Flash did not fire, auto mode",25:"Flash fired, auto mode",29:"Flash fired, auto mode, return light not detected",31:"Flash fired, auto mode, return light detected",32:"No flash function",65:"Flash fired, red-eye reduction mode",69:"Flash fired, red-eye reduction mode, return light not detected",71:"Flash fired, red-eye reduction mode, return light detected",73:"Flash fired, compulsory flash mode, red-eye reduction mode",77:"Flash fired, compulsory flash mode, red-eye reduction mode, return light not detected",79:"Flash fired, compulsory flash mode, red-eye reduction mode, return light detected",89:"Flash fired, auto mode, red-eye reduction mode",93:"Flash fired, auto mode, return light not detected, red-eye reduction mode",95:"Flash fired, auto mode, return light detected, red-eye reduction mode"},SensingMethod:{1:"Undefined",2:"One-chip color area sensor",3:"Two-chip color area sensor",4:"Three-chip color area sensor",5:"Color sequential area sensor",7:"Trilinear sensor",8:"Color sequential linear sensor"},SceneCaptureType:{0:"Standard",1:"Landscape",2:"Portrait",3:"Night scene"},SceneType:{1:"Directly photographed"},CustomRendered:{0:"Normal process",1:"Custom process"},WhiteBalance:{0:"Auto white balance",1:"Manual white balance"},GainControl:{0:"None",1:"Low gain up",2:"High gain up",3:"Low gain down",4:"High gain down"},Contrast:{0:"Normal",1:"Soft",2:"Hard"},Saturation:{0:"Normal",1:"Low saturation",2:"High saturation"},Sharpness:{0:"Normal",1:"Soft",2:"Hard"},SubjectDistanceRange:{0:"Unknown",1:"Macro",2:"Close view",3:"Distant view"},FileSource:{3:"DSC"},ComponentsConfiguration:{0:"",1:"Y",2:"Cb",3:"Cr",4:"R",5:"G",6:"B"},Orientation:{1:"top-left",2:"top-right",3:"bottom-right",4:"bottom-left",5:"left-top",6:"right-top",7:"right-bottom",8:"left-bottom"}},e.ExifMap.prototype.getText=function(e){var t=this.get(e);switch(e){case"LightSource":case"Flash":case"MeteringMode":case"ExposureProgram":case"SensingMethod":case"SceneCaptureType":case"SceneType":case"CustomRendered":case"WhiteBalance":case"GainControl":case"Contrast":case"Saturation":case"Sharpness":case"SubjectDistanceRange":case"FileSource":case"Orientation":return this.stringValues[e][t];case"ExifVersion":case"FlashpixVersion":if(!t)return;return String.fromCharCode(t[0],t[1],t[2],t[3]);case"ComponentsConfiguration":if(!t)return;return this.stringValues[e][t[0]]+this.stringValues[e][t[1]]+this.stringValues[e][t[2]]+this.stringValues[e][t[3]];case"GPSVersionID":if(!t)return;return t[0]+"."+t[1]+"."+t[2]+"."+t[3]}return String(t)},function(e){var t,i=e.tags,a=e.map;for(t in i)i.hasOwnProperty(t)&&(a[i[t]]=t)}(e.ExifMap.prototype),e.ExifMap.prototype.getAll=function(){var e,t,i={};for(e in this)this.hasOwnProperty(e)&&(t=this.tags[e],t&&(i[t]=this.getText(t)));return i}});
+!function(e){"use strict";function t(e,i,a){var o,r=document.createElement("img");if(r.onerror=function(o){return t.onerror(r,o,e,i,a)},r.onload=function(o){return t.onload(r,o,e,i,a)},t.isInstanceOf("Blob",e)||t.isInstanceOf("File",e))o=r._objectURL=t.createObjectURL(e);else{if("string"!=typeof e)return!1;o=e,a&&a.crossOrigin&&(r.crossOrigin=a.crossOrigin)}return o?(r.src=o,r):t.readFile(e,function(e){var t=e.target;t&&t.result?r.src=t.result:i&&i(e)})}function i(e,i){!e._objectURL||i&&i.noRevoke||(t.revokeObjectURL(e._objectURL),delete e._objectURL)}var a=window.createObjectURL&&window||window.URL&&URL.revokeObjectURL&&URL||window.webkitURL&&webkitURL;t.isInstanceOf=function(e,t){return Object.prototype.toString.call(t)==="[object "+e+"]"},t.transform=function(e,i,a,o,r){a(t.scale(e,i,r),r)},t.onerror=function(e,t,a,o,r){i(e,r),o&&o.call(e,t)},t.onload=function(e,a,o,r,n){i(e,n),r&&t.transform(e,n,r,o,{})},t.transformCoordinates=function(){},t.getTransformedOptions=function(e,t){var i,a,o,r,n=t.aspectRatio;if(!n)return t;i={};for(a in t)t.hasOwnProperty(a)&&(i[a]=t[a]);return i.crop=!0,o=e.naturalWidth||e.width,r=e.naturalHeight||e.height,o/r>n?(i.maxWidth=r*n,i.maxHeight=r):(i.maxWidth=o,i.maxHeight=o/n),i},t.renderImageToCanvas=function(e,t,i,a,o,r,n,s,l,d){return e.getContext("2d").drawImage(t,i,a,o,r,n,s,l,d),e},t.hasCanvasOption=function(e){return e.canvas||e.crop||!!e.aspectRatio},t.scale=function(e,i,a){function o(){var e=Math.max((l||v)/v,(d||P)/P);e>1&&(v*=e,P*=e)}function r(){var e=Math.min((n||v)/v,(s||P)/P);e<1&&(v*=e,P*=e)}i=i||{};var n,s,l,d,u,c,f,g,h,m,p,S=document.createElement("canvas"),b=e.getContext||t.hasCanvasOption(i)&&S.getContext,x=e.naturalWidth||e.width,y=e.naturalHeight||e.height,v=x,P=y;if(b&&(i=t.getTransformedOptions(e,i,a),f=i.left||0,g=i.top||0,i.sourceWidth?(u=i.sourceWidth,void 0!==i.right&&void 0===i.left&&(f=x-u-i.right)):u=x-f-(i.right||0),i.sourceHeight?(c=i.sourceHeight,void 0!==i.bottom&&void 0===i.top&&(g=y-c-i.bottom)):c=y-g-(i.bottom||0),v=u,P=c),n=i.maxWidth,s=i.maxHeight,l=i.minWidth,d=i.minHeight,b&&n&&s&&i.crop?(v=n,P=s,p=u/c-n/s,p<0?(c=s*u/n,void 0===i.top&&void 0===i.bottom&&(g=(y-c)/2)):p>0&&(u=n*c/s,void 0===i.left&&void 0===i.right&&(f=(x-u)/2))):((i.contain||i.cover)&&(l=n=n||l,d=s=s||d),i.cover?(r(),o()):(o(),r())),b){if(h=i.pixelRatio,h>1&&(S.style.width=v+"px",S.style.height=P+"px",v*=h,P*=h,S.getContext("2d").scale(h,h)),m=i.downsamplingRatio,m>0&&m<1&&vv;)S.width=u*m,S.height=c*m,t.renderImageToCanvas(S,e,f,g,u,c,0,0,S.width,S.height),u=S.width,c=S.height,e=document.createElement("canvas"),e.width=u,e.height=c,t.renderImageToCanvas(e,S,0,0,u,c,0,0,u,c);return S.width=v,S.height=P,t.transformCoordinates(S,i),t.renderImageToCanvas(S,e,f,g,u,c,0,0,v,P)}return e.width=v,e.height=P,e},t.createObjectURL=function(e){return!!a&&a.createObjectURL(e)},t.revokeObjectURL=function(e){return!!a&&a.revokeObjectURL(e)},t.readFile=function(e,t,i){if(window.FileReader){var a=new FileReader;if(a.onload=a.onerror=t,i=i||"readAsDataURL",a[i])return a[i](e),a}return!1},"function"==typeof define&&define.amd?define(function(){return t}):"object"==typeof module&&module.exports?module.exports=t:e.loadImage=t}(window),function(e){"use strict";"function"==typeof define&&define.amd?define(["./load-image"],e):e("object"==typeof module&&module.exports?require("./load-image"):window.loadImage)}(function(e){"use strict";var t=window.Blob&&(Blob.prototype.slice||Blob.prototype.webkitSlice||Blob.prototype.mozSlice);e.blobSlice=t&&function(){var e=this.slice||this.webkitSlice||this.mozSlice;return e.apply(this,arguments)},e.metaDataParsers={jpeg:{65505:[]}},e.parseMetaData=function(t,i,a,o){a=a||{},o=o||{};var r=this,n=a.maxMetaDataSize||262144,s=!(window.DataView&&t&&t.size>=12&&"image/jpeg"===t.type&&e.blobSlice);!s&&e.readFile(e.blobSlice.call(t,0,n),function(t){if(t.target.error)return console.log(t.target.error),void i(o);var n,s,l,d,u=t.target.result,c=new DataView(u),f=2,g=c.byteLength-4,h=f;if(65496===c.getUint16(0)){for(;f=65504&&n<=65519||65534===n);){if(s=c.getUint16(f+2)+2,f+s>c.byteLength){console.log("Invalid meta data: Invalid segment size.");break}if(l=e.metaDataParsers.jpeg[n])for(d=0;d6&&(u.slice?o.imageHead=u.slice(0,h):o.imageHead=new Uint8Array(u).subarray(0,h))}else console.log("Invalid JPEG file: Missing JPEG marker.");i(o)},"readAsArrayBuffer")||i(o)},e.hasMetaOption=function(e){return e.meta};var i=e.transform;e.transform=function(t,a,o,r,n){e.hasMetaOption(a||{})?e.parseMetaData(r,function(n){i.call(e,t,a,o,r,n)},a,n):i.apply(e,arguments)}}),function(e){"use strict";"function"==typeof define&&define.amd?define(["./load-image","./load-image-meta"],e):"object"==typeof module&&module.exports?e(require("./load-image"),require("./load-image-meta")):e(window.loadImage)}(function(e){"use strict";e.ExifMap=function(){return this},e.ExifMap.prototype.map={Orientation:274},e.ExifMap.prototype.get=function(e){return this[e]||this[this.map[e]]},e.getExifThumbnail=function(e,t,i){var a,o,r;if(!i||t+i>e.byteLength)return void console.log("Invalid Exif data: Invalid thumbnail data.");for(a=[],o=0;o4?i+t.getUint32(a+8,n):a+8,l+s>t.byteLength)return void console.log("Invalid Exif data: Invalid data offset.");if(1===r)return g.getValue(t,l,n);for(d=[],u=0;ue.byteLength)return void console.log("Invalid Exif data: Invalid directory offset.");if(r=e.getUint16(i,a),n=i+2+12*r,n+4>e.byteLength)return void console.log("Invalid Exif data: Invalid directory size.");for(s=0;st.byteLength)return void console.log("Invalid Exif data: Invalid segment size.");if(0!==t.getUint16(i+8))return void console.log("Invalid Exif data: Missing byte alignment offset.");switch(t.getUint16(d)){case 18761:n=!0;break;case 19789:n=!1;break;default:return void console.log("Invalid Exif data: Invalid byte alignment marker.")}if(42!==t.getUint16(d+2,n))return void console.log("Invalid Exif data: Missing TIFF marker.");s=t.getUint32(d+4,n),o.exif=new e.ExifMap,s=e.parseExifTags(t,d,d+s,n,o),s&&!r.disableExifThumbnail&&(l={exif:{}},s=e.parseExifTags(t,d,d+s,n,l),l.exif[513]&&(o.exif.Thumbnail=e.getExifThumbnail(t,d+l.exif[513],l.exif[514]))),o.exif[34665]&&!r.disableExifSub&&e.parseExifTags(t,d,d+o.exif[34665],n,o),o.exif[34853]&&!r.disableExifGps&&e.parseExifTags(t,d,d+o.exif[34853],n,o)}}},e.metaDataParsers.jpeg[65505].push(e.parseExifData)}),function(e){"use strict";"function"==typeof define&&define.amd?define(["./load-image","./load-image-exif"],e):"object"==typeof module&&module.exports?e(require("./load-image"),require("./load-image-exif")):e(window.loadImage)}(function(e){"use strict";e.ExifMap.prototype.tags={256:"ImageWidth",257:"ImageHeight",34665:"ExifIFDPointer",34853:"GPSInfoIFDPointer",40965:"InteroperabilityIFDPointer",258:"BitsPerSample",259:"Compression",262:"PhotometricInterpretation",274:"Orientation",277:"SamplesPerPixel",284:"PlanarConfiguration",530:"YCbCrSubSampling",531:"YCbCrPositioning",282:"XResolution",283:"YResolution",296:"ResolutionUnit",273:"StripOffsets",278:"RowsPerStrip",279:"StripByteCounts",513:"JPEGInterchangeFormat",514:"JPEGInterchangeFormatLength",301:"TransferFunction",318:"WhitePoint",319:"PrimaryChromaticities",529:"YCbCrCoefficients",532:"ReferenceBlackWhite",306:"DateTime",270:"ImageDescription",271:"Make",272:"Model",305:"Software",315:"Artist",33432:"Copyright",36864:"ExifVersion",40960:"FlashpixVersion",40961:"ColorSpace",40962:"PixelXDimension",40963:"PixelYDimension",42240:"Gamma",37121:"ComponentsConfiguration",37122:"CompressedBitsPerPixel",37500:"MakerNote",37510:"UserComment",40964:"RelatedSoundFile",36867:"DateTimeOriginal",36868:"DateTimeDigitized",37520:"SubSecTime",37521:"SubSecTimeOriginal",37522:"SubSecTimeDigitized",33434:"ExposureTime",33437:"FNumber",34850:"ExposureProgram",34852:"SpectralSensitivity",34855:"PhotographicSensitivity",34856:"OECF",34864:"SensitivityType",34865:"StandardOutputSensitivity",34866:"RecommendedExposureIndex",34867:"ISOSpeed",34868:"ISOSpeedLatitudeyyy",34869:"ISOSpeedLatitudezzz",37377:"ShutterSpeedValue",37378:"ApertureValue",37379:"BrightnessValue",37380:"ExposureBias",37381:"MaxApertureValue",37382:"SubjectDistance",37383:"MeteringMode",37384:"LightSource",37385:"Flash",37396:"SubjectArea",37386:"FocalLength",41483:"FlashEnergy",41484:"SpatialFrequencyResponse",41486:"FocalPlaneXResolution",41487:"FocalPlaneYResolution",41488:"FocalPlaneResolutionUnit",41492:"SubjectLocation",41493:"ExposureIndex",41495:"SensingMethod",41728:"FileSource",41729:"SceneType",41730:"CFAPattern",41985:"CustomRendered",41986:"ExposureMode",41987:"WhiteBalance",41988:"DigitalZoomRatio",41989:"FocalLengthIn35mmFilm",41990:"SceneCaptureType",41991:"GainControl",41992:"Contrast",41993:"Saturation",41994:"Sharpness",41995:"DeviceSettingDescription",41996:"SubjectDistanceRange",42016:"ImageUniqueID",42032:"CameraOwnerName",42033:"BodySerialNumber",42034:"LensSpecification",42035:"LensMake",42036:"LensModel",42037:"LensSerialNumber",0:"GPSVersionID",1:"GPSLatitudeRef",2:"GPSLatitude",3:"GPSLongitudeRef",4:"GPSLongitude",5:"GPSAltitudeRef",6:"GPSAltitude",7:"GPSTimeStamp",8:"GPSSatellites",9:"GPSStatus",10:"GPSMeasureMode",11:"GPSDOP",12:"GPSSpeedRef",13:"GPSSpeed",14:"GPSTrackRef",15:"GPSTrack",16:"GPSImgDirectionRef",17:"GPSImgDirection",18:"GPSMapDatum",19:"GPSDestLatitudeRef",20:"GPSDestLatitude",21:"GPSDestLongitudeRef",22:"GPSDestLongitude",23:"GPSDestBearingRef",24:"GPSDestBearing",25:"GPSDestDistanceRef",26:"GPSDestDistance",27:"GPSProcessingMethod",28:"GPSAreaInformation",29:"GPSDateStamp",30:"GPSDifferential",31:"GPSHPositioningError"},e.ExifMap.prototype.stringValues={ExposureProgram:{0:"Undefined",1:"Manual",2:"Normal program",3:"Aperture priority",4:"Shutter priority",5:"Creative program",6:"Action program",7:"Portrait mode",8:"Landscape mode"},MeteringMode:{0:"Unknown",1:"Average",2:"CenterWeightedAverage",3:"Spot",4:"MultiSpot",5:"Pattern",6:"Partial",255:"Other"},LightSource:{0:"Unknown",1:"Daylight",2:"Fluorescent",3:"Tungsten (incandescent light)",4:"Flash",9:"Fine weather",10:"Cloudy weather",11:"Shade",12:"Daylight fluorescent (D 5700 - 7100K)",13:"Day white fluorescent (N 4600 - 5400K)",14:"Cool white fluorescent (W 3900 - 4500K)",15:"White fluorescent (WW 3200 - 3700K)",17:"Standard light A",18:"Standard light B",19:"Standard light C",20:"D55",21:"D65",22:"D75",23:"D50",24:"ISO studio tungsten",255:"Other"},Flash:{0:"Flash did not fire",1:"Flash fired",5:"Strobe return light not detected",7:"Strobe return light detected",9:"Flash fired, compulsory flash mode",13:"Flash fired, compulsory flash mode, return light not detected",15:"Flash fired, compulsory flash mode, return light detected",16:"Flash did not fire, compulsory flash mode",24:"Flash did not fire, auto mode",25:"Flash fired, auto mode",29:"Flash fired, auto mode, return light not detected",31:"Flash fired, auto mode, return light detected",32:"No flash function",65:"Flash fired, red-eye reduction mode",69:"Flash fired, red-eye reduction mode, return light not detected",71:"Flash fired, red-eye reduction mode, return light detected",73:"Flash fired, compulsory flash mode, red-eye reduction mode",77:"Flash fired, compulsory flash mode, red-eye reduction mode, return light not detected",79:"Flash fired, compulsory flash mode, red-eye reduction mode, return light detected",89:"Flash fired, auto mode, red-eye reduction mode",93:"Flash fired, auto mode, return light not detected, red-eye reduction mode",95:"Flash fired, auto mode, return light detected, red-eye reduction mode"},SensingMethod:{1:"Undefined",2:"One-chip color area sensor",3:"Two-chip color area sensor",4:"Three-chip color area sensor",5:"Color sequential area sensor",7:"Trilinear sensor",8:"Color sequential linear sensor"},SceneCaptureType:{0:"Standard",1:"Landscape",2:"Portrait",3:"Night scene"},SceneType:{1:"Directly photographed"},CustomRendered:{0:"Normal process",1:"Custom process"},WhiteBalance:{0:"Auto white balance",1:"Manual white balance"},GainControl:{0:"None",1:"Low gain up",2:"High gain up",3:"Low gain down",4:"High gain down"},Contrast:{0:"Normal",1:"Soft",2:"Hard"},Saturation:{0:"Normal",1:"Low saturation",2:"High saturation"},Sharpness:{0:"Normal",1:"Soft",2:"Hard"},SubjectDistanceRange:{0:"Unknown",1:"Macro",2:"Close view",3:"Distant view"},FileSource:{3:"DSC"},ComponentsConfiguration:{0:"",1:"Y",2:"Cb",3:"Cr",4:"R",5:"G",6:"B"},Orientation:{1:"top-left",2:"top-right",3:"bottom-right",4:"bottom-left",5:"left-top",6:"right-top",7:"right-bottom",8:"left-bottom"}},e.ExifMap.prototype.getText=function(e){var t=this.get(e);switch(e){case"LightSource":case"Flash":case"MeteringMode":case"ExposureProgram":case"SensingMethod":case"SceneCaptureType":case"SceneType":case"CustomRendered":case"WhiteBalance":case"GainControl":case"Contrast":case"Saturation":case"Sharpness":case"SubjectDistanceRange":case"FileSource":case"Orientation":return this.stringValues[e][t];case"ExifVersion":case"FlashpixVersion":if(!t)return;return String.fromCharCode(t[0],t[1],t[2],t[3]);case"ComponentsConfiguration":if(!t)return;return this.stringValues[e][t[0]]+this.stringValues[e][t[1]]+this.stringValues[e][t[2]]+this.stringValues[e][t[3]];case"GPSVersionID":if(!t)return;return t[0]+"."+t[1]+"."+t[2]+"."+t[3]}return String(t)},function(e){var t,i=e.tags,a=e.map;for(t in i)i.hasOwnProperty(t)&&(a[i[t]]=t)}(e.ExifMap.prototype),e.ExifMap.prototype.getAll=function(){var e,t,i={};for(e in this)this.hasOwnProperty(e)&&(t=this.tags[e],t&&(i[t]=this.getText(t)));return i}}),function(e){"use strict";"function"==typeof define&&define.amd?define(["./load-image"],e):e("object"==typeof module&&module.exports?require("./load-image"):window.loadImage)}(function(e){"use strict";var t=e.hasCanvasOption,i=e.hasMetaOption,a=e.transformCoordinates,o=e.getTransformedOptions;e.hasCanvasOption=function(i){return!!i.orientation||t.call(e,i)},e.hasMetaOption=function(t){return t.orientation===!0||i.call(e,t)},e.transformCoordinates=function(t,i){a.call(e,t,i);var o=t.getContext("2d"),r=t.width,n=t.height,s=t.style.width,l=t.style.height,d=i.orientation;if(d&&!(d>8))switch(d>4&&(t.width=n,t.height=r,t.style.width=l,t.style.height=s),d){case 2:o.translate(r,0),o.scale(-1,1);break;case 3:o.translate(r,n),o.rotate(Math.PI);break;case 4:o.translate(0,n),o.scale(1,-1);break;case 5:o.rotate(.5*Math.PI),o.scale(1,-1);break;case 6:o.rotate(.5*Math.PI),o.translate(0,-n);break;case 7:o.rotate(.5*Math.PI),o.translate(r,-n),o.scale(-1,1);break;case 8:o.rotate(-.5*Math.PI),o.translate(-r,0)}},e.getTransformedOptions=function(t,i,a){var r,n,s=o.call(e,t,i),l=s.orientation;if(l===!0&&a&&a.exif&&(l=a.exif.get("Orientation")),!l||l>8||1===l)return s;r={};for(n in s)s.hasOwnProperty(n)&&(r[n]=s[n]);switch(r.orientation=l,l){case 2:r.left=s.right,r.right=s.left;break;case 3:r.left=s.right,r.top=s.bottom,r.right=s.left,r.bottom=s.top;break;case 4:r.top=s.bottom,r.bottom=s.top;break;case 5:r.left=s.top,r.top=s.left,r.right=s.bottom,r.bottom=s.right;break;case 6:r.left=s.top,r.top=s.right,r.right=s.bottom,r.bottom=s.left;break;case 7:r.left=s.bottom,r.top=s.right,r.right=s.top,r.bottom=s.left;break;case 8:r.left=s.bottom,r.top=s.left,r.right=s.top,r.bottom=s.right}return s.orientation>4&&(r.maxWidth=s.maxHeight,r.maxHeight=s.maxWidth,r.minWidth=s.minHeight,r.minHeight=s.minWidth,r.sourceWidth=s.sourceHeight,r.sourceHeight=s.sourceWidth),r}});
//# sourceMappingURL=load-image.all.min.js.map
\ No newline at end of file
diff --git a/app/Resources/public/assets/blueimp-load-image/js/load-image.all.min.js.map b/app/Resources/public/assets/blueimp-load-image/js/load-image.all.min.js.map
index 0332a2d29f..b9b7cb7d38 100644
--- a/app/Resources/public/assets/blueimp-load-image/js/load-image.all.min.js.map
+++ b/app/Resources/public/assets/blueimp-load-image/js/load-image.all.min.js.map
@@ -1 +1 @@
-{"version":3,"sources":["load-image.js","load-image-orientation.js","load-image-meta.js","load-image-exif.js","load-image-exif-map.js"],"names":["$","loadImage","file","callback","options","url","oUrl","img","document","createElement","onerror","onload","noRevoke","revokeObjectURL","scale","isInstanceOf","createObjectURL","_type","type","crossOrigin","src","readFile","e","target","result","urlAPI","window","URL","webkitURL","obj","Object","prototype","toString","call","transformCoordinates","getTransformedOptions","newOptions","i","width","height","aspectRatio","hasOwnProperty","crop","naturalWidth","naturalHeight","maxWidth","maxHeight","renderImageToCanvas","canvas","sourceX","sourceY","sourceWidth","sourceHeight","destX","destY","destWidth","destHeight","getContext","drawImage","hasCanvasOption","scaleUp","Math","max","minWidth","minHeight","scaleDown","min","pixelRatio","downsamplingRatio","tmp","useCanvas","left","top","undefined","right","bottom","contain","cover","style","method","FileReader","fileReader","define","amd","module","exports","factory","require","originalHasCanvasOption","originalTransformCoordinates","originalGetTransformedOptions","orientation","ctx","styleWidth","styleHeight","translate","rotate","PI","opts","hasblobSlice","Blob","slice","webkitSlice","mozSlice","blobSlice","this","apply","arguments","metaDataParsers","jpeg",65505,"parseMetaData","that","maxMetaDataSize","data","noMetaData","DataView","size","error","console","log","markerBytes","markerLength","parsers","buffer","dataView","offset","maxOffset","byteLength","headLength","getUint16","length","disableImageHead","imageHead","Uint8Array","subarray","ExifMap","map","Orientation","get","id","getExifThumbnail","hexData","b","getUint8","push","join","exifTagTypes",1,"getValue","dataOffset",2,"String","fromCharCode","ascii",3,"littleEndian",4,"getUint32",5,9,"getInt32",10,"getExifValue","tiffOffset","tagSize","values","str","c","tagType","parseExifTag","tag","exif","parseExifTags","dirOffset","tagsNumber","dirEndOffset","parseExifData","disableExif","thumbnailData","disableExifThumbnail","Thumbnail","disableExifSub","disableExifGps","tags",256,257,34665,34853,40965,258,259,262,274,277,284,530,531,282,283,296,273,278,279,513,514,301,318,319,529,532,306,270,271,272,305,315,33432,36864,40960,40961,40962,40963,42240,37121,37122,37500,37510,40964,36867,36868,37520,37521,37522,33434,33437,34850,34852,34855,34856,34864,34865,34866,34867,34868,34869,37377,37378,37379,37380,37381,37382,37383,37384,37385,37396,37386,41483,41484,41486,41487,41488,41492,41493,41495,41728,41729,41730,41985,41986,41987,41988,41989,41990,41991,41992,41993,41994,41995,41996,42016,42032,42033,42034,42035,42036,42037,0,6,7,8,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,"stringValues","ExposureProgram","MeteringMode",255,"LightSource","Flash",32,65,69,71,73,77,79,89,93,95,"SensingMethod","SceneCaptureType","SceneType","CustomRendered","WhiteBalance","GainControl","Contrast","Saturation","Sharpness","SubjectDistanceRange","FileSource","ComponentsConfiguration","getText","value","exifMapPrototype","prop","getAll"],"mappings":"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","file":"load-image.all.min.js"}
\ No newline at end of file
+{"version":3,"sources":["load-image.js","load-image-meta.js","load-image-exif.js","load-image-exif-map.js","load-image-orientation.js"],"names":["$","loadImage","file","callback","options","url","img","document","createElement","onerror","event","onload","isInstanceOf","_objectURL","createObjectURL","crossOrigin","src","readFile","e","target","result","revokeHelper","noRevoke","revokeObjectURL","urlAPI","window","URL","webkitURL","type","obj","Object","prototype","toString","call","transform","data","scale","transformCoordinates","getTransformedOptions","newOptions","i","width","height","aspectRatio","hasOwnProperty","crop","naturalWidth","naturalHeight","maxWidth","maxHeight","renderImageToCanvas","canvas","sourceX","sourceY","sourceWidth","sourceHeight","destX","destY","destWidth","destHeight","getContext","drawImage","hasCanvasOption","scaleUp","Math","max","minWidth","minHeight","scaleDown","min","pixelRatio","downsamplingRatio","tmp","useCanvas","left","top","undefined","right","bottom","contain","cover","style","method","FileReader","fileReader","define","amd","module","exports","factory","require","hasblobSlice","Blob","slice","webkitSlice","mozSlice","blobSlice","this","apply","arguments","metaDataParsers","jpeg","65505","parseMetaData","that","maxMetaDataSize","noMetaData","DataView","size","error","console","log","markerBytes","markerLength","parsers","buffer","dataView","offset","maxOffset","byteLength","headLength","getUint16","length","disableImageHead","imageHead","Uint8Array","subarray","hasMetaOption","meta","originalTransform","ExifMap","map","Orientation","get","id","getExifThumbnail","hexData","b","getUint8","push","join","exifTagTypes","1","getValue","dataOffset","2","String","fromCharCode","ascii","3","littleEndian","4","getUint32","5","9","getInt32","10","getExifValue","tiffOffset","tagSize","values","str","c","tagType","parseExifTag","tag","exif","parseExifTags","dirOffset","tagsNumber","dirEndOffset","parseExifData","disableExif","thumbnailData","disableExifThumbnail","Thumbnail","disableExifSub","disableExifGps","tags","256","257","34665","34853","40965","258","259","262","274","277","284","530","531","282","283","296","273","278","279","513","514","301","318","319","529","532","306","270","271","272","305","315","33432","36864","40960","40961","40962","40963","42240","37121","37122","37500","37510","40964","36867","36868","37520","37521","37522","33434","33437","34850","34852","34855","34856","34864","34865","34866","34867","34868","34869","37377","37378","37379","37380","37381","37382","37383","37384","37385","37396","37386","41483","41484","41486","41487","41488","41492","41493","41495","41728","41729","41730","41985","41986","41987","41988","41989","41990","41991","41992","41993","41994","41995","41996","42016","42032","42033","42034","42035","42036","42037","0","6","7","8","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31","stringValues","ExposureProgram","MeteringMode","255","LightSource","Flash","32","65","69","71","73","77","79","89","93","95","SensingMethod","SceneCaptureType","SceneType","CustomRendered","WhiteBalance","GainControl","Contrast","Saturation","Sharpness","SubjectDistanceRange","FileSource","ComponentsConfiguration","getText","value","exifMapPrototype","prop","getAll","originalHasCanvasOption","originalHasMetaOption","originalTransformCoordinates","originalGetTransformedOptions","orientation","ctx","styleWidth","styleHeight","translate","rotate","PI","opts"],"mappings":"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","file":"load-image.all.min.js"}
\ No newline at end of file
diff --git a/app/Resources/public/assets/blueimp-load-image/js/load-image.js b/app/Resources/public/assets/blueimp-load-image/js/load-image.js
index b54b78687a..e7fe73c960 100644
--- a/app/Resources/public/assets/blueimp-load-image/js/load-image.js
+++ b/app/Resources/public/assets/blueimp-load-image/js/load-image.js
@@ -9,7 +9,7 @@
* http://www.opensource.org/licenses/MIT
*/
-/*global define, module, window, document, URL, webkitURL, FileReader */
+/* global define, URL, webkitURL, FileReader */
;(function ($) {
'use strict'
@@ -17,26 +17,20 @@
// Loads an image for a given File object.
// Invokes the callback with an img or optional canvas
// element (if supported by the browser) as parameter:
- var loadImage = function (file, callback, options) {
+ function loadImage (file, callback, options) {
var img = document.createElement('img')
var url
- var oUrl
- img.onerror = callback
- img.onload = function () {
- if (oUrl && !(options && options.noRevoke)) {
- loadImage.revokeObjectURL(oUrl)
- }
- if (callback) {
- callback(loadImage.scale(img, options))
- }
+ img.onerror = function (event) {
+ return loadImage.onerror(img, event, file, callback, options)
+ }
+ img.onload = function (event) {
+ return loadImage.onload(img, event, file, callback, options)
}
if (loadImage.isInstanceOf('Blob', file) ||
// Files are also Blob instances, but some browsers
// (Firefox 3.6) support the File API but not Blobs:
loadImage.isInstanceOf('File', file)) {
- url = oUrl = loadImage.createObjectURL(file)
- // Store the file type for resize processing:
- img._type = file.type
+ url = img._objectURL = loadImage.createObjectURL(file)
} else if (typeof file === 'string') {
url = file
if (options && options.crossOrigin) {
@@ -53,10 +47,8 @@
var target = e.target
if (target && target.result) {
img.src = target.result
- } else {
- if (callback) {
- callback(e)
- }
+ } else if (callback) {
+ callback(e)
}
})
}
@@ -66,11 +58,36 @@
(window.URL && URL.revokeObjectURL && URL) ||
(window.webkitURL && webkitURL)
+ function revokeHelper (img, options) {
+ if (img._objectURL && !(options && options.noRevoke)) {
+ loadImage.revokeObjectURL(img._objectURL)
+ delete img._objectURL
+ }
+ }
+
loadImage.isInstanceOf = function (type, obj) {
// Cross-frame instanceof check
return Object.prototype.toString.call(obj) === '[object ' + type + ']'
}
+ loadImage.transform = function (img, options, callback, file, data) {
+ callback(loadImage.scale(img, options, data), data)
+ }
+
+ loadImage.onerror = function (img, event, file, callback, options) {
+ revokeHelper(img, options)
+ if (callback) {
+ callback.call(img, event)
+ }
+ }
+
+ loadImage.onload = function (img, event, file, callback, options) {
+ revokeHelper(img, options)
+ if (callback) {
+ loadImage.transform(img, options, callback, file, {})
+ }
+ }
+
// Transform image coordinates, allows to override e.g.
// the canvas orientation based on the orientation option,
// gets canvas, options passed as arguments:
@@ -136,8 +153,7 @@
return canvas
}
- // This method is used to determine if the target image
- // should be a canvas element:
+ // Determines if the target image should be a canvas element:
loadImage.hasCanvasOption = function (options) {
return options.canvas || options.crop || !!options.aspectRatio
}
@@ -147,7 +163,7 @@
// Returns a canvas object if the browser supports canvas
// and the hasCanvasOption method returns true or a canvas
// object is passed as image, else the scaled image:
- loadImage.scale = function (img, options) {
+ loadImage.scale = function (img, options, data) {
options = options || {}
var canvas = document.createElement('canvas')
var useCanvas = img.getContext ||
@@ -188,7 +204,7 @@
}
}
if (useCanvas) {
- options = loadImage.getTransformedOptions(img, options)
+ options = loadImage.getTransformedOptions(img, options, data)
sourceX = options.left || 0
sourceY = options.top || 0
if (options.sourceWidth) {
diff --git a/app/Resources/public/assets/blueimp-load-image/package.json b/app/Resources/public/assets/blueimp-load-image/package.json
index 95f2205447..92ca69a54c 100644
--- a/app/Resources/public/assets/blueimp-load-image/package.json
+++ b/app/Resources/public/assets/blueimp-load-image/package.json
@@ -1,6 +1,6 @@
{
"name": "blueimp-load-image",
- "version": "2.6.2",
+ "version": "2.7.0",
"main": "index.js",
"title": "JavaScript Load Image",
"description": "JavaScript Load Image is a library to load images provided as File or Blob objects or via URL. It returns an optionally scaled and/or cropped HTML img or canvas element. It also provides a method to parse image meta data to extract Exif tags and thumbnails and to restore the complete image header after resizing.",
@@ -31,13 +31,16 @@
"url": "git://github.com/blueimp/JavaScript-Load-Image.git"
},
"devDependencies": {
- "mocha-phantomjs": "4.0.1",
- "standard": "6.0.7",
- "uglify-js": "2.6.1"
+ "phantomjs-prebuilt": "2.1.13",
+ "mocha-phantomjs-core": "1.3.1",
+ "standard": "8.3.0",
+ "uglify-js": "2.7.3"
},
"scripts": {
- "test": "standard *.js js/*.js test/*.js && mocha-phantomjs test/index.html",
- "build": "cd js && uglifyjs load-image.js load-image-orientation.js load-image-meta.js load-image-exif.js load-image-exif-map.js -c -m -o load-image.all.min.js --source-map load-image.all.min.js.map",
+ "lint": "standard *.js js/*.js test/*.js",
+ "unit": "phantomjs node_modules/mocha-phantomjs-core/mocha-phantomjs-core.js test/index.html",
+ "test": "npm run lint && npm run unit",
+ "build": "cd js && uglifyjs load-image.js load-image-meta.js load-image-exif.js load-image-exif-map.js load-image-orientation.js -c -m -o load-image.all.min.js --source-map load-image.all.min.js.map",
"preversion": "npm test",
"version": "npm run build && git add -A js",
"postversion": "git push --tags origin master master:gh-pages && npm publish"
diff --git a/app/Resources/public/assets/blueimp-load-image/test/index.html b/app/Resources/public/assets/blueimp-load-image/test/index.html
index 68546993cf..a52e27b0b6 100644
--- a/app/Resources/public/assets/blueimp-load-image/test/index.html
+++ b/app/Resources/public/assets/blueimp-load-image/test/index.html
@@ -24,17 +24,17 @@
-
+
-
+
-
+
diff --git a/app/Resources/public/assets/blueimp-tmpl/test/test.js b/app/Resources/public/assets/blueimp-tmpl/test/test.js
index 93a1eea8b0..1ddbd12580 100644
--- a/app/Resources/public/assets/blueimp-tmpl/test/test.js
+++ b/app/Resources/public/assets/blueimp-tmpl/test/test.js
@@ -9,7 +9,7 @@
* http://www.opensource.org/licenses/MIT
*/
-/*global beforeEach, afterEach, describe, it, require */
+/* global beforeEach, afterEach, describe, it */
;(function (context, expect, tmpl) {
'use strict'
@@ -53,7 +53,7 @@
it('String template', function () {
expect(
tmpl('{%=o.value%}', data)
- ).to.be(
+ ).to.equal(
'value'
)
})
@@ -61,7 +61,7 @@
it('Load template by id', function () {
expect(
tmpl('template', data)
- ).to.be(
+ ).to.equal(
'value'
)
})
@@ -69,7 +69,7 @@
it('Retun function when called without data parameter', function () {
expect(
tmpl('{%=o.value%}')(data)
- ).to.be(
+ ).to.equal(
'value'
)
})
@@ -86,7 +86,7 @@
it('Escape HTML special characters with {%=o.prop%}', function () {
expect(
tmpl('{%=o.special%}', data)
- ).to.be(
+ ).to.equal(
'<>&"''
)
})
@@ -94,7 +94,7 @@
it('Allow HTML special characters with {%#o.prop%}', function () {
expect(
tmpl('{%#o.special%}', data)
- ).to.be(
+ ).to.equal(
'<>&"\'\x00'
)
})
@@ -102,7 +102,7 @@
it('Function call', function () {
expect(
tmpl('{%=o.func()%}', data)
- ).to.be(
+ ).to.equal(
'value'
)
})
@@ -110,7 +110,7 @@
it('Dot notation', function () {
expect(
tmpl('{%=o.deep.value%}', data)
- ).to.be(
+ ).to.equal(
'value'
)
})
@@ -118,7 +118,7 @@
it('Handle single quotes', function () {
expect(
tmpl('\'single quotes\'{%=": \'"%}', data)
- ).to.be(
+ ).to.equal(
"'single quotes': '"
)
})
@@ -126,7 +126,7 @@
it('Handle double quotes', function () {
expect(
tmpl('"double quotes"{%=": \\""%}', data)
- ).to.be(
+ ).to.equal(
'"double quotes": "'
)
})
@@ -134,7 +134,7 @@
it('Handle backslashes', function () {
expect(
tmpl('\\backslashes\\{%=": \\\\"%}', data)
- ).to.be(
+ ).to.equal(
'\\backslashes\\: \\'
)
})
@@ -148,7 +148,7 @@
'{%=o.zeroValue%}',
data
)
- ).to.be(
+ ).to.equal(
'false0'
)
})
@@ -162,7 +162,7 @@
'{%#o.zeroValue%}',
data
)
- ).to.be(
+ ).to.equal(
'false0'
)
})
@@ -173,7 +173,7 @@
'\n\r\t{%=o.value%} \n\r\t{%=o.value%} ',
data
)
- ).to.be(
+ ).to.equal(
'\n\r\tvalue \n\r\tvalue '
)
})
@@ -183,7 +183,7 @@
it('Escape HTML special characters with print(data)', function () {
expect(
tmpl('{% print(o.special); %}', data)
- ).to.be(
+ ).to.equal(
'<>&"''
)
})
@@ -191,7 +191,7 @@
it('Allow HTML special characters with print(data, true)', function () {
expect(
tmpl('{% print(o.special, true); %}', data)
- ).to.be(
+ ).to.equal(
'<>&"\'\x00'
)
})
@@ -205,7 +205,7 @@
'{% print(o.zeroValue); %}',
data
)
- ).to.be(
+ ).to.equal(
'false0'
)
})
@@ -219,7 +219,7 @@
'{% print(o.zeroValue, true); %}',
data
)
- ).to.be(
+ ).to.equal(
'false0'
)
})
@@ -227,7 +227,7 @@
it('Include template', function () {
expect(
tmpl('{% include("template", {value: "value"}); %}', data)
- ).to.be(
+ ).to.equal(
'value'
)
})
@@ -235,7 +235,7 @@
it('If condition', function () {
expect(
tmpl('{% if (o.value) { %}true{% } else { %}false{% } %}', data)
- ).to.be(
+ ).to.equal(
'true'
)
})
@@ -246,7 +246,7 @@
'{% if (o.undefinedValue) { %}false{% } else { %}true{% } %}',
data
)
- ).to.be(
+ ).to.equal(
'true'
)
})
@@ -258,7 +258,7 @@
'{%=o.list[i]%}{% } %}',
data
)
- ).to.be(
+ ).to.equal(
'12345'
)
})
@@ -270,7 +270,7 @@
'print(o.list[i]);} %}',
data
)
- ).to.be(
+ ).to.equal(
'12345'
)
})
@@ -282,7 +282,7 @@
'include("template", {value: o.list[i]});} %}',
data
).replace(/[\r\n]/g, '')
- ).to.be(
+ ).to.equal(
'12345'
)
})
@@ -293,13 +293,13 @@
'{% if (o.list.length % 5 === 0) { %}5 list items{% } %}',
data
).replace(/[\r\n]/g, '')
- ).to.be(
+ ).to.equal(
'5 list items'
)
})
})
}(
this,
- this.expect || require('expect.js'),
+ (this.chai || require('chai')).expect,
this.tmpl || require('../js/tmpl')
))
diff --git a/app/Resources/public/assets/bootstrap-daterangepicker/.bower.json b/app/Resources/public/assets/bootstrap-daterangepicker/.bower.json
index 0a72de5340..b062c319bd 100644
--- a/app/Resources/public/assets/bootstrap-daterangepicker/.bower.json
+++ b/app/Resources/public/assets/bootstrap-daterangepicker/.bower.json
@@ -25,7 +25,7 @@
"tag": "v1.3.23",
"commit": "f000ab2a40a0e930c2913855b96a4e4d59c8920f"
},
- "_source": "git://github.com/dangrossman/bootstrap-daterangepicker.git",
+ "_source": "https://github.com/dangrossman/bootstrap-daterangepicker.git",
"_target": "1.3.*",
"_originalSource": "bootstrap-daterangepicker"
}
\ No newline at end of file
diff --git a/app/Resources/public/assets/ckeditor/.bower.json b/app/Resources/public/assets/ckeditor/.bower.json
index 352c7cc955..7d9ac3ad1f 100644
--- a/app/Resources/public/assets/ckeditor/.bower.json
+++ b/app/Resources/public/assets/ckeditor/.bower.json
@@ -21,7 +21,7 @@
"_resolution": {
"type": "version",
"tag": "4.5.9",
- "commit": "ba2580967f7409784921b4320e297522175e45bb"
+ "commit": "5de42515a5ca7015de75627ad8067f786d7fc425"
},
"_source": "https://github.com/AngelFQC/ckeditor-releases.git",
"_target": "*",
diff --git a/app/Resources/public/assets/cropper/.bower.json b/app/Resources/public/assets/cropper/.bower.json
index 588eec5397..e9c0fabde7 100644
--- a/app/Resources/public/assets/cropper/.bower.json
+++ b/app/Resources/public/assets/cropper/.bower.json
@@ -57,7 +57,7 @@
"tag": "v1.0.0",
"commit": "c0805bc83c9270a0be4afdfbd02d517de7a4c970"
},
- "_source": "git://github.com/fengyuanchen/cropper.git",
+ "_source": "https://github.com/fengyuanchen/cropper.git",
"_target": "1.0.*",
"_originalSource": "cropper"
}
\ No newline at end of file
diff --git a/app/Resources/public/assets/fontawesome/.bower.json b/app/Resources/public/assets/fontawesome/.bower.json
index a6743bbb01..8b6a4ac4e7 100644
--- a/app/Resources/public/assets/fontawesome/.bower.json
+++ b/app/Resources/public/assets/fontawesome/.bower.json
@@ -30,7 +30,7 @@
"tag": "v4.4.0",
"commit": "f2cc73da12f0e6d828bc2daaa72bff457067bf39"
},
- "_source": "git://github.com/FortAwesome/Font-Awesome.git",
+ "_source": "https://github.com/FortAwesome/Font-Awesome.git",
"_target": "4.4.*",
"_originalSource": "fontawesome"
}
\ No newline at end of file
diff --git a/app/Resources/public/assets/fullcalendar/.bower.json b/app/Resources/public/assets/fullcalendar/.bower.json
index aa8a886ec1..124648b7b2 100644
--- a/app/Resources/public/assets/fullcalendar/.bower.json
+++ b/app/Resources/public/assets/fullcalendar/.bower.json
@@ -56,7 +56,7 @@
"tag": "v2.3.2",
"commit": "29fb42d6316bd2c293fbcaf699af4427f80abebb"
},
- "_source": "git://github.com/arshaw/fullcalendar.git",
+ "_source": "https://github.com/fullcalendar/fullcalendar.git",
"_target": "2.3.2",
"_originalSource": "fullcalendar"
}
\ No newline at end of file
diff --git a/app/Resources/public/assets/i18next/.bower.json b/app/Resources/public/assets/i18next/.bower.json
index 379e51241d..f4cdce5913 100644
--- a/app/Resources/public/assets/i18next/.bower.json
+++ b/app/Resources/public/assets/i18next/.bower.json
@@ -18,12 +18,12 @@
"karma.conf.js"
],
"homepage": "https://github.com/i18next/i18next",
- "version": "3.4.1",
- "_release": "3.4.1",
+ "version": "3.4.3",
+ "_release": "3.4.3",
"_resolution": {
"type": "version",
- "tag": "v3.4.1",
- "commit": "ae96d7a2f3e18dc749f505ee9d0456d863eb6424"
+ "tag": "v3.4.3",
+ "commit": "3e92f068aa901030014f3b0f27fcd3ed6ab0c535"
},
"_source": "https://github.com/i18next/i18next.git",
"_target": ">=2.4.0",
diff --git a/app/Resources/public/assets/i18next/CHANGELOG.md b/app/Resources/public/assets/i18next/CHANGELOG.md
index e5a9294a35..b16bccdea1 100644
--- a/app/Resources/public/assets/i18next/CHANGELOG.md
+++ b/app/Resources/public/assets/i18next/CHANGELOG.md
@@ -1,3 +1,9 @@
+### 3.4.3
+- Fix Interpolator formatter exception error propagation due to not reset RegExp indices [#820](https://github.com/i18next/i18next/issues/820)
+
+### 3.4.2
+- assert dir function does not crash if no language available
+
### 3.4.1
- fix issue with format containing formatSeparator for interpolation formatting
diff --git a/app/Resources/public/assets/i18next/README.md b/app/Resources/public/assets/i18next/README.md
index d6102246c1..bf1d6e8f69 100644
--- a/app/Resources/public/assets/i18next/README.md
+++ b/app/Resources/public/assets/i18next/README.md
@@ -8,14 +8,8 @@
i18next is a very popular internationalization framework for browser or any other javascript environment (eg. node.js).
---------------
-**News**
-
-Having done a big rewrite of i18next in spring we are proud to announce the next big step to get your webproject translated with less effort. We just released [locize](locize.com) a translation management system built around the i18next ecosystem.
-
-With using locize you directly support the future of i18next.
+
---------------
i18next provides:
@@ -39,3 +33,12 @@ For more information visit the website:
Our focus is providing the core to building a booming ecosystem. Independent of the building blocks you choose, be it react, angular or even good old jquery proper translation capabilities are just [one step away](http://i18next.com/docs/ecosystem/#frameworks).
+
+--------------
+**locize.com**
+
+Having done a big rewrite of i18next in spring we are proud to announce the next big step to get your webproject translated with less effort. We just released [locize](http://locize.com/) a translation management system built around the i18next ecosystem.
+
+With using locize you directly support the future of i18next.
+
+--------------
diff --git a/app/Resources/public/assets/i18next/i18next.js b/app/Resources/public/assets/i18next/i18next.js
index d35e1e7894..54cbb0ad04 100644
--- a/app/Resources/public/assets/i18next/i18next.js
+++ b/app/Resources/public/assets/i18next/i18next.js
@@ -1199,6 +1199,15 @@
this.nestingPrefix = iOpts.nestingPrefix ? regexEscape(iOpts.nestingPrefix) : iOpts.nestingPrefixEscaped || regexEscape('$t(');
this.nestingSuffix = iOpts.nestingSuffix ? regexEscape(iOpts.nestingSuffix) : iOpts.nestingSuffixEscaped || regexEscape(')');
+ // the regexp
+ this.resetRegExp();
+ };
+
+ Interpolator.prototype.reset = function reset() {
+ if (this.options) this.init(this.options);
+ };
+
+ Interpolator.prototype.resetRegExp = function resetRegExp() {
// the regexp
var regexpStr = this.prefix + '(.+?)' + this.suffix;
this.regexp = new RegExp(regexpStr, 'g');
@@ -1210,10 +1219,6 @@
this.nestingRegexp = new RegExp(nestingRegexpStr, 'g');
};
- Interpolator.prototype.reset = function reset() {
- if (this.options) this.init(this.options);
- };
-
Interpolator.prototype.interpolate = function interpolate(str, data, lng) {
var _this = this;
@@ -1234,6 +1239,8 @@
return _this.format(getPath(data, k), f, lng);
};
+ this.resetRegExp();
+
// unescape if has unescapePrefix/Suffix
while (match = this.regexpUnescape.exec(str)) {
var _value = handleFormat(match[1].trim());
@@ -2013,6 +2020,7 @@
I18n.prototype.dir = function dir(lng) {
if (!lng) lng = this.language;
+ if (!lng) return 'rtl';
var rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam'];
diff --git a/app/Resources/public/assets/i18next/i18next.min.js b/app/Resources/public/assets/i18next/i18next.min.js
index f038e7310b..7e9c947299 100644
--- a/app/Resources/public/assets/i18next/i18next.min.js
+++ b/app/Resources/public/assets/i18next/i18next.min.js
@@ -1,2 +1,2 @@
-!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.i18next=e()}(this,function(){"use strict";function t(t){return null==t?"":""+t}function e(t,e,n){t.forEach(function(t){e[t]&&(n[t]=e[t])})}function n(t,e,n){function o(t){return t&&t.indexOf("###")>-1?t.replace(/###/g,"."):t}for(var r="string"!=typeof e?[].concat(e):e.split(".");r.length>1;){if(!t)return{};var i=o(r.shift());!t[i]&&n&&(t[i]=new n),t=t[i]}return t?{obj:t,k:o(r.shift())}:{}}function o(t,e,o){var r=n(t,e,Object),i=r.obj,s=r.k;i[s]=o}function r(t,e,o,r){var i=n(t,e,Object),s=i.obj,a=i.k;s[a]=s[a]||[],r&&(s[a]=s[a].concat(o)),r||s[a].push(o)}function i(t,e){var o=n(t,e),r=o.obj,i=o.k;if(r)return r[i]}function s(t,e,n){for(var o in e)o in t?"string"==typeof t[o]||t[o]instanceof String||"string"==typeof e[o]||e[o]instanceof String?n&&(t[o]=e[o]):s(t[o],e[o],n):t[o]=e[o];return t}function a(t){return t.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}function u(t){return"string"==typeof t?t.replace(/[&<>"'\/]/g,function(t){return P[t]}):t}function l(t){return t.interpolation={unescapeSuffix:"HTML"},t.interpolation.prefix=t.interpolationPrefix||"__",t.interpolation.suffix=t.interpolationSuffix||"__",t.interpolation.escapeValue=t.escapeInterpolation||!1,t.interpolation.nestingPrefix=t.reusePrefix||"$t(",t.interpolation.nestingSuffix=t.reuseSuffix||")",t}function c(t){return t.resStore&&(t.resources=t.resStore),t.ns&&t.ns.defaultNs?(t.defaultNS=t.ns.defaultNs,t.ns=t.ns.namespaces):t.defaultNS=t.ns||"translation",t.fallbackToDefaultNS&&t.defaultNS&&(t.fallbackNS=t.defaultNS),t.saveMissing=t.sendMissing,t.saveMissingTo=t.sendMissingTo||"current",t.returnNull=!t.fallbackOnNull,t.returnEmptyString=!t.fallbackOnEmpty,t.returnObjects=t.returnObjectTrees,t.joinArrays="\n",t.returnedObjectHandler=t.objectTreeKeyHandler,t.parseMissingKeyHandler=t.parseMissingKey,t.appendNamespaceToMissingKey=!0,t.nsSeparator=t.nsseparator,t.keySeparator=t.keyseparator,"sprintf"===t.shortcutFunction&&(t.overloadTranslationOptionHandler=function(t){for(var e=[],n=1;n-1&&n.observers[t].splice(o,1)}else delete n.observers[t]})},t.prototype.emit=function(t){for(var e=arguments.length,n=Array(e>1?e-1:0),o=1;o":">",'"':""","'":"'","/":"/"},C=function(t){function e(){var n=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],o=arguments.length<=1||void 0===arguments[1]?{ns:["translation"],defaultNS:"translation"}:arguments[1];x(this,e);var r=w(this,t.call(this));return r.data=n,r.options=o,r}return S(e,t),e.prototype.addNamespaces=function(t){this.options.ns.indexOf(t)<0&&this.options.ns.push(t)},e.prototype.removeNamespaces=function(t){var e=this.options.ns.indexOf(t);e>-1&&this.options.ns.splice(e,1)},e.prototype.getResource=function(t,e,n){var o=arguments.length<=3||void 0===arguments[3]?{}:arguments[3],r=o.keySeparator||this.options.keySeparator;void 0===r&&(r=".");var s=[t,e];return n&&"string"!=typeof n&&(s=s.concat(n)),n&&"string"==typeof n&&(s=s.concat(r?n.split(r):n)),t.indexOf(".")>-1&&(s=t.split(".")),i(this.data,s)},e.prototype.addResource=function(t,e,n,r){var i=arguments.length<=4||void 0===arguments[4]?{silent:!1}:arguments[4],s=this.options.keySeparator;void 0===s&&(s=".");var a=[t,e];n&&(a=a.concat(s?n.split(s):n)),t.indexOf(".")>-1&&(a=t.split("."),r=e,e=a[1]),this.addNamespaces(e),o(this.data,a,r),i.silent||this.emit("added",t,e,n,r)},e.prototype.addResources=function(t,e,n){for(var o in n)"string"==typeof n[o]&&this.addResource(t,e,o,n[o],{silent:!0});this.emit("added",t,e,n)},e.prototype.addResourceBundle=function(t,e,n,r,a){var u=[t,e];t.indexOf(".")>-1&&(u=t.split("."),r=n,n=e,e=u[1]),this.addNamespaces(e);var l=i(this.data,u)||{};r?s(l,n,a):l=k({},l,n),o(this.data,u,l),this.emit("added",t,e,n)},e.prototype.removeResourceBundle=function(t,e){this.hasResourceBundle(t,e)&&delete this.data[t][e],this.removeNamespaces(e),this.emit("removed",t,e)},e.prototype.hasResourceBundle=function(t,e){return void 0!==this.getResource(t,e)},e.prototype.getResourceBundle=function(t,e){return e||(e=this.options.defaultNS),"v1"===this.options.compatibilityAPI?k({},this.getResource(t,e)):this.getResource(t,e)},e.prototype.toJSON=function(){return this.data},e}(R),E={processors:{},addPostProcessor:function(t){this.processors[t.name]=t},handle:function(t,e,n,o,r){var i=this;return t.forEach(function(t){i.processors[t]&&(e=i.processors[t].process(e,n,o,r))}),e}},_=function(t){function n(o){var r=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];x(this,n);var i=w(this,t.call(this));return e(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector"],o,i),i.options=r,i.logger=j.create("translator"),i}return S(n,t),n.prototype.changeLanguage=function(t){t&&(this.language=t)},n.prototype.exists=function(t){var e=arguments.length<=1||void 0===arguments[1]?{interpolation:{}}:arguments[1];return"v1"===this.options.compatibilityAPI&&(e=f(e)),void 0!==this.resolve(t,e)},n.prototype.extractFromKey=function(t,e){var n=e.nsSeparator||this.options.nsSeparator;void 0===n&&(n=":");var o=e.ns||this.options.defaultNS;if(n&&t.indexOf(n)>-1){var r=t.split(n);o=r[0],t=r[1]}return"string"==typeof o&&(o=[o]),{key:t,namespaces:o}},n.prototype.translate=function(t){var e=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];if("object"!==("undefined"==typeof e?"undefined":m(e))?e=this.options.overloadTranslationOptionHandler(arguments):"v1"===this.options.compatibilityAPI&&(e=f(e)),void 0===t||null===t||""===t)return"";"number"==typeof t&&(t=String(t)),"string"==typeof t&&(t=[t]);var n=e.lng||this.language;if(n&&"cimode"===n.toLowerCase())return t[t.length-1];var o=e.keySeparator||this.options.keySeparator||".",r=this.extractFromKey(t[t.length-1],e),i=r.key,s=r.namespaces,a=s[s.length-1],u=this.resolve(t,e),l=Object.prototype.toString.apply(u),c=["[object Number]","[object Function]","[object RegExp]"],p=void 0!==e.joinArrays?e.joinArrays:this.options.joinArrays;if(u&&"string"!=typeof u&&c.indexOf(l)<0&&(!p||"[object Array]"!==l)){if(!e.returnObjects&&!this.options.returnObjects)return this.logger.warn("accessing an object - but returnObjects options is not enabled!"),this.options.returnedObjectHandler?this.options.returnedObjectHandler(i,u,e):"key '"+i+" ("+this.language+")' returned an object instead of string.";var g="[object Array]"===l?[]:{};for(var h in u)g[h]=this.translate(""+i+o+h,k({joinArrays:!1,ns:s},e));u=g}else if(p&&"[object Array]"===l)u=u.join(p),u&&(u=this.extendTranslation(u,i,e));else{var d=!1,v=!1;if(this.isValidLookup(u)||void 0===e.defaultValue||(d=!0,u=e.defaultValue),this.isValidLookup(u)||(v=!0,u=i),v||d){this.logger.log("missingKey",n,a,i,u);var y=[];if("fallback"===this.options.saveMissingTo&&this.options.fallbackLng&&this.options.fallbackLng[0])for(var b=0;b-1?n[1].toLowerCase():n[0])},t.prototype.formatLanguageCode=function(t){if("string"==typeof t&&t.indexOf("-")>-1){var e=["hans","hant","latn","cyrl","cans","mong","arab"],n=t.split("-");return this.options.lowerCaseLng?n=n.map(function(t){return t.toLowerCase()}):2===n.length?(n[0]=n[0].toLowerCase(),n[1]=n[1].toUpperCase(),e.indexOf(n[1].toLowerCase())>-1&&(n[1]=h(n[1].toLowerCase()))):3===n.length&&(n[0]=n[0].toLowerCase(),2===n[1].length&&(n[1]=n[1].toUpperCase()),"sgn"!==n[0]&&2===n[2].length&&(n[2]=n[2].toUpperCase()),e.indexOf(n[1].toLowerCase())>-1&&(n[1]=h(n[1].toLowerCase())),e.indexOf(n[2].toLowerCase())>-1&&(n[2]=h(n[2].toLowerCase()))),n.join("-")}return this.options.cleanCode||this.options.lowerCaseLng?t.toLowerCase():t},t.prototype.isWhitelisted=function(t,e){return("languageOnly"===this.options.load||this.options.nonExplicitWhitelist&&!e)&&(t=this.getLanguagePartFromCode(t)),!this.whitelist||!this.whitelist.length||this.whitelist.indexOf(t)>-1},t.prototype.toResolveHierarchy=function(t,e){var n=this;e=e||this.options.fallbackLng||[],"string"==typeof e&&(e=[e]);var o=[],r=function(t){var e=!(arguments.length<=1||void 0===arguments[1])&&arguments[1];n.isWhitelisted(t,e)?o.push(t):n.logger.warn("rejecting non-whitelisted language code: "+t)};return"string"==typeof t&&t.indexOf("-")>-1?("languageOnly"!==this.options.load&&r(this.formatLanguageCode(t),!0),"currentOnly"!==this.options.load&&r(this.getLanguagePartFromCode(t))):"string"==typeof t&&r(this.formatLanguageCode(t)),e.forEach(function(t){o.indexOf(t)<0&&r(n.formatLanguageCode(t))}),o},t}(),T=[{lngs:["ach","ak","am","arn","br","fil","gun","ln","mfe","mg","mi","oc","tg","ti","tr","uz","wa"],nr:[1,2],fc:1},{lngs:["af","an","ast","az","bg","bn","ca","da","de","dev","el","en","eo","es","es_ar","et","eu","fi","fo","fur","fy","gl","gu","ha","he","hi","hu","hy","ia","it","kn","ku","lb","mai","ml","mn","mr","nah","nap","nb","ne","nl","nn","no","nso","pa","pap","pms","ps","pt","pt_br","rm","sco","se","si","so","son","sq","sv","sw","ta","te","tk","ur","yo"],nr:[1,2],fc:2},{lngs:["ay","bo","cgg","fa","id","ja","jbo","ka","kk","km","ko","ky","lo","ms","sah","su","th","tt","ug","vi","wo","zh"],nr:[1],fc:3},{lngs:["be","bs","dz","hr","ru","sr","uk"],nr:[1,2,5],fc:4},{lngs:["ar"],nr:[0,1,2,3,11,100],fc:5},{lngs:["cs","sk"],nr:[1,2,5],fc:6},{lngs:["csb","pl"],nr:[1,2,5],fc:7},{lngs:["cy"],nr:[1,2,3,8],fc:8},{lngs:["fr"],nr:[1,2],fc:9},{lngs:["ga"],nr:[1,2,3,7,11],fc:10},{lngs:["gd"],nr:[1,2,3,20],fc:11},{lngs:["is"],nr:[1,2],fc:12},{lngs:["jv"],nr:[0,1],fc:13},{lngs:["kw"],nr:[1,2,3,4],fc:14},{lngs:["lt"],nr:[1,2,10],fc:15},{lngs:["lv"],nr:[1,2,0],fc:16},{lngs:["mk"],nr:[1,2],fc:17},{lngs:["mnk"],nr:[0,1,2],fc:18},{lngs:["mt"],nr:[1,2,11,20],fc:19},{lngs:["or"],nr:[2,1],fc:2},{lngs:["ro"],nr:[1,2,20],fc:20},{lngs:["sl"],nr:[5,1,2,3],fc:21}],A={1:function(t){return Number(t>1)},2:function(t){return Number(1!=t)},3:function(t){return 0},4:function(t){return Number(t%10==1&&t%100!=11?0:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?1:2)},5:function(t){return Number(0===t?0:1==t?1:2==t?2:t%100>=3&&t%100<=10?3:t%100>=11?4:5)},6:function(t){return Number(1==t?0:t>=2&&t<=4?1:2)},7:function(t){return Number(1==t?0:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?1:2)},8:function(t){return Number(1==t?0:2==t?1:8!=t&&11!=t?2:3)},9:function(t){return Number(t>=2)},10:function(t){return Number(1==t?0:2==t?1:t<7?2:t<11?3:4)},11:function(t){return Number(1==t||11==t?0:2==t||12==t?1:t>2&&t<20?2:3)},12:function(t){return Number(t%10!=1||t%100==11)},13:function(t){return Number(0!==t)},14:function(t){return Number(1==t?0:2==t?1:3==t?2:3)},15:function(t){return Number(t%10==1&&t%100!=11?0:t%10>=2&&(t%100<10||t%100>=20)?1:2)},16:function(t){return Number(t%10==1&&t%100!=11?0:0!==t?1:2)},17:function(t){return Number(1==t||t%10==1?0:1)},18:function(t){return Number(0==t?0:1==t?1:2)},19:function(t){return Number(1==t?0:0===t||t%100>1&&t%100<11?1:t%100>10&&t%100<20?2:3)},20:function(t){return Number(1==t?0:0===t||t%100>0&&t%100<20?1:2)},21:function(t){return Number(t%100==1?1:t%100==2?2:t%100==3||t%100==4?3:0)}},H=function(){function t(e){var n=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];x(this,t),this.languageUtils=e,this.options=n,this.logger=j.create("pluralResolver"),this.rules=d()}return t.prototype.addRule=function(t,e){this.rules[t]=e},t.prototype.getRule=function(t){return this.rules[this.languageUtils.getLanguagePartFromCode(t)]},t.prototype.needsPlural=function(t){var e=this.getRule(t);return!(e&&e.numbers.length<=1)},t.prototype.getSuffix=function(t,e){var n=this,o=this.getRule(t);if(!o)return this.logger.warn("no plural rule found for: "+t),"";var r=function(){if(1===o.numbers.length)return{v:""};var t=o.noAbs?o.plurals(e):o.plurals(Math.abs(e)),r=o.numbers[t];2===o.numbers.length&&1===o.numbers[0]&&(2===r?r="plural":1===r&&(r=""));var i=function(){return n.options.prepend&&r.toString()?n.options.prepend+r.toString():r.toString()};return"v1"===n.options.compatibilityJSON?1===r?{v:""}:"number"==typeof r?{v:"_plural_"+r.toString()}:{v:i()}:"v2"===n.options.compatibilityJSON||2===o.numbers.length&&1===o.numbers[0]?{v:i()}:2===o.numbers.length&&1===o.numbers[0]?{v:i()}:{v:n.options.prepend&&t.toString()?n.options.prepend+t.toString():t.toString()}}();return"object"===("undefined"==typeof r?"undefined":m(r))?r.v:void 0},t}(),V=function(){function e(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];x(this,e),this.logger=j.create("interpolator"),this.init(t,!0)}return e.prototype.init=function(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],e=arguments[1];e&&(this.options=t,this.format=t.interpolation&&t.interpolation.format||function(t){return t}),t.interpolation||(t.interpolation={escapeValue:!0});var n=t.interpolation;this.escapeValue=n.escapeValue,this.prefix=n.prefix?a(n.prefix):n.prefixEscaped||"{{",this.suffix=n.suffix?a(n.suffix):n.suffixEscaped||"}}",this.formatSeparator=n.formatSeparator?a(n.formatSeparator):n.formatSeparator||",",this.unescapePrefix=n.unescapeSuffix?"":n.unescapePrefix||"-",this.unescapeSuffix=this.unescapePrefix?"":n.unescapeSuffix||"",this.nestingPrefix=n.nestingPrefix?a(n.nestingPrefix):n.nestingPrefixEscaped||a("$t("),this.nestingSuffix=n.nestingSuffix?a(n.nestingSuffix):n.nestingSuffixEscaped||a(")");var o=this.prefix+"(.+?)"+this.suffix;this.regexp=new RegExp(o,"g");var r=this.prefix+this.unescapePrefix+"(.+?)"+this.unescapeSuffix+this.suffix;this.regexpUnescape=new RegExp(r,"g");var i=this.nestingPrefix+"(.+?)"+this.nestingSuffix;this.nestingRegexp=new RegExp(i,"g")},e.prototype.reset=function(){this.options&&this.init(this.options)},e.prototype.interpolate=function(e,n,o){function r(t){return t.replace(/\$/g,"$$$$")}for(var s=this,a=void 0,l=void 0,c=function(t){if(t.indexOf(s.formatSeparator)<0)return i(n,t);var e=t.split(s.formatSeparator),r=e.shift().trim(),a=e.join(s.formatSeparator).trim();return s.format(i(n,r),a,o)};a=this.regexpUnescape.exec(e);){var p=c(a[1].trim());e=e.replace(a[0],p),this.regexpUnescape.lastIndex=0}for(;a=this.regexp.exec(e);)l=c(a[1].trim()),"string"!=typeof l&&(l=t(l)),l||(this.logger.warn("missed to pass in variable "+a[1]+" for interpolating "+e),l=""),l=r(this.escapeValue?u(l):l),e=e.replace(a[0],l),this.regexp.lastIndex=0;return e},e.prototype.nest=function(e,n){function o(t){return t.replace(/\$/g,"$$$$")}function r(t){if(t.indexOf(",")<0)return t;var e=t.split(",");t=e.shift();var n=e.join(",");n=this.interpolate(n,l);try{l=JSON.parse(n)}catch(e){this.logger.error("failed parsing options string in nesting for key "+t,e)}return t}var i=arguments.length<=2||void 0===arguments[2]?{}:arguments[2],s=void 0,a=void 0,l=JSON.parse(JSON.stringify(i));for(l.applyPostProcessor=!1;s=this.nestingRegexp.exec(e);)a=n(r.call(this,s[1].trim()),l),"string"!=typeof a&&(a=t(a)),a||(this.logger.warn("missed to pass in variable "+s[1]+" for interpolating "+e),a=""),a=o(this.escapeValue?u(a):a),e=e.replace(s[0],a),this.regexp.lastIndex=0;return e},e}(),U=function(t){function e(n,o,r){var i=arguments.length<=3||void 0===arguments[3]?{}:arguments[3];x(this,e);var s=w(this,t.call(this));return s.backend=n,s.store=o,s.services=r,s.options=i,s.logger=j.create("backendConnector"),s.state={},s.queue=[],s.backend&&s.backend.init&&s.backend.init(r,i.backend,i),s}return S(e,t),e.prototype.queueLoad=function(t,e,n){var o=this,r=[],i=[],s=[],a=[];return t.forEach(function(t){var n=!0;e.forEach(function(e){var s=t+"|"+e;o.store.hasResourceBundle(t,e)?o.state[s]=2:o.state[s]<0||(1===o.state[s]?i.indexOf(s)<0&&i.push(s):(o.state[s]=1,n=!1,i.indexOf(s)<0&&i.push(s),r.indexOf(s)<0&&r.push(s),a.indexOf(e)<0&&a.push(e)))}),n||s.push(t)}),(r.length||i.length)&&this.queue.push({pending:i,loaded:{},errors:[],callback:n}),{toLoad:r,pending:i,toLoadLanguages:s,toLoadNamespaces:a}},e.prototype.loaded=function(t,e,n){var o=this,i=t.split("|"),s=L(i,2),a=s[0],u=s[1];e&&this.emit("failedLoading",a,u,e),n&&this.store.addResourceBundle(a,u,n),this.state[t]=e?-1:2,this.queue.forEach(function(n){r(n.loaded,[a],u),v(n.pending,t),e&&n.errors.push(e),0!==n.pending.length||n.done||(n.errors.length?n.callback(n.errors):n.callback(),o.emit("loaded",n.loaded),n.done=!0)}),this.queue=this.queue.filter(function(t){return!t.done})},e.prototype.read=function(t,e,n,o,r,i){var s=this;return o||(o=0),r||(r=250),t.length?void this.backend[n](t,e,function(a,u){return a&&u&&o<5?void setTimeout(function(){s.read.call(s,t,e,n,++o,2*r,i)},r):void i(a,u)}):i(null,{})},e.prototype.load=function(t,e,n){var o=this;if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),n&&n();var r=k({},this.backend.options,this.options.backend);"string"==typeof t&&(t=this.services.languageUtils.toResolveHierarchy(t)),"string"==typeof e&&(e=[e]);var s=this.queueLoad(t,e,n);return s.toLoad.length?void(r.allowMultiLoading&&this.backend.readMulti?this.read(s.toLoadLanguages,s.toLoadNamespaces,"readMulti",null,null,function(t,e){t&&o.logger.warn("loading namespaces "+s.toLoadNamespaces.join(", ")+" for languages "+s.toLoadLanguages.join(", ")+" via multiloading failed",t),!t&&e&&o.logger.log("loaded namespaces "+s.toLoadNamespaces.join(", ")+" for languages "+s.toLoadLanguages.join(", ")+" via multiloading",e),s.toLoad.forEach(function(n){var r=n.split("|"),s=L(r,2),a=s[0],u=s[1],l=i(e,[a,u]);if(l)o.loaded(n,t,l);else{var c="loading namespace "+u+" for language "+a+" via multiloading failed";o.loaded(n,c),o.logger.error(c)}})}):!function(){var t=function(t){var e=this,n=t.split("|"),o=L(n,2),r=o[0],i=o[1];this.read(r,i,"read",null,null,function(n,o){n&&e.logger.warn("loading namespace "+i+" for language "+r+" failed",n),!n&&o&&e.logger.log("loaded namespace "+i+" for language "+r,o),e.loaded(t,n,o)})};s.toLoad.forEach(function(e){t.call(o,e)})}()):void(s.pending.length||n())},e.prototype.reload=function(t,e){var n=this;this.backend||this.logger.warn("No backend was added via i18next.use. Will not load resources.");var o=k({},this.backend.options,this.options.backend);"string"==typeof t&&(t=this.services.languageUtils.toResolveHierarchy(t)),"string"==typeof e&&(e=[e]),o.allowMultiLoading&&this.backend.readMulti?this.read(t,e,"readMulti",null,null,function(o,r){o&&n.logger.warn("reloading namespaces "+e.join(", ")+" for languages "+t.join(", ")+" via multiloading failed",o),!o&&r&&n.logger.log("reloaded namespaces "+e.join(", ")+" for languages "+t.join(", ")+" via multiloading",r),t.forEach(function(t){e.forEach(function(e){var s=i(r,[t,e]);if(s)n.loaded(t+"|"+e,o,s);else{var a="reloading namespace "+e+" for language "+t+" via multiloading failed";n.loaded(t+"|"+e,a),n.logger.error(a)}})})}):!function(){var o=function(t){var e=this,n=t.split("|"),o=L(n,2),r=o[0],i=o[1];this.read(r,i,"read",null,null,function(n,o){n&&e.logger.warn("reloading namespace "+i+" for language "+r+" failed",n),!n&&o&&e.logger.log("reloaded namespace "+i+" for language "+r,o),e.loaded(t,n,o)})};t.forEach(function(t){e.forEach(function(e){o.call(n,t+"|"+e)})})}()},e.prototype.saveMissing=function(t,e,n,o){this.backend&&this.backend.create&&this.backend.create(t,e,n,o),t&&t[0]&&this.store.addResource(t[0],e,n,o)},e}(R),I=function(t){function e(n,o,r){var i=arguments.length<=3||void 0===arguments[3]?{}:arguments[3];x(this,e);var s=w(this,t.call(this));return s.cache=n,s.store=o,s.services=r,s.options=i,s.logger=j.create("cacheConnector"),s.cache&&s.cache.init&&s.cache.init(r,i.cache,i),s}return S(e,t),e.prototype.load=function(t,e,n){var o=this;if(!this.cache)return n&&n();var r=k({},this.cache.options,this.options.cache);"string"==typeof t&&(t=this.services.languageUtils.toResolveHierarchy(t)),"string"==typeof e&&(e=[e]),r.enabled?this.cache.load(t,function(e,r){if(e&&o.logger.error("loading languages "+t.join(", ")+" from cache failed",e),r)for(var i in r)for(var s in r[i])if("i18nStamp"!==s){var a=r[i][s];a&&o.store.addResourceBundle(i,s,a)}n&&n()}):n&&n()},e.prototype.save=function(){this.cache&&this.options.cache&&this.options.cache.enabled&&this.cache.save(this.store.data)},e}(R),K=function(t){function e(){var n=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],o=arguments[1];x(this,e);var r=w(this,t.call(this));return r.options=b(n),r.services={},r.logger=j,r.modules={},o&&!r.isInitialized&&r.init(n,o),r}return S(e,t),e.prototype.init=function(t,e){function n(t){if(t)return"function"==typeof t?new t:t}var o=this;if("function"==typeof t&&(e=t,t={}),t||(t={}),"v1"===t.compatibilityAPI?this.options=k({},y(),b(c(t)),{}):"v1"===t.compatibilityJSON?this.options=k({},y(),b(p(t)),{}):this.options=k({},y(),this.options,b(t)),e||(e=function(){}),!this.options.isClone){this.modules.logger?j.init(n(this.modules.logger),this.options):j.init(null,this.options);var r=new M(this.options);this.store=new C(this.options.resources,this.options);var i=this.services;i.logger=j,i.resourceStore=this.store,i.resourceStore.on("added removed",function(t,e){i.cacheConnector.save()}),i.languageUtils=r,i.pluralResolver=new H(r,{prepend:this.options.pluralSeparator,compatibilityJSON:this.options.compatibilityJSON}),i.interpolator=new V(this.options),i.backendConnector=new U(n(this.modules.backend),i.resourceStore,i,this.options),i.backendConnector.on("*",function(t){for(var e=arguments.length,n=Array(e>1?e-1:0),r=1;r1?e-1:0),r=1;r1?e-1:0),r=1;r=0?"rtl":"ltr"},e.prototype.createInstance=function(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],n=arguments[1];return new e(t,n)},e.prototype.cloneInstance=function(){var t=this,n=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],o=arguments[1],r=new e(k({},n,this.options,{isClone:!0}),o),i=["store","translator","services","language"];return i.forEach(function(e){r[e]=t[e]}),r},e}(R),D=new K;return D});
\ No newline at end of file
+!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.i18next=e()}(this,function(){"use strict";function t(t){return null==t?"":""+t}function e(t,e,n){t.forEach(function(t){e[t]&&(n[t]=e[t])})}function n(t,e,n){function o(t){return t&&t.indexOf("###")>-1?t.replace(/###/g,"."):t}for(var r="string"!=typeof e?[].concat(e):e.split(".");r.length>1;){if(!t)return{};var i=o(r.shift());!t[i]&&n&&(t[i]=new n),t=t[i]}return t?{obj:t,k:o(r.shift())}:{}}function o(t,e,o){var r=n(t,e,Object),i=r.obj,s=r.k;i[s]=o}function r(t,e,o,r){var i=n(t,e,Object),s=i.obj,a=i.k;s[a]=s[a]||[],r&&(s[a]=s[a].concat(o)),r||s[a].push(o)}function i(t,e){var o=n(t,e),r=o.obj,i=o.k;if(r)return r[i]}function s(t,e,n){for(var o in e)o in t?"string"==typeof t[o]||t[o]instanceof String||"string"==typeof e[o]||e[o]instanceof String?n&&(t[o]=e[o]):s(t[o],e[o],n):t[o]=e[o];return t}function a(t){return t.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}function u(t){return"string"==typeof t?t.replace(/[&<>"'\/]/g,function(t){return P[t]}):t}function l(t){return t.interpolation={unescapeSuffix:"HTML"},t.interpolation.prefix=t.interpolationPrefix||"__",t.interpolation.suffix=t.interpolationSuffix||"__",t.interpolation.escapeValue=t.escapeInterpolation||!1,t.interpolation.nestingPrefix=t.reusePrefix||"$t(",t.interpolation.nestingSuffix=t.reuseSuffix||")",t}function c(t){return t.resStore&&(t.resources=t.resStore),t.ns&&t.ns.defaultNs?(t.defaultNS=t.ns.defaultNs,t.ns=t.ns.namespaces):t.defaultNS=t.ns||"translation",t.fallbackToDefaultNS&&t.defaultNS&&(t.fallbackNS=t.defaultNS),t.saveMissing=t.sendMissing,t.saveMissingTo=t.sendMissingTo||"current",t.returnNull=!t.fallbackOnNull,t.returnEmptyString=!t.fallbackOnEmpty,t.returnObjects=t.returnObjectTrees,t.joinArrays="\n",t.returnedObjectHandler=t.objectTreeKeyHandler,t.parseMissingKeyHandler=t.parseMissingKey,t.appendNamespaceToMissingKey=!0,t.nsSeparator=t.nsseparator,t.keySeparator=t.keyseparator,"sprintf"===t.shortcutFunction&&(t.overloadTranslationOptionHandler=function(t){for(var e=[],n=1;n-1&&n.observers[t].splice(o,1)}else delete n.observers[t]})},t.prototype.emit=function(t){for(var e=arguments.length,n=Array(e>1?e-1:0),o=1;o":">",'"':""","'":"'","/":"/"},C=function(t){function e(){var n=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],o=arguments.length<=1||void 0===arguments[1]?{ns:["translation"],defaultNS:"translation"}:arguments[1];x(this,e);var r=w(this,t.call(this));return r.data=n,r.options=o,r}return S(e,t),e.prototype.addNamespaces=function(t){this.options.ns.indexOf(t)<0&&this.options.ns.push(t)},e.prototype.removeNamespaces=function(t){var e=this.options.ns.indexOf(t);e>-1&&this.options.ns.splice(e,1)},e.prototype.getResource=function(t,e,n){var o=arguments.length<=3||void 0===arguments[3]?{}:arguments[3],r=o.keySeparator||this.options.keySeparator;void 0===r&&(r=".");var s=[t,e];return n&&"string"!=typeof n&&(s=s.concat(n)),n&&"string"==typeof n&&(s=s.concat(r?n.split(r):n)),t.indexOf(".")>-1&&(s=t.split(".")),i(this.data,s)},e.prototype.addResource=function(t,e,n,r){var i=arguments.length<=4||void 0===arguments[4]?{silent:!1}:arguments[4],s=this.options.keySeparator;void 0===s&&(s=".");var a=[t,e];n&&(a=a.concat(s?n.split(s):n)),t.indexOf(".")>-1&&(a=t.split("."),r=e,e=a[1]),this.addNamespaces(e),o(this.data,a,r),i.silent||this.emit("added",t,e,n,r)},e.prototype.addResources=function(t,e,n){for(var o in n)"string"==typeof n[o]&&this.addResource(t,e,o,n[o],{silent:!0});this.emit("added",t,e,n)},e.prototype.addResourceBundle=function(t,e,n,r,a){var u=[t,e];t.indexOf(".")>-1&&(u=t.split("."),r=n,n=e,e=u[1]),this.addNamespaces(e);var l=i(this.data,u)||{};r?s(l,n,a):l=k({},l,n),o(this.data,u,l),this.emit("added",t,e,n)},e.prototype.removeResourceBundle=function(t,e){this.hasResourceBundle(t,e)&&delete this.data[t][e],this.removeNamespaces(e),this.emit("removed",t,e)},e.prototype.hasResourceBundle=function(t,e){return void 0!==this.getResource(t,e)},e.prototype.getResourceBundle=function(t,e){return e||(e=this.options.defaultNS),"v1"===this.options.compatibilityAPI?k({},this.getResource(t,e)):this.getResource(t,e)},e.prototype.toJSON=function(){return this.data},e}(R),E={processors:{},addPostProcessor:function(t){this.processors[t.name]=t},handle:function(t,e,n,o,r){var i=this;return t.forEach(function(t){i.processors[t]&&(e=i.processors[t].process(e,n,o,r))}),e}},_=function(t){function n(o){var r=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];x(this,n);var i=w(this,t.call(this));return e(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector"],o,i),i.options=r,i.logger=j.create("translator"),i}return S(n,t),n.prototype.changeLanguage=function(t){t&&(this.language=t)},n.prototype.exists=function(t){var e=arguments.length<=1||void 0===arguments[1]?{interpolation:{}}:arguments[1];return"v1"===this.options.compatibilityAPI&&(e=f(e)),void 0!==this.resolve(t,e)},n.prototype.extractFromKey=function(t,e){var n=e.nsSeparator||this.options.nsSeparator;void 0===n&&(n=":");var o=e.ns||this.options.defaultNS;if(n&&t.indexOf(n)>-1){var r=t.split(n);o=r[0],t=r[1]}return"string"==typeof o&&(o=[o]),{key:t,namespaces:o}},n.prototype.translate=function(t){var e=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];if("object"!==("undefined"==typeof e?"undefined":m(e))?e=this.options.overloadTranslationOptionHandler(arguments):"v1"===this.options.compatibilityAPI&&(e=f(e)),void 0===t||null===t||""===t)return"";"number"==typeof t&&(t=String(t)),"string"==typeof t&&(t=[t]);var n=e.lng||this.language;if(n&&"cimode"===n.toLowerCase())return t[t.length-1];var o=e.keySeparator||this.options.keySeparator||".",r=this.extractFromKey(t[t.length-1],e),i=r.key,s=r.namespaces,a=s[s.length-1],u=this.resolve(t,e),l=Object.prototype.toString.apply(u),c=["[object Number]","[object Function]","[object RegExp]"],p=void 0!==e.joinArrays?e.joinArrays:this.options.joinArrays;if(u&&"string"!=typeof u&&c.indexOf(l)<0&&(!p||"[object Array]"!==l)){if(!e.returnObjects&&!this.options.returnObjects)return this.logger.warn("accessing an object - but returnObjects options is not enabled!"),this.options.returnedObjectHandler?this.options.returnedObjectHandler(i,u,e):"key '"+i+" ("+this.language+")' returned an object instead of string.";var g="[object Array]"===l?[]:{};for(var h in u)g[h]=this.translate(""+i+o+h,k({joinArrays:!1,ns:s},e));u=g}else if(p&&"[object Array]"===l)u=u.join(p),u&&(u=this.extendTranslation(u,i,e));else{var d=!1,v=!1;if(this.isValidLookup(u)||void 0===e.defaultValue||(d=!0,u=e.defaultValue),this.isValidLookup(u)||(v=!0,u=i),v||d){this.logger.log("missingKey",n,a,i,u);var y=[];if("fallback"===this.options.saveMissingTo&&this.options.fallbackLng&&this.options.fallbackLng[0])for(var b=0;b-1?n[1].toLowerCase():n[0])},t.prototype.formatLanguageCode=function(t){if("string"==typeof t&&t.indexOf("-")>-1){var e=["hans","hant","latn","cyrl","cans","mong","arab"],n=t.split("-");return this.options.lowerCaseLng?n=n.map(function(t){return t.toLowerCase()}):2===n.length?(n[0]=n[0].toLowerCase(),n[1]=n[1].toUpperCase(),e.indexOf(n[1].toLowerCase())>-1&&(n[1]=h(n[1].toLowerCase()))):3===n.length&&(n[0]=n[0].toLowerCase(),2===n[1].length&&(n[1]=n[1].toUpperCase()),"sgn"!==n[0]&&2===n[2].length&&(n[2]=n[2].toUpperCase()),e.indexOf(n[1].toLowerCase())>-1&&(n[1]=h(n[1].toLowerCase())),e.indexOf(n[2].toLowerCase())>-1&&(n[2]=h(n[2].toLowerCase()))),n.join("-")}return this.options.cleanCode||this.options.lowerCaseLng?t.toLowerCase():t},t.prototype.isWhitelisted=function(t,e){return("languageOnly"===this.options.load||this.options.nonExplicitWhitelist&&!e)&&(t=this.getLanguagePartFromCode(t)),!this.whitelist||!this.whitelist.length||this.whitelist.indexOf(t)>-1},t.prototype.toResolveHierarchy=function(t,e){var n=this;e=e||this.options.fallbackLng||[],"string"==typeof e&&(e=[e]);var o=[],r=function(t){var e=!(arguments.length<=1||void 0===arguments[1])&&arguments[1];n.isWhitelisted(t,e)?o.push(t):n.logger.warn("rejecting non-whitelisted language code: "+t)};return"string"==typeof t&&t.indexOf("-")>-1?("languageOnly"!==this.options.load&&r(this.formatLanguageCode(t),!0),"currentOnly"!==this.options.load&&r(this.getLanguagePartFromCode(t))):"string"==typeof t&&r(this.formatLanguageCode(t)),e.forEach(function(t){o.indexOf(t)<0&&r(n.formatLanguageCode(t))}),o},t}(),T=[{lngs:["ach","ak","am","arn","br","fil","gun","ln","mfe","mg","mi","oc","tg","ti","tr","uz","wa"],nr:[1,2],fc:1},{lngs:["af","an","ast","az","bg","bn","ca","da","de","dev","el","en","eo","es","es_ar","et","eu","fi","fo","fur","fy","gl","gu","ha","he","hi","hu","hy","ia","it","kn","ku","lb","mai","ml","mn","mr","nah","nap","nb","ne","nl","nn","no","nso","pa","pap","pms","ps","pt","pt_br","rm","sco","se","si","so","son","sq","sv","sw","ta","te","tk","ur","yo"],nr:[1,2],fc:2},{lngs:["ay","bo","cgg","fa","id","ja","jbo","ka","kk","km","ko","ky","lo","ms","sah","su","th","tt","ug","vi","wo","zh"],nr:[1],fc:3},{lngs:["be","bs","dz","hr","ru","sr","uk"],nr:[1,2,5],fc:4},{lngs:["ar"],nr:[0,1,2,3,11,100],fc:5},{lngs:["cs","sk"],nr:[1,2,5],fc:6},{lngs:["csb","pl"],nr:[1,2,5],fc:7},{lngs:["cy"],nr:[1,2,3,8],fc:8},{lngs:["fr"],nr:[1,2],fc:9},{lngs:["ga"],nr:[1,2,3,7,11],fc:10},{lngs:["gd"],nr:[1,2,3,20],fc:11},{lngs:["is"],nr:[1,2],fc:12},{lngs:["jv"],nr:[0,1],fc:13},{lngs:["kw"],nr:[1,2,3,4],fc:14},{lngs:["lt"],nr:[1,2,10],fc:15},{lngs:["lv"],nr:[1,2,0],fc:16},{lngs:["mk"],nr:[1,2],fc:17},{lngs:["mnk"],nr:[0,1,2],fc:18},{lngs:["mt"],nr:[1,2,11,20],fc:19},{lngs:["or"],nr:[2,1],fc:2},{lngs:["ro"],nr:[1,2,20],fc:20},{lngs:["sl"],nr:[5,1,2,3],fc:21}],A={1:function(t){return Number(t>1)},2:function(t){return Number(1!=t)},3:function(t){return 0},4:function(t){return Number(t%10==1&&t%100!=11?0:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?1:2)},5:function(t){return Number(0===t?0:1==t?1:2==t?2:t%100>=3&&t%100<=10?3:t%100>=11?4:5)},6:function(t){return Number(1==t?0:t>=2&&t<=4?1:2)},7:function(t){return Number(1==t?0:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?1:2)},8:function(t){return Number(1==t?0:2==t?1:8!=t&&11!=t?2:3)},9:function(t){return Number(t>=2)},10:function(t){return Number(1==t?0:2==t?1:t<7?2:t<11?3:4)},11:function(t){return Number(1==t||11==t?0:2==t||12==t?1:t>2&&t<20?2:3)},12:function(t){return Number(t%10!=1||t%100==11)},13:function(t){return Number(0!==t)},14:function(t){return Number(1==t?0:2==t?1:3==t?2:3)},15:function(t){return Number(t%10==1&&t%100!=11?0:t%10>=2&&(t%100<10||t%100>=20)?1:2)},16:function(t){return Number(t%10==1&&t%100!=11?0:0!==t?1:2)},17:function(t){return Number(1==t||t%10==1?0:1)},18:function(t){return Number(0==t?0:1==t?1:2)},19:function(t){return Number(1==t?0:0===t||t%100>1&&t%100<11?1:t%100>10&&t%100<20?2:3)},20:function(t){return Number(1==t?0:0===t||t%100>0&&t%100<20?1:2)},21:function(t){return Number(t%100==1?1:t%100==2?2:t%100==3||t%100==4?3:0)}},H=function(){function t(e){var n=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];x(this,t),this.languageUtils=e,this.options=n,this.logger=j.create("pluralResolver"),this.rules=d()}return t.prototype.addRule=function(t,e){this.rules[t]=e},t.prototype.getRule=function(t){return this.rules[this.languageUtils.getLanguagePartFromCode(t)]},t.prototype.needsPlural=function(t){var e=this.getRule(t);return!(e&&e.numbers.length<=1)},t.prototype.getSuffix=function(t,e){var n=this,o=this.getRule(t);if(!o)return this.logger.warn("no plural rule found for: "+t),"";var r=function(){if(1===o.numbers.length)return{v:""};var t=o.noAbs?o.plurals(e):o.plurals(Math.abs(e)),r=o.numbers[t];2===o.numbers.length&&1===o.numbers[0]&&(2===r?r="plural":1===r&&(r=""));var i=function(){return n.options.prepend&&r.toString()?n.options.prepend+r.toString():r.toString()};return"v1"===n.options.compatibilityJSON?1===r?{v:""}:"number"==typeof r?{v:"_plural_"+r.toString()}:{v:i()}:"v2"===n.options.compatibilityJSON||2===o.numbers.length&&1===o.numbers[0]?{v:i()}:2===o.numbers.length&&1===o.numbers[0]?{v:i()}:{v:n.options.prepend&&t.toString()?n.options.prepend+t.toString():t.toString()}}();return"object"===("undefined"==typeof r?"undefined":m(r))?r.v:void 0},t}(),V=function(){function e(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];x(this,e),this.logger=j.create("interpolator"),this.init(t,!0)}return e.prototype.init=function(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],e=arguments[1];e&&(this.options=t,this.format=t.interpolation&&t.interpolation.format||function(t){return t}),t.interpolation||(t.interpolation={escapeValue:!0});var n=t.interpolation;this.escapeValue=n.escapeValue,this.prefix=n.prefix?a(n.prefix):n.prefixEscaped||"{{",this.suffix=n.suffix?a(n.suffix):n.suffixEscaped||"}}",this.formatSeparator=n.formatSeparator?a(n.formatSeparator):n.formatSeparator||",",this.unescapePrefix=n.unescapeSuffix?"":n.unescapePrefix||"-",this.unescapeSuffix=this.unescapePrefix?"":n.unescapeSuffix||"",this.nestingPrefix=n.nestingPrefix?a(n.nestingPrefix):n.nestingPrefixEscaped||a("$t("),this.nestingSuffix=n.nestingSuffix?a(n.nestingSuffix):n.nestingSuffixEscaped||a(")"),this.resetRegExp()},e.prototype.reset=function(){this.options&&this.init(this.options)},e.prototype.resetRegExp=function(){var t=this.prefix+"(.+?)"+this.suffix;this.regexp=new RegExp(t,"g");var e=this.prefix+this.unescapePrefix+"(.+?)"+this.unescapeSuffix+this.suffix;this.regexpUnescape=new RegExp(e,"g");var n=this.nestingPrefix+"(.+?)"+this.nestingSuffix;this.nestingRegexp=new RegExp(n,"g")},e.prototype.interpolate=function(e,n,o){function r(t){return t.replace(/\$/g,"$$$$")}var s=this,a=void 0,l=void 0,c=function(t){if(t.indexOf(s.formatSeparator)<0)return i(n,t);var e=t.split(s.formatSeparator),r=e.shift().trim(),a=e.join(s.formatSeparator).trim();return s.format(i(n,r),a,o)};for(this.resetRegExp();a=this.regexpUnescape.exec(e);){var p=c(a[1].trim());e=e.replace(a[0],p),this.regexpUnescape.lastIndex=0}for(;a=this.regexp.exec(e);)l=c(a[1].trim()),"string"!=typeof l&&(l=t(l)),l||(this.logger.warn("missed to pass in variable "+a[1]+" for interpolating "+e),l=""),l=r(this.escapeValue?u(l):l),e=e.replace(a[0],l),this.regexp.lastIndex=0;return e},e.prototype.nest=function(e,n){function o(t){return t.replace(/\$/g,"$$$$")}function r(t){if(t.indexOf(",")<0)return t;var e=t.split(",");t=e.shift();var n=e.join(",");n=this.interpolate(n,l);try{l=JSON.parse(n)}catch(e){this.logger.error("failed parsing options string in nesting for key "+t,e)}return t}var i=arguments.length<=2||void 0===arguments[2]?{}:arguments[2],s=void 0,a=void 0,l=JSON.parse(JSON.stringify(i));for(l.applyPostProcessor=!1;s=this.nestingRegexp.exec(e);)a=n(r.call(this,s[1].trim()),l),"string"!=typeof a&&(a=t(a)),a||(this.logger.warn("missed to pass in variable "+s[1]+" for interpolating "+e),a=""),a=o(this.escapeValue?u(a):a),e=e.replace(s[0],a),this.regexp.lastIndex=0;return e},e}(),U=function(t){function e(n,o,r){var i=arguments.length<=3||void 0===arguments[3]?{}:arguments[3];x(this,e);var s=w(this,t.call(this));return s.backend=n,s.store=o,s.services=r,s.options=i,s.logger=j.create("backendConnector"),s.state={},s.queue=[],s.backend&&s.backend.init&&s.backend.init(r,i.backend,i),s}return S(e,t),e.prototype.queueLoad=function(t,e,n){var o=this,r=[],i=[],s=[],a=[];return t.forEach(function(t){var n=!0;e.forEach(function(e){var s=t+"|"+e;o.store.hasResourceBundle(t,e)?o.state[s]=2:o.state[s]<0||(1===o.state[s]?i.indexOf(s)<0&&i.push(s):(o.state[s]=1,n=!1,i.indexOf(s)<0&&i.push(s),r.indexOf(s)<0&&r.push(s),a.indexOf(e)<0&&a.push(e)))}),n||s.push(t)}),(r.length||i.length)&&this.queue.push({pending:i,loaded:{},errors:[],callback:n}),{toLoad:r,pending:i,toLoadLanguages:s,toLoadNamespaces:a}},e.prototype.loaded=function(t,e,n){var o=this,i=t.split("|"),s=L(i,2),a=s[0],u=s[1];e&&this.emit("failedLoading",a,u,e),n&&this.store.addResourceBundle(a,u,n),this.state[t]=e?-1:2,this.queue.forEach(function(n){r(n.loaded,[a],u),v(n.pending,t),e&&n.errors.push(e),0!==n.pending.length||n.done||(n.errors.length?n.callback(n.errors):n.callback(),o.emit("loaded",n.loaded),n.done=!0)}),this.queue=this.queue.filter(function(t){return!t.done})},e.prototype.read=function(t,e,n,o,r,i){var s=this;return o||(o=0),r||(r=250),t.length?void this.backend[n](t,e,function(a,u){return a&&u&&o<5?void setTimeout(function(){s.read.call(s,t,e,n,++o,2*r,i)},r):void i(a,u)}):i(null,{})},e.prototype.load=function(t,e,n){var o=this;if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),n&&n();var r=k({},this.backend.options,this.options.backend);"string"==typeof t&&(t=this.services.languageUtils.toResolveHierarchy(t)),"string"==typeof e&&(e=[e]);var s=this.queueLoad(t,e,n);return s.toLoad.length?void(r.allowMultiLoading&&this.backend.readMulti?this.read(s.toLoadLanguages,s.toLoadNamespaces,"readMulti",null,null,function(t,e){t&&o.logger.warn("loading namespaces "+s.toLoadNamespaces.join(", ")+" for languages "+s.toLoadLanguages.join(", ")+" via multiloading failed",t),!t&&e&&o.logger.log("loaded namespaces "+s.toLoadNamespaces.join(", ")+" for languages "+s.toLoadLanguages.join(", ")+" via multiloading",e),s.toLoad.forEach(function(n){var r=n.split("|"),s=L(r,2),a=s[0],u=s[1],l=i(e,[a,u]);if(l)o.loaded(n,t,l);else{var c="loading namespace "+u+" for language "+a+" via multiloading failed";o.loaded(n,c),o.logger.error(c)}})}):!function(){var t=function(t){var e=this,n=t.split("|"),o=L(n,2),r=o[0],i=o[1];this.read(r,i,"read",null,null,function(n,o){n&&e.logger.warn("loading namespace "+i+" for language "+r+" failed",n),!n&&o&&e.logger.log("loaded namespace "+i+" for language "+r,o),e.loaded(t,n,o)})};s.toLoad.forEach(function(e){t.call(o,e)})}()):void(s.pending.length||n())},e.prototype.reload=function(t,e){var n=this;this.backend||this.logger.warn("No backend was added via i18next.use. Will not load resources.");var o=k({},this.backend.options,this.options.backend);"string"==typeof t&&(t=this.services.languageUtils.toResolveHierarchy(t)),"string"==typeof e&&(e=[e]),o.allowMultiLoading&&this.backend.readMulti?this.read(t,e,"readMulti",null,null,function(o,r){o&&n.logger.warn("reloading namespaces "+e.join(", ")+" for languages "+t.join(", ")+" via multiloading failed",o),!o&&r&&n.logger.log("reloaded namespaces "+e.join(", ")+" for languages "+t.join(", ")+" via multiloading",r),t.forEach(function(t){e.forEach(function(e){var s=i(r,[t,e]);if(s)n.loaded(t+"|"+e,o,s);else{var a="reloading namespace "+e+" for language "+t+" via multiloading failed";n.loaded(t+"|"+e,a),n.logger.error(a)}})})}):!function(){var o=function(t){var e=this,n=t.split("|"),o=L(n,2),r=o[0],i=o[1];this.read(r,i,"read",null,null,function(n,o){n&&e.logger.warn("reloading namespace "+i+" for language "+r+" failed",n),!n&&o&&e.logger.log("reloaded namespace "+i+" for language "+r,o),e.loaded(t,n,o)})};t.forEach(function(t){e.forEach(function(e){o.call(n,t+"|"+e)})})}()},e.prototype.saveMissing=function(t,e,n,o){this.backend&&this.backend.create&&this.backend.create(t,e,n,o),t&&t[0]&&this.store.addResource(t[0],e,n,o)},e}(R),I=function(t){function e(n,o,r){var i=arguments.length<=3||void 0===arguments[3]?{}:arguments[3];x(this,e);var s=w(this,t.call(this));return s.cache=n,s.store=o,s.services=r,s.options=i,s.logger=j.create("cacheConnector"),s.cache&&s.cache.init&&s.cache.init(r,i.cache,i),s}return S(e,t),e.prototype.load=function(t,e,n){var o=this;if(!this.cache)return n&&n();var r=k({},this.cache.options,this.options.cache);"string"==typeof t&&(t=this.services.languageUtils.toResolveHierarchy(t)),"string"==typeof e&&(e=[e]),r.enabled?this.cache.load(t,function(e,r){if(e&&o.logger.error("loading languages "+t.join(", ")+" from cache failed",e),r)for(var i in r)for(var s in r[i])if("i18nStamp"!==s){var a=r[i][s];a&&o.store.addResourceBundle(i,s,a)}n&&n()}):n&&n()},e.prototype.save=function(){this.cache&&this.options.cache&&this.options.cache.enabled&&this.cache.save(this.store.data)},e}(R),K=function(t){function e(){var n=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],o=arguments[1];x(this,e);var r=w(this,t.call(this));return r.options=b(n),r.services={},r.logger=j,r.modules={},o&&!r.isInitialized&&r.init(n,o),r}return S(e,t),e.prototype.init=function(t,e){function n(t){if(t)return"function"==typeof t?new t:t}var o=this;if("function"==typeof t&&(e=t,t={}),t||(t={}),"v1"===t.compatibilityAPI?this.options=k({},y(),b(c(t)),{}):"v1"===t.compatibilityJSON?this.options=k({},y(),b(p(t)),{}):this.options=k({},y(),this.options,b(t)),e||(e=function(){}),!this.options.isClone){this.modules.logger?j.init(n(this.modules.logger),this.options):j.init(null,this.options);var r=new M(this.options);this.store=new C(this.options.resources,this.options);var i=this.services;i.logger=j,i.resourceStore=this.store,i.resourceStore.on("added removed",function(t,e){i.cacheConnector.save()}),i.languageUtils=r,i.pluralResolver=new H(r,{prepend:this.options.pluralSeparator,compatibilityJSON:this.options.compatibilityJSON}),i.interpolator=new V(this.options),i.backendConnector=new U(n(this.modules.backend),i.resourceStore,i,this.options),i.backendConnector.on("*",function(t){for(var e=arguments.length,n=Array(e>1?e-1:0),r=1;r1?e-1:0),r=1;r1?e-1:0),r=1;r=0?"rtl":"ltr"},e.prototype.createInstance=function(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],n=arguments[1];return new e(t,n)},e.prototype.cloneInstance=function(){var t=this,n=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],o=arguments[1],r=new e(k({},n,this.options,{isClone:!0}),o),i=["store","translator","services","language"];return i.forEach(function(e){r[e]=t[e]}),r},e}(R),D=new K;return D});
\ No newline at end of file
diff --git a/app/Resources/public/assets/image-map-resizer/.bower.json b/app/Resources/public/assets/image-map-resizer/.bower.json
index 2c599d4639..a9cc1b33f5 100644
--- a/app/Resources/public/assets/image-map-resizer/.bower.json
+++ b/app/Resources/public/assets/image-map-resizer/.bower.json
@@ -40,7 +40,7 @@
"tag": "v0.5.4",
"commit": "eef318b0892b5ecec2c95a9c2f7f06c420978cbe"
},
- "_source": "git://github.com/davidjbradshaw/image-map-resizer.git",
+ "_source": "https://github.com/davidjbradshaw/image-map-resizer.git",
"_target": "0.5.*",
"_originalSource": "image-map-resizer"
}
\ No newline at end of file
diff --git a/app/Resources/public/assets/jquery-timeago/.bower.json b/app/Resources/public/assets/jquery-timeago/.bower.json
index 14dd8c2422..c78afa7088 100644
--- a/app/Resources/public/assets/jquery-timeago/.bower.json
+++ b/app/Resources/public/assets/jquery-timeago/.bower.json
@@ -17,7 +17,7 @@
"tag": "v1.4.3",
"commit": "5293dacee881e78b25bd4f699161fca81dff5205"
},
- "_source": "git://github.com/rmm5t/jquery-timeago.git",
+ "_source": "https://github.com/rmm5t/jquery-timeago.git",
"_target": "1.4.*",
"_originalSource": "jquery-timeago"
}
\ No newline at end of file
diff --git a/app/Resources/public/assets/jquery-ui/.bower.json b/app/Resources/public/assets/jquery-ui/.bower.json
index ca7fac8941..6674b38c02 100644
--- a/app/Resources/public/assets/jquery-ui/.bower.json
+++ b/app/Resources/public/assets/jquery-ui/.bower.json
@@ -15,7 +15,7 @@
"tag": "1.11.4",
"commit": "c34f8dbf3ba57b3784b93f26119f436c0e8288e1"
},
- "_source": "git://github.com/components/jqueryui.git",
+ "_source": "https://github.com/components/jqueryui.git",
"_target": "1.11.*",
"_originalSource": "jquery-ui"
}
\ No newline at end of file
diff --git a/app/Resources/public/assets/jquery.scrollbar/.bower.json b/app/Resources/public/assets/jquery.scrollbar/.bower.json
index 9bc7dee87f..ae2f581645 100644
--- a/app/Resources/public/assets/jquery.scrollbar/.bower.json
+++ b/app/Resources/public/assets/jquery.scrollbar/.bower.json
@@ -21,7 +21,7 @@
"tag": "0.2.10",
"commit": "058c143d6623f8d39cd45becc1205b9aee325246"
},
- "_source": "git://github.com/gromo/jquery.scrollbar.git",
+ "_source": "https://github.com/gromo/jquery.scrollbar.git",
"_target": "0.2.*",
"_originalSource": "jquery.scrollbar"
}
\ No newline at end of file
diff --git a/app/Resources/public/assets/jqueryui-timepicker-addon/.bower.json b/app/Resources/public/assets/jqueryui-timepicker-addon/.bower.json
index 0125f978d7..31e72075eb 100644
--- a/app/Resources/public/assets/jqueryui-timepicker-addon/.bower.json
+++ b/app/Resources/public/assets/jqueryui-timepicker-addon/.bower.json
@@ -17,7 +17,7 @@
"tag": "v1.5.5",
"commit": "8498e17dc6c4b5aa21f3a2bbe8c20f3a461c3211"
},
- "_source": "git://github.com/trentrichardson/jQuery-Timepicker-Addon.git",
+ "_source": "https://github.com/trentrichardson/jQuery-Timepicker-Addon.git",
"_target": "1.5.*",
"_originalSource": "jqueryui-timepicker-addon"
}
\ No newline at end of file
diff --git a/app/Resources/public/assets/mediaelement/.bower.json b/app/Resources/public/assets/mediaelement/.bower.json
index ca7ae39aa7..da4c23cc89 100644
--- a/app/Resources/public/assets/mediaelement/.bower.json
+++ b/app/Resources/public/assets/mediaelement/.bower.json
@@ -23,12 +23,12 @@
"./build/mediaelement-and-player.js",
"./build/mediaelementplayer.css"
],
- "version": "2.22.1",
- "_release": "2.22.1",
+ "version": "2.23.2",
+ "_release": "2.23.2",
"_resolution": {
"type": "version",
- "tag": "2.22.1",
- "commit": "add004709742e81e578022ff6adafd372d25e107"
+ "tag": "2.23.2",
+ "commit": "b427851d5ff9fc43eda0e58e02e821ec161e3e7a"
},
"_source": "https://github.com/johndyer/mediaelement.git",
"_target": "2.*",
diff --git a/app/Resources/public/assets/mediaelement/README.md b/app/Resources/public/assets/mediaelement/README.md
index 71f49e82cc..d4b15b465e 100644
--- a/app/Resources/public/assets/mediaelement/README.md
+++ b/app/Resources/public/assets/mediaelement/README.md
@@ -1,4 +1,4 @@
-# `';
+ errorContent += '' + mejs.i18n.t('mejs.download-file') + '';
}
errorContainer.innerHTML = errorContent;
@@ -1282,7 +1301,7 @@ mejs.HtmlMediaElementShim = {
initVars;
// copy tagName from html media element
- pluginMediaElement.tagName = htmlMediaElement.tagName
+ pluginMediaElement.tagName = htmlMediaElement.tagName;
// copy attributes from html media element to plugin media element
for (var i = 0; i < htmlMediaElement.attributes.length; i++) {
@@ -1334,10 +1353,21 @@ mejs.HtmlMediaElementShim = {
if (playback.method === 'flash' || playback.method === 'silverlight') {
+ var canPlayVideo = htmlMediaElement.getAttribute('type') === 'audio/mp4',
+ childrenSources = htmlMediaElement.getElementsByTagName('source');
+
+ if (childrenSources && !canPlayVideo) {
+ for (var i = 0, total = childrenSources.length; i < total; i++) {
+ if (childrenSources[i].getAttribute('type') === 'audio/mp4') {
+ canPlayVideo = true;
+ }
+ }
+ }
+
// flash/silverlight vars
initVars = [
'id=' + pluginid,
- 'isvideo=' + ((playback.isVideo) ? "true" : "false"),
+ 'isvideo=' + ((playback.isVideo || canPlayVideo) ? "true" : "false"),
'autoplay=' + ((autoplay) ? "true" : "false"),
'preload=' + preload,
'width=' + width,
@@ -1385,7 +1415,7 @@ mejs.HtmlMediaElementShim = {
if (pluginMediaElement.pluginApi != null && pluginMediaElement.success) {
pluginMediaElement.success(pluginMediaElement, htmlMediaElement);
}
- }
+ };
// event call from plugin
window[pluginid + '_event'] = function(eventName, values) {
@@ -1504,7 +1534,8 @@ mejs.HtmlMediaElementShim = {
videoId: videoId,
height: height,
width: width,
- scheme: playback.scheme
+ scheme: playback.scheme,
+ variables: options.youtubeIframeVars
};
// favor iframe version of YouTube
@@ -1513,7 +1544,6 @@ mejs.HtmlMediaElementShim = {
} else if (mejs.PluginDetector.hasPluginVersion('flash', [10,0,0]) ) {
mejs.YouTubeApi.createFlash(youtubeSettings, options);
}
-
break;
// DEMO Code. Does NOT work.
@@ -1530,19 +1560,19 @@ mejs.HtmlMediaElementShim = {
player.playVideo = function() {
player.api( 'play' );
- }
+ };
player.stopVideo = function() {
player.api( 'unload' );
- }
+ };
player.pauseVideo = function() {
player.api( 'pause' );
- }
+ };
player.seekTo = function( seconds ) {
player.api( 'seekTo', seconds );
- }
+ };
player.setVolume = function( volume ) {
player.api( 'setVolume', volume );
- }
+ };
player.setMuted = function( muted ) {
if( muted ) {
player.lastVolume = player.api( 'getVolume' );
@@ -1551,11 +1581,11 @@ mejs.HtmlMediaElementShim = {
player.api( 'setVolume', player.lastVolume );
delete player.lastVolume;
}
- }
+ };
// parity with YT player
player.getPlayerState = function() {
return playerState;
- }
+ };
function createEvent(player, pluginMediaElement, eventName, e) {
var event = {
@@ -1694,21 +1724,22 @@ mejs.YouTubeApi = {
}
},
createIframe: function(settings) {
-
+
var
- pluginMediaElement = settings.pluginMediaElement,
+ pluginMediaElement = settings.pluginMediaElement,
+ defaultVars = {controls:0, wmode:'transparent'},
player = new YT.Player(settings.containerId, {
height: settings.height,
width: settings.width,
videoId: settings.videoId,
- playerVars: {controls:0,wmode:'transparent'},
+ playerVars: $.extend({}, defaultVars, settings.variables),
events: {
- 'onReady': function() {
+ 'onReady': function(e) {
// wrapper to match
player.setVideoSize = function(width, height) {
player.setSize(width, height);
- }
+ };
// hook up iframe object to MEjs
settings.pluginMediaElement.pluginApi = player;
@@ -1716,11 +1747,17 @@ mejs.YouTubeApi = {
// init mejs
pluginMediaElement.success(pluginMediaElement, pluginMediaElement.pluginElement);
+
+ mejs.YouTubeApi.createEvent(player, pluginMediaElement, 'canplay');
// create timer
setInterval(function() {
mejs.YouTubeApi.createEvent(player, pluginMediaElement, 'timeupdate');
- }, 250);
+ }, 250);
+
+ if (typeof pluginMediaElement.attributes.autoplay !== 'undefined') {
+ player.playVideo();
+ }
},
'onStateChange': function(e) {
@@ -1844,7 +1881,7 @@ mejs.YouTubeApi = {
window[callbackName] = function(e) {
mejs.YouTubeApi.handleStateChange(e, player, pluginMediaElement);
- }
+ };
player.addEventListener('onStateChange', callbackName);
@@ -1908,9 +1945,6 @@ window.MediaElement = mejs.MediaElement;
* This file does not contain translations, you have to add them manually.
* The schema is always the same: me-i18n-locale-[IETF-language-tag].js
*
- * Examples are provided both for german and chinese translation.
- *
- *
* What is the concept beyond i18n?
* http://en.wikipedia.org/wiki/Internationalization_and_localization
*
@@ -1944,6 +1978,7 @@ window.MediaElement = mejs.MediaElement;
"use strict";
var i18n = {
+ "default": 'en',
"locale": {
// Ensure previous values aren't overwritten.
"language" : (exports.i18n && exports.i18n.locale.language) || '',
@@ -2001,8 +2036,8 @@ window.MediaElement = mejs.MediaElement;
* Translate strings to the page language or a given language.
*
*
- * @param str
- * A string containing the English string to translate.
+ * @param uid
+ * A string containing a unique id of the translated text to retrieve.
*
* @param options
* - 'context' (defaults to the default context): The context the source string
@@ -2011,13 +2046,22 @@ window.MediaElement = mejs.MediaElement;
* @return
* The translated string, escaped via i18n.methods.checkPlain()
*/
- i18n.methods.t = function (str, options) {
+ i18n.methods.t = function (uid, options) {
+ var str;
// Fetch the localized version of the string.
- if (i18n.locale.strings && i18n.locale.strings[options.context] && i18n.locale.strings[options.context][str]) {
- str = i18n.locale.strings[options.context][str];
+ if (i18n.locale.strings && i18n.locale.strings[options.context]) {
+ str = i18n.locale.strings[options.context][uid];
+ }
+
+ // Fallback to default language if requested uid is not translated
+ if (!str && i18n.locale.strings && i18n.locale.strings[i18n["default"]]) {
+ str = i18n.locale.strings[i18n["default"]][uid];
}
+ // As a last resort, use the requested uid, to mimic original behavior of i18n utils (in which uid was the english text)
+ str = str || uid;
+
return i18n.methods.checkPlain(str);
};
@@ -2065,6 +2109,82 @@ window.MediaElement = mejs.MediaElement;
}(mejs.i18n.locale.strings));
+/*!
+ * This is a i18n.locale language object.
+ *
+ * English; This can serve as a template for other languages to translate
+ *
+ * @author
+ * TBD
+ *
+ * @see
+ * me-i18n.js
+ *
+ * @params
+ * - exports - CommonJS, window ..
+ */
+;(function(exports, undefined) {
+
+ "use strict";
+
+ if (typeof exports.en === 'undefined') {
+ exports.en = {
+ // me-shim
+ 'mejs.download-file': 'Download File',
+
+ // mep-feature-contextmenu
+ 'mejs.fullscreen-off': 'Turn off Fullscreen',
+ 'mejs.fullscreen-on' : 'Go Fullscreen',
+ // Duplicated from mep-feature-volume
+ // 'mejs.unmute' : 'Unmute',
+ // 'mejs.mute' : 'Mute',
+ 'mejs.download-video' : 'Download Video',
+
+ // mep-feature-fullscreen
+ 'mejs.fullscreen' : 'Fullscreen',
+
+ // mep-feature-jumpforward
+ 'mejs.time-jump-forward': 'Jump forward %1 seconds',
+
+ // mep-feature-playpause
+ 'mejs.play': 'Play',
+ 'mejs.pause': 'Pause',
+
+ // mep-feature-postroll
+ 'mejs.close' : 'Close',
+
+ // mep-feature-progress
+ 'mejs.time-slider': 'Time Slider',
+ 'mejs.time-help-text': 'Use Left/Right Arrow keys to advance one second, Up/Down arrows to advance ten seconds.',
+
+ // mep-feature-skipback
+ 'mejs.time-skip-back': 'Skip back %1 seconds',
+
+ // mep-feature-tracks
+ 'mejs.captions-subtitles' : 'Captions/Subtitles',
+ 'mejs.none' : 'None',
+
+ // mep-feature-volume
+ 'mejs.mute-toggle' : 'Mute Toggle',
+ 'mejs.volume-help-text': 'Use Up/Down Arrow keys to increase or decrease volume.',
+ 'mejs.unmute' : 'Unmute',
+ 'mejs.mute' : 'Mute',
+ 'mejs.volume-slider': 'Volume Slider',
+
+ // mep-player
+ 'mejs.video-player': 'Video Player',
+ 'mejs.audio-player': 'Audio Player',
+
+ // mep-feature-ads
+ 'mejs.ad-skip': 'Skip ad',
+ 'mejs.ad-skip-info': 'Skip in %1 seconds',
+
+ 'mejs.source-chooser': 'Source Chooser'
+ };
+ }
+
+}(mejs.i18n.locale.strings));
+
/*!
*
* MediaElementPlayer
@@ -2115,7 +2235,6 @@ if (typeof jQuery != 'undefined') {
defaultAudioWidth: 400,
// default if the user doesn't specify
defaultAudioHeight: 30,
-
// default amount to move back when back key is pressed
defaultSeekBackwardInterval: function(media) {
return (media.duration * 0.05);
@@ -2124,10 +2243,8 @@ if (typeof jQuery != 'undefined') {
defaultSeekForwardInterval: function(media) {
return (media.duration * 0.05);
},
-
// set dimensions via JS instead of CSS
setDimensions: true,
-
// width of audio player
audioWidth: -1,
// height of audio player
@@ -2137,10 +2254,9 @@ if (typeof jQuery != 'undefined') {
// useful for player loops
loop: false,
// rewind to beginning when media ends
- autoRewind: true,
+ autoRewind: true,
// resize to media dimensions
enableAutosize: true,
-
/*
* Time format to use. Default: 'mm:ss'
* Supported units:
@@ -2163,7 +2279,6 @@ if (typeof jQuery != 'undefined') {
showTimecodeFrameCount: false,
// used when showTimecodeFrameCount is set to true
framesPerSecond: 25,
-
// automatically calculate the width of the progress bar based on the sizes of other elements
autosizeProgress : true,
// Hide controls when playing and mouse is not over the video
@@ -2172,6 +2287,12 @@ if (typeof jQuery != 'undefined') {
hideVideoControlsOnLoad: false,
// Enable click video element to toggle play/pause
clickToPlayPause: true,
+ // Time in ms to hide controls
+ controlsTimeoutDefault: 1500,
+ // Time in ms to trigger the timer when mouse moves
+ controlsTimeoutMouseEnter: 2500,
+ // Time in ms to trigger the timer when mouse leaves
+ controlsTimeoutMouseLeave: 1000,
// force iPad's native controls
iPadUseNativeControls: false,
// force iPhone's native controls
@@ -2182,16 +2303,12 @@ if (typeof jQuery != 'undefined') {
features: ['playpause','current','progress','duration','tracks','volume','fullscreen'],
// only for dynamic
isVideo: true,
-
// stretching modes (auto, fill, responsive, none)
stretching: 'auto',
-
// turns keyboard support on and off for this instance
enableKeyboard: true,
-
- // whenthis player starts, it will pause other players
+ // when this player starts, it will pause other players
pauseOtherPlayers: true,
-
// array of keyboard actions such as play pause
keyActions: [
{
@@ -2199,17 +2316,20 @@ if (typeof jQuery != 'undefined') {
32, // SPACE
179 // GOOGLE play/pause button
],
- action: function(player, media) {
+ action: function(player, media, key, event) {
+
+ if (!mejs.MediaFeatures.isFirefox) {
if (media.paused || media.ended) {
- media.play();
+ media.play();
} else {
- media.pause();
+ media.pause();
}
+ }
}
},
{
keys: [38], // UP
- action: function(player, media) {
+ action: function(player, media, key, event) {
player.container.find('.mejs-volume-slider').css('display','block');
if (player.isVideo) {
player.showControls();
@@ -2222,7 +2342,7 @@ if (typeof jQuery != 'undefined') {
},
{
keys: [40], // DOWN
- action: function(player, media) {
+ action: function(player, media, key, event) {
player.container.find('.mejs-volume-slider').css('display','block');
if (player.isVideo) {
player.showControls();
@@ -2238,7 +2358,7 @@ if (typeof jQuery != 'undefined') {
37, // LEFT
227 // Google TV rewind
],
- action: function(player, media) {
+ action: function(player, media, key, event) {
if (!isNaN(media.duration) && media.duration > 0) {
if (player.isVideo) {
player.showControls();
@@ -2256,7 +2376,7 @@ if (typeof jQuery != 'undefined') {
39, // RIGHT
228 // Google TV forward
],
- action: function(player, media) {
+ action: function(player, media, key, event) {
if (!isNaN(media.duration) && media.duration > 0) {
if (player.isVideo) {
player.showControls();
@@ -2271,7 +2391,7 @@ if (typeof jQuery != 'undefined') {
},
{
keys: [70], // F
- action: function(player, media) {
+ action: function(player, media, key, event) {
if (typeof player.enterFullScreen != 'undefined') {
if (player.isFullScreen) {
player.exitFullScreen();
@@ -2283,7 +2403,7 @@ if (typeof jQuery != 'undefined') {
},
{
keys: [77], // M
- action: function(player, media) {
+ action: function(player, media, key, event) {
player.container.find('.mejs-volume-slider').css('display','block');
if (player.isVideo) {
player.showControls();
@@ -2317,7 +2437,7 @@ if (typeof jQuery != 'undefined') {
t.node = t.media = t.$media[0];
if(!t.node) {
- return
+ return;
}
// check for existing player
@@ -2406,14 +2526,14 @@ if (typeof jQuery != 'undefined') {
// leave default player
- } else {
+ } else if (t.isVideo || (!t.isVideo && t.options.features.length)) {
// DESKTOP: use MediaElementPlayer controls
// remove native controls
t.$media.removeAttr('controls');
var videoPlayerTitle = t.isVideo ?
- mejs.i18n.t('Video Player') : mejs.i18n.t('Audio Player');
+ mejs.i18n.t('mejs.video-player') : mejs.i18n.t('mejs.audio-player');
// insert description for screen readers
$('' + videoPlayerTitle + '').insertBefore(t.$media);
// build container
@@ -2441,8 +2561,13 @@ if (typeof jQuery != 'undefined') {
}
}
});
+
+ // When no elements in controls, hide bar completely
+ if (!t.options.features.length) {
+ t.container.css('background', 'transparent').find('.mejs-controls').hide();
+ }
- if (t.options.stretching === 'fill' && !t.container.parent('mejs-fill-container').length) {
+ if (t.isVideo && t.options.stretching === 'fill' && !t.container.parent('mejs-fill-container').length) {
// outer container
t.outerContainer = t.$media.parent();
t.container.wrap('');
@@ -2509,11 +2634,15 @@ if (typeof jQuery != 'undefined') {
meOptions.pluginWidth = t.width;
meOptions.pluginHeight = t.height;
}
+ // Hide media completely for audio that doesn't have any features
+ else if (!t.isVideo && !t.options.features.length) {
+ t.$media.hide();
+ }
// create MediaElement shim
mejs.MediaElement(t.$media[0], meOptions);
- if (typeof(t.container) != 'undefined' && t.controlsAreVisible){
+ if (typeof(t.container) !== 'undefined' && t.options.features.length && t.controlsAreVisible) {
// controls are shown when loaded
t.container.trigger('controlsshown');
}
@@ -2563,7 +2692,7 @@ if (typeof jQuery != 'undefined') {
doAnimation = typeof doAnimation == 'undefined' || doAnimation;
- if (!t.controlsAreVisible || t.options.alwaysShowControls || t.keyboardAction)
+ if (!t.controlsAreVisible || t.options.alwaysShowControls || t.keyboardAction || t.media.paused || t.media.ended)
return;
if (doAnimation) {
@@ -2606,7 +2735,7 @@ if (typeof jQuery != 'undefined') {
var t = this;
- timeout = typeof timeout != 'undefined' ? timeout : 1500;
+ timeout = typeof timeout != 'undefined' ? timeout : t.options.controlsTimeoutDefault;
t.killControlsTimer('start');
@@ -2648,9 +2777,9 @@ if (typeof jQuery != 'undefined') {
// Sets up all controls and events
meReady: function(media, domNode) {
-
-
- var t = this,
+
+ var
+ t = this,
mf = mejs.MediaFeatures,
autoplayAttr = domNode.getAttribute('autoplay'),
autoplay = !(typeof autoplayAttr == 'undefined' || autoplayAttr === null || autoplayAttr === 'false'),
@@ -2669,6 +2798,29 @@ if (typeof jQuery != 'undefined') {
if (!(mf.isAndroid && t.options.AndroidUseNativeControls) && !(mf.isiPad && t.options.iPadUseNativeControls) && !(mf.isiPhone && t.options.iPhoneUseNativeControls)) {
+ // In the event that no features are specified for audio,
+ // create only MediaElement instance rather than
+ // doing all the work to create a full player
+ if (!t.isVideo && !t.options.features.length) {
+
+ // force autoplay for HTML5
+ if (autoplay && media.pluginType == 'native') {
+ t.play();
+ }
+
+
+ if (t.options.success) {
+
+ if (typeof t.options.success == 'string') {
+ window[t.options.success](t.media, t.domNode, t);
+ } else {
+ t.options.success(t.media, t.domNode, t);
+ }
+ }
+
+ return;
+ }
+
// two built in features
t.buildposter(t, t.controls, t.layers, t.media);
t.buildkeyboard(t, t.controls, t.layers, t.media);
@@ -2702,7 +2854,7 @@ if (typeof jQuery != 'undefined') {
// controls fade
if (t.isVideo) {
- if (mejs.MediaFeatures.hasTouch) {
+ if (mejs.MediaFeatures.hasTouch && !t.options.alwaysShowControls) {
// for touch devices (iOS, Android)
// show/hide without animation on touch
@@ -2749,7 +2901,7 @@ if (typeof jQuery != 'undefined') {
if (!t.options.alwaysShowControls ) {
t.killControlsTimer('enter');
t.showControls();
- t.startControlsTimer(2500);
+ t.startControlsTimer(t.options.controlsTimeoutMouseEnter);
}
}
})
@@ -2759,14 +2911,14 @@ if (typeof jQuery != 'undefined') {
t.showControls();
}
if (!t.options.alwaysShowControls) {
- t.startControlsTimer(2500);
+ t.startControlsTimer(t.options.controlsTimeoutMouseEnter);
}
}
})
.bind('mouseleave', function () {
if (t.controlsEnabled) {
if (!t.media.paused && !t.options.alwaysShowControls) {
- t.startControlsTimer(1000);
+ t.startControlsTimer(t.options.controlsTimeoutMouseLeave);
}
}
});
@@ -2797,7 +2949,7 @@ if (typeof jQuery != 'undefined') {
// EVENTS
- // FOCUS: when a video starts playing, it takes focus from other players (possibily pausing them)
+ // FOCUS: when a video starts playing, it takes focus from other players (possibly pausing them)
t.media.addEventListener('play', function() {
var playerIndex;
@@ -2827,7 +2979,11 @@ if (typeof jQuery != 'undefined') {
}
}
- t.media.pause();
+ if (t.media.pluginType === 'youtube') {
+ t.media.stop();
+ } else {
+ t.media.pause();
+ }
if (t.setProgressRail) {
t.setProgressRail();
@@ -2844,7 +3000,10 @@ if (typeof jQuery != 'undefined') {
}, false);
// resize on the first play
- t.media.addEventListener('loadedmetadata', function(e) {
+ t.media.addEventListener('loadedmetadata', function() {
+
+ mejs.Utility.calculateTimeFormat(t.duration, t.options, t.options.framesPerSecond || 25);
+
if (t.updateDuration) {
t.updateDuration();
}
@@ -3141,7 +3300,8 @@ if (typeof jQuery != 'undefined') {
total = t.controls.find('.mejs-time-total'),
others = rail.siblings(),
lastControl = others.last(),
- lastControlPosition = null;
+ lastControlPosition = null,
+ avoidAutosizeProgress = t.options && !t.options.autosizeProgress;
// skip calculation if hidden
if (!t.container.is(':visible') || !rail.length || !rail.is(':visible')) {
@@ -3149,7 +3309,7 @@ if (typeof jQuery != 'undefined') {
}
// allow the size to come from custom CSS
- if (t.options && !t.options.autosizeProgress) {
+ if (avoidAutosizeProgress) {
// Also, frontends devs can be more flexible
// due the opportunity of absolute positioning.
railWidth = parseInt(rail.css('width'), 10);
@@ -3175,7 +3335,12 @@ if (typeof jQuery != 'undefined') {
// this often happens when zoomed
do {
// outer area
- rail.width(railWidth);
+ // we only want to set an inline style with the width of the rail
+ // if we're trying to autosize.
+ if (!avoidAutosizeProgress) {
+ rail.width(railWidth);
+ }
+
// dark space
total.width(railWidth - (total.outerWidth(true) - total.width()));
@@ -3254,7 +3419,7 @@ if (typeof jQuery != 'undefined') {
// this needs to come last so it's on top
bigPlay =
$('')
.appendTo(layers)
.bind('click', function() { // Removed 'touchstart' due issues on Samsung Android devices where a tap on bigPlay started and immediately stopped the video
@@ -3453,7 +3618,52 @@ if (typeof jQuery != 'undefined') {
return this.media.volume;
},
setSrc: function(src) {
- this.media.setSrc(src);
+ var
+ t = this;
+
+ // If using YouTube, its API is different to load a specific source
+ if (t.media.pluginType === 'youtube') {
+ var videoId;
+
+ if (typeof src !== 'string') {
+ var i, media;
+
+ for (i=0; i' +
- '' +
+ '' +
'')
.appendTo(controls)
.click(function(e) {
@@ -3624,14 +3837,14 @@ if (typeof jQuery != 'undefined') {
if ('play' === which) {
play.removeClass('mejs-play').addClass('mejs-pause');
play_btn.attr({
- 'title': op.pauseText,
- 'aria-label': op.pauseText
+ 'title': pauseTitle,
+ 'aria-label': pauseTitle
});
} else {
play.removeClass('mejs-pause').addClass('mejs-play');
play_btn.attr({
- 'title': op.playText,
- 'aria-label': op.playText
+ 'title': playTitle,
+ 'aria-label': playTitle
});
}
};
@@ -3694,49 +3907,59 @@ if (typeof jQuery != 'undefined') {
(function($) {
$.extend(mejs.MepDefaults, {
- progessHelpText: mejs.i18n.t(
- 'Use Left/Right Arrow keys to advance one second, Up/Down arrows to advance ten seconds.')
+ // Enable tooltip that shows time in progress bar
+ enableProgressTooltip: true,
+ progressHelpText: ''
});
// progress/loaded bar
$.extend(MediaElementPlayer.prototype, {
buildprogress: function(player, controls, layers, media) {
+ var
+ t = this,
+ mouseIsDown = false,
+ mouseIsOver = false,
+ lastKeyPressTime = 0,
+ startedPaused = false,
+ autoRewindInitial = player.options.autoRewind,
+ progressTitle = t.options.progressHelpText ? t.options.progressHelpText : mejs.i18n.t('mejs.time-help-text'),
+ tooltip = player.options.enableProgressTooltip ? '' +
+ '00:00' +
+ '' +
+ '' : "";
+
$('' +
'' +
- //'' + this.options.progessHelpText + '' +
+ //'' + progressTitle + '' +
'' +
'' +
'' +
'' +
- '' +
- '00:00' +
- '' +
- '' +
+ tooltip +
'' +
'
')
.appendTo(controls);
controls.find('.mejs-time-buffering').hide();
- var
- t = this,
- total = controls.find('.mejs-time-total'),
- loaded = controls.find('.mejs-time-loaded'),
- current = controls.find('.mejs-time-current'),
- handle = controls.find('.mejs-time-handle'),
- timefloat = controls.find('.mejs-time-float'),
- timefloatcurrent = controls.find('.mejs-time-float-current'),
- slider = controls.find('.mejs-time-slider'),
- handleMouseMove = function (e) {
-
- var offset = total.offset(),
- width = total.width(),
+ t.total = controls.find('.mejs-time-total');
+ t.loaded = controls.find('.mejs-time-loaded');
+ t.current = controls.find('.mejs-time-current');
+ t.handle = controls.find('.mejs-time-handle');
+ t.timefloat = controls.find('.mejs-time-float');
+ t.timefloatcurrent = controls.find('.mejs-time-float-current');
+ t.slider = controls.find('.mejs-time-slider');
+
+ var handleMouseMove = function (e) {
+
+ var offset = t.total.offset(),
+ width = t.total.width(),
percentage = 0,
newTime = 0,
pos = 0,
- x;
-
- // mouse or touch position relative to the object
+ x;
+
+ // mouse or touch position relative to the object
if (e.originalEvent && e.originalEvent.changedTouches) {
x = e.originalEvent.changedTouches[0].pageX;
} else if (e.changedTouches) { // for Zepto
@@ -3751,7 +3974,7 @@ if (typeof jQuery != 'undefined') {
} else if (x > width + offset.left) {
x = width + offset.left;
}
-
+
pos = x - offset.left;
percentage = (pos / width);
newTime = (percentage <= 0.02) ? 0 : percentage * media.duration;
@@ -3763,53 +3986,47 @@ if (typeof jQuery != 'undefined') {
// position floating time box
if (!mejs.MediaFeatures.hasTouch) {
- timefloat.css('left', pos);
- timefloatcurrent.html( mejs.Utility.secondsToTimeCode(newTime, player.options) );
- timefloat.show();
+ t.timefloat.css('left', pos);
+ t.timefloatcurrent.html( mejs.Utility.secondsToTimeCode(newTime, player.options) );
+ t.timefloat.show();
}
}
},
- mouseIsDown = false,
- mouseIsOver = false,
- lastKeyPressTime = 0,
- startedPaused = false,
- autoRewindInitial = player.options.autoRewind;
- // Accessibility for slider
- var updateSlider = function (e) {
-
- var seconds = media.currentTime,
- timeSliderText = mejs.i18n.t('Time Slider'),
- time = mejs.Utility.secondsToTimeCode(seconds, player.options),
- duration = media.duration;
-
- slider.attr({
- 'aria-label': timeSliderText,
- 'aria-valuemin': 0,
- 'aria-valuemax': duration,
- 'aria-valuenow': seconds,
- 'aria-valuetext': time,
- 'role': 'slider',
- 'tabindex': 0
- });
-
- };
+ // Accessibility for slider
+ updateSlider = function (e) {
+
+ var seconds = media.currentTime,
+ timeSliderText = mejs.i18n.t('mejs.time-slider'),
+ time = mejs.Utility.secondsToTimeCode(seconds, player.options),
+ duration = media.duration;
+
+ t.slider.attr({
+ 'aria-label': timeSliderText,
+ 'aria-valuemin': 0,
+ 'aria-valuemax': duration,
+ 'aria-valuenow': seconds,
+ 'aria-valuetext': time,
+ 'role': 'slider',
+ 'tabindex': 0
+ });
- var restartPlayer = function () {
- var now = new Date();
- if (now - lastKeyPressTime >= 1000) {
- media.play();
- }
- };
+ },
+ restartPlayer = function () {
+ var now = new Date();
+ if (now - lastKeyPressTime >= 1000) {
+ media.play();
+ }
+ };
- slider.bind('focus', function (e) {
+ t.slider.bind('focus', function (e) {
player.options.autoRewind = false;
});
- slider.bind('blur', function (e) {
+ t.slider.bind('blur', function (e) {
player.options.autoRewind = autoRewindInitial;
});
- slider.bind('keydown', function (e) {
+ t.slider.bind('keydown', function (e) {
if ((new Date() - lastKeyPressTime) >= 1000) {
startedPaused = media.paused;
@@ -3822,26 +4039,26 @@ if (typeof jQuery != 'undefined') {
seekBackward = player.options.defaultSeekBackwardInterval(media);
switch (keyCode) {
- case 37: // left
- case 40: // Down
- seekTime -= seekBackward;
- break;
- case 39: // Right
- case 38: // Up
- seekTime += seekForward;
- break;
- case 36: // Home
- seekTime = 0;
- break;
- case 35: // end
- seekTime = duration;
- break;
- case 32: // space
- case 13: // enter
- media.paused ? media.play() : media.pause();
- return;
- default:
- return;
+ case 37: // left
+ case 40: // Down
+ seekTime -= seekBackward;
+ break;
+ case 39: // Right
+ case 38: // Up
+ seekTime += seekForward;
+ break;
+ case 36: // Home
+ seekTime = 0;
+ break;
+ case 35: // end
+ seekTime = duration;
+ break;
+ case 32: // space
+ case 13: // enter
+ media.paused ? media.play() : media.pause();
+ return;
+ default:
+ return;
}
seekTime = seekTime < 0 ? 0 : (seekTime >= duration ? duration : Math.floor(seekTime));
@@ -3864,7 +4081,7 @@ if (typeof jQuery != 'undefined') {
// handle clicks
//controls.find('.mejs-time-rail').delegate('span', 'click', handleMouseMove);
- total
+ t.total
.bind('mousedown touchstart', function (e) {
// only handle left clicks or touch
if (e.which === 1 || e.which === 0) {
@@ -3875,7 +4092,9 @@ if (typeof jQuery != 'undefined') {
});
t.globalBind('mouseup.dur touchend.dur', function (e) {
mouseIsDown = false;
- timefloat.hide();
+ if (typeof t.timefloat !== 'undefined') {
+ t.timefloat.hide();
+ }
t.globalUnbind('.dur');
});
}
@@ -3885,15 +4104,17 @@ if (typeof jQuery != 'undefined') {
t.globalBind('mousemove.dur', function(e) {
handleMouseMove(e);
});
- if (!mejs.MediaFeatures.hasTouch) {
- timefloat.show();
+ if (typeof t.timefloat !== 'undefined' && !mejs.MediaFeatures.hasTouch) {
+ t.timefloat.show();
}
})
.bind('mouseleave',function(e) {
mouseIsOver = false;
if (!mouseIsDown) {
t.globalUnbind('.dur');
- timefloat.hide();
+ if (typeof t.timefloat !== 'undefined') {
+ t.timefloat.hide();
+ }
}
});
@@ -3909,17 +4130,11 @@ if (typeof jQuery != 'undefined') {
player.setCurrentRail(e);
updateSlider(e);
}, false);
-
- t.container.on('controlsresize', function() {
- player.setProgressRail();
- player.setCurrentRail();
+
+ t.container.on('controlsresize', function(e) {
+ player.setProgressRail(e);
+ player.setCurrentRail(e);
});
-
- // store for later use
- t.loaded = loaded;
- t.total = total;
- t.current = current;
- t.handle = handle;
},
setProgressRail: function(e) {
@@ -4075,246 +4290,246 @@ if (typeof jQuery != 'undefined') {
})(mejs.$);
-(function($) {
+(function ($) {
$.extend(mejs.MepDefaults, {
- muteText: mejs.i18n.t('Mute Toggle'),
- allyVolumeControlText: mejs.i18n.t('Use Up/Down Arrow keys to increase or decrease volume.'),
+ muteText: mejs.i18n.t('mejs.mute-toggle'),
+ allyVolumeControlText: mejs.i18n.t('mejs.volume-help-text'),
hideVolumeOnTouchDevices: true,
-
+
audioVolume: 'horizontal',
videoVolume: 'vertical'
});
$.extend(MediaElementPlayer.prototype, {
- buildvolume: function(player, controls, layers, media) {
-
+ buildvolume: function (player, controls, layers, media) {
+
// Android and iOS don't support volume controls
if ((mejs.MediaFeatures.isAndroid || mejs.MediaFeatures.isiOS) && this.options.hideVolumeOnTouchDevices)
return;
-
+
var t = this,
mode = (t.isVideo) ? t.options.videoVolume : t.options.audioVolume,
mute = (mode == 'horizontal') ?
-
- // horizontal version
- $('' +
- '
' +
- '' + // outer background
- '' + t.options.allyVolumeControlText + '' +
- ''+ // line background
- ''+ // current volume
- ''+ // handle
- ''
- )
+ '">' +
+ '' +
+ '' + // outer background
+ '' + t.options.allyVolumeControlText + '' +
+ '' + // line background
+ '' + // current volume
+ '' + // handle
+ ''
+ )
.appendTo(controls) :
-
- // vertical version
- $('')
+
+ // vertical version
+ $('')
.appendTo(controls),
- volumeSlider = t.container.find('.mejs-volume-slider, .mejs-horizontal-volume-slider'),
- volumeTotal = t.container.find('.mejs-volume-total, .mejs-horizontal-volume-total'),
- volumeCurrent = t.container.find('.mejs-volume-current, .mejs-horizontal-volume-current'),
- volumeHandle = t.container.find('.mejs-volume-handle, .mejs-horizontal-volume-handle'),
+ volumeSlider = t.container.find('.mejs-volume-slider, .mejs-horizontal-volume-slider'),
+ volumeTotal = t.container.find('.mejs-volume-total, .mejs-horizontal-volume-total'),
+ volumeCurrent = t.container.find('.mejs-volume-current, .mejs-horizontal-volume-current'),
+ volumeHandle = t.container.find('.mejs-volume-handle, .mejs-horizontal-volume-handle'),
- positionVolumeHandle = function(volume, secondTry) {
+ positionVolumeHandle = function (volume, secondTry) {
- if (!volumeSlider.is(':visible') && typeof secondTry == 'undefined') {
- volumeSlider.show();
- positionVolumeHandle(volume, true);
- volumeSlider.hide();
- return;
- }
+ if (!volumeSlider.is(':visible') && typeof secondTry == 'undefined') {
+ volumeSlider.show();
+ positionVolumeHandle(volume, true);
+ volumeSlider.hide();
+ return;
+ }
- // correct to 0-1
- volume = Math.max(0,volume);
- volume = Math.min(volume,1);
+ // correct to 0-1
+ volume = Math.max(0, volume);
+ volume = Math.min(volume, 1);
- // ajust mute button style
- if (volume === 0) {
- mute.removeClass('mejs-mute').addClass('mejs-unmute');
- mute.children('button').attr('title', mejs.i18n.t('Unmute')).attr('aria-label', mejs.i18n.t('Unmute'));
- } else {
- mute.removeClass('mejs-unmute').addClass('mejs-mute');
- mute.children('button').attr('title', mejs.i18n.t('Mute')).attr('aria-label', mejs.i18n.t('Mute'));
- }
+ // adjust mute button style
+ if (volume === 0) {
+ mute.removeClass('mejs-mute').addClass('mejs-unmute');
+ mute.children('button').attr('title', mejs.i18n.t('mejs.unmute')).attr('aria-label', mejs.i18n.t('mejs.unmute'));
+ } else {
+ mute.removeClass('mejs-unmute').addClass('mejs-mute');
+ mute.children('button').attr('title', mejs.i18n.t('mejs.mute')).attr('aria-label', mejs.i18n.t('mejs.mute'));
+ }
- // top/left of full size volume slider background
- var totalPosition = volumeTotal.position();
- // position slider
- if (mode == 'vertical') {
- var
- // height of the full size volume slider background
- totalHeight = volumeTotal.height(),
-
- // the new top position based on the current volume
- // 70% volume on 100px height == top:30px
- newTop = totalHeight - (totalHeight * volume);
-
- // handle
- volumeHandle.css('top', Math.round(totalPosition.top + newTop - (volumeHandle.height() / 2)));
-
- // show the current visibility
- volumeCurrent.height(totalHeight - newTop );
- volumeCurrent.css('top', totalPosition.top + newTop);
- } else {
- var
- // height of the full size volume slider background
- totalWidth = volumeTotal.width(),
-
- // the new left position based on the current volume
- newLeft = totalWidth * volume;
-
- // handle
- volumeHandle.css('left', Math.round(totalPosition.left + newLeft - (volumeHandle.width() / 2)));
-
- // rezize the current part of the volume bar
- volumeCurrent.width( Math.round(newLeft) );
- }
- },
- handleVolumeMove = function(e) {
-
- var volume = null,
- totalOffset = volumeTotal.offset();
-
- // calculate the new volume based on the moust position
- if (mode === 'vertical') {
-
- var
- railHeight = volumeTotal.height(),
- newY = e.pageY - totalOffset.top;
-
- volume = (railHeight - newY) / railHeight;
-
- // the controls just hide themselves (usually when mouse moves too far up)
- if (totalOffset.top === 0 || totalOffset.left === 0) {
- return;
- }
-
- } else {
- var
- railWidth = volumeTotal.width(),
- newX = e.pageX - totalOffset.left;
-
- volume = newX / railWidth;
- }
-
- // ensure the volume isn't outside 0-1
- volume = Math.max(0,volume);
- volume = Math.min(volume,1);
-
- // position the slider and handle
- positionVolumeHandle(volume);
-
- // set the media object (this will trigger the volumechanged event)
- if (volume === 0) {
- media.setMuted(true);
- } else {
- media.setMuted(false);
- }
- media.setVolume(volume);
- },
- mouseIsDown = false,
- mouseIsOver = false;
+ // top/left of full size volume slider background
+ var totalPosition = volumeTotal.position();
+ // position slider
+ if (mode == 'vertical') {
+ var
+ // height of the full size volume slider background
+ totalHeight = volumeTotal.height(),
+
+ // the new top position based on the current volume
+ // 70% volume on 100px height == top:30px
+ newTop = totalHeight - (totalHeight * volume);
+
+ // handle
+ volumeHandle.css('top', Math.round(totalPosition.top + newTop - (volumeHandle.height() / 2)));
+
+ // show the current visibility
+ volumeCurrent.height(totalHeight - newTop);
+ volumeCurrent.css('top', totalPosition.top + newTop);
+ } else {
+ var
+ // height of the full size volume slider background
+ totalWidth = volumeTotal.width(),
+
+ // the new left position based on the current volume
+ newLeft = totalWidth * volume;
+
+ // handle
+ volumeHandle.css('left', Math.round(totalPosition.left + newLeft - (volumeHandle.width() / 2)));
+
+ // rezize the current part of the volume bar
+ volumeCurrent.width(Math.round(newLeft));
+ }
+ },
+ handleVolumeMove = function (e) {
+
+ var volume = null,
+ totalOffset = volumeTotal.offset();
+
+ // calculate the new volume based on the moust position
+ if (mode === 'vertical') {
+
+ var
+ railHeight = volumeTotal.height(),
+ newY = e.pageY - totalOffset.top;
+
+ volume = (railHeight - newY) / railHeight;
+
+ // the controls just hide themselves (usually when mouse moves too far up)
+ if (totalOffset.top === 0 || totalOffset.left === 0) {
+ return;
+ }
+
+ } else {
+ var
+ railWidth = volumeTotal.width(),
+ newX = e.pageX - totalOffset.left;
+
+ volume = newX / railWidth;
+ }
+
+ // ensure the volume isn't outside 0-1
+ volume = Math.max(0, volume);
+ volume = Math.min(volume, 1);
+
+ // position the slider and handle
+ positionVolumeHandle(volume);
+
+ // set the media object (this will trigger the volumechanged event)
+ if (volume === 0) {
+ media.setMuted(true);
+ } else {
+ media.setMuted(false);
+ }
+ media.setVolume(volume);
+ },
+ mouseIsDown = false,
+ mouseIsOver = false;
// SLIDER
-
+
mute
- .hover(function() {
- volumeSlider.show();
- mouseIsOver = true;
- }, function() {
- mouseIsOver = false;
-
- if (!mouseIsDown && mode == 'vertical') {
- volumeSlider.hide();
- }
- });
-
- var updateVolumeSlider = function (e) {
+ .hover(function () {
+ volumeSlider.show();
+ mouseIsOver = true;
+ }, function () {
+ mouseIsOver = false;
- var volume = Math.floor(media.volume*100);
+ if (!mouseIsDown && mode == 'vertical') {
+ volumeSlider.hide();
+ }
+ });
+
+ var updateVolumeSlider = function (e) {
+
+ var volume = Math.floor(media.volume * 100);
volumeSlider.attr({
- 'aria-label': mejs.i18n.t('Volume Slider'),
+ 'aria-label': mejs.i18n.t('mejs.volume-slider'),
'aria-valuemin': 0,
'aria-valuemax': 100,
'aria-valuenow': volume,
- 'aria-valuetext': volume+'%',
+ 'aria-valuetext': volume + '%',
'role': 'slider',
'tabindex': 0
});
};
-
+
volumeSlider
- .bind('mouseover', function() {
- mouseIsOver = true;
- })
- .bind('mousedown', function (e) {
+ .bind('mouseover', function () {
+ mouseIsOver = true;
+ })
+ .bind('mousedown', function (e) {
+ handleVolumeMove(e);
+ t.globalBind('mousemove.vol', function (e) {
handleVolumeMove(e);
- t.globalBind('mousemove.vol', function(e) {
- handleVolumeMove(e);
- });
- t.globalBind('mouseup.vol', function () {
- mouseIsDown = false;
- t.globalUnbind('.vol');
-
- if (!mouseIsOver && mode == 'vertical') {
- volumeSlider.hide();
- }
- });
- mouseIsDown = true;
-
- return false;
- })
- .bind('keydown', function (e) {
- var keyCode = e.keyCode;
- var volume = media.volume;
- switch (keyCode) {
- case 38: // Up
- volume = Math.min(volume + 0.1, 1);
- break;
- case 40: // Down
- volume = Math.max(0, volume - 0.1);
- break;
- default:
- return true;
- }
-
+ });
+ t.globalBind('mouseup.vol', function () {
mouseIsDown = false;
- positionVolumeHandle(volume);
- media.setVolume(volume);
- return false;
+ t.globalUnbind('.vol');
+
+ if (!mouseIsOver && mode == 'vertical') {
+ volumeSlider.hide();
+ }
});
+ mouseIsDown = true;
+
+ return false;
+ })
+ .bind('keydown', function (e) {
+ var keyCode = e.keyCode;
+ var volume = media.volume;
+ switch (keyCode) {
+ case 38: // Up
+ volume = Math.min(volume + 0.1, 1);
+ break;
+ case 40: // Down
+ volume = Math.max(0, volume - 0.1);
+ break;
+ default:
+ return true;
+ }
+
+ mouseIsDown = false;
+ positionVolumeHandle(volume);
+ media.setVolume(volume);
+ return false;
+ });
// MUTE button
- mute.find('button').click(function() {
- media.setMuted( !media.muted );
+ mute.find('button').click(function () {
+ media.setMuted(!media.muted);
});
-
- //Keyboard input
- mute.find('button').bind('focus', function () {
+
+ //Keyboard input
+ mute.find('button').bind('focus', function () {
volumeSlider.show();
});
// listen for volume change events from other sources
- media.addEventListener('volumechange', function(e) {
+ media.addEventListener('volumechange', function (e) {
if (!mouseIsDown) {
if (media.muted) {
positionVolumeHandle(0);
@@ -4326,23 +4541,29 @@ if (typeof jQuery != 'undefined') {
}
updateVolumeSlider(e);
}, false);
-
+
// mutes the media and sets the volume icon muted if the initial volume is set to 0
if (player.options.startVolume === 0) {
media.setMuted(true);
}
-
+
// shim gets the startvolume as a parameter, but we have to set it on the native