init
8
nv/html/dwv/ext/flot/jquery.flot.min.js
vendored
Normal file
22
nv/html/dwv/ext/flot/license.txt
Normal file
@@ -0,0 +1,22 @@
|
||||
Copyright (c) 2007-2014 IOLA and Ole Laursen
|
||||
|
||||
Permission is hereby granted, free of charge, to any person
|
||||
obtaining a copy of this software and associated documentation
|
||||
files (the "Software"), to deal in the Software without
|
||||
restriction, including without limitation the rights to use,
|
||||
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the
|
||||
Software is furnished to do so, subject to the following
|
||||
conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
OTHER DEALINGS IN THE SOFTWARE.
|
||||
13
nv/html/dwv/ext/flot/readme.md
Normal file
@@ -0,0 +1,13 @@
|
||||
Third Party: flot
|
||||
=================
|
||||
|
||||
* Web: http://www.flotcharts.org/
|
||||
* Version: [0.8.3](http://www.flotcharts.org/blog/2014/04/21/flot-083-released/)
|
||||
* Date: 21/04/2014
|
||||
* Download: [flot-0.8.3.zip](http://www.flotcharts.org/downloads/flot-0.8.3.zip)
|
||||
* License: [MIT](http://www.opensource.org/licenses/mit-license.php)
|
||||
(see [license.txt](/ivmartel/dwv/blob/master/ext/flot/license.txt))
|
||||
* Description: Flot is a pure Javascript plotting library for jQuery.
|
||||
It produces graphical plots of arbitrary datasets on-the-fly
|
||||
client-side.
|
||||
* Purpose for dwv: Used for the plotting of the image data histogram.
|
||||
2053
nv/html/dwv/ext/i18next/i18next.js
Normal file
2
nv/html/dwv/ext/i18next/i18next.min.js
vendored
Normal file
263
nv/html/dwv/ext/i18next/i18nextBrowserLanguageDetector.js
Normal file
@@ -0,0 +1,263 @@
|
||||
(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||
typeof define === 'function' && define.amd ? define(factory) :
|
||||
(global.i18nextBrowserLanguageDetector = factory());
|
||||
}(this, function () { 'use strict';
|
||||
|
||||
var arr = [];
|
||||
var each = arr.forEach;
|
||||
var slice = arr.slice;
|
||||
|
||||
function defaults(obj) {
|
||||
each.call(slice.call(arguments, 1), function (source) {
|
||||
if (source) {
|
||||
for (var prop in source) {
|
||||
if (obj[prop] === undefined) obj[prop] = source[prop];
|
||||
}
|
||||
}
|
||||
});
|
||||
return obj;
|
||||
}
|
||||
|
||||
var cookie = {
|
||||
create: function create(name, value, minutes, domain) {
|
||||
var expires = void 0;
|
||||
if (minutes) {
|
||||
var date = new Date();
|
||||
date.setTime(date.getTime() + minutes * 60 * 1000);
|
||||
expires = '; expires=' + date.toGMTString();
|
||||
} else expires = '';
|
||||
domain = domain ? 'domain=' + domain + ';' : '';
|
||||
document.cookie = name + '=' + value + expires + ';' + domain + 'path=/';
|
||||
},
|
||||
|
||||
read: function read(name) {
|
||||
var nameEQ = name + '=';
|
||||
var ca = document.cookie.split(';');
|
||||
for (var i = 0; i < ca.length; i++) {
|
||||
var c = ca[i];
|
||||
while (c.charAt(0) === ' ') {
|
||||
c = c.substring(1, c.length);
|
||||
}if (c.indexOf(nameEQ) === 0) return c.substring(nameEQ.length, c.length);
|
||||
}
|
||||
return null;
|
||||
},
|
||||
|
||||
remove: function remove(name) {
|
||||
this.create(name, '', -1);
|
||||
}
|
||||
};
|
||||
|
||||
var cookie$1 = {
|
||||
name: 'cookie',
|
||||
|
||||
lookup: function lookup(options) {
|
||||
var found = void 0;
|
||||
|
||||
if (options.lookupCookie && typeof document !== 'undefined') {
|
||||
var c = cookie.read(options.lookupCookie);
|
||||
if (c) found = c;
|
||||
}
|
||||
|
||||
return found;
|
||||
},
|
||||
cacheUserLanguage: function cacheUserLanguage(lng, options) {
|
||||
if (options.lookupCookie && typeof document !== 'undefined') {
|
||||
cookie.create(options.lookupCookie, lng, options.cookieMinutes, options.cookieDomain);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
var querystring = {
|
||||
name: 'querystring',
|
||||
|
||||
lookup: function lookup(options) {
|
||||
var found = void 0;
|
||||
|
||||
if (typeof window !== 'undefined') {
|
||||
var query = window.location.search.substring(1);
|
||||
var params = query.split('&');
|
||||
for (var i = 0; i < params.length; i++) {
|
||||
var pos = params[i].indexOf('=');
|
||||
if (pos > 0) {
|
||||
var key = params[i].substring(0, pos);
|
||||
if (key === options.lookupQuerystring) {
|
||||
found = params[i].substring(pos + 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return found;
|
||||
}
|
||||
};
|
||||
|
||||
var hasLocalStorageSupport = void 0;
|
||||
try {
|
||||
hasLocalStorageSupport = window !== 'undefined' && window.localStorage !== null;
|
||||
var testKey = 'i18next.translate.boo';
|
||||
window.localStorage.setItem(testKey, 'foo');
|
||||
window.localStorage.removeItem(testKey);
|
||||
} catch (e) {
|
||||
hasLocalStorageSupport = false;
|
||||
}
|
||||
|
||||
var localStorage = {
|
||||
name: 'localStorage',
|
||||
|
||||
lookup: function lookup(options) {
|
||||
var found = void 0;
|
||||
|
||||
if (options.lookupLocalStorage && hasLocalStorageSupport) {
|
||||
var lng = window.localStorage.getItem(options.lookupLocalStorage);
|
||||
if (lng) found = lng;
|
||||
}
|
||||
|
||||
return found;
|
||||
},
|
||||
cacheUserLanguage: function cacheUserLanguage(lng, options) {
|
||||
if (options.lookupLocalStorage && hasLocalStorageSupport) {
|
||||
window.localStorage.setItem(options.lookupLocalStorage, lng);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
var navigator$1 = {
|
||||
name: 'navigator',
|
||||
|
||||
lookup: function lookup(options) {
|
||||
var found = [];
|
||||
|
||||
if (typeof navigator !== 'undefined') {
|
||||
if (navigator.languages) {
|
||||
// chrome only; not an array, so can't use .push.apply instead of iterating
|
||||
for (var i = 0; i < navigator.languages.length; i++) {
|
||||
found.push(navigator.languages[i]);
|
||||
}
|
||||
}
|
||||
if (navigator.userLanguage) {
|
||||
found.push(navigator.userLanguage);
|
||||
}
|
||||
if (navigator.language) {
|
||||
found.push(navigator.language);
|
||||
}
|
||||
}
|
||||
|
||||
return found.length > 0 ? found : undefined;
|
||||
}
|
||||
};
|
||||
|
||||
var htmlTag = {
|
||||
name: 'htmlTag',
|
||||
|
||||
lookup: function lookup(options) {
|
||||
var found = void 0;
|
||||
var htmlTag = options.htmlTag || (typeof document !== 'undefined' ? document.documentElement : null);
|
||||
|
||||
if (htmlTag && typeof htmlTag.getAttribute === 'function') {
|
||||
found = htmlTag.getAttribute('lang');
|
||||
}
|
||||
|
||||
return found;
|
||||
}
|
||||
};
|
||||
|
||||
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
|
||||
|
||||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||
|
||||
function getDefaults() {
|
||||
return {
|
||||
order: ['querystring', 'cookie', 'localStorage', 'navigator', 'htmlTag'],
|
||||
lookupQuerystring: 'lng',
|
||||
lookupCookie: 'i18next',
|
||||
lookupLocalStorage: 'i18nextLng',
|
||||
|
||||
// cache user language
|
||||
caches: ['localStorage'],
|
||||
excludeCacheFor: ['cimode']
|
||||
//cookieMinutes: 10,
|
||||
//cookieDomain: 'myDomain'
|
||||
};
|
||||
}
|
||||
|
||||
var Browser = function () {
|
||||
function Browser(services) {
|
||||
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
||||
|
||||
_classCallCheck(this, Browser);
|
||||
|
||||
this.type = 'languageDetector';
|
||||
this.detectors = {};
|
||||
|
||||
this.init(services, options);
|
||||
}
|
||||
|
||||
_createClass(Browser, [{
|
||||
key: 'init',
|
||||
value: function init(services) {
|
||||
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
||||
var i18nOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
||||
|
||||
this.services = services;
|
||||
this.options = defaults(options, this.options || {}, getDefaults());
|
||||
this.i18nOptions = i18nOptions;
|
||||
|
||||
this.addDetector(cookie$1);
|
||||
this.addDetector(querystring);
|
||||
this.addDetector(localStorage);
|
||||
this.addDetector(navigator$1);
|
||||
this.addDetector(htmlTag);
|
||||
}
|
||||
}, {
|
||||
key: 'addDetector',
|
||||
value: function addDetector(detector) {
|
||||
this.detectors[detector.name] = detector;
|
||||
}
|
||||
}, {
|
||||
key: 'detect',
|
||||
value: function detect(detectionOrder) {
|
||||
var _this = this;
|
||||
|
||||
if (!detectionOrder) detectionOrder = this.options.order;
|
||||
|
||||
var detected = [];
|
||||
detectionOrder.forEach(function (detectorName) {
|
||||
if (_this.detectors[detectorName]) {
|
||||
var lookup = _this.detectors[detectorName].lookup(_this.options);
|
||||
if (lookup && typeof lookup === 'string') lookup = [lookup];
|
||||
if (lookup) detected = detected.concat(lookup);
|
||||
}
|
||||
});
|
||||
|
||||
var found = void 0;
|
||||
detected.forEach(function (lng) {
|
||||
if (found) return;
|
||||
var cleanedLng = _this.services.languageUtils.formatLanguageCode(lng);
|
||||
if (_this.services.languageUtils.isWhitelisted(cleanedLng)) found = cleanedLng;
|
||||
});
|
||||
|
||||
return found || this.i18nOptions.fallbackLng[0];
|
||||
}
|
||||
}, {
|
||||
key: 'cacheUserLanguage',
|
||||
value: function cacheUserLanguage(lng, caches) {
|
||||
var _this2 = this;
|
||||
|
||||
if (!caches) caches = this.options.caches;
|
||||
if (!caches) return;
|
||||
if (this.options.excludeCacheFor && this.options.excludeCacheFor.indexOf(lng) > -1) return;
|
||||
caches.forEach(function (cacheName) {
|
||||
if (_this2.detectors[cacheName]) _this2.detectors[cacheName].cacheUserLanguage(lng, _this2.options);
|
||||
});
|
||||
}
|
||||
}]);
|
||||
|
||||
return Browser;
|
||||
}();
|
||||
|
||||
Browser.type = 'languageDetector';
|
||||
|
||||
return Browser;
|
||||
|
||||
}));
|
||||
1
nv/html/dwv/ext/i18next/i18nextBrowserLanguageDetector.min.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
!function(e,o){"object"==typeof exports&&"undefined"!=typeof module?module.exports=o():"function"==typeof define&&define.amd?define(o):e.i18nextBrowserLanguageDetector=o()}(this,function(){"use strict";function e(e){return i.call(a.call(arguments,1),function(o){if(o)for(var t in o)void 0===e[t]&&(e[t]=o[t])}),e}function o(e,o){if(!(e instanceof o))throw new TypeError("Cannot call a class as a function")}function t(){return{order:["querystring","cookie","localStorage","navigator","htmlTag"],lookupQuerystring:"lng",lookupCookie:"i18next",lookupLocalStorage:"i18nextLng",caches:["localStorage"],excludeCacheFor:["cimode"]}}var n=[],i=n.forEach,a=n.slice,r={create:function(e,o,t,n){var i=void 0;if(t){var a=new Date;a.setTime(a.getTime()+60*t*1e3),i="; expires="+a.toGMTString()}else i="";n=n?"domain="+n+";":"",document.cookie=e+"="+o+i+";"+n+"path=/"},read:function(e){for(var o=e+"=",t=document.cookie.split(";"),n=0;n<t.length;n++){for(var i=t[n];" "===i.charAt(0);)i=i.substring(1,i.length);if(0===i.indexOf(o))return i.substring(o.length,i.length)}return null},remove:function(e){this.create(e,"",-1)}},u={name:"cookie",lookup:function(e){var o=void 0;if(e.lookupCookie&&"undefined"!=typeof document){var t=r.read(e.lookupCookie);t&&(o=t)}return o},cacheUserLanguage:function(e,o){o.lookupCookie&&"undefined"!=typeof document&&r.create(o.lookupCookie,e,o.cookieMinutes,o.cookieDomain)}},c={name:"querystring",lookup:function(e){var o=void 0;if("undefined"!=typeof window)for(var t=window.location.search.substring(1),n=t.split("&"),i=0;i<n.length;i++){var a=n[i].indexOf("=");if(a>0){var r=n[i].substring(0,a);r===e.lookupQuerystring&&(o=n[i].substring(a+1))}}return o}},l=void 0;try{l="undefined"!==window&&null!==window.localStorage;var s="i18next.translate.boo";window.localStorage.setItem(s,"foo"),window.localStorage.removeItem(s)}catch(g){l=!1}var f={name:"localStorage",lookup:function(e){var o=void 0;if(e.lookupLocalStorage&&l){var t=window.localStorage.getItem(e.lookupLocalStorage);t&&(o=t)}return o},cacheUserLanguage:function(e,o){o.lookupLocalStorage&&l&&window.localStorage.setItem(o.lookupLocalStorage,e)}},d={name:"navigator",lookup:function(e){var o=[];if("undefined"!=typeof navigator){if(navigator.languages)for(var t=0;t<navigator.languages.length;t++)o.push(navigator.languages[t]);navigator.userLanguage&&o.push(navigator.userLanguage),navigator.language&&o.push(navigator.language)}return o.length>0?o:void 0}},v={name:"htmlTag",lookup:function(e){var o=void 0,t=e.htmlTag||("undefined"!=typeof document?document.documentElement:null);return t&&"function"==typeof t.getAttribute&&(o=t.getAttribute("lang")),o}},h=function(){function e(e,o){for(var t=0;t<o.length;t++){var n=o[t];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(o,t,n){return t&&e(o.prototype,t),n&&e(o,n),o}}(),p=function(){function n(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};o(this,n),this.type="languageDetector",this.detectors={},this.init(e,t)}return h(n,[{key:"init",value:function(o){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};this.services=o,this.options=e(n,this.options||{},t()),this.i18nOptions=i,this.addDetector(u),this.addDetector(c),this.addDetector(f),this.addDetector(d),this.addDetector(v)}},{key:"addDetector",value:function(e){this.detectors[e.name]=e}},{key:"detect",value:function(e){var o=this;e||(e=this.options.order);var t=[];e.forEach(function(e){if(o.detectors[e]){var n=o.detectors[e].lookup(o.options);n&&"string"==typeof n&&(n=[n]),n&&(t=t.concat(n))}});var n=void 0;return t.forEach(function(e){if(!n){var t=o.services.languageUtils.formatLanguageCode(e);o.services.languageUtils.isWhitelisted(t)&&(n=t)}}),n||this.i18nOptions.fallbackLng[0]}},{key:"cacheUserLanguage",value:function(e,o){var t=this;o||(o=this.options.caches),o&&(this.options.excludeCacheFor&&this.options.excludeCacheFor.indexOf(e)>-1||o.forEach(function(o){t.detectors[o]&&t.detectors[o].cacheUserLanguage(e,t.options)}))}}]),n}();return p.type="languageDetector",p});
|
||||
198
nv/html/dwv/ext/i18next/i18nextXHRBackend.js
Normal file
@@ -0,0 +1,198 @@
|
||||
(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||
typeof define === 'function' && define.amd ? define(factory) :
|
||||
(global.i18nextXHRBackend = factory());
|
||||
}(this, (function () { 'use strict';
|
||||
|
||||
var arr = [];
|
||||
var each = arr.forEach;
|
||||
var slice = arr.slice;
|
||||
|
||||
function defaults(obj) {
|
||||
each.call(slice.call(arguments, 1), function (source) {
|
||||
if (source) {
|
||||
for (var prop in source) {
|
||||
if (obj[prop] === undefined) obj[prop] = source[prop];
|
||||
}
|
||||
}
|
||||
});
|
||||
return obj;
|
||||
}
|
||||
|
||||
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
|
||||
|
||||
function addQueryString(url, params) {
|
||||
if (params && (typeof params === 'undefined' ? 'undefined' : _typeof(params)) === 'object') {
|
||||
var queryString = '',
|
||||
e = encodeURIComponent;
|
||||
|
||||
// Must encode data
|
||||
for (var paramName in params) {
|
||||
queryString += '&' + e(paramName) + '=' + e(params[paramName]);
|
||||
}
|
||||
|
||||
if (!queryString) {
|
||||
return url;
|
||||
}
|
||||
|
||||
url = url + (url.indexOf('?') !== -1 ? '&' : '?') + queryString.slice(1);
|
||||
}
|
||||
|
||||
return url;
|
||||
}
|
||||
|
||||
// https://gist.github.com/Xeoncross/7663273
|
||||
function ajax(url, options, callback, data, cache) {
|
||||
|
||||
if (data && (typeof data === 'undefined' ? 'undefined' : _typeof(data)) === 'object') {
|
||||
if (!cache) {
|
||||
data['_t'] = new Date();
|
||||
}
|
||||
// URL encoded form data must be in querystring format
|
||||
data = addQueryString('', data).slice(1);
|
||||
}
|
||||
|
||||
if (options.queryStringParams) {
|
||||
url = addQueryString(url, options.queryStringParams);
|
||||
}
|
||||
|
||||
try {
|
||||
var x;
|
||||
if (XMLHttpRequest) {
|
||||
x = new XMLHttpRequest();
|
||||
} else {
|
||||
x = new ActiveXObject('MSXML2.XMLHTTP.3.0');
|
||||
}
|
||||
x.open(data ? 'POST' : 'GET', url, 1);
|
||||
if (!options.crossDomain) {
|
||||
x.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
|
||||
}
|
||||
x.withCredentials = !!options.withCredentials;
|
||||
if (data) {
|
||||
x.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
|
||||
}
|
||||
if (x.overrideMimeType) {
|
||||
x.overrideMimeType("application/json");
|
||||
}
|
||||
var h = options.customHeaders;
|
||||
if (h) {
|
||||
for (var i in h) {
|
||||
x.setRequestHeader(i, h[i]);
|
||||
}
|
||||
}
|
||||
x.onreadystatechange = function () {
|
||||
x.readyState > 3 && callback && callback(x.responseText, x);
|
||||
};
|
||||
x.send(data);
|
||||
} catch (e) {
|
||||
console && console.log(e);
|
||||
}
|
||||
}
|
||||
|
||||
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
|
||||
|
||||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||
|
||||
function getDefaults() {
|
||||
return {
|
||||
loadPath: '/locales/{{lng}}/{{ns}}.json',
|
||||
addPath: 'locales/add/{{lng}}/{{ns}}',
|
||||
allowMultiLoading: false,
|
||||
parse: JSON.parse,
|
||||
crossDomain: false,
|
||||
ajax: ajax
|
||||
};
|
||||
}
|
||||
|
||||
var Backend = function () {
|
||||
function Backend(services) {
|
||||
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
||||
|
||||
_classCallCheck(this, Backend);
|
||||
|
||||
this.init(services, options);
|
||||
|
||||
this.type = 'backend';
|
||||
}
|
||||
|
||||
_createClass(Backend, [{
|
||||
key: 'init',
|
||||
value: function init(services) {
|
||||
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
||||
|
||||
this.services = services;
|
||||
this.options = defaults(options, this.options || {}, getDefaults());
|
||||
}
|
||||
}, {
|
||||
key: 'readMulti',
|
||||
value: function readMulti(languages, namespaces, callback) {
|
||||
var loadPath = this.options.loadPath;
|
||||
if (typeof this.options.loadPath === 'function') {
|
||||
loadPath = this.options.loadPath(languages, namespaces);
|
||||
}
|
||||
|
||||
var url = this.services.interpolator.interpolate(loadPath, { lng: languages.join('+'), ns: namespaces.join('+') });
|
||||
|
||||
this.loadUrl(url, callback);
|
||||
}
|
||||
}, {
|
||||
key: 'read',
|
||||
value: function read(language, namespace, callback) {
|
||||
var loadPath = this.options.loadPath;
|
||||
if (typeof this.options.loadPath === 'function') {
|
||||
loadPath = this.options.loadPath([language], [namespace]);
|
||||
}
|
||||
|
||||
var url = this.services.interpolator.interpolate(loadPath, { lng: language, ns: namespace });
|
||||
|
||||
this.loadUrl(url, callback);
|
||||
}
|
||||
}, {
|
||||
key: 'loadUrl',
|
||||
value: function loadUrl(url, callback) {
|
||||
var _this = this;
|
||||
|
||||
this.options.ajax(url, this.options, function (data, xhr) {
|
||||
if (xhr.status >= 500 && xhr.status < 600) return callback('failed loading ' + url, true /* retry */);
|
||||
if (xhr.status >= 400 && xhr.status < 500) return callback('failed loading ' + url, false /* no retry */);
|
||||
|
||||
var ret = void 0,
|
||||
err = void 0;
|
||||
try {
|
||||
ret = _this.options.parse(data, url);
|
||||
} catch (e) {
|
||||
err = 'failed parsing ' + url + ' to json';
|
||||
}
|
||||
if (err) return callback(err, false);
|
||||
callback(null, ret);
|
||||
});
|
||||
}
|
||||
}, {
|
||||
key: 'create',
|
||||
value: function create(languages, namespace, key, fallbackValue) {
|
||||
var _this2 = this;
|
||||
|
||||
if (typeof languages === 'string') languages = [languages];
|
||||
|
||||
var payload = {};
|
||||
payload[key] = fallbackValue || '';
|
||||
|
||||
languages.forEach(function (lng) {
|
||||
var url = _this2.services.interpolator.interpolate(_this2.options.addPath, { lng: lng, ns: namespace });
|
||||
|
||||
_this2.options.ajax(url, _this2.options, function (data, xhr) {
|
||||
//const statusCode = xhr.status.toString();
|
||||
// TODO: if statusCode === 4xx do log
|
||||
}, payload);
|
||||
});
|
||||
}
|
||||
}]);
|
||||
|
||||
return Backend;
|
||||
}();
|
||||
|
||||
Backend.type = 'backend';
|
||||
|
||||
return Backend;
|
||||
|
||||
})));
|
||||
1
nv/html/dwv/ext/i18next/i18nextXHRBackend.min.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.i18nextXHRBackend=e()}(this,function(){"use strict";function t(t){return r.call(s.call(arguments,1),function(e){if(e)for(var n in e)void 0===t[n]&&(t[n]=e[n])}),t}function e(t,e){if(e&&"object"===(void 0===e?"undefined":l(e))){var n="",o=encodeURIComponent;for(var i in e)n+="&"+o(i)+"="+o(e[i]);if(!n)return t;t=t+(t.indexOf("?")!==-1?"&":"?")+n.slice(1)}return t}function n(t,n,o,i,a){i&&"object"===(void 0===i?"undefined":l(i))&&(a||(i._t=new Date),i=e("",i).slice(1)),n.queryStringParams&&(t=e(t,n.queryStringParams));try{var r;r=XMLHttpRequest?new XMLHttpRequest:new ActiveXObject("MSXML2.XMLHTTP.3.0"),r.open(i?"POST":"GET",t,1),n.crossDomain||r.setRequestHeader("X-Requested-With","XMLHttpRequest"),r.withCredentials=!!n.withCredentials,i&&r.setRequestHeader("Content-type","application/x-www-form-urlencoded"),r.overrideMimeType&&r.overrideMimeType("application/json");var s=n.customHeaders;if(s)for(var u in s)r.setRequestHeader(u,s[u]);r.onreadystatechange=function(){r.readyState>3&&o&&o(r.responseText,r)},r.send(i)}catch(t){console&&console.log(t)}}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(){return{loadPath:"/locales/{{lng}}/{{ns}}.json",addPath:"locales/add/{{lng}}/{{ns}}",allowMultiLoading:!1,parse:JSON.parse,crossDomain:!1,ajax:n}}var a=[],r=a.forEach,s=a.slice,l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},u=function(){function t(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(e,n,o){return n&&t(e.prototype,n),o&&t(e,o),e}}(),c=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};o(this,e),this.init(t,n),this.type="backend"}return u(e,[{key:"init",value:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.services=e,this.options=t(n,this.options||{},i())}},{key:"readMulti",value:function(t,e,n){var o=this.options.loadPath;"function"==typeof this.options.loadPath&&(o=this.options.loadPath(t,e));var i=this.services.interpolator.interpolate(o,{lng:t.join("+"),ns:e.join("+")});this.loadUrl(i,n)}},{key:"read",value:function(t,e,n){var o=this.options.loadPath;"function"==typeof this.options.loadPath&&(o=this.options.loadPath([t],[e]));var i=this.services.interpolator.interpolate(o,{lng:t,ns:e});this.loadUrl(i,n)}},{key:"loadUrl",value:function(t,e){var n=this;this.options.ajax(t,this.options,function(o,i){if(i.status>=500&&i.status<600)return e("failed loading "+t,!0);if(i.status>=400&&i.status<500)return e("failed loading "+t,!1);var a=void 0,r=void 0;try{a=n.options.parse(o,t)}catch(e){r="failed parsing "+t+" to json"}if(r)return e(r,!1);e(null,a)})}},{key:"create",value:function(t,e,n,o){var i=this;"string"==typeof t&&(t=[t]);var a={};a[n]=o||"",t.forEach(function(t){var n=i.services.interpolator.interpolate(i.options.addPath,{lng:t,ns:e});i.options.ajax(n,i.options,function(t,e){},a)})}}]),e}();return c.type="backend",c});
|
||||
30
nv/html/dwv/ext/i18next/readme.md
Normal file
@@ -0,0 +1,30 @@
|
||||
Third Party: i18next
|
||||
====================
|
||||
|
||||
* Web: http://i18next.com/
|
||||
* Version: [10.0.7](https://github.com/i18next/i18next/releases/tag/v10.0.7)
|
||||
* Date: 31/10/2017
|
||||
* Download: https://github.com/i18next/i18next/blob/v10.0.7/i18next.min.js
|
||||
* License: MIT (see https://github.com/i18next/i18next/blob/v10.0.7/LICENSE)
|
||||
* Description: internationalization framework.
|
||||
* Purpose for dwv: internationalization of GUI and messages.
|
||||
|
||||
i18next-xhr-backend
|
||||
-------------------
|
||||
* Web: https://github.com/i18next/i18next-xhr-backend
|
||||
* Version: [1.5.0](https://github.com/i18next/i18next-xhr-backend/releases/tag/v1.5.0)
|
||||
* Date: 06/11/2017
|
||||
* Download: https://github.com/i18next/i18next-xhr-backend/blob/v1.5.0/i18nextXHRBackend.min.js
|
||||
* License: MIT (see https://github.com/i18next/i18next-xhr-backend/blob/v1.5.0/LICENSE)
|
||||
* Description: backend layer for i18next using browsers xhr.
|
||||
* Purpose for dwv: load translation files.
|
||||
|
||||
i18next-browser-languageDetector
|
||||
--------------------------------
|
||||
* Web: https://github.com/i18next/i18next-browser-languageDetector
|
||||
* Version: [2.1.0](https://github.com/i18next/i18next-browser-languageDetector/releases/tag/v2.1.0)
|
||||
* Date: 06/11/2017
|
||||
* Download: https://github.com/i18next/i18next-browser-languageDetector/blob/v2.1.0/i18nextBrowserLanguageDetector.min.js
|
||||
* License: MIT (see https://github.com/i18next/i18next-browser-languageDetector/blob/v2.1.0/LICENSE)
|
||||
* Description: language detector used in browser environment for i18next
|
||||
* Purpose for dwv: detect user language.
|
||||
BIN
nv/html/dwv/ext/jquery-mobile/images/ajax-loader.gif
Normal file
|
After Width: | Height: | Size: 6.1 KiB |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/action-black.png
Normal file
|
After Width: | Height: | Size: 219 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/action-white.png
Normal file
|
After Width: | Height: | Size: 227 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/alert-black.png
Normal file
|
After Width: | Height: | Size: 244 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/alert-white.png
Normal file
|
After Width: | Height: | Size: 243 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/arrow-d-black.png
Normal file
|
After Width: | Height: | Size: 146 B |
|
After Width: | Height: | Size: 167 B |
|
After Width: | Height: | Size: 173 B |
|
After Width: | Height: | Size: 159 B |
|
After Width: | Height: | Size: 171 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/arrow-d-white.png
Normal file
|
After Width: | Height: | Size: 149 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/arrow-l-black.png
Normal file
|
After Width: | Height: | Size: 149 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/arrow-l-white.png
Normal file
|
After Width: | Height: | Size: 156 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/arrow-r-black.png
Normal file
|
After Width: | Height: | Size: 147 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/arrow-r-white.png
Normal file
|
After Width: | Height: | Size: 152 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/arrow-u-black.png
Normal file
|
After Width: | Height: | Size: 147 B |
|
After Width: | Height: | Size: 163 B |
|
After Width: | Height: | Size: 169 B |
|
After Width: | Height: | Size: 163 B |
|
After Width: | Height: | Size: 165 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/arrow-u-white.png
Normal file
|
After Width: | Height: | Size: 151 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/audio-black.png
Normal file
|
After Width: | Height: | Size: 307 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/audio-white.png
Normal file
|
After Width: | Height: | Size: 314 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/back-black.png
Normal file
|
After Width: | Height: | Size: 233 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/back-white.png
Normal file
|
After Width: | Height: | Size: 240 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/bars-black.png
Normal file
|
After Width: | Height: | Size: 132 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/bars-white.png
Normal file
|
After Width: | Height: | Size: 135 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/bullets-black.png
Normal file
|
After Width: | Height: | Size: 147 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/bullets-white.png
Normal file
|
After Width: | Height: | Size: 152 B |
|
After Width: | Height: | Size: 146 B |
|
After Width: | Height: | Size: 143 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/camera-black.png
Normal file
|
After Width: | Height: | Size: 250 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/camera-white.png
Normal file
|
After Width: | Height: | Size: 251 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/carat-d-black.png
Normal file
|
After Width: | Height: | Size: 207 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/carat-d-white.png
Normal file
|
After Width: | Height: | Size: 213 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/carat-l-black.png
Normal file
|
After Width: | Height: | Size: 174 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/carat-l-white.png
Normal file
|
After Width: | Height: | Size: 177 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/carat-r-black.png
Normal file
|
After Width: | Height: | Size: 184 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/carat-r-white.png
Normal file
|
After Width: | Height: | Size: 194 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/carat-u-black.png
Normal file
|
After Width: | Height: | Size: 196 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/carat-u-white.png
Normal file
|
After Width: | Height: | Size: 204 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/check-black.png
Normal file
|
After Width: | Height: | Size: 169 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/check-white.png
Normal file
|
After Width: | Height: | Size: 172 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/clock-black.png
Normal file
|
After Width: | Height: | Size: 310 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/clock-white.png
Normal file
|
After Width: | Height: | Size: 316 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/cloud-black.png
Normal file
|
After Width: | Height: | Size: 212 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/cloud-white.png
Normal file
|
After Width: | Height: | Size: 210 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/comment-black.png
Normal file
|
After Width: | Height: | Size: 165 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/comment-white.png
Normal file
|
After Width: | Height: | Size: 160 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/delete-black.png
Normal file
|
After Width: | Height: | Size: 171 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/delete-white.png
Normal file
|
After Width: | Height: | Size: 185 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/edit-black.png
Normal file
|
After Width: | Height: | Size: 163 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/edit-white.png
Normal file
|
After Width: | Height: | Size: 170 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/eye-black.png
Normal file
|
After Width: | Height: | Size: 249 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/eye-white.png
Normal file
|
After Width: | Height: | Size: 253 B |
|
After Width: | Height: | Size: 299 B |
|
After Width: | Height: | Size: 308 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/forward-black.png
Normal file
|
After Width: | Height: | Size: 233 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/forward-white.png
Normal file
|
After Width: | Height: | Size: 243 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/gear-black.png
Normal file
|
After Width: | Height: | Size: 318 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/gear-white.png
Normal file
|
After Width: | Height: | Size: 302 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/grid-black.png
Normal file
|
After Width: | Height: | Size: 160 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/grid-white.png
Normal file
|
After Width: | Height: | Size: 167 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/heart-black.png
Normal file
|
After Width: | Height: | Size: 242 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/heart-white.png
Normal file
|
After Width: | Height: | Size: 246 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/home-black.png
Normal file
|
After Width: | Height: | Size: 150 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/home-white.png
Normal file
|
After Width: | Height: | Size: 154 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/info-black.png
Normal file
|
After Width: | Height: | Size: 250 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/info-white.png
Normal file
|
After Width: | Height: | Size: 251 B |
|
After Width: | Height: | Size: 245 B |
|
After Width: | Height: | Size: 247 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/lock-black.png
Normal file
|
After Width: | Height: | Size: 204 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/lock-white.png
Normal file
|
After Width: | Height: | Size: 207 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/mail-black.png
Normal file
|
After Width: | Height: | Size: 226 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/mail-white.png
Normal file
|
After Width: | Height: | Size: 227 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/minus-black.png
Normal file
|
After Width: | Height: | Size: 116 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/minus-white.png
Normal file
|
After Width: | Height: | Size: 116 B |
|
After Width: | Height: | Size: 242 B |
|
After Width: | Height: | Size: 241 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/phone-black.png
Normal file
|
After Width: | Height: | Size: 270 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/phone-white.png
Normal file
|
After Width: | Height: | Size: 274 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/plus-black.png
Normal file
|
After Width: | Height: | Size: 123 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/plus-white.png
Normal file
|
After Width: | Height: | Size: 124 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/power-black.png
Normal file
|
After Width: | Height: | Size: 292 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/power-white.png
Normal file
|
After Width: | Height: | Size: 302 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/recycle-black.png
Normal file
|
After Width: | Height: | Size: 243 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/recycle-white.png
Normal file
|
After Width: | Height: | Size: 253 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/refresh-black.png
Normal file
|
After Width: | Height: | Size: 295 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/refresh-white.png
Normal file
|
After Width: | Height: | Size: 301 B |
BIN
nv/html/dwv/ext/jquery-mobile/images/icons-png/search-black.png
Normal file
|
After Width: | Height: | Size: 324 B |