1
0

files-init.js.map 708 KB

1
  1. {"version":3,"file":"files-init.js?v=8cc686d2fb8abcdbff61","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/node_modules/@nextcloud/upload/node_modules/@nextcloud/logger/dist/ConsoleLogger.js","webpack:///nextcloud/node_modules/@nextcloud/upload/node_modules/@nextcloud/logger/dist/LoggerBuilder.js","webpack:///nextcloud/node_modules/@nextcloud/upload/node_modules/@nextcloud/logger/dist/contracts.js","webpack:///nextcloud/node_modules/@nextcloud/upload/node_modules/@nextcloud/logger/dist/index.js","webpack:///nextcloud/node_modules/@nextcloud/upload/node_modules/eventemitter3/index.js","webpack:///nextcloud/apps/files/src/logger.js","webpack:///nextcloud/apps/files/src/actions/deleteAction.ts","webpack:///nextcloud/apps/files/src/actions/downloadAction.ts","webpack:///nextcloud/apps/files/src/actions/editLocallyAction.ts","webpack:///nextcloud/apps/files/src/actions/favoriteAction.ts","webpack:///nextcloud/apps/files/src/actions/moveOrCopyActionUtils.ts","webpack:///nextcloud/apps/files/src/services/WebdavClient.ts","webpack:///nextcloud/apps/files/src/services/Files.ts","webpack:///nextcloud/apps/files/src/utils/fileUtils.ts","webpack:///nextcloud/apps/files/src/actions/moveOrCopyAction.ts","webpack:///nextcloud/apps/files/src/actions/openFolderAction.ts","webpack:///nextcloud/apps/files/src/actions/openInFilesAction.ts","webpack:///nextcloud/apps/files/src/actions/renameAction.ts","webpack:///nextcloud/apps/files/src/actions/sidebarAction.ts","webpack:///nextcloud/apps/files/src/actions/viewInFolderAction.ts","webpack:///nextcloud/apps/files/src/components/NewNodeDialog.vue","webpack:///nextcloud/apps/files/src/components/NewNodeDialog.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files/src/components/NewNodeDialog.vue?1a36","webpack:///nextcloud/apps/files/src/utils/newNodeDialog.ts","webpack:///nextcloud/apps/files/src/newMenu/newFolder.ts","webpack:///nextcloud/apps/files/src/newMenu/newTemplatesFolder.ts","webpack:///nextcloud/apps/files/src/newMenu/newFromTemplate.ts","webpack:///nextcloud/apps/files/src/services/Favorites.ts","webpack:///nextcloud/apps/files/src/views/favorites.ts","webpack:///nextcloud/apps/files/src/utils/hashUtils.ts","webpack:///nextcloud/apps/files/src/store/userconfig.ts","webpack:///nextcloud/apps/files/src/store/index.ts","webpack:///nextcloud/apps/files/src/services/Recent.ts","webpack:///nextcloud/apps/files/src/services/PersonalFiles.ts","webpack:///nextcloud/apps/files/src/init.ts","webpack:///nextcloud/apps/files/src/views/files.ts","webpack:///nextcloud/apps/files/src/views/recent.ts","webpack:///nextcloud/apps/files/src/views/personal-files.ts","webpack:///nextcloud/apps/files/src/services/ServiceWorker.js","webpack:///nextcloud/apps/files/src/services/LivePhotos.ts","webpack:///nextcloud/node_modules/@nextcloud/upload/dist/assets/index-Ussc_ol3.css","webpack:///nextcloud/node_modules/simple-eta/index.js","webpack:///nextcloud/node_modules/core-js/internals/object-get-own-property-names-external.js","webpack:///nextcloud/node_modules/core-js/internals/path.js","webpack:///nextcloud/node_modules/@nextcloud/files/dist/index.mjs","webpack://nextcloud/./node_modules/@nextcloud/upload/dist/assets/index-Ussc_ol3.css?40cd","webpack:///nextcloud/node_modules/p-cancelable/index.js","webpack:///nextcloud/node_modules/@nextcloud/upload/node_modules/p-timeout/index.js","webpack:///nextcloud/node_modules/@nextcloud/upload/node_modules/p-queue/dist/priority-queue.js","webpack:///nextcloud/node_modules/@nextcloud/upload/node_modules/p-queue/dist/lower-bound.js","webpack:///nextcloud/node_modules/@nextcloud/upload/node_modules/p-queue/dist/index.js","webpack:///nextcloud/node_modules/@nextcloud/upload/dist/chunks/index-DM2X1kc6.mjs","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/publicPath","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","\"use strict\";\n\nrequire(\"core-js/modules/es.object.define-property.js\");\nrequire(\"core-js/modules/es.symbol.iterator.js\");\nrequire(\"core-js/modules/es.array.iterator.js\");\nrequire(\"core-js/modules/es.string.iterator.js\");\nrequire(\"core-js/modules/web.dom-collections.iterator.js\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ConsoleLogger = void 0;\nexports.buildConsoleLogger = buildConsoleLogger;\nrequire(\"core-js/modules/es.object.assign.js\");\nrequire(\"core-js/modules/es.symbol.to-primitive.js\");\nrequire(\"core-js/modules/es.date.to-primitive.js\");\nrequire(\"core-js/modules/es.symbol.js\");\nrequire(\"core-js/modules/es.symbol.description.js\");\nrequire(\"core-js/modules/es.object.to-string.js\");\nrequire(\"core-js/modules/es.number.constructor.js\");\nvar _contracts = require(\"./contracts\");\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar ConsoleLogger = /*#__PURE__*/function () {\n function ConsoleLogger(context) {\n _classCallCheck(this, ConsoleLogger);\n _defineProperty(this, \"context\", void 0);\n this.context = context || {};\n }\n _createClass(ConsoleLogger, [{\n key: \"formatMessage\",\n value: function formatMessage(message, level, context) {\n var msg = '[' + _contracts.LogLevel[level].toUpperCase() + '] ';\n if (context && context.app) {\n msg += context.app + ': ';\n }\n if (typeof message === 'string') return msg + message;\n\n // basic error formatting\n msg += \"Unexpected \".concat(message.name);\n if (message.message) msg += \" \\\"\".concat(message.message, \"\\\"\");\n // only add stack trace when debugging\n if (level === _contracts.LogLevel.Debug && message.stack) msg += \"\\n\\nStack trace:\\n\".concat(message.stack);\n return msg;\n }\n }, {\n key: \"log\",\n value: function log(level, message, context) {\n var _this$context, _this$context2;\n // Skip if level is configured and this is below the level\n if (typeof ((_this$context = this.context) === null || _this$context === void 0 ? void 0 : _this$context.level) === 'number' && level < ((_this$context2 = this.context) === null || _this$context2 === void 0 ? void 0 : _this$context2.level)) {\n return;\n }\n\n // Add error object to context\n if (_typeof(message) === 'object' && (context === null || context === void 0 ? void 0 : context.error) === undefined) {\n context.error = message;\n }\n switch (level) {\n case _contracts.LogLevel.Debug:\n console.debug(this.formatMessage(message, _contracts.LogLevel.Debug, context), context);\n break;\n case _contracts.LogLevel.Info:\n console.info(this.formatMessage(message, _contracts.LogLevel.Info, context), context);\n break;\n case _contracts.LogLevel.Warn:\n console.warn(this.formatMessage(message, _contracts.LogLevel.Warn, context), context);\n break;\n case _contracts.LogLevel.Error:\n console.error(this.formatMessage(message, _contracts.LogLevel.Error, context), context);\n break;\n case _contracts.LogLevel.Fatal:\n default:\n console.error(this.formatMessage(message, _contracts.LogLevel.Fatal, context), context);\n break;\n }\n }\n }, {\n key: \"debug\",\n value: function debug(message, context) {\n this.log(_contracts.LogLevel.Debug, message, Object.assign({}, this.context, context));\n }\n }, {\n key: \"info\",\n value: function info(message, context) {\n this.log(_contracts.LogLevel.Info, message, Object.assign({}, this.context, context));\n }\n }, {\n key: \"warn\",\n value: function warn(message, context) {\n this.log(_contracts.LogLevel.Warn, message, Object.assign({}, this.context, context));\n }\n }, {\n key: \"error\",\n value: function error(message, context) {\n this.log(_contracts.LogLevel.Error, message, Object.assign({}, this.context, context));\n }\n }, {\n key: \"fatal\",\n value: function fatal(message, context) {\n this.log(_contracts.LogLevel.Fatal, message, Object.assign({}, this.context, context));\n }\n }]);\n return ConsoleLogger;\n}();\n/**\n * Create a new console logger\n *\n * @param context Optional global context which should be included for all logging messages\n */\nexports.ConsoleLogger = ConsoleLogger;\nfunction buildConsoleLogger(context) {\n return new ConsoleLogger(context);\n}\n//# sourceMappingURL=ConsoleLogger.js.map","\"use strict\";\n\nrequire(\"core-js/modules/es.object.define-property.js\");\nrequire(\"core-js/modules/es.symbol.iterator.js\");\nrequire(\"core-js/modules/es.array.iterator.js\");\nrequire(\"core-js/modules/es.string.iterator.js\");\nrequire(\"core-js/modules/web.dom-collections.iterator.js\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.LoggerBuilder = void 0;\nrequire(\"core-js/modules/es.symbol.to-primitive.js\");\nrequire(\"core-js/modules/es.date.to-primitive.js\");\nrequire(\"core-js/modules/es.symbol.js\");\nrequire(\"core-js/modules/es.symbol.description.js\");\nrequire(\"core-js/modules/es.object.to-string.js\");\nrequire(\"core-js/modules/es.number.constructor.js\");\nvar _auth = require(\"@nextcloud/auth\");\nvar _contracts = require(\"./contracts\");\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/**\n * @notExported\n */\nvar LoggerBuilder = /*#__PURE__*/function () {\n function LoggerBuilder(factory) {\n _classCallCheck(this, LoggerBuilder);\n _defineProperty(this, \"context\", void 0);\n _defineProperty(this, \"factory\", void 0);\n this.context = {};\n this.factory = factory;\n }\n\n /**\n * Set the app name within the logging context\n *\n * @param appId App name\n */\n _createClass(LoggerBuilder, [{\n key: \"setApp\",\n value: function setApp(appId) {\n this.context.app = appId;\n return this;\n }\n\n /**\n * Set the logging level within the logging context\n *\n * @param level Logging level\n */\n }, {\n key: \"setLogLevel\",\n value: function setLogLevel(level) {\n this.context.level = level;\n return this;\n }\n\n /* eslint-disable jsdoc/no-undefined-types */\n /**\n * Set the user id within the logging context\n * @param uid User ID\n * @see {@link detectUser}\n */\n /* eslint-enable jsdoc/no-undefined-types */\n }, {\n key: \"setUid\",\n value: function setUid(uid) {\n this.context.uid = uid;\n return this;\n }\n\n /**\n * Detect the currently logged in user and set the user id within the logging context\n */\n }, {\n key: \"detectUser\",\n value: function detectUser() {\n var user = (0, _auth.getCurrentUser)();\n if (user !== null) {\n this.context.uid = user.uid;\n }\n return this;\n }\n\n /**\n * Detect and use logging level configured in nextcloud config\n */\n }, {\n key: \"detectLogLevel\",\n value: function detectLogLevel() {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var self = this;\n\n // Use arrow function to prevent undefined `this` within event handler\n var onLoaded = function onLoaded() {\n if (document.readyState === 'complete' || document.readyState === 'interactive') {\n var _window$_oc_config$lo, _window$_oc_config;\n // Up to, including, nextcloud 24 the loglevel was not exposed\n self.context.level = (_window$_oc_config$lo = (_window$_oc_config = window._oc_config) === null || _window$_oc_config === void 0 ? void 0 : _window$_oc_config.loglevel) !== null && _window$_oc_config$lo !== void 0 ? _window$_oc_config$lo : _contracts.LogLevel.Warn;\n // Override loglevel if we are in debug mode\n if (window._oc_debug) {\n self.context.level = _contracts.LogLevel.Debug;\n }\n document.removeEventListener('readystatechange', onLoaded);\n } else {\n document.addEventListener('readystatechange', onLoaded);\n }\n };\n onLoaded();\n return this;\n }\n\n /** Build a logger using the logging context and factory */\n }, {\n key: \"build\",\n value: function build() {\n if (this.context.level === undefined) {\n // No logging level set manually, use the configured one\n this.detectLogLevel();\n }\n return this.factory(this.context);\n }\n }]);\n return LoggerBuilder;\n}();\nexports.LoggerBuilder = LoggerBuilder;\n//# sourceMappingURL=LoggerBuilder.js.map","\"use strict\";\n\nrequire(\"core-js/modules/es.object.define-property.js\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.LogLevel = void 0;\nvar LogLevel = /*#__PURE__*/function (LogLevel) {\n LogLevel[LogLevel[\"Debug\"] = 0] = \"Debug\";\n LogLevel[LogLevel[\"Info\"] = 1] = \"Info\";\n LogLevel[LogLevel[\"Warn\"] = 2] = \"Warn\";\n LogLevel[LogLevel[\"Error\"] = 3] = \"Error\";\n LogLevel[LogLevel[\"Fatal\"] = 4] = \"Fatal\";\n return LogLevel;\n}({});\nexports.LogLevel = LogLevel;\n//# sourceMappingURL=contracts.js.map","\"use strict\";\n\nrequire(\"core-js/modules/es.object.define-property.js\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"LogLevel\", {\n enumerable: true,\n get: function get() {\n return _contracts.LogLevel;\n }\n});\nexports.getLogger = getLogger;\nexports.getLoggerBuilder = getLoggerBuilder;\nvar _ConsoleLogger = require(\"./ConsoleLogger\");\nvar _LoggerBuilder = require(\"./LoggerBuilder\");\nvar _contracts = require(\"./contracts\");\n/**\n * Build a customized logger instance\n */\nfunction getLoggerBuilder() {\n return new _LoggerBuilder.LoggerBuilder(_ConsoleLogger.buildConsoleLogger);\n}\n\n/**\n * Get a default logger instance without any configuration\n */\nfunction getLogger() {\n return getLoggerBuilder().build();\n}\n//# sourceMappingURL=index.js.map","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","/**\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nexport default getLoggerBuilder()\n\t.setApp('files')\n\t.detectUser()\n\t.build()\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { emit } from '@nextcloud/event-bus';\nimport { Permission, Node, View, FileAction, FileType } from '@nextcloud/files';\nimport { showInfo } from '@nextcloud/dialogs';\nimport { translate as t } from '@nextcloud/l10n';\nimport axios from '@nextcloud/axios';\nimport CloseSvg from '@mdi/svg/svg/close.svg?raw';\nimport NetworkOffSvg from '@mdi/svg/svg/network-off.svg?raw';\nimport TrashCanSvg from '@mdi/svg/svg/trash-can.svg?raw';\nimport logger from '../logger.js';\nimport PQueue from 'p-queue';\nconst canUnshareOnly = (nodes) => {\n return nodes.every(node => node.attributes['is-mount-root'] === true\n && node.attributes['mount-type'] === 'shared');\n};\nconst canDisconnectOnly = (nodes) => {\n return nodes.every(node => node.attributes['is-mount-root'] === true\n && node.attributes['mount-type'] === 'external');\n};\nconst isMixedUnshareAndDelete = (nodes) => {\n if (nodes.length === 1) {\n return false;\n }\n const hasSharedItems = nodes.some(node => canUnshareOnly([node]));\n const hasDeleteItems = nodes.some(node => !canUnshareOnly([node]));\n return hasSharedItems && hasDeleteItems;\n};\nconst isAllFiles = (nodes) => {\n return !nodes.some(node => node.type !== FileType.File);\n};\nconst isAllFolders = (nodes) => {\n return !nodes.some(node => node.type !== FileType.Folder);\n};\nconst displayName = (nodes, view) => {\n /**\n * If we're in the trashbin, we can only delete permanently\n */\n if (view.id === 'trashbin') {\n return t('files', 'Delete permanently');\n }\n /**\n * If we're in the sharing view, we can only unshare\n */\n if (isMixedUnshareAndDelete(nodes)) {\n return t('files', 'Delete and unshare');\n }\n /**\n * If those nodes are all the root node of a\n * share, we can only unshare them.\n */\n if (canUnshareOnly(nodes)) {\n if (nodes.length === 1) {\n return t('files', 'Leave this share');\n }\n return t('files', 'Leave these shares');\n }\n /**\n * If those nodes are all the root node of an\n * external storage, we can only disconnect it.\n */\n if (canDisconnectOnly(nodes)) {\n if (nodes.length === 1) {\n return t('files', 'Disconnect storage');\n }\n return t('files', 'Disconnect storages');\n }\n /**\n * If we're only selecting files, use proper wording\n */\n if (isAllFiles(nodes)) {\n if (nodes.length === 1) {\n return t('files', 'Delete file');\n }\n return t('files', 'Delete files');\n }\n /**\n * If we're only selecting folders, use proper wording\n */\n if (isAllFolders(nodes)) {\n if (nodes.length === 1) {\n return t('files', 'Delete folder');\n }\n return t('files', 'Delete folders');\n }\n return t('files', 'Delete');\n};\nconst queue = new PQueue({ concurrency: 5 });\nexport const action = new FileAction({\n id: 'delete',\n displayName,\n iconSvgInline: (nodes) => {\n if (canUnshareOnly(nodes)) {\n return CloseSvg;\n }\n if (canDisconnectOnly(nodes)) {\n return NetworkOffSvg;\n }\n return TrashCanSvg;\n },\n enabled(nodes) {\n return nodes.length > 0 && nodes\n .map(node => node.permissions)\n .every(permission => (permission & Permission.DELETE) !== 0);\n },\n async exec(node, view, dir) {\n try {\n await axios.delete(node.encodedSource);\n // Let's delete even if it's moved to the trashbin\n // since it has been removed from the current view\n // and changing the view will trigger a reload anyway.\n emit('files:node:deleted', node);\n return true;\n }\n catch (error) {\n logger.error('Error while deleting a file', { error, source: node.source, node });\n return false;\n }\n },\n async execBatch(nodes, view, dir) {\n const confirm = await new Promise(resolve => {\n if (nodes.length >= 5 && !canUnshareOnly(nodes) && !canDisconnectOnly(nodes)) {\n // TODO use a proper dialog from @nextcloud/dialogs when available\n window.OC.dialogs.confirmDestructive(t('files', 'You are about to delete {count} items.', { count: nodes.length }), t('files', 'Confirm deletion'), {\n type: window.OC.dialogs.YES_NO_BUTTONS,\n confirm: displayName(nodes, view),\n confirmClasses: 'error',\n cancel: t('files', 'Cancel'),\n }, (decision) => {\n resolve(decision);\n });\n return;\n }\n resolve(true);\n });\n // If the user cancels the deletion, we don't want to do anything\n if (confirm === false) {\n showInfo(t('files', 'Deletion cancelled'));\n return Promise.all(nodes.map(() => false));\n }\n // Map each node to a promise that resolves with the result of exec(node)\n const promises = nodes.map(node => {\n // Create a promise that resolves with the result of exec(node)\n const promise = new Promise(resolve => {\n queue.add(async () => {\n const result = await this.exec(node, view, dir);\n resolve(result !== null ? result : false);\n });\n });\n return promise;\n });\n return Promise.all(promises);\n },\n order: 100,\n});\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { generateUrl } from '@nextcloud/router';\nimport { FileAction, Permission, Node, FileType, View } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport ArrowDownSvg from '@mdi/svg/svg/arrow-down.svg?raw';\nconst triggerDownload = function (url) {\n const hiddenElement = document.createElement('a');\n hiddenElement.download = '';\n hiddenElement.href = url;\n hiddenElement.click();\n};\nconst downloadNodes = function (dir, nodes) {\n const secret = Math.random().toString(36).substring(2);\n const url = generateUrl('/apps/files/ajax/download.php?dir={dir}&files={files}&downloadStartSecret={secret}', {\n dir,\n secret,\n files: JSON.stringify(nodes.map(node => node.basename)),\n });\n triggerDownload(url);\n};\nconst isDownloadable = function (node) {\n if ((node.permissions & Permission.READ) === 0) {\n return false;\n }\n // If the mount type is a share, ensure it got download permissions.\n if (node.attributes['mount-type'] === 'shared') {\n const shareAttributes = JSON.parse(node.attributes['share-attributes'] ?? 'null');\n const downloadAttribute = shareAttributes?.find?.((attribute) => attribute.scope === 'permissions' && attribute.key === 'download');\n if (downloadAttribute !== undefined && downloadAttribute.enabled === false) {\n return false;\n }\n }\n return true;\n};\nexport const action = new FileAction({\n id: 'download',\n displayName: () => t('files', 'Download'),\n iconSvgInline: () => ArrowDownSvg,\n enabled(nodes) {\n if (nodes.length === 0) {\n return false;\n }\n // We can download direct dav files. But if we have\n // some folders, we need to use the /apps/files/ajax/download.php\n // endpoint, which only supports user root folder.\n if (nodes.some(node => node.type === FileType.Folder)\n && nodes.some(node => !node.root?.startsWith('/files'))) {\n return false;\n }\n return nodes.every(isDownloadable);\n },\n async exec(node, view, dir) {\n if (node.type === FileType.Folder) {\n downloadNodes(dir, [node]);\n return null;\n }\n triggerDownload(node.encodedSource);\n return null;\n },\n async execBatch(nodes, view, dir) {\n if (nodes.length === 1) {\n this.exec(nodes[0], view, dir);\n return [null];\n }\n downloadNodes(dir, nodes);\n return new Array(nodes.length).fill(null);\n },\n order: 30,\n});\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { encodePath } from '@nextcloud/paths';\nimport { generateOcsUrl } from '@nextcloud/router';\nimport { getCurrentUser } from '@nextcloud/auth';\nimport { FileAction, Permission } from '@nextcloud/files';\nimport { showError } from '@nextcloud/dialogs';\nimport { translate as t } from '@nextcloud/l10n';\nimport axios from '@nextcloud/axios';\nimport LaptopSvg from '@mdi/svg/svg/laptop.svg?raw';\nconst openLocalClient = async function (path) {\n const link = generateOcsUrl('apps/files/api/v1') + '/openlocaleditor?format=json';\n try {\n const result = await axios.post(link, { path });\n const uid = getCurrentUser()?.uid;\n let url = `nc://open/${uid}@` + window.location.host + encodePath(path);\n url += '?token=' + result.data.ocs.data.token;\n window.location.href = url;\n }\n catch (error) {\n showError(t('files', 'Failed to redirect to client'));\n }\n};\nexport const action = new FileAction({\n id: 'edit-locally',\n displayName: () => t('files', 'Edit locally'),\n iconSvgInline: () => LaptopSvg,\n // Only works on single files\n enabled(nodes) {\n // Only works on single node\n if (nodes.length !== 1) {\n return false;\n }\n return (nodes[0].permissions & Permission.UPDATE) !== 0;\n },\n async exec(node) {\n openLocalClient(node.path);\n return null;\n },\n order: 25,\n});\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { emit } from '@nextcloud/event-bus';\nimport { generateUrl } from '@nextcloud/router';\nimport { Permission, View, FileAction } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport axios from '@nextcloud/axios';\nimport Vue from 'vue';\nimport StarOutlineSvg from '@mdi/svg/svg/star-outline.svg?raw';\nimport StarSvg from '@mdi/svg/svg/star.svg?raw';\nimport logger from '../logger.js';\nimport { encodePath } from '@nextcloud/paths';\n// If any of the nodes is not favorited, we display the favorite action.\nconst shouldFavorite = (nodes) => {\n return nodes.some(node => node.attributes.favorite !== 1);\n};\nexport const favoriteNode = async (node, view, willFavorite) => {\n try {\n // TODO: migrate to webdav tags plugin\n const url = generateUrl('/apps/files/api/v1/files') + encodePath(node.path);\n await axios.post(url, {\n tags: willFavorite\n ? [window.OC.TAG_FAVORITE]\n : [],\n });\n // Let's delete if we are in the favourites view\n // AND if it is removed from the user favorites\n // AND it's in the root of the favorites view\n if (view.id === 'favorites' && !willFavorite && node.dirname === '/') {\n emit('files:node:deleted', node);\n }\n // Update the node webdav attribute\n Vue.set(node.attributes, 'favorite', willFavorite ? 1 : 0);\n // Dispatch event to whoever is interested\n if (willFavorite) {\n emit('files:favorites:added', node);\n }\n else {\n emit('files:favorites:removed', node);\n }\n return true;\n }\n catch (error) {\n const action = willFavorite ? 'adding a file to favourites' : 'removing a file from favourites';\n logger.error('Error while ' + action, { error, source: node.source, node });\n return false;\n }\n};\nexport const action = new FileAction({\n id: 'favorite',\n displayName(nodes) {\n return shouldFavorite(nodes)\n ? t('files', 'Add to favorites')\n : t('files', 'Remove from favorites');\n },\n iconSvgInline: (nodes) => {\n return shouldFavorite(nodes)\n ? StarOutlineSvg\n : StarSvg;\n },\n enabled(nodes) {\n // We can only favorite nodes within files and with permissions\n return !nodes.some(node => !node.root?.startsWith?.('/files'))\n && nodes.every(node => node.permissions !== Permission.NONE);\n },\n async exec(node, view) {\n const willFavorite = shouldFavorite([node]);\n return await favoriteNode(node, view, willFavorite);\n },\n async execBatch(nodes, view) {\n const willFavorite = shouldFavorite(nodes);\n return Promise.all(nodes.map(async (node) => await favoriteNode(node, view, willFavorite)));\n },\n order: -50,\n});\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { Permission } from '@nextcloud/files';\nimport PQueue from 'p-queue';\n// This is the processing queue. We only want to allow 3 concurrent requests\nlet queue;\n/**\n * Get the processing queue\n */\nexport const getQueue = () => {\n if (!queue) {\n queue = new PQueue({ concurrency: 3 });\n }\n return queue;\n};\nexport var MoveCopyAction;\n(function (MoveCopyAction) {\n MoveCopyAction[\"MOVE\"] = \"Move\";\n MoveCopyAction[\"COPY\"] = \"Copy\";\n MoveCopyAction[\"MOVE_OR_COPY\"] = \"move-or-copy\";\n})(MoveCopyAction || (MoveCopyAction = {}));\nexport const canMove = (nodes) => {\n const minPermission = nodes.reduce((min, node) => Math.min(min, node.permissions), Permission.ALL);\n return (minPermission & Permission.UPDATE) !== 0;\n};\nexport const canDownload = (nodes) => {\n return nodes.every(node => {\n const shareAttributes = JSON.parse(node.attributes?.['share-attributes'] ?? '[]');\n return !shareAttributes.some(attribute => attribute.scope === 'permissions' && attribute.enabled === false && attribute.key === 'download');\n });\n};\nexport const canCopy = (nodes) => {\n // a shared file cannot be copied if the download is disabled\n // it can be copied if the user has at least read permissions\n return canDownload(nodes)\n && !nodes.some(node => node.permissions === Permission.NONE);\n};\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { davGetClient } from '@nextcloud/files';\nexport const client = davGetClient();\n","import { CancelablePromise } from 'cancelable-promise';\nimport { File, Folder, davGetDefaultPropfind, davResultToNode, davRootPath } from '@nextcloud/files';\nimport { client } from './WebdavClient.ts';\nimport logger from '../logger.js';\n/**\n * Slim wrapper over `@nextcloud/files` `davResultToNode` to allow using the function with `Array.map`\n * @param node The node returned by the webdav library\n */\nexport const resultToNode = (node) => davResultToNode(node);\nexport const getContents = (path = '/') => {\n const controller = new AbortController();\n const propfindPayload = davGetDefaultPropfind();\n path = `${davRootPath}${path}`;\n return new CancelablePromise(async (resolve, reject, onCancel) => {\n onCancel(() => controller.abort());\n try {\n const contentsResponse = await client.getDirectoryContents(path, {\n details: true,\n data: propfindPayload,\n includeSelf: true,\n signal: controller.signal,\n });\n const root = contentsResponse.data[0];\n const contents = contentsResponse.data.slice(1);\n if (root.filename !== path && `${root.filename}/` !== path) {\n logger.debug(`Exepected \"${path}\" but got filename \"${root.filename}\" instead.`);\n throw new Error('Root node does not match requested path');\n }\n resolve({\n folder: resultToNode(root),\n contents: contents.map((result) => {\n try {\n return resultToNode(result);\n }\n catch (error) {\n logger.error(`Invalid node detected '${result.basename}'`, { error });\n return null;\n }\n }).filter(Boolean),\n });\n }\n catch (error) {\n reject(error);\n }\n });\n};\n","/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { basename, extname } from 'path';\nimport { FileType } from '@nextcloud/files';\nimport { translate as t, translatePlural as n } from '@nextcloud/l10n';\n// TODO: move to @nextcloud/files\n/**\n * Create an unique file name\n * @param name The initial name to use\n * @param otherNames Other names that are already used\n * @param options Optional parameters for tuning the behavior\n * @param options.suffix A function that takes an index and returns a suffix to add to the file name, defaults to '(index)'\n * @param options.ignoreFileExtension Set to true to ignore the file extension when adding the suffix (when getting a unique directory name)\n * @return Either the initial name, if unique, or the name with the suffix so that the name is unique\n */\nexport const getUniqueName = (name, otherNames, options = {}) => {\n const opts = {\n suffix: (n) => `(${n})`,\n ignoreFileExtension: false,\n ...options,\n };\n let newName = name;\n let i = 1;\n while (otherNames.includes(newName)) {\n const ext = opts.ignoreFileExtension ? '' : extname(name);\n const base = basename(name, ext);\n newName = `${base} ${opts.suffix(i++)}${ext}`;\n }\n return newName;\n};\n/**\n * Extract dir and name from file path\n *\n * @param {string} path the full path\n * @return {string[]} [dirPath, fileName]\n */\nexport const extractFilePaths = function (path) {\n const pathSections = path.split('/');\n const fileName = pathSections[pathSections.length - 1];\n const dirPath = pathSections.slice(0, pathSections.length - 1).join('/');\n return [dirPath, fileName];\n};\n/**\n * Generate a translated summary of an array of nodes\n * @param {Node[]} nodes the nodes to summarize\n * @return {string}\n */\nexport const getSummaryFor = (nodes) => {\n const fileCount = nodes.filter(node => node.type === FileType.File).length;\n const folderCount = nodes.filter(node => node.type === FileType.Folder).length;\n if (fileCount === 0) {\n return n('files', '{folderCount} folder', '{folderCount} folders', folderCount, { folderCount });\n }\n else if (folderCount === 0) {\n return n('files', '{fileCount} file', '{fileCount} files', fileCount, { fileCount });\n }\n if (fileCount === 1) {\n return n('files', '1 file and {folderCount} folder', '1 file and {folderCount} folders', folderCount, { folderCount });\n }\n if (folderCount === 1) {\n return n('files', '{fileCount} file and 1 folder', '{fileCount} files and 1 folder', fileCount, { fileCount });\n }\n return t('files', '{fileCount} files and {folderCount} folders', { fileCount, folderCount });\n};\n","import { isAxiosError } from '@nextcloud/axios';\nimport { FilePickerClosed, getFilePickerBuilder, showError } from '@nextcloud/dialogs';\nimport { emit } from '@nextcloud/event-bus';\nimport { Permission, FileAction, FileType, NodeStatus, davGetClient, davRootPath, davResultToNode, davGetDefaultPropfind } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport { openConflictPicker, hasConflict } from '@nextcloud/upload';\nimport { basename, join } from 'path';\nimport Vue from 'vue';\nimport CopyIconSvg from '@mdi/svg/svg/folder-multiple.svg?raw';\nimport FolderMoveSvg from '@mdi/svg/svg/folder-move.svg?raw';\nimport { MoveCopyAction, canCopy, canMove, getQueue } from './moveOrCopyActionUtils';\nimport { getContents } from '../services/Files';\nimport logger from '../logger';\nimport { getUniqueName } from '../utils/fileUtils';\n/**\n * Return the action that is possible for the given nodes\n * @param {Node[]} nodes The nodes to check against\n * @return {MoveCopyAction} The action that is possible for the given nodes\n */\nconst getActionForNodes = (nodes) => {\n if (canMove(nodes)) {\n if (canCopy(nodes)) {\n return MoveCopyAction.MOVE_OR_COPY;\n }\n return MoveCopyAction.MOVE;\n }\n // Assuming we can copy as the enabled checks for copy permissions\n return MoveCopyAction.COPY;\n};\n/**\n * Handle the copy/move of a node to a destination\n * This can be imported and used by other scripts/components on server\n * @param {Node} node The node to copy/move\n * @param {Folder} destination The destination to copy/move the node to\n * @param {MoveCopyAction} method The method to use for the copy/move\n * @param {boolean} overwrite Whether to overwrite the destination if it exists\n * @return {Promise<void>} A promise that resolves when the copy/move is done\n */\nexport const handleCopyMoveNodeTo = async (node, destination, method, overwrite = false) => {\n if (!destination) {\n return;\n }\n if (destination.type !== FileType.Folder) {\n throw new Error(t('files', 'Destination is not a folder'));\n }\n // Do not allow to MOVE a node to the same folder it is already located\n if (method === MoveCopyAction.MOVE && node.dirname === destination.path) {\n throw new Error(t('files', 'This file/folder is already in that directory'));\n }\n /**\n * Example:\n * - node: /foo/bar/file.txt -> path = /foo/bar/file.txt, destination: /foo\n * Allow move of /foo does not start with /foo/bar/file.txt so allow\n * - node: /foo , destination: /foo/bar\n * Do not allow as it would copy foo within itself\n * - node: /foo/bar.txt, destination: /foo\n * Allow copy a file to the same directory\n * - node: \"/foo/bar\", destination: \"/foo/bar 1\"\n * Allow to move or copy but we need to check with trailing / otherwise it would report false positive\n */\n if (`${destination.path}/`.startsWith(`${node.path}/`)) {\n throw new Error(t('files', 'You cannot move a file/folder onto itself or into a subfolder of itself'));\n }\n // Set loading state\n Vue.set(node, 'status', NodeStatus.LOADING);\n const queue = getQueue();\n return await queue.add(async () => {\n const copySuffix = (index) => {\n if (index === 1) {\n return t('files', '(copy)'); // TRANSLATORS: Mark a file as a copy of another file\n }\n return t('files', '(copy %n)', undefined, index); // TRANSLATORS: Meaning it is the n'th copy of a file\n };\n try {\n const client = davGetClient();\n const currentPath = join(davRootPath, node.path);\n const destinationPath = join(davRootPath, destination.path);\n if (method === MoveCopyAction.COPY) {\n let target = node.basename;\n // If we do not allow overwriting then find an unique name\n if (!overwrite) {\n const otherNodes = await client.getDirectoryContents(destinationPath);\n target = getUniqueName(node.basename, otherNodes.map((n) => n.basename), {\n suffix: copySuffix,\n ignoreFileExtension: node.type === FileType.Folder,\n });\n }\n await client.copyFile(currentPath, join(destinationPath, target));\n // If the node is copied into current directory the view needs to be updated\n if (node.dirname === destination.path) {\n const { data } = await client.stat(join(destinationPath, target), {\n details: true,\n data: davGetDefaultPropfind(),\n });\n emit('files:node:created', davResultToNode(data));\n }\n }\n else {\n // show conflict file popup if we do not allow overwriting\n const otherNodes = await getContents(destination.path);\n if (hasConflict([node], otherNodes.contents)) {\n try {\n // Let the user choose what to do with the conflicting files\n const { selected, renamed } = await openConflictPicker(destination.path, [node], otherNodes.contents);\n // if the user selected to keep the old file, and did not select the new file\n // that means they opted to delete the current node\n if (!selected.length && !renamed.length) {\n await client.deleteFile(currentPath);\n emit('files:node:deleted', node);\n return;\n }\n }\n catch (error) {\n // User cancelled\n showError(t('files', 'Move cancelled'));\n return;\n }\n }\n // getting here means either no conflict, file was renamed to keep both files\n // in a conflict, or the selected file was chosen to be kept during the conflict\n await client.moveFile(currentPath, join(destinationPath, node.basename));\n // Delete the node as it will be fetched again\n // when navigating to the destination folder\n emit('files:node:deleted', node);\n }\n }\n catch (error) {\n if (isAxiosError(error)) {\n if (error.response?.status === 412) {\n throw new Error(t('files', 'A file or folder with that name already exists in this folder'));\n }\n else if (error.response?.status === 423) {\n throw new Error(t('files', 'The files are locked'));\n }\n else if (error.response?.status === 404) {\n throw new Error(t('files', 'The file does not exist anymore'));\n }\n else if (error.message) {\n throw new Error(error.message);\n }\n }\n logger.debug(error);\n throw new Error();\n }\n finally {\n Vue.set(node, 'status', undefined);\n }\n });\n};\n/**\n * Open a file picker for the given action\n * @param {MoveCopyAction} action The action to open the file picker for\n * @param {string} dir The directory to start the file picker in\n * @param {Node[]} nodes The nodes to move/copy\n * @return {Promise<MoveCopyResult>} The picked destination\n */\nconst openFilePickerForAction = async (action, dir = '/', nodes) => {\n const fileIDs = nodes.map(node => node.fileid).filter(Boolean);\n const filePicker = getFilePickerBuilder(t('files', 'Choose destination'))\n .allowDirectories(true)\n .setFilter((n) => {\n // We don't want to show the current nodes in the file picker\n return !fileIDs.includes(n.fileid);\n })\n .setMimeTypeFilter([])\n .setMultiSelect(false)\n .startAt(dir);\n return new Promise((resolve, reject) => {\n filePicker.setButtonFactory((selection, path) => {\n const buttons = [];\n const target = basename(path);\n const dirnames = nodes.map(node => node.dirname);\n const paths = nodes.map(node => node.path);\n if (action === MoveCopyAction.COPY || action === MoveCopyAction.MOVE_OR_COPY) {\n buttons.push({\n label: target ? t('files', 'Copy to {target}', { target }, undefined, { escape: false, sanitize: false }) : t('files', 'Copy'),\n type: 'primary',\n icon: CopyIconSvg,\n async callback(destination) {\n resolve({\n destination: destination[0],\n action: MoveCopyAction.COPY,\n });\n },\n });\n }\n // Invalid MOVE targets (but valid copy targets)\n if (dirnames.includes(path)) {\n // This file/folder is already in that directory\n return buttons;\n }\n if (paths.includes(path)) {\n // You cannot move a file/folder onto itself\n return buttons;\n }\n if (action === MoveCopyAction.MOVE || action === MoveCopyAction.MOVE_OR_COPY) {\n buttons.push({\n label: target ? t('files', 'Move to {target}', { target }, undefined, { escape: false, sanitize: false }) : t('files', 'Move'),\n type: action === MoveCopyAction.MOVE ? 'primary' : 'secondary',\n icon: FolderMoveSvg,\n async callback(destination) {\n resolve({\n destination: destination[0],\n action: MoveCopyAction.MOVE,\n });\n },\n });\n }\n return buttons;\n });\n const picker = filePicker.build();\n picker.pick().catch((error) => {\n logger.debug(error);\n if (error instanceof FilePickerClosed) {\n reject(new Error(t('files', 'Cancelled move or copy operation')));\n }\n else {\n reject(new Error(t('files', 'Move or copy operation failed')));\n }\n });\n });\n};\nexport const action = new FileAction({\n id: 'move-copy',\n displayName(nodes) {\n switch (getActionForNodes(nodes)) {\n case MoveCopyAction.MOVE:\n return t('files', 'Move');\n case MoveCopyAction.COPY:\n return t('files', 'Copy');\n case MoveCopyAction.MOVE_OR_COPY:\n return t('files', 'Move or copy');\n }\n },\n iconSvgInline: () => FolderMoveSvg,\n enabled(nodes) {\n // We only support moving/copying files within the user folder\n if (!nodes.every(node => node.root?.startsWith('/files/'))) {\n return false;\n }\n return nodes.length > 0 && (canMove(nodes) || canCopy(nodes));\n },\n async exec(node, view, dir) {\n const action = getActionForNodes([node]);\n let result;\n try {\n result = await openFilePickerForAction(action, dir, [node]);\n }\n catch (e) {\n logger.error(e);\n return false;\n }\n try {\n await handleCopyMoveNodeTo(node, result.destination, result.action);\n return true;\n }\n catch (error) {\n if (error instanceof Error && !!error.message) {\n showError(error.message);\n // Silent action as we handle the toast\n return null;\n }\n return false;\n }\n },\n async execBatch(nodes, view, dir) {\n const action = getActionForNodes(nodes);\n const result = await openFilePickerForAction(action, dir, nodes);\n const promises = nodes.map(async (node) => {\n try {\n await handleCopyMoveNodeTo(node, result.destination, result.action);\n return true;\n }\n catch (error) {\n logger.error(`Failed to ${result.action} node`, { node, error });\n return false;\n }\n });\n // We need to keep the selection on error!\n // So we do not return null, and for batch action\n // we let the front handle the error.\n return await Promise.all(promises);\n },\n order: 15,\n});\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { Permission, Node, FileType, View, FileAction, DefaultType } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport FolderSvg from '@mdi/svg/svg/folder.svg?raw';\nexport const action = new FileAction({\n id: 'open-folder',\n displayName(files) {\n // Only works on single node\n const displayName = files[0].attributes.displayName || files[0].basename;\n return t('files', 'Open folder {displayName}', { displayName });\n },\n iconSvgInline: () => FolderSvg,\n enabled(nodes) {\n // Only works on single node\n if (nodes.length !== 1) {\n return false;\n }\n const node = nodes[0];\n if (!node.isDavRessource) {\n return false;\n }\n return node.type === FileType.Folder\n && (node.permissions & Permission.READ) !== 0;\n },\n async exec(node, view) {\n if (!node || node.type !== FileType.Folder) {\n return false;\n }\n window.OCP.Files.Router.goToRoute(null, { view: view.id, fileid: node.fileid }, { dir: node.path });\n return null;\n },\n // Main action if enabled, meaning folders only\n default: DefaultType.HIDDEN,\n order: -100,\n});\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { translate as t } from '@nextcloud/l10n';\nimport { FileType, FileAction, DefaultType } from '@nextcloud/files';\n/**\n * TODO: Move away from a redirect and handle\n * navigation straight out of the recent view\n */\nexport const action = new FileAction({\n id: 'open-in-files-recent',\n displayName: () => t('files', 'Open in Files'),\n iconSvgInline: () => '',\n enabled: (nodes, view) => view.id === 'recent',\n async exec(node) {\n let dir = node.dirname;\n if (node.type === FileType.Folder) {\n dir = dir + '/' + node.basename;\n }\n window.OCP.Files.Router.goToRoute(null, // use default route\n { view: 'files', fileid: node.fileid }, { dir, openfile: 'true' });\n return null;\n },\n // Before openFolderAction\n order: -1000,\n default: DefaultType.HIDDEN,\n});\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { emit } from '@nextcloud/event-bus';\nimport { Permission, FileAction } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport PencilSvg from '@mdi/svg/svg/pencil.svg?raw';\nexport const ACTION_DETAILS = 'details';\nexport const action = new FileAction({\n id: 'rename',\n displayName: () => t('files', 'Rename'),\n iconSvgInline: () => PencilSvg,\n enabled: (nodes) => {\n return nodes.length > 0 && nodes\n .map(node => node.permissions)\n .every(permission => (permission & Permission.UPDATE) !== 0);\n },\n async exec(node) {\n // Renaming is a built-in feature of the files app\n emit('files:node:rename', node);\n return null;\n },\n order: 10,\n});\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { Permission, View, FileAction, FileType } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport InformationSvg from '@mdi/svg/svg/information-variant.svg?raw';\nimport logger from '../logger.js';\nexport const ACTION_DETAILS = 'details';\nexport const action = new FileAction({\n id: ACTION_DETAILS,\n displayName: () => t('files', 'Open details'),\n iconSvgInline: () => InformationSvg,\n // Sidebar currently supports user folder only, /files/USER\n enabled: (nodes) => {\n // Only works on single node\n if (nodes.length !== 1) {\n return false;\n }\n if (!nodes[0]) {\n return false;\n }\n // Only work if the sidebar is available\n if (!window?.OCA?.Files?.Sidebar) {\n return false;\n }\n return (nodes[0].root?.startsWith('/files/') && nodes[0].permissions !== Permission.NONE) ?? false;\n },\n async exec(node, view, dir) {\n try {\n // TODO: migrate Sidebar to use a Node instead\n await window.OCA.Files.Sidebar.open(node.path);\n // Silently update current fileid\n window.OCP.Files.Router.goToRoute(null, { view: view.id, fileid: node.fileid }, { ...window.OCP.Files.Router.query, dir }, true);\n return null;\n }\n catch (error) {\n logger.error('Error while opening sidebar', { error });\n return false;\n }\n },\n order: -50,\n});\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { Node, FileType, Permission, View, FileAction } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport FolderMoveSvg from '@mdi/svg/svg/folder-move.svg?raw';\nexport const action = new FileAction({\n id: 'view-in-folder',\n displayName() {\n return t('files', 'View in folder');\n },\n iconSvgInline: () => FolderMoveSvg,\n enabled(nodes, view) {\n // Only works outside of the main files view\n if (view.id === 'files') {\n return false;\n }\n // Only works on single node\n if (nodes.length !== 1) {\n return false;\n }\n const node = nodes[0];\n if (!node.isDavRessource) {\n return false;\n }\n if (node.permissions === Permission.NONE) {\n return false;\n }\n return node.type === FileType.File;\n },\n async exec(node) {\n if (!node || node.type !== FileType.File) {\n return false;\n }\n window.OCP.Files.Router.goToRoute(null, { view: 'files', fileid: node.fileid }, { dir: node.dirname });\n return null;\n },\n order: 80,\n});\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcDialog',{attrs:{\"name\":_vm.name,\"open\":_vm.open,\"close-on-click-outside\":\"\",\"out-transition\":\"\"},on:{\"update:open\":_vm.onClose},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('NcButton',{attrs:{\"type\":\"primary\",\"disabled\":!_vm.isUniqueName},on:{\"click\":_vm.onCreate}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files', 'Create'))+\"\\n\\t\\t\")])]},proxy:true}])},[_vm._v(\" \"),_c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.onCreate.apply(null, arguments)}}},[_c('NcTextField',{ref:\"input\",attrs:{\"error\":!_vm.isUniqueName,\"helper-text\":_vm.errorMessage,\"label\":_vm.label,\"value\":_vm.localDefaultName},on:{\"update:value\":function($event){_vm.localDefaultName=$event}}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewNodeDialog.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewNodeDialog.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./NewNodeDialog.vue?vue&type=template&id=16589c26\"\nimport script from \"./NewNodeDialog.vue?vue&type=script&lang=ts\"\nexport * from \"./NewNodeDialog.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { spawnDialog } from '@nextcloud/dialogs';\nimport NewNodeDialog from '../components/NewNodeDialog.vue';\n/**\n * Ask user for file or folder name\n * @param defaultName Default name to use\n * @param folderContent Nodes with in the current folder to check for unique name\n * @param labels Labels to set on the dialog\n * @return string if successfull otherwise null if aborted\n */\nexport function newNodeName(defaultName, folderContent, labels = {}) {\n const contentNames = folderContent.map((node) => node.basename);\n return new Promise((resolve) => {\n spawnDialog(NewNodeDialog, {\n ...labels,\n defaultName,\n otherNames: contentNames,\n }, (folderName) => {\n resolve(folderName);\n });\n });\n}\n","import { basename } from 'path';\nimport { emit } from '@nextcloud/event-bus';\nimport { getCurrentUser } from '@nextcloud/auth';\nimport { Permission, Folder } from '@nextcloud/files';\nimport { showSuccess } from '@nextcloud/dialogs';\nimport { translate as t } from '@nextcloud/l10n';\nimport axios from '@nextcloud/axios';\nimport FolderPlusSvg from '@mdi/svg/svg/folder-plus.svg?raw';\nimport { newNodeName } from '../utils/newNodeDialog';\nimport logger from '../logger';\nconst createNewFolder = async (root, name) => {\n const source = root.source + '/' + name;\n const encodedSource = root.encodedSource + '/' + encodeURIComponent(name);\n const response = await axios({\n method: 'MKCOL',\n url: encodedSource,\n headers: {\n Overwrite: 'F',\n },\n });\n return {\n fileid: parseInt(response.headers['oc-fileid']),\n source,\n };\n};\nexport const entry = {\n id: 'newFolder',\n displayName: t('files', 'New folder'),\n enabled: (context) => (context.permissions & Permission.CREATE) !== 0,\n iconSvgInline: FolderPlusSvg,\n order: 0,\n async handler(context, content) {\n const name = await newNodeName(t('files', 'New folder'), content);\n if (name !== null) {\n const { fileid, source } = await createNewFolder(context, name);\n // Create the folder in the store\n const folder = new Folder({\n source,\n id: fileid,\n mtime: new Date(),\n owner: getCurrentUser()?.uid || null,\n permissions: Permission.ALL,\n root: context?.root || '/files/' + getCurrentUser()?.uid,\n // Include mount-type from parent folder as this is inherited\n attributes: {\n 'mount-type': context.attributes?.['mount-type'],\n 'owner-id': context.attributes?.['owner-id'],\n 'owner-display-name': context.attributes?.['owner-display-name'],\n },\n });\n showSuccess(t('files', 'Created new folder \"{name}\"', { name: basename(source) }));\n logger.debug('Created new folder', { folder, source });\n emit('files:node:created', folder);\n window.OCP.Files.Router.goToRoute(null, // use default route\n { view: 'files', fileid: folder.fileid }, { dir: context.path });\n }\n },\n};\n","import { getCurrentUser } from '@nextcloud/auth';\nimport { showError } from '@nextcloud/dialogs';\nimport { Permission, removeNewFileMenuEntry } from '@nextcloud/files';\nimport { loadState } from '@nextcloud/initial-state';\nimport { translate as t } from '@nextcloud/l10n';\nimport { generateOcsUrl } from '@nextcloud/router';\nimport { join } from 'path';\nimport { newNodeName } from '../utils/newNodeDialog';\nimport PlusSvg from '@mdi/svg/svg/plus.svg?raw';\nimport axios from '@nextcloud/axios';\nimport logger from '../logger.js';\nlet templatesPath = loadState('files', 'templates_path', false);\nlogger.debug('Initial templates folder', { templatesPath });\n/**\n * Init template folder\n * @param directory Folder where to create the templates folder\n * @param name Name to use or the templates folder\n */\nconst initTemplatesFolder = async function (directory, name) {\n const templatePath = join(directory.path, name);\n try {\n logger.debug('Initializing the templates directory', { templatePath });\n const { data } = await axios.post(generateOcsUrl('apps/files/api/v1/templates/path'), {\n templatePath,\n copySystemTemplates: true,\n });\n // Go to template directory\n window.OCP.Files.Router.goToRoute(null, // use default route\n { view: 'files', fileid: undefined }, { dir: templatePath });\n logger.info('Created new templates folder', {\n ...data.ocs.data,\n });\n templatesPath = data.ocs.data.templates_path;\n }\n catch (error) {\n logger.error('Unable to initialize the templates directory');\n showError(t('files', 'Unable to initialize the templates directory'));\n }\n};\nexport const entry = {\n id: 'template-picker',\n displayName: t('files', 'Create new templates folder'),\n iconSvgInline: PlusSvg,\n order: 10,\n enabled(context) {\n // Templates folder already initialized\n if (templatesPath) {\n return false;\n }\n // Allow creation on your own folders only\n if (context.owner !== getCurrentUser()?.uid) {\n return false;\n }\n return (context.permissions & Permission.CREATE) !== 0;\n },\n async handler(context, content) {\n const name = await newNodeName(t('files', 'Templates'), content, { name: t('files', 'New template folder') });\n if (name !== null) {\n // Create the template folder\n initTemplatesFolder(context, name);\n // Remove the menu entry\n removeNewFileMenuEntry('template-picker');\n }\n },\n};\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { Folder, Node, Permission, addNewFileMenuEntry } from '@nextcloud/files';\nimport { loadState } from '@nextcloud/initial-state';\nimport { newNodeName } from '../utils/newNodeDialog';\nimport { translate as t } from '@nextcloud/l10n';\nimport Vue, { defineAsyncComponent } from 'vue';\n// async to reduce bundle size\nconst TemplatePickerVue = defineAsyncComponent(() => import('../views/TemplatePicker.vue'));\nlet TemplatePicker = null;\nconst getTemplatePicker = async (context) => {\n if (TemplatePicker === null) {\n // Create document root\n const mountingPoint = document.createElement('div');\n mountingPoint.id = 'template-picker';\n document.body.appendChild(mountingPoint);\n // Init vue app\n TemplatePicker = new Vue({\n render: (h) => h(TemplatePickerVue, {\n ref: 'picker',\n props: {\n parent: context,\n },\n }),\n methods: { open(...args) { this.$refs.picker.open(...args); } },\n el: mountingPoint,\n });\n }\n return TemplatePicker;\n};\n/**\n * Register all new-file-menu entries for all template providers\n */\nexport function registerTemplateEntries() {\n const templates = loadState('files', 'templates', []);\n // Init template files menu\n templates.forEach((provider, index) => {\n addNewFileMenuEntry({\n id: `template-new-${provider.app}-${index}`,\n displayName: provider.label,\n iconClass: provider.iconClass || 'icon-file',\n iconSvgInline: provider.iconSvgInline,\n enabled(context) {\n return (context.permissions & Permission.CREATE) !== 0;\n },\n order: 11,\n async handler(context, content) {\n const templatePicker = getTemplatePicker(context);\n const name = await newNodeName(`${provider.label}${provider.extension}`, content, {\n label: t('files', 'Filename'),\n name: provider.label,\n });\n if (name !== null) {\n // Create the file\n const picker = await templatePicker;\n picker.open(name, provider);\n }\n },\n });\n });\n}\n","import { getCurrentUser } from '@nextcloud/auth';\nimport { Folder, Permission, davRemoteURL, davRootPath, getFavoriteNodes } from '@nextcloud/files';\nimport { CancelablePromise } from 'cancelable-promise';\nimport { getContents as filesContents } from './Files.ts';\nimport { client } from './WebdavClient.ts';\nexport const getContents = (path = '/') => {\n // We only filter root files for favorites, for subfolders we can simply reuse the files contents\n if (path !== '/') {\n return filesContents(path);\n }\n return new CancelablePromise((resolve, reject, cancel) => {\n const promise = getFavoriteNodes(client)\n .catch(reject)\n .then((contents) => {\n if (!contents) {\n reject();\n return;\n }\n resolve({\n contents,\n folder: new Folder({\n id: 0,\n source: `${davRemoteURL}${davRootPath}`,\n root: davRootPath,\n owner: getCurrentUser()?.uid || null,\n permissions: Permission.READ,\n }),\n });\n });\n cancel(() => promise.cancel());\n });\n};\n","import { subscribe } from '@nextcloud/event-bus';\nimport { FileType, View, getNavigation } from '@nextcloud/files';\nimport { loadState } from '@nextcloud/initial-state';\nimport { getLanguage, translate as t } from '@nextcloud/l10n';\nimport { basename } from 'path';\nimport FolderSvg from '@mdi/svg/svg/folder.svg?raw';\nimport StarSvg from '@mdi/svg/svg/star.svg?raw';\nimport { getContents } from '../services/Favorites';\nimport { hashCode } from '../utils/hashUtils';\nimport logger from '../logger';\nexport const generateFavoriteFolderView = function (folder, index = 0) {\n return new View({\n id: generateIdFromPath(folder.path),\n name: basename(folder.path),\n icon: FolderSvg,\n order: index,\n params: {\n dir: folder.path,\n fileid: folder.fileid.toString(),\n view: 'favorites',\n },\n parent: 'favorites',\n columns: [],\n getContents,\n });\n};\nexport const generateIdFromPath = function (path) {\n return `favorite-${hashCode(path)}`;\n};\nexport default () => {\n // Load state in function for mock testing purposes\n const favoriteFolders = loadState('files', 'favoriteFolders', []);\n const favoriteFoldersViews = favoriteFolders.map((folder, index) => generateFavoriteFolderView(folder, index));\n logger.debug('Generating favorites view', { favoriteFolders });\n const Navigation = getNavigation();\n Navigation.register(new View({\n id: 'favorites',\n name: t('files', 'Favorites'),\n caption: t('files', 'List of favorites files and folders.'),\n emptyTitle: t('files', 'No favorites yet'),\n emptyCaption: t('files', 'Files and folders you mark as favorite will show up here'),\n icon: StarSvg,\n order: 15,\n columns: [],\n getContents,\n }));\n favoriteFoldersViews.forEach(view => Navigation.register(view));\n /**\n * Update favourites navigation when a new folder is added\n */\n subscribe('files:favorites:added', (node) => {\n if (node.type !== FileType.Folder) {\n return;\n }\n // Sanity check\n if (node.path === null || !node.root?.startsWith('/files')) {\n logger.error('Favorite folder is not within user files root', { node });\n return;\n }\n addToFavorites(node);\n });\n /**\n * Remove favourites navigation when a folder is removed\n */\n subscribe('files:favorites:removed', (node) => {\n if (node.type !== FileType.Folder) {\n return;\n }\n // Sanity check\n if (node.path === null || !node.root?.startsWith('/files')) {\n logger.error('Favorite folder is not within user files root', { node });\n return;\n }\n removePathFromFavorites(node.path);\n });\n /**\n * Sort the favorites paths array and\n * update the order property of the existing views\n */\n const updateAndSortViews = function () {\n favoriteFolders.sort((a, b) => a.path.localeCompare(b.path, getLanguage(), { ignorePunctuation: true }));\n favoriteFolders.forEach((folder, index) => {\n const view = favoriteFoldersViews.find((view) => view.id === generateIdFromPath(folder.path));\n if (view) {\n view.order = index;\n }\n });\n };\n // Add a folder to the favorites paths array and update the views\n const addToFavorites = function (node) {\n const newFavoriteFolder = { path: node.path, fileid: node.fileid };\n const view = generateFavoriteFolderView(newFavoriteFolder);\n // Skip if already exists\n if (favoriteFolders.find((folder) => folder.path === node.path)) {\n return;\n }\n // Update arrays\n favoriteFolders.push(newFavoriteFolder);\n favoriteFoldersViews.push(view);\n // Update and sort views\n updateAndSortViews();\n Navigation.register(view);\n };\n // Remove a folder from the favorites paths array and update the views\n const removePathFromFavorites = function (path) {\n const id = generateIdFromPath(path);\n const index = favoriteFolders.findIndex((folder) => folder.path === path);\n // Skip if not exists\n if (index === -1) {\n return;\n }\n // Update arrays\n favoriteFolders.splice(index, 1);\n favoriteFoldersViews.splice(index, 1);\n // Update and sort views\n Navigation.remove(id);\n updateAndSortViews();\n };\n};\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nexport const hashCode = function (str) {\n let hash = 0;\n for (let i = 0; i < str.length; i++) {\n hash = ((hash << 5) - hash + str.charCodeAt(i)) | 0;\n }\n return (hash >>> 0);\n};\n","import { defineStore } from 'pinia';\nimport { emit, subscribe } from '@nextcloud/event-bus';\nimport { generateUrl } from '@nextcloud/router';\nimport { loadState } from '@nextcloud/initial-state';\nimport axios from '@nextcloud/axios';\nimport Vue from 'vue';\nconst userConfig = loadState('files', 'config', {\n show_hidden: false,\n crop_image_previews: true,\n sort_favorites_first: true,\n sort_folders_first: true,\n grid_view: false,\n});\nexport const useUserConfigStore = function (...args) {\n const store = defineStore('userconfig', {\n state: () => ({\n userConfig,\n }),\n actions: {\n /**\n * Update the user config local store\n */\n onUpdate(key, value) {\n Vue.set(this.userConfig, key, value);\n },\n /**\n * Update the user config local store AND on server side\n */\n async update(key, value) {\n await axios.put(generateUrl('/apps/files/api/v1/config/' + key), {\n value,\n });\n emit('files:config:updated', { key, value });\n },\n },\n });\n const userConfigStore = store(...args);\n // Make sure we only register the listeners once\n if (!userConfigStore._initialized) {\n subscribe('files:config:updated', function ({ key, value }) {\n userConfigStore.onUpdate(key, value);\n });\n userConfigStore._initialized = true;\n }\n return userConfigStore;\n};\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { createPinia } from 'pinia';\nexport const pinia = createPinia();\n","import { getCurrentUser } from '@nextcloud/auth';\nimport { Folder, Permission, davGetRecentSearch, davRootPath, davRemoteURL } from '@nextcloud/files';\nimport { CancelablePromise } from 'cancelable-promise';\nimport { useUserConfigStore } from '../store/userconfig.ts';\nimport { pinia } from '../store/index.ts';\nimport { client } from './WebdavClient.ts';\nimport { resultToNode } from './Files.ts';\nconst lastTwoWeeksTimestamp = Math.round((Date.now() / 1000) - (60 * 60 * 24 * 14));\n/**\n * Get recently changed nodes\n *\n * This takes the users preference about hidden files into account.\n * If hidden files are not shown, then also recently changed files *in* hidden directories are filtered.\n *\n * @param path Path to search for recent changes\n */\nexport const getContents = (path = '/') => {\n const store = useUserConfigStore(pinia);\n /**\n * Filter function that returns only the visible nodes - or hidden if explicitly configured\n * @param node The node to check\n */\n const filterHidden = (node) => path !== '/' // We need to hide files from hidden directories in the root if not configured to show\n || store.userConfig.show_hidden // If configured to show hidden files we can early return\n || !node.dirname.split('/').some((dir) => dir.startsWith('.')); // otherwise only include the file if non of the parent directories is hidden\n const controller = new AbortController();\n const handler = async () => {\n const contentsResponse = await client.search('/', {\n signal: controller.signal,\n details: true,\n data: davGetRecentSearch(lastTwoWeeksTimestamp),\n });\n const contents = contentsResponse.data.results\n .map(resultToNode)\n .filter(filterHidden);\n return {\n folder: new Folder({\n id: 0,\n source: `${davRemoteURL}${davRootPath}`,\n root: davRootPath,\n owner: getCurrentUser()?.uid || null,\n permissions: Permission.READ,\n }),\n contents,\n };\n };\n return new CancelablePromise(async (resolve, reject, cancel) => {\n cancel(() => controller.abort());\n resolve(handler());\n });\n};\n","import { getCurrentUser } from '@nextcloud/auth';\nimport { getContents as getFiles } from './Files';\nconst currentUserId = getCurrentUser()?.uid;\n/**\n * Filters each file/folder on its shared status\n *\n * A personal file is considered a file that has all of the following properties:\n * 1. the current user owns\n * 2. the file is not shared with anyone\n * 3. the file is not a group folder\n * @todo Move to `@nextcloud/files`\n * @param node The node to check\n */\nexport const isPersonalFile = function (node) {\n // the type of mounts that determine whether the file is shared\n const sharedMountTypes = ['group', 'shared'];\n const mountType = node.attributes['mount-type'];\n return currentUserId === node.owner && !sharedMountTypes.includes(mountType);\n};\nexport const getContents = (path = '/') => {\n // get all the files from the current path as a cancellable promise\n // then filter the files that the user does not own, or has shared / is a group folder\n return getFiles(path)\n .then((content) => {\n content.contents = content.contents.filter(isPersonalFile);\n return content;\n });\n};\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { addNewFileMenuEntry, registerDavProperty, registerFileAction } from '@nextcloud/files';\nimport { action as deleteAction } from './actions/deleteAction';\nimport { action as downloadAction } from './actions/downloadAction';\nimport { action as editLocallyAction } from './actions/editLocallyAction';\nimport { action as favoriteAction } from './actions/favoriteAction';\nimport { action as moveOrCopyAction } from './actions/moveOrCopyAction';\nimport { action as openFolderAction } from './actions/openFolderAction';\nimport { action as openInFilesAction } from './actions/openInFilesAction';\nimport { action as renameAction } from './actions/renameAction';\nimport { action as sidebarAction } from './actions/sidebarAction';\nimport { action as viewInFolderAction } from './actions/viewInFolderAction';\nimport { entry as newFolderEntry } from './newMenu/newFolder.ts';\nimport { entry as newTemplatesFolder } from './newMenu/newTemplatesFolder.ts';\nimport { registerTemplateEntries } from './newMenu/newFromTemplate.ts';\nimport registerFavoritesView from './views/favorites';\nimport registerRecentView from './views/recent';\nimport registerPersonalFilesView from './views/personal-files';\nimport registerFilesView from './views/files';\nimport registerPreviewServiceWorker from './services/ServiceWorker.js';\nimport { initLivePhotos } from './services/LivePhotos';\n// Register file actions\nregisterFileAction(deleteAction);\nregisterFileAction(downloadAction);\nregisterFileAction(editLocallyAction);\nregisterFileAction(favoriteAction);\nregisterFileAction(moveOrCopyAction);\nregisterFileAction(openFolderAction);\nregisterFileAction(openInFilesAction);\nregisterFileAction(renameAction);\nregisterFileAction(sidebarAction);\nregisterFileAction(viewInFolderAction);\n// Register new menu entry\naddNewFileMenuEntry(newFolderEntry);\naddNewFileMenuEntry(newTemplatesFolder);\nregisterTemplateEntries();\n// Register files views\nregisterFavoritesView();\nregisterFilesView();\nregisterRecentView();\nregisterPersonalFilesView();\n// Register preview service worker\nregisterPreviewServiceWorker();\nregisterDavProperty('nc:hidden', { nc: 'http://nextcloud.org/ns' });\nregisterDavProperty('nc:is-mount-root', { nc: 'http://nextcloud.org/ns' });\ninitLivePhotos();\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { translate as t } from '@nextcloud/l10n';\nimport FolderSvg from '@mdi/svg/svg/folder.svg?raw';\nimport { getContents } from '../services/Files';\nimport { View, getNavigation } from '@nextcloud/files';\nexport default () => {\n const Navigation = getNavigation();\n Navigation.register(new View({\n id: 'files',\n name: t('files', 'All files'),\n caption: t('files', 'List of your files and folders.'),\n icon: FolderSvg,\n order: 0,\n getContents,\n }));\n};\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { View, getNavigation } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport HistorySvg from '@mdi/svg/svg/history.svg?raw';\nimport { getContents } from '../services/Recent';\nexport default () => {\n const Navigation = getNavigation();\n Navigation.register(new View({\n id: 'recent',\n name: t('files', 'Recent'),\n caption: t('files', 'List of recently modified files and folders.'),\n emptyTitle: t('files', 'No recently modified files'),\n emptyCaption: t('files', 'Files and folders you recently modified will show up here.'),\n icon: HistorySvg,\n order: 10,\n defaultSortKey: 'mtime',\n getContents,\n }));\n};\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { translate as t } from '@nextcloud/l10n';\nimport { View, getNavigation } from '@nextcloud/files';\nimport { getContents } from '../services/PersonalFiles';\nimport AccountIcon from '@mdi/svg/svg/account.svg?raw';\nexport default () => {\n const Navigation = getNavigation();\n Navigation.register(new View({\n id: 'personal',\n name: t('files', 'Personal Files'),\n caption: t('files', 'List of your files and folders that are not shared.'),\n emptyTitle: t('files', 'No personal files found'),\n emptyCaption: t('files', 'Files that are not shared will show up here.'),\n icon: AccountIcon,\n order: 5,\n getContents,\n }));\n};\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { generateUrl } from '@nextcloud/router'\nimport logger from '../logger.js'\n\nexport default () => {\n\tif ('serviceWorker' in navigator) {\n\t\t// Use the window load event to keep the page load performant\n\t\twindow.addEventListener('load', async () => {\n\t\t\ttry {\n\t\t\t\tconst url = generateUrl('/apps/files/preview-service-worker.js', {}, { noRewrite: true })\n\t\t\t\tconst registration = await navigator.serviceWorker.register(url, { scope: '/' })\n\t\t\t\tlogger.debug('SW registered: ', { registration })\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error('SW registration failed: ', { error })\n\t\t\t}\n\t\t})\n\t} else {\n\t\tlogger.debug('Service Worker is not enabled on this browser.')\n\t}\n}\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { Node, registerDavProperty } from '@nextcloud/files';\nexport function initLivePhotos() {\n registerDavProperty('nc:metadata-files-live-photo', { nc: 'http://nextcloud.org/ns' });\n}\n/**\n * @param {Node} node - The node\n */\nexport function isLivePhoto(node) {\n return node.attributes['metadata-files-live-photo'] !== undefined;\n}\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.upload-picker[data-v-eca9500a] {\n display: inline-flex;\n align-items: center;\n height: 44px;\n}\n.upload-picker__progress[data-v-eca9500a] {\n width: 200px;\n max-width: 0;\n transition: max-width var(--animation-quick) ease-in-out;\n margin-top: 8px;\n}\n.upload-picker__progress p[data-v-eca9500a] {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.upload-picker--uploading .upload-picker__progress[data-v-eca9500a] {\n max-width: 200px;\n margin-right: 20px;\n margin-left: 8px;\n}\n.upload-picker--paused .upload-picker__progress[data-v-eca9500a] {\n animation: breathing-eca9500a 3s ease-out infinite normal;\n}\n@keyframes breathing-eca9500a {\n 0% {\n opacity: .5;\n }\n 25% {\n opacity: 1;\n }\n 60% {\n opacity: .5;\n }\n to {\n opacity: .5;\n }\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@nextcloud/upload/dist/assets/index-Ussc_ol3.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,oBAAoB;EACpB,mBAAmB;EACnB,YAAY;AACd;AACA;EACE,YAAY;EACZ,YAAY;EACZ,wDAAwD;EACxD,eAAe;AACjB;AACA;EACE,gBAAgB;EAChB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,gBAAgB;EAChB,kBAAkB;EAClB,gBAAgB;AAClB;AACA;EACE,yDAAyD;AAC3D;AACA;EACE;IACE,WAAW;EACb;EACA;IACE,UAAU;EACZ;EACA;IACE,WAAW;EACb;EACA;IACE,WAAW;EACb;AACF\",\"sourcesContent\":[\".upload-picker[data-v-eca9500a] {\\n display: inline-flex;\\n align-items: center;\\n height: 44px;\\n}\\n.upload-picker__progress[data-v-eca9500a] {\\n width: 200px;\\n max-width: 0;\\n transition: max-width var(--animation-quick) ease-in-out;\\n margin-top: 8px;\\n}\\n.upload-picker__progress p[data-v-eca9500a] {\\n overflow: hidden;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n}\\n.upload-picker--uploading .upload-picker__progress[data-v-eca9500a] {\\n max-width: 200px;\\n margin-right: 20px;\\n margin-left: 8px;\\n}\\n.upload-picker--paused .upload-picker__progress[data-v-eca9500a] {\\n animation: breathing-eca9500a 3s ease-out infinite normal;\\n}\\n@keyframes breathing-eca9500a {\\n 0% {\\n opacity: .5;\\n }\\n 25% {\\n opacity: 1;\\n }\\n 60% {\\n opacity: .5;\\n }\\n to {\\n opacity: .5;\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// @flow\n\n/*::\ntype Options = {\n max?: number,\n min?: number,\n historyTimeConstant?: number,\n autostart?: boolean,\n ignoreSameProgress?: boolean,\n}\n*/\n\nfunction makeLowPassFilter(RC/*: number*/) {\n return function (previousOutput, input, dt) {\n const alpha = dt / (dt + RC);\n return previousOutput + alpha * (input - previousOutput);\n }\n}\n\nfunction def/*:: <T>*/(x/*: ?T*/, d/*: T*/)/*: T*/ {\n return (x === undefined || x === null) ? d : x;\n}\n\nfunction makeEta(options/*::?: Options */) {\n options = options || {};\n var max = def(options.max, 1);\n var min = def(options.min, 0);\n var autostart = def(options.autostart, true);\n var ignoreSameProgress = def(options.ignoreSameProgress, false);\n\n var rate/*: number | null */ = null;\n var lastTimestamp/*: number | null */ = null;\n var lastProgress/*: number | null */ = null;\n\n var filter = makeLowPassFilter(def(options.historyTimeConstant, 2.5));\n\n function start() {\n report(min);\n }\n\n function reset() {\n rate = null;\n lastTimestamp = null;\n lastProgress = null;\n if (autostart) {\n start();\n }\n }\n\n function report(progress /*: number */, timestamp/*::?: number */) {\n if (typeof timestamp !== 'number') {\n timestamp = Date.now();\n }\n\n if (lastTimestamp === timestamp) { return; }\n if (ignoreSameProgress && lastProgress === progress) { return; }\n\n if (lastTimestamp === null || lastProgress === null) {\n lastProgress = progress;\n lastTimestamp = timestamp;\n return;\n }\n\n var deltaProgress = progress - lastProgress;\n var deltaTimestamp = 0.001 * (timestamp - lastTimestamp);\n var currentRate = deltaProgress / deltaTimestamp;\n\n rate = rate === null\n ? currentRate\n : filter(rate, currentRate, deltaTimestamp);\n lastProgress = progress;\n lastTimestamp = timestamp;\n }\n\n function estimate(timestamp/*::?: number*/) {\n if (lastProgress === null) { return Infinity; }\n if (lastProgress >= max) { return 0; }\n if (rate === null) { return Infinity; }\n\n var estimatedTime = (max - lastProgress) / rate;\n if (typeof timestamp === 'number' && typeof lastTimestamp === 'number') {\n estimatedTime -= (timestamp - lastTimestamp) * 0.001;\n }\n return Math.max(0, estimatedTime);\n }\n\n function getRate() {\n return rate === null ? 0 : rate;\n }\n\n return {\n start: start,\n reset: reset,\n report: report,\n estimate: estimate,\n rate: getRate,\n }\n}\n\nmodule.exports = makeEta;\n","'use strict';\n/* eslint-disable es/no-object-getownpropertynames -- safe */\nvar classof = require('../internals/classof-raw');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar arraySlice = require('../internals/array-slice');\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return $getOwnPropertyNames(it);\n } catch (error) {\n return arraySlice(windowNames);\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && classof(it) === 'Window'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\n};\n","'use strict';\nvar global = require('../internals/global');\n\nmodule.exports = global;\n","import { getCurrentUser, onRequestTokenUpdate, getRequestToken } from \"@nextcloud/auth\";\nimport { getLoggerBuilder } from \"@nextcloud/logger\";\nimport { join, basename, extname, dirname } from \"path\";\nimport { encodePath } from \"@nextcloud/paths\";\nimport { generateRemoteUrl } from \"@nextcloud/router\";\nimport { createClient, getPatcher } from \"webdav\";\nimport { CancelablePromise } from \"cancelable-promise\";\nimport { getCanonicalLocale, getLanguage } from \"@nextcloud/l10n\";\n/**\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nconst getLogger = (user) => {\n if (user === null) {\n return getLoggerBuilder().setApp(\"files\").build();\n }\n return getLoggerBuilder().setApp(\"files\").setUid(user.uid).build();\n};\nconst logger = getLogger(getCurrentUser());\n/**\n * @copyright Copyright (c) 2021 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nvar NewMenuEntryCategory = /* @__PURE__ */ ((NewMenuEntryCategory2) => {\n NewMenuEntryCategory2[NewMenuEntryCategory2[\"UploadFromDevice\"] = 0] = \"UploadFromDevice\";\n NewMenuEntryCategory2[NewMenuEntryCategory2[\"CreateNew\"] = 1] = \"CreateNew\";\n NewMenuEntryCategory2[NewMenuEntryCategory2[\"Other\"] = 2] = \"Other\";\n return NewMenuEntryCategory2;\n})(NewMenuEntryCategory || {});\nclass NewFileMenu {\n _entries = [];\n registerEntry(entry) {\n this.validateEntry(entry);\n entry.category = entry.category ?? 1;\n this._entries.push(entry);\n }\n unregisterEntry(entry) {\n const entryIndex = typeof entry === \"string\" ? this.getEntryIndex(entry) : this.getEntryIndex(entry.id);\n if (entryIndex === -1) {\n logger.warn(\"Entry not found, nothing removed\", { entry, entries: this.getEntries() });\n return;\n }\n this._entries.splice(entryIndex, 1);\n }\n /**\n * Get the list of registered entries\n *\n * @param {Folder} context the creation context. Usually the current folder\n */\n getEntries(context) {\n if (context) {\n return this._entries.filter((entry) => typeof entry.enabled === \"function\" ? entry.enabled(context) : true);\n }\n return this._entries;\n }\n getEntryIndex(id) {\n return this._entries.findIndex((entry) => entry.id === id);\n }\n validateEntry(entry) {\n if (!entry.id || !entry.displayName || !(entry.iconSvgInline || entry.iconClass) || !entry.handler) {\n throw new Error(\"Invalid entry\");\n }\n if (typeof entry.id !== \"string\" || typeof entry.displayName !== \"string\") {\n throw new Error(\"Invalid id or displayName property\");\n }\n if (entry.iconClass && typeof entry.iconClass !== \"string\" || entry.iconSvgInline && typeof entry.iconSvgInline !== \"string\") {\n throw new Error(\"Invalid icon provided\");\n }\n if (entry.enabled !== void 0 && typeof entry.enabled !== \"function\") {\n throw new Error(\"Invalid enabled property\");\n }\n if (typeof entry.handler !== \"function\") {\n throw new Error(\"Invalid handler property\");\n }\n if (\"order\" in entry && typeof entry.order !== \"number\") {\n throw new Error(\"Invalid order property\");\n }\n if (this.getEntryIndex(entry.id) !== -1) {\n throw new Error(\"Duplicate entry\");\n }\n }\n}\nconst getNewFileMenu = function() {\n if (typeof window._nc_newfilemenu === \"undefined\") {\n window._nc_newfilemenu = new NewFileMenu();\n logger.debug(\"NewFileMenu initialized\");\n }\n return window._nc_newfilemenu;\n};\n/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nvar DefaultType = /* @__PURE__ */ ((DefaultType2) => {\n DefaultType2[\"DEFAULT\"] = \"default\";\n DefaultType2[\"HIDDEN\"] = \"hidden\";\n return DefaultType2;\n})(DefaultType || {});\nclass FileAction {\n _action;\n constructor(action) {\n this.validateAction(action);\n this._action = action;\n }\n get id() {\n return this._action.id;\n }\n get displayName() {\n return this._action.displayName;\n }\n get title() {\n return this._action.title;\n }\n get iconSvgInline() {\n return this._action.iconSvgInline;\n }\n get enabled() {\n return this._action.enabled;\n }\n get exec() {\n return this._action.exec;\n }\n get execBatch() {\n return this._action.execBatch;\n }\n get order() {\n return this._action.order;\n }\n get parent() {\n return this._action.parent;\n }\n get default() {\n return this._action.default;\n }\n get inline() {\n return this._action.inline;\n }\n get renderInline() {\n return this._action.renderInline;\n }\n validateAction(action) {\n if (!action.id || typeof action.id !== \"string\") {\n throw new Error(\"Invalid id\");\n }\n if (!action.displayName || typeof action.displayName !== \"function\") {\n throw new Error(\"Invalid displayName function\");\n }\n if (\"title\" in action && typeof action.title !== \"function\") {\n throw new Error(\"Invalid title function\");\n }\n if (!action.iconSvgInline || typeof action.iconSvgInline !== \"function\") {\n throw new Error(\"Invalid iconSvgInline function\");\n }\n if (!action.exec || typeof action.exec !== \"function\") {\n throw new Error(\"Invalid exec function\");\n }\n if (\"enabled\" in action && typeof action.enabled !== \"function\") {\n throw new Error(\"Invalid enabled function\");\n }\n if (\"execBatch\" in action && typeof action.execBatch !== \"function\") {\n throw new Error(\"Invalid execBatch function\");\n }\n if (\"order\" in action && typeof action.order !== \"number\") {\n throw new Error(\"Invalid order\");\n }\n if (\"parent\" in action && typeof action.parent !== \"string\") {\n throw new Error(\"Invalid parent\");\n }\n if (action.default && !Object.values(DefaultType).includes(action.default)) {\n throw new Error(\"Invalid default\");\n }\n if (\"inline\" in action && typeof action.inline !== \"function\") {\n throw new Error(\"Invalid inline function\");\n }\n if (\"renderInline\" in action && typeof action.renderInline !== \"function\") {\n throw new Error(\"Invalid renderInline function\");\n }\n }\n}\nconst registerFileAction = function(action) {\n if (typeof window._nc_fileactions === \"undefined\") {\n window._nc_fileactions = [];\n logger.debug(\"FileActions initialized\");\n }\n if (window._nc_fileactions.find((search) => search.id === action.id)) {\n logger.error(`FileAction ${action.id} already registered`, { action });\n return;\n }\n window._nc_fileactions.push(action);\n};\nconst getFileActions = function() {\n if (typeof window._nc_fileactions === \"undefined\") {\n window._nc_fileactions = [];\n logger.debug(\"FileActions initialized\");\n }\n return window._nc_fileactions;\n};\n/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nclass Header {\n _header;\n constructor(header) {\n this.validateHeader(header);\n this._header = header;\n }\n get id() {\n return this._header.id;\n }\n get order() {\n return this._header.order;\n }\n get enabled() {\n return this._header.enabled;\n }\n get render() {\n return this._header.render;\n }\n get updated() {\n return this._header.updated;\n }\n validateHeader(header) {\n if (!header.id || !header.render || !header.updated) {\n throw new Error(\"Invalid header: id, render and updated are required\");\n }\n if (typeof header.id !== \"string\") {\n throw new Error(\"Invalid id property\");\n }\n if (header.enabled !== void 0 && typeof header.enabled !== \"function\") {\n throw new Error(\"Invalid enabled property\");\n }\n if (header.render && typeof header.render !== \"function\") {\n throw new Error(\"Invalid render property\");\n }\n if (header.updated && typeof header.updated !== \"function\") {\n throw new Error(\"Invalid updated property\");\n }\n }\n}\nconst registerFileListHeaders = function(header) {\n if (typeof window._nc_filelistheader === \"undefined\") {\n window._nc_filelistheader = [];\n logger.debug(\"FileListHeaders initialized\");\n }\n if (window._nc_filelistheader.find((search) => search.id === header.id)) {\n logger.error(`Header ${header.id} already registered`, { header });\n return;\n }\n window._nc_filelistheader.push(header);\n};\nconst getFileListHeaders = function() {\n if (typeof window._nc_filelistheader === \"undefined\") {\n window._nc_filelistheader = [];\n logger.debug(\"FileListHeaders initialized\");\n }\n return window._nc_filelistheader;\n};\n/**\n * @copyright Copyright (c) 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nvar Permission = /* @__PURE__ */ ((Permission2) => {\n Permission2[Permission2[\"NONE\"] = 0] = \"NONE\";\n Permission2[Permission2[\"CREATE\"] = 4] = \"CREATE\";\n Permission2[Permission2[\"READ\"] = 1] = \"READ\";\n Permission2[Permission2[\"UPDATE\"] = 2] = \"UPDATE\";\n Permission2[Permission2[\"DELETE\"] = 8] = \"DELETE\";\n Permission2[Permission2[\"SHARE\"] = 16] = \"SHARE\";\n Permission2[Permission2[\"ALL\"] = 31] = \"ALL\";\n return Permission2;\n})(Permission || {});\n/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n * @author Ferdinand Thiessen <opensource@fthiessen.de>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nconst defaultDavProperties = [\n \"d:getcontentlength\",\n \"d:getcontenttype\",\n \"d:getetag\",\n \"d:getlastmodified\",\n \"d:quota-available-bytes\",\n \"d:resourcetype\",\n \"nc:has-preview\",\n \"nc:is-encrypted\",\n \"nc:mount-type\",\n \"oc:comments-unread\",\n \"oc:favorite\",\n \"oc:fileid\",\n \"oc:owner-display-name\",\n \"oc:owner-id\",\n \"oc:permissions\",\n \"oc:size\"\n];\nconst defaultDavNamespaces = {\n d: \"DAV:\",\n nc: \"http://nextcloud.org/ns\",\n oc: \"http://owncloud.org/ns\",\n ocs: \"http://open-collaboration-services.org/ns\"\n};\nconst registerDavProperty = function(prop, namespace = { nc: \"http://nextcloud.org/ns\" }) {\n if (typeof window._nc_dav_properties === \"undefined\") {\n window._nc_dav_properties = [...defaultDavProperties];\n window._nc_dav_namespaces = { ...defaultDavNamespaces };\n }\n const namespaces = { ...window._nc_dav_namespaces, ...namespace };\n if (window._nc_dav_properties.find((search) => search === prop)) {\n logger.warn(`${prop} already registered`, { prop });\n return false;\n }\n if (prop.startsWith(\"<\") || prop.split(\":\").length !== 2) {\n logger.error(`${prop} is not valid. See example: 'oc:fileid'`, { prop });\n return false;\n }\n const ns = prop.split(\":\")[0];\n if (!namespaces[ns]) {\n logger.error(`${prop} namespace unknown`, { prop, namespaces });\n return false;\n }\n window._nc_dav_properties.push(prop);\n window._nc_dav_namespaces = namespaces;\n return true;\n};\nconst getDavProperties = function() {\n if (typeof window._nc_dav_properties === \"undefined\") {\n window._nc_dav_properties = [...defaultDavProperties];\n }\n return window._nc_dav_properties.map((prop) => `<${prop} />`).join(\" \");\n};\nconst getDavNameSpaces = function() {\n if (typeof window._nc_dav_namespaces === \"undefined\") {\n window._nc_dav_namespaces = { ...defaultDavNamespaces };\n }\n return Object.keys(window._nc_dav_namespaces).map((ns) => `xmlns:${ns}=\"${window._nc_dav_namespaces?.[ns]}\"`).join(\" \");\n};\nconst davGetDefaultPropfind = function() {\n return `<?xml version=\"1.0\"?>\n\t\t<d:propfind ${getDavNameSpaces()}>\n\t\t\t<d:prop>\n\t\t\t\t${getDavProperties()}\n\t\t\t</d:prop>\n\t\t</d:propfind>`;\n};\nconst davGetFavoritesReport = function() {\n return `<?xml version=\"1.0\"?>\n\t\t<oc:filter-files ${getDavNameSpaces()}>\n\t\t\t<d:prop>\n\t\t\t\t${getDavProperties()}\n\t\t\t</d:prop>\n\t\t\t<oc:filter-rules>\n\t\t\t\t<oc:favorite>1</oc:favorite>\n\t\t\t</oc:filter-rules>\n\t\t</oc:filter-files>`;\n};\nconst davGetRecentSearch = function(lastModified) {\n return `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<d:searchrequest ${getDavNameSpaces()}\n\txmlns:ns=\"https://github.com/icewind1991/SearchDAV/ns\">\n\t<d:basicsearch>\n\t\t<d:select>\n\t\t\t<d:prop>\n\t\t\t\t${getDavProperties()}\n\t\t\t</d:prop>\n\t\t</d:select>\n\t\t<d:from>\n\t\t\t<d:scope>\n\t\t\t\t<d:href>/files/${getCurrentUser()?.uid}/</d:href>\n\t\t\t\t<d:depth>infinity</d:depth>\n\t\t\t</d:scope>\n\t\t</d:from>\n\t\t<d:where>\n\t\t\t<d:and>\n\t\t\t\t<d:or>\n\t\t\t\t\t<d:not>\n\t\t\t\t\t\t<d:eq>\n\t\t\t\t\t\t\t<d:prop>\n\t\t\t\t\t\t\t\t<d:getcontenttype/>\n\t\t\t\t\t\t\t</d:prop>\n\t\t\t\t\t\t\t<d:literal>httpd/unix-directory</d:literal>\n\t\t\t\t\t\t</d:eq>\n\t\t\t\t\t</d:not>\n\t\t\t\t\t<d:eq>\n\t\t\t\t\t\t<d:prop>\n\t\t\t\t\t\t\t<oc:size/>\n\t\t\t\t\t\t</d:prop>\n\t\t\t\t\t\t<d:literal>0</d:literal>\n\t\t\t\t\t</d:eq>\n\t\t\t\t</d:or>\n\t\t\t\t<d:gt>\n\t\t\t\t\t<d:prop>\n\t\t\t\t\t\t<d:getlastmodified/>\n\t\t\t\t\t</d:prop>\n\t\t\t\t\t<d:literal>${lastModified}</d:literal>\n\t\t\t\t</d:gt>\n\t\t\t</d:and>\n\t\t</d:where>\n\t\t<d:orderby>\n\t\t\t<d:order>\n\t\t\t\t<d:prop>\n\t\t\t\t\t<d:getlastmodified/>\n\t\t\t\t</d:prop>\n\t\t\t\t<d:descending/>\n\t\t\t</d:order>\n\t\t</d:orderby>\n\t\t<d:limit>\n\t\t\t<d:nresults>100</d:nresults>\n\t\t\t<ns:firstresult>0</ns:firstresult>\n\t\t</d:limit>\n\t</d:basicsearch>\n</d:searchrequest>`;\n};\n/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n * @author Ferdinand Thiessen <opensource@fthiessen.de>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nconst davParsePermissions = function(permString = \"\") {\n let permissions = Permission.NONE;\n if (!permString) {\n return permissions;\n }\n if (permString.includes(\"C\") || permString.includes(\"K\")) {\n permissions |= Permission.CREATE;\n }\n if (permString.includes(\"G\")) {\n permissions |= Permission.READ;\n }\n if (permString.includes(\"W\") || permString.includes(\"N\") || permString.includes(\"V\")) {\n permissions |= Permission.UPDATE;\n }\n if (permString.includes(\"D\")) {\n permissions |= Permission.DELETE;\n }\n if (permString.includes(\"R\")) {\n permissions |= Permission.SHARE;\n }\n return permissions;\n};\n/**\n * @copyright Copyright (c) 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nvar FileType = /* @__PURE__ */ ((FileType2) => {\n FileType2[\"Folder\"] = \"folder\";\n FileType2[\"File\"] = \"file\";\n return FileType2;\n})(FileType || {});\n/**\n * @copyright Copyright (c) 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nconst isDavRessource = function(source, davService) {\n return source.match(davService) !== null;\n};\nconst validateData = (data, davService) => {\n if (data.id && typeof data.id !== \"number\") {\n throw new Error(\"Invalid id type of value\");\n }\n if (!data.source) {\n throw new Error(\"Missing mandatory source\");\n }\n try {\n new URL(data.source);\n } catch (e) {\n throw new Error(\"Invalid source format, source must be a valid URL\");\n }\n if (!data.source.startsWith(\"http\")) {\n throw new Error(\"Invalid source format, only http(s) is supported\");\n }\n if (data.mtime && !(data.mtime instanceof Date)) {\n throw new Error(\"Invalid mtime type\");\n }\n if (data.crtime && !(data.crtime instanceof Date)) {\n throw new Error(\"Invalid crtime type\");\n }\n if (!data.mime || typeof data.mime !== \"string\" || !data.mime.match(/^[-\\w.]+\\/[-+\\w.]+$/gi)) {\n throw new Error(\"Missing or invalid mandatory mime\");\n }\n if (\"size\" in data && typeof data.size !== \"number\" && data.size !== void 0) {\n throw new Error(\"Invalid size type\");\n }\n if (\"permissions\" in data && data.permissions !== void 0 && !(typeof data.permissions === \"number\" && data.permissions >= Permission.NONE && data.permissions <= Permission.ALL)) {\n throw new Error(\"Invalid permissions\");\n }\n if (data.owner && data.owner !== null && typeof data.owner !== \"string\") {\n throw new Error(\"Invalid owner type\");\n }\n if (data.attributes && typeof data.attributes !== \"object\") {\n throw new Error(\"Invalid attributes type\");\n }\n if (data.root && typeof data.root !== \"string\") {\n throw new Error(\"Invalid root type\");\n }\n if (data.root && !data.root.startsWith(\"/\")) {\n throw new Error(\"Root must start with a leading slash\");\n }\n if (data.root && !data.source.includes(data.root)) {\n throw new Error(\"Root must be part of the source\");\n }\n if (data.root && isDavRessource(data.source, davService)) {\n const service = data.source.match(davService)[0];\n if (!data.source.includes(join(service, data.root))) {\n throw new Error(\"The root must be relative to the service. e.g /files/emma\");\n }\n }\n if (data.status && !Object.values(NodeStatus).includes(data.status)) {\n throw new Error(\"Status must be a valid NodeStatus\");\n }\n};\n/**\n * @copyright Copyright (c) 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nvar NodeStatus = /* @__PURE__ */ ((NodeStatus2) => {\n NodeStatus2[\"NEW\"] = \"new\";\n NodeStatus2[\"FAILED\"] = \"failed\";\n NodeStatus2[\"LOADING\"] = \"loading\";\n NodeStatus2[\"LOCKED\"] = \"locked\";\n return NodeStatus2;\n})(NodeStatus || {});\nclass Node {\n _data;\n _attributes;\n _knownDavService = /(remote|public)\\.php\\/(web)?dav/i;\n readonlyAttributes = Object.entries(Object.getOwnPropertyDescriptors(Node.prototype)).filter((e) => typeof e[1].get === \"function\" && e[0] !== \"__proto__\").map((e) => e[0]);\n handler = {\n set: (target, prop, value) => {\n if (this.readonlyAttributes.includes(prop)) {\n return false;\n }\n return Reflect.set(target, prop, value);\n },\n deleteProperty: (target, prop) => {\n if (this.readonlyAttributes.includes(prop)) {\n return false;\n }\n return Reflect.deleteProperty(target, prop);\n },\n // TODO: This is deprecated and only needed for files v3\n get: (target, prop, receiver) => {\n if (this.readonlyAttributes.includes(prop)) {\n logger.warn(`Accessing \"Node.attributes.${prop}\" is deprecated, access it directly on the Node instance.`);\n return Reflect.get(this, prop);\n }\n return Reflect.get(target, prop, receiver);\n }\n };\n constructor(data, davService) {\n validateData(data, davService || this._knownDavService);\n this._data = { ...data, attributes: {} };\n this._attributes = new Proxy(this._data.attributes, this.handler);\n this.update(data.attributes ?? {});\n if (davService) {\n this._knownDavService = davService;\n }\n }\n /**\n * Get the source url to this object\n * There is no setter as the source is not meant to be changed manually.\n * You can use the rename or move method to change the source.\n */\n get source() {\n return this._data.source.replace(/\\/$/i, \"\");\n }\n /**\n * Get the encoded source url to this object for requests purposes\n */\n get encodedSource() {\n const { origin } = new URL(this.source);\n return origin + encodePath(this.source.slice(origin.length));\n }\n /**\n * Get this object name\n * There is no setter as the source is not meant to be changed manually.\n * You can use the rename or move method to change the source.\n */\n get basename() {\n return basename(this.source);\n }\n /**\n * Get this object's extension\n * There is no setter as the source is not meant to be changed manually.\n * You can use the rename or move method to change the source.\n */\n get extension() {\n return extname(this.source);\n }\n /**\n * Get the directory path leading to this object\n * Will use the relative path to root if available\n *\n * There is no setter as the source is not meant to be changed manually.\n * You can use the rename or move method to change the source.\n */\n get dirname() {\n if (this.root) {\n let source = this.source;\n if (this.isDavRessource) {\n source = source.split(this._knownDavService).pop();\n }\n const firstMatch = source.indexOf(this.root);\n const root = this.root.replace(/\\/$/, \"\");\n return dirname(source.slice(firstMatch + root.length) || \"/\");\n }\n const url = new URL(this.source);\n return dirname(url.pathname);\n }\n /**\n * Get the file mime\n * There is no setter as the mime is not meant to be changed\n */\n get mime() {\n return this._data.mime;\n }\n /**\n * Get the file modification time\n */\n get mtime() {\n return this._data.mtime;\n }\n /**\n * Set the file modification time\n */\n set mtime(mtime) {\n this._data.mtime = mtime;\n }\n /**\n * Get the file creation time\n * There is no setter as the creation time is not meant to be changed\n */\n get crtime() {\n return this._data.crtime;\n }\n /**\n * Get the file size\n */\n get size() {\n return this._data.size;\n }\n /**\n * Set the file size\n */\n set size(size) {\n this.updateMtime();\n this._data.size = size;\n }\n /**\n * Get the file attribute\n * This contains all additional attributes not provided by the Node class\n */\n get attributes() {\n return this._attributes;\n }\n /**\n * Get the file permissions\n */\n get permissions() {\n if (this.owner === null && !this.isDavRessource) {\n return Permission.READ;\n }\n return this._data.permissions !== void 0 ? this._data.permissions : Permission.NONE;\n }\n /**\n * Set the file permissions\n */\n set permissions(permissions) {\n this.updateMtime();\n this._data.permissions = permissions;\n }\n /**\n * Get the file owner\n * There is no setter as the owner is not meant to be changed\n */\n get owner() {\n if (!this.isDavRessource) {\n return null;\n }\n return this._data.owner;\n }\n /**\n * Is this a dav-related ressource ?\n */\n get isDavRessource() {\n return isDavRessource(this.source, this._knownDavService);\n }\n /**\n * Get the dav root of this object\n * There is no setter as the root is not meant to be changed\n */\n get root() {\n if (this._data.root) {\n return this._data.root.replace(/^(.+)\\/$/, \"$1\");\n }\n if (this.isDavRessource) {\n const root = dirname(this.source);\n return root.split(this._knownDavService).pop() || null;\n }\n return null;\n }\n /**\n * Get the absolute path of this object relative to the root\n */\n get path() {\n if (this.root) {\n let source = this.source;\n if (this.isDavRessource) {\n source = source.split(this._knownDavService).pop();\n }\n const firstMatch = source.indexOf(this.root);\n const root = this.root.replace(/\\/$/, \"\");\n return source.slice(firstMatch + root.length) || \"/\";\n }\n return (this.dirname + \"/\" + this.basename).replace(/\\/\\//g, \"/\");\n }\n /**\n * Get the node id if defined.\n * There is no setter as the fileid is not meant to be changed\n */\n get fileid() {\n return this._data?.id;\n }\n /**\n * Get the node status.\n */\n get status() {\n return this._data?.status;\n }\n /**\n * Set the node status.\n */\n set status(status) {\n this._data.status = status;\n }\n /**\n * Move the node to a new destination\n *\n * @param {string} destination the new source.\n * e.g. https://cloud.domain.com/remote.php/dav/files/emma/Photos/picture.jpg\n */\n move(destination) {\n validateData({ ...this._data, source: destination }, this._knownDavService);\n this._data.source = destination;\n this.updateMtime();\n }\n /**\n * Rename the node\n * This aliases the move method for easier usage\n *\n * @param basename The new name of the node\n */\n rename(basename2) {\n if (basename2.includes(\"/\")) {\n throw new Error(\"Invalid basename\");\n }\n this.move(dirname(this.source) + \"/\" + basename2);\n }\n /**\n * Update the mtime if exists\n */\n updateMtime() {\n if (this._data.mtime) {\n this._data.mtime = /* @__PURE__ */ new Date();\n }\n }\n /**\n * Update the attributes of the node\n * Warning, updating attributes will NOT automatically update the mtime.\n *\n * @param attributes The new attributes to update on the Node attributes\n */\n update(attributes) {\n for (const [name, value] of Object.entries(attributes)) {\n try {\n if (value === void 0) {\n delete this.attributes[name];\n } else {\n this.attributes[name] = value;\n }\n } catch (e) {\n if (e instanceof TypeError) {\n continue;\n }\n throw e;\n }\n }\n }\n}\n/**\n * @copyright Copyright (c) 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nclass File extends Node {\n get type() {\n return FileType.File;\n }\n}\n/**\n * @copyright Copyright (c) 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nclass Folder extends Node {\n constructor(data) {\n super({\n ...data,\n mime: \"httpd/unix-directory\"\n });\n }\n get type() {\n return FileType.Folder;\n }\n get extension() {\n return null;\n }\n get mime() {\n return \"httpd/unix-directory\";\n }\n}\n/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n * @author Ferdinand Thiessen <opensource@fthiessen.de>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nconst davRootPath = `/files/${getCurrentUser()?.uid}`;\nconst davRemoteURL = generateRemoteUrl(\"dav\");\nconst davGetClient = function(remoteURL = davRemoteURL, headers = {}) {\n const client = createClient(remoteURL, { headers });\n function setHeaders(token) {\n client.setHeaders({\n ...headers,\n // Add this so the server knows it is an request from the browser\n \"X-Requested-With\": \"XMLHttpRequest\",\n // Inject user auth\n requesttoken: token ?? \"\"\n });\n }\n onRequestTokenUpdate(setHeaders);\n setHeaders(getRequestToken());\n const patcher = getPatcher();\n patcher.patch(\"fetch\", (url, options) => {\n const headers2 = options.headers;\n if (headers2?.method) {\n options.method = headers2.method;\n delete headers2.method;\n }\n return fetch(url, options);\n });\n return client;\n};\nconst getFavoriteNodes = (davClient, path = \"/\", davRoot = davRootPath) => {\n const controller = new AbortController();\n return new CancelablePromise(async (resolve, reject, onCancel) => {\n onCancel(() => controller.abort());\n try {\n const contentsResponse = await davClient.getDirectoryContents(`${davRoot}${path}`, {\n signal: controller.signal,\n details: true,\n data: davGetFavoritesReport(),\n headers: {\n // see davGetClient for patched webdav client\n method: \"REPORT\"\n },\n includeSelf: true\n });\n const nodes = contentsResponse.data.filter((node) => node.filename !== path).map((result) => davResultToNode(result, davRoot));\n resolve(nodes);\n } catch (error) {\n reject(error);\n }\n });\n};\nconst davResultToNode = function(node, filesRoot = davRootPath, remoteURL = davRemoteURL) {\n let userId = getCurrentUser()?.uid;\n const isPublic = document.querySelector(\"input#isPublic\")?.value;\n if (isPublic) {\n userId = userId ?? document.querySelector(\"input#sharingUserId\")?.value;\n userId = userId ?? \"anonymous\";\n } else if (!userId) {\n throw new Error(\"No user id found\");\n }\n const props = node.props;\n const permissions = davParsePermissions(props?.permissions);\n const owner = String(props?.[\"owner-id\"] || userId);\n const nodeData = {\n id: props?.fileid || 0,\n source: `${remoteURL}${node.filename}`,\n mtime: new Date(Date.parse(node.lastmod)),\n mime: node.mime || \"application/octet-stream\",\n size: props?.size || Number.parseInt(props.getcontentlength || \"0\"),\n permissions,\n owner,\n root: filesRoot,\n attributes: {\n ...node,\n ...props,\n hasPreview: props?.[\"has-preview\"]\n }\n };\n delete nodeData.attributes?.props;\n return node.type === \"file\" ? new File(nodeData) : new Folder(nodeData);\n};\nconst forbiddenCharacters = window._oc_config?.forbidden_filenames_characters ?? [\"/\", \"\\\\\"];\nconst forbiddenFilenameRegex = window._oc_config?.blacklist_files_regex ? new RegExp(window._oc_config.blacklist_files_regex) : null;\nfunction isFilenameValid(filename) {\n if (forbiddenCharacters.some((character) => filename.includes(character))) {\n return false;\n }\n if (forbiddenFilenameRegex !== null && filename.match(forbiddenFilenameRegex)) {\n return false;\n }\n return true;\n}\n/**\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author Christoph Wurst <christoph@winzerhof-wurst.at>\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nconst humanList = [\"B\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\"];\nconst humanListBinary = [\"B\", \"KiB\", \"MiB\", \"GiB\", \"TiB\", \"PiB\"];\nfunction formatFileSize(size, skipSmallSizes = false, binaryPrefixes = false, base1000 = false) {\n binaryPrefixes = binaryPrefixes && !base1000;\n if (typeof size === \"string\") {\n size = Number(size);\n }\n let order = size > 0 ? Math.floor(Math.log(size) / Math.log(base1000 ? 1e3 : 1024)) : 0;\n order = Math.min((binaryPrefixes ? humanListBinary.length : humanList.length) - 1, order);\n const readableFormat = binaryPrefixes ? humanListBinary[order] : humanList[order];\n let relativeSize = (size / Math.pow(base1000 ? 1e3 : 1024, order)).toFixed(1);\n if (skipSmallSizes === true && order === 0) {\n return (relativeSize !== \"0.0\" ? \"< 1 \" : \"0 \") + (binaryPrefixes ? humanListBinary[1] : humanList[1]);\n }\n if (order < 2) {\n relativeSize = parseFloat(relativeSize).toFixed(0);\n } else {\n relativeSize = parseFloat(relativeSize).toLocaleString(getCanonicalLocale());\n }\n return relativeSize + \" \" + readableFormat;\n}\nfunction parseFileSize(value, forceBinary = false) {\n try {\n value = `${value}`.toLocaleLowerCase().replaceAll(/\\s+/g, \"\").replaceAll(\",\", \".\");\n } catch (e) {\n return null;\n }\n const match = value.match(/^([0-9]*(\\.[0-9]*)?)([kmgtp]?)(i?)b?$/);\n if (match === null || match[1] === \".\" || match[1] === \"\") {\n return null;\n }\n const bytesArray = {\n \"\": 0,\n k: 1,\n m: 2,\n g: 3,\n t: 4,\n p: 5,\n e: 6\n };\n const decimalString = `${match[1]}`;\n const base = match[4] === \"i\" || forceBinary ? 1024 : 1e3;\n return Math.round(Number.parseFloat(decimalString) * base ** bytesArray[match[3]]);\n}\nfunction stringify(value) {\n if (value instanceof Date) {\n return value.toISOString();\n }\n return String(value);\n}\nfunction orderBy(collection, identifiers, orders) {\n identifiers = identifiers ?? [(value) => value];\n orders = orders ?? [];\n const sorting = identifiers.map((_, index) => (orders[index] ?? \"asc\") === \"asc\" ? 1 : -1);\n const collator = Intl.Collator(\n [getLanguage(), getCanonicalLocale()],\n {\n // handle 10 as ten and not as one-zero\n numeric: true,\n usage: \"sort\"\n }\n );\n return [...collection].sort((a, b) => {\n for (const [index, identifier] of identifiers.entries()) {\n const value = collator.compare(stringify(identifier(a)), stringify(identifier(b)));\n if (value !== 0) {\n return value * sorting[index];\n }\n }\n return 0;\n });\n}\nvar FilesSortingMode = /* @__PURE__ */ ((FilesSortingMode2) => {\n FilesSortingMode2[\"Name\"] = \"basename\";\n FilesSortingMode2[\"Modified\"] = \"mtime\";\n FilesSortingMode2[\"Size\"] = \"size\";\n return FilesSortingMode2;\n})(FilesSortingMode || {});\nfunction sortNodes(nodes, options = {}) {\n const sortingOptions = {\n // Default to sort by name\n sortingMode: \"basename\",\n // Default to sort ascending\n sortingOrder: \"asc\",\n ...options\n };\n const identifiers = [\n // 1: Sort favorites first if enabled\n ...sortingOptions.sortFavoritesFirst ? [(v) => v.attributes?.favorite !== 1] : [],\n // 2: Sort folders first if sorting by name\n ...sortingOptions.sortFoldersFirst ? [(v) => v.type !== \"folder\"] : [],\n // 3: Use sorting mode if NOT basename (to be able to use displayName too)\n ...sortingOptions.sortingMode !== \"basename\" ? [(v) => v[sortingOptions.sortingMode]] : [],\n // 4: Use displayName if available, fallback to name\n (v) => v.attributes?.displayName || v.basename,\n // 5: Finally, use basename if all previous sorting methods failed\n (v) => v.basename\n ];\n const orders = [\n // (for 1): always sort favorites before normal files\n ...sortingOptions.sortFavoritesFirst ? [\"asc\"] : [],\n // (for 2): always sort folders before files\n ...sortingOptions.sortFoldersFirst ? [\"asc\"] : [],\n // (for 3): Reverse if sorting by mtime as mtime higher means edited more recent -> lower\n ...sortingOptions.sortingMode === \"mtime\" ? [sortingOptions.sortingOrder === \"asc\" ? \"desc\" : \"asc\"] : [],\n // (also for 3 so make sure not to conflict with 2 and 3)\n ...sortingOptions.sortingMode !== \"mtime\" && sortingOptions.sortingMode !== \"basename\" ? [sortingOptions.sortingOrder] : [],\n // for 4: use configured sorting direction\n sortingOptions.sortingOrder,\n // for 5: use configured sorting direction\n sortingOptions.sortingOrder\n ];\n return orderBy(nodes, identifiers, orders);\n}\n/**\n * @copyright Copyright (c) 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nclass Navigation {\n _views = [];\n _currentView = null;\n register(view) {\n if (this._views.find((search) => search.id === view.id)) {\n throw new Error(`View id ${view.id} is already registered`);\n }\n this._views.push(view);\n }\n remove(id) {\n const index = this._views.findIndex((view) => view.id === id);\n if (index !== -1) {\n this._views.splice(index, 1);\n }\n }\n get views() {\n return this._views;\n }\n setActive(view) {\n this._currentView = view;\n }\n get active() {\n return this._currentView;\n }\n}\nconst getNavigation = function() {\n if (typeof window._nc_navigation === \"undefined\") {\n window._nc_navigation = new Navigation();\n logger.debug(\"Navigation service initialized\");\n }\n return window._nc_navigation;\n};\n/**\n * @copyright Copyright (c) 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nclass Column {\n _column;\n constructor(column) {\n isValidColumn(column);\n this._column = column;\n }\n get id() {\n return this._column.id;\n }\n get title() {\n return this._column.title;\n }\n get render() {\n return this._column.render;\n }\n get sort() {\n return this._column.sort;\n }\n get summary() {\n return this._column.summary;\n }\n}\nconst isValidColumn = function(column) {\n if (!column.id || typeof column.id !== \"string\") {\n throw new Error(\"A column id is required\");\n }\n if (!column.title || typeof column.title !== \"string\") {\n throw new Error(\"A column title is required\");\n }\n if (!column.render || typeof column.render !== \"function\") {\n throw new Error(\"A render function is required\");\n }\n if (column.sort && typeof column.sort !== \"function\") {\n throw new Error(\"Column sortFunction must be a function\");\n }\n if (column.summary && typeof column.summary !== \"function\") {\n throw new Error(\"Column summary must be a function\");\n }\n return true;\n};\nvar validator$2 = {};\nvar util$3 = {};\n(function(exports) {\n const nameStartChar = \":A-Za-z_\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\";\n const nameChar = nameStartChar + \"\\\\-.\\\\d\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040\";\n const nameRegexp = \"[\" + nameStartChar + \"][\" + nameChar + \"]*\";\n const regexName = new RegExp(\"^\" + nameRegexp + \"$\");\n const getAllMatches = function(string, regex) {\n const matches = [];\n let match = regex.exec(string);\n while (match) {\n const allmatches = [];\n allmatches.startIndex = regex.lastIndex - match[0].length;\n const len = match.length;\n for (let index = 0; index < len; index++) {\n allmatches.push(match[index]);\n }\n matches.push(allmatches);\n match = regex.exec(string);\n }\n return matches;\n };\n const isName = function(string) {\n const match = regexName.exec(string);\n return !(match === null || typeof match === \"undefined\");\n };\n exports.isExist = function(v) {\n return typeof v !== \"undefined\";\n };\n exports.isEmptyObject = function(obj) {\n return Object.keys(obj).length === 0;\n };\n exports.merge = function(target, a, arrayMode) {\n if (a) {\n const keys = Object.keys(a);\n const len = keys.length;\n for (let i = 0; i < len; i++) {\n if (arrayMode === \"strict\") {\n target[keys[i]] = [a[keys[i]]];\n } else {\n target[keys[i]] = a[keys[i]];\n }\n }\n }\n };\n exports.getValue = function(v) {\n if (exports.isExist(v)) {\n return v;\n } else {\n return \"\";\n }\n };\n exports.isName = isName;\n exports.getAllMatches = getAllMatches;\n exports.nameRegexp = nameRegexp;\n})(util$3);\nconst util$2 = util$3;\nconst defaultOptions$2 = {\n allowBooleanAttributes: false,\n //A tag can have attributes without any value\n unpairedTags: []\n};\nvalidator$2.validate = function(xmlData, options) {\n options = Object.assign({}, defaultOptions$2, options);\n const tags = [];\n let tagFound = false;\n let reachedRoot = false;\n if (xmlData[0] === \"\\uFEFF\") {\n xmlData = xmlData.substr(1);\n }\n for (let i = 0; i < xmlData.length; i++) {\n if (xmlData[i] === \"<\" && xmlData[i + 1] === \"?\") {\n i += 2;\n i = readPI(xmlData, i);\n if (i.err)\n return i;\n } else if (xmlData[i] === \"<\") {\n let tagStartPos = i;\n i++;\n if (xmlData[i] === \"!\") {\n i = readCommentAndCDATA(xmlData, i);\n continue;\n } else {\n let closingTag = false;\n if (xmlData[i] === \"/\") {\n closingTag = true;\n i++;\n }\n let tagName = \"\";\n for (; i < xmlData.length && xmlData[i] !== \">\" && xmlData[i] !== \" \" && xmlData[i] !== \"\t\" && xmlData[i] !== \"\\n\" && xmlData[i] !== \"\\r\"; i++) {\n tagName += xmlData[i];\n }\n tagName = tagName.trim();\n if (tagName[tagName.length - 1] === \"/\") {\n tagName = tagName.substring(0, tagName.length - 1);\n i--;\n }\n if (!validateTagName(tagName)) {\n let msg;\n if (tagName.trim().length === 0) {\n msg = \"Invalid space after '<'.\";\n } else {\n msg = \"Tag '\" + tagName + \"' is an invalid name.\";\n }\n return getErrorObject(\"InvalidTag\", msg, getLineNumberForPosition(xmlData, i));\n }\n const result = readAttributeStr(xmlData, i);\n if (result === false) {\n return getErrorObject(\"InvalidAttr\", \"Attributes for '\" + tagName + \"' have open quote.\", getLineNumberForPosition(xmlData, i));\n }\n let attrStr = result.value;\n i = result.index;\n if (attrStr[attrStr.length - 1] === \"/\") {\n const attrStrStart = i - attrStr.length;\n attrStr = attrStr.substring(0, attrStr.length - 1);\n const isValid = validateAttributeString(attrStr, options);\n if (isValid === true) {\n tagFound = true;\n } else {\n return getErrorObject(isValid.err.code, isValid.err.msg, getLineNumberForPosition(xmlData, attrStrStart + isValid.err.line));\n }\n } else if (closingTag) {\n if (!result.tagClosed) {\n return getErrorObject(\"InvalidTag\", \"Closing tag '\" + tagName + \"' doesn't have proper closing.\", getLineNumberForPosition(xmlData, i));\n } else if (attrStr.trim().length > 0) {\n return getErrorObject(\"InvalidTag\", \"Closing tag '\" + tagName + \"' can't have attributes or invalid starting.\", getLineNumberForPosition(xmlData, tagStartPos));\n } else if (tags.length === 0) {\n return getErrorObject(\"InvalidTag\", \"Closing tag '\" + tagName + \"' has not been opened.\", getLineNumberForPosition(xmlData, tagStartPos));\n } else {\n const otg = tags.pop();\n if (tagName !== otg.tagName) {\n let openPos = getLineNumberForPosition(xmlData, otg.tagStartPos);\n return getErrorObject(\n \"InvalidTag\",\n \"Expected closing tag '\" + otg.tagName + \"' (opened in line \" + openPos.line + \", col \" + openPos.col + \") instead of closing tag '\" + tagName + \"'.\",\n getLineNumberForPosition(xmlData, tagStartPos)\n );\n }\n if (tags.length == 0) {\n reachedRoot = true;\n }\n }\n } else {\n const isValid = validateAttributeString(attrStr, options);\n if (isValid !== true) {\n return getErrorObject(isValid.err.code, isValid.err.msg, getLineNumberForPosition(xmlData, i - attrStr.length + isValid.err.line));\n }\n if (reachedRoot === true) {\n return getErrorObject(\"InvalidXml\", \"Multiple possible root nodes found.\", getLineNumberForPosition(xmlData, i));\n } else if (options.unpairedTags.indexOf(tagName) !== -1)\n ;\n else {\n tags.push({ tagName, tagStartPos });\n }\n tagFound = true;\n }\n for (i++; i < xmlData.length; i++) {\n if (xmlData[i] === \"<\") {\n if (xmlData[i + 1] === \"!\") {\n i++;\n i = readCommentAndCDATA(xmlData, i);\n continue;\n } else if (xmlData[i + 1] === \"?\") {\n i = readPI(xmlData, ++i);\n if (i.err)\n return i;\n } else {\n break;\n }\n } else if (xmlData[i] === \"&\") {\n const afterAmp = validateAmpersand(xmlData, i);\n if (afterAmp == -1)\n return getErrorObject(\"InvalidChar\", \"char '&' is not expected.\", getLineNumberForPosition(xmlData, i));\n i = afterAmp;\n } else {\n if (reachedRoot === true && !isWhiteSpace(xmlData[i])) {\n return getErrorObject(\"InvalidXml\", \"Extra text at the end\", getLineNumberForPosition(xmlData, i));\n }\n }\n }\n if (xmlData[i] === \"<\") {\n i--;\n }\n }\n } else {\n if (isWhiteSpace(xmlData[i])) {\n continue;\n }\n return getErrorObject(\"InvalidChar\", \"char '\" + xmlData[i] + \"' is not expected.\", getLineNumberForPosition(xmlData, i));\n }\n }\n if (!tagFound) {\n return getErrorObject(\"InvalidXml\", \"Start tag expected.\", 1);\n } else if (tags.length == 1) {\n return getErrorObject(\"InvalidTag\", \"Unclosed tag '\" + tags[0].tagName + \"'.\", getLineNumberForPosition(xmlData, tags[0].tagStartPos));\n } else if (tags.length > 0) {\n return getErrorObject(\"InvalidXml\", \"Invalid '\" + JSON.stringify(tags.map((t) => t.tagName), null, 4).replace(/\\r?\\n/g, \"\") + \"' found.\", { line: 1, col: 1 });\n }\n return true;\n};\nfunction isWhiteSpace(char) {\n return char === \" \" || char === \"\t\" || char === \"\\n\" || char === \"\\r\";\n}\nfunction readPI(xmlData, i) {\n const start = i;\n for (; i < xmlData.length; i++) {\n if (xmlData[i] == \"?\" || xmlData[i] == \" \") {\n const tagname = xmlData.substr(start, i - start);\n if (i > 5 && tagname === \"xml\") {\n return getErrorObject(\"InvalidXml\", \"XML declaration allowed only at the start of the document.\", getLineNumberForPosition(xmlData, i));\n } else if (xmlData[i] == \"?\" && xmlData[i + 1] == \">\") {\n i++;\n break;\n } else {\n continue;\n }\n }\n }\n return i;\n}\nfunction readCommentAndCDATA(xmlData, i) {\n if (xmlData.length > i + 5 && xmlData[i + 1] === \"-\" && xmlData[i + 2] === \"-\") {\n for (i += 3; i < xmlData.length; i++) {\n if (xmlData[i] === \"-\" && xmlData[i + 1] === \"-\" && xmlData[i + 2] === \">\") {\n i += 2;\n break;\n }\n }\n } else if (xmlData.length > i + 8 && xmlData[i + 1] === \"D\" && xmlData[i + 2] === \"O\" && xmlData[i + 3] === \"C\" && xmlData[i + 4] === \"T\" && xmlData[i + 5] === \"Y\" && xmlData[i + 6] === \"P\" && xmlData[i + 7] === \"E\") {\n let angleBracketsCount = 1;\n for (i += 8; i < xmlData.length; i++) {\n if (xmlData[i] === \"<\") {\n angleBracketsCount++;\n } else if (xmlData[i] === \">\") {\n angleBracketsCount--;\n if (angleBracketsCount === 0) {\n break;\n }\n }\n }\n } else if (xmlData.length > i + 9 && xmlData[i + 1] === \"[\" && xmlData[i + 2] === \"C\" && xmlData[i + 3] === \"D\" && xmlData[i + 4] === \"A\" && xmlData[i + 5] === \"T\" && xmlData[i + 6] === \"A\" && xmlData[i + 7] === \"[\") {\n for (i += 8; i < xmlData.length; i++) {\n if (xmlData[i] === \"]\" && xmlData[i + 1] === \"]\" && xmlData[i + 2] === \">\") {\n i += 2;\n break;\n }\n }\n }\n return i;\n}\nconst doubleQuote = '\"';\nconst singleQuote = \"'\";\nfunction readAttributeStr(xmlData, i) {\n let attrStr = \"\";\n let startChar = \"\";\n let tagClosed = false;\n for (; i < xmlData.length; i++) {\n if (xmlData[i] === doubleQuote || xmlData[i] === singleQuote) {\n if (startChar === \"\") {\n startChar = xmlData[i];\n } else if (startChar !== xmlData[i])\n ;\n else {\n startChar = \"\";\n }\n } else if (xmlData[i] === \">\") {\n if (startChar === \"\") {\n tagClosed = true;\n break;\n }\n }\n attrStr += xmlData[i];\n }\n if (startChar !== \"\") {\n return false;\n }\n return {\n value: attrStr,\n index: i,\n tagClosed\n };\n}\nconst validAttrStrRegxp = new RegExp(`(\\\\s*)([^\\\\s=]+)(\\\\s*=)?(\\\\s*(['\"])(([\\\\s\\\\S])*?)\\\\5)?`, \"g\");\nfunction validateAttributeString(attrStr, options) {\n const matches = util$2.getAllMatches(attrStr, validAttrStrRegxp);\n const attrNames = {};\n for (let i = 0; i < matches.length; i++) {\n if (matches[i][1].length === 0) {\n return getErrorObject(\"InvalidAttr\", \"Attribute '\" + matches[i][2] + \"' has no space in starting.\", getPositionFromMatch(matches[i]));\n } else if (matches[i][3] !== void 0 && matches[i][4] === void 0) {\n return getErrorObject(\"InvalidAttr\", \"Attribute '\" + matches[i][2] + \"' is without value.\", getPositionFromMatch(matches[i]));\n } else if (matches[i][3] === void 0 && !options.allowBooleanAttributes) {\n return getErrorObject(\"InvalidAttr\", \"boolean attribute '\" + matches[i][2] + \"' is not allowed.\", getPositionFromMatch(matches[i]));\n }\n const attrName = matches[i][2];\n if (!validateAttrName(attrName)) {\n return getErrorObject(\"InvalidAttr\", \"Attribute '\" + attrName + \"' is an invalid name.\", getPositionFromMatch(matches[i]));\n }\n if (!attrNames.hasOwnProperty(attrName)) {\n attrNames[attrName] = 1;\n } else {\n return getErrorObject(\"InvalidAttr\", \"Attribute '\" + attrName + \"' is repeated.\", getPositionFromMatch(matches[i]));\n }\n }\n return true;\n}\nfunction validateNumberAmpersand(xmlData, i) {\n let re = /\\d/;\n if (xmlData[i] === \"x\") {\n i++;\n re = /[\\da-fA-F]/;\n }\n for (; i < xmlData.length; i++) {\n if (xmlData[i] === \";\")\n return i;\n if (!xmlData[i].match(re))\n break;\n }\n return -1;\n}\nfunction validateAmpersand(xmlData, i) {\n i++;\n if (xmlData[i] === \";\")\n return -1;\n if (xmlData[i] === \"#\") {\n i++;\n return validateNumberAmpersand(xmlData, i);\n }\n let count = 0;\n for (; i < xmlData.length; i++, count++) {\n if (xmlData[i].match(/\\w/) && count < 20)\n continue;\n if (xmlData[i] === \";\")\n break;\n return -1;\n }\n return i;\n}\nfunction getErrorObject(code, message, lineNumber) {\n return {\n err: {\n code,\n msg: message,\n line: lineNumber.line || lineNumber,\n col: lineNumber.col\n }\n };\n}\nfunction validateAttrName(attrName) {\n return util$2.isName(attrName);\n}\nfunction validateTagName(tagname) {\n return util$2.isName(tagname);\n}\nfunction getLineNumberForPosition(xmlData, index) {\n const lines = xmlData.substring(0, index).split(/\\r?\\n/);\n return {\n line: lines.length,\n // column number is last line's length + 1, because column numbering starts at 1:\n col: lines[lines.length - 1].length + 1\n };\n}\nfunction getPositionFromMatch(match) {\n return match.startIndex + match[1].length;\n}\nvar OptionsBuilder = {};\nconst defaultOptions$1 = {\n preserveOrder: false,\n attributeNamePrefix: \"@_\",\n attributesGroupName: false,\n textNodeName: \"#text\",\n ignoreAttributes: true,\n removeNSPrefix: false,\n // remove NS from tag name or attribute name if true\n allowBooleanAttributes: false,\n //a tag can have attributes without any value\n //ignoreRootElement : false,\n parseTagValue: true,\n parseAttributeValue: false,\n trimValues: true,\n //Trim string values of tag and attributes\n cdataPropName: false,\n numberParseOptions: {\n hex: true,\n leadingZeros: true,\n eNotation: true\n },\n tagValueProcessor: function(tagName, val2) {\n return val2;\n },\n attributeValueProcessor: function(attrName, val2) {\n return val2;\n },\n stopNodes: [],\n //nested tags will not be parsed even for errors\n alwaysCreateTextNode: false,\n isArray: () => false,\n commentPropName: false,\n unpairedTags: [],\n processEntities: true,\n htmlEntities: false,\n ignoreDeclaration: false,\n ignorePiTags: false,\n transformTagName: false,\n transformAttributeName: false,\n updateTag: function(tagName, jPath, attrs) {\n return tagName;\n }\n // skipEmptyListItem: false\n};\nconst buildOptions$1 = function(options) {\n return Object.assign({}, defaultOptions$1, options);\n};\nOptionsBuilder.buildOptions = buildOptions$1;\nOptionsBuilder.defaultOptions = defaultOptions$1;\nclass XmlNode {\n constructor(tagname) {\n this.tagname = tagname;\n this.child = [];\n this[\":@\"] = {};\n }\n add(key, val2) {\n if (key === \"__proto__\")\n key = \"#__proto__\";\n this.child.push({ [key]: val2 });\n }\n addChild(node) {\n if (node.tagname === \"__proto__\")\n node.tagname = \"#__proto__\";\n if (node[\":@\"] && Object.keys(node[\":@\"]).length > 0) {\n this.child.push({ [node.tagname]: node.child, [\":@\"]: node[\":@\"] });\n } else {\n this.child.push({ [node.tagname]: node.child });\n }\n }\n}\nvar xmlNode$1 = XmlNode;\nconst util$1 = util$3;\nfunction readDocType$1(xmlData, i) {\n const entities = {};\n if (xmlData[i + 3] === \"O\" && xmlData[i + 4] === \"C\" && xmlData[i + 5] === \"T\" && xmlData[i + 6] === \"Y\" && xmlData[i + 7] === \"P\" && xmlData[i + 8] === \"E\") {\n i = i + 9;\n let angleBracketsCount = 1;\n let hasBody = false, comment = false;\n let exp = \"\";\n for (; i < xmlData.length; i++) {\n if (xmlData[i] === \"<\" && !comment) {\n if (hasBody && isEntity(xmlData, i)) {\n i += 7;\n [entityName, val, i] = readEntityExp(xmlData, i + 1);\n if (val.indexOf(\"&\") === -1)\n entities[validateEntityName(entityName)] = {\n regx: RegExp(`&${entityName};`, \"g\"),\n val\n };\n } else if (hasBody && isElement(xmlData, i))\n i += 8;\n else if (hasBody && isAttlist(xmlData, i))\n i += 8;\n else if (hasBody && isNotation(xmlData, i))\n i += 9;\n else if (isComment)\n comment = true;\n else\n throw new Error(\"Invalid DOCTYPE\");\n angleBracketsCount++;\n exp = \"\";\n } else if (xmlData[i] === \">\") {\n if (comment) {\n if (xmlData[i - 1] === \"-\" && xmlData[i - 2] === \"-\") {\n comment = false;\n angleBracketsCount--;\n }\n } else {\n angleBracketsCount--;\n }\n if (angleBracketsCount === 0) {\n break;\n }\n } else if (xmlData[i] === \"[\") {\n hasBody = true;\n } else {\n exp += xmlData[i];\n }\n }\n if (angleBracketsCount !== 0) {\n throw new Error(`Unclosed DOCTYPE`);\n }\n } else {\n throw new Error(`Invalid Tag instead of DOCTYPE`);\n }\n return { entities, i };\n}\nfunction readEntityExp(xmlData, i) {\n let entityName2 = \"\";\n for (; i < xmlData.length && (xmlData[i] !== \"'\" && xmlData[i] !== '\"'); i++) {\n entityName2 += xmlData[i];\n }\n entityName2 = entityName2.trim();\n if (entityName2.indexOf(\" \") !== -1)\n throw new Error(\"External entites are not supported\");\n const startChar = xmlData[i++];\n let val2 = \"\";\n for (; i < xmlData.length && xmlData[i] !== startChar; i++) {\n val2 += xmlData[i];\n }\n return [entityName2, val2, i];\n}\nfunction isComment(xmlData, i) {\n if (xmlData[i + 1] === \"!\" && xmlData[i + 2] === \"-\" && xmlData[i + 3] === \"-\")\n return true;\n return false;\n}\nfunction isEntity(xmlData, i) {\n if (xmlData[i + 1] === \"!\" && xmlData[i + 2] === \"E\" && xmlData[i + 3] === \"N\" && xmlData[i + 4] === \"T\" && xmlData[i + 5] === \"I\" && xmlData[i + 6] === \"T\" && xmlData[i + 7] === \"Y\")\n return true;\n return false;\n}\nfunction isElement(xmlData, i) {\n if (xmlData[i + 1] === \"!\" && xmlData[i + 2] === \"E\" && xmlData[i + 3] === \"L\" && xmlData[i + 4] === \"E\" && xmlData[i + 5] === \"M\" && xmlData[i + 6] === \"E\" && xmlData[i + 7] === \"N\" && xmlData[i + 8] === \"T\")\n return true;\n return false;\n}\nfunction isAttlist(xmlData, i) {\n if (xmlData[i + 1] === \"!\" && xmlData[i + 2] === \"A\" && xmlData[i + 3] === \"T\" && xmlData[i + 4] === \"T\" && xmlData[i + 5] === \"L\" && xmlData[i + 6] === \"I\" && xmlData[i + 7] === \"S\" && xmlData[i + 8] === \"T\")\n return true;\n return false;\n}\nfunction isNotation(xmlData, i) {\n if (xmlData[i + 1] === \"!\" && xmlData[i + 2] === \"N\" && xmlData[i + 3] === \"O\" && xmlData[i + 4] === \"T\" && xmlData[i + 5] === \"A\" && xmlData[i + 6] === \"T\" && xmlData[i + 7] === \"I\" && xmlData[i + 8] === \"O\" && xmlData[i + 9] === \"N\")\n return true;\n return false;\n}\nfunction validateEntityName(name) {\n if (util$1.isName(name))\n return name;\n else\n throw new Error(`Invalid entity name ${name}`);\n}\nvar DocTypeReader = readDocType$1;\nconst hexRegex = /^[-+]?0x[a-fA-F0-9]+$/;\nconst numRegex = /^([\\-\\+])?(0*)(\\.[0-9]+([eE]\\-?[0-9]+)?|[0-9]+(\\.[0-9]+([eE]\\-?[0-9]+)?)?)$/;\nif (!Number.parseInt && window.parseInt) {\n Number.parseInt = window.parseInt;\n}\nif (!Number.parseFloat && window.parseFloat) {\n Number.parseFloat = window.parseFloat;\n}\nconst consider = {\n hex: true,\n leadingZeros: true,\n decimalPoint: \".\",\n eNotation: true\n //skipLike: /regex/\n};\nfunction toNumber$1(str, options = {}) {\n options = Object.assign({}, consider, options);\n if (!str || typeof str !== \"string\")\n return str;\n let trimmedStr = str.trim();\n if (options.skipLike !== void 0 && options.skipLike.test(trimmedStr))\n return str;\n else if (options.hex && hexRegex.test(trimmedStr)) {\n return Number.parseInt(trimmedStr, 16);\n } else {\n const match = numRegex.exec(trimmedStr);\n if (match) {\n const sign = match[1];\n const leadingZeros = match[2];\n let numTrimmedByZeros = trimZeros(match[3]);\n const eNotation = match[4] || match[6];\n if (!options.leadingZeros && leadingZeros.length > 0 && sign && trimmedStr[2] !== \".\")\n return str;\n else if (!options.leadingZeros && leadingZeros.length > 0 && !sign && trimmedStr[1] !== \".\")\n return str;\n else {\n const num = Number(trimmedStr);\n const numStr = \"\" + num;\n if (numStr.search(/[eE]/) !== -1) {\n if (options.eNotation)\n return num;\n else\n return str;\n } else if (eNotation) {\n if (options.eNotation)\n return num;\n else\n return str;\n } else if (trimmedStr.indexOf(\".\") !== -1) {\n if (numStr === \"0\" && numTrimmedByZeros === \"\")\n return num;\n else if (numStr === numTrimmedByZeros)\n return num;\n else if (sign && numStr === \"-\" + numTrimmedByZeros)\n return num;\n else\n return str;\n }\n if (leadingZeros) {\n if (numTrimmedByZeros === numStr)\n return num;\n else if (sign + numTrimmedByZeros === numStr)\n return num;\n else\n return str;\n }\n if (trimmedStr === numStr)\n return num;\n else if (trimmedStr === sign + numStr)\n return num;\n return str;\n }\n } else {\n return str;\n }\n }\n}\nfunction trimZeros(numStr) {\n if (numStr && numStr.indexOf(\".\") !== -1) {\n numStr = numStr.replace(/0+$/, \"\");\n if (numStr === \".\")\n numStr = \"0\";\n else if (numStr[0] === \".\")\n numStr = \"0\" + numStr;\n else if (numStr[numStr.length - 1] === \".\")\n numStr = numStr.substr(0, numStr.length - 1);\n return numStr;\n }\n return numStr;\n}\nvar strnum = toNumber$1;\nconst util = util$3;\nconst xmlNode = xmlNode$1;\nconst readDocType = DocTypeReader;\nconst toNumber = strnum;\nlet OrderedObjParser$1 = class OrderedObjParser {\n constructor(options) {\n this.options = options;\n this.currentNode = null;\n this.tagsNodeStack = [];\n this.docTypeEntities = {};\n this.lastEntities = {\n \"apos\": { regex: /&(apos|#39|#x27);/g, val: \"'\" },\n \"gt\": { regex: /&(gt|#62|#x3E);/g, val: \">\" },\n \"lt\": { regex: /&(lt|#60|#x3C);/g, val: \"<\" },\n \"quot\": { regex: /&(quot|#34|#x22);/g, val: '\"' }\n };\n this.ampEntity = { regex: /&(amp|#38|#x26);/g, val: \"&\" };\n this.htmlEntities = {\n \"space\": { regex: /&(nbsp|#160);/g, val: \" \" },\n // \"lt\" : { regex: /&(lt|#60);/g, val: \"<\" },\n // \"gt\" : { regex: /&(gt|#62);/g, val: \">\" },\n // \"amp\" : { regex: /&(amp|#38);/g, val: \"&\" },\n // \"quot\" : { regex: /&(quot|#34);/g, val: \"\\\"\" },\n // \"apos\" : { regex: /&(apos|#39);/g, val: \"'\" },\n \"cent\": { regex: /&(cent|#162);/g, val: \"¢\" },\n \"pound\": { regex: /&(pound|#163);/g, val: \"£\" },\n \"yen\": { regex: /&(yen|#165);/g, val: \"¥\" },\n \"euro\": { regex: /&(euro|#8364);/g, val: \"€\" },\n \"copyright\": { regex: /&(copy|#169);/g, val: \"©\" },\n \"reg\": { regex: /&(reg|#174);/g, val: \"®\" },\n \"inr\": { regex: /&(inr|#8377);/g, val: \"₹\" },\n \"num_dec\": { regex: /&#([0-9]{1,7});/g, val: (_, str) => String.fromCharCode(Number.parseInt(str, 10)) },\n \"num_hex\": { regex: /&#x([0-9a-fA-F]{1,6});/g, val: (_, str) => String.fromCharCode(Number.parseInt(str, 16)) }\n };\n this.addExternalEntities = addExternalEntities;\n this.parseXml = parseXml;\n this.parseTextData = parseTextData;\n this.resolveNameSpace = resolveNameSpace;\n this.buildAttributesMap = buildAttributesMap;\n this.isItStopNode = isItStopNode;\n this.replaceEntitiesValue = replaceEntitiesValue$1;\n this.readStopNodeData = readStopNodeData;\n this.saveTextToParentTag = saveTextToParentTag;\n this.addChild = addChild;\n }\n};\nfunction addExternalEntities(externalEntities) {\n const entKeys = Object.keys(externalEntities);\n for (let i = 0; i < entKeys.length; i++) {\n const ent = entKeys[i];\n this.lastEntities[ent] = {\n regex: new RegExp(\"&\" + ent + \";\", \"g\"),\n val: externalEntities[ent]\n };\n }\n}\nfunction parseTextData(val2, tagName, jPath, dontTrim, hasAttributes, isLeafNode, escapeEntities) {\n if (val2 !== void 0) {\n if (this.options.trimValues && !dontTrim) {\n val2 = val2.trim();\n }\n if (val2.length > 0) {\n if (!escapeEntities)\n val2 = this.replaceEntitiesValue(val2);\n const newval = this.options.tagValueProcessor(tagName, val2, jPath, hasAttributes, isLeafNode);\n if (newval === null || newval === void 0) {\n return val2;\n } else if (typeof newval !== typeof val2 || newval !== val2) {\n return newval;\n } else if (this.options.trimValues) {\n return parseValue(val2, this.options.parseTagValue, this.options.numberParseOptions);\n } else {\n const trimmedVal = val2.trim();\n if (trimmedVal === val2) {\n return parseValue(val2, this.options.parseTagValue, this.options.numberParseOptions);\n } else {\n return val2;\n }\n }\n }\n }\n}\nfunction resolveNameSpace(tagname) {\n if (this.options.removeNSPrefix) {\n const tags = tagname.split(\":\");\n const prefix = tagname.charAt(0) === \"/\" ? \"/\" : \"\";\n if (tags[0] === \"xmlns\") {\n return \"\";\n }\n if (tags.length === 2) {\n tagname = prefix + tags[1];\n }\n }\n return tagname;\n}\nconst attrsRegx = new RegExp(`([^\\\\s=]+)\\\\s*(=\\\\s*(['\"])([\\\\s\\\\S]*?)\\\\3)?`, \"gm\");\nfunction buildAttributesMap(attrStr, jPath, tagName) {\n if (!this.options.ignoreAttributes && typeof attrStr === \"string\") {\n const matches = util.getAllMatches(attrStr, attrsRegx);\n const len = matches.length;\n const attrs = {};\n for (let i = 0; i < len; i++) {\n const attrName = this.resolveNameSpace(matches[i][1]);\n let oldVal = matches[i][4];\n let aName = this.options.attributeNamePrefix + attrName;\n if (attrName.length) {\n if (this.options.transformAttributeName) {\n aName = this.options.transformAttributeName(aName);\n }\n if (aName === \"__proto__\")\n aName = \"#__proto__\";\n if (oldVal !== void 0) {\n if (this.options.trimValues) {\n oldVal = oldVal.trim();\n }\n oldVal = this.replaceEntitiesValue(oldVal);\n const newVal = this.options.attributeValueProcessor(attrName, oldVal, jPath);\n if (newVal === null || newVal === void 0) {\n attrs[aName] = oldVal;\n } else if (typeof newVal !== typeof oldVal || newVal !== oldVal) {\n attrs[aName] = newVal;\n } else {\n attrs[aName] = parseValue(\n oldVal,\n this.options.parseAttributeValue,\n this.options.numberParseOptions\n );\n }\n } else if (this.options.allowBooleanAttributes) {\n attrs[aName] = true;\n }\n }\n }\n if (!Object.keys(attrs).length) {\n return;\n }\n if (this.options.attributesGroupName) {\n const attrCollection = {};\n attrCollection[this.options.attributesGroupName] = attrs;\n return attrCollection;\n }\n return attrs;\n }\n}\nconst parseXml = function(xmlData) {\n xmlData = xmlData.replace(/\\r\\n?/g, \"\\n\");\n const xmlObj = new xmlNode(\"!xml\");\n let currentNode = xmlObj;\n let textData = \"\";\n let jPath = \"\";\n for (let i = 0; i < xmlData.length; i++) {\n const ch = xmlData[i];\n if (ch === \"<\") {\n if (xmlData[i + 1] === \"/\") {\n const closeIndex = findClosingIndex(xmlData, \">\", i, \"Closing Tag is not closed.\");\n let tagName = xmlData.substring(i + 2, closeIndex).trim();\n if (this.options.removeNSPrefix) {\n const colonIndex = tagName.indexOf(\":\");\n if (colonIndex !== -1) {\n tagName = tagName.substr(colonIndex + 1);\n }\n }\n if (this.options.transformTagName) {\n tagName = this.options.transformTagName(tagName);\n }\n if (currentNode) {\n textData = this.saveTextToParentTag(textData, currentNode, jPath);\n }\n const lastTagName = jPath.substring(jPath.lastIndexOf(\".\") + 1);\n if (tagName && this.options.unpairedTags.indexOf(tagName) !== -1) {\n throw new Error(`Unpaired tag can not be used as closing tag: </${tagName}>`);\n }\n let propIndex = 0;\n if (lastTagName && this.options.unpairedTags.indexOf(lastTagName) !== -1) {\n propIndex = jPath.lastIndexOf(\".\", jPath.lastIndexOf(\".\") - 1);\n this.tagsNodeStack.pop();\n } else {\n propIndex = jPath.lastIndexOf(\".\");\n }\n jPath = jPath.substring(0, propIndex);\n currentNode = this.tagsNodeStack.pop();\n textData = \"\";\n i = closeIndex;\n } else if (xmlData[i + 1] === \"?\") {\n let tagData = readTagExp(xmlData, i, false, \"?>\");\n if (!tagData)\n throw new Error(\"Pi Tag is not closed.\");\n textData = this.saveTextToParentTag(textData, currentNode, jPath);\n if (this.options.ignoreDeclaration && tagData.tagName === \"?xml\" || this.options.ignorePiTags)\n ;\n else {\n const childNode = new xmlNode(tagData.tagName);\n childNode.add(this.options.textNodeName, \"\");\n if (tagData.tagName !== tagData.tagExp && tagData.attrExpPresent) {\n childNode[\":@\"] = this.buildAttributesMap(tagData.tagExp, jPath, tagData.tagName);\n }\n this.addChild(currentNode, childNode, jPath);\n }\n i = tagData.closeIndex + 1;\n } else if (xmlData.substr(i + 1, 3) === \"!--\") {\n const endIndex = findClosingIndex(xmlData, \"-->\", i + 4, \"Comment is not closed.\");\n if (this.options.commentPropName) {\n const comment = xmlData.substring(i + 4, endIndex - 2);\n textData = this.saveTextToParentTag(textData, currentNode, jPath);\n currentNode.add(this.options.commentPropName, [{ [this.options.textNodeName]: comment }]);\n }\n i = endIndex;\n } else if (xmlData.substr(i + 1, 2) === \"!D\") {\n const result = readDocType(xmlData, i);\n this.docTypeEntities = result.entities;\n i = result.i;\n } else if (xmlData.substr(i + 1, 2) === \"![\") {\n const closeIndex = findClosingIndex(xmlData, \"]]>\", i, \"CDATA is not closed.\") - 2;\n const tagExp = xmlData.substring(i + 9, closeIndex);\n textData = this.saveTextToParentTag(textData, currentNode, jPath);\n let val2 = this.parseTextData(tagExp, currentNode.tagname, jPath, true, false, true, true);\n if (val2 == void 0)\n val2 = \"\";\n if (this.options.cdataPropName) {\n currentNode.add(this.options.cdataPropName, [{ [this.options.textNodeName]: tagExp }]);\n } else {\n currentNode.add(this.options.textNodeName, val2);\n }\n i = closeIndex + 2;\n } else {\n let result = readTagExp(xmlData, i, this.options.removeNSPrefix);\n let tagName = result.tagName;\n const rawTagName = result.rawTagName;\n let tagExp = result.tagExp;\n let attrExpPresent = result.attrExpPresent;\n let closeIndex = result.closeIndex;\n if (this.options.transformTagName) {\n tagName = this.options.transformTagName(tagName);\n }\n if (currentNode && textData) {\n if (currentNode.tagname !== \"!xml\") {\n textData = this.saveTextToParentTag(textData, currentNode, jPath, false);\n }\n }\n const lastTag = currentNode;\n if (lastTag && this.options.unpairedTags.indexOf(lastTag.tagname) !== -1) {\n currentNode = this.tagsNodeStack.pop();\n jPath = jPath.substring(0, jPath.lastIndexOf(\".\"));\n }\n if (tagName !== xmlObj.tagname) {\n jPath += jPath ? \".\" + tagName : tagName;\n }\n if (this.isItStopNode(this.options.stopNodes, jPath, tagName)) {\n let tagContent = \"\";\n if (tagExp.length > 0 && tagExp.lastIndexOf(\"/\") === tagExp.length - 1) {\n if (tagName[tagName.length - 1] === \"/\") {\n tagName = tagName.substr(0, tagName.length - 1);\n jPath = jPath.substr(0, jPath.length - 1);\n tagExp = tagName;\n } else {\n tagExp = tagExp.substr(0, tagExp.length - 1);\n }\n i = result.closeIndex;\n } else if (this.options.unpairedTags.indexOf(tagName) !== -1) {\n i = result.closeIndex;\n } else {\n const result2 = this.readStopNodeData(xmlData, rawTagName, closeIndex + 1);\n if (!result2)\n throw new Error(`Unexpected end of ${rawTagName}`);\n i = result2.i;\n tagContent = result2.tagContent;\n }\n const childNode = new xmlNode(tagName);\n if (tagName !== tagExp && attrExpPresent) {\n childNode[\":@\"] = this.buildAttributesMap(tagExp, jPath, tagName);\n }\n if (tagContent) {\n tagContent = this.parseTextData(tagContent, tagName, jPath, true, attrExpPresent, true, true);\n }\n jPath = jPath.substr(0, jPath.lastIndexOf(\".\"));\n childNode.add(this.options.textNodeName, tagContent);\n this.addChild(currentNode, childNode, jPath);\n } else {\n if (tagExp.length > 0 && tagExp.lastIndexOf(\"/\") === tagExp.length - 1) {\n if (tagName[tagName.length - 1] === \"/\") {\n tagName = tagName.substr(0, tagName.length - 1);\n jPath = jPath.substr(0, jPath.length - 1);\n tagExp = tagName;\n } else {\n tagExp = tagExp.substr(0, tagExp.length - 1);\n }\n if (this.options.transformTagName) {\n tagName = this.options.transformTagName(tagName);\n }\n const childNode = new xmlNode(tagName);\n if (tagName !== tagExp && attrExpPresent) {\n childNode[\":@\"] = this.buildAttributesMap(tagExp, jPath, tagName);\n }\n this.addChild(currentNode, childNode, jPath);\n jPath = jPath.substr(0, jPath.lastIndexOf(\".\"));\n } else {\n const childNode = new xmlNode(tagName);\n this.tagsNodeStack.push(currentNode);\n if (tagName !== tagExp && attrExpPresent) {\n childNode[\":@\"] = this.buildAttributesMap(tagExp, jPath, tagName);\n }\n this.addChild(currentNode, childNode, jPath);\n currentNode = childNode;\n }\n textData = \"\";\n i = closeIndex;\n }\n }\n } else {\n textData += xmlData[i];\n }\n }\n return xmlObj.child;\n};\nfunction addChild(currentNode, childNode, jPath) {\n const result = this.options.updateTag(childNode.tagname, jPath, childNode[\":@\"]);\n if (result === false)\n ;\n else if (typeof result === \"string\") {\n childNode.tagname = result;\n currentNode.addChild(childNode);\n } else {\n currentNode.addChild(childNode);\n }\n}\nconst replaceEntitiesValue$1 = function(val2) {\n if (this.options.processEntities) {\n for (let entityName2 in this.docTypeEntities) {\n const entity = this.docTypeEntities[entityName2];\n val2 = val2.replace(entity.regx, entity.val);\n }\n for (let entityName2 in this.lastEntities) {\n const entity = this.lastEntities[entityName2];\n val2 = val2.replace(entity.regex, entity.val);\n }\n if (this.options.htmlEntities) {\n for (let entityName2 in this.htmlEntities) {\n const entity = this.htmlEntities[entityName2];\n val2 = val2.replace(entity.regex, entity.val);\n }\n }\n val2 = val2.replace(this.ampEntity.regex, this.ampEntity.val);\n }\n return val2;\n};\nfunction saveTextToParentTag(textData, currentNode, jPath, isLeafNode) {\n if (textData) {\n if (isLeafNode === void 0)\n isLeafNode = Object.keys(currentNode.child).length === 0;\n textData = this.parseTextData(\n textData,\n currentNode.tagname,\n jPath,\n false,\n currentNode[\":@\"] ? Object.keys(currentNode[\":@\"]).length !== 0 : false,\n isLeafNode\n );\n if (textData !== void 0 && textData !== \"\")\n currentNode.add(this.options.textNodeName, textData);\n textData = \"\";\n }\n return textData;\n}\nfunction isItStopNode(stopNodes, jPath, currentTagName) {\n const allNodesExp = \"*.\" + currentTagName;\n for (const stopNodePath in stopNodes) {\n const stopNodeExp = stopNodes[stopNodePath];\n if (allNodesExp === stopNodeExp || jPath === stopNodeExp)\n return true;\n }\n return false;\n}\nfunction tagExpWithClosingIndex(xmlData, i, closingChar = \">\") {\n let attrBoundary;\n let tagExp = \"\";\n for (let index = i; index < xmlData.length; index++) {\n let ch = xmlData[index];\n if (attrBoundary) {\n if (ch === attrBoundary)\n attrBoundary = \"\";\n } else if (ch === '\"' || ch === \"'\") {\n attrBoundary = ch;\n } else if (ch === closingChar[0]) {\n if (closingChar[1]) {\n if (xmlData[index + 1] === closingChar[1]) {\n return {\n data: tagExp,\n index\n };\n }\n } else {\n return {\n data: tagExp,\n index\n };\n }\n } else if (ch === \"\t\") {\n ch = \" \";\n }\n tagExp += ch;\n }\n}\nfunction findClosingIndex(xmlData, str, i, errMsg) {\n const closingIndex = xmlData.indexOf(str, i);\n if (closingIndex === -1) {\n throw new Error(errMsg);\n } else {\n return closingIndex + str.length - 1;\n }\n}\nfunction readTagExp(xmlData, i, removeNSPrefix, closingChar = \">\") {\n const result = tagExpWithClosingIndex(xmlData, i + 1, closingChar);\n if (!result)\n return;\n let tagExp = result.data;\n const closeIndex = result.index;\n const separatorIndex = tagExp.search(/\\s/);\n let tagName = tagExp;\n let attrExpPresent = true;\n if (separatorIndex !== -1) {\n tagName = tagExp.substring(0, separatorIndex);\n tagExp = tagExp.substring(separatorIndex + 1).trimStart();\n }\n const rawTagName = tagName;\n if (removeNSPrefix) {\n const colonIndex = tagName.indexOf(\":\");\n if (colonIndex !== -1) {\n tagName = tagName.substr(colonIndex + 1);\n attrExpPresent = tagName !== result.data.substr(colonIndex + 1);\n }\n }\n return {\n tagName,\n tagExp,\n closeIndex,\n attrExpPresent,\n rawTagName\n };\n}\nfunction readStopNodeData(xmlData, tagName, i) {\n const startIndex = i;\n let openTagCount = 1;\n for (; i < xmlData.length; i++) {\n if (xmlData[i] === \"<\") {\n if (xmlData[i + 1] === \"/\") {\n const closeIndex = findClosingIndex(xmlData, \">\", i, `${tagName} is not closed`);\n let closeTagName = xmlData.substring(i + 2, closeIndex).trim();\n if (closeTagName === tagName) {\n openTagCount--;\n if (openTagCount === 0) {\n return {\n tagContent: xmlData.substring(startIndex, i),\n i: closeIndex\n };\n }\n }\n i = closeIndex;\n } else if (xmlData[i + 1] === \"?\") {\n const closeIndex = findClosingIndex(xmlData, \"?>\", i + 1, \"StopNode is not closed.\");\n i = closeIndex;\n } else if (xmlData.substr(i + 1, 3) === \"!--\") {\n const closeIndex = findClosingIndex(xmlData, \"-->\", i + 3, \"StopNode is not closed.\");\n i = closeIndex;\n } else if (xmlData.substr(i + 1, 2) === \"![\") {\n const closeIndex = findClosingIndex(xmlData, \"]]>\", i, \"StopNode is not closed.\") - 2;\n i = closeIndex;\n } else {\n const tagData = readTagExp(xmlData, i, \">\");\n if (tagData) {\n const openTagName = tagData && tagData.tagName;\n if (openTagName === tagName && tagData.tagExp[tagData.tagExp.length - 1] !== \"/\") {\n openTagCount++;\n }\n i = tagData.closeIndex;\n }\n }\n }\n }\n}\nfunction parseValue(val2, shouldParse, options) {\n if (shouldParse && typeof val2 === \"string\") {\n const newval = val2.trim();\n if (newval === \"true\")\n return true;\n else if (newval === \"false\")\n return false;\n else\n return toNumber(val2, options);\n } else {\n if (util.isExist(val2)) {\n return val2;\n } else {\n return \"\";\n }\n }\n}\nvar OrderedObjParser_1 = OrderedObjParser$1;\nvar node2json = {};\nfunction prettify$1(node, options) {\n return compress(node, options);\n}\nfunction compress(arr, options, jPath) {\n let text;\n const compressedObj = {};\n for (let i = 0; i < arr.length; i++) {\n const tagObj = arr[i];\n const property = propName$1(tagObj);\n let newJpath = \"\";\n if (jPath === void 0)\n newJpath = property;\n else\n newJpath = jPath + \".\" + property;\n if (property === options.textNodeName) {\n if (text === void 0)\n text = tagObj[property];\n else\n text += \"\" + tagObj[property];\n } else if (property === void 0) {\n continue;\n } else if (tagObj[property]) {\n let val2 = compress(tagObj[property], options, newJpath);\n const isLeaf = isLeafTag(val2, options);\n if (tagObj[\":@\"]) {\n assignAttributes(val2, tagObj[\":@\"], newJpath, options);\n } else if (Object.keys(val2).length === 1 && val2[options.textNodeName] !== void 0 && !options.alwaysCreateTextNode) {\n val2 = val2[options.textNodeName];\n } else if (Object.keys(val2).length === 0) {\n if (options.alwaysCreateTextNode)\n val2[options.textNodeName] = \"\";\n else\n val2 = \"\";\n }\n if (compressedObj[property] !== void 0 && compressedObj.hasOwnProperty(property)) {\n if (!Array.isArray(compressedObj[property])) {\n compressedObj[property] = [compressedObj[property]];\n }\n compressedObj[property].push(val2);\n } else {\n if (options.isArray(property, newJpath, isLeaf)) {\n compressedObj[property] = [val2];\n } else {\n compressedObj[property] = val2;\n }\n }\n }\n }\n if (typeof text === \"string\") {\n if (text.length > 0)\n compressedObj[options.textNodeName] = text;\n } else if (text !== void 0)\n compressedObj[options.textNodeName] = text;\n return compressedObj;\n}\nfunction propName$1(obj) {\n const keys = Object.keys(obj);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n if (key !== \":@\")\n return key;\n }\n}\nfunction assignAttributes(obj, attrMap, jpath, options) {\n if (attrMap) {\n const keys = Object.keys(attrMap);\n const len = keys.length;\n for (let i = 0; i < len; i++) {\n const atrrName = keys[i];\n if (options.isArray(atrrName, jpath + \".\" + atrrName, true, true)) {\n obj[atrrName] = [attrMap[atrrName]];\n } else {\n obj[atrrName] = attrMap[atrrName];\n }\n }\n }\n}\nfunction isLeafTag(obj, options) {\n const { textNodeName } = options;\n const propCount = Object.keys(obj).length;\n if (propCount === 0) {\n return true;\n }\n if (propCount === 1 && (obj[textNodeName] || typeof obj[textNodeName] === \"boolean\" || obj[textNodeName] === 0)) {\n return true;\n }\n return false;\n}\nnode2json.prettify = prettify$1;\nconst { buildOptions } = OptionsBuilder;\nconst OrderedObjParser2 = OrderedObjParser_1;\nconst { prettify } = node2json;\nconst validator$1 = validator$2;\nlet XMLParser$1 = class XMLParser {\n constructor(options) {\n this.externalEntities = {};\n this.options = buildOptions(options);\n }\n /**\n * Parse XML dats to JS object \n * @param {string|Buffer} xmlData \n * @param {boolean|Object} validationOption \n */\n parse(xmlData, validationOption) {\n if (typeof xmlData === \"string\")\n ;\n else if (xmlData.toString) {\n xmlData = xmlData.toString();\n } else {\n throw new Error(\"XML data is accepted in String or Bytes[] form.\");\n }\n if (validationOption) {\n if (validationOption === true)\n validationOption = {};\n const result = validator$1.validate(xmlData, validationOption);\n if (result !== true) {\n throw Error(`${result.err.msg}:${result.err.line}:${result.err.col}`);\n }\n }\n const orderedObjParser = new OrderedObjParser2(this.options);\n orderedObjParser.addExternalEntities(this.externalEntities);\n const orderedResult = orderedObjParser.parseXml(xmlData);\n if (this.options.preserveOrder || orderedResult === void 0)\n return orderedResult;\n else\n return prettify(orderedResult, this.options);\n }\n /**\n * Add Entity which is not by default supported by this library\n * @param {string} key \n * @param {string} value \n */\n addEntity(key, value) {\n if (value.indexOf(\"&\") !== -1) {\n throw new Error(\"Entity value can't have '&'\");\n } else if (key.indexOf(\"&\") !== -1 || key.indexOf(\";\") !== -1) {\n throw new Error(\"An entity must be set without '&' and ';'. Eg. use '#xD' for '&#xD;'\");\n } else if (value === \"&\") {\n throw new Error(\"An entity with value '&' is not permitted\");\n } else {\n this.externalEntities[key] = value;\n }\n }\n};\nvar XMLParser_1 = XMLParser$1;\nconst EOL = \"\\n\";\nfunction toXml(jArray, options) {\n let indentation = \"\";\n if (options.format && options.indentBy.length > 0) {\n indentation = EOL;\n }\n return arrToStr(jArray, options, \"\", indentation);\n}\nfunction arrToStr(arr, options, jPath, indentation) {\n let xmlStr = \"\";\n let isPreviousElementTag = false;\n for (let i = 0; i < arr.length; i++) {\n const tagObj = arr[i];\n const tagName = propName(tagObj);\n if (tagName === void 0)\n continue;\n let newJPath = \"\";\n if (jPath.length === 0)\n newJPath = tagName;\n else\n newJPath = `${jPath}.${tagName}`;\n if (tagName === options.textNodeName) {\n let tagText = tagObj[tagName];\n if (!isStopNode(newJPath, options)) {\n tagText = options.tagValueProcessor(tagName, tagText);\n tagText = replaceEntitiesValue(tagText, options);\n }\n if (isPreviousElementTag) {\n xmlStr += indentation;\n }\n xmlStr += tagText;\n isPreviousElementTag = false;\n continue;\n } else if (tagName === options.cdataPropName) {\n if (isPreviousElementTag) {\n xmlStr += indentation;\n }\n xmlStr += `<![CDATA[${tagObj[tagName][0][options.textNodeName]}]]>`;\n isPreviousElementTag = false;\n continue;\n } else if (tagName === options.commentPropName) {\n xmlStr += indentation + `<!--${tagObj[tagName][0][options.textNodeName]}-->`;\n isPreviousElementTag = true;\n continue;\n } else if (tagName[0] === \"?\") {\n const attStr2 = attr_to_str(tagObj[\":@\"], options);\n const tempInd = tagName === \"?xml\" ? \"\" : indentation;\n let piTextNodeName = tagObj[tagName][0][options.textNodeName];\n piTextNodeName = piTextNodeName.length !== 0 ? \" \" + piTextNodeName : \"\";\n xmlStr += tempInd + `<${tagName}${piTextNodeName}${attStr2}?>`;\n isPreviousElementTag = true;\n continue;\n }\n let newIdentation = indentation;\n if (newIdentation !== \"\") {\n newIdentation += options.indentBy;\n }\n const attStr = attr_to_str(tagObj[\":@\"], options);\n const tagStart = indentation + `<${tagName}${attStr}`;\n const tagValue = arrToStr(tagObj[tagName], options, newJPath, newIdentation);\n if (options.unpairedTags.indexOf(tagName) !== -1) {\n if (options.suppressUnpairedNode)\n xmlStr += tagStart + \">\";\n else\n xmlStr += tagStart + \"/>\";\n } else if ((!tagValue || tagValue.length === 0) && options.suppressEmptyNode) {\n xmlStr += tagStart + \"/>\";\n } else if (tagValue && tagValue.endsWith(\">\")) {\n xmlStr += tagStart + `>${tagValue}${indentation}</${tagName}>`;\n } else {\n xmlStr += tagStart + \">\";\n if (tagValue && indentation !== \"\" && (tagValue.includes(\"/>\") || tagValue.includes(\"</\"))) {\n xmlStr += indentation + options.indentBy + tagValue + indentation;\n } else {\n xmlStr += tagValue;\n }\n xmlStr += `</${tagName}>`;\n }\n isPreviousElementTag = true;\n }\n return xmlStr;\n}\nfunction propName(obj) {\n const keys = Object.keys(obj);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n if (!obj.hasOwnProperty(key))\n continue;\n if (key !== \":@\")\n return key;\n }\n}\nfunction attr_to_str(attrMap, options) {\n let attrStr = \"\";\n if (attrMap && !options.ignoreAttributes) {\n for (let attr in attrMap) {\n if (!attrMap.hasOwnProperty(attr))\n continue;\n let attrVal = options.attributeValueProcessor(attr, attrMap[attr]);\n attrVal = replaceEntitiesValue(attrVal, options);\n if (attrVal === true && options.suppressBooleanAttributes) {\n attrStr += ` ${attr.substr(options.attributeNamePrefix.length)}`;\n } else {\n attrStr += ` ${attr.substr(options.attributeNamePrefix.length)}=\"${attrVal}\"`;\n }\n }\n }\n return attrStr;\n}\nfunction isStopNode(jPath, options) {\n jPath = jPath.substr(0, jPath.length - options.textNodeName.length - 1);\n let tagName = jPath.substr(jPath.lastIndexOf(\".\") + 1);\n for (let index in options.stopNodes) {\n if (options.stopNodes[index] === jPath || options.stopNodes[index] === \"*.\" + tagName)\n return true;\n }\n return false;\n}\nfunction replaceEntitiesValue(textValue, options) {\n if (textValue && textValue.length > 0 && options.processEntities) {\n for (let i = 0; i < options.entities.length; i++) {\n const entity = options.entities[i];\n textValue = textValue.replace(entity.regex, entity.val);\n }\n }\n return textValue;\n}\nvar orderedJs2Xml = toXml;\nconst buildFromOrderedJs = orderedJs2Xml;\nconst defaultOptions = {\n attributeNamePrefix: \"@_\",\n attributesGroupName: false,\n textNodeName: \"#text\",\n ignoreAttributes: true,\n cdataPropName: false,\n format: false,\n indentBy: \" \",\n suppressEmptyNode: false,\n suppressUnpairedNode: true,\n suppressBooleanAttributes: true,\n tagValueProcessor: function(key, a) {\n return a;\n },\n attributeValueProcessor: function(attrName, a) {\n return a;\n },\n preserveOrder: false,\n commentPropName: false,\n unpairedTags: [],\n entities: [\n { regex: new RegExp(\"&\", \"g\"), val: \"&amp;\" },\n //it must be on top\n { regex: new RegExp(\">\", \"g\"), val: \"&gt;\" },\n { regex: new RegExp(\"<\", \"g\"), val: \"&lt;\" },\n { regex: new RegExp(\"'\", \"g\"), val: \"&apos;\" },\n { regex: new RegExp('\"', \"g\"), val: \"&quot;\" }\n ],\n processEntities: true,\n stopNodes: [],\n // transformTagName: false,\n // transformAttributeName: false,\n oneListGroup: false\n};\nfunction Builder(options) {\n this.options = Object.assign({}, defaultOptions, options);\n if (this.options.ignoreAttributes || this.options.attributesGroupName) {\n this.isAttribute = function() {\n return false;\n };\n } else {\n this.attrPrefixLen = this.options.attributeNamePrefix.length;\n this.isAttribute = isAttribute;\n }\n this.processTextOrObjNode = processTextOrObjNode;\n if (this.options.format) {\n this.indentate = indentate;\n this.tagEndChar = \">\\n\";\n this.newLine = \"\\n\";\n } else {\n this.indentate = function() {\n return \"\";\n };\n this.tagEndChar = \">\";\n this.newLine = \"\";\n }\n}\nBuilder.prototype.build = function(jObj) {\n if (this.options.preserveOrder) {\n return buildFromOrderedJs(jObj, this.options);\n } else {\n if (Array.isArray(jObj) && this.options.arrayNodeName && this.options.arrayNodeName.length > 1) {\n jObj = {\n [this.options.arrayNodeName]: jObj\n };\n }\n return this.j2x(jObj, 0).val;\n }\n};\nBuilder.prototype.j2x = function(jObj, level) {\n let attrStr = \"\";\n let val2 = \"\";\n for (let key in jObj) {\n if (!Object.prototype.hasOwnProperty.call(jObj, key))\n continue;\n if (typeof jObj[key] === \"undefined\") {\n if (this.isAttribute(key)) {\n val2 += \"\";\n }\n } else if (jObj[key] === null) {\n if (this.isAttribute(key)) {\n val2 += \"\";\n } else if (key[0] === \"?\") {\n val2 += this.indentate(level) + \"<\" + key + \"?\" + this.tagEndChar;\n } else {\n val2 += this.indentate(level) + \"<\" + key + \"/\" + this.tagEndChar;\n }\n } else if (jObj[key] instanceof Date) {\n val2 += this.buildTextValNode(jObj[key], key, \"\", level);\n } else if (typeof jObj[key] !== \"object\") {\n const attr = this.isAttribute(key);\n if (attr) {\n attrStr += this.buildAttrPairStr(attr, \"\" + jObj[key]);\n } else {\n if (key === this.options.textNodeName) {\n let newval = this.options.tagValueProcessor(key, \"\" + jObj[key]);\n val2 += this.replaceEntitiesValue(newval);\n } else {\n val2 += this.buildTextValNode(jObj[key], key, \"\", level);\n }\n }\n } else if (Array.isArray(jObj[key])) {\n const arrLen = jObj[key].length;\n let listTagVal = \"\";\n for (let j = 0; j < arrLen; j++) {\n const item = jObj[key][j];\n if (typeof item === \"undefined\")\n ;\n else if (item === null) {\n if (key[0] === \"?\")\n val2 += this.indentate(level) + \"<\" + key + \"?\" + this.tagEndChar;\n else\n val2 += this.indentate(level) + \"<\" + key + \"/\" + this.tagEndChar;\n } else if (typeof item === \"object\") {\n if (this.options.oneListGroup) {\n listTagVal += this.j2x(item, level + 1).val;\n } else {\n listTagVal += this.processTextOrObjNode(item, key, level);\n }\n } else {\n listTagVal += this.buildTextValNode(item, key, \"\", level);\n }\n }\n if (this.options.oneListGroup) {\n listTagVal = this.buildObjectNode(listTagVal, key, \"\", level);\n }\n val2 += listTagVal;\n } else {\n if (this.options.attributesGroupName && key === this.options.attributesGroupName) {\n const Ks = Object.keys(jObj[key]);\n const L = Ks.length;\n for (let j = 0; j < L; j++) {\n attrStr += this.buildAttrPairStr(Ks[j], \"\" + jObj[key][Ks[j]]);\n }\n } else {\n val2 += this.processTextOrObjNode(jObj[key], key, level);\n }\n }\n }\n return { attrStr, val: val2 };\n};\nBuilder.prototype.buildAttrPairStr = function(attrName, val2) {\n val2 = this.options.attributeValueProcessor(attrName, \"\" + val2);\n val2 = this.replaceEntitiesValue(val2);\n if (this.options.suppressBooleanAttributes && val2 === \"true\") {\n return \" \" + attrName;\n } else\n return \" \" + attrName + '=\"' + val2 + '\"';\n};\nfunction processTextOrObjNode(object, key, level) {\n const result = this.j2x(object, level + 1);\n if (object[this.options.textNodeName] !== void 0 && Object.keys(object).length === 1) {\n return this.buildTextValNode(object[this.options.textNodeName], key, result.attrStr, level);\n } else {\n return this.buildObjectNode(result.val, key, result.attrStr, level);\n }\n}\nBuilder.prototype.buildObjectNode = function(val2, key, attrStr, level) {\n if (val2 === \"\") {\n if (key[0] === \"?\")\n return this.indentate(level) + \"<\" + key + attrStr + \"?\" + this.tagEndChar;\n else {\n return this.indentate(level) + \"<\" + key + attrStr + this.closeTag(key) + this.tagEndChar;\n }\n } else {\n let tagEndExp = \"</\" + key + this.tagEndChar;\n let piClosingChar = \"\";\n if (key[0] === \"?\") {\n piClosingChar = \"?\";\n tagEndExp = \"\";\n }\n if ((attrStr || attrStr === \"\") && val2.indexOf(\"<\") === -1) {\n return this.indentate(level) + \"<\" + key + attrStr + piClosingChar + \">\" + val2 + tagEndExp;\n } else if (this.options.commentPropName !== false && key === this.options.commentPropName && piClosingChar.length === 0) {\n return this.indentate(level) + `<!--${val2}-->` + this.newLine;\n } else {\n return this.indentate(level) + \"<\" + key + attrStr + piClosingChar + this.tagEndChar + val2 + this.indentate(level) + tagEndExp;\n }\n }\n};\nBuilder.prototype.closeTag = function(key) {\n let closeTag = \"\";\n if (this.options.unpairedTags.indexOf(key) !== -1) {\n if (!this.options.suppressUnpairedNode)\n closeTag = \"/\";\n } else if (this.options.suppressEmptyNode) {\n closeTag = \"/\";\n } else {\n closeTag = `></${key}`;\n }\n return closeTag;\n};\nBuilder.prototype.buildTextValNode = function(val2, key, attrStr, level) {\n if (this.options.cdataPropName !== false && key === this.options.cdataPropName) {\n return this.indentate(level) + `<![CDATA[${val2}]]>` + this.newLine;\n } else if (this.options.commentPropName !== false && key === this.options.commentPropName) {\n return this.indentate(level) + `<!--${val2}-->` + this.newLine;\n } else if (key[0] === \"?\") {\n return this.indentate(level) + \"<\" + key + attrStr + \"?\" + this.tagEndChar;\n } else {\n let textValue = this.options.tagValueProcessor(key, val2);\n textValue = this.replaceEntitiesValue(textValue);\n if (textValue === \"\") {\n return this.indentate(level) + \"<\" + key + attrStr + this.closeTag(key) + this.tagEndChar;\n } else {\n return this.indentate(level) + \"<\" + key + attrStr + \">\" + textValue + \"</\" + key + this.tagEndChar;\n }\n }\n};\nBuilder.prototype.replaceEntitiesValue = function(textValue) {\n if (textValue && textValue.length > 0 && this.options.processEntities) {\n for (let i = 0; i < this.options.entities.length; i++) {\n const entity = this.options.entities[i];\n textValue = textValue.replace(entity.regex, entity.val);\n }\n }\n return textValue;\n};\nfunction indentate(level) {\n return this.options.indentBy.repeat(level);\n}\nfunction isAttribute(name) {\n if (name.startsWith(this.options.attributeNamePrefix) && name !== this.options.textNodeName) {\n return name.substr(this.attrPrefixLen);\n } else {\n return false;\n }\n}\nvar json2xml = Builder;\nconst validator = validator$2;\nconst XMLParser2 = XMLParser_1;\nconst XMLBuilder = json2xml;\nvar fxp = {\n XMLParser: XMLParser2,\n XMLValidator: validator,\n XMLBuilder\n};\nfunction isSvg(string) {\n if (typeof string !== \"string\") {\n throw new TypeError(`Expected a \\`string\\`, got \\`${typeof string}\\``);\n }\n string = string.trim();\n if (string.length === 0) {\n return false;\n }\n if (fxp.XMLValidator.validate(string) !== true) {\n return false;\n }\n let jsonObject;\n const parser = new fxp.XMLParser();\n try {\n jsonObject = parser.parse(string);\n } catch {\n return false;\n }\n if (!jsonObject) {\n return false;\n }\n if (!Object.keys(jsonObject).some((x) => x.toLowerCase() === \"svg\")) {\n return false;\n }\n return true;\n}\n/**\n * @copyright Copyright (c) 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nclass View {\n _view;\n constructor(view) {\n isValidView(view);\n this._view = view;\n }\n get id() {\n return this._view.id;\n }\n get name() {\n return this._view.name;\n }\n get caption() {\n return this._view.caption;\n }\n get emptyTitle() {\n return this._view.emptyTitle;\n }\n get emptyCaption() {\n return this._view.emptyCaption;\n }\n get getContents() {\n return this._view.getContents;\n }\n get icon() {\n return this._view.icon;\n }\n set icon(icon) {\n this._view.icon = icon;\n }\n get order() {\n return this._view.order;\n }\n set order(order) {\n this._view.order = order;\n }\n get params() {\n return this._view.params;\n }\n set params(params) {\n this._view.params = params;\n }\n get columns() {\n return this._view.columns;\n }\n get emptyView() {\n return this._view.emptyView;\n }\n get parent() {\n return this._view.parent;\n }\n get sticky() {\n return this._view.sticky;\n }\n get expanded() {\n return this._view.expanded;\n }\n set expanded(expanded) {\n this._view.expanded = expanded;\n }\n get defaultSortKey() {\n return this._view.defaultSortKey;\n }\n}\nconst isValidView = function(view) {\n if (!view.id || typeof view.id !== \"string\") {\n throw new Error(\"View id is required and must be a string\");\n }\n if (!view.name || typeof view.name !== \"string\") {\n throw new Error(\"View name is required and must be a string\");\n }\n if (view.columns && view.columns.length > 0 && (!view.caption || typeof view.caption !== \"string\")) {\n throw new Error(\"View caption is required for top-level views and must be a string\");\n }\n if (!view.getContents || typeof view.getContents !== \"function\") {\n throw new Error(\"View getContents is required and must be a function\");\n }\n if (!view.icon || typeof view.icon !== \"string\" || !isSvg(view.icon)) {\n throw new Error(\"View icon is required and must be a valid svg string\");\n }\n if (!(\"order\" in view) || typeof view.order !== \"number\") {\n throw new Error(\"View order is required and must be a number\");\n }\n if (view.columns) {\n view.columns.forEach((column) => {\n if (!(column instanceof Column)) {\n throw new Error(\"View columns must be an array of Column. Invalid column found\");\n }\n });\n }\n if (view.emptyView && typeof view.emptyView !== \"function\") {\n throw new Error(\"View emptyView must be a function\");\n }\n if (view.parent && typeof view.parent !== \"string\") {\n throw new Error(\"View parent must be a string\");\n }\n if (\"sticky\" in view && typeof view.sticky !== \"boolean\") {\n throw new Error(\"View sticky must be a boolean\");\n }\n if (\"expanded\" in view && typeof view.expanded !== \"boolean\") {\n throw new Error(\"View expanded must be a boolean\");\n }\n if (view.defaultSortKey && typeof view.defaultSortKey !== \"string\") {\n throw new Error(\"View defaultSortKey must be a string\");\n }\n return true;\n};\n/**\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author Christoph Wurst <christoph@winzerhof-wurst.at>\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nconst addNewFileMenuEntry = function(entry) {\n const newFileMenu = getNewFileMenu();\n return newFileMenu.registerEntry(entry);\n};\nconst removeNewFileMenuEntry = function(entry) {\n const newFileMenu = getNewFileMenu();\n return newFileMenu.unregisterEntry(entry);\n};\nconst getNewFileMenuEntries = function(context) {\n const newFileMenu = getNewFileMenu();\n return newFileMenu.getEntries(context).sort((a, b) => {\n if (a.order !== void 0 && b.order !== void 0 && a.order !== b.order) {\n return a.order - b.order;\n }\n return a.displayName.localeCompare(b.displayName, void 0, { numeric: true, sensitivity: \"base\" });\n });\n};\nexport {\n Column,\n DefaultType,\n File,\n FileAction,\n FileType,\n FilesSortingMode,\n Folder,\n Header,\n Navigation,\n NewMenuEntryCategory,\n Node,\n NodeStatus,\n Permission,\n View,\n addNewFileMenuEntry,\n davGetClient,\n davGetDefaultPropfind,\n davGetFavoritesReport,\n davGetRecentSearch,\n davParsePermissions,\n davRemoteURL,\n davResultToNode,\n davRootPath,\n defaultDavNamespaces,\n defaultDavProperties,\n formatFileSize,\n getDavNameSpaces,\n getDavProperties,\n getFavoriteNodes,\n getFileActions,\n getFileListHeaders,\n getNavigation,\n getNewFileMenuEntries,\n isFilenameValid,\n orderBy,\n parseFileSize,\n registerDavProperty,\n registerFileAction,\n registerFileListHeaders,\n removeNewFileMenuEntry,\n sortNodes\n};\n","\n import API from \"!../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../css-loader/dist/cjs.js!./index-Ussc_ol3.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../css-loader/dist/cjs.js!./index-Ussc_ol3.css\";\n export default content && content.locals ? content.locals : undefined;\n","export class CancelError extends Error {\n\tconstructor(reason) {\n\t\tsuper(reason || 'Promise was canceled');\n\t\tthis.name = 'CancelError';\n\t}\n\n\tget isCanceled() {\n\t\treturn true;\n\t}\n}\n\nconst promiseState = Object.freeze({\n\tpending: Symbol('pending'),\n\tcanceled: Symbol('canceled'),\n\tresolved: Symbol('resolved'),\n\trejected: Symbol('rejected'),\n});\n\nexport default class PCancelable {\n\tstatic fn(userFunction) {\n\t\treturn (...arguments_) => new PCancelable((resolve, reject, onCancel) => {\n\t\t\targuments_.push(onCancel);\n\t\t\tuserFunction(...arguments_).then(resolve, reject);\n\t\t});\n\t}\n\n\t#cancelHandlers = [];\n\t#rejectOnCancel = true;\n\t#state = promiseState.pending;\n\t#promise;\n\t#reject;\n\n\tconstructor(executor) {\n\t\tthis.#promise = new Promise((resolve, reject) => {\n\t\t\tthis.#reject = reject;\n\n\t\t\tconst onResolve = value => {\n\t\t\t\tif (this.#state !== promiseState.canceled || !onCancel.shouldReject) {\n\t\t\t\t\tresolve(value);\n\t\t\t\t\tthis.#setState(promiseState.resolved);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tconst onReject = error => {\n\t\t\t\tif (this.#state !== promiseState.canceled || !onCancel.shouldReject) {\n\t\t\t\t\treject(error);\n\t\t\t\t\tthis.#setState(promiseState.rejected);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tconst onCancel = handler => {\n\t\t\t\tif (this.#state !== promiseState.pending) {\n\t\t\t\t\tthrow new Error(`The \\`onCancel\\` handler was attached after the promise ${this.#state.description}.`);\n\t\t\t\t}\n\n\t\t\t\tthis.#cancelHandlers.push(handler);\n\t\t\t};\n\n\t\t\tObject.defineProperties(onCancel, {\n\t\t\t\tshouldReject: {\n\t\t\t\t\tget: () => this.#rejectOnCancel,\n\t\t\t\t\tset: boolean => {\n\t\t\t\t\t\tthis.#rejectOnCancel = boolean;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t});\n\n\t\t\texecutor(onResolve, onReject, onCancel);\n\t\t});\n\t}\n\n\t// eslint-disable-next-line unicorn/no-thenable\n\tthen(onFulfilled, onRejected) {\n\t\treturn this.#promise.then(onFulfilled, onRejected);\n\t}\n\n\tcatch(onRejected) {\n\t\treturn this.#promise.catch(onRejected);\n\t}\n\n\tfinally(onFinally) {\n\t\treturn this.#promise.finally(onFinally);\n\t}\n\n\tcancel(reason) {\n\t\tif (this.#state !== promiseState.pending) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.#setState(promiseState.canceled);\n\n\t\tif (this.#cancelHandlers.length > 0) {\n\t\t\ttry {\n\t\t\t\tfor (const handler of this.#cancelHandlers) {\n\t\t\t\t\thandler();\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tthis.#reject(error);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tif (this.#rejectOnCancel) {\n\t\t\tthis.#reject(new CancelError(reason));\n\t\t}\n\t}\n\n\tget isCanceled() {\n\t\treturn this.#state === promiseState.canceled;\n\t}\n\n\t#setState(state) {\n\t\tif (this.#state === promiseState.pending) {\n\t\t\tthis.#state = state;\n\t\t}\n\t}\n}\n\nObject.setPrototypeOf(PCancelable.prototype, Promise.prototype);\n","export class TimeoutError extends Error {\n\tconstructor(message) {\n\t\tsuper(message);\n\t\tthis.name = 'TimeoutError';\n\t}\n}\n\n/**\nAn error to be thrown when the request is aborted by AbortController.\nDOMException is thrown instead of this Error when DOMException is available.\n*/\nexport class AbortError extends Error {\n\tconstructor(message) {\n\t\tsuper();\n\t\tthis.name = 'AbortError';\n\t\tthis.message = message;\n\t}\n}\n\n/**\nTODO: Remove AbortError and just throw DOMException when targeting Node 18.\n*/\nconst getDOMException = errorMessage => globalThis.DOMException === undefined\n\t? new AbortError(errorMessage)\n\t: new DOMException(errorMessage);\n\n/**\nTODO: Remove below function and just 'reject(signal.reason)' when targeting Node 18.\n*/\nconst getAbortedReason = signal => {\n\tconst reason = signal.reason === undefined\n\t\t? getDOMException('This operation was aborted.')\n\t\t: signal.reason;\n\n\treturn reason instanceof Error ? reason : getDOMException(reason);\n};\n\nexport default function pTimeout(promise, options) {\n\tconst {\n\t\tmilliseconds,\n\t\tfallback,\n\t\tmessage,\n\t\tcustomTimers = {setTimeout, clearTimeout},\n\t} = options;\n\n\tlet timer;\n\n\tconst wrappedPromise = new Promise((resolve, reject) => {\n\t\tif (typeof milliseconds !== 'number' || Math.sign(milliseconds) !== 1) {\n\t\t\tthrow new TypeError(`Expected \\`milliseconds\\` to be a positive number, got \\`${milliseconds}\\``);\n\t\t}\n\n\t\tif (options.signal) {\n\t\t\tconst {signal} = options;\n\t\t\tif (signal.aborted) {\n\t\t\t\treject(getAbortedReason(signal));\n\t\t\t}\n\n\t\t\tsignal.addEventListener('abort', () => {\n\t\t\t\treject(getAbortedReason(signal));\n\t\t\t});\n\t\t}\n\n\t\tif (milliseconds === Number.POSITIVE_INFINITY) {\n\t\t\tpromise.then(resolve, reject);\n\t\t\treturn;\n\t\t}\n\n\t\t// We create the error outside of `setTimeout` to preserve the stack trace.\n\t\tconst timeoutError = new TimeoutError();\n\n\t\ttimer = customTimers.setTimeout.call(undefined, () => {\n\t\t\tif (fallback) {\n\t\t\t\ttry {\n\t\t\t\t\tresolve(fallback());\n\t\t\t\t} catch (error) {\n\t\t\t\t\treject(error);\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (typeof promise.cancel === 'function') {\n\t\t\t\tpromise.cancel();\n\t\t\t}\n\n\t\t\tif (message === false) {\n\t\t\t\tresolve();\n\t\t\t} else if (message instanceof Error) {\n\t\t\t\treject(message);\n\t\t\t} else {\n\t\t\t\ttimeoutError.message = message ?? `Promise timed out after ${milliseconds} milliseconds`;\n\t\t\t\treject(timeoutError);\n\t\t\t}\n\t\t}, milliseconds);\n\n\t\t(async () => {\n\t\t\ttry {\n\t\t\t\tresolve(await promise);\n\t\t\t} catch (error) {\n\t\t\t\treject(error);\n\t\t\t}\n\t\t})();\n\t});\n\n\tconst cancelablePromise = wrappedPromise.finally(() => {\n\t\tcancelablePromise.clear();\n\t});\n\n\tcancelablePromise.clear = () => {\n\t\tcustomTimers.clearTimeout.call(undefined, timer);\n\t\ttimer = undefined;\n\t};\n\n\treturn cancelablePromise;\n}\n","import lowerBound from './lower-bound.js';\nexport default class PriorityQueue {\n #queue = [];\n enqueue(run, options) {\n options = {\n priority: 0,\n ...options,\n };\n const element = {\n priority: options.priority,\n run,\n };\n if (this.size && this.#queue[this.size - 1].priority >= options.priority) {\n this.#queue.push(element);\n return;\n }\n const index = lowerBound(this.#queue, element, (a, b) => b.priority - a.priority);\n this.#queue.splice(index, 0, element);\n }\n dequeue() {\n const item = this.#queue.shift();\n return item?.run;\n }\n filter(options) {\n return this.#queue.filter((element) => element.priority === options.priority).map((element) => element.run);\n }\n get size() {\n return this.#queue.length;\n }\n}\n","// Port of lower_bound from https://en.cppreference.com/w/cpp/algorithm/lower_bound\n// Used to compute insertion index to keep queue sorted after insertion\nexport default function lowerBound(array, value, comparator) {\n let first = 0;\n let count = array.length;\n while (count > 0) {\n const step = Math.trunc(count / 2);\n let it = first + step;\n if (comparator(array[it], value) <= 0) {\n first = ++it;\n count -= step + 1;\n }\n else {\n count = step;\n }\n }\n return first;\n}\n","import { EventEmitter } from 'eventemitter3';\nimport pTimeout, { TimeoutError } from 'p-timeout';\nimport PriorityQueue from './priority-queue.js';\n/**\nPromise queue with concurrency control.\n*/\nexport default class PQueue extends EventEmitter {\n #carryoverConcurrencyCount;\n #isIntervalIgnored;\n #intervalCount = 0;\n #intervalCap;\n #interval;\n #intervalEnd = 0;\n #intervalId;\n #timeoutId;\n #queue;\n #queueClass;\n #pending = 0;\n // The `!` is needed because of https://github.com/microsoft/TypeScript/issues/32194\n #concurrency;\n #isPaused;\n #throwOnTimeout;\n /**\n Per-operation timeout in milliseconds. Operations fulfill once `timeout` elapses if they haven't already.\n\n Applies to each future operation.\n */\n timeout;\n // TODO: The `throwOnTimeout` option should affect the return types of `add()` and `addAll()`\n constructor(options) {\n super();\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n options = {\n carryoverConcurrencyCount: false,\n intervalCap: Number.POSITIVE_INFINITY,\n interval: 0,\n concurrency: Number.POSITIVE_INFINITY,\n autoStart: true,\n queueClass: PriorityQueue,\n ...options,\n };\n if (!(typeof options.intervalCap === 'number' && options.intervalCap >= 1)) {\n throw new TypeError(`Expected \\`intervalCap\\` to be a number from 1 and up, got \\`${options.intervalCap?.toString() ?? ''}\\` (${typeof options.intervalCap})`);\n }\n if (options.interval === undefined || !(Number.isFinite(options.interval) && options.interval >= 0)) {\n throw new TypeError(`Expected \\`interval\\` to be a finite number >= 0, got \\`${options.interval?.toString() ?? ''}\\` (${typeof options.interval})`);\n }\n this.#carryoverConcurrencyCount = options.carryoverConcurrencyCount;\n this.#isIntervalIgnored = options.intervalCap === Number.POSITIVE_INFINITY || options.interval === 0;\n this.#intervalCap = options.intervalCap;\n this.#interval = options.interval;\n this.#queue = new options.queueClass();\n this.#queueClass = options.queueClass;\n this.concurrency = options.concurrency;\n this.timeout = options.timeout;\n this.#throwOnTimeout = options.throwOnTimeout === true;\n this.#isPaused = options.autoStart === false;\n }\n get #doesIntervalAllowAnother() {\n return this.#isIntervalIgnored || this.#intervalCount < this.#intervalCap;\n }\n get #doesConcurrentAllowAnother() {\n return this.#pending < this.#concurrency;\n }\n #next() {\n this.#pending--;\n this.#tryToStartAnother();\n this.emit('next');\n }\n #onResumeInterval() {\n this.#onInterval();\n this.#initializeIntervalIfNeeded();\n this.#timeoutId = undefined;\n }\n get #isIntervalPaused() {\n const now = Date.now();\n if (this.#intervalId === undefined) {\n const delay = this.#intervalEnd - now;\n if (delay < 0) {\n // Act as the interval was done\n // We don't need to resume it here because it will be resumed on line 160\n this.#intervalCount = (this.#carryoverConcurrencyCount) ? this.#pending : 0;\n }\n else {\n // Act as the interval is pending\n if (this.#timeoutId === undefined) {\n this.#timeoutId = setTimeout(() => {\n this.#onResumeInterval();\n }, delay);\n }\n return true;\n }\n }\n return false;\n }\n #tryToStartAnother() {\n if (this.#queue.size === 0) {\n // We can clear the interval (\"pause\")\n // Because we can redo it later (\"resume\")\n if (this.#intervalId) {\n clearInterval(this.#intervalId);\n }\n this.#intervalId = undefined;\n this.emit('empty');\n if (this.#pending === 0) {\n this.emit('idle');\n }\n return false;\n }\n if (!this.#isPaused) {\n const canInitializeInterval = !this.#isIntervalPaused;\n if (this.#doesIntervalAllowAnother && this.#doesConcurrentAllowAnother) {\n const job = this.#queue.dequeue();\n if (!job) {\n return false;\n }\n this.emit('active');\n job();\n if (canInitializeInterval) {\n this.#initializeIntervalIfNeeded();\n }\n return true;\n }\n }\n return false;\n }\n #initializeIntervalIfNeeded() {\n if (this.#isIntervalIgnored || this.#intervalId !== undefined) {\n return;\n }\n this.#intervalId = setInterval(() => {\n this.#onInterval();\n }, this.#interval);\n this.#intervalEnd = Date.now() + this.#interval;\n }\n #onInterval() {\n if (this.#intervalCount === 0 && this.#pending === 0 && this.#intervalId) {\n clearInterval(this.#intervalId);\n this.#intervalId = undefined;\n }\n this.#intervalCount = this.#carryoverConcurrencyCount ? this.#pending : 0;\n this.#processQueue();\n }\n /**\n Executes all queued functions until it reaches the limit.\n */\n #processQueue() {\n // eslint-disable-next-line no-empty\n while (this.#tryToStartAnother()) { }\n }\n get concurrency() {\n return this.#concurrency;\n }\n set concurrency(newConcurrency) {\n if (!(typeof newConcurrency === 'number' && newConcurrency >= 1)) {\n throw new TypeError(`Expected \\`concurrency\\` to be a number from 1 and up, got \\`${newConcurrency}\\` (${typeof newConcurrency})`);\n }\n this.#concurrency = newConcurrency;\n this.#processQueue();\n }\n async #throwOnAbort(signal) {\n return new Promise((_resolve, reject) => {\n signal.addEventListener('abort', () => {\n reject(signal.reason);\n }, { once: true });\n });\n }\n async add(function_, options = {}) {\n options = {\n timeout: this.timeout,\n throwOnTimeout: this.#throwOnTimeout,\n ...options,\n };\n return new Promise((resolve, reject) => {\n this.#queue.enqueue(async () => {\n this.#pending++;\n this.#intervalCount++;\n try {\n options.signal?.throwIfAborted();\n let operation = function_({ signal: options.signal });\n if (options.timeout) {\n operation = pTimeout(Promise.resolve(operation), { milliseconds: options.timeout });\n }\n if (options.signal) {\n operation = Promise.race([operation, this.#throwOnAbort(options.signal)]);\n }\n const result = await operation;\n resolve(result);\n this.emit('completed', result);\n }\n catch (error) {\n if (error instanceof TimeoutError && !options.throwOnTimeout) {\n resolve();\n return;\n }\n reject(error);\n this.emit('error', error);\n }\n finally {\n this.#next();\n }\n }, options);\n this.emit('add');\n this.#tryToStartAnother();\n });\n }\n async addAll(functions, options) {\n return Promise.all(functions.map(async (function_) => this.add(function_, options)));\n }\n /**\n Start (or resume) executing enqueued tasks within concurrency limit. No need to call this if queue is not paused (via `options.autoStart = false` or by `.pause()` method.)\n */\n start() {\n if (!this.#isPaused) {\n return this;\n }\n this.#isPaused = false;\n this.#processQueue();\n return this;\n }\n /**\n Put queue execution on hold.\n */\n pause() {\n this.#isPaused = true;\n }\n /**\n Clear the queue.\n */\n clear() {\n this.#queue = new this.#queueClass();\n }\n /**\n Can be called multiple times. Useful if you for example add additional items at a later time.\n\n @returns A promise that settles when the queue becomes empty.\n */\n async onEmpty() {\n // Instantly resolve if the queue is empty\n if (this.#queue.size === 0) {\n return;\n }\n await this.#onEvent('empty');\n }\n /**\n @returns A promise that settles when the queue size is less than the given limit: `queue.size < limit`.\n\n If you want to avoid having the queue grow beyond a certain size you can `await queue.onSizeLessThan()` before adding a new item.\n\n Note that this only limits the number of items waiting to start. There could still be up to `concurrency` jobs already running that this call does not include in its calculation.\n */\n async onSizeLessThan(limit) {\n // Instantly resolve if the queue is empty.\n if (this.#queue.size < limit) {\n return;\n }\n await this.#onEvent('next', () => this.#queue.size < limit);\n }\n /**\n The difference with `.onEmpty` is that `.onIdle` guarantees that all work from the queue has finished. `.onEmpty` merely signals that the queue is empty, but it could mean that some promises haven't completed yet.\n\n @returns A promise that settles when the queue becomes empty, and all promises have completed; `queue.size === 0 && queue.pending === 0`.\n */\n async onIdle() {\n // Instantly resolve if none pending and if nothing else is queued\n if (this.#pending === 0 && this.#queue.size === 0) {\n return;\n }\n await this.#onEvent('idle');\n }\n async #onEvent(event, filter) {\n return new Promise(resolve => {\n const listener = () => {\n if (filter && !filter()) {\n return;\n }\n this.off(event, listener);\n resolve();\n };\n this.on(event, listener);\n });\n }\n /**\n Size of the queue, the number of queued items waiting to run.\n */\n get size() {\n return this.#queue.size;\n }\n /**\n Size of the queue, filtered by the given options.\n\n For example, this can be used to find the number of items remaining in the queue with a specific priority level.\n */\n sizeBy(options) {\n // eslint-disable-next-line unicorn/no-array-callback-reference\n return this.#queue.filter(options).length;\n }\n /**\n Number of running items (no longer in the queue).\n */\n get pending() {\n return this.#pending;\n }\n /**\n Whether the queue is currently paused.\n */\n get isPaused() {\n return this.#isPaused;\n }\n}\n","import '../assets/index-Ussc_ol3.css';\nimport { CanceledError as b } from \"axios\";\nimport { encodePath as q } from \"@nextcloud/paths\";\nimport { Folder as z, Permission as H, getNewFileMenuEntries as G } from \"@nextcloud/files\";\nimport { generateRemoteUrl as j } from \"@nextcloud/router\";\nimport { getCurrentUser as F } from \"@nextcloud/auth\";\nimport v from \"@nextcloud/axios\";\nimport Y from \"p-cancelable\";\nimport V from \"p-queue\";\nimport { getLoggerBuilder as _ } from \"@nextcloud/logger\";\nimport { showError as P } from \"@nextcloud/dialogs\";\nimport K from \"simple-eta\";\nimport E, { defineAsyncComponent as $ } from \"vue\";\nimport J from \"@nextcloud/vue/dist/Components/NcActionButton.js\";\nimport Q from \"@nextcloud/vue/dist/Components/NcActions.js\";\nimport Z from \"@nextcloud/vue/dist/Components/NcButton.js\";\nimport X from \"@nextcloud/vue/dist/Components/NcIconSvgWrapper.js\";\nimport ss from \"@nextcloud/vue/dist/Components/NcProgressBar.js\";\nimport { getGettextBuilder as es } from \"@nextcloud/l10n/gettext\";\nconst A = async function(e, s, t, n = () => {\n}, i = void 0, o = {}) {\n let l;\n return s instanceof Blob ? l = s : l = await s(), i && (o.Destination = i), o[\"Content-Type\"] || (o[\"Content-Type\"] = \"application/octet-stream\"), await v.request({\n method: \"PUT\",\n url: e,\n data: l,\n signal: t,\n onUploadProgress: n,\n headers: o\n });\n}, B = function(e, s, t) {\n return s === 0 && e.size <= t ? Promise.resolve(new Blob([e], { type: e.type || \"application/octet-stream\" })) : Promise.resolve(new Blob([e.slice(s, s + t)], { type: \"application/octet-stream\" }));\n}, ts = async function(e = void 0) {\n const s = j(`dav/uploads/${F()?.uid}`), n = `web-file-upload-${[...Array(16)].map(() => Math.floor(Math.random() * 16).toString(16)).join(\"\")}`, i = `${s}/${n}`, o = e ? { Destination: e } : void 0;\n return await v.request({\n method: \"MKCOL\",\n url: i,\n headers: o\n }), i;\n}, x = function(e = void 0) {\n const s = window.OC?.appConfig?.files?.max_chunk_size;\n if (s <= 0)\n return 0;\n if (!Number(s))\n return 10 * 1024 * 1024;\n const t = Math.max(Number(s), 5 * 1024 * 1024);\n return e === void 0 ? t : Math.max(t, Math.ceil(e / 1e4));\n};\nvar c = /* @__PURE__ */ ((e) => (e[e.INITIALIZED = 0] = \"INITIALIZED\", e[e.UPLOADING = 1] = \"UPLOADING\", e[e.ASSEMBLING = 2] = \"ASSEMBLING\", e[e.FINISHED = 3] = \"FINISHED\", e[e.CANCELLED = 4] = \"CANCELLED\", e[e.FAILED = 5] = \"FAILED\", e))(c || {});\nlet ns = class {\n _source;\n _file;\n _isChunked;\n _chunks;\n _size;\n _uploaded = 0;\n _startTime = 0;\n _status = 0;\n _controller;\n _response = null;\n constructor(s, t = !1, n, i) {\n const o = Math.min(x() > 0 ? Math.ceil(n / x()) : 1, 1e4);\n this._source = s, this._isChunked = t && x() > 0 && o > 1, this._chunks = this._isChunked ? o : 1, this._size = n, this._file = i, this._controller = new AbortController();\n }\n get source() {\n return this._source;\n }\n get file() {\n return this._file;\n }\n get isChunked() {\n return this._isChunked;\n }\n get chunks() {\n return this._chunks;\n }\n get size() {\n return this._size;\n }\n get startTime() {\n return this._startTime;\n }\n set response(s) {\n this._response = s;\n }\n get response() {\n return this._response;\n }\n get uploaded() {\n return this._uploaded;\n }\n /**\n * Update the uploaded bytes of this upload\n */\n set uploaded(s) {\n if (s >= this._size) {\n this._status = this._isChunked ? 2 : 3, this._uploaded = this._size;\n return;\n }\n this._status = 1, this._uploaded = s, this._startTime === 0 && (this._startTime = (/* @__PURE__ */ new Date()).getTime());\n }\n get status() {\n return this._status;\n }\n /**\n * Update this upload status\n */\n set status(s) {\n this._status = s;\n }\n /**\n * Returns the axios cancel token source\n */\n get signal() {\n return this._controller.signal;\n }\n /**\n * Cancel any ongoing requests linked to this upload\n */\n cancel() {\n this._controller.abort(), this._status = 4;\n }\n};\n/**\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nconst as = (e) => e === null ? _().setApp(\"uploader\").build() : _().setApp(\"uploader\").setUid(e.uid).build(), g = as(F());\nvar I = /* @__PURE__ */ ((e) => (e[e.IDLE = 0] = \"IDLE\", e[e.UPLOADING = 1] = \"UPLOADING\", e[e.PAUSED = 2] = \"PAUSED\", e))(I || {});\nclass N {\n // Initialized via setter in the constructor\n _destinationFolder;\n _isPublic;\n // Global upload queue\n _uploadQueue = [];\n _jobQueue = new V({ concurrency: 3 });\n _queueSize = 0;\n _queueProgress = 0;\n _queueStatus = 0;\n _notifiers = [];\n /**\n * Initialize uploader\n *\n * @param {boolean} isPublic are we in public mode ?\n * @param {Folder} destinationFolder the context folder to operate, relative to the root folder\n */\n constructor(s = !1, t) {\n if (this._isPublic = s, !t) {\n const n = F()?.uid, i = j(`dav/files/${n}`);\n if (!n)\n throw new Error(\"User is not logged in\");\n t = new z({\n id: 0,\n owner: n,\n permissions: H.ALL,\n root: `/files/${n}`,\n source: i\n });\n }\n this.destination = t, g.debug(\"Upload workspace initialized\", {\n destination: this.destination,\n root: this.root,\n isPublic: s,\n maxChunksSize: x()\n });\n }\n /**\n * Get the upload destination path relative to the root folder\n */\n get destination() {\n return this._destinationFolder;\n }\n /**\n * Set the upload destination path relative to the root folder\n */\n set destination(s) {\n if (!s)\n throw new Error(\"Invalid destination folder\");\n g.debug(\"Destination set\", { folder: s }), this._destinationFolder = s;\n }\n /**\n * Get the root folder\n */\n get root() {\n return this._destinationFolder.source;\n }\n /**\n * Get the upload queue\n */\n get queue() {\n return this._uploadQueue;\n }\n reset() {\n this._uploadQueue.splice(0, this._uploadQueue.length), this._jobQueue.clear(), this._queueSize = 0, this._queueProgress = 0, this._queueStatus = 0;\n }\n /**\n * Pause any ongoing upload(s)\n */\n pause() {\n this._jobQueue.pause(), this._queueStatus = 2;\n }\n /**\n * Resume any pending upload(s)\n */\n start() {\n this._jobQueue.start(), this._queueStatus = 1, this.updateStats();\n }\n /**\n * Get the upload queue stats\n */\n get info() {\n return {\n size: this._queueSize,\n progress: this._queueProgress,\n status: this._queueStatus\n };\n }\n updateStats() {\n const s = this._uploadQueue.map((n) => n.size).reduce((n, i) => n + i, 0), t = this._uploadQueue.map((n) => n.uploaded).reduce((n, i) => n + i, 0);\n this._queueSize = s, this._queueProgress = t, this._queueStatus !== 2 && (this._queueStatus = this._jobQueue.size > 0 ? 1 : 0);\n }\n addNotifier(s) {\n this._notifiers.push(s);\n }\n /**\n * Upload a file to the given path\n * @param {string} destinationPath the destination path relative to the root folder. e.g. /foo/bar.txt\n * @param {File} file the file to upload\n * @param {string} root the root folder to upload to\n */\n upload(s, t, n) {\n const i = `${n || this.root}/${s.replace(/^\\//, \"\")}`, { origin: o } = new URL(i), l = o + q(i.slice(o.length));\n g.debug(`Uploading ${t.name} to ${l}`);\n const f = x(t.size), r = f === 0 || t.size < f || this._isPublic, a = new ns(i, !r, t.size, t);\n return this._uploadQueue.push(a), this.updateStats(), new Y(async (T, d, U) => {\n if (U(a.cancel), r) {\n g.debug(\"Initializing regular upload\", { file: t, upload: a });\n const p = await B(t, 0, a.size), L = async () => {\n try {\n a.response = await A(\n l,\n p,\n a.signal,\n (m) => {\n a.uploaded = a.uploaded + m.bytes, this.updateStats();\n },\n void 0,\n {\n \"X-OC-Mtime\": t.lastModified / 1e3,\n \"Content-Type\": t.type\n }\n ), a.uploaded = a.size, this.updateStats(), g.debug(`Successfully uploaded ${t.name}`, { file: t, upload: a }), T(a);\n } catch (m) {\n if (m instanceof b) {\n a.status = c.FAILED, d(\"Upload has been cancelled\");\n return;\n }\n m?.response && (a.response = m.response), a.status = c.FAILED, g.error(`Failed uploading ${t.name}`, { error: m, file: t, upload: a }), d(\"Failed uploading the file\");\n }\n this._notifiers.forEach((m) => {\n try {\n m(a);\n } catch {\n }\n });\n };\n this._jobQueue.add(L), this.updateStats();\n } else {\n g.debug(\"Initializing chunked upload\", { file: t, upload: a });\n const p = await ts(l), L = [];\n for (let m = 0; m < a.chunks; m++) {\n const w = m * f, D = Math.min(w + f, a.size), W = () => B(t, w, f), O = () => A(\n `${p}/${m + 1}`,\n W,\n a.signal,\n () => this.updateStats(),\n l,\n {\n \"X-OC-Mtime\": t.lastModified / 1e3,\n \"OC-Total-Length\": t.size,\n \"Content-Type\": \"application/octet-stream\"\n }\n ).then(() => {\n a.uploaded = a.uploaded + f;\n }).catch((h) => {\n throw h?.response?.status === 507 ? (g.error(\"Upload failed, not enough space on the server or quota exceeded. Cancelling the remaining chunks\", { error: h, upload: a }), a.cancel(), a.status = c.FAILED, h) : (h instanceof b || (g.error(`Chunk ${m + 1} ${w} - ${D} uploading failed`, { error: h, upload: a }), a.cancel(), a.status = c.FAILED), h);\n });\n L.push(this._jobQueue.add(O));\n }\n try {\n await Promise.all(L), this.updateStats(), a.response = await v.request({\n method: \"MOVE\",\n url: `${p}/.file`,\n headers: {\n \"X-OC-Mtime\": t.lastModified / 1e3,\n \"OC-Total-Length\": t.size,\n Destination: l\n }\n }), this.updateStats(), a.status = c.FINISHED, g.debug(`Successfully uploaded ${t.name}`, { file: t, upload: a }), T(a);\n } catch (m) {\n m instanceof b ? (a.status = c.FAILED, d(\"Upload has been cancelled\")) : (a.status = c.FAILED, d(\"Failed assembling the chunks together\")), v.request({\n method: \"DELETE\",\n url: `${p}`\n });\n }\n this._notifiers.forEach((m) => {\n try {\n m(a);\n } catch {\n }\n });\n }\n return this._jobQueue.onIdle().then(() => this.reset()), a;\n });\n }\n}\nfunction y(e, s, t, n, i, o, l, f) {\n var r = typeof e == \"function\" ? e.options : e;\n s && (r.render = s, r.staticRenderFns = t, r._compiled = !0), n && (r.functional = !0), o && (r._scopeId = \"data-v-\" + o);\n var a;\n if (l ? (a = function(d) {\n d = d || // cached call\n this.$vnode && this.$vnode.ssrContext || // stateful\n this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext, !d && typeof __VUE_SSR_CONTEXT__ < \"u\" && (d = __VUE_SSR_CONTEXT__), i && i.call(this, d), d && d._registeredComponents && d._registeredComponents.add(l);\n }, r._ssrRegister = a) : i && (a = f ? function() {\n i.call(\n this,\n (r.functional ? this.parent : this).$root.$options.shadowRoot\n );\n } : i), a)\n if (r.functional) {\n r._injectStyles = a;\n var S = r.render;\n r.render = function(U, p) {\n return a.call(p), S(U, p);\n };\n } else {\n var T = r.beforeCreate;\n r.beforeCreate = T ? [].concat(T, a) : [a];\n }\n return {\n exports: e,\n options: r\n };\n}\nconst is = {\n name: \"CancelIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar ls = function() {\n var s = this, t = s._self._c;\n return t(\"span\", s._b({ staticClass: \"material-design-icon cancel-icon\", attrs: { \"aria-hidden\": s.title ? null : !0, \"aria-label\": s.title, role: \"img\" }, on: { click: function(n) {\n return s.$emit(\"click\", n);\n } } }, \"span\", s.$attrs, !1), [t(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { fill: s.fillColor, width: s.size, height: s.size, viewBox: \"0 0 24 24\" } }, [t(\"path\", { attrs: { d: \"M12 2C17.5 2 22 6.5 22 12S17.5 22 12 22 2 17.5 2 12 6.5 2 12 2M12 4C10.1 4 8.4 4.6 7.1 5.7L18.3 16.9C19.3 15.5 20 13.8 20 12C20 7.6 16.4 4 12 4M16.9 18.3L5.7 7.1C4.6 8.4 4 10.1 4 12C4 16.4 7.6 20 12 20C13.9 20 15.6 19.4 16.9 18.3Z\" } }, [s.title ? t(\"title\", [s._v(s._s(s.title))]) : s._e()])])]);\n}, rs = [], os = /* @__PURE__ */ y(\n is,\n ls,\n rs,\n !1,\n null,\n null,\n null,\n null\n);\nconst ms = os.exports, ds = {\n name: \"PlusIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar gs = function() {\n var s = this, t = s._self._c;\n return t(\"span\", s._b({ staticClass: \"material-design-icon plus-icon\", attrs: { \"aria-hidden\": s.title ? null : !0, \"aria-label\": s.title, role: \"img\" }, on: { click: function(n) {\n return s.$emit(\"click\", n);\n } } }, \"span\", s.$attrs, !1), [t(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { fill: s.fillColor, width: s.size, height: s.size, viewBox: \"0 0 24 24\" } }, [t(\"path\", { attrs: { d: \"M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z\" } }, [s.title ? t(\"title\", [s._v(s._s(s.title))]) : s._e()])])]);\n}, us = [], cs = /* @__PURE__ */ y(\n ds,\n gs,\n us,\n !1,\n null,\n null,\n null,\n null\n);\nconst fs = cs.exports, ps = {\n name: \"UploadIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar hs = function() {\n var s = this, t = s._self._c;\n return t(\"span\", s._b({ staticClass: \"material-design-icon upload-icon\", attrs: { \"aria-hidden\": s.title ? null : !0, \"aria-label\": s.title, role: \"img\" }, on: { click: function(n) {\n return s.$emit(\"click\", n);\n } } }, \"span\", s.$attrs, !1), [t(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { fill: s.fillColor, width: s.size, height: s.size, viewBox: \"0 0 24 24\" } }, [t(\"path\", { attrs: { d: \"M9,16V10H5L12,3L19,10H15V16H9M5,20V18H19V20H5Z\" } }, [s.title ? t(\"title\", [s._v(s._s(s.title))]) : s._e()])])]);\n}, Ts = [], ws = /* @__PURE__ */ y(\n ps,\n hs,\n Ts,\n !1,\n null,\n null,\n null,\n null\n);\nconst xs = ws.exports;\n/**\n * @copyright Copyright (c) 2023 Ferdinand Thiessen <opensource@fthiessen.de>\n *\n * @author Ferdinand Thiessen <opensource@fthiessen.de>\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nconst R = es().detectLocale();\n[{ locale: \"af\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Afrikaans (https://www.transifex.com/nextcloud/teams/64236/af/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"af\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Afrikaans (https://www.transifex.com/nextcloud/teams/64236/af/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: af\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"ar\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Ali <alimahwer@yahoo.com>, 2024\", \"Language-Team\": \"Arabic (https://app.transifex.com/nextcloud/teams/64236/ar/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"ar\", \"Plural-Forms\": \"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJoas Schilling, 2024\nAli <alimahwer@yahoo.com>, 2024\n` }, msgstr: [`Last-Translator: Ali <alimahwer@yahoo.com>, 2024\nLanguage-Team: Arabic (https://app.transifex.com/nextcloud/teams/64236/ar/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ar\nPlural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count} ملف متعارض\", \"{count} ملف متعارض\", \"{count} ملفان متعارضان\", \"{count} ملف متعارض\", \"{count} ملفات متعارضة\", \"{count} ملفات متعارضة\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{count} ملف متعارض في n {dirname}\", \"{count} ملف متعارض في n {dirname}\", \"{count} ملفان متعارضان في n {dirname}\", \"{count} ملف متعارض في n {dirname}\", \"{count} ملفات متعارضة في n {dirname}\", \"{count} ملفات متعارضة في n {dirname}\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} ثانية متبقية\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"{time} متبقية\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"باقٍ بضعُ ثوانٍ\"] }, Cancel: { msgid: \"Cancel\", msgstr: [\"إلغاء\"] }, \"Cancel the entire operation\": { msgid: \"Cancel the entire operation\", msgstr: [\"إلغِ العملية بالكامل\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"إلغاء عمليات رفع الملفات\"] }, Continue: { msgid: \"Continue\", msgstr: [\"إستمر\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"تقدير الوقت المتبقي\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"الإصدار الحالي\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"إذا اخترت الإبقاء على النسختين معاً، فإن الملف المنسوخ سيتم إلحاق رقم تسلسلي في نهاية اسمه.\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"تاريخ آخر تعديل غير معلوم\"] }, New: { msgid: \"New\", msgstr: [\"جديد\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"نسخة جديدة\"] }, paused: { msgid: \"paused\", msgstr: [\"مُجمَّد\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"معاينة الصورة\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"حدِّد كل صناديق الخيارات\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"حدِّد كل الملفات الموجودة\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"حدِّد كل الملفات الجديدة\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"تخطَّ {count} ملف\", \"تخطَّ {count} ملف\", \"تخطَّ {count} ملف\", \"تخطَّ {count} ملف\", \"تخطَّ {count} ملف\", \"تخطَّ {count} ملف\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"حجم غير معلوم\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"تمَّ إلغاء الرفع\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"رفع ملفات\"] }, \"Upload progress\": { msgid: \"Upload progress\", msgstr: [\"تقدُّم الرفع \"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { msgid: \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", msgstr: [\"عند تحديد مجلد وارد، أي ملفات متعارضة بداخله ستتم الكتابة فوقها.\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"أيُّ الملفات ترغب في الإبقاء عليها؟\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"يجب أن تختار نسخة واحدة على الأقل من كل ملف للاستمرار.\"] } } } } }, { locale: \"ar_SA\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Arabic (Saudi Arabia) (https://www.transifex.com/nextcloud/teams/64236/ar_SA/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"ar_SA\", \"Plural-Forms\": \"nplurals=6; plural=(n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Arabic (Saudi Arabia) (https://www.transifex.com/nextcloud/teams/64236/ar_SA/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ar_SA\nPlural-Forms: nplurals=6; plural=(n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"ast\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"enolp <enolp@softastur.org>, 2023\", \"Language-Team\": \"Asturian (https://app.transifex.com/nextcloud/teams/64236/ast/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"ast\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nenolp <enolp@softastur.org>, 2023\n` }, msgstr: [`Last-Translator: enolp <enolp@softastur.org>, 2023\nLanguage-Team: Asturian (https://app.transifex.com/nextcloud/teams/64236/ast/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ast\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count} ficheru en coflictu\", \"{count} ficheros en coflictu\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{count} ficheru en coflictu en {dirname}\", \"{count} ficheros en coflictu en {dirname}\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"Queden {seconds} segundos\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"Tiempu que queda: {time}\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"queden unos segundos\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Encaboxar les xubes\"] }, Continue: { msgid: \"Continue\", msgstr: [\"Siguir\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"estimando'l tiempu que falta\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"Versión esistente\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"Si seleiciones dambes versiones, el ficheru copiáu va tener un númberu amestáu al so nome.\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"La data de la última modificación ye desconocida\"] }, New: { msgid: \"New\", msgstr: [\"Nuevu\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"Versión nueva\"] }, paused: { msgid: \"paused\", msgstr: [\"en posa\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"Previsualizar la imaxe\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"Marcar toles caxelles\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"Seleicionar tolos ficheros esistentes\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"Seleicionar tolos ficheros nuevos\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"Saltar esti ficheru\", \"Saltar {count} ficheros\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"Tamañu desconocíu\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"Encaboxóse la xuba\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Xubir ficheros\"] }, \"Upload progress\": { msgid: \"Upload progress\", msgstr: [\"Xuba en cursu\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"¿Qué ficheros quies caltener?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"Tienes de seleicionar polo menos una versión de cada ficheru pa siguir.\"] } } } } }, { locale: \"az\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Rashad Aliyev <microphprashad@gmail.com>, 2023\", \"Language-Team\": \"Azerbaijani (https://app.transifex.com/nextcloud/teams/64236/az/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"az\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nRashad Aliyev <microphprashad@gmail.com>, 2023\n` }, msgstr: [`Last-Translator: Rashad Aliyev <microphprashad@gmail.com>, 2023\nLanguage-Team: Azerbaijani (https://app.transifex.com/nextcloud/teams/64236/az/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: az\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} saniyə qalıb\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"time has the format 00:00:00\" }, msgstr: [\"{time} qalıb\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"bir neçə saniyə qalıb\"] }, Add: { msgid: \"Add\", msgstr: [\"Əlavə et\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Yükləməni imtina et\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"Təxmini qalan vaxt\"] }, paused: { msgid: \"paused\", msgstr: [\"pauzadadır\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Faylları yüklə\"] } } } } }, { locale: \"be\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Belarusian (https://www.transifex.com/nextcloud/teams/64236/be/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"be\", \"Plural-Forms\": \"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Belarusian (https://www.transifex.com/nextcloud/teams/64236/be/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: be\nPlural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"bg_BG\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Bulgarian (Bulgaria) (https://www.transifex.com/nextcloud/teams/64236/bg_BG/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"bg_BG\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Bulgarian (Bulgaria) (https://www.transifex.com/nextcloud/teams/64236/bg_BG/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: bg_BG\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"bn_BD\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Bengali (Bangladesh) (https://www.transifex.com/nextcloud/teams/64236/bn_BD/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"bn_BD\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Bengali (Bangladesh) (https://www.transifex.com/nextcloud/teams/64236/bn_BD/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: bn_BD\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"br\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Breton (https://www.transifex.com/nextcloud/teams/64236/br/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"br\", \"Plural-Forms\": \"nplurals=5; plural=((n%10 == 1) && (n%100 != 11) && (n%100 !=71) && (n%100 !=91) ? 0 :(n%10 == 2) && (n%100 != 12) && (n%100 !=72) && (n%100 !=92) ? 1 :(n%10 ==3 || n%10==4 || n%10==9) && (n%100 < 10 || n% 100 > 19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 && n % 1000000 == 0) ? 3 : 4);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Breton (https://www.transifex.com/nextcloud/teams/64236/br/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: br\nPlural-Forms: nplurals=5; plural=((n%10 == 1) && (n%100 != 11) && (n%100 !=71) && (n%100 !=91) ? 0 :(n%10 == 2) && (n%100 != 12) && (n%100 !=72) && (n%100 !=92) ? 1 :(n%10 ==3 || n%10==4 || n%10==9) && (n%100 < 10 || n% 100 > 19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 && n % 1000000 == 0) ? 3 : 4);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"bs\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Bosnian (https://www.transifex.com/nextcloud/teams/64236/bs/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"bs\", \"Plural-Forms\": \"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Bosnian (https://www.transifex.com/nextcloud/teams/64236/bs/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: bs\nPlural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"ca\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Toni Hermoso Pulido <toniher@softcatala.cat>, 2022\", \"Language-Team\": \"Catalan (https://www.transifex.com/nextcloud/teams/64236/ca/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"ca\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nMarc Riera <marcriera@softcatala.org>, 2022\nToni Hermoso Pulido <toniher@softcatala.cat>, 2022\n` }, msgstr: [`Last-Translator: Toni Hermoso Pulido <toniher@softcatala.cat>, 2022\nLanguage-Team: Catalan (https://www.transifex.com/nextcloud/teams/64236/ca/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ca\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"Queden {seconds} segons\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"time has the format 00:00:00\" }, msgstr: [\"Queden {time}\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"Queden uns segons\"] }, Add: { msgid: \"Add\", msgstr: [\"Afegeix\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Cancel·la les pujades\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"S'està estimant el temps restant\"] }, paused: { msgid: \"paused\", msgstr: [\"En pausa\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Puja els fitxers\"] } } } } }, { locale: \"cs\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Pavel Borecki <pavel.borecki@gmail.com>, 2022\", \"Language-Team\": \"Czech (https://www.transifex.com/nextcloud/teams/64236/cs/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"cs\", \"Plural-Forms\": \"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nPavel Borecki <pavel.borecki@gmail.com>, 2022\n` }, msgstr: [`Last-Translator: Pavel Borecki <pavel.borecki@gmail.com>, 2022\nLanguage-Team: Czech (https://www.transifex.com/nextcloud/teams/64236/cs/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: cs\nPlural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n`] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"zbývá {seconds}\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"time has the format 00:00:00\" }, msgstr: [\"zbývá {time}\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"zbývá několik sekund\"] }, Add: { msgid: \"Add\", msgstr: [\"Přidat\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Zrušit nahrávání\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"odhadovaný zbývající čas\"] }, paused: { msgid: \"paused\", msgstr: [\"pozastaveno\"] } } } } }, { locale: \"cs_CZ\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Michal Šmahel <ceskyDJ@seznam.cz>, 2024\", \"Language-Team\": \"Czech (Czech Republic) (https://app.transifex.com/nextcloud/teams/64236/cs_CZ/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"cs_CZ\", \"Plural-Forms\": \"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJoas Schilling, 2024\nMichal Šmahel <ceskyDJ@seznam.cz>, 2024\n` }, msgstr: [`Last-Translator: Michal Šmahel <ceskyDJ@seznam.cz>, 2024\nLanguage-Team: Czech (Czech Republic) (https://app.transifex.com/nextcloud/teams/64236/cs_CZ/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: cs_CZ\nPlural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count} kolize souborů\", \"{count} kolize souborů\", \"{count} kolizí souborů\", \"{count} kolize souborů\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{count} kolize souboru v {dirname}\", \"{count} kolize souboru v {dirname}\", \"{count} kolizí souborů v {dirname}\", \"{count} kolize souboru v {dirname}\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"zbývá {seconds}\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"zbývá {time}\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"zbývá několik sekund\"] }, Cancel: { msgid: \"Cancel\", msgstr: [\"Zrušit\"] }, \"Cancel the entire operation\": { msgid: \"Cancel the entire operation\", msgstr: [\"Zrušit celou operaci\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Zrušit nahrávání\"] }, Continue: { msgid: \"Continue\", msgstr: [\"Pokračovat\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"odhaduje se zbývající čas\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"Existující verze\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"Pokud vyberete obě verze, zkopírovaný soubor bude mít k názvu přidáno číslo.\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"Neznámé datum poslední úpravy\"] }, New: { msgid: \"New\", msgstr: [\"Nové\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"Nová verze\"] }, paused: { msgid: \"paused\", msgstr: [\"pozastaveno\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"Náhled obrázku\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"Označit všechny zaškrtávací kolonky\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"Vybrat veškeré stávající soubory\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"Vybrat veškeré nové soubory\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"Přeskočit tento soubor\", \"Přeskočit {count} soubory\", \"Přeskočit {count} souborů\", \"Přeskočit {count} soubory\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"Neznámá velikost\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"Nahrávání zrušeno\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Nahrát soubory\"] }, \"Upload progress\": { msgid: \"Upload progress\", msgstr: [\"Postup v nahrávání\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { msgid: \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", msgstr: [\"Po výběru příchozí složky budou rovněž přepsány všechny v ní obsažené konfliktní soubory\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"Které soubory si přejete ponechat?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"Aby bylo možné pokračovat, je třeba vybrat alespoň jednu verzi od každého souboru.\"] } } } } }, { locale: \"cy_GB\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Welsh (United Kingdom) (https://www.transifex.com/nextcloud/teams/64236/cy_GB/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"cy_GB\", \"Plural-Forms\": \"nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Welsh (United Kingdom) (https://www.transifex.com/nextcloud/teams/64236/cy_GB/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: cy_GB\nPlural-Forms: nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"da\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Martin Bonde <Martin@maboni.dk>, 2024\", \"Language-Team\": \"Danish (https://app.transifex.com/nextcloud/teams/64236/da/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"da\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJoas Schilling, 2024\nMartin Bonde <Martin@maboni.dk>, 2024\n` }, msgstr: [`Last-Translator: Martin Bonde <Martin@maboni.dk>, 2024\nLanguage-Team: Danish (https://app.transifex.com/nextcloud/teams/64236/da/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: da\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count} fil konflikt\", \"{count} filer i konflikt\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{count} fil konflikt i {dirname}\", \"{count} filer i konflikt i {dirname}\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{sekunder} sekunder tilbage\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"{tid} tilbage\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"et par sekunder tilbage\"] }, Cancel: { msgid: \"Cancel\", msgstr: [\"Annuller\"] }, \"Cancel the entire operation\": { msgid: \"Cancel the entire operation\", msgstr: [\"Annuller hele handlingen\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Annuller uploads\"] }, Continue: { msgid: \"Continue\", msgstr: [\"Fortsæt\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"estimering af resterende tid\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"Eksisterende version\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"Hvis du vælger begge versioner vil den kopierede fil få et nummer tilføjet til sit navn.\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"Sidste modifikationsdato ukendt\"] }, New: { msgid: \"New\", msgstr: [\"Ny\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"Ny version\"] }, paused: { msgid: \"paused\", msgstr: [\"pauset\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"Forhåndsvisning af billede\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"Vælg alle felter\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"Vælg alle eksisterende filer\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"Vælg alle nye filer\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"Spring denne fil over\", \"Spring {count} filer over\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"Ukendt størrelse\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"Upload annulleret\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Upload filer\"] }, \"Upload progress\": { msgid: \"Upload progress\", msgstr: [\"Upload fremskridt\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { msgid: \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", msgstr: [\"Når en indgående mappe er valgt, vil alle modstridende filer i den også blive overskrevet.\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"Hvilke filer ønsker du at beholde?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"Du skal vælge mindst én version af hver fil for at fortsætte.\"] } } } } }, { locale: \"de\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Mario Siegmann <mario_siegmann@web.de>, 2024\", \"Language-Team\": \"German (https://app.transifex.com/nextcloud/teams/64236/de/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"de\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJoas Schilling, 2024\nMario Siegmann <mario_siegmann@web.de>, 2024\n` }, msgstr: [`Last-Translator: Mario Siegmann <mario_siegmann@web.de>, 2024\nLanguage-Team: German (https://app.transifex.com/nextcloud/teams/64236/de/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: de\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count} Datei-Konflikt\", \"{count} Datei-Konflikte\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{count} Datei-Konflikt in {dirname}\", \"{count} Datei-Konflikte in {dirname}\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} Sekunden verbleibend\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"{time} verbleibend\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"noch ein paar Sekunden\"] }, Cancel: { msgid: \"Cancel\", msgstr: [\"Abbrechen\"] }, \"Cancel the entire operation\": { msgid: \"Cancel the entire operation\", msgstr: [\"Den gesamten Vorgang abbrechen\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Hochladen abbrechen\"] }, Continue: { msgid: \"Continue\", msgstr: [\"Fortsetzen\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"Geschätzte verbleibende Zeit\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"Vorhandene Version\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"Wenn du beide Versionen auswählst, wird der kopierten Datei eine Nummer zum Namen hinzugefügt.\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"Datum der letzten Änderung unbekannt\"] }, New: { msgid: \"New\", msgstr: [\"Neu\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"Neue Version\"] }, paused: { msgid: \"paused\", msgstr: [\"Pausiert\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"Vorschaubild\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"Alle Kontrollkästchen aktivieren\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"Alle vorhandenen Dateien auswählen\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"Alle neuen Dateien auswählen\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"Diese Datei überspringen\", \"{count} Dateien überspringen\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"Unbekannte Größe\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"Hochladen abgebrochen\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Dateien hochladen\"] }, \"Upload progress\": { msgid: \"Upload progress\", msgstr: [\"Fortschritt beim Hochladen\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { msgid: \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", msgstr: [\"Wenn ein eingehender Ordner ausgewählt wird, werden alle darin enthaltenen Konfliktdateien ebenfalls überschrieben.\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"Welche Dateien möchtest du behalten?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"Du musst mindestens eine Version jeder Datei auswählen, um fortzufahren.\"] } } } } }, { locale: \"de_DE\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Mario Siegmann <mario_siegmann@web.de>, 2024\", \"Language-Team\": \"German (Germany) (https://app.transifex.com/nextcloud/teams/64236/de_DE/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"de_DE\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJoas Schilling, 2024\nMario Siegmann <mario_siegmann@web.de>, 2024\n` }, msgstr: [`Last-Translator: Mario Siegmann <mario_siegmann@web.de>, 2024\nLanguage-Team: German (Germany) (https://app.transifex.com/nextcloud/teams/64236/de_DE/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: de_DE\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count} Datei-Konflikt\", \"{count} Datei-Konflikte\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{count} Datei-Konflikt in {dirname}\", \"{count} Datei-Konflikte in {dirname}\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} Sekunden verbleiben\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"{time} verbleibend\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"ein paar Sekunden verbleiben\"] }, Cancel: { msgid: \"Cancel\", msgstr: [\"Abbrechen\"] }, \"Cancel the entire operation\": { msgid: \"Cancel the entire operation\", msgstr: [\"Den gesamten Vorgang abbrechen\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Hochladen abbrechen\"] }, Continue: { msgid: \"Continue\", msgstr: [\"Fortsetzen\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"Geschätzte verbleibende Zeit\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"Vorhandene Version\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"Wenn Sie beide Versionen auswählen, wird der kopierten Datei eine Nummer zum Namen hinzugefügt.\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"Datum der letzten Änderung unbekannt\"] }, New: { msgid: \"New\", msgstr: [\"Neu\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"Neue Version\"] }, paused: { msgid: \"paused\", msgstr: [\"Pausiert\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"Vorschaubild\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"Alle Kontrollkästchen aktivieren\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"Alle vorhandenen Dateien auswählen\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"Alle neuen Dateien auswählen\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"{count} Datei überspringen\", \"{count} Dateien überspringen\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"Unbekannte Größe\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"Hochladen abgebrochen\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Dateien hochladen\"] }, \"Upload progress\": { msgid: \"Upload progress\", msgstr: [\"Fortschritt beim Hochladen\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { msgid: \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", msgstr: [\"Wenn ein eingehender Ordner ausgewählt wird, werden alle darin enthaltenen Konfliktdateien ebenfalls überschrieben.\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"Welche Dateien möchten Sie behalten?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"Sie müssen mindestens eine Version jeder Datei auswählen, um fortzufahren.\"] } } } } }, { locale: \"el\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Nik Pap, 2022\", \"Language-Team\": \"Greek (https://www.transifex.com/nextcloud/teams/64236/el/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"el\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nNik Pap, 2022\n` }, msgstr: [`Last-Translator: Nik Pap, 2022\nLanguage-Team: Greek (https://www.transifex.com/nextcloud/teams/64236/el/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: el\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"απομένουν {seconds} δευτερόλεπτα\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"time has the format 00:00:00\" }, msgstr: [\"απομένουν {time}\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"απομένουν λίγα δευτερόλεπτα\"] }, Add: { msgid: \"Add\", msgstr: [\"Προσθήκη\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Ακύρωση μεταφορτώσεων\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"εκτίμηση του χρόνου που απομένει\"] }, paused: { msgid: \"paused\", msgstr: [\"σε παύση\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Μεταφόρτωση αρχείων\"] } } } } }, { locale: \"el_GR\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Greek (Greece) (https://www.transifex.com/nextcloud/teams/64236/el_GR/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"el_GR\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Greek (Greece) (https://www.transifex.com/nextcloud/teams/64236/el_GR/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: el_GR\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"en_GB\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Andi Chandler <andi@gowling.com>, 2023\", \"Language-Team\": \"English (United Kingdom) (https://app.transifex.com/nextcloud/teams/64236/en_GB/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"en_GB\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nAndi Chandler <andi@gowling.com>, 2023\n` }, msgstr: [`Last-Translator: Andi Chandler <andi@gowling.com>, 2023\nLanguage-Team: English (United Kingdom) (https://app.transifex.com/nextcloud/teams/64236/en_GB/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: en_GB\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count} file conflict\", \"{count} files conflict\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{count} file conflict in {dirname}\", \"{count} file conflicts in {dirname}\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} seconds left\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"{time} left\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"a few seconds left\"] }, Add: { msgid: \"Add\", msgstr: [\"Add\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Cancel uploads\"] }, Continue: { msgid: \"Continue\", msgstr: [\"Continue\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"estimating time left\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"Existing version\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"If you select both versions, the copied file will have a number added to its name.\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"Last modified date unknown\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"New version\"] }, paused: { msgid: \"paused\", msgstr: [\"paused\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"Preview image\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"Select all checkboxes\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"Select all existing files\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"Select all new files\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"Skip this file\", \"Skip {count} files\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"Unknown size\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"Upload cancelled\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Upload files\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"Which files do you want to keep?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"You need to select at least one version of each file to continue.\"] } } } } }, { locale: \"eo\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Esperanto (https://www.transifex.com/nextcloud/teams/64236/eo/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"eo\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Esperanto (https://www.transifex.com/nextcloud/teams/64236/eo/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: eo\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"es\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Julio C. Ortega, 2024\", \"Language-Team\": \"Spanish (https://app.transifex.com/nextcloud/teams/64236/es/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"es\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nFranciscoFJ <dev-ooo@satel-sa.com>, 2023\nNext Cloud <nextcloud.translator.es@cgj.es>, 2023\nJulio C. Ortega, 2024\n` }, msgstr: [`Last-Translator: Julio C. Ortega, 2024\nLanguage-Team: Spanish (https://app.transifex.com/nextcloud/teams/64236/es/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count} archivo en conflicto\", \"{count} archivos en conflicto\", \"{count} archivos en conflicto\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{count} archivo en conflicto en {dirname}\", \"{count} archivos en conflicto en {dirname}\", \"{count} archivos en conflicto en {dirname}\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} segundos restantes\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"{time} restante\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"quedan unos segundos\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Cancelar subidas\"] }, Continue: { msgid: \"Continue\", msgstr: [\"Continuar\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"estimando tiempo restante\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"Versión existente\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"Si selecciona ambas versiones, al archivo copiado se le añadirá un número en el nombre.\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"Última fecha de modificación desconocida\"] }, New: { msgid: \"New\", msgstr: [\"Nuevo\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"Nueva versión\"] }, paused: { msgid: \"paused\", msgstr: [\"pausado\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"Previsualizar imagen\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"Seleccionar todas las casillas de verificación\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"Seleccionar todos los archivos existentes\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"Seleccionar todos los archivos nuevos\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"Saltar este archivo\", \"Saltar {count} archivos\", \"Saltar {count} archivos\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"Tamaño desconocido\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"Subida cancelada\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Subir archivos\"] }, \"Upload progress\": { msgid: \"Upload progress\", msgstr: [\"Progreso de la subida\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"¿Qué archivos desea conservar?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"Debe seleccionar al menos una versión de cada archivo para continuar.\"] } } } } }, { locale: \"es_419\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"ALEJANDRO CASTRO, 2022\", \"Language-Team\": \"Spanish (Latin America) (https://www.transifex.com/nextcloud/teams/64236/es_419/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"es_419\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nALEJANDRO CASTRO, 2022\n` }, msgstr: [`Last-Translator: ALEJANDRO CASTRO, 2022\nLanguage-Team: Spanish (Latin America) (https://www.transifex.com/nextcloud/teams/64236/es_419/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_419\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n`] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} segundos restantes\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"time has the format 00:00:00\" }, msgstr: [\"{tiempo} restante\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"quedan pocos segundos\"] }, Add: { msgid: \"Add\", msgstr: [\"agregar\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Cancelar subidas\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"estimando tiempo restante\"] }, paused: { msgid: \"paused\", msgstr: [\"pausado\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Subir archivos\"] } } } } }, { locale: \"es_AR\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Matias Iglesias, 2022\", \"Language-Team\": \"Spanish (Argentina) (https://www.transifex.com/nextcloud/teams/64236/es_AR/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"es_AR\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nMatias Iglesias, 2022\n` }, msgstr: [`Last-Translator: Matias Iglesias, 2022\nLanguage-Team: Spanish (Argentina) (https://www.transifex.com/nextcloud/teams/64236/es_AR/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_AR\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n`] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} segundos restantes\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"time has the format 00:00:00\" }, msgstr: [\"{time} restante\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"quedan unos segundos\"] }, Add: { msgid: \"Add\", msgstr: [\"Añadir\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Cancelar subidas\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"estimando tiempo restante\"] }, paused: { msgid: \"paused\", msgstr: [\"pausado\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Subir archivos\"] } } } } }, { locale: \"es_CL\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Chile) (https://www.transifex.com/nextcloud/teams/64236/es_CL/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"es_CL\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Chile) (https://www.transifex.com/nextcloud/teams/64236/es_CL/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_CL\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"es_CO\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Colombia) (https://www.transifex.com/nextcloud/teams/64236/es_CO/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"es_CO\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Colombia) (https://www.transifex.com/nextcloud/teams/64236/es_CO/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_CO\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"es_CR\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Costa Rica) (https://www.transifex.com/nextcloud/teams/64236/es_CR/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"es_CR\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Costa Rica) (https://www.transifex.com/nextcloud/teams/64236/es_CR/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_CR\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"es_DO\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Dominican Republic) (https://www.transifex.com/nextcloud/teams/64236/es_DO/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"es_DO\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Dominican Republic) (https://www.transifex.com/nextcloud/teams/64236/es_DO/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_DO\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"es_EC\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Ecuador) (https://www.transifex.com/nextcloud/teams/64236/es_EC/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"es_EC\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Ecuador) (https://www.transifex.com/nextcloud/teams/64236/es_EC/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_EC\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"es_GT\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Guatemala) (https://www.transifex.com/nextcloud/teams/64236/es_GT/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"es_GT\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Guatemala) (https://www.transifex.com/nextcloud/teams/64236/es_GT/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_GT\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"es_HN\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Honduras) (https://www.transifex.com/nextcloud/teams/64236/es_HN/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"es_HN\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Honduras) (https://www.transifex.com/nextcloud/teams/64236/es_HN/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_HN\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"es_MX\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"ALEJANDRO CASTRO, 2022\", \"Language-Team\": \"Spanish (Mexico) (https://www.transifex.com/nextcloud/teams/64236/es_MX/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"es_MX\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nLuis Francisco Castro, 2022\nALEJANDRO CASTRO, 2022\n` }, msgstr: [`Last-Translator: ALEJANDRO CASTRO, 2022\nLanguage-Team: Spanish (Mexico) (https://www.transifex.com/nextcloud/teams/64236/es_MX/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_MX\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n`] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} segundos restantes\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"time has the format 00:00:00\" }, msgstr: [\"{tiempo} restante\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"quedan pocos segundos\"] }, Add: { msgid: \"Add\", msgstr: [\"agregar\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"cancelar las cargas\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"estimando tiempo restante\"] }, paused: { msgid: \"paused\", msgstr: [\"en pausa\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"cargar archivos\"] } } } } }, { locale: \"es_NI\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Nicaragua) (https://www.transifex.com/nextcloud/teams/64236/es_NI/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"es_NI\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Nicaragua) (https://www.transifex.com/nextcloud/teams/64236/es_NI/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_NI\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"es_PA\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Panama) (https://www.transifex.com/nextcloud/teams/64236/es_PA/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"es_PA\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Panama) (https://www.transifex.com/nextcloud/teams/64236/es_PA/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_PA\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"es_PE\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Peru) (https://www.transifex.com/nextcloud/teams/64236/es_PE/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"es_PE\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Peru) (https://www.transifex.com/nextcloud/teams/64236/es_PE/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_PE\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"es_PR\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Puerto Rico) (https://www.transifex.com/nextcloud/teams/64236/es_PR/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"es_PR\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Puerto Rico) (https://www.transifex.com/nextcloud/teams/64236/es_PR/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_PR\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"es_PY\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Paraguay) (https://www.transifex.com/nextcloud/teams/64236/es_PY/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"es_PY\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Paraguay) (https://www.transifex.com/nextcloud/teams/64236/es_PY/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_PY\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"es_SV\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (El Salvador) (https://www.transifex.com/nextcloud/teams/64236/es_SV/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"es_SV\", \"Plural-Forms\": \"nplurals=2; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (El Salvador) (https://www.transifex.com/nextcloud/teams/64236/es_SV/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_SV\nPlural-Forms: nplurals=2; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"es_UY\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Spanish (Uruguay) (https://www.transifex.com/nextcloud/teams/64236/es_UY/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"es_UY\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Spanish (Uruguay) (https://www.transifex.com/nextcloud/teams/64236/es_UY/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: es_UY\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"et_EE\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Taavo Roos, 2023\", \"Language-Team\": \"Estonian (Estonia) (https://app.transifex.com/nextcloud/teams/64236/et_EE/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"et_EE\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nMait R, 2022\nTaavo Roos, 2023\n` }, msgstr: [`Last-Translator: Taavo Roos, 2023\nLanguage-Team: Estonian (Estonia) (https://app.transifex.com/nextcloud/teams/64236/et_EE/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: et_EE\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} jäänud sekundid\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"time has the format 00:00:00\" }, msgstr: [\"{time} aega jäänud\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"jäänud mõni sekund\"] }, Add: { msgid: \"Add\", msgstr: [\"Lisa\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Tühista üleslaadimine\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"hinnanguline järelejäänud aeg\"] }, paused: { msgid: \"paused\", msgstr: [\"pausil\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Lae failid üles\"] } } } } }, { locale: \"eu\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Unai Tolosa Pontesta <utolosa002@gmail.com>, 2022\", \"Language-Team\": \"Basque (https://www.transifex.com/nextcloud/teams/64236/eu/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"eu\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nUnai Tolosa Pontesta <utolosa002@gmail.com>, 2022\n` }, msgstr: [`Last-Translator: Unai Tolosa Pontesta <utolosa002@gmail.com>, 2022\nLanguage-Team: Basque (https://www.transifex.com/nextcloud/teams/64236/eu/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: eu\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} segundo geratzen dira\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"time has the format 00:00:00\" }, msgstr: [\"{time} geratzen da\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"segundo batzuk geratzen dira\"] }, Add: { msgid: \"Add\", msgstr: [\"Gehitu\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Ezeztatu igoerak\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"kalkulatutako geratzen den denbora\"] }, paused: { msgid: \"paused\", msgstr: [\"geldituta\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Igo fitxategiak\"] } } } } }, { locale: \"fa\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Fatemeh Komeily, 2023\", \"Language-Team\": \"Persian (https://app.transifex.com/nextcloud/teams/64236/fa/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"fa\", \"Plural-Forms\": \"nplurals=2; plural=(n > 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nFatemeh Komeily, 2023\n` }, msgstr: [`Last-Translator: Fatemeh Komeily, 2023\nLanguage-Team: Persian (https://app.transifex.com/nextcloud/teams/64236/fa/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: fa\nPlural-Forms: nplurals=2; plural=(n > 1);\n`] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"ثانیه های باقی مانده\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"time has the format 00:00:00\" }, msgstr: [\"باقی مانده\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"چند ثانیه مانده\"] }, Add: { msgid: \"Add\", msgstr: [\"اضافه کردن\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"کنسل کردن فایل های اپلود شده\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"تخمین زمان باقی مانده\"] }, paused: { msgid: \"paused\", msgstr: [\"مکث کردن\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"بارگذاری فایل ها\"] } } } } }, { locale: \"fi_FI\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Jiri Grönroos <jiri.gronroos@iki.fi>, 2022\", \"Language-Team\": \"Finnish (Finland) (https://www.transifex.com/nextcloud/teams/64236/fi_FI/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"fi_FI\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJiri Grönroos <jiri.gronroos@iki.fi>, 2022\n` }, msgstr: [`Last-Translator: Jiri Grönroos <jiri.gronroos@iki.fi>, 2022\nLanguage-Team: Finnish (Finland) (https://www.transifex.com/nextcloud/teams/64236/fi_FI/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: fi_FI\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} sekuntia jäljellä\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"time has the format 00:00:00\" }, msgstr: [\"{time} jäljellä\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"muutama sekunti jäljellä\"] }, Add: { msgid: \"Add\", msgstr: [\"Lisää\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Peruuta lähetykset\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"arvioidaan jäljellä olevaa aikaa\"] }, paused: { msgid: \"paused\", msgstr: [\"keskeytetty\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Lähetä tiedostoja\"] } } } } }, { locale: \"fo\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Faroese (https://www.transifex.com/nextcloud/teams/64236/fo/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"fo\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Faroese (https://www.transifex.com/nextcloud/teams/64236/fo/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: fo\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"fr\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"jed boulahya, 2024\", \"Language-Team\": \"French (https://app.transifex.com/nextcloud/teams/64236/fr/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"fr\", \"Plural-Forms\": \"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJoas Schilling, 2024\nBenoit Pruneau, 2024\njed boulahya, 2024\n` }, msgstr: [`Last-Translator: jed boulahya, 2024\nLanguage-Team: French (https://app.transifex.com/nextcloud/teams/64236/fr/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: fr\nPlural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count} fichier en conflit\", \"{count} fichiers en conflit\", \"{count} fichiers en conflit\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{count} fichier en conflit dans {dirname}\", \"{count} fichiers en conflit dans {dirname}\", \"{count} fichiers en conflit dans {dirname}\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} secondes restantes\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"{time} restant\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"quelques secondes restantes\"] }, Cancel: { msgid: \"Cancel\", msgstr: [\"Annuler\"] }, \"Cancel the entire operation\": { msgid: \"Cancel the entire operation\", msgstr: [\"Annuler l'opération entière\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Annuler les envois\"] }, Continue: { msgid: \"Continue\", msgstr: [\"Continuer\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"estimation du temps restant\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"Version existante\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"Si vous sélectionnez les deux versions, le fichier copié aura un numéro ajouté àname.\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"Date de la dernière modification est inconnue\"] }, New: { msgid: \"New\", msgstr: [\"Nouveau\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"Nouvelle version\"] }, paused: { msgid: \"paused\", msgstr: [\"en pause\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"Aperçu de l'image\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"Sélectionner toutes les cases à cocher\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"Sélectionner tous les fichiers existants\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"Sélectionner tous les nouveaux fichiers\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"Ignorer ce fichier\", \"Ignorer {count} fichiers\", \"Ignorer {count} fichiers\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"Taille inconnue\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\" annulé\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Téléchargement des fichiers\"] }, \"Upload progress\": { msgid: \"Upload progress\", msgstr: [\"Progression du téléchargement\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { msgid: \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", msgstr: [\"Lorsqu'un dossier entrant est sélectionné, tous les fichiers en conflit qu'il contient seront également écrasés.\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"Quels fichiers souhaitez-vous conserver ?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"Vous devez sélectionner au moins une version de chaque fichier pour continuer.\"] } } } } }, { locale: \"gd\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Gaelic, Scottish (https://www.transifex.com/nextcloud/teams/64236/gd/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"gd\", \"Plural-Forms\": \"nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : (n > 2 && n < 20) ? 2 : 3;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Gaelic, Scottish (https://www.transifex.com/nextcloud/teams/64236/gd/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: gd\nPlural-Forms: nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : (n > 2 && n < 20) ? 2 : 3;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"gl\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Miguel Anxo Bouzada <mbouzada@gmail.com>, 2023\", \"Language-Team\": \"Galician (https://app.transifex.com/nextcloud/teams/64236/gl/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"gl\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nNacho <nacho.vfranco@gmail.com>, 2023\nMiguel Anxo Bouzada <mbouzada@gmail.com>, 2023\n` }, msgstr: [`Last-Translator: Miguel Anxo Bouzada <mbouzada@gmail.com>, 2023\nLanguage-Team: Galician (https://app.transifex.com/nextcloud/teams/64236/gl/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: gl\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count} conflito de ficheiros\", \"{count} conflitos de ficheiros\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{count} conflito de ficheiros en {dirname}\", \"{count} conflitos de ficheiros en {dirname}\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"faltan {seconds} segundos\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"falta {time}\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"faltan uns segundos\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Cancelar envíos\"] }, Continue: { msgid: \"Continue\", msgstr: [\"Continuar\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"calculando canto tempo falta\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"Versión existente\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"Se selecciona ambas as versións, o ficheiro copiado terá un número engadido ao seu nome.\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"Data da última modificación descoñecida\"] }, New: { msgid: \"New\", msgstr: [\"Nova\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"Nova versión\"] }, paused: { msgid: \"paused\", msgstr: [\"detido\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"Vista previa da imaxe\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"Marcar todas as caixas de selección\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"Seleccionar todos os ficheiros existentes\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"Seleccionar todos os ficheiros novos\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"Omita este ficheiro\", \"Omitir {count} ficheiros\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"Tamaño descoñecido\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"Envío cancelado\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Enviar ficheiros\"] }, \"Upload progress\": { msgid: \"Upload progress\", msgstr: [\"Progreso do envío\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"Que ficheiros quere conservar?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"Debe seleccionar polo menos unha versión de cada ficheiro para continuar.\"] } } } } }, { locale: \"he\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Hebrew (https://www.transifex.com/nextcloud/teams/64236/he/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"he\", \"Plural-Forms\": \"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Hebrew (https://www.transifex.com/nextcloud/teams/64236/he/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: he\nPlural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"hi_IN\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Hindi (India) (https://www.transifex.com/nextcloud/teams/64236/hi_IN/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"hi_IN\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Hindi (India) (https://www.transifex.com/nextcloud/teams/64236/hi_IN/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: hi_IN\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"hr\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Croatian (https://www.transifex.com/nextcloud/teams/64236/hr/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"hr\", \"Plural-Forms\": \"nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Croatian (https://www.transifex.com/nextcloud/teams/64236/hr/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: hr\nPlural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"hsb\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Upper Sorbian (https://www.transifex.com/nextcloud/teams/64236/hsb/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"hsb\", \"Plural-Forms\": \"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Upper Sorbian (https://www.transifex.com/nextcloud/teams/64236/hsb/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: hsb\nPlural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"hu\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Hungarian (https://www.transifex.com/nextcloud/teams/64236/hu/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"hu\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Hungarian (https://www.transifex.com/nextcloud/teams/64236/hu/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: hu\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"hu_HU\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Balázs Úr, 2022\", \"Language-Team\": \"Hungarian (Hungary) (https://www.transifex.com/nextcloud/teams/64236/hu_HU/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"hu_HU\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nBalázs Meskó <meskobalazs@mailbox.org>, 2022\nBalázs Úr, 2022\n` }, msgstr: [`Last-Translator: Balázs Úr, 2022\nLanguage-Team: Hungarian (Hungary) (https://www.transifex.com/nextcloud/teams/64236/hu_HU/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: hu_HU\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{} másodperc van hátra\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"time has the format 00:00:00\" }, msgstr: [\"{time} van hátra\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"pár másodperc van hátra\"] }, Add: { msgid: \"Add\", msgstr: [\"Hozzáadás\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Feltöltések megszakítása\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"hátralévő idő becslése\"] }, paused: { msgid: \"paused\", msgstr: [\"szüneteltetve\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Fájlok feltöltése\"] } } } } }, { locale: \"hy\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Armenian (https://www.transifex.com/nextcloud/teams/64236/hy/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"hy\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Armenian (https://www.transifex.com/nextcloud/teams/64236/hy/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: hy\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"ia\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Interlingua (https://www.transifex.com/nextcloud/teams/64236/ia/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"ia\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Interlingua (https://www.transifex.com/nextcloud/teams/64236/ia/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ia\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"id\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Linerly <linerly@proton.me>, 2023\", \"Language-Team\": \"Indonesian (https://app.transifex.com/nextcloud/teams/64236/id/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"id\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nEmpty Slot Filler, 2023\nLinerly <linerly@proton.me>, 2023\n` }, msgstr: [`Last-Translator: Linerly <linerly@proton.me>, 2023\nLanguage-Team: Indonesian (https://app.transifex.com/nextcloud/teams/64236/id/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: id\nPlural-Forms: nplurals=1; plural=0;\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count} berkas berkonflik\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{count} berkas berkonflik dalam {dirname}\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} detik tersisa\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"{time} tersisa\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"tinggal sebentar lagi\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Batalkan unggahan\"] }, Continue: { msgid: \"Continue\", msgstr: [\"Lanjutkan\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"memperkirakan waktu yang tersisa\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"Versi yang ada\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"Jika Anda memilih kedua versi, nama berkas yang disalin akan ditambahi angka.\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"Tanggal perubahan terakhir tidak diketahui\"] }, New: { msgid: \"New\", msgstr: [\"Baru\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"Versi baru\"] }, paused: { msgid: \"paused\", msgstr: [\"dijeda\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"Gambar pratinjau\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"Pilih semua kotak centang\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"Pilih semua berkas yang ada\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"Pilih semua berkas baru\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"Lewati {count} berkas\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"Ukuran tidak diketahui\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"Unggahan dibatalkan\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Unggah berkas\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"Berkas mana yang Anda ingin tetap simpan?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"Anda harus memilih setidaknya satu versi dari masing-masing berkas untuk melanjutkan.\"] } } } } }, { locale: \"ig\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Igbo (https://www.transifex.com/nextcloud/teams/64236/ig/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"ig\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Igbo (https://www.transifex.com/nextcloud/teams/64236/ig/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ig\nPlural-Forms: nplurals=1; plural=0;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"is\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Sveinn í Felli <sv1@fellsnet.is>, 2023\", \"Language-Team\": \"Icelandic (https://app.transifex.com/nextcloud/teams/64236/is/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"is\", \"Plural-Forms\": \"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nSveinn í Felli <sv1@fellsnet.is>, 2023\n` }, msgstr: [`Last-Translator: Sveinn í Felli <sv1@fellsnet.is>, 2023\nLanguage-Team: Icelandic (https://app.transifex.com/nextcloud/teams/64236/is/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: is\nPlural-Forms: nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count} árekstur skráa\", \"{count} árekstrar skráa\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{count} árekstur skráa í {dirname}\", \"{count} árekstrar skráa í {dirname}\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} sekúndur eftir\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"{time} eftir\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"nokkrar sekúndur eftir\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Hætta við innsendingar\"] }, Continue: { msgid: \"Continue\", msgstr: [\"Halda áfram\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"áætla tíma sem eftir er\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"Fyrirliggjandi útgáfa\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"Ef þú velur báðar útgáfur, þá mun verða bætt tölustaf aftan við heiti afrituðu skrárinnar.\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"Síðasta breytingadagsetning er óþekkt\"] }, New: { msgid: \"New\", msgstr: [\"Nýtt\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"Ný útgáfa\"] }, paused: { msgid: \"paused\", msgstr: [\"í bið\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"Forskoðun myndar\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"Velja gátreiti\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"Velja allar fyrirliggjandi skrár\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"Velja allar nýjar skrár\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"Sleppa þessari skrá\", \"Sleppa {count} skrám\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"Óþekkt stærð\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"Hætt við innsendingu\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Senda inn skrár\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"Hvaða skrám vilt þú vilt halda eftir?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"Þú verður að velja að minnsta kosti eina útgáfu af hverri skrá til að halda áfram.\"] } } } } }, { locale: \"it\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Random_R, 2023\", \"Language-Team\": \"Italian (https://app.transifex.com/nextcloud/teams/64236/it/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"it\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nLep Lep, 2023\nRandom_R, 2023\n` }, msgstr: [`Last-Translator: Random_R, 2023\nLanguage-Team: Italian (https://app.transifex.com/nextcloud/teams/64236/it/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: it\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count} file in conflitto\", \"{count} file in conflitto\", \"{count} file in conflitto\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{count} file in conflitto in {dirname}\", \"{count} file in conflitto in {dirname}\", \"{count} file in conflitto in {dirname}\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} secondi rimanenti \"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"{time} rimanente\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"alcuni secondi rimanenti\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Annulla i caricamenti\"] }, Continue: { msgid: \"Continue\", msgstr: [\"Continua\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"calcolo il tempo rimanente\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"Versione esistente\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"Se selezioni entrambe le versioni, nel nome del file copiato verrà aggiunto un numero \"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"Ultima modifica sconosciuta\"] }, New: { msgid: \"New\", msgstr: [\"Nuovo\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"Nuova versione\"] }, paused: { msgid: \"paused\", msgstr: [\"pausa\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"Anteprima immagine\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"Seleziona tutte le caselle\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"Seleziona tutti i file esistenti\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"Seleziona tutti i nuovi file\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"Salta questo file\", \"Salta {count} file\", \"Salta {count} file\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"Dimensione sconosciuta\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"Caricamento cancellato\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Carica i file\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"Quali file vuoi mantenere?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"Devi selezionare almeno una versione di ogni file per continuare\"] } } } } }, { locale: \"it_IT\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Italian (Italy) (https://www.transifex.com/nextcloud/teams/64236/it_IT/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"it_IT\", \"Plural-Forms\": \"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Italian (Italy) (https://www.transifex.com/nextcloud/teams/64236/it_IT/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: it_IT\nPlural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"ja_JP\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"かたかめ, 2022\", \"Language-Team\": \"Japanese (Japan) (https://www.transifex.com/nextcloud/teams/64236/ja_JP/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"ja_JP\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nT.S, 2022\nかたかめ, 2022\n` }, msgstr: [`Last-Translator: かたかめ, 2022\nLanguage-Team: Japanese (Japan) (https://www.transifex.com/nextcloud/teams/64236/ja_JP/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ja_JP\nPlural-Forms: nplurals=1; plural=0;\n`] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"残り {seconds} 秒\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"time has the format 00:00:00\" }, msgstr: [\"残り {time}\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"残り数秒\"] }, Add: { msgid: \"Add\", msgstr: [\"追加\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"アップロードをキャンセル\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"概算残り時間\"] }, paused: { msgid: \"paused\", msgstr: [\"一時停止中\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"ファイルをアップデート\"] } } } } }, { locale: \"ka\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Georgian (https://www.transifex.com/nextcloud/teams/64236/ka/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"ka\", \"Plural-Forms\": \"nplurals=2; plural=(n!=1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Georgian (https://www.transifex.com/nextcloud/teams/64236/ka/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ka\nPlural-Forms: nplurals=2; plural=(n!=1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"ka_GE\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Georgian (Georgia) (https://www.transifex.com/nextcloud/teams/64236/ka_GE/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"ka_GE\", \"Plural-Forms\": \"nplurals=2; plural=(n!=1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Georgian (Georgia) (https://www.transifex.com/nextcloud/teams/64236/ka_GE/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ka_GE\nPlural-Forms: nplurals=2; plural=(n!=1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"kab\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"ZiriSut, 2023\", \"Language-Team\": \"Kabyle (https://app.transifex.com/nextcloud/teams/64236/kab/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"kab\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nZiriSut, 2023\n` }, msgstr: [`Last-Translator: ZiriSut, 2023\nLanguage-Team: Kabyle (https://app.transifex.com/nextcloud/teams/64236/kab/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: kab\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} tesdatin i d-yeqqimen\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"time has the format 00:00:00\" }, msgstr: [\"{time} i d-yeqqimen\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"qqiment-d kra n tesdatin kan\"] }, Add: { msgid: \"Add\", msgstr: [\"Rnu\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Sefsex asali\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"asizel n wakud i d-yeqqimen\"] }, paused: { msgid: \"paused\", msgstr: [\"yeḥbes\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Sali-d ifuyla\"] } } } } }, { locale: \"kk\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Kazakh (https://www.transifex.com/nextcloud/teams/64236/kk/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"kk\", \"Plural-Forms\": \"nplurals=2; plural=(n!=1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Kazakh (https://www.transifex.com/nextcloud/teams/64236/kk/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: kk\nPlural-Forms: nplurals=2; plural=(n!=1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"km\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Khmer (https://www.transifex.com/nextcloud/teams/64236/km/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"km\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Khmer (https://www.transifex.com/nextcloud/teams/64236/km/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: km\nPlural-Forms: nplurals=1; plural=0;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"kn\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Kannada (https://www.transifex.com/nextcloud/teams/64236/kn/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"kn\", \"Plural-Forms\": \"nplurals=2; plural=(n > 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Kannada (https://www.transifex.com/nextcloud/teams/64236/kn/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: kn\nPlural-Forms: nplurals=2; plural=(n > 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"ko\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Brandon Han, 2024\", \"Language-Team\": \"Korean (https://app.transifex.com/nextcloud/teams/64236/ko/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"ko\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nhosun Lee, 2023\nBrandon Han, 2024\n` }, msgstr: [`Last-Translator: Brandon Han, 2024\nLanguage-Team: Korean (https://app.transifex.com/nextcloud/teams/64236/ko/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ko\nPlural-Forms: nplurals=1; plural=0;\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count}개의 파일이 충돌함\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{dirname}에서 {count}개의 파일이 충돌함\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} 남음\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"{time} 남음\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"곧 완료\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"업로드 취소\"] }, Continue: { msgid: \"Continue\", msgstr: [\"확인\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"남은 시간 계산\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"현재 버전\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"두 버전을 모두 선택할 경우, 복제된 파일 이름에 숫자가 추가됩니다.\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"최근 수정일 알 수 없음\"] }, New: { msgid: \"New\", msgstr: [\"새로 만들기\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"새 버전\"] }, paused: { msgid: \"paused\", msgstr: [\"일시정지됨\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"미리보기 이미지\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"모든 체크박스 선택\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"모든 파일 선택\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"모든 새 파일 선택\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"{count}개의 파일 넘기기\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"크기를 알 수 없음\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"업로드 취소됨\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"파일 업로드\"] }, \"Upload progress\": { msgid: \"Upload progress\", msgstr: [\"업로드 진행도\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"어떤 파일을 보존하시겠습니까?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"계속하기 위해서는 한 파일에 최소 하나의 버전을 선택해야 합니다.\"] } } } } }, { locale: \"la\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Latin (https://www.transifex.com/nextcloud/teams/64236/la/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"la\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Latin (https://www.transifex.com/nextcloud/teams/64236/la/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: la\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"lb\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Luxembourgish (https://www.transifex.com/nextcloud/teams/64236/lb/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"lb\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Luxembourgish (https://www.transifex.com/nextcloud/teams/64236/lb/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: lb\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"lo\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Lao (https://www.transifex.com/nextcloud/teams/64236/lo/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"lo\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Lao (https://www.transifex.com/nextcloud/teams/64236/lo/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: lo\nPlural-Forms: nplurals=1; plural=0;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"lt_LT\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Lithuanian (Lithuania) (https://www.transifex.com/nextcloud/teams/64236/lt_LT/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"lt_LT\", \"Plural-Forms\": \"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Lithuanian (Lithuania) (https://www.transifex.com/nextcloud/teams/64236/lt_LT/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: lt_LT\nPlural-Forms: nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"lv\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Latvian (https://www.transifex.com/nextcloud/teams/64236/lv/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"lv\", \"Plural-Forms\": \"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Latvian (https://www.transifex.com/nextcloud/teams/64236/lv/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: lv\nPlural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"mk\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Сашко Тодоров <sasetodorov@gmail.com>, 2022\", \"Language-Team\": \"Macedonian (https://www.transifex.com/nextcloud/teams/64236/mk/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"mk\", \"Plural-Forms\": \"nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nСашко Тодоров <sasetodorov@gmail.com>, 2022\n` }, msgstr: [`Last-Translator: Сашко Тодоров <sasetodorov@gmail.com>, 2022\nLanguage-Team: Macedonian (https://www.transifex.com/nextcloud/teams/64236/mk/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: mk\nPlural-Forms: nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;\n`] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"преостануваат {seconds} секунди\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"time has the format 00:00:00\" }, msgstr: [\"преостанува {time}\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"уште неколку секунди\"] }, Add: { msgid: \"Add\", msgstr: [\"Додади\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Прекини прикачување\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"приближно преостанато време\"] }, paused: { msgid: \"paused\", msgstr: [\"паузирано\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Прикачување датотеки\"] } } } } }, { locale: \"mn\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"BATKHUYAG Ganbold, 2023\", \"Language-Team\": \"Mongolian (https://app.transifex.com/nextcloud/teams/64236/mn/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"mn\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nBATKHUYAG Ganbold, 2023\n` }, msgstr: [`Last-Translator: BATKHUYAG Ganbold, 2023\nLanguage-Team: Mongolian (https://app.transifex.com/nextcloud/teams/64236/mn/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: mn\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} секунд үлдсэн\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"time has the format 00:00:00\" }, msgstr: [\"{time} үлдсэн\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"хэдхэн секунд үлдсэн\"] }, Add: { msgid: \"Add\", msgstr: [\"Нэмэх\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Илгээлтийг цуцлах\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"Үлдсэн хугацааг тооцоолж байна\"] }, paused: { msgid: \"paused\", msgstr: [\"түр зогсоосон\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Файл илгээх\"] } } } } }, { locale: \"mr\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Marathi (https://www.transifex.com/nextcloud/teams/64236/mr/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"mr\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Marathi (https://www.transifex.com/nextcloud/teams/64236/mr/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: mr\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"ms_MY\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Malay (Malaysia) (https://www.transifex.com/nextcloud/teams/64236/ms_MY/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"ms_MY\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Malay (Malaysia) (https://www.transifex.com/nextcloud/teams/64236/ms_MY/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ms_MY\nPlural-Forms: nplurals=1; plural=0;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"my\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Burmese (https://www.transifex.com/nextcloud/teams/64236/my/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"my\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Burmese (https://www.transifex.com/nextcloud/teams/64236/my/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: my\nPlural-Forms: nplurals=1; plural=0;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"nb_NO\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Syvert Fossdal, 2024\", \"Language-Team\": \"Norwegian Bokmål (Norway) (https://app.transifex.com/nextcloud/teams/64236/nb_NO/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"nb_NO\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nSyvert Fossdal, 2024\n` }, msgstr: [`Last-Translator: Syvert Fossdal, 2024\nLanguage-Team: Norwegian Bokmål (Norway) (https://app.transifex.com/nextcloud/teams/64236/nb_NO/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: nb_NO\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count} file conflict\", \"{count} filkonflikter\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{count} file conflict in {dirname}\", \"{count} filkonflikter i {dirname}\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} sekunder igjen\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"{time} igjen\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"noen få sekunder igjen\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Avbryt opplastninger\"] }, Continue: { msgid: \"Continue\", msgstr: [\"Fortsett\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"Estimerer tid igjen\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"Gjeldende versjon\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"Hvis du velger begge versjoner, vil den kopierte filen få et tall lagt til navnet.\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"Siste gang redigert ukjent\"] }, New: { msgid: \"New\", msgstr: [\"Ny\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"Ny versjon\"] }, paused: { msgid: \"paused\", msgstr: [\"pauset\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"Forhåndsvis bilde\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"Velg alle\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"Velg alle eksisterende filer\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"Velg alle nye filer\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"Skip this file\", \"Hopp over {count} filer\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"Ukjent størrelse\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"Opplasting avbrutt\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Last opp filer\"] }, \"Upload progress\": { msgid: \"Upload progress\", msgstr: [\"Fremdrift, opplasting\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"Hvilke filer vil du beholde?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"Du må velge minst en versjon av hver fil for å fortsette.\"] } } } } }, { locale: \"ne\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Nepali (https://www.transifex.com/nextcloud/teams/64236/ne/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"ne\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Nepali (https://www.transifex.com/nextcloud/teams/64236/ne/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ne\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"nl\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Rico <rico-schwab@hotmail.com>, 2023\", \"Language-Team\": \"Dutch (https://app.transifex.com/nextcloud/teams/64236/nl/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"nl\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nRico <rico-schwab@hotmail.com>, 2023\n` }, msgstr: [`Last-Translator: Rico <rico-schwab@hotmail.com>, 2023\nLanguage-Team: Dutch (https://app.transifex.com/nextcloud/teams/64236/nl/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: nl\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"Nog {seconds} seconden\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"time has the format 00:00:00\" }, msgstr: [\"{seconds} over\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"Nog een paar seconden\"] }, Add: { msgid: \"Add\", msgstr: [\"Voeg toe\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Uploads annuleren\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"Schatting van de resterende tijd\"] }, paused: { msgid: \"paused\", msgstr: [\"Gepauzeerd\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Upload bestanden\"] } } } } }, { locale: \"nn\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Norwegian Nynorsk (https://www.transifex.com/nextcloud/teams/64236/nn/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"nn\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Norwegian Nynorsk (https://www.transifex.com/nextcloud/teams/64236/nn/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: nn\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"nn_NO\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Norwegian Nynorsk (Norway) (https://www.transifex.com/nextcloud/teams/64236/nn_NO/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"nn_NO\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Norwegian Nynorsk (Norway) (https://www.transifex.com/nextcloud/teams/64236/nn_NO/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: nn_NO\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"oc\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Occitan (post 1500) (https://www.transifex.com/nextcloud/teams/64236/oc/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"oc\", \"Plural-Forms\": \"nplurals=2; plural=(n > 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Occitan (post 1500) (https://www.transifex.com/nextcloud/teams/64236/oc/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: oc\nPlural-Forms: nplurals=2; plural=(n > 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"pl\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Valdnet, 2024\", \"Language-Team\": \"Polish (https://app.transifex.com/nextcloud/teams/64236/pl/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"pl\", \"Plural-Forms\": \"nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nM H <haincu@o2.pl>, 2023\nValdnet, 2024\n` }, msgstr: [`Last-Translator: Valdnet, 2024\nLanguage-Team: Polish (https://app.transifex.com/nextcloud/teams/64236/pl/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: pl\nPlural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"konflikt 1 pliku\", \"{count} konfliktów plików\", \"{count} konfliktów plików\", \"{count} konfliktów plików\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{count} konfliktowy plik w {dirname}\", \"{count} konfliktowych plików w {dirname}\", \"{count} konfliktowych plików w {dirname}\", \"{count} konfliktowych plików w {dirname}\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"Pozostało {seconds} sekund\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"Pozostało {time}\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"Pozostało kilka sekund\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Anuluj wysyłanie\"] }, Continue: { msgid: \"Continue\", msgstr: [\"Kontynuuj\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"Szacowanie pozostałego czasu\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"Istniejąca wersja\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"Jeżeli wybierzesz obie wersje to do nazw skopiowanych plików zostanie dodany numer\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"Nieznana data ostatniej modyfikacji\"] }, New: { msgid: \"New\", msgstr: [\"Nowy\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"Nowa wersja\"] }, paused: { msgid: \"paused\", msgstr: [\"Wstrzymane\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"Podgląd obrazu\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"Zaznacz wszystkie boxy\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"Zaznacz wszystkie istniejące pliki\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"Zaznacz wszystkie nowe pliki\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"Pomiń 1 plik\", \"Pomiń {count} plików\", \"Pomiń {count} plików\", \"Pomiń {count} plików\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"Nieznany rozmiar\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"Anulowano wysyłanie\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Wyślij pliki\"] }, \"Upload progress\": { msgid: \"Upload progress\", msgstr: [\"Postęp wysyłania\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"Które pliki chcesz zachować\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"Aby kontynuować, musisz wybrać co najmniej jedną wersję każdego pliku.\"] } } } } }, { locale: \"ps\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Pashto (https://www.transifex.com/nextcloud/teams/64236/ps/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"ps\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Pashto (https://www.transifex.com/nextcloud/teams/64236/ps/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ps\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"pt_BR\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Leonardo Colman Lopes <leonardo.dev@colman.com.br>, 2024\", \"Language-Team\": \"Portuguese (Brazil) (https://app.transifex.com/nextcloud/teams/64236/pt_BR/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"pt_BR\", \"Plural-Forms\": \"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJoas Schilling, 2024\nLeonardo Colman Lopes <leonardo.dev@colman.com.br>, 2024\n` }, msgstr: [`Last-Translator: Leonardo Colman Lopes <leonardo.dev@colman.com.br>, 2024\nLanguage-Team: Portuguese (Brazil) (https://app.transifex.com/nextcloud/teams/64236/pt_BR/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: pt_BR\nPlural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count} arquivos em conflito\", \"{count} arquivos em conflito\", \"{count} arquivos em conflito\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{count} conflitos de arquivo em {dirname}\", \"{count} conflitos de arquivo em {dirname}\", \"{count} conflitos de arquivo em {dirname}\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} segundos restantes\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"{time} restante\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"alguns segundos restantes\"] }, Cancel: { msgid: \"Cancel\", msgstr: [\"Cancelar\"] }, \"Cancel the entire operation\": { msgid: \"Cancel the entire operation\", msgstr: [\"Cancelar a operação inteira\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Cancelar uploads\"] }, Continue: { msgid: \"Continue\", msgstr: [\"Continuar\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"estimando tempo restante\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"Versão existente\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"Se você selecionar ambas as versões, o arquivo copiado terá um número adicionado ao seu nome.\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"Data da última modificação desconhecida\"] }, New: { msgid: \"New\", msgstr: [\"Novo\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"Nova versão\"] }, paused: { msgid: \"paused\", msgstr: [\"pausado\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"Visualizar imagem\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"Marque todas as caixas de seleção\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"Selecione todos os arquivos existentes\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"Selecione todos os novos arquivos\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"Ignorar {count} arquivos\", \"Ignorar {count} arquivos\", \"Ignorar {count} arquivos\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"Tamanho desconhecido\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"Envio cancelado\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Enviar arquivos\"] }, \"Upload progress\": { msgid: \"Upload progress\", msgstr: [\"Envio em progresso\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { msgid: \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", msgstr: [\"Quando uma pasta é selecionada, quaisquer arquivos dentro dela também serão sobrescritos.\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"Quais arquivos você deseja manter?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"Você precisa selecionar pelo menos uma versão de cada arquivo para continuar.\"] } } } } }, { locale: \"pt_PT\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Manuela Silva <mmsrs@sky.com>, 2022\", \"Language-Team\": \"Portuguese (Portugal) (https://www.transifex.com/nextcloud/teams/64236/pt_PT/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"pt_PT\", \"Plural-Forms\": \"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nManuela Silva <mmsrs@sky.com>, 2022\n` }, msgstr: [`Last-Translator: Manuela Silva <mmsrs@sky.com>, 2022\nLanguage-Team: Portuguese (Portugal) (https://www.transifex.com/nextcloud/teams/64236/pt_PT/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: pt_PT\nPlural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n`] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"faltam {seconds} segundo(s)\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"time has the format 00:00:00\" }, msgstr: [\"faltam {time}\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"faltam uns segundos\"] }, Add: { msgid: \"Add\", msgstr: [\"Adicionar\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Cancelar envios\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"tempo em falta estimado\"] }, paused: { msgid: \"paused\", msgstr: [\"pausado\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Enviar ficheiros\"] } } } } }, { locale: \"ro\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Mădălin Vasiliu <contact@madalinvasiliu.com>, 2022\", \"Language-Team\": \"Romanian (https://www.transifex.com/nextcloud/teams/64236/ro/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"ro\", \"Plural-Forms\": \"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nMădălin Vasiliu <contact@madalinvasiliu.com>, 2022\n` }, msgstr: [`Last-Translator: Mădălin Vasiliu <contact@madalinvasiliu.com>, 2022\nLanguage-Team: Romanian (https://www.transifex.com/nextcloud/teams/64236/ro/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ro\nPlural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n`] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} secunde rămase\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"time has the format 00:00:00\" }, msgstr: [\"{time} rămas\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"câteva secunde rămase\"] }, Add: { msgid: \"Add\", msgstr: [\"Adaugă\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Anulați încărcările\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"estimarea timpului rămas\"] }, paused: { msgid: \"paused\", msgstr: [\"pus pe pauză\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Încarcă fișiere\"] } } } } }, { locale: \"ru\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Александр, 2023\", \"Language-Team\": \"Russian (https://app.transifex.com/nextcloud/teams/64236/ru/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"ru\", \"Plural-Forms\": \"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nMax Smith <sevinfolds@gmail.com>, 2023\nАлександр, 2023\n` }, msgstr: [`Last-Translator: Александр, 2023\nLanguage-Team: Russian (https://app.transifex.com/nextcloud/teams/64236/ru/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ru\nPlural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"конфликт {count} файла\", \"конфликт {count} файлов\", \"конфликт {count} файлов\", \"конфликт {count} файлов\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"конфликт {count} файла в {dirname}\", \"конфликт {count} файлов в {dirname}\", \"конфликт {count} файлов в {dirname}\", \"конфликт {count} файлов в {dirname}\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"осталось {seconds} секунд\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"осталось {time}\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"осталось несколько секунд\"] }, Add: { msgid: \"Add\", msgstr: [\"Добавить\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Отменить загрузки\"] }, Continue: { msgid: \"Continue\", msgstr: [\"Продолжить\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"оценка оставшегося времени\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"Текущая версия\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"Если вы выберете обе версии, к имени скопированного файла будет добавлен номер.\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"Дата последнего изменения неизвестна\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"Новая версия\"] }, paused: { msgid: \"paused\", msgstr: [\"приостановлено\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"Предварительный просмотр\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"Установить все флажки\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"Выбрать все существующие файлы\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"Выбрать все новые файлы\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"Пропустить файл\", \"Пропустить {count} файла\", \"Пропустить {count} файлов\", \"Пропустить {count} файлов\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"Неизвестный размер\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"Загрузка отменена\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Загрузка файлов\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"Какие файлы вы хотите сохранить?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"Для продолжения вам нужно выбрать по крайней мере одну версию каждого файла.\"] } } } } }, { locale: \"ru_RU\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Russian (Russia) (https://www.transifex.com/nextcloud/teams/64236/ru_RU/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"ru_RU\", \"Plural-Forms\": \"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Russian (Russia) (https://www.transifex.com/nextcloud/teams/64236/ru_RU/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ru_RU\nPlural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"sc\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Sardinian (https://www.transifex.com/nextcloud/teams/64236/sc/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"sc\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Sardinian (https://www.transifex.com/nextcloud/teams/64236/sc/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sc\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"si\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Sinhala (https://www.transifex.com/nextcloud/teams/64236/si/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"si\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Sinhala (https://www.transifex.com/nextcloud/teams/64236/si/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: si\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"si_LK\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Sinhala (Sri Lanka) (https://www.transifex.com/nextcloud/teams/64236/si_LK/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"si_LK\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Sinhala (Sri Lanka) (https://www.transifex.com/nextcloud/teams/64236/si_LK/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: si_LK\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"sk_SK\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Slovak (Slovakia) (https://www.transifex.com/nextcloud/teams/64236/sk_SK/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"sk_SK\", \"Plural-Forms\": \"nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Slovak (Slovakia) (https://www.transifex.com/nextcloud/teams/64236/sk_SK/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sk_SK\nPlural-Forms: nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"sl\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Matej Urbančič <>, 2022\", \"Language-Team\": \"Slovenian (https://www.transifex.com/nextcloud/teams/64236/sl/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"sl\", \"Plural-Forms\": \"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nMatej Urbančič <>, 2022\n` }, msgstr: [`Last-Translator: Matej Urbančič <>, 2022\nLanguage-Team: Slovenian (https://www.transifex.com/nextcloud/teams/64236/sl/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sl\nPlural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n`] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"še {seconds} sekund\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"time has the format 00:00:00\" }, msgstr: [\"še {time}\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"še nekaj sekund\"] }, Add: { msgid: \"Add\", msgstr: [\"Dodaj\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Prekliči pošiljanje\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"ocenjen čas do konca\"] }, paused: { msgid: \"paused\", msgstr: [\"v premoru\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Pošlji datoteke\"] } } } } }, { locale: \"sl_SI\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Slovenian (Slovenia) (https://www.transifex.com/nextcloud/teams/64236/sl_SI/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"sl_SI\", \"Plural-Forms\": \"nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Slovenian (Slovenia) (https://www.transifex.com/nextcloud/teams/64236/sl_SI/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sl_SI\nPlural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"sq\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Albanian (https://www.transifex.com/nextcloud/teams/64236/sq/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"sq\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Albanian (https://www.transifex.com/nextcloud/teams/64236/sq/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sq\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"sr\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Иван Пешић, 2023\", \"Language-Team\": \"Serbian (https://app.transifex.com/nextcloud/teams/64236/sr/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"sr\", \"Plural-Forms\": \"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nИван Пешић, 2023\n` }, msgstr: [`Last-Translator: Иван Пешић, 2023\nLanguage-Team: Serbian (https://app.transifex.com/nextcloud/teams/64236/sr/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sr\nPlural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count} фајл конфликт\", \"{count} фајл конфликта\", \"{count} фајл конфликта\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{count} фајл конфликт у {dirname}\", \"{count} фајл конфликта у {dirname}\", \"{count} фајл конфликта у {dirname}\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"преостало је {seconds} секунди\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"{time} преостало\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"преостало је неколико секунди\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Обустави отпремања\"] }, Continue: { msgid: \"Continue\", msgstr: [\"Настави\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"процена преосталог времена\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"Постојећа верзија\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"Ако изаберете обе верзије, на име копираног фајла ће се додати број.\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"Није познат датум последње измене\"] }, New: { msgid: \"New\", msgstr: [\"Ново\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"Нова верзија\"] }, paused: { msgid: \"paused\", msgstr: [\"паузирано\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"Слика прегледа\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"Штиклирај сва поља за штиклирање\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"Изабери све постојеће фајлове\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"Изабери све нове фајлове\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"Прескочи овај фајл\", \"Прескочи {count} фајла\", \"Прескочи {count} фајлова\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"Непозната величина\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"Отпремање је отказано\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Отпреми фајлове\"] }, \"Upload progress\": { msgid: \"Upload progress\", msgstr: [\"Напредак отпремања\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"Које фајлове желите да задржите?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"Морате да изаберете барем једну верзију сваког фајла да наставите.\"] } } } } }, { locale: \"sr@latin\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Serbian (Latin) (https://www.transifex.com/nextcloud/teams/64236/sr@latin/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"sr@latin\", \"Plural-Forms\": \"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Serbian (Latin) (https://www.transifex.com/nextcloud/teams/64236/sr@latin/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sr@latin\nPlural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"sv\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Magnus Höglund, 2024\", \"Language-Team\": \"Swedish (https://app.transifex.com/nextcloud/teams/64236/sv/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"sv\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJoas Schilling, 2024\nMagnus Höglund, 2024\n` }, msgstr: [`Last-Translator: Magnus Höglund, 2024\nLanguage-Team: Swedish (https://app.transifex.com/nextcloud/teams/64236/sv/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sv\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count} filkonflikt\", \"{count} filkonflikter\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{count} filkonflikt i {dirname}\", \"{count} filkonflikter i {dirname}\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} sekunder kvarstår\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"{time} kvarstår\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"några sekunder kvar\"] }, Cancel: { msgid: \"Cancel\", msgstr: [\"Avbryt\"] }, \"Cancel the entire operation\": { msgid: \"Cancel the entire operation\", msgstr: [\"Avbryt hela operationen\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Avbryt uppladdningar\"] }, Continue: { msgid: \"Continue\", msgstr: [\"Fortsätt\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"uppskattar kvarstående tid\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"Nuvarande version\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"Om du väljer båda versionerna kommer den kopierade filen att få ett nummer tillagt i namnet.\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"Senaste ändringsdatum okänt\"] }, New: { msgid: \"New\", msgstr: [\"Ny\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"Ny version\"] }, paused: { msgid: \"paused\", msgstr: [\"pausad\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"Förhandsgranska bild\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"Markera alla kryssrutor\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"Välj alla befintliga filer\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"Välj alla nya filer\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"Hoppa över denna fil\", \"Hoppa över {count} filer\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"Okänd storlek\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"Uppladdningen avbröts\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Ladda upp filer\"] }, \"Upload progress\": { msgid: \"Upload progress\", msgstr: [\"Uppladdningsförlopp\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { msgid: \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", msgstr: [\"När en inkommande mapp väljs skrivs även alla konfliktande filer i den över.\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"Vilka filer vill du behålla?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"Du måste välja minst en version av varje fil för att fortsätta.\"] } } } } }, { locale: \"sw\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Swahili (https://www.transifex.com/nextcloud/teams/64236/sw/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"sw\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Swahili (https://www.transifex.com/nextcloud/teams/64236/sw/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: sw\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"ta\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Tamil (https://www.transifex.com/nextcloud/teams/64236/ta/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"ta\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Tamil (https://www.transifex.com/nextcloud/teams/64236/ta/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ta\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"ta_LK\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Tamil (Sri-Lanka) (https://www.transifex.com/nextcloud/teams/64236/ta_LK/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"ta_LK\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Tamil (Sri-Lanka) (https://www.transifex.com/nextcloud/teams/64236/ta_LK/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ta_LK\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"th\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Thai (https://www.transifex.com/nextcloud/teams/64236/th/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"th\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Thai (https://www.transifex.com/nextcloud/teams/64236/th/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: th\nPlural-Forms: nplurals=1; plural=0;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"th_TH\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Phongpanot Phairat <ppnplus@protonmail.com>, 2022\", \"Language-Team\": \"Thai (Thailand) (https://www.transifex.com/nextcloud/teams/64236/th_TH/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"th_TH\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nPhongpanot Phairat <ppnplus@protonmail.com>, 2022\n` }, msgstr: [`Last-Translator: Phongpanot Phairat <ppnplus@protonmail.com>, 2022\nLanguage-Team: Thai (Thailand) (https://www.transifex.com/nextcloud/teams/64236/th_TH/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: th_TH\nPlural-Forms: nplurals=1; plural=0;\n`] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"เหลืออีก {seconds} วินาที\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"time has the format 00:00:00\" }, msgstr: [\"เหลืออีก {time}\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"เหลืออีกไม่กี่วินาที\"] }, Add: { msgid: \"Add\", msgstr: [\"เพิ่ม\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"ยกเลิกการอัปโหลด\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"กำลังคำนวณเวลาที่เหลือ\"] }, paused: { msgid: \"paused\", msgstr: [\"หยุดชั่วคราว\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"อัปโหลดไฟล์\"] } } } } }, { locale: \"tk\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Turkmen (https://www.transifex.com/nextcloud/teams/64236/tk/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"tk\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Turkmen (https://www.transifex.com/nextcloud/teams/64236/tk/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: tk\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"tr\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Kaya Zeren <kayazeren@gmail.com>, 2024\", \"Language-Team\": \"Turkish (https://app.transifex.com/nextcloud/teams/64236/tr/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"tr\", \"Plural-Forms\": \"nplurals=2; plural=(n > 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJoas Schilling, 2024\nKaya Zeren <kayazeren@gmail.com>, 2024\n` }, msgstr: [`Last-Translator: Kaya Zeren <kayazeren@gmail.com>, 2024\nLanguage-Team: Turkish (https://app.transifex.com/nextcloud/teams/64236/tr/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: tr\nPlural-Forms: nplurals=2; plural=(n > 1);\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count} dosya çakışması var\", \"{count} dosya çakışması var\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{dirname} klasöründe {count} dosya çakışması var\", \"{dirname} klasöründe {count} dosya çakışması var\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"{seconds} saniye kaldı\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"{time} kaldı\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"bir kaç saniye kaldı\"] }, Cancel: { msgid: \"Cancel\", msgstr: [\"İptal\"] }, \"Cancel the entire operation\": { msgid: \"Cancel the entire operation\", msgstr: [\"Tüm işlemi iptal et\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Yüklemeleri iptal et\"] }, Continue: { msgid: \"Continue\", msgstr: [\"İlerle\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"öngörülen kalan süre\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"Var olan sürüm\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"İki sürümü de seçerseniz, kopyalanan dosyanın adına bir sayı eklenir.\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"Son değiştirilme tarihi bilinmiyor\"] }, New: { msgid: \"New\", msgstr: [\"Yeni\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"Yeni sürüm\"] }, paused: { msgid: \"paused\", msgstr: [\"duraklatıldı\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"Görsel ön izlemesi\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"Tüm kutuları işaretle\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"Tüm var olan dosyaları seç\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"Tüm yeni dosyaları seç\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"Bu dosyayı atla\", \"{count} dosyayı atla\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"Boyut bilinmiyor\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"Yükleme iptal edildi\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Dosyaları yükle\"] }, \"Upload progress\": { msgid: \"Upload progress\", msgstr: [\"Yükleme ilerlemesi\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { msgid: \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", msgstr: [\"Bir gelen klasör seçildiğinde, içindeki çakışan dosyaların da üzerine yazılır.\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"Hangi dosyaları tutmak istiyorsunuz?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"İlerlemek için her dosyanın en az bir sürümünü seçmelisiniz.\"] } } } } }, { locale: \"ug\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Uyghur (https://www.transifex.com/nextcloud/teams/64236/ug/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"ug\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Uyghur (https://www.transifex.com/nextcloud/teams/64236/ug/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ug\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"uk\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"O St <oleksiy.stasevych@gmail.com>, 2024\", \"Language-Team\": \"Ukrainian (https://app.transifex.com/nextcloud/teams/64236/uk/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"uk\", \"Plural-Forms\": \"nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJoas Schilling, 2024\nO St <oleksiy.stasevych@gmail.com>, 2024\n` }, msgstr: [`Last-Translator: O St <oleksiy.stasevych@gmail.com>, 2024\nLanguage-Team: Ukrainian (https://app.transifex.com/nextcloud/teams/64236/uk/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: uk\nPlural-Forms: nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count} конфліктний файл\", \"{count} конфліктних файли\", \"{count} конфліктних файлів\", \"{count} конфліктних файлів\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{count} конфліктний файл у каталозі {dirname}\", \"{count} конфліктних файли у каталозі {dirname}\", \"{count} конфліктних файлів у каталозі {dirname}\", \"{count} конфліктних файлів у каталозі {dirname}\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"Залишилося {seconds} секунд\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"Залишилося {time}\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"залишилося кілька секунд\"] }, Cancel: { msgid: \"Cancel\", msgstr: [\"Скасувати\"] }, \"Cancel the entire operation\": { msgid: \"Cancel the entire operation\", msgstr: [\"Скасувати операцію повністю\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Скасувати завантаження\"] }, Continue: { msgid: \"Continue\", msgstr: [\"Продовжити\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"оцінка часу, що залишився\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"Присутня версія\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"Якщо ви виберете обидві версії, то буде створено копію файлу, до назви якої буде додано цифру.\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"Дата останньої зміни невідома\"] }, New: { msgid: \"New\", msgstr: [\"Нове\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"Нова версія\"] }, paused: { msgid: \"paused\", msgstr: [\"призупинено\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"Попередній перегляд\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"Вибрати все\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"Вибрати усі присутні файли\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"Вибрати усі нові файли\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"Пропустити файл\", \"Пропустити {count} файли\", \"Пропустити {count} файлів\", \"Пропустити {count} файлів\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"Невідомий розмір\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"Завантаження скасовано\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Завантажити файли\"] }, \"Upload progress\": { msgid: \"Upload progress\", msgstr: [\"Поступ завантаження\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { msgid: \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", msgstr: [\"Усі конфліктні файли у вибраному каталозі призначення буде перезаписано поверх.\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"Які файли залишити?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"Для продовження потрібно вибрати принаймні одну версію для кожного файлу.\"] } } } } }, { locale: \"ur_PK\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Urdu (Pakistan) (https://www.transifex.com/nextcloud/teams/64236/ur_PK/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"ur_PK\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Urdu (Pakistan) (https://www.transifex.com/nextcloud/teams/64236/ur_PK/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: ur_PK\nPlural-Forms: nplurals=2; plural=(n != 1);\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"uz\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Uzbek (https://www.transifex.com/nextcloud/teams/64236/uz/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"uz\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nTransifex Bot <>, 2022\n` }, msgstr: [`Last-Translator: Transifex Bot <>, 2022\nLanguage-Team: Uzbek (https://www.transifex.com/nextcloud/teams/64236/uz/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: uz\nPlural-Forms: nplurals=1; plural=0;\n`] }, \"{estimate} seconds left\": { msgid: \"{estimate} seconds left\", msgstr: [\"\"] }, \"{hours} hours and {minutes} minutes left\": { msgid: \"{hours} hours and {minutes} minutes left\", msgstr: [\"\"] }, \"{minutes} minutes left\": { msgid: \"{minutes} minutes left\", msgstr: [\"\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"\"] }, Add: { msgid: \"Add\", msgstr: [\"\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"\"] }, paused: { msgid: \"paused\", msgstr: [\"\"] } } } } }, { locale: \"vi\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Tung DangQuang, 2023\", \"Language-Team\": \"Vietnamese (https://app.transifex.com/nextcloud/teams/64236/vi/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"vi\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nTung DangQuang, 2023\n` }, msgstr: [`Last-Translator: Tung DangQuang, 2023\nLanguage-Team: Vietnamese (https://app.transifex.com/nextcloud/teams/64236/vi/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: vi\nPlural-Forms: nplurals=1; plural=0;\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count} Tập tin xung đột\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{count} tập tin lỗi trong {dirname}\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"Còn {second} giây\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"Còn lại {time}\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"Còn lại một vài giây\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"Huỷ tải lên\"] }, Continue: { msgid: \"Continue\", msgstr: [\"Tiếp Tục\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"Thời gian còn lại dự kiến\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"Phiên Bản Hiện Tại\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"Nếu bạn chọn cả hai phiên bản, tệp được sao chép sẽ có thêm một số vào tên của nó.\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"Ngày sửa dổi lần cuối không xác định\"] }, New: { msgid: \"New\", msgstr: [\"Tạo Mới\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"Phiên Bản Mới\"] }, paused: { msgid: \"paused\", msgstr: [\"đã tạm dừng\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"Xem Trước Ảnh\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"Chọn tất cả hộp checkbox\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"Chọn tất cả các tập tin có sẵn\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"Chọn tất cả các tập tin mới\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"Bỏ Qua {count} tập tin\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"Không rõ dung lượng\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"Dừng Tải Lên\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"Tập tin tải lên\"] }, \"Upload progress\": { msgid: \"Upload progress\", msgstr: [\"Đang Tải Lên\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"Bạn muốn giữ tập tin nào?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"Bạn cần chọn ít nhất một phiên bản tập tin mới có thể tiếp tục\"] } } } } }, { locale: \"zh_CN\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Hongbo Chen, 2023\", \"Language-Team\": \"Chinese (China) (https://app.transifex.com/nextcloud/teams/64236/zh_CN/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"zh_CN\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nHongbo Chen, 2023\n` }, msgstr: [`Last-Translator: Hongbo Chen, 2023\nLanguage-Team: Chinese (China) (https://app.transifex.com/nextcloud/teams/64236/zh_CN/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: zh_CN\nPlural-Forms: nplurals=1; plural=0;\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count}文件冲突\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"在{dirname}目录下有{count}个文件冲突\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"剩余 {seconds} 秒\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"剩余 {time}\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"还剩几秒\"] }, Add: { msgid: \"Add\", msgstr: [\"添加\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"取消上传\"] }, Continue: { msgid: \"Continue\", msgstr: [\"继续\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"估计剩余时间\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"版本已存在\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"如果选择所有的版本,新增版本的文件名为原文件名加数字\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"文件最后修改日期未知\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"新版本\"] }, paused: { msgid: \"paused\", msgstr: [\"已暂停\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"图片预览\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"选择所有的选择框\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"选择所有存在的文件\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"选择所有的新文件\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"跳过{count}个文件\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"文件大小未知\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"取消上传\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"上传文件\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"你要保留哪些文件?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"每个文件至少选择一个版本\"] } } } } }, { locale: \"zh_HK\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"Café Tango, 2023\", \"Language-Team\": \"Chinese (Hong Kong) (https://app.transifex.com/nextcloud/teams/64236/zh_HK/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"zh_HK\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJohn Molakvoæ <skjnldsv@protonmail.com>, 2023\nCafé Tango, 2023\n` }, msgstr: [`Last-Translator: Café Tango, 2023\nLanguage-Team: Chinese (Hong Kong) (https://app.transifex.com/nextcloud/teams/64236/zh_HK/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: zh_HK\nPlural-Forms: nplurals=1; plural=0;\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count} 個檔案衝突\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{dirname} 中有 {count} 個檔案衝突\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"剩餘 {seconds} 秒\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"剩餘 {time}\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"還剩幾秒\"] }, Add: { msgid: \"Add\", msgstr: [\"添加\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"取消上傳\"] }, Continue: { msgid: \"Continue\", msgstr: [\"繼續\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"估計剩餘時間\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"既有版本\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"若您選取兩個版本,複製的檔案的名稱將會新增編號。\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"最後修改日期不詳\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"新版本 \"] }, paused: { msgid: \"paused\", msgstr: [\"已暫停\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"預覽圖片\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"選取所有核取方塊\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"選取所有既有檔案\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"選取所有新檔案\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"略過 {count} 個檔案\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"大小不詳\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"已取消上傳\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"上傳檔案\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"您想保留哪些檔案?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"您必須為每個檔案都至少選取一個版本以繼續。\"] } } } } }, { locale: \"zh_TW\", json: { charset: \"utf-8\", headers: { \"Last-Translator\": \"黃柏諺 <s8321414@gmail.com>, 2024\", \"Language-Team\": \"Chinese (Taiwan) (https://app.transifex.com/nextcloud/teams/64236/zh_TW/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", Language: \"zh_TW\", \"Plural-Forms\": \"nplurals=1; plural=0;\" }, translations: { \"\": { \"\": { msgid: \"\", comments: { translator: `\nTranslators:\nJoas Schilling, 2024\n黃柏諺 <s8321414@gmail.com>, 2024\n` }, msgstr: [`Last-Translator: 黃柏諺 <s8321414@gmail.com>, 2024\nLanguage-Team: Chinese (Taiwan) (https://app.transifex.com/nextcloud/teams/64236/zh_TW/)\nContent-Type: text/plain; charset=UTF-8\nLanguage: zh_TW\nPlural-Forms: nplurals=1; plural=0;\n`] }, \"{count} file conflict\": { msgid: \"{count} file conflict\", msgid_plural: \"{count} files conflict\", msgstr: [\"{count} 個檔案衝突\"] }, \"{count} file conflict in {dirname}\": { msgid: \"{count} file conflict in {dirname}\", msgid_plural: \"{count} file conflicts in {dirname}\", msgstr: [\"{dirname} 中有 {count} 個檔案衝突\"] }, \"{seconds} seconds left\": { msgid: \"{seconds} seconds left\", msgstr: [\"剩餘 {seconds} 秒\"] }, \"{time} left\": { msgid: \"{time} left\", comments: { extracted: \"TRANSLATORS time has the format 00:00:00\" }, msgstr: [\"剩餘 {time}\"] }, \"a few seconds left\": { msgid: \"a few seconds left\", msgstr: [\"還剩幾秒\"] }, Cancel: { msgid: \"Cancel\", msgstr: [\"取消\"] }, \"Cancel the entire operation\": { msgid: \"Cancel the entire operation\", msgstr: [\"取消整個操作\"] }, \"Cancel uploads\": { msgid: \"Cancel uploads\", msgstr: [\"取消上傳\"] }, Continue: { msgid: \"Continue\", msgstr: [\"繼續\"] }, \"estimating time left\": { msgid: \"estimating time left\", msgstr: [\"估計剩餘時間\"] }, \"Existing version\": { msgid: \"Existing version\", msgstr: [\"既有版本\"] }, \"If you select both versions, the copied file will have a number added to its name.\": { msgid: \"If you select both versions, the copied file will have a number added to its name.\", msgstr: [\"若您選取兩個版本,複製的檔案的名稱將會新增編號。\"] }, \"Last modified date unknown\": { msgid: \"Last modified date unknown\", msgstr: [\"最後修改日期未知\"] }, New: { msgid: \"New\", msgstr: [\"新增\"] }, \"New version\": { msgid: \"New version\", msgstr: [\"新版本\"] }, paused: { msgid: \"paused\", msgstr: [\"已暫停\"] }, \"Preview image\": { msgid: \"Preview image\", msgstr: [\"預覽圖片\"] }, \"Select all checkboxes\": { msgid: \"Select all checkboxes\", msgstr: [\"選取所有核取方塊\"] }, \"Select all existing files\": { msgid: \"Select all existing files\", msgstr: [\"選取所有既有檔案\"] }, \"Select all new files\": { msgid: \"Select all new files\", msgstr: [\"選取所有新檔案\"] }, \"Skip this file\": { msgid: \"Skip this file\", msgid_plural: \"Skip {count} files\", msgstr: [\"略過 {count} 檔案\"] }, \"Unknown size\": { msgid: \"Unknown size\", msgstr: [\"未知大小\"] }, \"Upload cancelled\": { msgid: \"Upload cancelled\", msgstr: [\"已取消上傳\"] }, \"Upload files\": { msgid: \"Upload files\", msgstr: [\"上傳檔案\"] }, \"Upload progress\": { msgid: \"Upload progress\", msgstr: [\"上傳進度\"] }, \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\": { msgid: \"When an incoming folder is selected, any conflicting files within it will also be overwritten.\", msgstr: [\"選取傳入資料夾後,其中任何的衝突檔案都會被覆寫。\"] }, \"Which files do you want to keep?\": { msgid: \"Which files do you want to keep?\", msgstr: [\"您想保留哪些檔案?\"] }, \"You need to select at least one version of each file to continue.\": { msgid: \"You need to select at least one version of each file to continue.\", msgstr: [\"您必須為每個檔案都至少選取一個版本以繼續。\"] } } } } }].map((e) => R.addTranslation(e.locale, e.json));\nconst C = R.build(), Gs = C.ngettext.bind(C), u = C.gettext.bind(C), Ls = E.extend({\n name: \"UploadPicker\",\n components: {\n Cancel: ms,\n NcActionButton: J,\n NcActions: Q,\n NcButton: Z,\n NcIconSvgWrapper: X,\n NcProgressBar: ss,\n Plus: fs,\n Upload: xs\n },\n props: {\n accept: {\n type: Array,\n default: null\n },\n disabled: {\n type: Boolean,\n default: !1\n },\n multiple: {\n type: Boolean,\n default: !1\n },\n destination: {\n type: z,\n default: void 0\n },\n /**\n * List of file present in the destination folder\n */\n content: {\n type: Array,\n default: () => []\n },\n forbiddenCharacters: {\n type: Array,\n default: () => []\n }\n },\n data() {\n return {\n addLabel: u(\"New\"),\n cancelLabel: u(\"Cancel uploads\"),\n uploadLabel: u(\"Upload files\"),\n progressLabel: u(\"Upload progress\"),\n progressTimeId: `nc-uploader-progress-${Math.random().toString(36).slice(7)}`,\n eta: null,\n timeLeft: \"\",\n newFileMenuEntries: [],\n uploadManager: M()\n };\n },\n computed: {\n totalQueueSize() {\n return this.uploadManager.info?.size || 0;\n },\n uploadedQueueSize() {\n return this.uploadManager.info?.progress || 0;\n },\n progress() {\n return Math.round(this.uploadedQueueSize / this.totalQueueSize * 100) || 0;\n },\n queue() {\n return this.uploadManager.queue;\n },\n hasFailure() {\n return this.queue?.filter((e) => e.status === c.FAILED).length !== 0;\n },\n isUploading() {\n return this.queue?.length > 0;\n },\n isAssembling() {\n return this.queue?.filter((e) => e.status === c.ASSEMBLING).length !== 0;\n },\n isPaused() {\n return this.uploadManager.info?.status === I.PAUSED;\n },\n // Hide the button text if we're uploading\n buttonName() {\n if (!this.isUploading)\n return this.addLabel;\n }\n },\n watch: {\n destination(e) {\n this.setDestination(e);\n },\n totalQueueSize(e) {\n this.eta = K({ min: 0, max: e }), this.updateStatus();\n },\n uploadedQueueSize(e) {\n this.eta?.report?.(e), this.updateStatus();\n },\n isPaused(e) {\n e ? this.$emit(\"paused\", this.queue) : this.$emit(\"resumed\", this.queue);\n }\n },\n beforeMount() {\n this.destination && this.setDestination(this.destination), this.uploadManager.addNotifier(this.onUploadCompletion), g.debug(\"UploadPicker initialised\");\n },\n methods: {\n /**\n * Trigger file picker\n */\n onClick() {\n this.$refs.input.click();\n },\n /**\n * Start uploading\n */\n async onPick() {\n let e = [...this.$refs.input.files];\n if (Us(e, this.content)) {\n const s = e.filter((n) => this.content.find((i) => i.basename === n.name)).filter(Boolean), t = e.filter((n) => !s.includes(n));\n try {\n const { selected: n, renamed: i } = await ys(this.destination.basename, s, this.content);\n e = [...t, ...n, ...i];\n } catch {\n P(u(\"Upload cancelled\"));\n return;\n }\n }\n e.forEach((s) => {\n const n = (this.forbiddenCharacters || []).find((i) => s.name.includes(i));\n n ? P(u(`\"${n}\" is not allowed inside a file name.`)) : this.uploadManager.upload(s.name, s).catch(() => {\n });\n }), this.$refs.form.reset();\n },\n /**\n * Cancel ongoing queue\n */\n onCancel() {\n this.uploadManager.queue.forEach((e) => {\n e.cancel();\n }), this.$refs.form.reset();\n },\n updateStatus() {\n if (this.isPaused) {\n this.timeLeft = u(\"paused\");\n return;\n }\n const e = Math.round(this.eta.estimate());\n if (e === 1 / 0) {\n this.timeLeft = u(\"estimating time left\");\n return;\n }\n if (e < 10) {\n this.timeLeft = u(\"a few seconds left\");\n return;\n }\n if (e > 60) {\n const s = /* @__PURE__ */ new Date(0);\n s.setSeconds(e);\n const t = s.toISOString().slice(11, 19);\n this.timeLeft = u(\"{time} left\", { time: t });\n return;\n }\n this.timeLeft = u(\"{seconds} seconds left\", { seconds: e });\n },\n setDestination(e) {\n if (!this.destination) {\n g.debug(\"Invalid destination\");\n return;\n }\n this.uploadManager.destination = e, this.newFileMenuEntries = G(e);\n },\n onUploadCompletion(e) {\n e.status === c.FAILED ? this.$emit(\"failed\", e) : this.$emit(\"uploaded\", e);\n }\n }\n});\nvar ks = function() {\n var s = this, t = s._self._c;\n return s._self._setupProxy, s.destination ? t(\"form\", { ref: \"form\", staticClass: \"upload-picker\", class: { \"upload-picker--uploading\": s.isUploading, \"upload-picker--paused\": s.isPaused }, attrs: { \"data-cy-upload-picker\": \"\" } }, [s.newFileMenuEntries && s.newFileMenuEntries.length === 0 ? t(\"NcButton\", { attrs: { disabled: s.disabled, \"data-cy-upload-picker-add\": \"\", type: \"secondary\" }, on: { click: s.onClick }, scopedSlots: s._u([{ key: \"icon\", fn: function() {\n return [t(\"Plus\", { attrs: { title: \"\", size: 20, decorative: \"\" } })];\n }, proxy: !0 }], null, !1, 2954875042) }, [s._v(\" \" + s._s(s.buttonName) + \" \")]) : t(\"NcActions\", { attrs: { \"menu-name\": s.buttonName, \"menu-title\": s.addLabel, type: \"secondary\" }, scopedSlots: s._u([{ key: \"icon\", fn: function() {\n return [t(\"Plus\", { attrs: { title: \"\", size: 20, decorative: \"\" } })];\n }, proxy: !0 }], null, !1, 2954875042) }, [t(\"NcActionButton\", { attrs: { \"data-cy-upload-picker-add\": \"\", \"close-after-click\": !0 }, on: { click: s.onClick }, scopedSlots: s._u([{ key: \"icon\", fn: function() {\n return [t(\"Upload\", { attrs: { title: \"\", size: 20, decorative: \"\" } })];\n }, proxy: !0 }], null, !1, 3606034491) }, [s._v(\" \" + s._s(s.uploadLabel) + \" \")]), s._l(s.newFileMenuEntries, function(n) {\n return t(\"NcActionButton\", { key: n.id, staticClass: \"upload-picker__menu-entry\", attrs: { icon: n.iconClass, \"close-after-click\": !0 }, on: { click: function(i) {\n return n.handler(s.destination, s.content);\n } }, scopedSlots: s._u([n.iconSvgInline ? { key: \"icon\", fn: function() {\n return [t(\"NcIconSvgWrapper\", { attrs: { svg: n.iconSvgInline } })];\n }, proxy: !0 } : null], null, !0) }, [s._v(\" \" + s._s(n.displayName) + \" \")]);\n })], 2), t(\"div\", { directives: [{ name: \"show\", rawName: \"v-show\", value: s.isUploading, expression: \"isUploading\" }], staticClass: \"upload-picker__progress\" }, [t(\"NcProgressBar\", { attrs: { \"aria-label\": s.progressLabel, \"aria-describedby\": s.progressTimeId, error: s.hasFailure, value: s.progress, size: \"medium\" } }), t(\"p\", { attrs: { id: s.progressTimeId } }, [s._v(\" \" + s._s(s.timeLeft) + \" \")])], 1), s.isUploading ? t(\"NcButton\", { staticClass: \"upload-picker__cancel\", attrs: { type: \"tertiary\", \"aria-label\": s.cancelLabel, \"data-cy-upload-picker-cancel\": \"\" }, on: { click: s.onCancel }, scopedSlots: s._u([{ key: \"icon\", fn: function() {\n return [t(\"Cancel\", { attrs: { title: \"\", size: 20 } })];\n }, proxy: !0 }], null, !1, 4076886712) }) : s._e(), t(\"input\", { directives: [{ name: \"show\", rawName: \"v-show\", value: !1, expression: \"false\" }], ref: \"input\", attrs: { type: \"file\", accept: s.accept?.join?.(\", \"), multiple: s.multiple, \"data-cy-upload-picker-input\": \"\" }, on: { change: s.onPick } })], 1) : s._e();\n}, vs = [], Cs = /* @__PURE__ */ y(\n Ls,\n ks,\n vs,\n !1,\n null,\n \"eca9500a\",\n null,\n null\n);\nconst Ys = Cs.exports;\nlet k = null;\nfunction M() {\n const e = document.querySelector('input[name=\"isPublic\"][value=\"1\"]') !== null;\n return k instanceof N || (k = new N(e)), k;\n}\nfunction Vs(e, s) {\n const t = M();\n return t.upload(e, s), t;\n}\nasync function ys(e, s, t) {\n const n = $(() => import(\"./ConflictPicker-Bif6rCp6.mjs\"));\n return new Promise((i, o) => {\n const l = new E({\n name: \"ConflictPickerRoot\",\n render: (f) => f(n, {\n props: {\n dirname: e,\n conflicts: s,\n content: t\n },\n on: {\n submit(r) {\n i(r), l.$destroy(), l.$el?.parentNode?.removeChild(l.$el);\n },\n cancel(r) {\n o(r ?? new Error(\"Canceled\")), l.$destroy(), l.$el?.parentNode?.removeChild(l.$el);\n }\n }\n })\n });\n l.$mount(), document.body.appendChild(l.$el);\n });\n}\nfunction Us(e, s) {\n const t = s.map((i) => i.basename);\n return e.filter((i) => {\n const o = i instanceof File ? i.name : i.basename;\n return t.indexOf(o) !== -1;\n }).length > 0;\n}\nexport {\n I as S,\n Ys as U,\n Gs as a,\n ns as b,\n c,\n M as g,\n Us as h,\n g as l,\n y as n,\n ys as o,\n u as t,\n Vs as u\n};\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \"-\" + chunkId + \".js?v=\" + {\"1110\":\"e20948a2fd7d006e5209\",\"5455\":\"1a13ae0091b6c35ef72a\",\"6075\":\"b0265ee919d9196a6424\",\"8377\":\"3b24ceefdd2b4baec931\"}[chunkId] + \"\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 1171;","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t1171: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [4208], () => (__webpack_require__(74132)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","Object","defineProperty","exports","value","ConsoleLogger","buildConsoleLogger","context","_contracts","_typeof","o","Symbol","iterator","constructor","prototype","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","_toPropertyKey","key","arg","input","hint","prim","toPrimitive","undefined","res","call","TypeError","String","_toPrimitive","obj","instance","Constructor","_classCallCheck","this","protoProps","message","level","msg","LogLevel","toUpperCase","app","concat","name","Debug","stack","_this$context","_this$context2","error","console","debug","formatMessage","Info","info","Warn","warn","Error","Fatal","log","assign","LoggerBuilder","_auth","_defineProperty","factory","appId","uid","user","getCurrentUser","self","onLoaded","_window$_oc_config$lo","_window$_oc_config","document","readyState","window","_oc_config","loglevel","_oc_debug","removeEventListener","addEventListener","detectLogLevel","_LoggerBuilder","_ConsoleLogger","has","hasOwnProperty","prefix","Events","EE","fn","once","addListener","emitter","event","listener","evt","_events","push","_eventsCount","clearEvent","EventEmitter","create","__proto__","eventNames","events","names","slice","getOwnPropertySymbols","listeners","handlers","l","ee","Array","listenerCount","emit","a1","a2","a3","a4","a5","args","len","arguments","removeListener","apply","j","on","removeAllListeners","off","prefixed","module","getLoggerBuilder","setApp","detectUser","build","canUnshareOnly","nodes","every","node","attributes","canDisconnectOnly","displayName","view","id","t","hasSharedItems","some","hasDeleteItems","isMixedUnshareAndDelete","type","FileType","File","isAllFiles","Folder","isAllFolders","queue","PQueue","concurrency","action","FileAction","iconSvgInline","enabled","map","permissions","permission","Permission","DELETE","exec","dir","axios","delete","encodedSource","logger","source","execBatch","Promise","resolve","OC","dialogs","confirmDestructive","count","YES_NO_BUTTONS","confirm","confirmClasses","cancel","decision","showInfo","all","promises","add","async","result","order","triggerDownload","url","hiddenElement","createElement","download","href","click","downloadNodes","secret","Math","random","toString","substring","generateUrl","files","JSON","stringify","basename","isDownloadable","READ","_node$attributes$shar","_shareAttributes$find","shareAttributes","parse","downloadAttribute","find","attribute","scope","_node$root","root","startsWith","fill","UPDATE","path","link","generateOcsUrl","_getCurrentUser","post","location","host","encodePath","data","ocs","token","showError","openLocalClient","shouldFavorite","favorite","favoriteNode","willFavorite","tags","TAG_FAVORITE","dirname","Vue","StarSvg","_node$root$startsWith","NONE","MoveCopyAction","canMove","reduce","min","ALL","canCopy","_node$attributes","canDownload","client","davGetClient","resultToNode","davResultToNode","getContents","controller","AbortController","propfindPayload","davGetDefaultPropfind","davRootPath","CancelablePromise","reject","onCancel","abort","contentsResponse","getDirectoryContents","details","includeSelf","signal","contents","filename","folder","filter","Boolean","getUniqueName","otherNames","opts","suffix","n","ignoreFileExtension","newName","includes","ext","extname","base","getActionForNodes","MOVE_OR_COPY","MOVE","COPY","handleCopyMoveNodeTo","destination","method","overwrite","NodeStatus","LOADING","copySuffix","index","currentPath","join","destinationPath","otherNodes","copyFile","stat","hasConflict","selected","renamed","openConflictPicker","deleteFile","moveFile","isAxiosError","_error$response","_error$response2","_error$response3","response","status","openFilePickerForAction","fileIDs","fileid","filePicker","getFilePickerBuilder","allowDirectories","setFilter","setMimeTypeFilter","setMultiSelect","startAt","setButtonFactory","selection","buttons","dirnames","paths","label","escape","sanitize","icon","CopyIconSvg","callback","FolderMoveSvg","pick","catch","FilePickerClosed","e","FolderSvg","isDavRessource","OCP","Files","Router","goToRoute","default","DefaultType","HIDDEN","openfile","InformationSvg","_window","_ref","_nodes$0$root","OCA","Sidebar","open","query","defineComponent","components","NcButton","NcDialog","NcTextField","defaultName","emits","close","localDefaultName","computed","errorMessage","isUniqueName","uniqueName","watch","$nextTick","focusInput","mounted","methods","_this$$refs$input","_this$$refs$input$foc","$refs","focus","onCreate","$emit","onClose","state","_vm","_c","_self","_setupProxy","attrs","scopedSlots","_u","_v","_s","proxy","$event","preventDefault","ref","newNodeName","folderContent","labels","contentNames","spawnDialog","NewNodeDialog","folderName","entry","CREATE","handler","content","_getCurrentUser2","_context$attributes","_context$attributes2","_context$attributes3","encodeURIComponent","headers","Overwrite","parseInt","createNewFolder","mtime","Date","owner","showSuccess","templatesPath","loadState","directory","templatePath","copySystemTemplates","templates_path","initTemplatesFolder","removeNewFileMenuEntry","TemplatePickerVue","defineAsyncComponent","TemplatePicker","getTemplatePicker","mountingPoint","body","appendChild","render","h","parent","picker","el","filesContents","promise","getFavoriteNodes","then","davRemoteURL","generateFavoriteFolderView","View","generateIdFromPath","params","columns","str","hash","charCodeAt","hashCode","userConfig","show_hidden","crop_image_previews","sort_favorites_first","sort_folders_first","grid_view","pinia","createPinia","lastTwoWeeksTimestamp","round","now","currentUserId","isPersonalFile","mountType","registerFileAction","deleteAction","downloadAction","editLocallyAction","favoriteAction","moveOrCopyAction","openFolderAction","openInFilesAction","renameAction","sidebarAction","viewInFolderAction","addNewFileMenuEntry","newFolderEntry","newTemplatesFolder","forEach","provider","iconClass","templatePicker","extension","favoriteFolders","favoriteFoldersViews","Navigation","getNavigation","register","caption","emptyTitle","emptyCaption","subscribe","addToFavorites","_node$root2","removePathFromFavorites","updateAndSortViews","sort","a","b","localeCompare","getLanguage","ignorePunctuation","newFavoriteFolder","findIndex","splice","remove","registerFavoritesView","defaultSortKey","store","userConfigStore","defineStore","actions","onUpdate","update","put","_initialized","useUserConfigStore","filterHidden","split","search","davGetRecentSearch","results","getFiles","navigator","noRewrite","registration","serviceWorker","registerDavProperty","nc","___CSS_LOADER_EXPORT___","def","x","d","options","RC","max","autostart","ignoreSameProgress","rate","lastTimestamp","lastProgress","historyTimeConstant","previousOutput","dt","start","report","progress","timestamp","deltaTimestamp","currentRate","reset","estimate","Infinity","estimatedTime","classof","toIndexedObject","$getOwnPropertyNames","arraySlice","windowNames","getOwnPropertyNames","f","it","getWindowNames","global","setUid","NewFileMenu","_entries","registerEntry","validateEntry","category","unregisterEntry","entryIndex","getEntryIndex","entries","getEntries","getNewFileMenu","_nc_newfilemenu","DefaultType2","_action","validateAction","title","inline","renderInline","values","_nc_fileactions","Permission2","defaultDavProperties","defaultDavNamespaces","oc","prop","namespace","_nc_dav_properties","_nc_dav_namespaces","namespaces","getDavProperties","getDavNameSpaces","keys","ns","lastModified","FileType2","davService","match","validateData","URL","crtime","mime","size","service","NodeStatus2","Node","_data","_attributes","_knownDavService","readonlyAttributes","getOwnPropertyDescriptors","get","set","Reflect","deleteProperty","receiver","Proxy","replace","origin","pop","firstMatch","indexOf","pathname","updateMtime","move","rename","basename2","super","remoteURL","setHeaders","requesttoken","patch","headers2","fetch","davClient","davRoot","filesRoot","userId","isPublic","querySelector","permString","SHARE","davParsePermissions","nodeData","lastmod","Number","getcontentlength","hasPreview","blacklist_files_regex","RegExp","humanList","humanListBinary","formatFileSize","skipSmallSizes","binaryPrefixes","base1000","floor","readableFormat","relativeSize","pow","toFixed","parseFloat","toLocaleString","_views","_currentView","views","setActive","active","_nc_navigation","Column","_column","column","isValidColumn","summary","validator$2","util$3","nameStartChar","nameRegexp","regexName","isExist","v","isEmptyObject","merge","arrayMode","getValue","isName","string","getAllMatches","regex","matches","allmatches","startIndex","lastIndex","util$2","defaultOptions$2","allowBooleanAttributes","unpairedTags","isWhiteSpace","char","readPI","xmlData","tagname","substr","getErrorObject","getLineNumberForPosition","readCommentAndCDATA","angleBracketsCount","validate","tagFound","reachedRoot","err","tagStartPos","closingTag","tagName","trim","readAttributeStr","attrStr","attrStrStart","isValid","validateAttributeString","code","line","tagClosed","otg","openPos","col","afterAmp","validateAmpersand","doubleQuote","singleQuote","startChar","validAttrStrRegxp","attrNames","getPositionFromMatch","attrName","validateAttrName","re","validateNumberAmpersand","lineNumber","lines","OptionsBuilder","defaultOptions$1","preserveOrder","attributeNamePrefix","attributesGroupName","textNodeName","ignoreAttributes","removeNSPrefix","parseTagValue","parseAttributeValue","trimValues","cdataPropName","numberParseOptions","hex","leadingZeros","eNotation","tagValueProcessor","val2","attributeValueProcessor","stopNodes","alwaysCreateTextNode","isArray","commentPropName","processEntities","htmlEntities","ignoreDeclaration","ignorePiTags","transformTagName","transformAttributeName","updateTag","jPath","buildOptions","defaultOptions","util$1","readEntityExp","entityName2","isComment","isEntity","isElement","isAttlist","isNotation","validateEntityName","hexRegex","numRegex","consider","decimalPoint","util","xmlNode","child","addChild","readDocType","entities","hasBody","comment","exp","entityName","val","regx","toNumber","trimmedStr","skipLike","test","sign","numTrimmedByZeros","numStr","num","addExternalEntities","externalEntities","entKeys","ent","lastEntities","parseTextData","dontTrim","hasAttributes","isLeafNode","escapeEntities","replaceEntitiesValue","newval","parseValue","resolveNameSpace","charAt","attrsRegx","buildAttributesMap","oldVal","aName","newVal","attrCollection","parseXml","xmlObj","currentNode","textData","closeIndex","findClosingIndex","colonIndex","saveTextToParentTag","lastTagName","lastIndexOf","propIndex","tagsNodeStack","tagData","readTagExp","childNode","tagExp","attrExpPresent","endIndex","docTypeEntities","rawTagName","lastTag","isItStopNode","tagContent","result2","readStopNodeData","replaceEntitiesValue$1","entity","ampEntity","currentTagName","allNodesExp","stopNodePath","stopNodeExp","errMsg","closingIndex","closingChar","attrBoundary","ch","tagExpWithClosingIndex","separatorIndex","trimStart","openTagCount","shouldParse","node2json","compress","arr","text","compressedObj","tagObj","property","propName$1","newJpath","isLeaf","isLeafTag","assignAttributes","attrMap","jpath","atrrName","propCount","prettify","OrderedObjParser2","_","fromCharCode","validator$1","arrToStr","indentation","xmlStr","isPreviousElementTag","propName","newJPath","tagText","isStopNode","attStr2","attr_to_str","tempInd","piTextNodeName","newIdentation","indentBy","tagStart","tagValue","suppressUnpairedNode","suppressEmptyNode","endsWith","attr","attrVal","suppressBooleanAttributes","textValue","buildFromOrderedJs","jArray","format","oneListGroup","Builder","isAttribute","attrPrefixLen","processTextOrObjNode","indentate","tagEndChar","newLine","object","j2x","buildTextValNode","buildObjectNode","repeat","jObj","arrayNodeName","buildAttrPairStr","arrLen","listTagVal","item","Ks","L","closeTag","tagEndExp","piClosingChar","fxp","XMLParser","validationOption","orderedObjParser","orderedResult","addEntity","XMLValidator","XMLBuilder","_view","isValidView","emptyView","sticky","expanded","jsonObject","parser","toLowerCase","isSvg","getNewFileMenuEntries","numeric","sensitivity","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","CancelError","reason","isCanceled","promiseState","freeze","pending","canceled","resolved","rejected","PCancelable","userFunction","arguments_","executor","description","defineProperties","shouldReject","boolean","onFulfilled","onRejected","onFinally","finally","setPrototypeOf","TimeoutError","AbortError","getDOMException","globalThis","DOMException","getAbortedReason","PriorityQueue","enqueue","run","element","priority","array","comparator","first","step","trunc","lowerBound","dequeue","shift","timeout","carryoverConcurrencyCount","intervalCap","POSITIVE_INFINITY","interval","autoStart","queueClass","isFinite","throwOnTimeout","delay","setTimeout","clearInterval","canInitializeInterval","job","setInterval","newConcurrency","_resolve","function_","throwIfAborted","operation","milliseconds","fallback","customTimers","clearTimeout","timer","cancelablePromise","aborted","timeoutError","clear","pTimeout","race","addAll","functions","pause","onEmpty","onSizeLessThan","limit","onIdle","sizeBy","isPaused","A","s","Blob","Destination","request","onUploadProgress","B","appConfig","max_chunk_size","ceil","c","INITIALIZED","UPLOADING","ASSEMBLING","FINISHED","CANCELLED","FAILED","_source","_file","_isChunked","_chunks","_size","_uploaded","_startTime","_status","_controller","_response","file","isChunked","chunks","startTime","uploaded","getTime","g","I","IDLE","PAUSED","N","_destinationFolder","_isPublic","_uploadQueue","_jobQueue","_queueSize","_queueProgress","_queueStatus","_notifiers","maxChunksSize","updateStats","addNotifier","upload","r","T","U","p","m","bytes","ts","w","D","W","O","y","staticRenderFns","_compiled","functional","_scopeId","$vnode","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","$root","$options","shadowRoot","_injectStyles","S","beforeCreate","ms","fillColor","_b","staticClass","role","$attrs","width","height","viewBox","_e","fs","xs","R","detectLocale","locale","json","charset","Language","translations","msgid","comments","translator","msgstr","Add","paused","msgid_plural","extracted","Cancel","Continue","New","addTranslation","C","Gs","ngettext","bind","u","gettext","Ls","extend","NcActionButton","NcActions","NcIconSvgWrapper","NcProgressBar","Plus","Upload","accept","disabled","multiple","forbiddenCharacters","addLabel","cancelLabel","uploadLabel","progressLabel","progressTimeId","eta","timeLeft","newFileMenuEntries","uploadManager","M","totalQueueSize","uploadedQueueSize","hasFailure","isUploading","isAssembling","buttonName","setDestination","updateStatus","beforeMount","onUploadCompletion","onClick","onPick","Us","ys","form","setSeconds","toISOString","time","seconds","class","decorative","_l","svg","directives","rawName","expression","change","k","conflicts","submit","$destroy","$el","parentNode","removeChild","$mount","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","chunkIds","notFulfilled","fulfilled","getter","__esModule","definition","chunkId","Function","done","script","needAttach","scripts","getElementsByTagName","getAttribute","setAttribute","src","onScriptComplete","prev","onerror","onload","doneFns","head","toStringTag","nmd","children","scriptUrl","importScripts","currentScript","baseURI","installedChunks","installedChunkData","errorType","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}