849 lines
6.5 MiB
JavaScript
Raw Normal View History

/******/ (function(modules) {
// webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {}; // The require function
/******/
/******/ /******/ function __webpack_require__(moduleId) {
/******/
/******/ // Check if module is in cache
/******/ if (installedModules[moduleId]) {
/******/ return installedModules[moduleId].exports;
/******/
} // Create a new module (and put it into the cache)
/******/ /******/ var module = (installedModules[moduleId] = {
/******/ i: moduleId,
/******/ l: false,
/******/ exports: {}
/******/
}); // Execute the module function
/******/
/******/ /******/ modules[moduleId].call(
module.exports,
module,
module.exports,
__webpack_require__
); // Flag the module as loaded
/******/
/******/ /******/ module.l = true; // Return the exports of the module
/******/
/******/ /******/ return module.exports;
/******/
} // expose the modules object (__webpack_modules__)
/******/
/******/
/******/ /******/ __webpack_require__.m = modules; // expose the module cache
/******/
/******/ /******/ __webpack_require__.c = installedModules; // define getter function for harmony exports
/******/
/******/ /******/ __webpack_require__.d = function(exports, name, getter) {
/******/ if (!__webpack_require__.o(exports, name)) {
/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
/******/
}
/******/
}; // define __esModule on exports
/******/
/******/ /******/ __webpack_require__.r = function(exports) {
/******/ if (typeof Symbol !== "undefined" && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
/******/
}
/******/ Object.defineProperty(exports, "__esModule", { value: true });
/******/
}; // create a fake namespace object // mode & 1: value is a module id, require it // mode & 2: merge all properties of value into the ns // mode & 4: return value when already ns object // mode & 8|1: behave like require
/******/
/******/ /******/ /******/ /******/ /******/ /******/ __webpack_require__.t = function(
value,
mode
) {
/******/ if (mode & 1) value = __webpack_require__(value);
/******/ if (mode & 8) return value;
/******/ if (mode & 4 && typeof value === "object" && value && value.__esModule) return value;
/******/ var ns = Object.create(null);
/******/ __webpack_require__.r(ns);
/******/ Object.defineProperty(ns, "default", { enumerable: true, value: value });
/******/ if (mode & 2 && typeof value != "string")
for (var key in value)
__webpack_require__.d(
ns,
key,
function(key) {
return value[key];
}.bind(null, key)
);
/******/ return ns;
/******/
}; // getDefaultExport function for compatibility with non-harmony modules
/******/
/******/ /******/ __webpack_require__.n = function(module) {
/******/ var getter =
module && module.__esModule
? /******/ function getDefault() {
return module["default"];
}
: /******/ function getModuleExports() {
return module;
};
/******/ __webpack_require__.d(getter, "a", getter);
/******/ return getter;
/******/
}; // Object.prototype.hasOwnProperty.call
/******/
/******/ /******/ __webpack_require__.o = function(object, property) {
return Object.prototype.hasOwnProperty.call(object, property);
}; // __webpack_public_path__
/******/
/******/ /******/ __webpack_require__.p = ""; // Load entry module and return exports
/******/
/******/
/******/ /******/ return __webpack_require__((__webpack_require__.s = "./src/js/app.js"));
/******/
})(
/************************************************************************/
/******/ {
/***/ "./node_modules/angular-translate/dist/angular-translate.js":
/*!******************************************************************!*\
!*** ./node_modules/angular-translate/dist/angular-translate.js ***!
\******************************************************************/
/*! no static exports found */
/***/ function(module, exports, __webpack_require__) {
eval(
"var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\n * angular-translate - v2.9.0 - 2016-01-24\n * \n * Copyright (c) 2016 The angular-translate team, Pascal Precht; Licensed MIT\n */\n(function (root, factory) {\n if (true) {\n // AMD. Register as an anonymous module unless amdModuleId is set\n !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function () {\n return (factory());\n }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else {}\n}(this, function () {\n\n/**\n * @ngdoc overview\n * @name pascalprecht.translate\n *\n * @description\n * The main module which holds everything together.\n */\nangular.module('pascalprecht.translate', ['ng'])\n .run(runTranslate);\n\nfunction runTranslate($translate) {\n\n 'use strict';\n\n var key = $translate.storageKey(),\n storage = $translate.storage();\n\n var fallbackFromIncorrectStorageValue = function () {\n var preferred = $translate.preferredLanguage();\n if (angular.isString(preferred)) {\n $translate.use(preferred);\n // $translate.use() will also remember the language.\n // So, we don't need to call storage.put() here.\n } else {\n storage.put(key, $translate.use());\n }\n };\n\n fallbackFromIncorrectStorageValue.displayName = 'fallbackFromIncorrectStorageValue';\n\n if (storage) {\n if (!storage.get(key)) {\n fallbackFromIncorrectStorageValue();\n } else {\n $translate.use(storage.get(key))['catch'](fallbackFromIncorrectStorageValue);\n }\n } else if (angular.isString($translate.preferredLanguage())) {\n $translate.use($translate.preferredLanguage());\n }\n}\nrunTranslate.$inject = ['$translate'];\n\nrunTranslate.displayName = 'runTranslate';\n\n/**\n * @ngdoc object\n * @name pascalprecht.translate.$translateSanitizationProvider\n *\n * @description\n *\n * Configurations for $translateSanitization\n */\nangular.module('pascalprecht.translate').provider('$translateSanitization', $translateSanitizationProvider);\n\nfunction $translateSanitizationProvider () {\n\n 'use strict';\n\n var $sanitize,\n currentStrategy = null, // TODO change to either 'sanitize', 'escape' or ['sanitize', 'escapeParameters'] in 3.0.\n hasConfiguredStrategy = false,\n hasShownNoStrategyConfiguredWarning = false,\n strategies;\n\n /**\n * Definition of a sanitization strategy function\n * @callback StrategyFunction\n * @param {string|object} value - value to be sanitized (either a string or an interpolated value map)\n * @param {string} mode - either 'text' for a string (translation) or 'params' for the interpolated params\n * @return {string|object}\n */\n\n /**\n * @ngdoc property\n * @name strategies\n * @propertyOf pascalprecht.translate.$translateSanitizationProvider\n *\n * @description\n * Following strategies are built-in:\n * <dl>\n * <dt>sanitize</dt>\n * <dd>Sanitizes HTML in the translation text using $sanitize</dd>\n * <dt>escape</dt>\n * <dd>Escapes HTML in the translation</dd>\n * <dt>sanitizeParameters</dt>\n * <dd>Sanitizes HTML in the values of the interpolation parameters using $sanitize</dd>\n * <dt>escapeParameters</dt>\n * <dd>Escapes HTML in the values of the interpolation parameters</dd>\n * <dt>escaped</dt>\n * <dd>Support legacy strategy name 'escaped' for backwards compatibility (will be removed in 3.0)</dd>\n * </dl>\n *\n */\n\n strategies = {\n sanitize: function (value, mode) {\n if (mode === 'text') {\n value = htmlSanitizeValue(value);\n }\n return value;\n },\n escape: function (value, mode) {\n if (mode === 'text') {\n value = htmlEscapeValue(value);\n }\n return value;\n },\n sanitizeParameters: function (value, mode) {\n if (mode === 'params') {\n value = mapInterpolationParameters(value, htmlSanitizeValue);\n }\n return value;\n },\n escape
);
/***/
},
/***/ "./node_modules/angular/angular.js":
/*!*****************************************!*\
!*** ./node_modules/angular/angular.js ***!
\*****************************************/
/*! no static exports found */
/***/ function(module, exports, __webpack_require__) {
eval(
"/* WEBPACK VAR INJECTION */(function(__webpack_provided_window_dot_jQuery) {/**\n * @license AngularJS v1.6.0\n * (c) 2010-2016 Google, Inc. http://angularjs.org\n * License: MIT\n */\n(function(window) {'use strict';\n\n/**\n * @description\n *\n * This object provides a utility for producing rich Error messages within\n * Angular. It can be called as follows:\n *\n * var exampleMinErr = minErr('example');\n * throw exampleMinErr('one', 'This {0} is {1}', foo, bar);\n *\n * The above creates an instance of minErr in the example namespace. The\n * resulting error will have a namespaced error code of example.one. The\n * resulting error will replace {0} with the value of foo, and {1} with the\n * value of bar. The object is not restricted in the number of arguments it can\n * take.\n *\n * If fewer arguments are specified than necessary for interpolation, the extra\n * interpolation markers will be preserved in the final string.\n *\n * Since data will be parsed statically during a build step, some restrictions\n * are applied with respect to how minErr instances are created and called.\n * Instances should have names of the form namespaceMinErr for a minErr created\n * using minErr('namespace') . Error codes, namespaces and template strings\n * should all be static strings, not variables or general expressions.\n *\n * @param {string} module The namespace to use for the new minErr instance.\n * @param {function} ErrorConstructor Custom error constructor to be instantiated when returning\n * error from returned function, for cases when a particular type of error is useful.\n * @returns {function(code:string, template:string, ...templateArgs): Error} minErr instance\n */\n\nfunction minErr(module, ErrorConstructor) {\n ErrorConstructor = ErrorConstructor || Error;\n return function() {\n var SKIP_INDEXES = 2;\n\n var templateArgs = arguments,\n code = templateArgs[0],\n message = '[' + (module ? module + ':' : '') + code + '] ',\n template = templateArgs[1],\n paramPrefix, i;\n\n message += template.replace(/\\{\\d+\\}/g, function(match) {\n var index = +match.slice(1, -1),\n shiftedIndex = index + SKIP_INDEXES;\n\n if (shiftedIndex < templateArgs.length) {\n return toDebugString(templateArgs[shiftedIndex]);\n }\n\n return match;\n });\n\n message += '\\nhttp://errors.angularjs.org/1.6.0/' +\n (module ? module + '/' : '') + code;\n\n for (i = SKIP_INDEXES, paramPrefix = '?'; i < templateArgs.length; i++, paramPrefix = '&') {\n message += paramPrefix + 'p' + (i - SKIP_INDEXES) + '=' +\n encodeURIComponent(toDebugString(templateArgs[i]));\n }\n\n return new ErrorConstructor(message);\n };\n}\n\n/* We need to tell ESLint what variables are being exported */\n/* exported\n angular,\n msie,\n jqLite,\n jQuery,\n slice,\n splice,\n push,\n toString,\n ngMinErr,\n angularModule,\n uid,\n REGEX_STRING_REGEXP,\n VALIDITY_STATE_PROPERTY,\n\n lowercase,\n uppercase,\n manualLowercase,\n manualUppercase,\n nodeName_,\n isArrayLike,\n forEach,\n forEachSorted,\n reverseParams,\n nextUid,\n setHashKey,\n extend,\n toInt,\n inherit,\n merge,\n noop,\n identity,\n valueFn,\n isUndefined,\n isDefined,\n isObject,\n isBlankObject,\n isString,\n isNumber,\n isNumberNaN,\n isDate,\n isArray,\n isFunction,\n isRegExp,\n isWindow,\n isScope,\n isFile,\n isFormData,\n isBlob,\n isBoolean,\n isPromiseLike,\n trim,\n escapeForRegexp,\n isElement,\n makeMap,\n includes,\n arrayRemove,\n copy,\n equals,\n csp,\n jq,\n concat,\n sliceArgs,\n bind,\n toJsonReplacer,\n toJson,\n fromJson,\n convertTimezoneToLocal,\n timezoneToOffset,\n startingTag,\n tryDecodeURIComponent,\n parseKeyValue,\n toKeyValue,\n encodeUriSegment,\n encodeUriQuery,\n angularInit,\n bootstrap,\n getTestability,\n snake_case,\n bindJQuery,\n assertArg,\n assertArgFn,\n assertNotHasOwnProperty,\n getter,\n getBlockNodes,\n hasOwnProperty,\n createMap,\n stringify,\n\n NODE_TYPE_ELEME
);
/***/
},
/***/ "./node_modules/angular/index.js":
/*!***************************************!*\
!*** ./node_modules/angular/index.js ***!
\***************************************/
/*! no static exports found */
/***/ function(module, exports, __webpack_require__) {
eval(
'__webpack_require__(/*! ./angular */ "./node_modules/angular/angular.js");\nmodule.exports = angular;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvYW5ndWxhci9pbmRleC5qcy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9hbmd1bGFyL2luZGV4LmpzPzI4N2MiXSwic291cmNlc0NvbnRlbnQiOlsicmVxdWlyZSgnLi9hbmd1bGFyJyk7XG5tb2R1bGUuZXhwb3J0cyA9IGFuZ3VsYXI7XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/angular/index.js\n'
);
/***/
},
/***/ "./node_modules/jquery/dist/jquery.js":
/*!********************************************!*\
!*** ./node_modules/jquery/dist/jquery.js ***!
\********************************************/
/*! no static exports found */
/***/ function(module, exports, __webpack_require__) {
eval(
'var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\n * jQuery JavaScript Library v2.2.4\n * http://jquery.com/\n *\n * Includes Sizzle.js\n * http://sizzlejs.com/\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2016-05-20T17:23Z\n */\n\n(function( global, factory ) {\n\n\tif ( typeof module === "object" && typeof module.exports === "object" ) {\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\t\t// is present, execute the factory and get jQuery.\n\t\t// For environments that do not have a `window` with a `document`\n\t\t// (such as Node.js), expose a factory as module.exports.\n\t\t// This accentuates the need for the creation of a real `window`.\n\t\t// e.g. var jQuery = require("jquery")(window);\n\t\t// See ticket #14549 for more info.\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( "jQuery requires a window with a document" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n}(typeof window !== "undefined" ? window : this, function( window, noGlobal ) {\n\n// Support: Firefox 18+\n// Can\'t be in strict mode, several libs including ASP.NET trace\n// the stack via arguments.caller.callee and Firefox dies if\n// you try to trace through "use strict" call chains. (#13335)\n//"use strict";\nvar arr = [];\n\nvar document = window.document;\n\nvar slice = arr.slice;\n\nvar concat = arr.concat;\n\nvar push = arr.push;\n\nvar indexOf = arr.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar support = {};\n\n\n\nvar\n\tversion = "2.2.4",\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\n\t\t// The jQuery object is actually just the init constructor \'enhanced\'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t},\n\n\t// Support: Android<4.1\n\t// Make sure we trim BOM and NBSP\n\trtrim = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g,\n\n\t// Matches dashed string for camelizing\n\trmsPrefix = /^-ms-/,\n\trdashAlpha = /-([\\da-z])/gi,\n\n\t// Used by jQuery.camelCase as callback to replace()\n\tfcamelCase = function( all, letter ) {\n\t\treturn letter.toUpperCase();\n\t};\n\njQuery.fn = jQuery.prototype = {\n\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// Start with an empty selector\n\tselector: "",\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\t\treturn num != null ?\n\n\t\t\t// Return just the one element from the set\n\t\t\t( num < 0 ? this[ num + this.length ] : this[ num ] ) :\n\n\t\t\t// Return all the elements in a clean array\n\t\t\tslice.call( this );\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\t\tret.context = this.context;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\teach: function( callback ) {\n\t\treturn jQuery.each( this, callback );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t} ) );\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\t
);
/***/
},
/***/ "./node_modules/lodash/lodash.js":
/*!***************************************!*\
!*** ./node_modules/lodash/lodash.js ***!
\***************************************/
/*! no static exports found */
/***/ function(module, exports, __webpack_require__) {
eval(
"/* WEBPACK VAR INJECTION */(function(global, module) {var __WEBPACK_AMD_DEFINE_RESULT__;/**\n * @license\n * Lodash <https://lodash.com/>\n * Copyright JS Foundation and other contributors <https://js.foundation/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n;(function() {\n\n /** Used as a safe reference for `undefined` in pre-ES5 environments. */\n var undefined;\n\n /** Used as the semantic version number. */\n var VERSION = '4.17.10';\n\n /** Used as the size to enable large array optimizations. */\n var LARGE_ARRAY_SIZE = 200;\n\n /** Error message constants. */\n var CORE_ERROR_TEXT = 'Unsupported core-js use. Try https://npms.io/search?q=ponyfill.',\n FUNC_ERROR_TEXT = 'Expected a function';\n\n /** Used to stand-in for `undefined` hash values. */\n var HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n /** Used as the maximum memoize cache size. */\n var MAX_MEMOIZE_SIZE = 500;\n\n /** Used as the internal argument placeholder. */\n var PLACEHOLDER = '__lodash_placeholder__';\n\n /** Used to compose bitmasks for cloning. */\n var CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n /** Used to compose bitmasks for value comparisons. */\n var COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n /** Used to compose bitmasks for function metadata. */\n var WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_BOUND_FLAG = 4,\n WRAP_CURRY_FLAG = 8,\n WRAP_CURRY_RIGHT_FLAG = 16,\n WRAP_PARTIAL_FLAG = 32,\n WRAP_PARTIAL_RIGHT_FLAG = 64,\n WRAP_ARY_FLAG = 128,\n WRAP_REARG_FLAG = 256,\n WRAP_FLIP_FLAG = 512;\n\n /** Used as default options for `_.truncate`. */\n var DEFAULT_TRUNC_LENGTH = 30,\n DEFAULT_TRUNC_OMISSION = '...';\n\n /** Used to detect hot functions by number of calls within a span of milliseconds. */\n var HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n /** Used to indicate the type of lazy iteratees. */\n var LAZY_FILTER_FLAG = 1,\n LAZY_MAP_FLAG = 2,\n LAZY_WHILE_FLAG = 3;\n\n /** Used as references for various `Number` constants. */\n var INFINITY = 1 / 0,\n MAX_SAFE_INTEGER = 9007199254740991,\n MAX_INTEGER = 1.7976931348623157e+308,\n NAN = 0 / 0;\n\n /** Used as references for the maximum length and index of an array. */\n var MAX_ARRAY_LENGTH = 4294967295,\n MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1,\n HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1;\n\n /** Used to associate wrap methods with their bit flags. */\n var wrapFlags = [\n ['ary', WRAP_ARY_FLAG],\n ['bind', WRAP_BIND_FLAG],\n ['bindKey', WRAP_BIND_KEY_FLAG],\n ['curry', WRAP_CURRY_FLAG],\n ['curryRight', WRAP_CURRY_RIGHT_FLAG],\n ['flip', WRAP_FLIP_FLAG],\n ['partial', WRAP_PARTIAL_FLAG],\n ['partialRight', WRAP_PARTIAL_RIGHT_FLAG],\n ['rearg', WRAP_REARG_FLAG]\n ];\n\n /** `Object#toString` result references. */\n var argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n domExcTag = '[object DOMException]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]',\n weakSetTag = '[object WeakSet]';\n\n var arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',
);
/***/
},
/***/ "./node_modules/webpack/buildin/global.js":
/*!***********************************!*\
!*** (webpack)/buildin/global.js ***!
\***********************************/
/*! no static exports found */
/***/ function(module, exports) {
eval(
'var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || Function("return this")() || (1, eval)("this");\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === "object") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it\'s\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvd2VicGFjay9idWlsZGluL2dsb2JhbC5qcy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8od2VicGFjaykvYnVpbGRpbi9nbG9iYWwuanM/Y2QwMCJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgZztcblxuLy8gVGhpcyB3b3JrcyBpbiBub24tc3RyaWN0IG1vZGVcbmcgPSAoZnVuY3Rpb24oKSB7XG5cdHJldHVybiB0aGlzO1xufSkoKTtcblxudHJ5IHtcblx0Ly8gVGhpcyB3b3JrcyBpZiBldmFsIGlzIGFsbG93ZWQgKHNlZSBDU1ApXG5cdGcgPSBnIHx8IEZ1bmN0aW9uKFwicmV0dXJuIHRoaXNcIikoKSB8fCAoMSwgZXZhbCkoXCJ0aGlzXCIpO1xufSBjYXRjaCAoZSkge1xuXHQvLyBUaGlzIHdvcmtzIGlmIHRoZSB3aW5kb3cgcmVmZXJlbmNlIGlzIGF2YWlsYWJsZVxuXHRpZiAodHlwZW9mIHdpbmRvdyA9PT0gXCJvYmplY3RcIikgZyA9IHdpbmRvdztcbn1cblxuLy8gZyBjYW4gc3RpbGwgYmUgdW5kZWZpbmVkLCBidXQgbm90aGluZyB0byBkbyBhYm91dCBpdC4uLlxuLy8gV2UgcmV0dXJuIHVuZGVmaW5lZCwgaW5zdGVhZCBvZiBub3RoaW5nIGhlcmUsIHNvIGl0J3Ncbi8vIGVhc2llciB0byBoYW5kbGUgdGhpcyBjYXNlLiBpZighZ2xvYmFsKSB7IC4uLn1cblxubW9kdWxlLmV4cG9ydHMgPSBnO1xuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/webpack/buildin/global.js\n'
);
/***/
},
/***/ "./node_modules/webpack/buildin/module.js":
/*!***********************************!*\
!*** (webpack)/buildin/module.js ***!
\***********************************/
/*! no static exports found */
/***/ function(module, exports) {
eval(
'module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, "loaded", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, "id", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvd2VicGFjay9idWlsZGluL21vZHVsZS5qcy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8od2VicGFjaykvYnVpbGRpbi9tb2R1bGUuanM/Y2VkMiJdLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKG1vZHVsZSkge1xuXHRpZiAoIW1vZHVsZS53ZWJwYWNrUG9seWZpbGwpIHtcblx0XHRtb2R1bGUuZGVwcmVjYXRlID0gZnVuY3Rpb24oKSB7fTtcblx0XHRtb2R1bGUucGF0aHMgPSBbXTtcblx0XHQvLyBtb2R1bGUucGFyZW50ID0gdW5kZWZpbmVkIGJ5IGRlZmF1bHRcblx0XHRpZiAoIW1vZHVsZS5jaGlsZHJlbikgbW9kdWxlLmNoaWxkcmVuID0gW107XG5cdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KG1vZHVsZSwgXCJsb2FkZWRcIiwge1xuXHRcdFx0ZW51bWVyYWJsZTogdHJ1ZSxcblx0XHRcdGdldDogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdHJldHVybiBtb2R1bGUubDtcblx0XHRcdH1cblx0XHR9KTtcblx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkobW9kdWxlLCBcImlkXCIsIHtcblx0XHRcdGVudW1lcmFibGU6IHRydWUsXG5cdFx0XHRnZXQ6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRyZXR1cm4gbW9kdWxlLmk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdFx0bW9kdWxlLndlYnBhY2tQb2x5ZmlsbCA9IDE7XG5cdH1cblx0cmV0dXJuIG1vZHVsZTtcbn07XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/webpack/buildin/module.js\n'
);
/***/
},
/***/ "./src/js/app.js":
/*!***********************!*\
!*** ./src/js/app.js ***!
\***********************/
/*! no exports provided */
/***/ function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval(
'__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function($) {/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! angular */ "./node_modules/angular/index.js");\n/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(angular__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var angular_translate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! angular-translate */ "./node_modules/angular-translate/dist/angular-translate.js");\n/* harmony import */ var angular_translate__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(angular_translate__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var app_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! app.scss */ "./src/scss/app.scss");\n/* harmony import */ var app_scss__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(app_scss__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var services_alerts__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! services/alerts */ "./src/js/services/alerts.js");\n/* harmony import */ var services_base64__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! services/base64 */ "./src/js/services/base64.js");\n/* harmony import */ var services_configuration__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! services/configuration */ "./src/js/services/configuration.js");\n/* harmony import */ var services_deps__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! services/deps */ "./src/js/services/deps.js");\n/* harmony import */ var services_errors__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! services/errors */ "./src/js/services/errors.js");\n/* harmony import */ var services_rpc_rpc__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! services/rpc/rpc */ "./src/js/services/rpc/rpc.js");\n/* harmony import */ var services_rpc_helpers__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! services/rpc/helpers */ "./src/js/services/rpc/helpers.js");\n/* harmony import */ var services_rpc_jsoncall__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! services/rpc/jsoncall */ "./src/js/services/rpc/jsoncall.js");\n/* harmony import */ var services_rpc_sockcall__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! services/rpc/sockcall */ "./src/js/services/rpc/sockcall.js");\n/* harmony import */ var services_rpc_syscall__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! services/rpc/syscall */ "./src/js/services/rpc/syscall.js");\n/* harmony import */ var services_settings_settings__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! services/settings/settings */ "./src/js/services/settings/settings.js");\n/* harmony import */ var services_settings_filters__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! services/settings/filters */ "./src/js/services/settings/filters.js");\n/* harmony import */ var services_modals__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! services/modals */ "./src/js/services/modals.js");\n/* harmony import */ var services_utils__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! services/utils */ "./src/js/services/utils.js");\n/* harmony import */ var filters_bytes__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! filters/bytes */ "./src/js/filters/bytes.js");\n/* harmony import */ var filters_url__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! filters/url */ "./src/js/filters/url.js");\n/* harmony import */ var directives_chunkbar__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! directives/chunkbar */ "./src/js/directives/chunkbar.js");\n/* harmony import */ var directives_dgraph__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! directives/dgraph */ "./src/js/directives/dgraph.js");\n/* harmony import */ var directives_fselect__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! directives/fselect */ "./src/js/directives/fselect.js");\n/* harmony import */ var directives_fileselect__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! directives
);
/***/
},
/***/ "./src/js/ctrls/alert.js":
/*!*******************************!*\
!*** ./src/js/ctrls/alert.js ***!
\*******************************/
/*! exports provided: default */
/***/ function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval(
'__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! angular */ "./node_modules/angular/index.js");\n/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(angular__WEBPACK_IMPORTED_MODULE_0__);\n\n\n/* harmony default export */ __webpack_exports__["default"] = (angular__WEBPACK_IMPORTED_MODULE_0___default.a\n .module("webui.ctrls.alert", ["webui.services.alerts"])\n .controller("AlertCtrl", [\n "$scope",\n "$alerts",\n "$sce",\n function(scope, alerts, sce) {\n scope.pendingAlerts = [];\n\n scope.removeAlert = function(ind) {\n this.pendingAlerts.splice(ind, 1);\n };\n\n alerts.addAlerter(function(msg, type) {\n type = type || "warning";\n var obj = { msg: sce.trustAsHtml(msg), type: type };\n scope.pendingAlerts = _.filter(scope.pendingAlerts, function(al) {\n return !al.expired;\n });\n scope.pendingAlerts.push(obj);\n\n setTimeout(function() {\n var ind = scope.pendingAlerts.indexOf(obj);\n if (ind != -1) {\n scope.pendingAlerts[ind].expired = true;\n\n // only remove if more notifications are pending in the pipeline\n if (scope.pendingAlerts.length > 0) scope.removeAlert(ind);\n }\n }, type == "error" ? 15000 : 5000);\n\n scope.$digest();\n });\n }\n ]).name);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvanMvY3RybHMvYWxlcnQuanMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvanMvY3RybHMvYWxlcnQuanM/ODk3ZSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYW5ndWxhciBmcm9tIFwiYW5ndWxhclwiO1xuXG5leHBvcnQgZGVmYXVsdCBhbmd1bGFyXG4gIC5tb2R1bGUoXCJ3ZWJ1aS5jdHJscy5hbGVydFwiLCBbXCJ3ZWJ1aS5zZXJ2aWNlcy5hbGVydHNcIl0pXG4gIC5jb250cm9sbGVyKFwiQWxlcnRDdHJsXCIsIFtcbiAgICBcIiRzY29wZVwiLFxuICAgIFwiJGFsZXJ0c1wiLFxuICAgIFwiJHNjZVwiLFxuICAgIGZ1bmN0aW9uKHNjb3BlLCBhbGVydHMsIHNjZSkge1xuICAgICAgc2NvcGUucGVuZGluZ0FsZXJ0cyA9IFtdO1xuXG4gICAgICBzY29wZS5yZW1vdmVBbGVydCA9IGZ1bmN0aW9uKGluZCkge1xuICAgICAgICB0aGlzLnBlbmRpbmdBbGVydHMuc3BsaWNlKGluZCwgMSk7XG4gICAgICB9O1xuXG4gICAgICBhbGVydHMuYWRkQWxlcnRlcihmdW5jdGlvbihtc2csIHR5cGUpIHtcbiAgICAgICAgdHlwZSA9IHR5cGUgfHwgXCJ3YXJuaW5nXCI7XG4gICAgICAgIHZhciBvYmogPSB7IG1zZzogc2NlLnRydXN0QXNIdG1sKG1zZyksIHR5cGU6IHR5cGUgfTtcbiAgICAgICAgc2NvcGUucGVuZGluZ0FsZXJ0cyA9IF8uZmlsdGVyKHNjb3BlLnBlbmRpbmdBbGVydHMsIGZ1bmN0aW9uKGFsKSB7XG4gICAgICAgICAgcmV0dXJuICFhbC5leHBpcmVkO1xuICAgICAgICB9KTtcbiAgICAgICAgc2NvcGUucGVuZGluZ0FsZXJ0cy5wdXNoKG9iaik7XG5cbiAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHtcbiAgICAgICAgICB2YXIgaW5kID0gc2NvcGUucGVuZGluZ0FsZXJ0cy5pbmRleE9mKG9iaik7XG4gICAgICAgICAgaWYgKGluZCAhPSAtMSkge1xuICAgICAgICAgICAgc2NvcGUucGVuZGluZ0FsZXJ0c1tpbmRdLmV4cGlyZWQgPSB0cnVlO1xuXG4gICAgICAgICAgICAvLyBvbmx5IHJlbW92ZSBpZiBtb3JlIG5vdGlmaWNhdGlvbnMgYXJlIHBlbmRpbmcgaW4gdGhlIHBpcGVsaW5lXG4gICAgICAgICAgICBpZiAoc2NvcGUucGVuZGluZ0FsZXJ0cy5sZW5ndGggPiAwKSBzY29wZS5yZW1vdmVBbGVydChpbmQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSwgdHlwZSA9PSBcImVycm9yXCIgPyAxNTAwMCA6IDUwMDApO1xuXG4gICAgICAgIHNjb3BlLiRkaWdlc3QoKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgXSkubmFtZTtcbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/js/ctrls/alert.js\n'
);
/***/
},
/***/ "./src/js/ctrls/main.js":
/*!******************************!*\
!*** ./src/js/ctrls/main.js ***!
\******************************/
/*! exports provided: default */
/***/ function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval(
'__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! angular */ "./node_modules/angular/index.js");\n/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(angular__WEBPACK_IMPORTED_MODULE_0__);\n\n\n/* harmony default export */ __webpack_exports__["default"] = (angular__WEBPACK_IMPORTED_MODULE_0___default.a\n .module("webui.ctrls.download", [\n "ui.bootstrap",\n "webui.services.utils",\n "webui.services.rpc",\n "webui.services.rpc.helpers",\n "webui.services.alerts",\n "webui.services.settings",\n "webui.services.modals",\n "webui.services.configuration",\n "webui.services.errors"\n ])\n .controller("MainCtrl", [\n "$scope",\n "$name",\n "$enable",\n "$rpc",\n "$rpchelpers",\n "$utils",\n "$alerts",\n "$modals",\n "$fileSettings",\n "$activeInclude",\n "$waitingExclude",\n "$pageSize",\n "$getErrorStatus",\n // for document title\n "$rootScope",\n "$filter",\n function(\n scope,\n name,\n enable,\n rpc,\n rhelpers,\n utils,\n alerts,\n modals,\n fsettings,\n activeInclude,\n waitingExclude,\n pageSize,\n getErrorStatus,\n rootScope,\n filter\n ) {\n scope.name = name; // default UI name\n scope.enable = enable; // UI enable options\n\n var re_slashes = /\\\\/g;\n var slash = "/";\n var allStopped = [];\n\n (scope.active = []), (scope.waiting = []), (scope.stopped = []);\n scope.gstats = {};\n scope.hideLinkedMetadata = true;\n scope.propFilter = "";\n\n // pause the download\n // d: the download ctx\n scope.pause = function(d) {\n rpc.once("forcePause", [d.gid]);\n };\n\n // resume the download\n // d: the download ctx\n scope.resume = function(d) {\n rpc.once("unpause", [d.gid]);\n };\n\n scope.restart = function(d) {\n // assumes downloads which are started by URIs, not torrents.\n // the preferences are also not transferred, just simple restart\n\n rpc.once("getOption", [d.gid], function(data) {\n var prefs = data[0];\n rpc.once("getFiles", [d.gid], function(data) {\n var files = data[0];\n var uris = _.chain(files)\n .map(function(f) {\n return f.uris;\n })\n .filter(function(uris) {\n return uris && uris.length;\n })\n .map(function(uris) {\n var u = _.chain(uris)\n .map(function(u) {\n return u.uri;\n })\n .uniq()\n .value();\n return u;\n })\n .value();\n\n if (uris.length > 0) {\n console.log("adding uris:", uris, prefs);\n scope.remove(\n d,\n function() {\n rhelpers.addUris(uris, prefs);\n },\n true\n );\n }\n });\n });\n };\n\n scope.canRestart = function(d) {\n return ["active", "paused"].indexOf(d.status) == -1 && !d.bittorrent;\n };\n\n // remove the download,\n // put it in stopped list if active,\n // otherwise permanantly remove it\n // d: the download ctx\n scope.remove = function(d, cb, noConfirm) {\n // HACK to make sure an angular digest is not running, as only one can happen at a time, and confirm is a blocking\n // call so an rpc response can also trigger a digest call\n setTimeout(function() {\n if (\n !noConfirm &&\n !confirm(\n filter("translate")("Remove {{name}} and associated meta-data?", { name: d.name })\n )\n ) {\n return;\n }\n\n var method = "remove";\n\n if (scope.getType(d)
);
/***/
},
/***/ "./src/js/ctrls/modal.js":
/*!*******************************!*\
!*** ./src/js/ctrls/modal.js ***!
\*******************************/
/*! exports provided: default */
/***/ function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval(
'__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! angular */ "./node_modules/angular/index.js");\n/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(angular__WEBPACK_IMPORTED_MODULE_0__);\n\n\nvar parseFiles = function(files, cb) {\n var cnt = 0;\n var txts = [];\n var onload = function(res) {\n var txt = res.target.result;\n txts.push(txt.split(",")[1]);\n cnt--;\n if (!cnt) {\n cb(txts);\n }\n };\n _.each(files, function(file) {\n cnt++;\n console.log("starting file reader");\n var reader = new FileReader();\n reader.onload = onload;\n reader.onerror = function(err) {\n // return error\n // TODO: find a better way to propogate error upstream\n console.log("got back error", err);\n cb([]);\n };\n reader.readAsDataURL(file);\n });\n};\n\n/* harmony default export */ __webpack_exports__["default"] = (angular__WEBPACK_IMPORTED_MODULE_0___default.a\n .module("webui.ctrls.modal", [\n "ui.bootstrap",\n "webui.services.deps",\n "webui.services.modals",\n "webui.services.rpc",\n "webui.services.configuration"\n ])\n .controller("ModalCtrl", [\n "$_",\n "$scope",\n "$modal",\n "$modals",\n "$rpc",\n "$fileSettings",\n "$downloadProps",\n function(_, scope, $modal, modals, rpc, fsettings, dprops) {\n scope.getUris = {\n open: function(cb) {\n var self = this;\n this.uris = "";\n this.downloadSettingsCollapsed = true;\n this.advancedSettingsCollapsed = true;\n this.settings = {};\n this.fsettings = _.cloneDeep(fsettings);\n this.cb = cb;\n\n // fill in default download properties\n _.forEach(dprops, function(p) {\n self.settings[p] = self.fsettings[p];\n delete self.fsettings[p];\n });\n\n this.inst = $modal.open({\n templateUrl: "getUris.html",\n scope: scope,\n windowClass: "modal-large"\n });\n this.inst.result.then(\n function() {\n delete self.inst;\n if (self.cb) {\n var settings = {};\n // no need to send in default values, just the changed ones\n for (var i in self.settings) {\n if (fsettings[i].val != self.settings[i].val) settings[i] = self.settings[i].val;\n }\n for (var i in self.fsettings) {\n if (fsettings[i].val != self.fsettings[i].val)\n settings[i] = self.fsettings[i].val;\n }\n\n console.log("sending settings:", settings);\n self.cb(self.parse(), settings);\n }\n },\n function() {\n delete self.inst;\n }\n );\n },\n parse: function() {\n return _.chain(this.uris.trim().split(/\\r?\\n/g))\n .map(function(d) {\n return _(d)\n .replace(/["\'][^"\']*["\']/g, function(c) {\n return c.replace(/%/g, "%25").replace(/ /g, "%20");\n })\n .trim()\n .split(/\\s+/g)\n .map(function(c) {\n return c\n .replace(/%20/g, " ")\n .replace(/%25/g, "%")\n .replace(/["\']/g, "");\n });\n })\n .filter(function(d) {\n return d.length;\n })\n .value();\n }\n };\n\n scope.settings = {\n open: function(settings, title, actionText, cb) {\n var self = this;\n this.settings = settings;\n this.title = title;\n this.actionText = actionText;\n this.inst = $modal.open({\n templateUrl: "settings.html",\n scope: scope,\n windowClass: "modal-large"\n })
);
/***/
},
/***/ "./src/js/ctrls/nav.js":
/*!*****************************!*\
!*** ./src/js/ctrls/nav.js ***!
\*****************************/
/*! exports provided: default */
/***/ function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval(
'__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! angular */ "./node_modules/angular/index.js");\n/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(angular__WEBPACK_IMPORTED_MODULE_0__);\n\n\n/* harmony default export */ __webpack_exports__["default"] = (angular__WEBPACK_IMPORTED_MODULE_0___default.a\n .module("webui.ctrls.nav", [\n "webui.services.configuration",\n "webui.services.modals",\n "webui.services.rpc",\n "webui.services.rpc.helpers",\n "webui.services.settings",\n "webui.services.utils"\n ])\n .controller("NavCtrl", [\n "$scope",\n "$modals",\n "$rpc",\n "$rpchelpers",\n "$fileSettings",\n "$globalSettings",\n "$globalExclude",\n "$utils",\n "$translate",\n "$filter",\n function(\n scope,\n modals,\n rpc,\n rhelpers,\n fsettings,\n gsettings,\n gexclude,\n utils,\n translate,\n filter\n ) {\n scope.isFeatureEnabled = function(f) {\n return rhelpers.isFeatureEnabled(f);\n };\n\n // initially collapsed in mobile resolution\n scope.collapsed = true;\n\n scope.onDownloadFilter = function() {\n // Forward to MainCtrl.\n scope.$parent.downloadFilter = scope.downloadFilter;\n scope.$parent.onDownloadFilter();\n };\n\n // manage download functions\n scope.forcePauseAll = function() {\n rpc.once("forcePauseAll", []);\n };\n\n scope.purgeDownloadResult = function() {\n rpc.once("purgeDownloadResult", []);\n };\n\n scope.unpauseAll = function() {\n rpc.once("unpauseAll", []);\n };\n\n scope.addUris = function() {\n modals.invoke("getUris", _.bind(rhelpers.addUris, rhelpers));\n };\n\n scope.addMetalinks = function() {\n modals.invoke("getMetalinks", _.bind(rhelpers.addMetalinks, rhelpers));\n };\n\n scope.addTorrents = function() {\n modals.invoke("getTorrents", _.bind(rhelpers.addTorrents, rhelpers));\n };\n\n scope.changeCSettings = function() {\n modals.invoke("connection", rpc.getConfiguration(), _.bind(rpc.configure, rpc));\n };\n\n scope.changeGSettings = function() {\n rpc.once("getGlobalOption", [], function(data) {\n var starred = utils.getCookie("aria2props");\n if (!starred || !starred.indexOf) starred = [];\n var vals = data[0];\n var settings = {};\n\n // global settings divided into\n // file settings + some global specific\n // settings\n\n _.forEach([fsettings, gsettings], function(sets) {\n for (var i in sets) {\n if (gexclude.indexOf(i) != -1) continue;\n\n settings[i] = _.cloneDeep(sets[i]);\n settings[i].starred = starred.indexOf(i) != -1;\n }\n });\n\n for (var i in vals) {\n if (i in gexclude) continue;\n\n if (!(i in settings)) {\n settings[i] = { name: i, val: vals[i], desc: "", starred: starred.indexOf(i) != -1 };\n } else {\n settings[i].val = vals[i];\n }\n }\n\n modals.invoke(\n "settings",\n _.cloneDeep(settings),\n filter("translate")("Global Settings"),\n filter("translate")("Save"),\n function(chsettings) {\n var sets = {};\n var starred = [];\n for (var i in chsettings) {\n // no need to change default values\n if (settings[i].val != chsettings[i].val) sets[i] = chsettings[i].val;\n\n if (chsettings[i].starred) {\n starred.push(i);\n }\n }\n\n console.log("saving aria2 settings:", sets);\n console.log("saving aria2 starred:", starred);\n\n rpc.once("changeGlobalOption", [sets]);\n
);
/***/
},
/***/ "./src/js/ctrls/props.js":
/*!*******************************!*\
!*** ./src/js/ctrls/props.js ***!
\*******************************/
/*! exports provided: default */
/***/ function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval(
'__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! angular */ "./node_modules/angular/index.js");\n/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(angular__WEBPACK_IMPORTED_MODULE_0__);\n\n\n/* harmony default export */ __webpack_exports__["default"] = (angular__WEBPACK_IMPORTED_MODULE_0___default.a\n .module("webui.ctrls.props", [\n "webui.services.utils",\n "webui.services.settings",\n "webui.services.deps",\n "webui.services.rpc",\n "webui.services.configuration"\n ])\n .controller("StarredPropsCtrl", [\n "$scope",\n "$_",\n "$utils",\n "$rpc",\n "$globalSettings",\n "$fileSettings",\n "$starredProps",\n function(scope, _, utils, rpc, gsettings, fsettings, starredProps) {\n scope._props = [];\n scope.dirty = true;\n scope.properties = [];\n scope.getProps = function() {\n var props = utils.getCookie("aria2props");\n if (!props || !props.indexOf) props = starredProps; // default properties starred in the global configuration file\n\n return props;\n };\n\n scope.enabled = function() {\n for (var i = 0; i < scope.properties.length; i++) {\n if (scope.properties[i]._val != scope.properties[i].val) return true;\n }\n\n return false;\n };\n\n scope.save = function() {\n var sets = {};\n var found = false;\n for (var i = 0; i < scope.properties.length; i++) {\n if (scope.properties[i]._val != scope.properties[i].val) {\n sets[scope.properties[i].name] = scope.properties[i].val;\n found = true;\n }\n }\n\n if (found) {\n rpc.once("changeGlobalOption", [sets]);\n }\n };\n\n rpc.subscribe("getGlobalOption", [], function(data) {\n var vals = data[0];\n var props = scope.getProps();\n var arr = [];\n\n for (var i = 0; i < props.length; i++) {\n var set = {};\n if (props[i] in gsettings) {\n set = gsettings[props[i]];\n if (props[i] in vals) {\n set.val = vals[props[i]];\n }\n set.name = props[i];\n arr.push(set);\n } else if (props[i] in fsettings) {\n set = fsettings[props[i]];\n if (props[i] in vals) {\n set.val = vals[props[i]];\n }\n set.name = props[i];\n arr.push(set);\n } else if (props[i] in vals) {\n arr.push({ name: props[i], val: vals[props[i]] });\n }\n }\n\n utils.mergeMap(arr, scope.properties, function(prop, nprop) {\n nprop = nprop || {};\n nprop.name = prop.name;\n nprop.options = prop.options;\n nprop.multiline = prop.multiline;\n if (nprop._val == nprop.val || nprop.val == prop.val) {\n nprop._val = prop.val;\n nprop.val = prop.val;\n } else {\n nprop._val = prop.val;\n }\n nprop.desc = prop.desc;\n return nprop;\n });\n });\n }\n ]).name);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvanMvY3RybHMvcHJvcHMuanMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvanMvY3RybHMvcHJvcHMuanM/MDE3ZiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYW5ndWxhciBmcm9tIFwiYW5ndWxhclwiO1xuXG5leHBvcnQgZGVmYXVsdCBhbmd1bGFyXG4gIC5tb2R1bGUoXCJ3ZWJ1aS5jdHJscy5wcm9wc1wiLCBbXG4gICAgXCJ3ZWJ1aS5zZXJ2aWNlcy51dGlsc1wiLFxuICAgIFwid2VidWkuc2VydmljZXMuc2V0dGluZ3NcIixcbiAgICBcIndlYnVpLnNlcnZpY2VzLmRlcHNcIixcbiAgICBcIndlYnVpLnNlcnZpY2VzLnJwY1wiLFxuICAgIFwid2VidWkuc2VydmljZXMuY29uZmlndXJhdGlvblwiXG4gIF0pXG4gIC5jb250cm9sbGVyKFwiU3RhcnJlZFByb3BzQ3RybFwiLCBbXG4gICAgXCIkc2NvcGVcIixcbiAgICBcIiRfXCIsXG4gICAgXCIkdXRpbHNcIixcbiAgICBcIiRycGNcIixcbiAgICBcIiRnbG9iYWxTZXR0aW5nc1wiLFxuICAgIFwiJGZpbGVTZXR0aW5nc1wiLFxuICAgIFwiJHN0YXJyZWRQcm9wc1wiLFxuICAgIGZ1bmN0
);
/***/
},
/***/ "./src/js/directives/chunkbar.js":
/*!***************************************!*\
!*** ./src/js/directives/chunkbar.js ***!
\***************************************/
/*! exports provided: default */
/***/ function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval(
'__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! angular */ "./node_modules/angular/index.js");\n/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(angular__WEBPACK_IMPORTED_MODULE_0__);\n\n\nvar draw = function(canvas, chunks, fillStyle) {\n chunks = chunks || [];\n if (!canvas.getContext) {\n console.log("use chunk bar on an canvas implementation!");\n return;\n }\n var ctx = canvas.getContext("2d");\n ctx.fillStyle = fillStyle || "#149BDF";\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n var x = 0,\n width = canvas.width,\n height = canvas.height;\n chunks.forEach(function(c) {\n var dx = c.ratio * width;\n if (c.show) ctx.fillRect(x, 0, dx, height);\n x += dx;\n });\n};\n// put chunkbar and bitfield attributes in a canvas element\n// to use the directive, draw is optional and canvas is\n// only drawn when it is true if given\n/* harmony default export */ __webpack_exports__["default"] = (angular__WEBPACK_IMPORTED_MODULE_0___default.a\n .module("webui.directives.chunkbar", ["webui.services.utils"])\n .directive("chunkbar", [\n "$utils",\n function(utils) {\n return function(scope, elem, attrs) {\n var bitfield = "",\n pieces = 0,\n canDraw = true;\n var update = function() {\n if (canDraw) draw(elem[0], utils.getChunksFromHex(bitfield, pieces), attrs.fillStyle);\n };\n scope.$watch(attrs.bitfield, function(bf) {\n bitfield = bf;\n update();\n });\n scope.$watch(attrs.pieces, function(p) {\n pieces = p;\n update();\n });\n\n if (attrs.draw) {\n scope.$watch(attrs.draw, function(val) {\n canDraw = val;\n });\n }\n\n update();\n };\n }\n ]).name);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvanMvZGlyZWN0aXZlcy9jaHVua2Jhci5qcy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9qcy9kaXJlY3RpdmVzL2NodW5rYmFyLmpzP2ViZTUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFuZ3VsYXIgZnJvbSBcImFuZ3VsYXJcIjtcblxudmFyIGRyYXcgPSBmdW5jdGlvbihjYW52YXMsIGNodW5rcywgZmlsbFN0eWxlKSB7XG4gIGNodW5rcyA9IGNodW5rcyB8fCBbXTtcbiAgaWYgKCFjYW52YXMuZ2V0Q29udGV4dCkge1xuICAgIGNvbnNvbGUubG9nKFwidXNlIGNodW5rIGJhciBvbiBhbiBjYW52YXMgaW1wbGVtZW50YXRpb24hXCIpO1xuICAgIHJldHVybjtcbiAgfVxuICB2YXIgY3R4ID0gY2FudmFzLmdldENvbnRleHQoXCIyZFwiKTtcbiAgY3R4LmZpbGxTdHlsZSA9IGZpbGxTdHlsZSB8fCBcIiMxNDlCREZcIjtcbiAgY3R4LmNsZWFyUmVjdCgwLCAwLCBjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQpO1xuICB2YXIgeCA9IDAsXG4gICAgd2lkdGggPSBjYW52YXMud2lkdGgsXG4gICAgaGVpZ2h0ID0gY2FudmFzLmhlaWdodDtcbiAgY2h1bmtzLmZvckVhY2goZnVuY3Rpb24oYykge1xuICAgIHZhciBkeCA9IGMucmF0aW8gKiB3aWR0aDtcbiAgICBpZiAoYy5zaG93KSBjdHguZmlsbFJlY3QoeCwgMCwgZHgsIGhlaWdodCk7XG4gICAgeCArPSBkeDtcbiAgfSk7XG59O1xuLy8gcHV0IGNodW5rYmFyIGFuZCBiaXRmaWVsZCBhdHRyaWJ1dGVzIGluIGEgY2FudmFzIGVsZW1lbnRcbi8vIHRvIHVzZSB0aGUgZGlyZWN0aXZlLCBkcmF3IGlzIG9wdGlvbmFsIGFuZCBjYW52YXMgaXNcbi8vIG9ubHkgZHJhd24gd2hlbiBpdCBpcyB0cnVlIGlmIGdpdmVuXG5leHBvcnQgZGVmYXVsdCBhbmd1bGFyXG4gIC5tb2R1bGUoXCJ3ZWJ1aS5kaXJlY3RpdmVzLmNodW5rYmFyXCIsIFtcIndlYnVpLnNlcnZpY2VzLnV0aWxzXCJdKVxuICAuZGlyZWN0aXZlKFwiY2h1bmtiYXJcIiwgW1xuICAgIFwiJHV0aWxzXCIsXG4gICAgZnVuY3Rpb24odXRpbHMpIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbihzY29wZSwgZWxlbSwgYXR0cnMpIHtcbiAgICAgICAgdmFyIGJpdGZpZWxkID0gXCJcIixcbiAgICAgICAgICBwaWVjZXMgPSAwLFxuICAgICAgICAgIGNhbkRyYXcgPSB0cnVlO1xuICAgICAgICB2YXIgdXBkYXRlID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgaWYgKGNhbkRyYXcpIGRyYXcoZWxlbVswXSwgdXRpbHMuZ2V0Q2h1bmtzRnJvbUhleChiaXRmaWVsZCwgcGllY2VzKSwgYXR0cnMuZmlsbFN0eWxlKTtcbiAgICAgICAgfTtcbiAgICAgICAgc2NvcGUuJHdhdGNoKGF0dHJzLmJpdGZpZWxkLCBmdW5jdGlvbihiZikge1xuICAgICAgICAgIGJpdGZpZWxkID0gYmY7XG4gICAgICAgICAgdXBkYXRlKCk7XG4gICAgICAgIH0pO1xuICAgICAgICBzY29wZS4kd2F0Y2goYXR0cnMucGllY2VzLCBmdW5jdGlvbihwKSB7XG4gICAgICAgICAgcGllY2VzID0gcDtcbiAgICAgICAgICB1cGRhdGUoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKGF0dHJzLmRyYXcpI
);
/***/
},
/***/ "./src/js/directives/dgraph.js":
/*!*************************************!*\
!*** ./src/js/directives/dgraph.js ***!
\*************************************/
/*! exports provided: default */
/***/ function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval(
'__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! angular */ "./node_modules/angular/index.js");\n/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(angular__WEBPACK_IMPORTED_MODULE_0__);\n\n\n// graph takes dspeed and uspeed, it queries them every second and draws\n// the last 180 secs, it also takes draw as an optional attribute and only\n// draws the graph when it is true, if not given then graph is always drawn\n/* harmony default export */ __webpack_exports__["default"] = (angular__WEBPACK_IMPORTED_MODULE_0___default.a\n .module("webui.directives.dgraph", ["webui.filters.bytes", "webui.services.deps"])\n .directive("dgraph", [\n "$",\n "$filter",\n "$parse",\n function($, filter, parse) {\n var ratio = 0.6;\n var xfmt = "%H:%M:%S";\n var yTicks = 7; // Number of y-axis ticks (sans 0)\n var xticks = 10; // Number of x-axis ticks (sans 0)\n var yTickBase = 10240; // y-axis ticks must be a multiple of this (bytes).\n try {\n // Try to detect AM/PM locales.\n if (!/16/.test(new Date(2000, 0, 1, 16, 7, 9).toLocaleTimeString())) {\n xfmt = "%I:%M:%S %P";\n }\n } catch (ex) {\n // Ignore. Browser does not support toLocaleTimeString.\n }\n\n return function(scope, elem, attrs) {\n var canDraw = false;\n\n var graphSize = 180,\n dspeed = 0,\n uspeed = 0,\n hasSpeeds = false,\n dconf = {\n label: "DOWN",\n data: [],\n color: "#00ff00",\n lines: { show: true }\n },\n uconf = {\n label: "UP",\n data: [],\n color: "#0000ff",\n lines: { show: true }\n };\n\n // hack for the null height for flot elem\n elem.height(elem.width() * ratio);\n var graph = $.plot(elem, [dconf, uconf], {\n legend: {\n show: attrs.nolabel == undefined,\n backgroundOpacity: 0,\n margin: [10, 20],\n labelFormatter: function(label, series) {\n if (!series.data.length) {\n return label;\n }\n return label + " (" + filter("bspeed")(series.data[series.data.length - 1][1]) + ")";\n },\n position: "sw"\n },\n xaxis: {\n show: true,\n mode: "time",\n timeformat: xfmt,\n ticks: +attrs.xticks || xticks, // allow users of the directive to overwride xticks\n minTickSize: [30, "second"] // 180 / 30 == 6\n },\n yaxis: {\n position: "right",\n ticks: function(axis) {\n var res = [0];\n var yt = +attrs.yticks || yticks; // allow users of directive to overwride yticks\n\n var step = yTickBase * Math.max(1, Math.ceil(axis.max / (yt * yTickBase)));\n\n for (var s = 0; s < yt; s++) {\n var c = step * s;\n if (c > axis.max) break;\n\n res.push(step * s);\n }\n\n return res;\n },\n tickFormatter: function(val, axis) {\n return filter("bspeed")(val);\n },\n min: 0\n }\n });\n\n var draw = function() {\n var width = elem.width();\n if (width == 0) return;\n\n elem.height(width * ratio);\n\n graph.setData([dconf, uconf]);\n graph.resize();\n graph.setupGrid();\n graph.draw();\n };\n\n function update() {\n if (!hasSpeeds) {\n return;\n }\n\n // Convoluted way to get the local date timestamp instead of the UTC one.\n var cnt = new Date();\n cnt = Date.UTC(\n cnt.getFullYear(),\n cnt.getMonth(),\n cnt.getDate(),\n cnt.getHours(),\n cnt.g
);
/***/
},
/***/ "./src/js/directives/fileselect.js":
/*!*****************************************!*\
!*** ./src/js/directives/fileselect.js ***!
\*****************************************/
/*! exports provided: default */
/***/ function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval(
'__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! angular */ "./node_modules/angular/index.js");\n/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(angular__WEBPACK_IMPORTED_MODULE_0__);\n\n\n// watches changes in the file upload control (input[file]) and\n// puts the files selected in an attribute\n/* harmony default export */ __webpack_exports__["default"] = (angular__WEBPACK_IMPORTED_MODULE_0___default.a\n .module("webui.directives.fileselect", ["webui.services.deps"])\n .directive("indeterminate", [\n "$parse",\n function syncInput(parse) {\n return {\n require: "ngModel",\n // Restrict the directive so it can only be used as an attribute\n restrict: "A",\n\n link: function link(scope, elem, attr, ngModelCtrl) {\n // Whenever the bound value of the attribute changes we update\n // use upward emit notification for change to prevent the performance penalty bring by $scope.$watch\n var getter = parse(attr["ngModel"]);\n // var setter = getter.assign;\n var children = []; // cache children input\n var cacheSelectedSubInputNumber = 0;\n var cacheNoSelectedSubInputNumber = 0;\n var get = function() {\n return getter(scope);\n };\n // the internal \'indeterminate\' flag on the attached dom element\n var setIndeterminateState = function(newValue) {\n elem.prop("indeterminate", newValue);\n };\n var setModelValueWithSideEffect = function(newVal) {\n // will cause to emit corresponding events\n ngModelCtrl.$setViewValue(newVal);\n ngModelCtrl.$render();\n };\n var passIfIsLeafChild = function(callback) {\n // ensure to execute callback only when this input has one or more subinputs\n return function() {\n if (children.length > 0) {\n callback.apply(this, arguments);\n }\n };\n };\n var passIfNotIsLeafChild = function(callback) {\n // ensure to execute callback only when this input hasn\'t any subinput\n return function() {\n if (children.length === 0) {\n callback.apply(this, arguments);\n }\n };\n };\n var passThroughThisScope = function(callback) {\n // pass through the event from the scope where they sent\n return function(event) {\n if (event.targetScope !== event.currentScope) {\n return callback.apply(this, arguments);\n }\n };\n };\n var passIfIsIndeterminate = function(callback) {\n // pass through the event when this input is indeterminate\n return function() {\n if (!elem.prop("indeterminate")) {\n return callback.apply(this, arguments);\n }\n };\n };\n /* var catchEventOnlyOnce = function (callback) { // only fire once, and stop event\'s propagation\n return function (event) {\n callback.apply(this, arguments);\n return event.stopPropagation();\n };\n }; */\n if (attr["indeterminate"] && parse(attr["indeterminate"]).constant) {\n setIndeterminateState(scope.$eval(attr["indeterminate"])); // set to default value (set in template)\n }\n if (\n attr["indeterminate"] &&\n parse(attr["indeterminate"]).constant &&\n !scope.$eval(attr["indeterminate"])\n ) {\n // when this input wont have subinput, they will only receive parent change and emit child change event\n ngModelCtrl.$viewChangeListeners.push(\n passIfNotIsLeafChild(function() {\n scope.$emit("childSelectedChange", get())
);
/***/
},
/***/ "./src/js/directives/fselect.js":
/*!**************************************!*\
!*** ./src/js/directives/fselect.js ***!
\**************************************/
/*! exports provided: default */
/***/ function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval(
'__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! angular */ "./node_modules/angular/index.js");\n/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(angular__WEBPACK_IMPORTED_MODULE_0__);\n\n\n// watches changes in the file upload control (input[file]) and\n// puts the files selected in an attribute\n/* harmony default export */ __webpack_exports__["default"] = (angular__WEBPACK_IMPORTED_MODULE_0___default.a\n .module("webui.directives.fselect", ["webui.services.deps"])\n .directive("fselect", [\n "$parse",\n function(parse) {\n return function(scope, elem, attrs) {\n var setfiles = parse(attrs.fselect || attrs.files).assign;\n elem\n .bind("change", function() {\n setfiles(scope, elem[0].files);\n })\n .filestyle({\n placeholder: "No file selected"\n });\n };\n }\n ]).name);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvanMvZGlyZWN0aXZlcy9mc2VsZWN0LmpzLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vc3JjL2pzL2RpcmVjdGl2ZXMvZnNlbGVjdC5qcz80MDNmIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhbmd1bGFyIGZyb20gXCJhbmd1bGFyXCI7XG5cbi8vIHdhdGNoZXMgY2hhbmdlcyBpbiB0aGUgZmlsZSB1cGxvYWQgY29udHJvbCAoaW5wdXRbZmlsZV0pIGFuZFxuLy8gcHV0cyB0aGUgZmlsZXMgc2VsZWN0ZWQgaW4gYW4gYXR0cmlidXRlXG5leHBvcnQgZGVmYXVsdCBhbmd1bGFyXG4gIC5tb2R1bGUoXCJ3ZWJ1aS5kaXJlY3RpdmVzLmZzZWxlY3RcIiwgW1wid2VidWkuc2VydmljZXMuZGVwc1wiXSlcbiAgLmRpcmVjdGl2ZShcImZzZWxlY3RcIiwgW1xuICAgIFwiJHBhcnNlXCIsXG4gICAgZnVuY3Rpb24ocGFyc2UpIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbihzY29wZSwgZWxlbSwgYXR0cnMpIHtcbiAgICAgICAgdmFyIHNldGZpbGVzID0gcGFyc2UoYXR0cnMuZnNlbGVjdCB8fCBhdHRycy5maWxlcykuYXNzaWduO1xuICAgICAgICBlbGVtXG4gICAgICAgICAgLmJpbmQoXCJjaGFuZ2VcIiwgZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBzZXRmaWxlcyhzY29wZSwgZWxlbVswXS5maWxlcyk7XG4gICAgICAgICAgfSlcbiAgICAgICAgICAuZmlsZXN0eWxlKHtcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyOiBcIk5vIGZpbGUgc2VsZWN0ZWRcIlxuICAgICAgICAgIH0pO1xuICAgICAgfTtcbiAgICB9XG4gIF0pLm5hbWU7XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/js/directives/fselect.js\n'
);
/***/
},
/***/ "./src/js/directives/textarea.js":
/*!***************************************!*\
!*** ./src/js/directives/textarea.js ***!
\***************************************/
/*! exports provided: default */
/***/ function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval(
'__webpack_require__.r(__webpack_exports__);\nfunction textareaDirective() {\n return {\n restrict: "E",\n link: function(scope, element) {\n element\n .attr("placeholder", function(index, placeholder) {\n if (placeholder !== undefined) {\n return placeholder.replace(/\\\\n/g, "\\n");\n } else {\n return placeholder;\n }\n })\n .bind("keydown keypress", function(event) {\n if (event.ctrlKey && event.which === 13) {\n event.preventDefault();\n scope.$close();\n }\n });\n }\n };\n}\n\n/* harmony default export */ __webpack_exports__["default"] = (textareaDirective);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvanMvZGlyZWN0aXZlcy90ZXh0YXJlYS5qcy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9qcy9kaXJlY3RpdmVzL3RleHRhcmVhLmpzPzNhYTEiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gdGV4dGFyZWFEaXJlY3RpdmUoKSB7XG4gIHJldHVybiB7XG4gICAgcmVzdHJpY3Q6IFwiRVwiLFxuICAgIGxpbms6IGZ1bmN0aW9uKHNjb3BlLCBlbGVtZW50KSB7XG4gICAgICBlbGVtZW50XG4gICAgICAgIC5hdHRyKFwicGxhY2Vob2xkZXJcIiwgZnVuY3Rpb24oaW5kZXgsIHBsYWNlaG9sZGVyKSB7XG4gICAgICAgICAgaWYgKHBsYWNlaG9sZGVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBwbGFjZWhvbGRlci5yZXBsYWNlKC9cXFxcbi9nLCBcIlxcblwiKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHBsYWNlaG9sZGVyO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICAgLmJpbmQoXCJrZXlkb3duIGtleXByZXNzXCIsIGZ1bmN0aW9uKGV2ZW50KSB7XG4gICAgICAgICAgaWYgKGV2ZW50LmN0cmxLZXkgJiYgZXZlbnQud2hpY2ggPT09IDEzKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgc2NvcGUuJGNsb3NlKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IHRleHRhcmVhRGlyZWN0aXZlO1xuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/js/directives/textarea.js\n'
);
/***/
},
/***/ "./src/js/filters/bytes.js":
/*!*********************************!*\
!*** ./src/js/filters/bytes.js ***!
\*********************************/
/*! exports provided: default */
/***/ function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval(
'__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! angular */ "./node_modules/angular/index.js");\n/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(angular__WEBPACK_IMPORTED_MODULE_0__);\n\n\n/* harmony default export */ __webpack_exports__["default"] = (angular__WEBPACK_IMPORTED_MODULE_0___default.a\n .module("webui.filters.bytes", ["webui.services.utils"])\n .filter("blength", [\n "$filter",\n "$utils",\n function(filter, utils) {\n return utils.fmtsize;\n }\n ])\n .filter("bspeed", [\n "$filter",\n "$utils",\n function(filter, utils) {\n return utils.fmtspeed;\n }\n ])\n .filter("time", function() {\n function pad(f) {\n return ("0" + f).substr(-2);\n }\n\n return function(time) {\n time = parseInt(time, 10);\n if (!time || !isFinite(time)) return "∞";\n var secs = time % 60;\n if (time < 60) return secs + "s";\n var mins = Math.floor((time % 3600) / 60);\n if (time < 3600) return pad(mins) + ":" + pad(secs);\n var hrs = Math.floor((time % 86400) / 3600);\n if (time < 86400) return pad(hrs) + ":" + pad(mins) + ":" + pad(secs);\n var days = Math.floor(time / 86400);\n return days + "::" + pad(hrs) + ":" + pad(mins) + ":" + pad(secs);\n };\n }).name);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvanMvZmlsdGVycy9ieXRlcy5qcy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9qcy9maWx0ZXJzL2J5dGVzLmpzPzUxZjUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFuZ3VsYXIgZnJvbSBcImFuZ3VsYXJcIjtcblxuZXhwb3J0IGRlZmF1bHQgYW5ndWxhclxuICAubW9kdWxlKFwid2VidWkuZmlsdGVycy5ieXRlc1wiLCBbXCJ3ZWJ1aS5zZXJ2aWNlcy51dGlsc1wiXSlcbiAgLmZpbHRlcihcImJsZW5ndGhcIiwgW1xuICAgIFwiJGZpbHRlclwiLFxuICAgIFwiJHV0aWxzXCIsXG4gICAgZnVuY3Rpb24oZmlsdGVyLCB1dGlscykge1xuICAgICAgcmV0dXJuIHV0aWxzLmZtdHNpemU7XG4gICAgfVxuICBdKVxuICAuZmlsdGVyKFwiYnNwZWVkXCIsIFtcbiAgICBcIiRmaWx0ZXJcIixcbiAgICBcIiR1dGlsc1wiLFxuICAgIGZ1bmN0aW9uKGZpbHRlciwgdXRpbHMpIHtcbiAgICAgIHJldHVybiB1dGlscy5mbXRzcGVlZDtcbiAgICB9XG4gIF0pXG4gIC5maWx0ZXIoXCJ0aW1lXCIsIGZ1bmN0aW9uKCkge1xuICAgIGZ1bmN0aW9uIHBhZChmKSB7XG4gICAgICByZXR1cm4gKFwiMFwiICsgZikuc3Vic3RyKC0yKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZnVuY3Rpb24odGltZSkge1xuICAgICAgdGltZSA9IHBhcnNlSW50KHRpbWUsIDEwKTtcbiAgICAgIGlmICghdGltZSB8fCAhaXNGaW5pdGUodGltZSkpIHJldHVybiBcIuKInlwiO1xuICAgICAgdmFyIHNlY3MgPSB0aW1lICUgNjA7XG4gICAgICBpZiAodGltZSA8IDYwKSByZXR1cm4gc2VjcyArIFwic1wiO1xuICAgICAgdmFyIG1pbnMgPSBNYXRoLmZsb29yKCh0aW1lICUgMzYwMCkgLyA2MCk7XG4gICAgICBpZiAodGltZSA8IDM2MDApIHJldHVybiBwYWQobWlucykgKyBcIjpcIiArIHBhZChzZWNzKTtcbiAgICAgIHZhciBocnMgPSBNYXRoLmZsb29yKCh0aW1lICUgODY0MDApIC8gMzYwMCk7XG4gICAgICBpZiAodGltZSA8IDg2NDAwKSByZXR1cm4gcGFkKGhycykgKyBcIjpcIiArIHBhZChtaW5zKSArIFwiOlwiICsgcGFkKHNlY3MpO1xuICAgICAgdmFyIGRheXMgPSBNYXRoLmZsb29yKHRpbWUgLyA4NjQwMCk7XG4gICAgICByZXR1cm4gZGF5cyArIFwiOjpcIiArIHBhZChocnMpICsgXCI6XCIgKyBwYWQobWlucykgKyBcIjpcIiArIHBhZChzZWNzKTtcbiAgICB9O1xuICB9KS5uYW1lO1xuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/js/filters/bytes.js\n'
);
/***/
},
/***/ "./src/js/filters/url.js":
/*!*******************************!*\
!*** ./src/js/filters/url.js ***!
\*******************************/
/*! exports provided: default */
/***/ function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval(
'__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! angular */ "./node_modules/angular/index.js");\n/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(angular__WEBPACK_IMPORTED_MODULE_0__);\n\n\n/* harmony default export */ __webpack_exports__["default"] = (angular__WEBPACK_IMPORTED_MODULE_0___default.a\n .module("webui.filters.url", ["webui.services.utils"])\n .filter("encodeURI", function() {\n return window.encodeURI;\n }).name);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvanMvZmlsdGVycy91cmwuanMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvanMvZmlsdGVycy91cmwuanM/OGNmNSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYW5ndWxhciBmcm9tIFwiYW5ndWxhclwiO1xuXG5leHBvcnQgZGVmYXVsdCBhbmd1bGFyXG4gIC5tb2R1bGUoXCJ3ZWJ1aS5maWx0ZXJzLnVybFwiLCBbXCJ3ZWJ1aS5zZXJ2aWNlcy51dGlsc1wiXSlcbiAgLmZpbHRlcihcImVuY29kZVVSSVwiLCBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gd2luZG93LmVuY29kZVVSSTtcbiAgfSkubmFtZTtcbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/js/filters/url.js\n'
);
/***/
},
/***/ "./src/js/libs/angularui-bootstrap-tpls.min.js":
/*!*****************************************************!*\
!*** ./src/js/libs/angularui-bootstrap-tpls.min.js ***!
\*****************************************************/
/*! no static exports found */
/***/ function(module, exports) {
eval(
'/*\n * angular-ui-bootstrap\n * http://angular-ui.github.io/bootstrap/\n\n * Version: 0.13.4 - 2015-09-03\n * License: MIT\n */\nangular.module("ui.bootstrap",["ui.bootstrap.tpls","ui.bootstrap.collapse","ui.bootstrap.accordion","ui.bootstrap.alert","ui.bootstrap.bindHtml","ui.bootstrap.buttons","ui.bootstrap.carousel","ui.bootstrap.dateparser","ui.bootstrap.position","ui.bootstrap.datepicker","ui.bootstrap.dropdown","ui.bootstrap.modal","ui.bootstrap.pagination","ui.bootstrap.tooltip","ui.bootstrap.popover","ui.bootstrap.progressbar","ui.bootstrap.rating","ui.bootstrap.tabs","ui.bootstrap.timepicker","ui.bootstrap.transition","ui.bootstrap.typeahead"]),angular.module("ui.bootstrap.tpls",["template/accordion/accordion-group.html","template/accordion/accordion.html","template/alert/alert.html","template/carousel/carousel.html","template/carousel/slide.html","template/datepicker/datepicker.html","template/datepicker/day.html","template/datepicker/month.html","template/datepicker/popup.html","template/datepicker/year.html","template/modal/backdrop.html","template/modal/window.html","template/pagination/pager.html","template/pagination/pagination.html","template/tooltip/tooltip-html-popup.html","template/tooltip/tooltip-html-unsafe-popup.html","template/tooltip/tooltip-popup.html","template/tooltip/tooltip-template-popup.html","template/popover/popover-html.html","template/popover/popover-template.html","template/popover/popover.html","template/progressbar/bar.html","template/progressbar/progress.html","template/progressbar/progressbar.html","template/rating/rating.html","template/tabs/tab.html","template/tabs/tabset.html","template/timepicker/timepicker.html","template/typeahead/typeahead-match.html","template/typeahead/typeahead-popup.html"]),angular.module("ui.bootstrap.collapse",[]).directive("collapse",["$animate",function(a){return{link:function(b,c,d){function e(){c.removeClass("collapse").addClass("collapsing").attr("aria-expanded",!0).attr("aria-hidden",!1),a.addClass(c,"in",{to:{height:c[0].scrollHeight+"px"}}).then(f)}function f(){c.removeClass("collapsing"),c.css({height:"auto"})}function g(){return c.hasClass("collapse")||c.hasClass("in")?(c.css({height:c[0].scrollHeight+"px"}).removeClass("collapse").addClass("collapsing").attr("aria-expanded",!1).attr("aria-hidden",!0),void a.removeClass(c,"in",{to:{height:"0"}}).then(h)):h()}function h(){c.css({height:"0"}),c.removeClass("collapsing"),c.addClass("collapse")}b.$watch(d.collapse,function(a){a?g():e()})}}}]),angular.module("ui.bootstrap.accordion",["ui.bootstrap.collapse"]).constant("accordionConfig",{closeOthers:!0}).controller("AccordionController",["$scope","$attrs","accordionConfig",function(a,b,c){this.groups=[],this.closeOthers=function(d){var e=angular.isDefined(b.closeOthers)?a.$eval(b.closeOthers):c.closeOthers;e&&angular.forEach(this.groups,function(a){a!==d&&(a.isOpen=!1)})},this.addGroup=function(a){var b=this;this.groups.push(a),a.$on("$destroy",function(c){b.removeGroup(a)})},this.removeGroup=function(a){var b=this.groups.indexOf(a);-1!==b&&this.groups.splice(b,1)}}]).directive("accordion",function(){return{restrict:"EA",controller:"AccordionController",controllerAs:"accordion",transclude:!0,replace:!1,templateUrl:function(a,b){return b.templateUrl||"template/accordion/accordion.html"}}}).directive("accordionGroup",function(){return{require:"^accordion",restrict:"EA",transclude:!0,replace:!0,templateUrl:function(a,b){return b.templateUrl||"template/accordion/accordion-group.html"},scope:{heading:"@",isOpen:"=?",isDisabled:"=?"},controller:function(){this.setHeading=function(a){this.heading=a}},link:function(a,b,c,d){d.addGroup(a),a.openClass=c.openClass||"panel-open",a.panelClass=c.panelClass,a.$watch("isOpen",function(c){b.toggleClass(a.openClass,c),c&&d.closeOthers(a)}),a.toggleOpen=function(b){a.isDisabled||b&&32!==b.which||(a.isOpen=!a.isOpen)}}}}).directive("accordionHeading",function(){return{restrict:"EA",transclude:!0,template:"",replace:!0,require:"^accordionGroup",link:function(a,b,c,d,e){d.setHeading(e(a,angular.noop))}}}).di
);
/***/
},
/***/ "./src/js/libs/bootstrap-filestyle.js":
/*!********************************************!*\
!*** ./src/js/libs/bootstrap-filestyle.js ***!
\********************************************/
/*! no static exports found */
/***/ function(module, exports, __webpack_require__) {
eval(
'/* WEBPACK VAR INJECTION */(function(__webpack_provided_window_dot_jQuery) {/*\n * bootstrap-filestyle\n * doc: http://markusslima.github.io/bootstrap-filestyle/\n * github: https://github.com/markusslima/bootstrap-filestyle\n *\n * Copyright (c) 2014 Markus Vinicius da Silva Lima\n * Version 1.2.1\n * Licensed under the MIT license.\n */\n(function($) {\n "use strict";\n\n var nextId = 0;\n\n var Filestyle = function(element, options) {\n this.options = options;\n this.$elementFilestyle = [];\n this.$element = $(element);\n };\n\n Filestyle.prototype = {\n clear: function() {\n this.$element.val("");\n this.$elementFilestyle.find(":text").val("");\n this.$elementFilestyle.find(".badge").remove();\n },\n\n destroy: function() {\n this.$element.removeAttr("style").removeData("filestyle");\n this.$elementFilestyle.remove();\n },\n\n disabled: function(value) {\n if (value === true) {\n if (!this.options.disabled) {\n this.$element.attr("disabled", "true");\n this.$elementFilestyle.find("label").attr("disabled", "true");\n this.options.disabled = true;\n }\n } else if (value === false) {\n if (this.options.disabled) {\n this.$element.removeAttr("disabled");\n this.$elementFilestyle.find("label").removeAttr("disabled");\n this.options.disabled = false;\n }\n } else {\n return this.options.disabled;\n }\n },\n\n buttonBefore: function(value) {\n if (value === true) {\n if (!this.options.buttonBefore) {\n this.options.buttonBefore = true;\n if (this.options.input) {\n this.$elementFilestyle.remove();\n this.constructor();\n this.pushNameFiles();\n }\n }\n } else if (value === false) {\n if (this.options.buttonBefore) {\n this.options.buttonBefore = false;\n if (this.options.input) {\n this.$elementFilestyle.remove();\n this.constructor();\n this.pushNameFiles();\n }\n }\n } else {\n return this.options.buttonBefore;\n }\n },\n\n icon: function(value) {\n if (value === true) {\n if (!this.options.icon) {\n this.options.icon = true;\n this.$elementFilestyle.find("label").prepend(this.htmlIcon());\n }\n } else if (value === false) {\n if (this.options.icon) {\n this.options.icon = false;\n this.$elementFilestyle.find(".icon-span-filestyle").remove();\n }\n } else {\n return this.options.icon;\n }\n },\n\n input: function(value) {\n if (value === true) {\n if (!this.options.input) {\n this.options.input = true;\n\n if (this.options.buttonBefore) {\n this.$elementFilestyle.append(this.htmlInput());\n } else {\n this.$elementFilestyle.prepend(this.htmlInput());\n }\n\n this.$elementFilestyle.find(".badge").remove();\n\n this.pushNameFiles();\n\n this.$elementFilestyle.find(".group-span-filestyle").addClass("input-group-btn");\n }\n } else if (value === false) {\n if (this.options.input) {\n this.options.input = false;\n this.$elementFilestyle.find(":text").remove();\n var files = this.pushNameFiles();\n if (files.length > 0 && this.options.badge) {\n this.$elementFilestyle\n .find("label")\n .append(\' <span class="badge">\' + files.length + "</span>");\n }\n this.$elementFilestyle.find(".group-span-filestyle").removeClass("input-group-btn");\n }\n } else {\n return this.options.input;\n }\n },\n\n size: function(value) {\n if (value !== undefined) {\n var btn = this.$elementFilestyle.find("label"),\n input = this.$elementFilestyle.find("input");\n\n btn.removeClass("btn-lg btn-sm");\n input.removeClass("input-lg in
);
/***/
},
/***/ "./src/js/libs/jquery.flot.min.js":
/*!****************************************!*\
!*** ./src/js/libs/jquery.flot.min.js ***!
\****************************************/
/*! no static exports found */
/***/ function(module, exports, __webpack_require__) {
eval(
'/* WEBPACK VAR INJECTION */(function(jQuery) {/* Javascript plotting library for jQuery, version 0.8.3.\n\nCopyright (c) 2007-2014 IOLA and Ole Laursen.\nLicensed under the MIT license.\n\n*/\n(function($){$.color={};$.color.make=function(r,g,b,a){var o={};o.r=r||0;o.g=g||0;o.b=b||0;o.a=a!=null?a:1;o.add=function(c,d){for(var i=0;i<c.length;++i)o[c.charAt(i)]+=d;return o.normalize()};o.scale=function(c,f){for(var i=0;i<c.length;++i)o[c.charAt(i)]*=f;return o.normalize()};o.toString=function(){if(o.a>=1){return"rgb("+[o.r,o.g,o.b].join(",")+")"}else{return"rgba("+[o.r,o.g,o.b,o.a].join(",")+")"}};o.normalize=function(){function clamp(min,value,max){return value<min?min:value>max?max:value}o.r=clamp(0,parseInt(o.r),255);o.g=clamp(0,parseInt(o.g),255);o.b=clamp(0,parseInt(o.b),255);o.a=clamp(0,o.a,1);return o};o.clone=function(){return $.color.make(o.r,o.b,o.g,o.a)};return o.normalize()};$.color.extract=function(elem,css){var c;do{c=elem.css(css).toLowerCase();if(c!=""&&c!="transparent")break;elem=elem.parent()}while(elem.length&&!$.nodeName(elem.get(0),"body"));if(c=="rgba(0, 0, 0, 0)")c="transparent";return $.color.parse(c)};$.color.parse=function(str){var res,m=$.color.make;if(res=/rgb\\(\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*\\)/.exec(str))return m(parseInt(res[1],10),parseInt(res[2],10),parseInt(res[3],10));if(res=/rgba\\(\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*,\\s*([0-9]{1,3})\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)\\s*\\)/.exec(str))return m(parseInt(res[1],10),parseInt(res[2],10),parseInt(res[3],10),parseFloat(res[4]));if(res=/rgb\\(\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*\\)/.exec(str))return m(parseFloat(res[1])*2.55,parseFloat(res[2])*2.55,parseFloat(res[3])*2.55);if(res=/rgba\\(\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)\\%\\s*,\\s*([0-9]+(?:\\.[0-9]+)?)\\s*\\)/.exec(str))return m(parseFloat(res[1])*2.55,parseFloat(res[2])*2.55,parseFloat(res[3])*2.55,parseFloat(res[4]));if(res=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(str))return m(parseInt(res[1],16),parseInt(res[2],16),parseInt(res[3],16));if(res=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(str))return m(parseInt(res[1]+res[1],16),parseInt(res[2]+res[2],16),parseInt(res[3]+res[3],16));var name=$.trim(str).toLowerCase();if(name=="transparent")return m(255,255,255,0);else{res=lookupColors[name]||[0,0,0];return m(res[0],res[1],res[2])}};var lookupColors={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0]}})(jQuery);(function($){var hasOwnProperty=Object.prototype.hasOwnProperty;if(!$.fn.detach){$.fn.detach=function(){return this.each(function(){if(this.parentNode){this.parentNode.removeChild(this)}})}}function Canvas(cls,container){var element=container.children("."+cls)[0];if(element==null){element=document.createElement("canvas");element.className=cls;$(element).css({direction:"ltr",position:"absolute",left:0,top:0}).appendTo(container);if(!element.getContext){if(window.G_vmlCanvasManager){element=window.G_vmlCanvasManager.initElement(element)}else{throw new Error("Canvas is not available. If you\'re using IE with a fall-back such as Excanvas, then there\'s either a mistake in your conditional include, or t
);
/***/
},
/***/ "./src/js/libs/jquery.flot.time.min.js":
/*!*********************************************!*\
!*** ./src/js/libs/jquery.flot.time.min.js ***!
\*********************************************/
/*! no static exports found */
/***/ function(module, exports, __webpack_require__) {
eval(
'/* WEBPACK VAR INJECTION */(function(jQuery) {/* Javascript plotting library for jQuery, version 0.8.3.\n\nCopyright (c) 2007-2014 IOLA and Ole Laursen.\nLicensed under the MIT license.\n\n*/\n(function($){var options={xaxis:{timezone:null,timeformat:null,twelveHourClock:false,monthNames:null}};function floorInBase(n,base){return base*Math.floor(n/base)}function formatDate(d,fmt,monthNames,dayNames){if(typeof d.strftime=="function"){return d.strftime(fmt)}var leftPad=function(n,pad){n=""+n;pad=""+(pad==null?"0":pad);return n.length==1?pad+n:n};var r=[];var escape=false;var hours=d.getHours();var isAM=hours<12;if(monthNames==null){monthNames=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]}if(dayNames==null){dayNames=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]}var hours12;if(hours>12){hours12=hours-12}else if(hours==0){hours12=12}else{hours12=hours}for(var i=0;i<fmt.length;++i){var c=fmt.charAt(i);if(escape){switch(c){case"a":c=""+dayNames[d.getDay()];break;case"b":c=""+monthNames[d.getMonth()];break;case"d":c=leftPad(d.getDate());break;case"e":c=leftPad(d.getDate()," ");break;case"h":case"H":c=leftPad(hours);break;case"I":c=leftPad(hours12);break;case"l":c=leftPad(hours12," ");break;case"m":c=leftPad(d.getMonth()+1);break;case"M":c=leftPad(d.getMinutes());break;case"q":c=""+(Math.floor(d.getMonth()/3)+1);break;case"S":c=leftPad(d.getSeconds());break;case"y":c=leftPad(d.getFullYear()%100);break;case"Y":c=""+d.getFullYear();break;case"p":c=isAM?""+"am":""+"pm";break;case"P":c=isAM?""+"AM":""+"PM";break;case"w":c=""+d.getDay();break}r.push(c);escape=false}else{if(c=="%"){escape=true}else{r.push(c)}}}return r.join("")}function makeUtcWrapper(d){function addProxyMethod(sourceObj,sourceMethod,targetObj,targetMethod){sourceObj[sourceMethod]=function(){return targetObj[targetMethod].apply(targetObj,arguments)}}var utc={date:d};if(d.strftime!=undefined){addProxyMethod(utc,"strftime",d,"strftime")}addProxyMethod(utc,"getTime",d,"getTime");addProxyMethod(utc,"setTime",d,"setTime");var props=["Date","Day","FullYear","Hours","Milliseconds","Minutes","Month","Seconds"];for(var p=0;p<props.length;p++){addProxyMethod(utc,"get"+props[p],d,"getUTC"+props[p]);addProxyMethod(utc,"set"+props[p],d,"setUTC"+props[p])}return utc}function dateGenerator(ts,opts){if(opts.timezone=="browser"){return new Date(ts)}else if(!opts.timezone||opts.timezone=="utc"){return makeUtcWrapper(new Date(ts))}else if(typeof timezoneJS!="undefined"&&typeof timezoneJS.Date!="undefined"){var d=new timezoneJS.Date;d.setTimezone(opts.timezone);d.setTime(ts);return d}else{return makeUtcWrapper(new Date(ts))}}var timeUnitSize={second:1e3,minute:60*1e3,hour:60*60*1e3,day:24*60*60*1e3,month:30*24*60*60*1e3,quarter:3*30*24*60*60*1e3,year:365.2425*24*60*60*1e3};var baseSpec=[[1,"second"],[2,"second"],[5,"second"],[10,"second"],[30,"second"],[1,"minute"],[2,"minute"],[5,"minute"],[10,"minute"],[30,"minute"],[1,"hour"],[2,"hour"],[4,"hour"],[8,"hour"],[12,"hour"],[1,"day"],[2,"day"],[3,"day"],[.25,"month"],[.5,"month"],[1,"month"],[2,"month"]];var specMonths=baseSpec.concat([[3,"month"],[6,"month"],[1,"year"]]);var specQuarters=baseSpec.concat([[1,"quarter"],[2,"quarter"],[1,"year"]]);function init(plot){plot.hooks.processOptions.push(function(plot,options){$.each(plot.getAxes(),function(axisName,axis){var opts=axis.options;if(opts.mode=="time"){axis.tickGenerator=function(axis){var ticks=[];var d=dateGenerator(axis.min,opts);var minSize=0;var spec=opts.tickSize&&opts.tickSize[1]==="quarter"||opts.minTickSize&&opts.minTickSize[1]==="quarter"?specQuarters:specMonths;if(opts.minTickSize!=null){if(typeof opts.tickSize=="number"){minSize=opts.tickSize}else{minSize=opts.minTickSize[0]*timeUnitSize[opts.minTickSize[1]]}}for(var i=0;i<spec.length-1;++i){if(axis.delta<(spec[i][0]*timeUnitSize[spec[i][1]]+spec[i+1][0]*timeUnitSize[spec[i+1][1]])/2&&spec[i][0]*timeUnitSize[spec[i][1]]>=minSize){break}}var size=spec[i][0];var unit=spec[i][1];if(unit=="year"){if(opts.minTickSize!=null&&opts.minTickSize[1]=="year"){size=Math.floor(opts.minTickSize[0])}el
);
/***/
},
/***/ "./src/js/services/alerts.js":
/*!***********************************!*\
!*** ./src/js/services/alerts.js ***!
\***********************************/
/*! exports provided: default */
/***/ function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval(
'__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! angular */ "./node_modules/angular/index.js");\n/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(angular__WEBPACK_IMPORTED_MODULE_0__);\n\n\n/* harmony default export */ __webpack_exports__["default"] = (angular__WEBPACK_IMPORTED_MODULE_0___default.a.module("webui.services.alerts", ["webui.services.deps"]).factory("$alerts", [\n "$_",\n function(_) {\n var alerters = [];\n return {\n addAlert: function() {\n var args = Array.prototype.slice.call(arguments, 0);\n setTimeout(function() {\n _.each(alerters, function(alt) {\n alt.apply({}, args);\n });\n }, 0);\n },\n addAlerter: function(cb) {\n alerters.push(cb);\n },\n // a simple function for debugging\n log: function(msg) {\n this.addAlert(msg, "info");\n }\n };\n }\n]).name);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvanMvc2VydmljZXMvYWxlcnRzLmpzLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vc3JjL2pzL3NlcnZpY2VzL2FsZXJ0cy5qcz84NzBiIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhbmd1bGFyIGZyb20gXCJhbmd1bGFyXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGFuZ3VsYXIubW9kdWxlKFwid2VidWkuc2VydmljZXMuYWxlcnRzXCIsIFtcIndlYnVpLnNlcnZpY2VzLmRlcHNcIl0pLmZhY3RvcnkoXCIkYWxlcnRzXCIsIFtcbiAgXCIkX1wiLFxuICBmdW5jdGlvbihfKSB7XG4gICAgdmFyIGFsZXJ0ZXJzID0gW107XG4gICAgcmV0dXJuIHtcbiAgICAgIGFkZEFsZXJ0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIGFyZ3MgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsIDApO1xuICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuICAgICAgICAgIF8uZWFjaChhbGVydGVycywgZnVuY3Rpb24oYWx0KSB7XG4gICAgICAgICAgICBhbHQuYXBwbHkoe30sIGFyZ3MpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9LCAwKTtcbiAgICAgIH0sXG4gICAgICBhZGRBbGVydGVyOiBmdW5jdGlvbihjYikge1xuICAgICAgICBhbGVydGVycy5wdXNoKGNiKTtcbiAgICAgIH0sXG4gICAgICAvLyBhIHNpbXBsZSBmdW5jdGlvbiBmb3IgZGVidWdnaW5nXG4gICAgICBsb2c6IGZ1bmN0aW9uKG1zZykge1xuICAgICAgICB0aGlzLmFkZEFsZXJ0KG1zZywgXCJpbmZvXCIpO1xuICAgICAgfVxuICAgIH07XG4gIH1cbl0pLm5hbWU7XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/js/services/alerts.js\n'
);
/***/
},
/***/ "./src/js/services/base64.js":
/*!***********************************!*\
!*** ./src/js/services/base64.js ***!
\***********************************/
/*! exports provided: default */
/***/ function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval(
'__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! angular */ "./node_modules/angular/index.js");\n/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(angular__WEBPACK_IMPORTED_MODULE_0__);\n\n\n/* harmony default export */ __webpack_exports__["default"] = (angular__WEBPACK_IMPORTED_MODULE_0___default.a.module("webui.services.base64", []).factory("$base64", [\n function() {\n var obj = {};\n var a64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",\n a256 = {\n indexOf: function(c) {\n return c.charCodeAt(0);\n },\n charAt: String.fromCharCode\n };\n\n function code(s, discard, alpha, beta, w1, w2) {\n s = String(s);\n var b = 0,\n x = "",\n i,\n c,\n bs = 1,\n sb = 1,\n length = s.length,\n tmp;\n for (i = 0; i < length || (!discard && sb > 1); i += 1) {\n b *= w1;\n bs *= w1;\n if (i < length) {\n c = alpha.indexOf(s.charAt(i));\n if (c <= -1 || c >= w1) {\n throw new RangeError();\n }\n sb *= w1;\n b += c;\n }\n while (bs >= w2) {\n bs /= w2;\n if (sb > 1) {\n tmp = b;\n b %= bs;\n x += beta.charAt((tmp - b) / bs);\n sb /= w2;\n }\n }\n }\n return x;\n }\n\n obj.btoa = function(s) {\n s = code(s, false, a256, a64, 256, 64);\n return s + "====".slice(s.length % 4 || 4);\n };\n\n obj.atob = function(s) {\n var i;\n s = String(s).split("=");\n for (i = s.length - 1; i >= 0; i -= 1) {\n if (s[i].length % 4 === 1) {\n throw new RangeError();\n }\n s[i] = code(s[i], true, a64, a256, 64, 256);\n }\n return s.join("");\n };\n\n return obj;\n }\n]).name);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvanMvc2VydmljZXMvYmFzZTY0LmpzLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vc3JjL2pzL3NlcnZpY2VzL2Jhc2U2NC5qcz9kM2ZkIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhbmd1bGFyIGZyb20gXCJhbmd1bGFyXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGFuZ3VsYXIubW9kdWxlKFwid2VidWkuc2VydmljZXMuYmFzZTY0XCIsIFtdKS5mYWN0b3J5KFwiJGJhc2U2NFwiLCBbXG4gIGZ1bmN0aW9uKCkge1xuICAgIHZhciBvYmogPSB7fTtcbiAgICB2YXIgYTY0ID0gXCJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvXCIsXG4gICAgICBhMjU2ID0ge1xuICAgICAgICBpbmRleE9mOiBmdW5jdGlvbihjKSB7XG4gICAgICAgICAgcmV0dXJuIGMuY2hhckNvZGVBdCgwKTtcbiAgICAgICAgfSxcbiAgICAgICAgY2hhckF0OiBTdHJpbmcuZnJvbUNoYXJDb2RlXG4gICAgICB9O1xuXG4gICAgZnVuY3Rpb24gY29kZShzLCBkaXNjYXJkLCBhbHBoYSwgYmV0YSwgdzEsIHcyKSB7XG4gICAgICBzID0gU3RyaW5nKHMpO1xuICAgICAgdmFyIGIgPSAwLFxuICAgICAgICB4ID0gXCJcIixcbiAgICAgICAgaSxcbiAgICAgICAgYyxcbiAgICAgICAgYnMgPSAxLFxuICAgICAgICBzYiA9IDEsXG4gICAgICAgIGxlbmd0aCA9IHMubGVuZ3RoLFxuICAgICAgICB0bXA7XG4gICAgICBmb3IgKGkgPSAwOyBpIDwgbGVuZ3RoIHx8ICghZGlzY2FyZCAmJiBzYiA+IDEpOyBpICs9IDEpIHtcbiAgICAgICAgYiAqPSB3MTtcbiAgICAgICAgYnMgKj0gdzE7XG4gICAgICAgIGlmIChpIDwgbGVuZ3RoKSB7XG4gICAgICAgICAgYyA9IGFscGhhLmluZGV4T2Yocy5jaGFyQXQoaSkpO1xuICAgICAgICAgIGlmIChjIDw9IC0xIHx8IGMgPj0gdzEpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBSYW5nZUVycm9yKCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHNiICo9IHcxO1xuICAgICAgICAgIGIgKz0gYztcbiAgICAgICAgfVxuICAgICAgICB3aGlsZSAoYnMgPj0gdzIpIHtcbiAgICAgICAgICBicyAvPSB3MjtcbiAgICAgICAgICBpZiAoc2IgPiAxKSB7XG4gICAgICAgICAgICB0bXAgPSBiO1xuICAgICAgICAgICAgYiAlPSBicztcbiAgICAgICAgICAgIHggKz0gYmV0YS5jaGFyQXQoKHRtcCAtIGIpIC8gYnMpO1xuICAgICAgICAgICAgc2IgLz0gdzI7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4geDtcbiAgICB9XG5cbiAgICBvYmouYnRvYSA9IGZ1bmN0aW9uKHMpIHtcbiAgICAgIHMgPSBjb2RlKHMsIGZhbHNlLCBhMjU2LCBhNjQsIDI1NiwgNjQpO1xuICAgICAgcmV0dXJuIHMgKyBcIj09PT1cIi5zbGljZShzLmxlbmd0aCAlIDQgfHwgNCk7XG4gICAgfTtcblxuICAgIG9iai5hdG9iID0gZnVuY3Rpb24ocykge1xuICAgICAgdmFyIGk7XG4gICAgICBzID0gU3RyaW5nKHMpLnN
);
/***/
},
/***/ "./src/js/services/configuration.js":
/*!******************************************!*\
!*** ./src/js/services/configuration.js ***!
\******************************************/
/*! exports provided: default */
/***/ function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval(
'__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! angular */ "./node_modules/angular/index.js");\n/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(angular__WEBPACK_IMPORTED_MODULE_0__);\n\n\n/* harmony default export */ __webpack_exports__["default"] = (angular__WEBPACK_IMPORTED_MODULE_0___default.a\n .module("webui.services.configuration", [])\n .constant("$name", "Aria2 WebUI") // name used across the entire UI\n .constant("$titlePattern", "active: {active} - waiting: {waiting} - stopped: {stopped} — {name}")\n .constant("$pageSize", 11) // number of downloads shown before pagination kicks in\n .constant("$authconf", {\n // default authentication configuration, never fill it in case the webui is hosted in public IP as it can be compromised\n host: location.protocol.startsWith("http") ? location.hostname : "localhost",\n path: "/jsonrpc",\n port: 6800,\n encrypt: false,\n auth: {\n // either add the token field or the user and pass field, not both.\n // token: \'$YOUR_SECRET_TOKEN$\'\n /*-----------------------------*/\n // user: \'*YOUR_USERNAME*\',\n // pass: \'*YOUR_SECRET_PASS*\'\n },\n directURL: "" // If supplied, links will be created to enable direct download from the aria2 server, requires appropriate webserver to be configured\n })\n .constant("$enable", {\n torrent: true, // bittorrent support only enabled if supported by aria2 build, set to false otherwise to permanently disable it\n\n metalink: true, // metalink support only enabled if supported by aria2 build, set to false to permanently disable it\n\n sidebar: {\n // configuration related to the sidebar next to the list of downloads\n show: true, // set to false to completely hide the sidebar. Other elements inside will be automatically hidden\n\n stats: true, // set to false to hide the global statistic section (contains the speed graph for now)\n\n filters: true, // set to false to hide the Download Filters\n\n starredProps: true // only shown when at least one property is added to the starred list, set to false to permanently hide the Quick Access Settings inside the sidebar\n }\n })\n .constant("$starredProps", [\n // default list of Quick Access Properties. Can be overridden by making modification through the Global Settings dialog\n // go to Global Settings dialog to see their description\n "dir",\n "conf-path",\n "auto-file-renaming",\n "max-connection-per-server"\n ])\n .constant("$downloadProps", [\n // Similar to starred Quick Access properties but for adding new downloads.\n // go to Advance Download Options when adding a new download to view the list of possible options\n "header",\n "http-user",\n "http-passwd",\n "pause",\n "dir",\n "max-connection-per-server"\n ])\n .constant("$globalTimeout", 1000).name); // interval to update the individual downloads\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvanMvc2VydmljZXMvY29uZmlndXJhdGlvbi5qcy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9qcy9zZXJ2aWNlcy9jb25maWd1cmF0aW9uLmpzP2EyOWEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFuZ3VsYXIgZnJvbSBcImFuZ3VsYXJcIjtcblxuZXhwb3J0IGRlZmF1bHQgYW5ndWxhclxuICAubW9kdWxlKFwid2VidWkuc2VydmljZXMuY29uZmlndXJhdGlvblwiLCBbXSlcbiAgLmNvbnN0YW50KFwiJG5hbWVcIiwgXCJBcmlhMiBXZWJVSVwiKSAvLyBuYW1lIHVzZWQgYWNyb3NzIHRoZSBlbnRpcmUgVUlcbiAgLmNvbnN0YW50KFwiJHRpdGxlUGF0dGVyblwiLCBcImFjdGl2ZToge2FjdGl2ZX0gLSB3YWl0aW5nOiB7d2FpdGluZ30gLSBzdG9wcGVkOiB7c3RvcHBlZH0g4oCUIHtuYW1lfVwiKVxuICAuY29uc3RhbnQoXCIkcGFnZVNpemVcIiwgMTEpIC8vIG51bWJlciBvZiBkb3dubG9hZHMgc2hvd24gYmVmb3JlIHBhZ2luYXRpb24ga2lja3MgaW5cbiAgLmNvbnN0YW50KFwiJGF1dGhjb25mXCIsIHtcbiAgICAvLyBkZWZhdWx0IGF1dGhlbnRpY2F0aW9uIGNvbmZpZ3VyYXRpb24sIG5ldmVyIGZpbGwgaXQgaW4gY2FzZSB0aGUgd2VidWkgaXMgaG9zdGVkIGluIHB1YmxpYyBJUCBhcyBpdCBjYW4gYmUgY29tcHJvbWlzZWRcbiAgICBob3N0OiBsb2NhdGl
);
/***/
},
/***/ "./src/js/services/deps.js":
/*!*********************************!*\
!*** ./src/js/services/deps.js ***!
\*********************************/
/*! exports provided: default */
/***/ function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval(
'__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! angular */ "./node_modules/angular/index.js");\n/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(angular__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash */ "./node_modules/lodash/lodash.js");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_2__);\n\n\n\n\n/* harmony default export */ __webpack_exports__["default"] = (angular__WEBPACK_IMPORTED_MODULE_0___default.a\n .module("webui.services.deps", [])\n .value("$", jquery__WEBPACK_IMPORTED_MODULE_1___default.a)\n .value("$_", lodash__WEBPACK_IMPORTED_MODULE_2___default.a)\n .value("$json", JSON).name);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvanMvc2VydmljZXMvZGVwcy5qcy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9qcy9zZXJ2aWNlcy9kZXBzLmpzPzZiNjQiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFuZ3VsYXIgZnJvbSBcImFuZ3VsYXJcIjtcbmltcG9ydCAkIGZyb20gXCJqcXVlcnlcIjtcbmltcG9ydCBfIGZyb20gXCJsb2Rhc2hcIjtcblxuZXhwb3J0IGRlZmF1bHQgYW5ndWxhclxuICAubW9kdWxlKFwid2VidWkuc2VydmljZXMuZGVwc1wiLCBbXSlcbiAgLnZhbHVlKFwiJFwiLCAkKVxuICAudmFsdWUoXCIkX1wiLCBfKVxuICAudmFsdWUoXCIkanNvblwiLCBKU09OKS5uYW1lO1xuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/js/services/deps.js\n'
);
/***/
},
/***/ "./src/js/services/errors.js":
/*!***********************************!*\
!*** ./src/js/services/errors.js ***!
\***********************************/
/*! exports provided: default */
/***/ function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval(
'__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! angular */ "./node_modules/angular/index.js");\n/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(angular__WEBPACK_IMPORTED_MODULE_0__);\n\n\n/* harmony default export */ __webpack_exports__["default"] = (angular__WEBPACK_IMPORTED_MODULE_0___default.a\n .module("webui.services.errors", [])\n .value("$getErrorStatus", function(errorCode) {\n // normalize it to 0\n errorCode = errorCode - 1;\n switch (errorCode) {\n case 0:\n return "download was unsuccessful";\n case 1:\n return "unknown error occurred";\n case 2:\n return "time out occurred";\n case 3:\n return "resource was not found";\n case 4:\n return \'aria2 saw the specified number of "resource not found" error. See --max-file-not-found option\';\n case 5:\n return "download aborted because download speed was too slow. See --lowest-speed-limit option";\n case 6:\n return "there were unfinished downloads";\n case 7:\n return "remote server did not support resume when resume was required to complete download";\n case 8:\n return "not enough disk space available";\n case 9:\n return "piece length was different from one in .aria2 control";\n case 10:\n return "downloading same file at that moment";\n case 11:\n return "downloading same info hash torrent at that moment";\n case 12:\n return "file already existed";\n case 13:\n return "renaming file failed";\n case 14:\n return "could not open existing file";\n case 15:\n return "could not create new file or truncate existing file";\n case 16:\n return "file I/O error occurred";\n case 17:\n return "could not create directory";\n case 18:\n return "name resolution failed";\n case 19:\n return "could not parse Metalink document";\n case 20:\n return "FTP command failed";\n case 21:\n return "HTTP response header was bad or unexpected";\n case 22:\n return "too many redirects occurred";\n case 23:\n return "HTTP authorization failed";\n case 24:\n return "could not parse bencoded file";\n case 25:\n return \' ".torrent" file was corrupted or missing information \';\n case 26:\n return "Magnet URI was bad";\n case 27:\n return "bad/unrecognized option was given or unexpected option argument was given";\n case 28:\n return "remote server was unable to handle the request due to a temporary overloading or maintenance";\n case 29:\n return "could not parse JSON-RPC request";\n }\n }).name);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvanMvc2VydmljZXMvZXJyb3JzLmpzLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vc3JjL2pzL3NlcnZpY2VzL2Vycm9ycy5qcz8yNDU0Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhbmd1bGFyIGZyb20gXCJhbmd1bGFyXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGFuZ3VsYXJcbiAgLm1vZHVsZShcIndlYnVpLnNlcnZpY2VzLmVycm9yc1wiLCBbXSlcbiAgLnZhbHVlKFwiJGdldEVycm9yU3RhdHVzXCIsIGZ1bmN0aW9uKGVycm9yQ29kZSkge1xuICAgIC8vIG5vcm1hbGl6ZSBpdCB0byAwXG4gICAgZXJyb3JDb2RlID0gZXJyb3JDb2RlIC0gMTtcbiAgICBzd2l0Y2ggKGVycm9yQ29kZSkge1xuICAgICAgY2FzZSAwOlxuICAgICAgICByZXR1cm4gXCJkb3dubG9hZCB3YXMgdW5zdWNjZXNzZnVsXCI7XG4gICAgICBjYXNlIDE6XG4gICAgICAgIHJldHVybiBcInVua25vd24gZXJyb3Igb2NjdXJyZWRcIjtcbiAgICAgIGNhc2UgMjpcbiAgICAgICAgcmV0dXJuIFwidGltZSBvdXQgb2NjdXJyZWRcIjtcbiAgICAgIGNhc2UgMzpcbiAgICAgICAgcmV0dXJuIFwicmVzb3VyY2Ugd2FzIG5vdCBmb3VuZFwiO1xuICAgICAgY2FzZSA0OlxuICAgICAgICByZXR1cm4gJ2FyaWEyIHNhdyB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiBcInJlc291cmNlIG5vdCBmb3VuZFwiIGVycm9yLiBTZWUgLS1tYXgtZmlsZS1ub3QtZm91bmQgb3B0aW9uJztcbiAgICAgIGNhc2UgNTpcbiAgICAgICAgcmV0dXJuIFwiZG93bmxvYWQgYWJvcnRlZCBiZWNhdXNlIGRvd25sb2FkIHNwZWVkIHdhcyB0b28gc2xvdy4gU2VlIC0tbG93Z
);
/***/
},
/***/ "./src/js/services/modals.js":
/*!***********************************!*\
!*** ./src/js/services/modals.js ***!
\***********************************/
/*! exports provided: default */
/***/ function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval(
'__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! angular */ "./node_modules/angular/index.js");\n/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(angular__WEBPACK_IMPORTED_MODULE_0__);\n\n\n/* harmony default export */ __webpack_exports__["default"] = (angular__WEBPACK_IMPORTED_MODULE_0___default.a.module("webui.services.modals", []).factory("$modals", function() {\n var modals = {};\n return {\n // register a new modal, cb is the function which\n // will further recieve the args when called through\n // invoke\n register: function(name, cb) {\n modals[name] = cb;\n },\n // invoke an already registered modal, false if not found\n invoke: function(name, cb) {\n if (!modals[name]) return false;\n var args = Array.prototype.slice.call(arguments, 1);\n return modals[name].apply({}, args);\n }\n };\n}).name);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvanMvc2VydmljZXMvbW9kYWxzLmpzLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vc3JjL2pzL3NlcnZpY2VzL21vZGFscy5qcz84MmU5Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhbmd1bGFyIGZyb20gXCJhbmd1bGFyXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGFuZ3VsYXIubW9kdWxlKFwid2VidWkuc2VydmljZXMubW9kYWxzXCIsIFtdKS5mYWN0b3J5KFwiJG1vZGFsc1wiLCBmdW5jdGlvbigpIHtcbiAgdmFyIG1vZGFscyA9IHt9O1xuICByZXR1cm4ge1xuICAgIC8vIHJlZ2lzdGVyIGEgbmV3IG1vZGFsLCBjYiBpcyB0aGUgZnVuY3Rpb24gd2hpY2hcbiAgICAvLyB3aWxsIGZ1cnRoZXIgcmVjaWV2ZSB0aGUgYXJncyB3aGVuIGNhbGxlZCB0aHJvdWdoXG4gICAgLy8gaW52b2tlXG4gICAgcmVnaXN0ZXI6IGZ1bmN0aW9uKG5hbWUsIGNiKSB7XG4gICAgICBtb2RhbHNbbmFtZV0gPSBjYjtcbiAgICB9LFxuICAgIC8vIGludm9rZSBhbiBhbHJlYWR5IHJlZ2lzdGVyZWQgbW9kYWwsIGZhbHNlIGlmIG5vdCBmb3VuZFxuICAgIGludm9rZTogZnVuY3Rpb24obmFtZSwgY2IpIHtcbiAgICAgIGlmICghbW9kYWxzW25hbWVdKSByZXR1cm4gZmFsc2U7XG4gICAgICB2YXIgYXJncyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMSk7XG4gICAgICByZXR1cm4gbW9kYWxzW25hbWVdLmFwcGx5KHt9LCBhcmdzKTtcbiAgICB9XG4gIH07XG59KS5uYW1lO1xuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTsiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/js/services/modals.js\n'
);
/***/
},
/***/ "./src/js/services/rpc/helpers.js":
/*!****************************************!*\
!*** ./src/js/services/rpc/helpers.js ***!
\****************************************/
/*! exports provided: default */
/***/ function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval(
'__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! angular */ "./node_modules/angular/index.js");\n/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(angular__WEBPACK_IMPORTED_MODULE_0__);\n\n\n/* harmony default export */ __webpack_exports__["default"] = (angular__WEBPACK_IMPORTED_MODULE_0___default.a\n .module("webui.services.rpc.helpers", [\n "webui.services.deps",\n "webui.services.rpc",\n "webui.services.alerts"\n ])\n .factory("$rpchelpers", [\n "$_",\n "$rpc",\n "$alerts",\n function(_, rpc, alerts) {\n var miscellaneous = { version: "", enabledFeatures: [] };\n rpc.once("getVersion", [], function(data) {\n miscellaneous = data[0];\n });\n return {\n isFeatureEnabled: function(feature) {\n return miscellaneous.enabledFeatures.indexOf(feature) != -1;\n },\n getAria2Version: function() {\n return miscellaneous.version;\n },\n addUris: function(uris, settings, cb) {\n _.each(uris, function(uri) {\n var uri_parsed = [];\n // parse options passed in the URIs. E.g. http://ex1.com/f1.jpg --out=image.jpg --check-integrity\n var uriSettings = _.cloneDeep(settings);\n _.each(uri, function(uri_element) {\n if (uri_element.startsWith("--")) {\n uri_options = uri_element.split(/--|=(.*)/);\n if (uri_options.length > 2) {\n uriSettings[uri_options[2]] = uri_options[3] || "true";\n }\n } else {\n uri_parsed.push(uri_element);\n }\n });\n // passing true to batch all the addUri calls\n rpc.once("addUri", [uri_parsed, uriSettings], cb, true);\n });\n\n // now dispatch all addUri syscalls\n rpc.forceUpdate();\n },\n addTorrents: function(txts, settings, cb) {\n _.each(txts, function(txt) {\n // passing true to batch all the addUri calls\n rpc.once("addTorrent", [txt, [], settings], cb, true);\n });\n\n // now dispatch all addUri syscalls\n rpc.forceUpdate();\n },\n addMetalinks: function(txts, settings, cb) {\n _.each(txts, function(txt) {\n // passing true to batch all the addUri calls\n rpc.once("addMetalink", [txt, settings], cb, true);\n });\n\n // now dispatch all addUri syscalls\n rpc.forceUpdate();\n }\n };\n }\n ]).name);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvanMvc2VydmljZXMvcnBjL2hlbHBlcnMuanMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvanMvc2VydmljZXMvcnBjL2hlbHBlcnMuanM/NDliNCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYW5ndWxhciBmcm9tIFwiYW5ndWxhclwiO1xuXG5leHBvcnQgZGVmYXVsdCBhbmd1bGFyXG4gIC5tb2R1bGUoXCJ3ZWJ1aS5zZXJ2aWNlcy5ycGMuaGVscGVyc1wiLCBbXG4gICAgXCJ3ZWJ1aS5zZXJ2aWNlcy5kZXBzXCIsXG4gICAgXCJ3ZWJ1aS5zZXJ2aWNlcy5ycGNcIixcbiAgICBcIndlYnVpLnNlcnZpY2VzLmFsZXJ0c1wiXG4gIF0pXG4gIC5mYWN0b3J5KFwiJHJwY2hlbHBlcnNcIiwgW1xuICAgIFwiJF9cIixcbiAgICBcIiRycGNcIixcbiAgICBcIiRhbGVydHNcIixcbiAgICBmdW5jdGlvbihfLCBycGMsIGFsZXJ0cykge1xuICAgICAgdmFyIG1pc2NlbGxhbmVvdXMgPSB7IHZlcnNpb246IFwiXCIsIGVuYWJsZWRGZWF0dXJlczogW10gfTtcbiAgICAgIHJwYy5vbmNlKFwiZ2V0VmVyc2lvblwiLCBbXSwgZnVuY3Rpb24oZGF0YSkge1xuICAgICAgICBtaXNjZWxsYW5lb3VzID0gZGF0YVswXTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaXNGZWF0dXJlRW5hYmxlZDogZnVuY3Rpb24oZmVhdHVyZSkge1xuICAgICAgICAgIHJldHVybiBtaXNjZWxsYW5lb3VzLmVuYWJsZWRGZWF0dXJlcy5pbmRleE9mKGZlYXR1cmUpICE9IC0xO1xuICAgICAgICB9LFxuICAgICAgICBnZXRBcmlhMlZlcnNpb246IGZ1bmN0aW9uKCkge1xuICAgICAgICAgIHJldHVybiBtaXNjZWxsYW5lb3VzLnZlcnNpb247XG4gICAgICAgIH0sXG4gICAgICAgIGFkZFVyaXM6IGZ1bmN0aW9uKHVyaXMsIHNldHRpbmdzLCBjYikge1xuICAgICAgICAgIF8uZWFjaCh1cmlzLCBmdW5jdGlvbih1cmkpIHtcbiAgICAgICAgICAgIHZhciB1cmlfcGFyc2VkID0gW107XG4gICAgI
);
/***/
},
/***/ "./src/js/services/rpc/jsoncall.js":
/*!*****************************************!*\
!*** ./src/js/services/rpc/jsoncall.js ***!
\*****************************************/
/*! exports provided: default */
/***/ function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval(
'__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! angular */ "./node_modules/angular/index.js");\n/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(angular__WEBPACK_IMPORTED_MODULE_0__);\n\n\n/* harmony default export */ __webpack_exports__["default"] = (angular__WEBPACK_IMPORTED_MODULE_0___default.a\n .module("webui.services.rpc.jsoncall", ["webui.services.deps", "webui.services.base64"])\n .factory("$jsoncall", [\n "$",\n "$json",\n "$base64",\n function($, JSON, base64) {\n return {\n init: function(conf) {\n this.avgTimeout = 2000;\n this.serverConf = conf;\n },\n ariaRequest: function(url, funcName, params, success, error) {\n var startTime = new Date();\n var conn = this;\n $.post({\n url: url,\n timeout: this.avgTimeout,\n contentType: "application/json",\n data: JSON.stringify({\n jsonrpc: 2.0,\n id: "webui",\n method: funcName,\n params: params\n }),\n success: function(data) {\n conn.avgTimeout = 2000 + 3 * (new Date() - startTime);\n return success(data);\n },\n error: error\n });\n },\n invoke: function(opts) {\n var rpc = this;\n var scheme = rpc.serverConf.encrypt ? "https" : "http";\n rpc.ariaRequest(\n scheme +\n "://" +\n rpc.serverConf.host +\n ":" +\n rpc.serverConf.port +\n (rpc.serverConf.path || "/jsonrpc"),\n opts.name,\n opts.params,\n opts.success,\n function() {\n // check if authentication details are given, if yes then use a hack to support\n // http authentication otherwise emit error\n if (!rpc.serverConf.auth || !rpc.serverConf.auth.user) {\n console.log("jsonrpc disconnect!!!");\n return opts.error();\n }\n\n var authUrl =\n scheme +\n "://" +\n rpc.serverConf.auth.user +\n ":" +\n rpc.serverConf.auth.pass +\n "@" +\n rpc.serverConf.host +\n ":" +\n rpc.serverConf.port +\n (rpc.serverConf.path || "/jsonrpc");\n\n // hack is to basically inject an image with same uri as the aria2 rpc url,\n // most browsers will then cache the authentication details and we dont have\n // to give them next time we make a request\n var img = $("<img/>").attr("src", authUrl);\n $("body").append(img);\n img.remove();\n\n // timeout to let the image load and then make a request,\n setTimeout(function() {\n rpc.ariaRequest(authUrl, opts.name, opts.params, opts.success, function() {\n console.log("jsonrpc disconnect!!!");\n return opts.error();\n });\n }, rpc.avgTimeout);\n }\n );\n }\n };\n }\n ]).name);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvanMvc2VydmljZXMvcnBjL2pzb25jYWxsLmpzLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vLy4vc3JjL2pzL3NlcnZpY2VzL3JwYy9qc29uY2FsbC5qcz83ZTA5Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhbmd1bGFyIGZyb20gXCJhbmd1bGFyXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGFuZ3VsYXJcbiAgLm1vZHVsZShcIndlYnVpLnNlcnZpY2VzLnJwYy5qc29uY2FsbFwiLCBbXCJ3ZWJ1aS5zZXJ2aWNlcy5kZXBzXCIsIFwid2VidWkuc2VydmljZXMuYmFzZTY0XCJdKVxuICAuZmFjdG9yeShcIiRqc29uY2FsbFwiLCBbXG4gICAgXCIkXCIsXG4gICAgXCIkanNvblwiLFxuICAgIFwiJGJhc2U2NFwiLFxuICAgIGZ1bmN0aW9uKCQsIEpTT04sIGJhc2U2NCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaW5pdDogZnVuY3Rpb24oY29uZikge1xuICAgICAgIC
);
/***/
},
/***/ "./src/js/services/rpc/rpc.js":
/*!************************************!*\
!*** ./src/js/services/rpc/rpc.js ***!
\************************************/
/*! exports provided: default */
/***/ function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval(
'__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! angular */ "./node_modules/angular/index.js");\n/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(angular__WEBPACK_IMPORTED_MODULE_0__);\n\n\n/* harmony default export */ __webpack_exports__["default"] = (angular__WEBPACK_IMPORTED_MODULE_0___default.a\n .module("webui.services.rpc", [\n "webui.services.rpc.syscall",\n "webui.services.configuration",\n "webui.services.alerts",\n "webui.services.utils"\n ])\n .factory("$rpc", [\n "$syscall",\n "$globalTimeout",\n "$alerts",\n "$utils",\n "$rootScope",\n "$location",\n "$authconf",\n "$filter",\n function(syscall, globalTimeout, alerts, utils, rootScope, uri, authconf, filter) {\n var subscriptions = [],\n configurations = [authconf],\n currentConf = {},\n currentToken,\n timeout = null,\n forceNextUpdate = false;\n\n var cookieConf = utils.getCookie("aria2conf");\n // try at the start, so that it is presistant even when default authconf works\n if (cookieConf) configurations.unshift(cookieConf);\n\n if (uri.search().host) {\n configurations.unshift(uri.search());\n configurations[0].auth = {\n token: configurations[0].token,\n user: configurations[0].username,\n pass: configurations[0].password\n };\n }\n\n if (["http", "https"].indexOf(uri.protocol()) != -1 && uri.host() != "localhost") {\n configurations.push(\n {\n host: uri.host(),\n path: "/jsonrpc",\n port: 6800,\n encrypt: false\n },\n {\n host: uri.host(),\n port: uri.port(),\n path: "/jsonrpc",\n encrypt: uri.protocol() == "https"\n },\n {\n host: uri.host(),\n port: uri.port(),\n path: authconf.path,\n encrypt: uri.protocol() == "https"\n }\n );\n }\n\n // set if we got error on connection. This will cause another connection attempt.\n var needNewConnection = true;\n\n // update is implemented such that\n // only one syscall at max is ongoing\n // (i.e. serially) so should be private\n // to maintain that invariant\n var update = function() {\n clearTimeout(timeout);\n timeout = null;\n\n subscriptions = _.filter(subscriptions, function(e) {\n return !!e && e.once !== 2;\n });\n var subs = subscriptions.slice();\n if (!subs.length) {\n timeout = setTimeout(update, globalTimeout);\n return;\n }\n\n if (syscall.state == "initializing") {\n console.log("Syscall is initializing, waiting");\n timeout = setTimeout(update, globalTimeout);\n return;\n }\n\n if (needNewConnection && configurations.length) {\n needNewConnection = false;\n currentConf = configurations[0];\n if (currentConf && currentConf.auth && currentConf.auth.token) {\n currentToken = currentConf.auth.token;\n } else {\n currentToken = null;\n }\n syscall.init(currentConf);\n timeout = setTimeout(update, globalTimeout);\n return;\n }\n\n var params = _.map(subs, function(s) {\n var p = s.params;\n if (currentToken) {\n p = ["token:" + currentToken].concat(p || []);\n }\n return {\n methodName: s.name,\n params: p && p.length ? p : undefined\n };\n });\n\n var error = function() {\n needNewConnection = true;\n var ind = configurations.indexOf(currentConf);\n if (ind != -1) configurations.splice(ind, 1);\n\n // If some proposed configurations are still in the pipeline then retry\n if (configurations.leng
);
/***/
},
/***/ "./src/js/services/rpc/sockcall.js":
/*!*****************************************!*\
!*** ./src/js/services/rpc/sockcall.js ***!
\*****************************************/
/*! exports provided: default */
/***/ function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval(
'__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! angular */ "./node_modules/angular/index.js");\n/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(angular__WEBPACK_IMPORTED_MODULE_0__);\n\n\n/* harmony default export */ __webpack_exports__["default"] = (angular__WEBPACK_IMPORTED_MODULE_0___default.a\n .module("webui.services.rpc.sockcall", [\n "webui.services.deps",\n "webui.services.utils",\n "webui.services.base64",\n "webui.services.alerts"\n ])\n .factory("$sockcall", [\n "$_",\n "$json",\n "$name",\n "$utils",\n "$alerts",\n function(_, JSON, name, utils, alerts) {\n var sockRPC = {\n // true when sockrpc is ready to be used,\n // false when either initializing\n // or no support for web sockets\n initialized: false,\n\n // ongoing connection handles containing connection id and callbacks\n handles: [],\n\n // websocket connection socket used for all connections\n sock: null,\n\n // connection configuration\n conf: null,\n\n // socket connection scheme, default to unencrypted connection\n scheme: "ws",\n\n // called when a connection error occurs\n onerror: function(ev) {\n _.each(sockRPC.handles, function(h) {\n h.error();\n });\n sockRPC.handles = [];\n sockRPC.initialized = false;\n if (sockRPC.onready) {\n sockRPC.onready();\n sockRPC.onready = null;\n }\n },\n onclose: function(ev) {\n if (sockRPC.handles && sockRPC.handles.length)\n sockRPC.onerror("Connection reset while calling aria2");\n sockRPC.initialized = false;\n if (sockRPC.onready) {\n sockRPC.onready();\n sockRPC.onready = null;\n }\n },\n\n // when connection opens\n onopen: function() {\n console.log("websocket initialized!!!");\n sockRPC.initialized = true;\n if (sockRPC.onready) {\n sockRPC.onready();\n sockRPC.onready = null;\n }\n },\n\n // when message is recieved\n onmessage: function(message) {\n var data = JSON.parse(message.data);\n\n // reverse loop because we are deleting elements\n // while looping over the old items\n for (var i = sockRPC.handles.length - 1; i >= 0; i--) {\n if (sockRPC.handles[i].id === data.id) {\n sockRPC.handles[i].success(data);\n sockRPC.handles.splice(i, 1);\n return;\n }\n }\n },\n\n // call to use the rpc\n invoke: function(opts) {\n var data = {\n jsonrpc: 2.0,\n id: utils.uuid(),\n method: opts.name,\n params: opts.params && opts.params.length ? opts.params : undefined\n };\n\n if (data.params && !data.params.length) data.params = undefined;\n\n sockRPC.handles.push({\n success: opts.success || angular__WEBPACK_IMPORTED_MODULE_0___default.a.noop,\n error: opts.error || angular__WEBPACK_IMPORTED_MODULE_0___default.a.noop,\n id: data.id\n });\n sockRPC.sock.send(JSON.stringify(data));\n },\n\n // should be called initially to start using the sock rpc\n // onready is called when initial connection is resolved\n init: function(conf, onready) {\n sockRPC.initialized = false;\n if (sockRPC.onready) {\n // make previous call is resolved\n sockRPC.onready();\n sockRPC.onready = null;\n }\n\n if (typeof WebSocket == "undefined") {\n alerts.addAlert("Web sockets are not supported! Falling back to JSONP.", "info");\n onready();\n return;\n }\n sockRPC.conf = conf || sockR
);
/***/
},
/***/ "./src/js/services/rpc/syscall.js":
/*!****************************************!*\
!*** ./src/js/services/rpc/syscall.js ***!
\****************************************/
/*! exports provided: default */
/***/ function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval(
'__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! angular */ "./node_modules/angular/index.js");\n/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(angular__WEBPACK_IMPORTED_MODULE_0__);\n\r\n\r\n/* harmony default export */ __webpack_exports__["default"] = (angular__WEBPACK_IMPORTED_MODULE_0___default.a\r\n .module("webui.services.rpc.syscall", [\r\n "webui.services.rpc.jsoncall",\r\n "webui.services.rpc.sockcall",\r\n "webui.services.utils",\r\n "webui.services.alerts"\r\n ])\r\n .factory("$syscall", [\r\n "$log",\r\n "$jsoncall",\r\n "$sockcall",\r\n "$alerts",\r\n function(log, jsonRPC, sockRPC, alerts) {\r\n return {\r\n state: "none",\r\n // called to initialize the rpc interface, call everytime configuration changes\r\n // conf has the following structure:\r\n // {\r\n // host (string): host for the aria2 server\r\n // port (number): port number for the aria2 server\r\n // encrypt (boolean, optional): true if encryption is enabled in the aria2 server\r\n // auth (optional): {\r\n // token (string): secret token for authentication (--rpc-secret)\r\n // user (string): username for http authentication if enabled\r\n // pass (string): password for the http authentication if enabled\r\n // }\r\n init: function(conf) {\r\n console.log("Syscall is initializing to", conf);\r\n this.state = "initializing";\r\n jsonRPC.init(conf);\r\n var syscall = this;\r\n sockRPC.init(conf, function() {\r\n console.log("Syscall is ready");\r\n syscall.state = "ready";\r\n });\r\n },\r\n\r\n // call this to start an rpc call, opts has the following structure:\r\n // {\r\n // name (string): name of the actual aria2 syscall\r\n // success (function): callback called with (parsed) data if rpc is successfull\r\n // error (function): callback called when an error occurs\r\n // params (array, optional): the params for some syscall (like multicall) and is optional for others\r\n // }\r\n invoke: function(opts) {\r\n opts.success = opts.success || angular__WEBPACK_IMPORTED_MODULE_0___default.a.noop;\r\n opts.error = opts.error || angular__WEBPACK_IMPORTED_MODULE_0___default.a.noop;\r\n\r\n if (sockRPC.initialized) {\r\n return sockRPC.invoke(opts);\r\n } else {\r\n return jsonRPC.invoke(opts);\r\n }\r\n }\r\n };\r\n }\r\n ]).name);\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvanMvc2VydmljZXMvcnBjL3N5c2NhbGwuanMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zcmMvanMvc2VydmljZXMvcnBjL3N5c2NhbGwuanM/NDA2OSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYW5ndWxhciBmcm9tIFwiYW5ndWxhclwiO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgYW5ndWxhclxyXG4gIC5tb2R1bGUoXCJ3ZWJ1aS5zZXJ2aWNlcy5ycGMuc3lzY2FsbFwiLCBbXHJcbiAgICBcIndlYnVpLnNlcnZpY2VzLnJwYy5qc29uY2FsbFwiLFxyXG4gICAgXCJ3ZWJ1aS5zZXJ2aWNlcy5ycGMuc29ja2NhbGxcIixcclxuICAgIFwid2VidWkuc2VydmljZXMudXRpbHNcIixcclxuICAgIFwid2VidWkuc2VydmljZXMuYWxlcnRzXCJcclxuICBdKVxyXG4gIC5mYWN0b3J5KFwiJHN5c2NhbGxcIiwgW1xyXG4gICAgXCIkbG9nXCIsXHJcbiAgICBcIiRqc29uY2FsbFwiLFxyXG4gICAgXCIkc29ja2NhbGxcIixcclxuICAgIFwiJGFsZXJ0c1wiLFxyXG4gICAgZnVuY3Rpb24obG9nLCBqc29uUlBDLCBzb2NrUlBDLCBhbGVydHMpIHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBzdGF0ZTogXCJub25lXCIsXHJcbiAgICAgICAgLy8gY2FsbGVkIHRvIGluaXRpYWxpemUgdGhlIHJwYyBpbnRlcmZhY2UsIGNhbGwgZXZlcnl0aW1lIGNvbmZpZ3VyYXRpb24gY2hhbmdlc1xyXG4gICAgICAgIC8vIGNvbmYgaGFzIHRoZSBmb2xsb3dpbmcgc3RydWN0dXJlOlxyXG4gICAgICAgIC8vIHtcclxuICAgICAgICAvLyAgIGhvc3QgKHN0cmluZyk6IGhvc3QgZm9yIHRoZSBhcmlhMiBzZXJ2ZXJcclxuICAgICAgICAvLyAgIHBvcnQgKG51bWJlcik6IHBvcnQgbnVtYmVyIGZvciB0aGUgYXJpYTIgc2VydmVyXHJcbiAgICAgICAgLy8gICBlbmNyeXB0IChib29sZWFuLCBvc
);
/***/
},
/***/ "./src/js/services/settings/filters.js":
/*!*********************************************!*\
!*** ./src/js/services/settings/filters.js ***!
\*********************************************/
/*! exports provided: default */
/***/ function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval(
'__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! angular */ "./node_modules/angular/index.js");\n/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(angular__WEBPACK_IMPORTED_MODULE_0__);\n\n\n/* harmony default export */ __webpack_exports__["default"] = (angular__WEBPACK_IMPORTED_MODULE_0___default.a\n .module("webui.services.settings.filters", [])\n .value("$globalsettingsexclude", ["checksum", "index-out", "out", "pause", "select-file"])\n .value("$waitingsettingsexclude", [\n "dry-run",\n "metalink-base-uri",\n "parameterized-uri",\n "pause",\n "piece-length"\n ])\n .value("$activesettingsfilter", [\n "bt-max-peers",\n "bt-request-peer-speed-limit",\n "bt-remove-unselected-file",\n "max-download-limit",\n "max-upload-limit"\n ]).name);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvanMvc2VydmljZXMvc2V0dGluZ3MvZmlsdGVycy5qcy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9qcy9zZXJ2aWNlcy9zZXR0aW5ncy9maWx0ZXJzLmpzPzQ2NDciXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFuZ3VsYXIgZnJvbSBcImFuZ3VsYXJcIjtcblxuZXhwb3J0IGRlZmF1bHQgYW5ndWxhclxuICAubW9kdWxlKFwid2VidWkuc2VydmljZXMuc2V0dGluZ3MuZmlsdGVyc1wiLCBbXSlcbiAgLnZhbHVlKFwiJGdsb2JhbHNldHRpbmdzZXhjbHVkZVwiLCBbXCJjaGVja3N1bVwiLCBcImluZGV4LW91dFwiLCBcIm91dFwiLCBcInBhdXNlXCIsIFwic2VsZWN0LWZpbGVcIl0pXG4gIC52YWx1ZShcIiR3YWl0aW5nc2V0dGluZ3NleGNsdWRlXCIsIFtcbiAgICBcImRyeS1ydW5cIixcbiAgICBcIm1ldGFsaW5rLWJhc2UtdXJpXCIsXG4gICAgXCJwYXJhbWV0ZXJpemVkLXVyaVwiLFxuICAgIFwicGF1c2VcIixcbiAgICBcInBpZWNlLWxlbmd0aFwiXG4gIF0pXG4gIC52YWx1ZShcIiRhY3RpdmVzZXR0aW5nc2ZpbHRlclwiLCBbXG4gICAgXCJidC1tYXgtcGVlcnNcIixcbiAgICBcImJ0LXJlcXVlc3QtcGVlci1zcGVlZC1saW1pdFwiLFxuICAgIFwiYnQtcmVtb3ZlLXVuc2VsZWN0ZWQtZmlsZVwiLFxuICAgIFwibWF4LWRvd25sb2FkLWxpbWl0XCIsXG4gICAgXCJtYXgtdXBsb2FkLWxpbWl0XCJcbiAgXSkubmFtZTtcbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/js/services/settings/filters.js\n'
);
/***/
},
/***/ "./src/js/services/settings/settings.js":
/*!**********************************************!*\
!*** ./src/js/services/settings/settings.js ***!
\**********************************************/
/*! exports provided: default */
/***/ function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval(
'__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! angular */ "./node_modules/angular/index.js");\n/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(angular__WEBPACK_IMPORTED_MODULE_0__);\n\n\n/* harmony default export */ __webpack_exports__["default"] = (angular__WEBPACK_IMPORTED_MODULE_0___default.a\n .module("webui.services.settings", [])\n .value("$fileSettings", {\n // {{{ settings (for files)\n "all-proxy": {\n val: "",\n desc:\n \'Use this proxy server for all protocols. To erase previously defined proxy, use "". You can override this setting and specify a proxy server for a particular protocol using http-proxy, https-proxy and ftp-proxy options. This affects all URIs. The format of PROXY is [http://][USER:PASSWORD@]HOST[:PORT].\'\n },\n\n "all-proxy-passwd": {\n val: "",\n desc: "Set password for all-proxy option."\n },\n\n "all-proxy-user": {\n val: "",\n desc: "Set user for all-proxy option."\n },\n\n "allow-overwrite": {\n val: false,\n options: ["true", "false"],\n desc:\n "Restart download from scratch if the corresponding control file doesn\'t exist. See also auto-file-renaming option. Default: false"\n },\n\n "allow-piece-length-change": {\n val: false,\n options: ["true", "false"],\n desc:\n "If false is given, aria2 aborts download when a piece length is different from one in a control file. If true is given, you can proceed but some download progress will be lost. Default: false"\n },\n\n "always-resume": {\n val: true,\n options: ["true", "false"],\n desc:\n "Always resume download. If true is given, aria2 always tries to resume download and if resume is not possible, aborts download. If false is given, when all given URIs do not support resume or aria2 encounters N URIs which does not support resume (N is the value specified using --max-resume-failure-tries option), aria2 downloads file from scratch. See --max-resume-failure-tries option. Default: true"\n },\n\n "async-dns": {\n val: true,\n options: ["true", "false"],\n desc: "Enable asynchronous DNS. Default: true"\n },\n\n "auto-file-renaming": {\n val: true,\n options: ["true", "false"],\n desc:\n "Rename file name if the same file already exists. This option works only in HTTP(S)/FTP download. The new file name has a dot and a number(1..9999) appended. Default: true"\n },\n\n "bt-detach-seed-only": {\n desc:\n "Exclude seed only downloads when counting concurrent active downloads (See -j option). This means that if -j3 is given and this option is turned on and 3 downloads are active and one of those enters seed mode, then it is excluded from active download count (thus it becomes 2), and the next download waiting in queue gets started. But be aware that seeding item is still recognized as active download in RPC method. Default: false",\n val: false,\n options: ["true", "false"]\n },\n\n "bt-enable-hook-after-hash-check": {\n desc:\n "Allow hook command invocation after hash check (see -V option) in BitTorrent download. By default, when hash check succeeds, the command given by --on-bt-download-complete is executed. To disable this action, give false to this option. Default: true",\n val: true,\n options: ["true", "false"]\n },\n\n "bt-enable-lpd": {\n desc:\n "Enable Local Peer Discovery. If a private flag is set in a torrent, aria2 doesn\'t use this feature for that download even if true is given. Default: false",\n val: false,\n options: ["true", "false"]\n },\n\n "bt-exclude-tracker": {\n val: "",\n desc:\n "Comma separated list of BitTorrent tracker\'s announce URI to remove. You can use special value * which matches all URIs, thus removes all announce URIs. When specifying * in shell command-line, do
);
/***/
},
/***/ "./src/js/services/utils.js":
/*!**********************************!*\
!*** ./src/js/services/utils.js ***!
\**********************************/
/*! exports provided: default */
/***/ function(module, __webpack_exports__, __webpack_require__) {
"use strict";
eval(
'__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! angular */ "./node_modules/angular/index.js");\n/* harmony import */ var angular__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(angular__WEBPACK_IMPORTED_MODULE_0__);\n\n\n/* harmony default export */ __webpack_exports__["default"] = (angular__WEBPACK_IMPORTED_MODULE_0___default.a\n .module("webui.services.utils", ["webui.services.configuration"])\n .factory("$utils", [\n "$filter",\n "$name",\n "$titlePattern",\n function(filter, $name, $titlePattern) {\n var rnd16 = (function() {\n "use strict";\n var rndBuffer = new Uint8Array(16);\n var rnd16Weak = function() {\n for (var i = 0, r; i < 16; i++) {\n if (!(i % 0x3)) r = (Math.random() * 0x100000000) | 0;\n rndBuffer[i] = (r >>> ((i & 0x3) << 0x3)) & 0xff;\n }\n return rndBuffer;\n };\n\n if (!window.crypto || !crypto.getRandomValues) {\n return rnd16Weak;\n }\n return function() {\n try {\n crypto.getRandomValues(rndBuffer);\n return rndBuffer;\n } catch (ex) {\n // Entropy might be exhausted\n return rnd16Weak();\n }\n };\n })();\n\n var utils = {\n fmtsize: function(len) {\n len = +len; // coerce to number\n if (len <= 1024) {\n return len.toFixed(0) + " B";\n }\n len /= 1024;\n if (len <= 1024) {\n return len.toFixed(1) + " KB";\n }\n len /= 1024;\n if (len <= 1024) {\n return len.toFixed(2) + " MB";\n }\n len /= 1024;\n return len.toFixed(3) + " GB";\n },\n\n fmtspeed: function(speed) {\n return utils.fmtsize(speed) + "/s";\n },\n // saves the key value pair in cookies\n setCookie: function(key, value) {\n var exdate = new Date();\n exdate.setDate(exdate.getDate() + 30 * 12);\n var cvalue = escape(JSON.stringify(value)) + "; expires=" + exdate.toUTCString();\n document.cookie = key + "=" + cvalue;\n },\n // gets a value for a key stored in cookies\n getCookie: function(key) {\n var chunks = document.cookie.split(";");\n for (var i = 0; i < chunks.length; i++) {\n var ckey = chunks[i].substr(0, chunks[i].indexOf("=")).replace(/^\\s+|\\s+$/g, "");\n var cvalue = chunks[i].substr(chunks[i].indexOf("=") + 1);\n if (key == ckey) {\n return JSON.parse(unescape(cvalue));\n }\n }\n\n return null;\n },\n getFileName: function(path) {\n var seed = path.split(/[/\\\\]/);\n return seed[seed.length - 1];\n },\n uuid: (function() {\n var bt = [];\n for (var i = 0; i < 0x100; ++i) {\n bt.push((i + 0x100).toString(16).substr(1));\n }\n Object.freeze(bt);\n\n return function() {\n var r = rnd16();\n r[6] = (r[6] & 0xf) | 0x40; // Version 4\n r[8] = (r[8] & 0x3f) | 0x80; // Version 4y\n return (\n bt[r[0]] +\n bt[r[1]] +\n bt[r[2]] +\n bt[r[3]] +\n "-" +\n bt[r[4]] +\n bt[r[5]] +\n "-" +\n bt[r[6]] +\n bt[r[7]] +\n "-" +\n bt[r[8]] +\n bt[r[9]] +\n "-" +\n bt[r[10]] +\n bt[r[11]] +\n bt[r[12]] +\n bt[r[13]] +\n bt[r[14]] +\n bt[r[15]]\n );\n };\n })(),\n randStr: function() {\n return utils.uuid();\n },\n\n // maps the array in place to the destination\n // arr, dest (optional): array\n // func: a merge mappin
);
/***/
},
/***/ "./src/js/translate/cs_CZ.js":
/*!***********************************!*\
!*** ./src/js/translate/cs_CZ.js ***!
\***********************************/
/*! no static exports found */
/***/ function(module, exports) {
eval(
'if (typeof translations == "undefined") {\n translations = {};\n}\n\ntranslations.cs_CZ = {\n // header\n Search: "Hledat",\n // Nav menu\n Add: "Přidat",\n "By URIs": "Z URI",\n "By Torrents": "Z torrentu",\n "By Metalinks": "Z metalinku",\n Manage: "Spravovat",\n "Pause All": "Zastavit vše",\n "Resume Paused": "Obnovit zastavené",\n "Purge Completed": "Odstranit hotové",\n "Shutdown Server": "Vypnout server",\n Settings: "Nastavení",\n "Connection Settings": "Nastavení připojení",\n "Global Settings": "Obecné nastavení",\n "Server info": "Informace o serveru",\n "About and contribute": "Informace",\n "Toggle navigation": "Přepnout ovládání",\n // body\n // nav side bar\n Miscellaneous: "Různé",\n "Global Statistics": "Globální statistika",\n About: "Informace",\n Displaying: "Zobrazuji",\n of: "z",\n downloads: "stahování",\n Language: "Jazyk",\n // download filters\n "Download Filters": "Filtry stahování",\n Running: "Stahují se",\n Active: "Aktivní",\n Waiting: "Čekající",\n Complete: "Hotové",\n Error: "Chyba",\n Paused: "Zastavené",\n Removed: "Odstraněné",\n "Hide linked meta-data": "Skrýt připojená meta-data",\n Toggle: "Prohodit",\n "Reset filters": "Smazat filtry",\n // download status\n Verifing: "Ověřování",\n "Verify Pending": "Čekání na ověření",\n // starred properties\n "Quick Access Settings": "Rychlé nastavení",\n Save: "Uložit",\n "Save settings": "Uložit nastavení",\n "Currently no download in line to display, use the": "Není co zobrazit, použijte",\n "download button to start downloading files!": "tlačítko pro stáhnutí souborů!",\n Peers: "Zdroje",\n "More Info": "Víc informací",\n Remove: "Odstranit",\n "# of": "# z",\n Length: "Délka",\n // modals\n "Add Downloads By URIs": "Přidat stahování z URI",\n "- You can add multiple downloads (files) at the same time by putting URIs for each file on a separate line.":\n "- Můžete začít stahovat více souborů v jeden okamžik, tak že na každý řádek dáte jinou URI",\n "- You can also add multiple URIs (mirrors) for the *same* file. To do this, separate the URIs by a space.":\n "- Také můžete přidat více URI (Zrcadel) pro *stejný* soubor, tak že je dáte na jeden řádek oddělené mezerou ",\n "- A URI can be HTTP(S)/FTP/BitTorrent-Magnet.": "- URI může být HTTP(S)/FTP/BitTorrent-Magnet.",\n "Download settings": "Nastavení stahování",\n "Advanced settings": "Pokročilé nastavení",\n Cancel: "Zrušit",\n Start: "Spustit",\n Choose: "Zvolit",\n "Quick Access (shown on the main page)": "Rychlý přístup (Zobrazení na hlavní stránce)",\n // add torrent modal\n "Add Downloads By Torrents": "Přidat stahování z torrentu",\n "- Select the torrent from the local filesystem to start the download.":\n "- Pro stahování vyberte torrent soubor z disku",\n "- You can select multiple torrents to start multiple downloads.":\n " - Můžete zvolit víc torrentů pro spuštění více stahování",\n "- To add a BitTorrent-Magnet URL, use the Add By URI option and add it there.":\n \'- Pro stahování pomocí BitTorrent-Magnet URL, použijte možnost "Z URI"\',\n "Select Torrents": "Vyberte torrenty",\n "Select a Torrent": "Vyberte torrent",\n // add metalink modal\n "Add Downloads By Metalinks": "Přidat stahovní pomocí metalinku",\n "Select Metalinks": "Výběr metalinků",\n "- Select the Metalink from the local filesystem to start the download.":\n "- Pro stahování vyberte metalink soubor z disku",\n "- You can select multiple Metalinks to start multiple downloads.":\n "- Můžete zvolit víc mentalinků pro spuštění více stahování",\n "Select a Metalink": "Vyberte metalink",\n // select file modal\n "Choose files to start download for": "Vyberte soubory pro stažení",\n "Select to download": "Vyberte ke stažení",\n // settings modal\n "Aria2 RPC host and port": "Aria2 RPC host a port",\n "Enter the host": "Zadejte hosta",\n "Enter the IP or DNS name
);
/***/
},
/***/ "./src/js/translate/de_DE.js":
/*!***********************************!*\
!*** ./src/js/translate/de_DE.js ***!
\***********************************/
/*! no static exports found */
/***/ function(module, exports) {
eval(
'if (typeof translations == "undefined") {\n translations = {};\n}\n\ntranslations.de_DE = {\n // header\n Search: "Suche",\n // Nav menu\n Add: "Hinzufügen",\n "By URIs": "mit URIs",\n "By Torrents": "mit Torrents",\n "By Metalinks": "mit Metalinks",\n Manage: "Verwalten",\n "Pause All": "Alle anhalten",\n "Resume Paused": "Angehaltene fortsetzen",\n "Purge Completed": "Fertige entfernen",\n Settings: "Einstellungen",\n "Connection Settings": "Verbindungseinstellungen",\n "Global Settings": "Globale Einstellungen",\n "Server info": "Server Information",\n "About and contribute": "Über webui-aria2",\n "Toggle navigation": "Navigation an/ausschalten",\n // body\n // nav side bar\n Miscellaneous: "Verschiedenes",\n "Global Statistics": "Globale Statistiken",\n About: "Über",\n Displaying: "Anzeige",\n of: "von",\n downloads: "Downloads",\n Language: "Sprache",\n // download filters\n "Download Filters": "Download Filter",\n Running: "Laufende",\n Active: "Aktive",\n Waiting: "Wartende",\n Complete: "Fertige",\n Error: "Fehler",\n Paused: "Angehaltene",\n Removed: "Gelöschte",\n "Hide linked meta-data": "Blende verlinkte Meta-Daten aus",\n Toggle: "Umschalten",\n "Reset filters": "Filter zurücksetzen",\n // starred properties\n "Quick Access Settings": "Ausgewählte Einstellungen",\n "Save settings": "Einstellungen speichern",\n "Currently no download in line to display, use the":\n "Aktuell sind keine Downloads vorhanden, bitte benutz den",\n "download button to start downloading files!":\n "Download Link um den Download von Dateien zu beginnen!",\n Peers: "Peers",\n "More Info": "Mehr Infos",\n Remove: "Entfernen",\n "# of": "# von",\n Length: "Länge",\n // modals\n "Add Downloads By URIs": "Downloads anhand von URIs hinzufügen",\n "- You can add multiple downloads (files) at the same time by putting URIs for each file on a separate line.":\n "- Es können mehrere Downloads (Dateien) gleichzeitig hinzugefügt werden, indem jede URI in eine separate Zeile eingegeben wird.",\n "- You can also add multiple URIs (mirrors) for the *same* file. To do this, separate the URIs by a space.":\n "- Es können auch mehrere URIs (Spiegelserver) für *dieselbe* Datei durch Leerzeichen getrennt angegeben werden.",\n "- A URI can be HTTP(S)/FTP/BitTorrent-Magnet.":\n "- Eine URI kann folgende Protokolle besitzen: HTTP(S)/FTP/BitTorrent-Magnet.",\n "Download settings": "Download Einstellungen",\n "Advanced settings": "Erweiterte Einstellungen",\n Cancel: "Abbrechen",\n Start: "Beginnen",\n Choose: "Auswählen",\n "Quick Access (shown on the main page)": "Schnellzugriff (Anzeige auf der Hauptseite)",\n // add torrent modal\n "Add Downloads By Torrents": "Downloads mit Torrents hinzufügen",\n "- Select the torrent from the local filesystem to start the download.":\n "- Wähle ein Torrent vom lokalen Dateisystem um den Download zu starten",\n "- You can select multiple torrents to start multiple downloads.":\n "- Es können mehrere Torrents ausgewählt werden um mehrere Downloads zu starten",\n "- To add a BitTorrent-Magnet URL, use the Add By URI option and add it there.":\n "- Für BitTorrent-Magnet URLs benutz die Option \'Mit URIs hinzufügen\'",\n "Select Torrents": "Wähle Torrents",\n "Select a Torrent": "Wähle ein Torrent",\n // add metalink modal\n "Add Downloads By Metalinks": "Download mit Metalinks hinzufügen",\n "Select Metalinks": "Wähle Metalinks",\n "- Select the Metalink from the local filesystem to start the download.":\n "- Wähle ein Metalink vom lokalen Dateisystem um den Download zu starten",\n "- You can select multiple Metalinks to start multiple downloads.":\n "- Es können mehrere Metalinks ausgewählt werden um mehrere Downloads zu starten",\n "Select a Metalink": "Wähle einen Metalink",\n // select file modal\n "Choose files to start download for": "Wähle Dateien für den Download aus",\n "Select to download": "Wähle zum Download",\n // settings modal\n "Aria2 RPC host and port": "Ari
);
/***/
},
/***/ "./src/js/translate/en_US.js":
/*!***********************************!*\
!*** ./src/js/translate/en_US.js ***!
\***********************************/
/*! no static exports found */
/***/ function(module, exports) {
eval(
'if (typeof translations == "undefined") {\n translations = {};\n}\n\ntranslations.en_US = {\n // header\n Search: "Search",\n // Nav menu\n Add: "Add",\n "By URIs": "By URIs",\n "By Torrents": "By Torrents",\n "By Metalinks": "By Metalinks",\n Manage: "Manage",\n "Pause All": "Pause All",\n "Resume Paused": "Resume Paused",\n "Purge Completed": "Purge Completed",\n Settings: "Settings",\n "Connection Settings": "Connection Settings",\n "Global Settings": "Global Settings",\n "Server info": "Server info",\n "About and contribute": "About and contribute",\n "Toggle navigation": "Toggle navigation",\n // body\n // nav side bar\n Miscellaneous: "Miscellaneous",\n "Global Statistics": "Global Statistics",\n About: "About",\n Displaying: "Displaying",\n of: "of",\n downloads: "downloads",\n Language: "Language",\n // download filters\n "Download Filters": "Download Filters",\n Running: "Running",\n Active: "Active",\n Waiting: "Waiting",\n Complete: "Complete",\n Error: "Error",\n Paused: "Paused",\n Removed: "Removed",\n "Hide linked meta-data": "Hide linked meta-data",\n Toggle: "Toggle",\n "Reset filters": "Reset filters",\n // download status\n Verifing: "Verifing",\n "Verify Pending": "Verify Pending",\n // starred properties\n "Quick Access Settings": "Quick Access Settings",\n Save: "Save",\n "Save settings": "Save settings",\n "Currently no download in line to display, use the":\n "Currently no download in line to display, use the",\n "download button to start downloading files!": "download button to start downloading files!",\n Peers: "Peers",\n "More Info": "More Info",\n Remove: "Remove",\n "# of": "# of",\n Length: "Length",\n // modals\n "Add Downloads By URIs": "Add Downloads By URIs",\n "- You can add multiple downloads (files) at the same time by putting URIs for each file on a separate line.":\n "- You can add multiple downloads (files) at the same time by putting URIs for each file on a separate line.",\n "- You can also add multiple URIs (mirrors) for the *same* file. To do this, separate the URIs by a space.":\n "- You can also add multiple URIs (mirrors) for the *same* file. To do this, separate the URIs by a space.",\n "- A URI can be HTTP(S)/FTP/BitTorrent-Magnet.": "- A URI can be HTTP(S)/FTP/BitTorrent-Magnet.",\n "Download settings": "Download settings",\n "Advanced settings": "Advanced settings",\n Cancel: "Cancel",\n Start: "Start",\n Choose: "Choose",\n "Quick Access (shown on the main page)": "Quick Access (shown on the main page)",\n // add torrent modal\n "Add Downloads By Torrents": "Add Downloads By Torrents",\n "- Select the torrent from the local filesystem to start the download.":\n "- Select the torrent from the local filesystem to start the download.",\n "- You can select multiple torrents to start multiple downloads.":\n "- You can select multiple torrents to start multiple downloads.",\n "- To add a BitTorrent-Magnet URL, use the Add By URI option and add it there.":\n "- To add a BitTorrent-Magnet URL, use the Add By URI option and add it there.",\n "Select Torrents": "Select Torrents",\n "Select a Torrent": "Select a Torrent",\n // add metalink modal\n "Add Downloads By Metalinks": "Add Downloads By Metalinks",\n "Select Metalinks": "Select Metalinks",\n "- Select the Metalink from the local filesystem to start the download.":\n "- Select the Metalink from the local filesystem to start the download.",\n "- You can select multiple Metalinks to start multiple downloads.":\n "- You can select multiple Metalinks to start multiple downloads.",\n "Select a Metalink": "Select a Metalink",\n // select file modal\n "Choose files to start download for": "Choose files to start download for",\n "Select to download": "Select to download",\n // settings modal\n "Aria2 RPC host and port": "Aria2 RPC host and port",\n "Enter the host": "Enter the host",\n "Enter the IP or DNS name of the server on which the RPC for Aria2 is running (default: localhost)":\n "Enter the IP or DNS na
);
/***/
},
/***/ "./src/js/translate/es_ES.js":
/*!***********************************!*\
!*** ./src/js/translate/es_ES.js ***!
\***********************************/
/*! no static exports found */
/***/ function(module, exports) {
eval(
'// This text is a template of translation list.\n\n// pre: ll_CC, locale name, examples: en_US, zh_CN\n// 1. Copy and rename to ll_CC.js, translate these words.\n// 2. in js/init.js:\n// Add \'.translations(\'ll_CC\', translations.ll_CC)\' before \'.determinePreferredLanguage();\'\n// 3. in index.html\n// Add \'<script src="js/translate/ll_CC.js"></script>\' after \'<script src="js/libs/angular-translate.js"></script>\'\n// 4. To add Language to changeLanguage button, see "{{ \'Language\' | translate }}" in index.html.\n// flag-icon usage:\n// https://github.com/lipis/flag-icon-css\n// 5. Browser determining preferred language automatically.\n// http://angular-translate.github.io/docs/en/#/guide/07_multi-language\n\nif (typeof translations == "undefined") {\n translations = {};\n}\n\ntranslations.es_ES = {\n // replace en_US to ll_CC, examples: zh_CN, de_AT.\n // header\n Search: "Buscar",\n // Nav menu\n Add: "Añadir",\n "By URIs": "URIs",\n "By Torrents": "Torrents",\n "By Metalinks": "Metalinks",\n Manage: "Administrar",\n "Pause All": "Pausar Todos",\n "Resume Paused": "Reanudar Pausados",\n "Purge Completed": "Purgar Completados",\n "Shutdown Server": "Desactivar servidor",\n Settings: "Ajustes",\n "Connection Settings": "Ajustes de Conexión",\n "Global Settings": "Ajustes Globales",\n "Server info": "Info de Servidor",\n "About and contribute": "Acerca y Colaborar",\n "Toggle navigation": "Conmutar Navegación",\n // body\n // nav side bar\n Miscellaneous: "Otros",\n "Global Statistics": "Estadísticas Globales",\n About: "Acerca de",\n Displaying: "Mostrando",\n of: "de",\n downloads: "descargas",\n Language: "Idioma",\n // download filters\n "Download Filters": "Filtros de Descargas",\n Running: "Procesando",\n Active: "Activo",\n Waiting: "Esperando",\n Complete: "Completo",\n Error: "Error",\n Paused: "En Pausa",\n Removed: "Eliminado",\n "Hide linked meta-data": "Ocultar metadatos adjuntos",\n Toggle: "Conmutar",\n "Reset filters": "Restablecer Filtros",\n // download status\n Verifing: "Verificando",\n "Verify Pending": "Pendiente de verificación",\n // starred properties\n "Quick Access Settings": "Ajustes Rápidos",\n Save: "Guardar",\n "Save settings": "Guardar Ajustes",\n "Currently no download in line to display, use the":\n "En este momento no hay descargas para mostrar. ¡Use la opción",\n "download button to start downloading files!": "para empezar a descargar sus archivos!",\n Peers: "Pares",\n "More Info": "Mas Info",\n Remove: "Eliminar",\n "# of": "# de",\n Length: "Longitud",\n // modals\n "Add Downloads By URIs": "Añadir descargas por URIs",\n "- You can add multiple downloads (files) at the same time by putting URIs for each file on a separate line.":\n "Añada varias descargas colocando la URI de cada descarga en una línea separada.",\n "- You can also add multiple URIs (mirrors) for the *same* file. To do this, separate the URIs by a space.":\n "Puede añadir URIs de espejo para *el mismo* archivo. Separe cada URI con un espacio.",\n "- A URI can be HTTP(S)/FTP/BitTorrent-Magnet.":\n "Una URI puede ser HTTP(S), FTP, BitTorrent o Magnet.",\n "Download settings": "Ajustes de Descargas",\n "Advanced settings": "Ajustes Avanzados",\n Cancel: "Cancelar",\n Start: "Iniciar",\n Choose: "Escoja",\n "Quick Access (shown on the main page)": "Acceso Rápido (Se muestra en la pág principal)",\n // add torrent modal\n "Add Downloads By Torrents": "Añadir descargas Torrent",\n "- Select the torrent from the local filesystem to start the download.":\n "Seleccione el archivo Torrent de su equipo para iniciar la descarga",\n "- You can select multiple torrents to start multiple downloads.":\n "Puede seleccionar varios torrents",\n "- To add a BitTorrent-Magnet URL, use the Add By URI option and add it there.":\n "Para los enlaces Magnet, salga de este cuadro y use la opción Añadir URI",\n "Select Torrents": "Escoja los Torrents",\n "Select a Torrent": "Escoja el Torrent",\n // a
);
/***/
},
/***/ "./src/js/translate/fa_IR.js":
/*!***********************************!*\
!*** ./src/js/translate/fa_IR.js ***!
\***********************************/
/*! no static exports found */
/***/ function(module, exports) {
eval(
'if (typeof translations == "undefined") {\n translations = {};\n}\n\ntranslations.fa_IR = {\n // header\n Search: "جستجو",\n // Nav menu\n Add: "اضافه کردن",\n "By URIs": "بر اساس مسیر سایت",\n "By Torrents": "بر اساس تورنت",\n "By Metalinks": "بر اساس متا لینک",\n Manage: "مدیریت",\n "Pause All": "توقف همه",\n "Resume Paused": "ادامه متوقف شده ها",\n "Purge Completed": "حذف تکمیل شده ها",\n "Shutdown Server": "خاموش کردن سرور",\n Settings: "تنظیمات",\n "Connection Settings": "تنظیمات ارتباط",\n "Global Settings": "تنظیمات سراسری",\n "Server info": "اطلاعات سرور",\n "About and contribute": "درباره و مشارکت",\n "Toggle navigation": "تغییر ناوبری",\n // body\n // nav side bar\n Miscellaneous: "متفرقه",\n "Global Statistics": "آمار سراسری",\n About: "درباره",\n Displaying: "نمایش",\n of: "از",\n downloads: "دانلودها",\n Language: "زبان",\n // download filters\n "Download Filters": "دانلود فیلترها",\n Running: "در حال اجرا",\n Active: "فعال",\n Waiting: "در انتظار",\n Complete: "تمام شده",\n Error: "خطا",\n Paused: "متوقف شده",\n Removed: "حذف شده",\n "Hide linked meta-data": "مخفی کردن متا داده مرتبط",\n Toggle: "تغییر وضعیت",\n "Reset filters": "حذف فیلترها",\n // download status\n Verifing: "تأیید کردن",\n "Verify Pending": "تأیید کردن در انتظارها",\n // starred properties\n "Quick Access Settings": "تنظیمات دسترسی سریع",\n Save: "ذخیره",\n "Save settings": "ذخیره تنظیمات",\n "Currently no download in line to display, use the":\n "در حال حاضر هیچ دانلودی برای نمایش وجود ندارد، استفاده از",\n "download button to start downloading files!": "دکمه دانلود برای شروع دانلود فایل ها!",\n Peers: "همتایان",\n "More Info": "اطلاعات بیشتر",\n Remove: "حذف",\n "# of": "از #",\n Length: "طول",\n // modals\n "Add Downloads By URIs": "اضافه کردن دانلود توسط لینک ها",\n "- You can add multiple downloads (files) at the same time by putting URIs for each file on a separate line.":\n "- شما می توانید چند بار دانلود (فایل ها) را همزمان با قرار دادن URI ها برای هر فایل در یک خط جداگانه اضافه کنید.",\n "- You can also add multiple URIs (mirrors) for the *same* file. To do this, separate the URIs by a space.":\n "- شما همچنین می توانید URI های متعدد (آینه ها) را برای فایل *همان* اضافه کنید. برای انجام این کار، URI ها را با یک فضای جداگانه جدا کنید.",\n "- A URI can be HTTP(S)/FTP/BitTorrent-Magnet.":\n "- یک URI می تواند HTTP (S) / FTP / BitTorrent-Magnet باشد.",\n "Download settings": "تنظیمات دانلود",\n "Advanced settings": "تنظیمات پیشرفته",\n Cancel: "لغو",\n Start: "شروع",\n Choose: "انتخاب",\n "Quick Access (shown on the main page)": "دسترسی سریع (نشان داده شده در صفحه اصلی)",\n // add torrent modal\n "Add Downloads By Torrents": "اضافه کردن دانلود توسط تورنت",\n "- Select the torrent from the local filesystem to start the download.":\n "- تورنت را از سیستم فایل محلی انتخاب کنید تا دانلود را شروع کنید.",\n "- You can select multiple torrents to start multiple downloads.":\n "- شما می توانید چندین تورنت را برای شروع بارگیری چندگانه انتخاب کنید.",\n "- To add a BitTorrent-Magnet URL, use the Add By URI option and add it there.":\n "- برای اضافه کردن U
);
/***/
},
/***/ "./src/js/translate/fr_FR.js":
/*!***********************************!*\
!*** ./src/js/translate/fr_FR.js ***!
\***********************************/
/*! no static exports found */
/***/ function(module, exports) {
eval(
'if (typeof translations == "undefined") {\n translations = {};\n}\n\ntranslations.fr_FR = {\n // header\n Search: "Rechercher",\n // Nav menu\n Add: "Ajouter",\n "By URIs": "Par URIs",\n "By Torrents": "Par Torrents",\n "By Metalinks": "Par Metaliens",\n Manage: "Gérer",\n "Pause All": "Tout suspendre",\n "Resume Paused": "Reprendre",\n "Purge Completed": "Nettoyer les fichiers complétés",\n Settings: "Paramètres",\n "Connection Settings": "Paramètres de connexion",\n "Global Settings": "Paramètres globaux",\n "Server info": "Informations serveur",\n "About and contribute": "À propos et contribuer",\n "Toggle navigation": "Basculer la navigation",\n // body\n // nav side bar\n Miscellaneous: "Autres",\n "Global Statistics": "Statistiques globales",\n About: "À propos",\n Displaying: "Affichage de",\n of: "parmi",\n downloads: "téléchargements",\n Language: "Langue",\n // download filters\n "Download Filters": "Filtres de téléchargement",\n Running: "En cours",\n Active: "Actifs",\n Waiting: "En attente",\n Complete: "Complétés",\n Error: "Erreurs",\n Paused: "En pause",\n Removed: "Supprimés",\n "Hide linked meta-data": "Cacher les métadonnées liées",\n Toggle: "Basculer",\n "Reset filters": "Réinitialiser les filtres",\n // download status\n Verifing: "Vérification",\n "Verify Pending": "Vérification en attente",\n // starred properties\n "Quick Access Settings": "Paramètres d\'accès rapide",\n Save: "Sauvegarder",\n "Save settings": "Sauvegarder les paramètres",\n "Currently no download in line to display, use the":\n "Aucun téléchargement dans la file d\'attente, utilisez le bouton de téléchargement",\n "download button to start downloading files!": "pour commencer à télécharger des fichiers !",\n Peers: "Pairs",\n "More Info": "Plus d\'infos",\n Remove: "Supprimer",\n "# of": "# parmi",\n Length: "Longueur",\n // modals\n "Add Downloads By URIs": "Ajouter des téléchargements depuis des URIs",\n "- You can add multiple downloads (files) at the same time by putting URIs for each file on a separate line.":\n "Vous pouvez ajouter plusieurs téléchargements (fichiers) en même temps, en mettant une URI pour chaque fichier sur une nouvelle ligne",\n "- You can also add multiple URIs (mirrors) for the *same* file. To do this, separate the URIs by a space.":\n "Vous pouvez aussi ajouter plusieurs URIs (mirroirs) pour le *même* fichier. Pour ce faire, séparez les URIs par un espace.",\n "- A URI can be HTTP(S)/FTP/BitTorrent-Magnet.":\n "Une URI peut être HTTP(S)/FTP/BitTorrent-Magnet.",\n "Download settings": "Paramètres de téléchargement",\n "Advanced settings": "Paramètres avancés",\n Cancel: "Annuler",\n Start: "Démarrer",\n Choose: "Choisir",\n "Quick Access (shown on the main page)": "Accès rapide (affiché sur la page principale",\n // add torrent modal\n "Add Downloads By Torrents": "Ajouter des téléchargements à partir de fichiers Torrent",\n "- Select the torrent from the local filesystem to start the download.":\n "- Sélectionnez le torrent depuis votre système de fichier local pour commencer le téléchargement.",\n "- You can select multiple torrents to start multiple downloads.":\n "Vous pouvez sélectionner plusieurs torrents pour commencer plusieurs téléchargements.",\n "- To add a BitTorrent-Magnet URL, use the Add By URI option and add it there.":\n "Pour ajouter une URL BitTorrent-Magnet, utilisez l\'option Ajouter par URIs et ajoutez-la à ce niveau.",\n "Select Torrents": "Sélectionner des Torrents",\n "Select a Torrent": "Sélectionner un Torrent",\n // add metalink modal\n "Add Downloads By Metalinks": "Ajouter des téléchargements par Metaliens",\n "Select Metalinks": "Sélectionner des Métaliens",\n "- Select the Metalink from the local filesystem to start the download.":\n "Sélectionner le Métalien depuis votre système de fichier local pour commencer le téléchargement.",\n "- You can select multiple Metalinks to start multiple downl
);
/***/
},
/***/ "./src/js/translate/id_ID.js":
/*!***********************************!*\
!*** ./src/js/translate/id_ID.js ***!
\***********************************/
/*! no static exports found */
/***/ function(module, exports) {
eval(
'if (typeof translations == "undefined") {\n translations = {};\n}\n\ntranslations.id_ID = {\n // replace en_US to ll_CC, examples: zh_CN, de_AT.\n // header\n Search: "Telusuri",\n // Nav menu\n Add: "Tambah",\n "By URIs": "Dari URI",\n "By Torrents": "Dari Torrent",\n "By Metalinks": "Dari Metalink",\n Manage: "Kelola",\n "Pause All": "Jeda Semua",\n "Resume Paused": "Lanjut yang Dijeda",\n "Purge Completed": "Hapus yang Terunduh",\n "Shutdown Server": "Matikan Peladen",\n Settings: "Pengaturan",\n "Connection Settings": "Pengaturan Koneksi",\n "Global Settings": "Pengaturan Global",\n "Server info": "Info peladen",\n "About and contribute": "Tentang dan kontribusi",\n "Toggle navigation": "Alihkan navigasi",\n // body\n // nav side bar\n Miscellaneous: "Lain-lain",\n "Global Statistics": "Statistik Global",\n About: "Tentang",\n Displaying: "Tampilan",\n of: "dari",\n downloads: "unduhan",\n Language: "Bahasa",\n // download filters\n "Download Filters": "Saring Unduhan",\n Running: "Berjalan",\n Active: "Aktif",\n Waiting: "Menunggu",\n Complete: "Selesai",\n Error: "Galat",\n Paused: "Dijeda",\n Removed: "Dihapus",\n "Hide linked meta-data": "Sembunyikan tautan meta-data",\n Toggle: "Tombol alihan",\n "Reset filters": "Reset penyaring",\n // download status\n Verifing: "Memverifikasi",\n "Verify Pending": "Verifikasi Ditunda",\n // starred properties\n "Quick Access Settings": "Pengaturan Akses Cepat",\n Save: "Simpan",\n "Save settings": "Simpan pengaturan",\n "Currently no download in line to display, use the":\n "Sekarang tak ada unduhan yang ditampilkan, gunakan",\n "download button to start downloading files!": "tombol unduh untuk mulai mengunduh berkas!",\n Peers: "Peer",\n "More Info": "Info Lengkap",\n Remove: "Hapus",\n "# of": "# dari",\n Length: "Ukuran",\n // modals\n "Add Downloads By URIs": "Unduh dari URI",\n "- You can add multiple downloads (files) at the same time by putting URIs for each file on a separate line.":\n "- Anda dapat menambah banyak unduhan (berkas) sekali waktu dg menaruh URI setiap berkas dlm baris terpisah.",\n "- You can also add multiple URIs (mirrors) for the *same* file. To do this, separate the URIs by a space.":\n "- Anda juga dapat menambah banyak URI (cermin) untuk berkas yang *sama*. Pisahkan URI dengan spasi.",\n "- A URI can be HTTP(S)/FTP/BitTorrent-Magnet.":\n "- URI dapat berbentuk HTTP(S)/FTP/BitTorrent-Magnet.",\n "Download settings": "Pengaturan unduhan",\n "Advanced settings": "Pengaturan mahir",\n Cancel: "Batal",\n Start: "Mulai",\n Choose: "Pilih",\n "Quick Access (shown on the main page)": "Akses Cepat (terlihat di laman utama)",\n // add torrent modal\n "Add Downloads By Torrents": "Unduh dari Torrent",\n "- Select the torrent from the local filesystem to start the download.":\n "- Pilih torrent dari sistem berkas lokal untuk mulai mengunduh.",\n "- You can select multiple torrents to start multiple downloads.":\n "Anda dapat memilih banyak torrent untuk memulai multi unduh.",\n "- To add a BitTorrent-Magnet URL, use the Add By URI option and add it there.":\n "Untuk menambah BitTorrent-Magnet URL, pakai opsi Tambah dari URI dan tambahkan di situ.",\n "Select Torrents": "Pilih Torrent",\n "Select a Torrent": "Pilih Torrent",\n // add metalink modal\n "Add Downloads By Metalinks": "Unduh dari Metalink",\n "Select Metalinks": "Pilih Metalink",\n "- Select the Metalink from the local filesystem to start the download.":\n "- Pilih Metalink dari sistem berkas lokal untuk mulai mengunduh.",\n "- You can select multiple Metalinks to start multiple downloads.":\n "- Anda dapat memilih banyak Metalink untuk mulai multi unduh.",\n "Select a Metalink": "Pilih Metalink",\n // select file modal\n "Choose files to start download for": "Pilih berkas untuk mulai mengunduh",\n "Select to download": "Pilih untuk mengunduh",\n // settings modal\n "Aria2 RPC host and port": "Port dan host RPC Aria2",\n "Enter the host": "Masukkan host",\n "Enter the IP or D
);
/***/
},
/***/ "./src/js/translate/it_IT.js":
/*!***********************************!*\
!*** ./src/js/translate/it_IT.js ***!
\***********************************/
/*! no static exports found */
/***/ function(module, exports) {
eval(
'if (typeof translations == "undefined") {\n translations = {};\n}\n\ntranslations.it_IT = {\n // header\n Search: "Cerca",\n // Nav menu\n Add: "Aggiungi",\n "By URIs": "Da URIs",\n "By Torrents": "Da Torrent",\n "By Metalinks": "Da Metalink",\n Manage: "Gestione",\n "Pause All": "Ferma tutto",\n "Resume Paused": "Riprendi fermati",\n "Purge Completed": "Togli i completi",\n Settings: "Impostazioni",\n "Connection Settings": "Impostazioni di connessione",\n "Global Settings": "Impostazioni globali",\n "Server info": "Informazioni sul server",\n "About and contribute": "Crediti e informazioni",\n "Toggle navigation": "Cambia navigazione",\n // body\n // nav side bar\n Miscellaneous: "Varie",\n "Global Statistics": "Statistiche globali",\n About: "Info",\n Displaying: "Mostra",\n of: "di",\n downloads: "downloads",\n Language: "Lingua",\n // download filters\n "Download Filters": "Filtri download",\n Running: "In corso",\n Active: "Attivi",\n Waiting: "In attesa",\n Complete: "Completi",\n Error: "Errore",\n Paused: "In pausa",\n Removed: "Rimossi",\n "Hide linked meta-data": "Nascondi i meta-data collegati",\n Toggle: "Cambia",\n "Reset filters": "Reimposta filtri",\n // starred properties\n "Quick Access Settings": "Accesso rapido",\n "Save settings": "Salva impostazioni",\n "Currently no download in line to display, use the":\n "Attualmente non c\'è nessun download da mostrare, usa il pulsante ",\n "download button to start downloading files!": "dowload per cominciare a scaricare!",\n Peers: "Peers",\n "More Info": "Altre informazioni",\n Remove: "Rimuovi",\n "# of": "# di",\n Length: "Lunghezza",\n // modals\n "Add Downloads By URIs": "Aggiungi Downloads da URIs",\n "- You can add multiple downloads (files) at the same time by putting URIs for each file on a separate line.":\n "- Puoi aggungere più download(files) allo stesso tempo mettendo un\'URI per riga.",\n "- You can also add multiple URIs (mirrors) for the *same* file. To do this, separate the URIs by a space.":\n "- Puoi anche aggiungere più URI di download(mirror) per uno *stesso* file separando i vari mirror da uno spazio.",\n "- A URI can be HTTP(S)/FTP/BitTorrent-Magnet.":\n "- Un URI può essere un indirizzo HTTP(S)/FTP o un BitTorrent Magnet link.",\n "Download settings": "Impostazioni download",\n "Advanced settings": "Impostazioni avanzate",\n Cancel: "Cancella",\n Start: "Aggiungi",\n Choose: "Scegli",\n "Quick Access (shown on the main page)": "Accesso rapido (mostrato nella pagina principale)",\n // add torrent modal\n "Add Downloads By Torrents": "Aggiungi Torrent",\n "- Select the torrent from the local filesystem to start the download.":\n "- Seleziona il file torrent dal tuo computer per iniziare a scaricare.",\n "- You can select multiple torrents to start multiple downloads.":\n "- Puoi aggiungere anche più file contemporaneamente per iniziare più dowload insieme.",\n "- To add a BitTorrent-Magnet URL, use the Add By URI option and add it there.":\n "- Per aggiungere un Magnet Link BitTorrent utilizza l\'opzione Aggiungi da URI.",\n "Select Torrents": "Seleziona Torrents",\n "Select a Torrent": "Seleziona un Torrent",\n // add metalink modal\n "Add Downloads By Metalinks": "Aggiungi Torrent da Metalink",\n "Select Metalinks": "Seleziona Metalink",\n "- Select the Metalink from the local filesystem to start the download.":\n "- Seleziona un Metalink dal tuo computer per iniziare il download.",\n "- You can select multiple Metalinks to start multiple downloads.":\n "- Puoi iniziare anche più download selezionando più Metalink.",\n "Select a Metalink": "Seleziona un Metalink",\n // select file modal\n "Choose files to start download for": "Scegli i file da scaricare",\n "Select to download": "Seleziona per scaricare",\n // settings modal\n "Aria2 RPC host and port": "Host e porta del server RPC di Aria2",\n "Enter the host": "Inserisci l\'host",\n "Enter the IP or DNS name of the server on which the RPC for Aria2 is runnin
);
/***/
},
/***/ "./src/js/translate/nl_NL.js":
/*!***********************************!*\
!*** ./src/js/translate/nl_NL.js ***!
\***********************************/
/*! no static exports found */
/***/ function(module, exports) {
eval(
'if (typeof translations == "undefined") {\n translations = {};\n}\n\ntranslations.nl_NL = {\n // header\n Search: "Zoeken",\n // Nav menu\n Add: "Toevoegen",\n "By URIs": "met URI",\n "By Torrents": "met Torrents",\n "By Metalinks": "met Metalinks",\n Manage: "Beheren",\n "Pause All": "Alles pauzeren",\n "Resume Paused": "Hervatten",\n "Purge Completed": "Verwijder de voleindigden",\n Settings: "Instellingen",\n "Connection Settings": "Verbindingsinstellingen",\n "Global Settings": "Globale instellingen",\n "Server info": "Informatie over de server",\n "About and contribute": "Over het project en bijdragen",\n "Toggle navigation": "Navigatie omschakelen",\n Language: "Taal",\n // body\n // nav side bar\n Miscellaneous: "Overig",\n "Global Statistics": "Globale statistieken",\n About: "Over het project",\n Displaying: " ", // empty because of grammar in the following 2 elements\n of: "van",\n downloads: "downloads weergegeven",\n // download filters\n "Download Filters": "Download filters",\n Running: "Bezig",\n Active: "Actief",\n Waiting: "Wachtend",\n Complete: "Voleindigd",\n Error: "Foutief",\n Paused: "Gepauzeerd",\n Removed: "Verwijderd",\n "Hide linked meta-data": "Gekoppelde metadata verbergen",\n Toggle: "Omschakelen",\n "Reset filters": "Filters terugzetten",\n // starred properties\n "Quick Access Settings": "Snelle-toegang instellingen",\n "Save settings": "Instellingen opslaan",\n "Currently no download in line to display, use the":\n "Momenteel geen downloads weer te geven, gebruik de ",\n "download button to start downloading files!": "knop om bestanden te gaan downloaden!",\n Peers: "Peers",\n "More Info": "Meer informatie",\n Remove: "Verwijderen",\n "# of": "Aantal",\n Length: "Lengte",\n // modals\n "Add Downloads By URIs": "Downloads toevoegen met URI",\n "- You can add multiple downloads (files) at the same time by putting URIs for each file on a separate line.":\n "- Je kunt meerdere downloads (bestanden) tezelfdertijd toevoegen door de URIs voor elk bestand op een aparte regel te zetten.",\n "- You can also add multiple URIs (mirrors) for the *same* file. To do this, separate the URIs by a space.":\n "- Je kunt ook meerdere URIs (mirrors) voor *hetzelfde* bestand toevoegen. Scheidt hiervoor de URIs met een spatie.",\n "- A URI can be HTTP(S)/FTP/BitTorrent-Magnet.":\n "- Een URI kan HTTP(S)/FTP/BitTorrent-Magnet zijn.",\n "Download settings": "Download instellingen",\n "Advanced settings": "Geavanceerde instellingen",\n Cancel: "Annuleren",\n Start: "Starten",\n Choose: "Kiezen",\n "Quick Access (shown on the main page)": "Snelle toegang (op de hoofdpagina)",\n // add torrent modal\n "Add Downloads By Torrents": "Downloads toevoegen met torrents",\n "- Select the torrent from the local filesystem to start the download.":\n "- Selecteer de torrent van het locale bestandssysteem om de download te starten.",\n "- You can select multiple torrents to start multiple downloads.":\n "- Je kunt meerdere torrents selecteren voor meerdere downloads.",\n "- To add a BitTorrent-Magnet URL, use the Add By URI option and add it there.":\n "- Om een BitTorrent-Magnet URL toe te voegen, gebruik de Toevoegen met URI optie, en voeg het daar toe.",\n "Select Torrents": "Selecteer torrents",\n "Select a Torrent": "Selecteer een torrent",\n // add metalink modal\n "Add Downloads By Metalinks": "Download toevoegen met Metalinks",\n "Select Metalinks": "Selecteer Metalinks",\n "- Select the Metalink from the local filesystem to start the download.":\n "- Selecteer de Metalink van het locale bestandssysteem om de download te starten.",\n "- You can select multiple Metalinks to start multiple downloads.":\n "- Selecter meerdere Metalinks om meerdere downloads te starten.",\n "Select a Metalink": "Selecteer een Metalink",\n // select file modal\n "Choose files to start download for": "Bestanden kiezen waarvoor het downloaden beginnen moet",\n "Select to download": "Selecteer om te downloaden",\n // settings mod
);
/***/
},
/***/ "./src/js/translate/pl_PL.js":
/*!***********************************!*\
!*** ./src/js/translate/pl_PL.js ***!
\***********************************/
/*! no static exports found */
/***/ function(module, exports) {
eval(
'if (typeof translations == "undefined") {\n translations = {};\n}\n\ntranslations.pl_PL = {\n // header\n Search: "Szukaj",\n // Nav menu\n Add: "Dodaj",\n "By URIs": "Przez URL",\n "By Torrents": "Przez Torrenty",\n "By Metalinks": "Przez Metalinki",\n Manage: "Zarządzaj",\n "Pause All": "Zatrzymaj wszystkie",\n "Resume Paused": "Wznów zatrzymane",\n "Purge Completed": "Czyść zakończone",\n Settings: "Ustawienia",\n "Connection Settings": "Ustawienia połączenia",\n "Global Settings": "Ustawienia globalne",\n "Server info": "Informacje o serwerze",\n "About and contribute": "O projekcie",\n "Toggle navigation": "Przełącz nawigację",\n // body\n // nav side bar\n Miscellaneous: "Różne",\n "Global Statistics": "Statystyki globalne",\n About: "O",\n Displaying: "Wyświetlanie",\n of: "z",\n downloads: "pobranych plików",\n Language: "Język",\n // download filters\n "Download Filters": "Filtry ściągania",\n Running: "Uruchomione",\n Active: "Aktywne",\n Waiting: "Oczekujące",\n Complete: "Zakończone",\n Error: "Błąd",\n Paused: "Zatrzymane",\n Removed: "Usunięte",\n "Hide linked meta-data": "Ukryj zalinkowane meta-dane",\n Toggle: "Przełącz",\n "Reset filters": "Reset filtrów",\n // starred properties\n "Quick Access Settings": "Ustawienia szybkiego dostępu",\n "Save settings": "Zapisz ustawienia",\n "Currently no download in line to display, use the":\n "Obecnie nie można wyświetlić żadnych pobieranych plików. Użyj przycisku",\n "download button to start downloading files!": "aby rozpocząć ściąganie plików!",\n Peers: "Peerów",\n "More Info": "Więcej info",\n Remove: "Usuń",\n "# of": "# z",\n Length: "Długość",\n // modals\n "Add Downloads By URIs": "Dodaj pobieranie przez URI",\n "- You can add multiple downloads (files) at the same time by putting URIs for each file on a separate line.":\n "- Możesz dodać wiele pobrań (plików) w tym samym czasie przez wprowadzenie URI dla każdego w oddzielnej linii.",\n "- You can also add multiple URIs (mirrors) for the *same* file. To do this, separate the URIs by a space.":\n "- Możesz także dodać wiele URI (luster) dla tego *samego* pliku. Zrób to, poprzez oddzielenie URI od siebie spacją.",\n "- A URI can be HTTP(S)/FTP/BitTorrent-Magnet.": "- URI może być HTTP(S)/FTP/BitTorrent-Magnet.",\n "Download settings": "Ustawienia pobierania",\n "Advanced settings": "Zaawansowane ustawienia",\n Cancel: "Anuluj",\n Start: "Rozpocznij",\n Choose: "Wybierz",\n "Quick Access (shown on the main page)": "Szybki dostęp (pokazywane na głównej stronie)",\n // add torrent modal\n "Add Downloads By Torrents": "Dodaj pobierania przez Torrenty",\n "- Select the torrent from the local filesystem to start the download.":\n "- Wybierz torrent z lokalnego systemu plików, aby rozpocząć pobieranie.",\n "- You can select multiple torrents to start multiple downloads.":\n "- Możesz wybrać wiele torrentów do rozpoczęcia wiele pobrań.",\n "- To add a BitTorrent-Magnet URL, use the Add By URI option and add it there.":\n "- Aby dodać BitTorrent-URL Magnetyczny, użyj opcji dodawania przez URI i dodaj to tutaj.",\n "Select Torrents": "Wybierz Torrenty",\n "Select a Torrent": "Wybierz Torrent",\n // add metalink modal\n "Add Downloads By Metalinks": "Dodaj pobierania przez Metalinki",\n "Select Metalinks": "Wybierz Metalinki",\n "- Select the Metalink from the local filesystem to start the download.":\n "- Wybierz Metalinki z lokalnego systemu plików, aby rozpocząć pobieranie.",\n "- You can select multiple Metalinks to start multiple downloads.":\n "- Możesz wybrać wiele Metalinków, aby rozpocząć wiele pobrań.",\n "Select a Metalink": "Wybierz Metalink",\n // select file modal\n "Choose files to start download for": "Wybierz pliki, aby rozpocząć pobieranie dla",\n "Select to download": "Wybierz do pobierania",\n // settings modal\n "Aria2 RPC host and port": "Aria2 RPC host i port",\n "Enter the host": "Wprowadź host",\n "En
);
/***/
},
/***/ "./src/js/translate/pt_BR.js":
/*!***********************************!*\
!*** ./src/js/translate/pt_BR.js ***!
\***********************************/
/*! no static exports found */
/***/ function(module, exports) {
eval(
'if (typeof translations == "undefined") {\n translations = {};\n}\n\ntranslations.pt_BR = {\n // replace en_US to ll_CC, examples: zh_CN, de_AT.\n // header\n Search: "Buscar",\n // Nav menu\n Add: "Adicionar",\n "By URIs": "Por URIs",\n "By Torrents": "Por Torrents",\n "By Metalinks": "Por Metalinks",\n Manage: "Gerenciar",\n "Pause All": "Pausar Todos",\n "Resume Paused": "Retomar Pausados",\n "Purge Completed": "Remover Completados",\n "Shutdown Server": "Desligar Servidor",\n Settings: "Configurações",\n "Connection Settings": "Configurações de Conexão",\n "Global Settings": "Configurações Globais",\n "Server info": "Informações do Servidor",\n "About and contribute": "Sobre e contribuições",\n "Toggle navigation": "Alternar navegação",\n // body\n // nav side bar\n Miscellaneous: "Miscelânia",\n "Global Statistics": "Estatísticas Globais",\n About: "Sobre",\n Displaying: "Mostrando",\n of: "de",\n downloads: "downloads",\n Language: "Linguagem",\n // download filters\n "Download Filters": "Filtros de Download",\n Running: "Rodando",\n Active: "Ativo",\n Waiting: "Esperando",\n Complete: "Completo",\n Error: "Erro",\n Paused: "Pausado",\n Removed: "Removido",\n "Hide linked meta-data": "Esconder metadados ligados",\n Toggle: "Alternar",\n "Reset filters": "Limpar filtros",\n // download status\n Verifing: "Verificando",\n "Verify Pending": "Verificação Pendente",\n // starred properties\n "Quick Access Settings": "Acesso Rápido às Configurações",\n Save: "Salvar",\n "Save settings": "Salvar configurações",\n "Currently no download in line to display, use the":\n "No momento não existem downloads para mostrar, utilize botão",\n "download button to start downloading files!": "pra iniciar a transferência de arquivos!",\n Peers: "Peers",\n "More Info": "Mais informações",\n Remove: "Remover",\n "# of": " de",\n Length: "Tamanho",\n // modals\n "Add Downloads By URIs": "Adicionar Downloads por URIs",\n "- You can add multiple downloads (files) at the same time by putting URIs for each file on a separate line.":\n "- Você pode adicionar múltiplos downloads (arquivos) ao mesmo tempo inserindo a URI de cada arquivo em uma linha separada.",\n "- You can also add multiple URIs (mirrors) for the *same* file. To do this, separate the URIs by a space.":\n "- Você também pode adicionar múltiplas URIs (mirrors) para o *mesmo* arquivo. Para fazer isto, separe as URIs por um espaço.",\n "- A URI can be HTTP(S)/FTP/BitTorrent-Magnet.":\n "- Uma URI pode ser HTTP(S)/FTP/BitTorrent-Magnet.",\n "Download settings": "Configurações de download",\n "Advanced settings": "Configurações avançadas",\n Cancel: "Cancelar",\n Start: "Iniciar",\n Choose: "Escolher",\n "Quick Access (shown on the main page)": "Acesso Rápido (exibido na página principal)",\n // add torrent modal\n "Add Downloads By Torrents": "Adicionar Downloads por Torrents",\n "- Select the torrent from the local filesystem to start the download.":\n "- Selecione o torrent de seu sistema de arquivos local para iniciar o download.",\n "- You can select multiple torrents to start multiple downloads.":\n "- Você pode selecionar múltiplos torrents para iniciar múltiplos downloads.",\n "- To add a BitTorrent-Magnet URL, use the Add By URI option and add it there.":\n "- Para adicionar uma URL BitTorrent-Magnet, utilize a opção Adicionar por URI.",\n "Select Torrents": "Selecione Torrents",\n "Select a Torrent": "Selecione um Torrent",\n // add metalink modal\n "Add Downloads By Metalinks": "Adicionar Downloads por Metalinks",\n "Select Metalinks": "Selecione Metalinks",\n "- Select the Metalink from the local filesystem to start the download.":\n "- Selecione o Metalink do seu sistema de arquivos local para iniciar o download.",\n "- You can select multiple Metalinks to start multiple downloads.":\n "- Você pode selecionar múltiplos Metalinks para iniciar múltiplos downloads.",\n "Select a Metalink": "Selecione um Metalin
);
/***/
},
/***/ "./src/js/translate/ru_RU.js":
/*!***********************************!*\
!*** ./src/js/translate/ru_RU.js ***!
\***********************************/
/*! no static exports found */
/***/ function(module, exports) {
eval(
'if (typeof translations == "undefined") {\n translations = {};\n}\n\ntranslations.ru_RU = {\n // header\n Search: "Поиск",\n // Nav menu\n Add: "Добавить",\n "By URIs": "URL-адреса",\n "By Torrents": "Torrent-файлы",\n "By Metalinks": "Metalink-файлы",\n Manage: "Управление",\n "Pause All": "Приостановить всё",\n "Resume Paused": "Возобновить всё",\n "Purge Completed": "Удалить завершенные",\n Settings: "Настройки",\n "Connection Settings": "Настройки соединения",\n "Global Settings": "Глобальные настройки",\n "Server info": "Информация о сервере",\n "About and contribute": "Информация и сотрудничество",\n "Toggle navigation": "Переключение навигации",\n // body\n // nav side bar\n Miscellaneous: "Разное",\n "Global Statistics": "Глобальная статистика",\n About: "Об",\n Displaying: "Показано",\n of: "из",\n downloads: "загрузок",\n Language: "Язык",\n // download filters\n "Download Filters": "Фильтр загрузок",\n Running: "Запущенные",\n Active: "Активные",\n Waiting: "Ожидающие",\n Complete: "Завершенные",\n Error: "С ошибками",\n Paused: "Приостановленные",\n Removed: "Удаленные",\n "Hide linked meta-data": "Скрыть связанные метаданные",\n Toggle: "Переключить",\n "Reset filters": "Сбросить фильтры",\n // starred properties\n "Quick Access Settings": "Настройки быстрого доступа",\n "Save settings": "Сохранить настройки",\n "Currently no download in line to display, use the":\n "На данный момент ничего не загружается, используйте кнопку",\n "download button to start downloading files!": "чтобы начать загрузку файла!",\n Peers: "Пиры",\n "More Info": "Информация",\n Remove: "Удалить",\n "# of": "# из",\n Length: "Размер",\n // modals\n "Add Downloads By URIs": "Добавить загрузки из URL-адресов",\n "- You can add multiple downloads (files) at the same time by putting URIs for each file on a separate line.":\n "- Вы можете добавить несколько загрузок (файлов) одновременно, помещая URL-адреса для каждого файла на отдельной строке.",\n "- You can also add multiple URIs (mirrors) for the *same* file. To do this, separate the URIs by a space.":\n "- Можно также добавить несколько URL-адресов (зеркал) для *одного* файла. Для этого отделите URL-адреса пробелом.",\n "- A URI can be HTTP(S)/FTP/BitTorrent-Magnet.":\n "- URL-адрес может быть HTTP(S)/FTP/BitTorrent-Magnet.",\n "Download settings": "Настройки загрузки",\n "Advanced settings": "Расширенные настройки",\n Cancel: "Отмена",\n Start: "Начать",\n Choose: "Выбрать",\n "Quick Access (shown on the main page)": "Простой доступ (смотреть на главной странице)",\n // add torrent modal\n "Add Downloads By Torrents": "Добавить загрузку из Torrent-файлов",\n "- Select the torrent from the local filesystem to start the download.":\n "- Выберите Torrent-файлы из локальной файловой системы для начала загрузку.",\n "- You can select multiple torrents to start multiple downloads.":\n "- Вы можете выбрать несколько Torrent-файлы для запуска нескольких загрузок.",\n "- To add a BitTorrent-Magnet URL, use the Add By URI option and add i
);
/***/
},
/***/ "./src/js/translate/th_TH.js":
/*!***********************************!*\
!*** ./src/js/translate/th_TH.js ***!
\***********************************/
/*! no static exports found */
/***/ function(module, exports) {
eval(
'if (typeof translations == "undefined") {\n translations = {};\n}\n\ntranslations.th_TH = {\n // header\n Search: "ค้นหา",\n // Nav menu\n Add: "เพื่ม",\n "By URIs": "ด้วยยูอาร์ไอ",\n "By Torrents": "ด้วยทอร์เรนต์",\n "By Metalinks": "ด้วยเมทาลิงค์",\n Manage: "บริหาร",\n "Pause All": "หยุดชั่วคราวหมด",\n "Resume Paused": "ไปต่อหมด",\n "Purge Completed": "ลบอันเสร็จ",\n Settings: "ตั้งค่า",\n "Connection Settings": "ตั้งค่าเชื่อมต่อ",\n "Global Settings": "ตั้งค่าทั่วไป",\n "Server info": "ข้อมูลเซอร์เวอร์",\n "About and contribute": "เกี่ยวกับและช่วย",\n "Toggle navigation": "สลับนำทาง",\n Language: "ภาษา",\n // body\n // nav side bar\n Miscellaneous: "เบ็ดเตล็ด",\n "Global Statistics": "สถิติทั่วไป",\n About: "เกี่ยวกับ",\n Displaying: "แแสดงดาวน์โหลด",\n of: "อันใน",\n downloads: "อันทั้งหมด",\n // download filters\n "Download Filters": "กรองดาวน์โหลด",\n Running: "กำลังทำงาน",\n Active: "ใช้งานอยู่",\n Waiting: "กำลังรอ",\n Complete: "เสร็จ",\n Error: "ผิดพลาด",\n Paused: "หยุดอยู่",\n Removed: "ลบแล้ว",\n "Hide linked meta-data": "ซ่อนข้อมูลเมตาที่เชื่อมโยง",\n Toggle: "สลับ",\n "Reset filters": "รีเซตตัวกรอง",\n // starred properties\n "Quick Access Settings": "ตั้งค่าอย่างรวดเร็ว",\n "Save settings": "บันทึกการตั้งค่า",\n "Currently no download in line to display, use the":\n "ตอนนี้ไม่มีการดาวน์โหลดที่แสดงได้ ก็ใช้ปุ่ม",\n "download button to start downloading files!": "ให้เริ่มดาวน์โหลดไฟล์",\n Peers: "พีร์ส",\n "More Info": "ข้อมูลเพิ่ม",\n Remove: "ลบ",\n "# of": "จำนวน",\n Length: "ความยาว",\n // modals\n "Add Downloads By URIs": "เพิ่มดาวน์โหลดด้วยยูอาร์ไอ",\n "- You can add multiple downloads (files) at the same time by putting URIs for each file on a separate line.":\n "",\n "- You can also add multiple URIs (mirrors) for the *same* file. To do this, separate the URIs by a space.":\n "",\n "- A URI can be HTTP(S)/FTP/BitTorrent-Magnet.": "",\n "Download settings": "ตั้งค่าการดาวน์โหลด",\n "Advanced settings": "ตั้งค่าขั้นสูง",\n Cancel: "ยกเลิก",\n Start: "เริ่มต้น",\n Choose: "เลือก",\n "Quick Access (shown on the main page)": "ใช้งานอย่างรวดเร็ว (แสดงที่เพจหลัก)",\n // add torrent modal\n "Add Downloads By Torrents": "เพิ่มดาวน์โหลดด้วยทอร์เรนต์",\n "- Select the torrent from the local filesystem to start the download.": "",\n "- You can select multiple torrents to start multiple downloads.": "",\n "- To add a BitTorrent-Magnet URL, use the Add By URI option and add it there.": "",\n "Select Torrents": "เลือกทอร์เรนต์",\n "Select a Torrent": "เลือกทอร์เรนต์",\n // add metalink modal\n "Add Downloads By Metalinks": "เพิ่มดาวน์โหลดด้วยเมทาลิงค์",\n "Select Metalinks": "เลือกเมทาลิงค์",\n "- Select the Meta
);
/***/
},
/***/ "./src/js/translate/tr_TR.js":
/*!***********************************!*\
!*** ./src/js/translate/tr_TR.js ***!
\***********************************/
/*! no static exports found */
/***/ function(module, exports) {
eval(
'if (typeof translations == "undefined") {\n translations = {};\n}\n\ntranslations.tr_TR = {\n // header\n Search: "Arama",\n // Nav menu\n Add: "Ekle",\n "By URIs": "URI ile",\n "By Torrents": "Torrent ile",\n "By Metalinks": "Metalink ile",\n Manage: "Yönet",\n "Pause All": "Hepsini Duraklat",\n "Resume Paused": "Devam Et",\n "Purge Completed": "Temizleme Tamamlandı",\n Settings: "Ayarlar",\n "Connection Settings": "Bağlantı Ayarları",\n "Global Settings": "Genel Ayarlar",\n "Server info": "Sunucu bilgisi",\n "About and contribute": "Hakkında ve katkıda bulunanlar",\n "Toggle navigation": "Gezinmeyi aç / kapat",\n // body\n // nav side bar\n Miscellaneous: "Çeşitli",\n "Global Statistics": "Genel İstatistikler",\n About: "Hakkında",\n Displaying: "Gösteriliyor",\n of: " / ",\n downloads: "Indirme",\n Language: "Dil",\n // download filters\n "Download Filters": "İndirme Filtreleri",\n Running: "Çalışıyor",\n Active: "Aktif",\n Waiting: "Bekliyor",\n Complete: "Tamamlandı",\n Error: "Hata",\n Paused: "Duraklatıldı",\n Removed: "Silindi",\n "Hide linked meta-data": "Bağlı meta verileri gizle",\n Toggle: "aç/kapat",\n "Reset filters": "Filtreleri sıfırla",\n // starred properties\n "Quick Access Settings": "Hızlı Erişim Ayarları",\n "Save settings": "Ayarları kaydet",\n "Currently no download in line to display, use the":\n "Şu anda görüntülenebilecek bir indirme yok,",\n "download button to start downloading files!": "butonu aracılığı ile dosya indirebilirsiniz!",\n Peers: "Peers",\n "More Info": "Daha fazla bilgi",\n Remove: "Kaldır",\n "# of": "# dan",\n Length: "Uzunluk",\n // modals\n "Add Downloads By URIs": "URI kullanarak indirmelere ekle",\n "- You can add multiple downloads (files) at the same time by putting URIs for each file on a separate line.":\n "- Ayrı bir satıra her dosya için URI koyarak aynı anda birden fazla dosya indirebilirsiniz.",\n "- You can also add multiple URIs (mirrors) for the *same* file. To do this, separate the URIs by a space.":\n "- Aynı dosyalar için birden fazla URI (ayna) da ekleyebilirsiniz. Bunu yapmak için URIları bir boşlukla ayırın.",\n "- A URI can be HTTP(S)/FTP/BitTorrent-Magnet.":\n "- Bir URI, HTTP(S)/FTP/BitTorrent-Magnet olabilir.",\n "Download settings": "İndirme ayarları",\n "Advanced settings": "Gelişmiş Ayarlar",\n Cancel: "İptal et",\n Start: "Başlat",\n Choose: "Seçiniz",\n "Quick Access (shown on the main page)": "Hızlı Erişim (ana sayfada gösterilir)",\n // add torrent modal\n "Add Downloads By Torrents": "Torrent kullanarak indirmelere ekle",\n "- Select the torrent from the local filesystem to start the download.":\n "- İndirmeyi başlatmak için yerel dosya sisteminden torrenti seçin.",\n "- You can select multiple torrents to start multiple downloads.":\n "- Birden çok indirmeyi başlatmak için birden çok torrent seçebilirsiniz.",\n "- To add a BitTorrent-Magnet URL, use the Add By URI option and add it there.":\n "- BitTorrent-Magnetli bir URL eklemek için, İstek Üzerine Ekle seçeneğini kullanın ve oraya ekleyin.",\n "Select Torrents": "Torrentleri seçin",\n "Select a Torrent": "Bir Torrent seçin",\n // add metalink modal\n "Add Downloads By Metalinks": "Metalink kullanarak indirmelere ekle",\n "Select Metalinks": "Metalinkleri seçin",\n "- Select the Metalink from the local filesystem to start the download.":\n "- İndirmeyi başlatmak için yerel dosya sisteminden Metalinki seçin.",\n "- You can select multiple Metalinks to start multiple downloads.":\n "- Birden fazla yüklemeye başlamak için birden fazla Metalink seçebilirsiniz.",\n "Select a Metalink": "Bir Metalink Seç",\n // select file modal\n "Choose files to start download for": "Için indirmeye başlamak için dosyaları seçin",\n "Select to download": "Indirmek için seçin",\n // settings modal\n "Aria2 RPC host and port": "Aria2 RPC ana bilgisayar ve bağlantı noktası",\n "Enter the host": "Ana bil
);
/***/
},
/***/ "./src/js/translate/zh_CN.js":
/*!***********************************!*\
!*** ./src/js/translate/zh_CN.js ***!
\***********************************/
/*! no static exports found */
/***/ function(module, exports) {
eval(
'if (typeof translations == "undefined") {\n translations = {};\n}\n\ntranslations.zh_CN = {\n // header\n Search: "搜索",\n // Nav menu\n Add: "添加",\n "By URIs": "使用链接",\n "By Torrents": "使用种子",\n "By Metalinks": "使用 Metalink",\n Manage: "管理",\n "Pause All": "暂停所有",\n "Resume Paused": "恢复下载",\n "Purge Completed": "清除已完成",\n "Shutdown Server": "关闭服务器",\n Settings: "设置",\n "Connection Settings": "连接设置",\n "Global Settings": "全局设置",\n "Server info": "服务器信息",\n "About and contribute": "关于和捐助",\n "Toggle navigation": "切换导航",\n // body\n // nav side bar\n Miscellaneous: "杂项",\n "Global Statistics": "全局统计",\n About: "关于",\n Displaying: "正在显示",\n of: "/",\n downloads: "下载",\n Language: "语言",\n // download filters\n "Download Filters": "下载过滤器",\n Running: "运行中",\n Active: "活动的",\n Waiting: "等待中",\n Complete: "已完成",\n Error: "出错的",\n Paused: "已暂停",\n Removed: "已删除",\n "Hide linked meta-data": "隐藏连接的元数据",\n Toggle: "反向选择",\n "Reset filters": "重置过滤器",\n // download status\n Verifing: "正在验证",\n "Verify Pending": "等待验证",\n // starred properties\n "Quick Access Settings": "快速访问设置",\n Save: "保存",\n "Save settings": "保存设置",\n "Currently no download in line to display, use the": "当前没有可显示的下载项,使用",\n "download button to start downloading files!": "按钮来开始下载!",\n Peers: "Peers",\n "More Info": "更多信息",\n Remove: "删除",\n "# of": "块数",\n Length: "块大小",\n // modals\n "Add Downloads By URIs": "使用链接下载",\n "- You can add multiple downloads (files) at the same time by putting URIs for each file on a separate line.":\n "- 你可以同时添加多个文件下载任务,每行下载一个文件;",\n "- You can also add multiple URIs (mirrors) for the *same* file. To do this, separate the URIs by a space.":\n "- 你也可以给同一个下载任务添加多个镜像链接,写在一行并用空格分隔每条链接;",\n "- A URI can be HTTP(S)/FTP/BitTorrent-Magnet.": "- 链接可以是 HTTP(S)、FTP 和磁力链接。",\n "Download settings": "下载设置",\n "Advanced settings": "高级设置",\n Cancel: "取消",\n Start: "开始",\n Choose: "选择",\n "Quick Access (shown on the main page)": "快速访问(在主页上显示)",\n // add torrent modal\n "Add Downloads By Torrents": "使用种子下载",\n "- Select the torrent from the local filesystem to start the download.":\n "- 从本地文件系统选择种子文件开始下载;",\n "- You can select multiple torrents to start multiple downloads.":\n "- 你可以同时选择多个种子来启动多个下载;",\n "- To add a BitTorrent-Magnet URL, use the Add By URI option and add it there.":\n "- 如果要添加磁力链接,请使用添加链接的方式。",\n "Select Torrents": "选择种子文件",\n "Select a Torrent": "选择种子文件",\n // add metalink modal\n "Add Downloads By Metalinks": "使用 Metalink 下载",\n "Select Metalinks": "选择 Metalink 文件",\n "- Select the Metalink from the local filesystem to start the download.":\n "* 从本地文件系统选择 Metalink 文件开始下载;",\n "- You can select multiple Metalinks to start multiple downloads.":\n "* 你可以同时选择多个 Metalink 文件来启动多个下载。",\n "Select a Metalink": "选择 Metalink 文件",\n // select file modal\n "Choose files to start download for": "请选择要下载的文件",\n "Select to download": "选择以下载",\n // settings modal\n "Aria2 RPC host and port": "Aria2 RPC 主机和端口",\n "Enter the host": "主机",\n "Enter the IP or DNS name of the server on which the RPC for Aria2 is running (default: localhost)":\n "输入 Aria2 RPC 所在服务器的 IP 或域名默认localhost",
);
/***/
},
/***/ "./src/js/translate/zh_TW.js":
/*!***********************************!*\
!*** ./src/js/translate/zh_TW.js ***!
\***********************************/
/*! no static exports found */
/***/ function(module, exports) {
eval(
'if (typeof translations == "undefined") {\n translations = {};\n}\n\ntranslations.zh_TW = {\n // header\n Search: "搜尋",\n // Nav menu\n Add: "新增",\n "By URIs": "使用連結",\n "By Torrents": "使用種子",\n "By Metalinks": "使用 Metalink",\n Manage: "管理",\n "Pause All": "暫停所有",\n "Resume Paused": "恢復下載",\n "Purge Completed": "清除已完成",\n "Shutdown Server": "關閉伺服器",\n Settings: "設定",\n "Connection Settings": "連線設定",\n "Global Settings": "全域性設定",\n "Server info": "伺服器資訊",\n "About and contribute": "關於和捐助",\n "Toggle navigation": "切換導航",\n // body\n // nav side bar\n Miscellaneous: "雜項",\n "Global Statistics": "全域性統計",\n About: "關於",\n Displaying: "正在顯示",\n of: "/",\n downloads: "下載",\n Language: "語言",\n // download filters\n "Download Filters": "下載過濾器",\n Running: "執行中",\n Active: "活動的",\n Waiting: "等待中",\n Complete: "已完成",\n Error: "出錯的",\n Paused: "已暫停",\n Removed: "已刪除",\n "Hide linked meta-data": "隱藏連線的元資料",\n Toggle: "反向選擇",\n "Reset filters": "重置過濾器",\n // download status\n Verifing: "正在驗證",\n "Verify Pending": "等待驗證",\n // starred properties\n "Quick Access Settings": "快速訪問設定",\n Save: "儲存",\n "Save settings": "儲存設定",\n "Currently no download in line to display, use the": "當前沒有可顯示的下載項,使用",\n "download button to start downloading files!": "按鈕來開始下載!",\n Peers: "Peers",\n "More Info": "更多資訊",\n Remove: "刪除",\n "# of": "塊數",\n Length: "塊大小",\n // modals\n "Add Downloads By URIs": "使用連結下載",\n "- You can add multiple downloads (files) at the same time by putting URIs for each file on a separate line.":\n "- 你可以同時新增多個檔案下載任務,每行下載一個檔案;",\n "- You can also add multiple URIs (mirrors) for the *same* file. To do this, separate the URIs by a space.":\n "- 你也可以給同一個下載任務新增多個映象連結,寫在一行並用空格分隔每條連結;",\n "- A URI can be HTTP(S)/FTP/BitTorrent-Magnet.": "- 連結可以是 HTTP(S)、FTP 和磁力連結。",\n "Download settings": "下載設定",\n "Advanced settings": "高階設定",\n Cancel: "取消",\n Start: "開始",\n Choose: "選擇",\n "Quick Access (shown on the main page)": "快速訪問(在主頁上顯示)",\n // add torrent modal\n "Add Downloads By Torrents": "使用種子下載",\n "- Select the torrent from the local filesystem to start the download.":\n "- 從本地檔案系統選擇種子檔案開始下載;",\n "- You can select multiple torrents to start multiple downloads.":\n "- 你可以同時選擇多個種子來啟動多個下載;",\n "- To add a BitTorrent-Magnet URL, use the Add By URI option and add it there.":\n "- 如果要新增磁力連結,請使用新增連結的方式。",\n "Select Torrents": "選擇種子檔案",\n "Select a Torrent": "選擇種子檔案",\n // add metalink modal\n "Add Downloads By Metalinks": "使用 Metalink 下載",\n "Select Metalinks": "選擇 Metalink 檔案",\n "- Select the Metalink from the local filesystem to start the download.":\n "* 從本地檔案系統選擇 Metalink 檔案開始下載;",\n "- You can select multiple Metalinks to start multiple downloads.":\n "* 你可以同時選擇多個 Metalink 檔案來啟動多個下載。",\n "Select a Metalink": "選擇 Metalink 檔案",\n // select file modal\n "Choose files to start download for": "請選擇要下載的檔案",\n "Select to download": "選擇以下載",\n // settings modal\n "Aria2 RPC host and port": "Aria2 RPC 主機和埠",\n "Enter the host": "主機",\n "Enter the IP or DNS name of the server on which the RPC for Aria2 is running (default: localhost)":\n "輸入 Aria2 RPC 所在伺服器的 IP 或域名預設localhost<73><74>
);
/***/
},
/***/ "./src/scss/app.scss":
/*!***************************!*\
!*** ./src/scss/app.scss ***!
\***************************/
/*! no static exports found */
/***/ function(module, exports, __webpack_require__) {
eval(
"// extracted by mini-css-extract-plugin//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9zcmMvc2Nzcy9hcHAuc2Nzcy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL3NyYy9zY3NzL2FwcC5zY3NzP2Y3YWQiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luIl0sIm1hcHBpbmdzIjoiQUFBQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/scss/app.scss\n"
);
/***/
}
/******/
}
);