1 |
- {"version":3,"file":"files-main.js?v=85aae7cf6553691c7a84","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/apps/files/src/store/index.ts","webpack:///nextcloud/apps/files/src/router/router.ts","webpack:///nextcloud/apps/files/src/services/RouterService.ts","webpack:///nextcloud/apps/files/src/FilesApp.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/Cog.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/Cog.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/Cog.vue?4d6d","webpack:///nextcloud/node_modules/vue-material-design-icons/Cog.vue?vue&type=template&id=89df8f2e","webpack:///nextcloud/node_modules/throttle-debounce/esm/index.js","webpack:///nextcloud/node_modules/vue-material-design-icons/ChartPie.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/ChartPie.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/ChartPie.vue?421f","webpack:///nextcloud/node_modules/vue-material-design-icons/ChartPie.vue?vue&type=template&id=b117066e","webpack:///nextcloud/apps/files/src/logger.ts","webpack:///nextcloud/apps/files/src/components/NavigationQuota.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files/src/components/NavigationQuota.vue","webpack://nextcloud/./apps/files/src/components/NavigationQuota.vue?e0b0","webpack://nextcloud/./apps/files/src/components/NavigationQuota.vue?2966","webpack://nextcloud/./apps/files/src/components/NavigationQuota.vue?08cb","webpack://nextcloud/./apps/files/src/views/Settings.vue?84f7","webpack:///nextcloud/apps/files/src/components/Setting.vue","webpack:///nextcloud/apps/files/src/components/Setting.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/files/src/components/Setting.vue?98ea","webpack://nextcloud/./apps/files/src/components/Setting.vue?8d57","webpack:///nextcloud/apps/files/src/store/userconfig.ts","webpack:///nextcloud/apps/files/src/views/Settings.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files/src/views/Settings.vue","webpack://nextcloud/./apps/files/src/views/Settings.vue?4fb0","webpack://nextcloud/./apps/files/src/views/Settings.vue?b81b","webpack:///nextcloud/apps/files/src/components/FilesNavigationItem.vue","webpack:///nextcloud/apps/files/src/composables/useNavigation.ts","webpack:///nextcloud/apps/files/src/store/viewConfig.ts","webpack:///nextcloud/apps/files/src/components/FilesNavigationItem.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files/src/components/FilesNavigationItem.vue?172f","webpack:///nextcloud/apps/files/src/filters/FilenameFilter.ts","webpack:///nextcloud/apps/files/src/store/filters.ts","webpack:///nextcloud/apps/files/src/views/Navigation.vue","webpack:///nextcloud/apps/files/src/views/Navigation.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/files/src/composables/useFilenameFilter.ts","webpack://nextcloud/./apps/files/src/views/Navigation.vue?0681","webpack://nextcloud/./apps/files/src/views/Navigation.vue?74b9","webpack:///nextcloud/apps/files/src/views/FilesList.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/Reload.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/Reload.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/Reload.vue?2e35","webpack:///nextcloud/node_modules/vue-material-design-icons/Reload.vue?vue&type=template&id=23837d1a","webpack:///nextcloud/node_modules/vue-material-design-icons/FormatListBulletedSquare.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/FormatListBulletedSquare.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/FormatListBulletedSquare.vue?5dae","webpack:///nextcloud/node_modules/vue-material-design-icons/FormatListBulletedSquare.vue?vue&type=template&id=00aea13f","webpack:///nextcloud/node_modules/vue-material-design-icons/AccountPlus.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/AccountPlus.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/AccountPlus.vue?2818","webpack:///nextcloud/node_modules/vue-material-design-icons/AccountPlus.vue?vue&type=template&id=a16afc28","webpack:///nextcloud/node_modules/vue-material-design-icons/ViewGrid.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/ViewGrid.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/ViewGrid.vue?4e55","webpack:///nextcloud/node_modules/vue-material-design-icons/ViewGrid.vue?vue&type=template&id=7b96a104","webpack:///nextcloud/apps/files/src/actions/sidebarAction.ts","webpack:///nextcloud/apps/files/src/composables/useRouteParameters.ts","webpack:///nextcloud/node_modules/vue-router/composables.mjs","webpack:///nextcloud/apps/files/src/services/WebdavClient.ts","webpack:///nextcloud/apps/files/src/store/paths.ts","webpack:///nextcloud/apps/files/src/store/files.ts","webpack:///nextcloud/apps/files/src/store/selection.ts","webpack:///nextcloud/apps/files/src/store/uploader.ts","webpack:///nextcloud/apps/files/src/services/DropServiceUtils.ts","webpack:///nextcloud/apps/files/src/actions/moveOrCopyActionUtils.ts","webpack:///nextcloud/apps/files/src/services/Files.ts","webpack:///nextcloud/apps/files/src/actions/moveOrCopyAction.ts","webpack:///nextcloud/apps/files/src/services/DropService.ts","webpack:///nextcloud/apps/files/src/store/dragging.ts","webpack:///nextcloud/apps/files/src/mixins/filesListWidth.ts","webpack:///nextcloud/apps/files/src/components/BreadCrumbs.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/files/src/components/BreadCrumbs.vue","webpack://nextcloud/./apps/files/src/components/BreadCrumbs.vue?901d","webpack://nextcloud/./apps/files/src/components/BreadCrumbs.vue?d357","webpack:///nextcloud/apps/files/src/utils/fileUtils.ts","webpack:///nextcloud/apps/files/src/components/FileEntry.vue","webpack:///nextcloud/apps/files/src/store/actionsmenu.ts","webpack:///nextcloud/apps/files/src/store/renaming.ts","webpack:///nextcloud/node_modules/vue-material-design-icons/FileMultiple.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/FileMultiple.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/FileMultiple.vue?6e9d","webpack:///nextcloud/node_modules/vue-material-design-icons/FileMultiple.vue?vue&type=template&id=27b46e04","webpack:///nextcloud/apps/files/src/components/DragAndDropPreview.vue","webpack:///nextcloud/apps/files/src/components/DragAndDropPreview.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files/src/components/DragAndDropPreview.vue?dbe9","webpack://nextcloud/./apps/files/src/components/DragAndDropPreview.vue?36f6","webpack:///nextcloud/apps/files/src/utils/dragUtils.ts","webpack:///nextcloud/apps/files/src/components/FileEntryMixin.ts","webpack:///nextcloud/apps/files/src/utils/hashUtils.ts","webpack:///nextcloud/apps/files/src/utils/permissions.ts","webpack:///nextcloud/apps/files/src/components/CustomElementRender.vue","webpack:///nextcloud/apps/files/src/components/CustomElementRender.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files/src/components/CustomElementRender.vue?5f5c","webpack:///nextcloud/apps/files/src/components/FileEntry/FileEntryActions.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/ArrowLeft.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/ArrowLeft.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/ArrowLeft.vue?f857","webpack:///nextcloud/node_modules/vue-material-design-icons/ArrowLeft.vue?vue&type=template&id=214c9a86","webpack:///nextcloud/apps/files/src/components/FileEntry/FileEntryActions.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files/src/components/FileEntry/FileEntryActions.vue?ab51","webpack://nextcloud/./apps/files/src/components/FileEntry/FileEntryActions.vue?b893","webpack://nextcloud/./apps/files/src/components/FileEntry/FileEntryActions.vue?7b52","webpack:///nextcloud/apps/files/src/components/FileEntry/FileEntryCheckbox.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/files/src/components/FileEntry/FileEntryCheckbox.vue","webpack:///nextcloud/apps/files/src/store/keyboard.ts","webpack://nextcloud/./apps/files/src/components/FileEntry/FileEntryCheckbox.vue?a18b","webpack:///nextcloud/apps/files/src/components/FileEntry/FileEntryName.vue","webpack:///nextcloud/apps/files/src/utils/filenameValidity.ts","webpack:///nextcloud/apps/files/src/components/FileEntry/FileEntryName.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files/src/components/FileEntry/FileEntryName.vue?ec20","webpack://nextcloud/./apps/files/src/components/FileEntry/FileEntryName.vue?98a4","webpack:///nextcloud/apps/files/src/components/FileEntry/FileEntryPreview.vue","webpack:///nextcloud/node_modules/blurhash/dist/esm/index.js","webpack:///nextcloud/node_modules/vue-material-design-icons/File.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/File.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/File.vue?245d","webpack:///nextcloud/node_modules/vue-material-design-icons/File.vue?vue&type=template&id=e3c8d598","webpack:///nextcloud/node_modules/vue-material-design-icons/FolderOpen.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/FolderOpen.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/FolderOpen.vue?6818","webpack:///nextcloud/node_modules/vue-material-design-icons/FolderOpen.vue?vue&type=template&id=79cee0a4","webpack:///nextcloud/node_modules/vue-material-design-icons/Key.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/Key.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/Key.vue?157c","webpack:///nextcloud/node_modules/vue-material-design-icons/Key.vue?vue&type=template&id=01a06d54","webpack:///nextcloud/node_modules/vue-material-design-icons/Network.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/Network.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/Network.vue?11eb","webpack:///nextcloud/node_modules/vue-material-design-icons/Network.vue?vue&type=template&id=29f8873c","webpack:///nextcloud/node_modules/vue-material-design-icons/Tag.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/Tag.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/Tag.vue?6116","webpack:///nextcloud/node_modules/vue-material-design-icons/Tag.vue?vue&type=template&id=75dd05e4","webpack:///nextcloud/node_modules/vue-material-design-icons/PlayCircle.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/PlayCircle.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/PlayCircle.vue?0c26","webpack:///nextcloud/node_modules/vue-material-design-icons/PlayCircle.vue?vue&type=template&id=6901b3e6","webpack:///nextcloud/apps/files/src/components/FileEntry/CollectivesIcon.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files/src/components/FileEntry/CollectivesIcon.vue","webpack://nextcloud/./apps/files/src/components/FileEntry/CollectivesIcon.vue?1937","webpack://nextcloud/./apps/files/src/components/FileEntry/CollectivesIcon.vue?949d","webpack:///nextcloud/apps/files/src/components/FileEntry/FavoriteIcon.vue","webpack:///nextcloud/apps/files/src/components/FileEntry/FavoriteIcon.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files/src/components/FileEntry/FavoriteIcon.vue?f7c8","webpack://nextcloud/./apps/files/src/components/FileEntry/FavoriteIcon.vue?62c6","webpack:///nextcloud/apps/files/src/components/FileEntry/FileEntryPreview.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/files/src/services/LivePhotos.ts","webpack://nextcloud/./apps/files/src/components/FileEntry/FileEntryPreview.vue?8c1f","webpack:///nextcloud/apps/files/src/components/FileEntry.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files/src/components/FileEntry.vue?da7c","webpack:///nextcloud/apps/files/src/components/FileEntryGrid.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/files/src/components/FileEntryGrid.vue","webpack://nextcloud/./apps/files/src/components/FileEntryGrid.vue?bb8e","webpack:///nextcloud/apps/files/src/components/FilesListHeader.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/files/src/components/FilesListHeader.vue","webpack://nextcloud/./apps/files/src/components/FilesListHeader.vue?349b","webpack:///nextcloud/apps/files/src/components/FilesListTableFooter.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/files/src/components/FilesListTableFooter.vue","webpack://nextcloud/./apps/files/src/components/FilesListTableFooter.vue?8a94","webpack://nextcloud/./apps/files/src/components/FilesListTableFooter.vue?fa4c","webpack:///nextcloud/apps/files/src/components/FilesListTableHeader.vue","webpack:///nextcloud/apps/files/src/mixins/filesSorting.ts","webpack:///nextcloud/apps/files/src/components/FilesListTableHeaderButton.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/files/src/components/FilesListTableHeaderButton.vue","webpack://nextcloud/./apps/files/src/components/FilesListTableHeaderButton.vue?55b2","webpack://nextcloud/./apps/files/src/components/FilesListTableHeaderButton.vue?e364","webpack:///nextcloud/apps/files/src/components/FilesListTableHeader.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files/src/components/FilesListTableHeader.vue?c084","webpack://nextcloud/./apps/files/src/components/FilesListTableHeader.vue?b1c9","webpack:///nextcloud/apps/files/src/components/VirtualList.vue","webpack:///nextcloud/apps/files/src/components/VirtualList.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files/src/components/VirtualList.vue?37fa","webpack:///nextcloud/apps/files/src/components/FilesListTableHeaderActions.vue","webpack:///nextcloud/apps/files/src/components/FilesListTableHeaderActions.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files/src/components/FilesListTableHeaderActions.vue?d5ab","webpack://nextcloud/./apps/files/src/components/FilesListTableHeaderActions.vue?9494","webpack:///nextcloud/apps/files/src/components/FileListFilters.vue","webpack:///nextcloud/apps/files/src/components/FileListFilters.vue?vue&type=script&setup=true&lang=ts","webpack://nextcloud/./apps/files/src/components/FileListFilters.vue?eef0","webpack://nextcloud/./apps/files/src/components/FileListFilters.vue?ac4e","webpack:///nextcloud/apps/files/src/components/FilesListVirtual.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/files/src/components/FilesListVirtual.vue","webpack://nextcloud/./apps/files/src/components/FilesListVirtual.vue?f011","webpack://nextcloud/./apps/files/src/components/FilesListVirtual.vue?eb06","webpack://nextcloud/./apps/files/src/components/FilesListVirtual.vue?3555","webpack:///nextcloud/node_modules/vue-material-design-icons/TrayArrowDown.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/TrayArrowDown.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/TrayArrowDown.vue?a897","webpack:///nextcloud/node_modules/vue-material-design-icons/TrayArrowDown.vue?vue&type=template&id=447c2cd4","webpack:///nextcloud/apps/files/src/components/DragAndDropNotice.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/files/src/components/DragAndDropNotice.vue","webpack://nextcloud/./apps/files/src/components/DragAndDropNotice.vue?0326","webpack://nextcloud/./apps/files/src/components/DragAndDropNotice.vue?a2e0","webpack:///nextcloud/apps/files/src/views/FilesList.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/files/src/utils/davUtils.ts","webpack://nextcloud/./apps/files/src/views/FilesList.vue?8ce0","webpack://nextcloud/./apps/files/src/views/FilesList.vue?1e5b","webpack:///nextcloud/apps/files/src/FilesApp.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files/src/FilesApp.vue?597e","webpack:///nextcloud/apps/files/src/main.ts","webpack:///nextcloud/apps/files/src/services/Settings.js","webpack:///nextcloud/apps/files/src/models/Setting.js","webpack:///nextcloud/apps/files/src/components/BreadCrumbs.vue?vue&type=style&index=0&id=dc01fdb0&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/files/src/components/DragAndDropNotice.vue?vue&type=style&index=0&id=48abd828&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/files/src/components/DragAndDropPreview.vue?vue&type=style&index=0&id=01562099&prod&lang=scss","webpack:///nextcloud/apps/files/src/components/FileEntry/FavoriteIcon.vue?vue&type=style&index=0&id=f2d0cf6e&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/files/src/components/FileEntry/FileEntryActions.vue?vue&type=style&index=0&id=893a87d0&prod&lang=scss","webpack:///nextcloud/apps/files/src/components/FileEntry/FileEntryActions.vue?vue&type=style&index=1&id=893a87d0&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/files/src/components/FileEntry/FileEntryName.vue?vue&type=style&index=0&id=37803833&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/files/src/components/FileListFilters.vue?vue&type=style&index=0&id=bd0c8440&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/files/src/components/FilesListTableFooter.vue?vue&type=style&index=0&id=4c69fc7c&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/files/src/components/FilesListTableHeader.vue?vue&type=style&index=0&id=4daa9603&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/files/src/components/FilesListTableHeaderActions.vue?vue&type=style&index=0&id=30ce9832&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/files/src/components/FilesListTableHeaderButton.vue?vue&type=style&index=0&id=6d7680f0&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/files/src/components/FilesListVirtual.vue?vue&type=style&index=0&id=39cea143&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/files/src/components/FilesListVirtual.vue?vue&type=style&index=1&id=39cea143&prod&lang=scss","webpack:///nextcloud/apps/files/src/components/NavigationQuota.vue?vue&type=style&index=0&id=6ed9379e&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/files/src/views/FilesList.vue?vue&type=style&index=0&id=7deccf49&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/files/src/views/Navigation.vue?vue&type=style&index=0&id=11366bf7&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/files/src/views/Settings.vue?vue&type=style&index=0&id=23881b2c&prod&lang=scss&scoped=true","webpack:///nextcloud/node_modules/@nextcloud/files/dist/index.mjs","webpack:///nextcloud/node_modules/@nextcloud/upload/dist/chunks/index-CUY8WXeM.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};","/**\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 { generateUrl } from '@nextcloud/router';\nimport queryString from 'query-string';\nimport Router from 'vue-router';\nimport Vue from 'vue';\nVue.use(Router);\n// Prevent router from throwing errors when we're already on the page we're trying to go to\nconst originalPush = Router.prototype.push;\nRouter.prototype.push = function push(to, onComplete, onAbort) {\n if (onComplete || onAbort)\n return originalPush.call(this, to, onComplete, onAbort);\n return originalPush.call(this, to).catch(err => err);\n};\nconst router = new Router({\n mode: 'history',\n // if index.php is in the url AND we got this far, then it's working:\n // let's keep using index.php in the url\n base: generateUrl('/apps/files'),\n linkActiveClass: 'active',\n routes: [\n {\n path: '/',\n // Pretending we're using the default view\n redirect: { name: 'filelist', params: { view: 'files' } },\n },\n {\n path: '/:view/:fileid(\\\\d+)?',\n name: 'filelist',\n props: true,\n },\n ],\n // Custom stringifyQuery to prevent encoding of slashes in the url\n stringifyQuery(query) {\n const result = queryString.stringify(query).replace(/%2F/gmi, '/');\n return result ? ('?' + result) : '';\n },\n});\nexport default router;\n","export default class RouterService {\n // typescript compiles this to `#router` to make it private even in JS,\n // but in TS it needs to be called without the visibility specifier\n router;\n constructor(router) {\n this.router = router;\n }\n get name() {\n return this.router.currentRoute.name;\n }\n get query() {\n return this.router.currentRoute.query || {};\n }\n get params() {\n return this.router.currentRoute.params || {};\n }\n /**\n * This is a protected getter only for internal use\n * @private\n */\n get _router() {\n return this.router;\n }\n /**\n * Trigger a route change on the files app\n *\n * @param path the url path, eg: '/trashbin?dir=/Deleted'\n * @param replace replace the current history\n * @see https://router.vuejs.org/guide/essentials/navigation.html#navigate-to-a-different-location\n */\n goTo(path, replace = false) {\n return this.router.push({\n path,\n replace,\n });\n }\n /**\n * Trigger a route change on the files App\n *\n * @param name the route name\n * @param params the route parameters\n * @param query the url query parameters\n * @param replace replace the current history\n * @see https://router.vuejs.org/guide/essentials/navigation.html#navigate-to-a-different-location\n */\n goToRoute(name, params, query, replace) {\n return this.router.push({\n name,\n query,\n params,\n replace,\n });\n }\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcContent',{attrs:{\"app-name\":\"files\"}},[(!_vm.isPublic)?_c('Navigation'):_vm._e(),_vm._v(\" \"),_c('FilesList',{attrs:{\"is-public\":_vm.isPublic}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : true\"\n :aria-label=\"title\"\n class=\"material-design-icon cog-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M12,15.5A3.5,3.5 0 0,1 8.5,12A3.5,3.5 0 0,1 12,8.5A3.5,3.5 0 0,1 15.5,12A3.5,3.5 0 0,1 12,15.5M19.43,12.97C19.47,12.65 19.5,12.33 19.5,12C19.5,11.67 19.47,11.34 19.43,11L21.54,9.37C21.73,9.22 21.78,8.95 21.66,8.73L19.66,5.27C19.54,5.05 19.27,4.96 19.05,5.05L16.56,6.05C16.04,5.66 15.5,5.32 14.87,5.07L14.5,2.42C14.46,2.18 14.25,2 14,2H10C9.75,2 9.54,2.18 9.5,2.42L9.13,5.07C8.5,5.32 7.96,5.66 7.44,6.05L4.95,5.05C4.73,4.96 4.46,5.05 4.34,5.27L2.34,8.73C2.21,8.95 2.27,9.22 2.46,9.37L4.57,11C4.53,11.34 4.5,11.67 4.5,12C4.5,12.33 4.53,12.65 4.57,12.97L2.46,14.63C2.27,14.78 2.21,15.05 2.34,15.27L4.34,18.73C4.46,18.95 4.73,19.03 4.95,18.95L7.44,17.94C7.96,18.34 8.5,18.68 9.13,18.93L9.5,21.58C9.54,21.82 9.75,22 10,22H14C14.25,22 14.46,21.82 14.5,21.58L14.87,18.93C15.5,18.67 16.04,18.34 16.56,17.94L19.05,18.95C19.27,19.03 19.54,18.95 19.66,18.73L21.66,15.27C21.78,15.05 21.73,14.78 21.54,14.63L19.43,12.97Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"CogIcon\",\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}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Cog.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Cog.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Cog.vue?vue&type=template&id=89df8f2e\"\nimport script from \"./Cog.vue?vue&type=script&lang=js\"\nexport * from \"./Cog.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon cog-icon\",attrs:{\"aria-hidden\":_vm.title ? null : true,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M12,15.5A3.5,3.5 0 0,1 8.5,12A3.5,3.5 0 0,1 12,8.5A3.5,3.5 0 0,1 15.5,12A3.5,3.5 0 0,1 12,15.5M19.43,12.97C19.47,12.65 19.5,12.33 19.5,12C19.5,11.67 19.47,11.34 19.43,11L21.54,9.37C21.73,9.22 21.78,8.95 21.66,8.73L19.66,5.27C19.54,5.05 19.27,4.96 19.05,5.05L16.56,6.05C16.04,5.66 15.5,5.32 14.87,5.07L14.5,2.42C14.46,2.18 14.25,2 14,2H10C9.75,2 9.54,2.18 9.5,2.42L9.13,5.07C8.5,5.32 7.96,5.66 7.44,6.05L4.95,5.05C4.73,4.96 4.46,5.05 4.34,5.27L2.34,8.73C2.21,8.95 2.27,9.22 2.46,9.37L4.57,11C4.53,11.34 4.5,11.67 4.5,12C4.5,12.33 4.53,12.65 4.57,12.97L2.46,14.63C2.27,14.78 2.21,15.05 2.34,15.27L4.34,18.73C4.46,18.95 4.73,19.03 4.95,18.95L7.44,17.94C7.96,18.34 8.5,18.68 9.13,18.93L9.5,21.58C9.54,21.82 9.75,22 10,22H14C14.25,22 14.46,21.82 14.5,21.58L14.87,18.93C15.5,18.67 16.04,18.34 16.56,17.94L19.05,18.95C19.27,19.03 19.54,18.95 19.66,18.73L21.66,15.27C21.78,15.05 21.73,14.78 21.54,14.63L19.43,12.97Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/* eslint-disable no-undefined,no-param-reassign,no-shadow */\n\n/**\n * Throttle execution of a function. Especially useful for rate limiting\n * execution of handlers on events like resize and scroll.\n *\n * @param {number} delay - A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher)\n * are most useful.\n * @param {Function} callback - A function to be executed after delay milliseconds. The `this` context and all arguments are passed through,\n * as-is, to `callback` when the throttled-function is executed.\n * @param {object} [options] - An object to configure options.\n * @param {boolean} [options.noTrailing] - Optional, defaults to false. If noTrailing is true, callback will only execute every `delay` milliseconds\n * while the throttled-function is being called. If noTrailing is false or unspecified, callback will be executed\n * one final time after the last throttled-function call. (After the throttled-function has not been called for\n * `delay` milliseconds, the internal counter is reset).\n * @param {boolean} [options.noLeading] - Optional, defaults to false. If noLeading is false, the first throttled-function call will execute callback\n * immediately. If noLeading is true, the first the callback execution will be skipped. It should be noted that\n * callback will never executed if both noLeading = true and noTrailing = true.\n * @param {boolean} [options.debounceMode] - If `debounceMode` is true (at begin), schedule `clear` to execute after `delay` ms. If `debounceMode` is\n * false (at end), schedule `callback` to execute after `delay` ms.\n *\n * @returns {Function} A new, throttled, function.\n */\nfunction throttle (delay, callback, options) {\n var _ref = options || {},\n _ref$noTrailing = _ref.noTrailing,\n noTrailing = _ref$noTrailing === void 0 ? false : _ref$noTrailing,\n _ref$noLeading = _ref.noLeading,\n noLeading = _ref$noLeading === void 0 ? false : _ref$noLeading,\n _ref$debounceMode = _ref.debounceMode,\n debounceMode = _ref$debounceMode === void 0 ? undefined : _ref$debounceMode;\n /*\n * After wrapper has stopped being called, this timeout ensures that\n * `callback` is executed at the proper times in `throttle` and `end`\n * debounce modes.\n */\n var timeoutID;\n var cancelled = false;\n\n // Keep track of the last time `callback` was executed.\n var lastExec = 0;\n\n // Function to clear existing timeout\n function clearExistingTimeout() {\n if (timeoutID) {\n clearTimeout(timeoutID);\n }\n }\n\n // Function to cancel next exec\n function cancel(options) {\n var _ref2 = options || {},\n _ref2$upcomingOnly = _ref2.upcomingOnly,\n upcomingOnly = _ref2$upcomingOnly === void 0 ? false : _ref2$upcomingOnly;\n clearExistingTimeout();\n cancelled = !upcomingOnly;\n }\n\n /*\n * The `wrapper` function encapsulates all of the throttling / debouncing\n * functionality and when executed will limit the rate at which `callback`\n * is executed.\n */\n function wrapper() {\n for (var _len = arguments.length, arguments_ = new Array(_len), _key = 0; _key < _len; _key++) {\n arguments_[_key] = arguments[_key];\n }\n var self = this;\n var elapsed = Date.now() - lastExec;\n if (cancelled) {\n return;\n }\n\n // Execute `callback` and update the `lastExec` timestamp.\n function exec() {\n lastExec = Date.now();\n callback.apply(self, arguments_);\n }\n\n /*\n * If `debounceMode` is true (at begin) this is used to clear the flag\n * to allow future `callback` executions.\n */\n function clear() {\n timeoutID = undefined;\n }\n if (!noLeading && debounceMode && !timeoutID) {\n /*\n * Since `wrapper` is being called for the first time and\n * `debounceMode` is true (at begin), execute `callback`\n * and noLeading != true.\n */\n exec();\n }\n clearExistingTimeout();\n if (debounceMode === undefined && elapsed > delay) {\n if (noLeading) {\n /*\n * In throttle mode with noLeading, if `delay` time has\n * been exceeded, update `lastExec` and schedule `callback`\n * to execute after `delay` ms.\n */\n lastExec = Date.now();\n if (!noTrailing) {\n timeoutID = setTimeout(debounceMode ? clear : exec, delay);\n }\n } else {\n /*\n * In throttle mode without noLeading, if `delay` time has been exceeded, execute\n * `callback`.\n */\n exec();\n }\n } else if (noTrailing !== true) {\n /*\n * In trailing throttle mode, since `delay` time has not been\n * exceeded, schedule `callback` to execute `delay` ms after most\n * recent execution.\n *\n * If `debounceMode` is true (at begin), schedule `clear` to execute\n * after `delay` ms.\n *\n * If `debounceMode` is false (at end), schedule `callback` to\n * execute after `delay` ms.\n */\n timeoutID = setTimeout(debounceMode ? clear : exec, debounceMode === undefined ? delay - elapsed : delay);\n }\n }\n wrapper.cancel = cancel;\n\n // Return the wrapper function.\n return wrapper;\n}\n\n/* eslint-disable no-undefined */\n\n/**\n * Debounce execution of a function. Debouncing, unlike throttling,\n * guarantees that a function is only executed a single time, either at the\n * very beginning of a series of calls, or at the very end.\n *\n * @param {number} delay - A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n * @param {Function} callback - A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,\n * to `callback` when the debounced-function is executed.\n * @param {object} [options] - An object to configure options.\n * @param {boolean} [options.atBegin] - Optional, defaults to false. If atBegin is false or unspecified, callback will only be executed `delay` milliseconds\n * after the last debounced-function call. If atBegin is true, callback will be executed only at the first debounced-function call.\n * (After the throttled-function has not been called for `delay` milliseconds, the internal counter is reset).\n *\n * @returns {Function} A new, debounced function.\n */\nfunction debounce (delay, callback, options) {\n var _ref = options || {},\n _ref$atBegin = _ref.atBegin,\n atBegin = _ref$atBegin === void 0 ? false : _ref$atBegin;\n return throttle(delay, callback, {\n debounceMode: atBegin !== false\n });\n}\n\nexport { debounce, throttle };\n//# sourceMappingURL=index.js.map\n","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : true\"\n :aria-label=\"title\"\n class=\"material-design-icon chart-pie-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M11,2V22C5.9,21.5 2,17.2 2,12C2,6.8 5.9,2.5 11,2M13,2V11H22C21.5,6.2 17.8,2.5 13,2M13,13V22C17.7,21.5 21.5,17.8 22,13H13Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"ChartPieIcon\",\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}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ChartPie.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ChartPie.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ChartPie.vue?vue&type=template&id=b117066e\"\nimport script from \"./ChartPie.vue?vue&type=script&lang=js\"\nexport * from \"./ChartPie.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon chart-pie-icon\",attrs:{\"aria-hidden\":_vm.title ? null : true,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M11,2V22C5.9,21.5 2,17.2 2,12C2,6.8 5.9,2.5 11,2M13,2V11H22C21.5,6.2 17.8,2.5 13,2M13,13V22C17.7,21.5 21.5,17.8 22,13H13Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getLoggerBuilder } from '@nextcloud/logger';\nexport default getLoggerBuilder()\n .setApp('files')\n .detectUser()\n .build();\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NavigationQuota.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NavigationQuota.vue?vue&type=script&lang=js\"","<!--\n - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n -->\n<template>\n\t<NcAppNavigationItem v-if=\"storageStats\"\n\t\t:aria-description=\"t('files', 'Storage information')\"\n\t\t:class=\"{ 'app-navigation-entry__settings-quota--not-unlimited': storageStats.quota >= 0}\"\n\t\t:loading=\"loadingStorageStats\"\n\t\t:name=\"storageStatsTitle\"\n\t\t:title=\"storageStatsTooltip\"\n\t\tclass=\"app-navigation-entry__settings-quota\"\n\t\tdata-cy-files-navigation-settings-quota\n\t\t@click.stop.prevent=\"debounceUpdateStorageStats\">\n\t\t<ChartPie slot=\"icon\" :size=\"20\" />\n\n\t\t<!-- Progress bar -->\n\t\t<NcProgressBar v-if=\"storageStats.quota >= 0\"\n\t\t\tslot=\"extra\"\n\t\t\t:aria-label=\"t('files', 'Storage quota')\"\n\t\t\t:error=\"storageStats.relative > 80\"\n\t\t\t:value=\"Math.min(storageStats.relative, 100)\" />\n\t</NcAppNavigationItem>\n</template>\n\n<script>\nimport { debounce, throttle } from 'throttle-debounce'\nimport { formatFileSize } from '@nextcloud/files'\nimport { generateUrl } from '@nextcloud/router'\nimport { loadState } from '@nextcloud/initial-state'\nimport { showError } from '@nextcloud/dialogs'\nimport { subscribe } from '@nextcloud/event-bus'\nimport { translate } from '@nextcloud/l10n'\nimport axios from '@nextcloud/axios'\n\nimport ChartPie from 'vue-material-design-icons/ChartPie.vue'\nimport NcAppNavigationItem from '@nextcloud/vue/dist/Components/NcAppNavigationItem.js'\nimport NcProgressBar from '@nextcloud/vue/dist/Components/NcProgressBar.js'\n\nimport logger from '../logger.ts'\n\nexport default {\n\tname: 'NavigationQuota',\n\n\tcomponents: {\n\t\tChartPie,\n\t\tNcAppNavigationItem,\n\t\tNcProgressBar,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tloadingStorageStats: false,\n\t\t\tstorageStats: loadState('files', 'storageStats', null),\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tstorageStatsTitle() {\n\t\t\tconst usedQuotaByte = formatFileSize(this.storageStats?.used, false, false)\n\t\t\tconst quotaByte = formatFileSize(this.storageStats?.quota, false, false)\n\n\t\t\t// If no quota set\n\t\t\tif (this.storageStats?.quota < 0) {\n\t\t\t\treturn this.t('files', '{usedQuotaByte} used', { usedQuotaByte })\n\t\t\t}\n\n\t\t\treturn this.t('files', '{used} of {quota} used', {\n\t\t\t\tused: usedQuotaByte,\n\t\t\t\tquota: quotaByte,\n\t\t\t})\n\t\t},\n\t\tstorageStatsTooltip() {\n\t\t\tif (!this.storageStats.relative) {\n\t\t\t\treturn ''\n\t\t\t}\n\n\t\t\treturn this.t('files', '{relative}% used', this.storageStats)\n\t\t},\n\t},\n\n\tbeforeMount() {\n\t\t/**\n\t\t * Update storage stats every minute\n\t\t * TODO: remove when all views are migrated to Vue\n\t\t */\n\t\tsetInterval(this.throttleUpdateStorageStats, 60 * 1000)\n\n\t\tsubscribe('files:node:created', this.throttleUpdateStorageStats)\n\t\tsubscribe('files:node:deleted', this.throttleUpdateStorageStats)\n\t\tsubscribe('files:node:moved', this.throttleUpdateStorageStats)\n\t\tsubscribe('files:node:updated', this.throttleUpdateStorageStats)\n\t},\n\n\tmounted() {\n\t\t// If the user has a quota set, warn if the available account storage is <=0\n\t\t//\n\t\t// NOTE: This doesn't catch situations where actual *server*\n\t\t// disk (non-quota) space is low, but those should probably\n\t\t// be handled differently anyway since a regular user can't\n\t\t// can't do much about them (If we did want to indicate server disk\n\t\t// space matters to users, we'd probably want to use a warning\n\t\t// specific to that situation anyhow. So this covers warning covers\n\t\t// our primary day-to-day concern (individual account quota usage).\n\t\t//\n\t\tif (this.storageStats?.quota > 0 && this.storageStats?.free === 0) {\n\t\t\tthis.showStorageFullWarning()\n\t\t}\n\t},\n\n\tmethods: {\n\t\t// From user input\n\t\tdebounceUpdateStorageStats: debounce(200, function(event) {\n\t\t\tthis.updateStorageStats(event)\n\t\t}),\n\t\t// From interval or event bus\n\t\tthrottleUpdateStorageStats: throttle(1000, function(event) {\n\t\t\tthis.updateStorageStats(event)\n\t\t}),\n\n\t\t/**\n\t\t * Update the storage stats\n\t\t * Throttled at max 1 refresh per minute\n\t\t *\n\t\t * @param {Event} [event] if user interaction\n\t\t */\n\t\tasync updateStorageStats(event = null) {\n\t\t\tif (this.loadingStorageStats) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tthis.loadingStorageStats = true\n\t\t\ttry {\n\t\t\t\tconst response = await axios.get(generateUrl('/apps/files/api/v1/stats'))\n\t\t\t\tif (!response?.data?.data) {\n\t\t\t\t\tthrow new Error('Invalid storage stats')\n\t\t\t\t}\n\n\t\t\t\t// Warn the user if the available account storage changed from > 0 to 0\n\t\t\t\t// (unless only because quota was intentionally set to 0 by admin in the interim)\n\t\t\t\tif (this.storageStats?.free > 0 && response.data.data?.free === 0 && response.data.data?.quota > 0) {\n\t\t\t\t\tthis.showStorageFullWarning()\n\t\t\t\t}\n\n\t\t\t\tthis.storageStats = response.data.data\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error('Could not refresh storage stats', { error })\n\t\t\t\t// Only show to the user if it was manually triggered\n\t\t\t\tif (event) {\n\t\t\t\t\tshowError(t('files', 'Could not refresh storage stats'))\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\tthis.loadingStorageStats = false\n\t\t\t}\n\t\t},\n\n\t\tshowStorageFullWarning() {\n\t\t\tshowError(this.t('files', 'Your storage is full, files can not be updated or synced anymore!'))\n\t\t},\n\n\t\tt: translate,\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n// User storage stats display\n.app-navigation-entry__settings-quota {\n\t// Align title with progress and icon\n\t--app-navigation-quota-margin: calc((var(--default-clickable-area) - 24px) / 2); // 20px icon size and 4px progress bar\n\n\t&--not-unlimited :deep(.app-navigation-entry__name) {\n\t\tline-height: 1;\n\t\tmargin-top: var(--app-navigation-quota-margin);\n\t}\n\n\tprogress {\n\t\tposition: absolute;\n\t\tbottom: var(--app-navigation-quota-margin);\n\t\tmargin-inline-start: var(--default-clickable-area);\n\t\twidth: calc(100% - (1.5 * var(--default-clickable-area)));\n\t}\n}\n</style>\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NavigationQuota.vue?vue&type=style&index=0&id=6ed9379e&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NavigationQuota.vue?vue&type=style&index=0&id=6ed9379e&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./NavigationQuota.vue?vue&type=template&id=6ed9379e&scoped=true\"\nimport script from \"./NavigationQuota.vue?vue&type=script&lang=js\"\nexport * from \"./NavigationQuota.vue?vue&type=script&lang=js\"\nimport style0 from \"./NavigationQuota.vue?vue&type=style&index=0&id=6ed9379e&prod&lang=scss&scoped=true\"\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 \"6ed9379e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.storageStats)?_c('NcAppNavigationItem',{staticClass:\"app-navigation-entry__settings-quota\",class:{ 'app-navigation-entry__settings-quota--not-unlimited': _vm.storageStats.quota >= 0},attrs:{\"aria-description\":_vm.t('files', 'Storage information'),\"loading\":_vm.loadingStorageStats,\"name\":_vm.storageStatsTitle,\"title\":_vm.storageStatsTooltip,\"data-cy-files-navigation-settings-quota\":\"\"},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.debounceUpdateStorageStats.apply(null, arguments)}}},[_c('ChartPie',{attrs:{\"slot\":\"icon\",\"size\":20},slot:\"icon\"}),_vm._v(\" \"),(_vm.storageStats.quota >= 0)?_c('NcProgressBar',{attrs:{\"slot\":\"extra\",\"aria-label\":_vm.t('files', 'Storage quota'),\"error\":_vm.storageStats.relative > 80,\"value\":Math.min(_vm.storageStats.relative, 100)},slot:\"extra\"}):_vm._e()],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcAppSettingsDialog',{attrs:{\"open\":_vm.open,\"show-navigation\":true,\"name\":_vm.t('files', 'Files settings')},on:{\"update:open\":_vm.onClose}},[_c('NcAppSettingsSection',{attrs:{\"id\":\"settings\",\"name\":_vm.t('files', 'Files settings')}},[_c('NcCheckboxRadioSwitch',{attrs:{\"data-cy-files-settings-setting\":\"sort_favorites_first\",\"checked\":_vm.userConfig.sort_favorites_first},on:{\"update:checked\":function($event){return _vm.setConfig('sort_favorites_first', $event)}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files', 'Sort favorites first'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"data-cy-files-settings-setting\":\"sort_folders_first\",\"checked\":_vm.userConfig.sort_folders_first},on:{\"update:checked\":function($event){return _vm.setConfig('sort_folders_first', $event)}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files', 'Sort folders before files'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"data-cy-files-settings-setting\":\"show_hidden\",\"checked\":_vm.userConfig.show_hidden},on:{\"update:checked\":function($event){return _vm.setConfig('show_hidden', $event)}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files', 'Show hidden files'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"data-cy-files-settings-setting\":\"crop_image_previews\",\"checked\":_vm.userConfig.crop_image_previews},on:{\"update:checked\":function($event){return _vm.setConfig('crop_image_previews', $event)}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files', 'Crop image previews'))+\"\\n\\t\\t\")]),_vm._v(\" \"),(_vm.enableGridView)?_c('NcCheckboxRadioSwitch',{attrs:{\"data-cy-files-settings-setting\":\"grid_view\",\"checked\":_vm.userConfig.grid_view},on:{\"update:checked\":function($event){return _vm.setConfig('grid_view', $event)}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files', 'Enable the grid view'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"data-cy-files-settings-setting\":\"folder_tree\",\"checked\":_vm.userConfig.folder_tree},on:{\"update:checked\":function($event){return _vm.setConfig('folder_tree', $event)}}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files', 'Enable folder tree'))+\"\\n\\t\\t\")])],1),_vm._v(\" \"),(_vm.settings.length !== 0)?_c('NcAppSettingsSection',{attrs:{\"id\":\"more-settings\",\"name\":_vm.t('files', 'Additional settings')}},[_vm._l((_vm.settings),function(setting){return [_c('Setting',{key:setting.name,attrs:{\"el\":setting.el}})]})],2):_vm._e(),_vm._v(\" \"),_c('NcAppSettingsSection',{attrs:{\"id\":\"webdav\",\"name\":_vm.t('files', 'WebDAV')}},[_c('NcInputField',{attrs:{\"id\":\"webdav-url-input\",\"label\":_vm.t('files', 'WebDAV URL'),\"show-trailing-button\":true,\"success\":_vm.webdavUrlCopied,\"trailing-button-label\":_vm.t('files', 'Copy to clipboard'),\"value\":_vm.webdavUrl,\"readonly\":\"readonly\",\"type\":\"url\"},on:{\"focus\":function($event){return $event.target.select()},\"trailing-button-click\":_vm.copyCloudId},scopedSlots:_vm._u([{key:\"trailing-button-icon\",fn:function(){return [_c('Clipboard',{attrs:{\"size\":20}})]},proxy:true}])}),_vm._v(\" \"),_c('em',[_c('a',{staticClass:\"setting-link\",attrs:{\"href\":_vm.webdavDocs,\"target\":\"_blank\",\"rel\":\"noreferrer noopener\"}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Use this address to access your Files via WebDAV'))+\" ↗\\n\\t\\t\\t\")])]),_vm._v(\" \"),_c('br'),_vm._v(\" \"),_c('em',[_c('a',{staticClass:\"setting-link\",attrs:{\"href\":_vm.appPasswordUrl}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'If you have enabled 2FA, you must create and use a new app password by clicking here.'))+\" ↗\\n\\t\\t\\t\")])])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<div />\n</template>\n<script>\nexport default {\n\tname: 'Setting',\n\tprops: {\n\t\tel: {\n\t\t\ttype: Function,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tmounted() {\n\t\tthis.$el.appendChild(this.el())\n\t},\n}\n</script>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Setting.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Setting.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Setting.vue?vue&type=template&id=315a4ce8\"\nimport script from \"./Setting.vue?vue&type=script&lang=js\"\nexport * from \"./Setting.vue?vue&type=script&lang=js\"\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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div')\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","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 * @param key\n * @param value\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 * @param key\n * @param value\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","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=script&lang=js\"","<!--\n - SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n<template>\n\t<NcAppSettingsDialog :open=\"open\"\n\t\t:show-navigation=\"true\"\n\t\t:name=\"t('files', 'Files settings')\"\n\t\t@update:open=\"onClose\">\n\t\t<!-- Settings API-->\n\t\t<NcAppSettingsSection id=\"settings\" :name=\"t('files', 'Files settings')\">\n\t\t\t<NcCheckboxRadioSwitch data-cy-files-settings-setting=\"sort_favorites_first\"\n\t\t\t\t:checked=\"userConfig.sort_favorites_first\"\n\t\t\t\t@update:checked=\"setConfig('sort_favorites_first', $event)\">\n\t\t\t\t{{ t('files', 'Sort favorites first') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t<NcCheckboxRadioSwitch data-cy-files-settings-setting=\"sort_folders_first\"\n\t\t\t\t:checked=\"userConfig.sort_folders_first\"\n\t\t\t\t@update:checked=\"setConfig('sort_folders_first', $event)\">\n\t\t\t\t{{ t('files', 'Sort folders before files') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t<NcCheckboxRadioSwitch data-cy-files-settings-setting=\"show_hidden\"\n\t\t\t\t:checked=\"userConfig.show_hidden\"\n\t\t\t\t@update:checked=\"setConfig('show_hidden', $event)\">\n\t\t\t\t{{ t('files', 'Show hidden files') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t<NcCheckboxRadioSwitch data-cy-files-settings-setting=\"crop_image_previews\"\n\t\t\t\t:checked=\"userConfig.crop_image_previews\"\n\t\t\t\t@update:checked=\"setConfig('crop_image_previews', $event)\">\n\t\t\t\t{{ t('files', 'Crop image previews') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t<NcCheckboxRadioSwitch v-if=\"enableGridView\"\n\t\t\t\tdata-cy-files-settings-setting=\"grid_view\"\n\t\t\t\t:checked=\"userConfig.grid_view\"\n\t\t\t\t@update:checked=\"setConfig('grid_view', $event)\">\n\t\t\t\t{{ t('files', 'Enable the grid view') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t<NcCheckboxRadioSwitch data-cy-files-settings-setting=\"folder_tree\"\n\t\t\t\t:checked=\"userConfig.folder_tree\"\n\t\t\t\t@update:checked=\"setConfig('folder_tree', $event)\">\n\t\t\t\t{{ t('files', 'Enable folder tree') }}\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t</NcAppSettingsSection>\n\n\t\t<!-- Settings API-->\n\t\t<NcAppSettingsSection v-if=\"settings.length !== 0\"\n\t\t\tid=\"more-settings\"\n\t\t\t:name=\"t('files', 'Additional settings')\">\n\t\t\t<template v-for=\"setting in settings\">\n\t\t\t\t<Setting :key=\"setting.name\" :el=\"setting.el\" />\n\t\t\t</template>\n\t\t</NcAppSettingsSection>\n\n\t\t<!-- Webdav URL-->\n\t\t<NcAppSettingsSection id=\"webdav\" :name=\"t('files', 'WebDAV')\">\n\t\t\t<NcInputField id=\"webdav-url-input\"\n\t\t\t\t:label=\"t('files', 'WebDAV URL')\"\n\t\t\t\t:show-trailing-button=\"true\"\n\t\t\t\t:success=\"webdavUrlCopied\"\n\t\t\t\t:trailing-button-label=\"t('files', 'Copy to clipboard')\"\n\t\t\t\t:value=\"webdavUrl\"\n\t\t\t\treadonly=\"readonly\"\n\t\t\t\ttype=\"url\"\n\t\t\t\t@focus=\"$event.target.select()\"\n\t\t\t\t@trailing-button-click=\"copyCloudId\">\n\t\t\t\t<template #trailing-button-icon>\n\t\t\t\t\t<Clipboard :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t</NcInputField>\n\t\t\t<em>\n\t\t\t\t<a class=\"setting-link\"\n\t\t\t\t\t:href=\"webdavDocs\"\n\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\trel=\"noreferrer noopener\">\n\t\t\t\t\t{{ t('files', 'Use this address to access your Files via WebDAV') }} ↗\n\t\t\t\t</a>\n\t\t\t</em>\n\t\t\t<br>\n\t\t\t<em>\n\t\t\t\t<a class=\"setting-link\" :href=\"appPasswordUrl\">\n\t\t\t\t\t{{ t('files', 'If you have enabled 2FA, you must create and use a new app password by clicking here.') }} ↗\n\t\t\t\t</a>\n\t\t\t</em>\n\t\t</NcAppSettingsSection>\n\t</NcAppSettingsDialog>\n</template>\n\n<script>\nimport NcAppSettingsDialog from '@nextcloud/vue/dist/Components/NcAppSettingsDialog.js'\nimport NcAppSettingsSection from '@nextcloud/vue/dist/Components/NcAppSettingsSection.js'\nimport NcCheckboxRadioSwitch from '@nextcloud/vue/dist/Components/NcCheckboxRadioSwitch.js'\nimport Clipboard from 'vue-material-design-icons/ContentCopy.vue'\nimport NcInputField from '@nextcloud/vue/dist/Components/NcInputField.js'\nimport Setting from '../components/Setting.vue'\n\nimport { generateRemoteUrl, generateUrl } from '@nextcloud/router'\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { showError, showSuccess } from '@nextcloud/dialogs'\nimport { translate } from '@nextcloud/l10n'\nimport { loadState } from '@nextcloud/initial-state'\nimport { useUserConfigStore } from '../store/userconfig.ts'\n\nexport default {\n\tname: 'Settings',\n\tcomponents: {\n\t\tClipboard,\n\t\tNcAppSettingsDialog,\n\t\tNcAppSettingsSection,\n\t\tNcCheckboxRadioSwitch,\n\t\tNcInputField,\n\t\tSetting,\n\t},\n\n\tprops: {\n\t\topen: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\n\tsetup() {\n\t\tconst userConfigStore = useUserConfigStore()\n\t\treturn {\n\t\t\tuserConfigStore,\n\t\t}\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\t// Settings API\n\t\t\tsettings: window.OCA?.Files?.Settings?.settings || [],\n\n\t\t\t// Webdav infos\n\t\t\twebdavUrl: generateRemoteUrl('dav/files/' + encodeURIComponent(getCurrentUser()?.uid)),\n\t\t\twebdavDocs: 'https://docs.nextcloud.com/server/stable/go.php?to=user-webdav',\n\t\t\tappPasswordUrl: generateUrl('/settings/user/security#generate-app-token-section'),\n\t\t\twebdavUrlCopied: false,\n\t\t\tenableGridView: (loadState('core', 'config', [])['enable_non-accessible_features'] ?? true),\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tuserConfig() {\n\t\t\treturn this.userConfigStore.userConfig\n\t\t},\n\t},\n\n\tbeforeMount() {\n\t\t// Update the settings API entries state\n\t\tthis.settings.forEach(setting => setting.open())\n\t},\n\n\tbeforeDestroy() {\n\t\t// Update the settings API entries state\n\t\tthis.settings.forEach(setting => setting.close())\n\t},\n\n\tmethods: {\n\t\tonClose() {\n\t\t\tthis.$emit('close')\n\t\t},\n\n\t\tsetConfig(key, value) {\n\t\t\tthis.userConfigStore.update(key, value)\n\t\t},\n\n\t\tasync copyCloudId() {\n\t\t\tdocument.querySelector('input#webdav-url-input').select()\n\n\t\t\tif (!navigator.clipboard) {\n\t\t\t\t// Clipboard API not available\n\t\t\t\tshowError(t('files', 'Clipboard is not available'))\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tawait navigator.clipboard.writeText(this.webdavUrl)\n\t\t\tthis.webdavUrlCopied = true\n\t\t\tshowSuccess(t('files', 'WebDAV URL copied to clipboard'))\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.webdavUrlCopied = false\n\t\t\t}, 5000)\n\t\t},\n\n\t\tt: translate,\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.setting-link:hover {\n\ttext-decoration: underline;\n}\n</style>\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=style&index=0&id=23881b2c&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Settings.vue?vue&type=style&index=0&id=23881b2c&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Settings.vue?vue&type=template&id=23881b2c&scoped=true\"\nimport script from \"./Settings.vue?vue&type=script&lang=js\"\nexport * from \"./Settings.vue?vue&type=script&lang=js\"\nimport style0 from \"./Settings.vue?vue&type=style&index=0&id=23881b2c&prod&lang=scss&scoped=true\"\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 \"23881b2c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('Fragment',_vm._l((_vm.currentViews),function(view){return _c('NcAppNavigationItem',{key:view.id,staticClass:\"files-navigation__item\",style:(_vm.style),attrs:{\"allow-collapse\":\"\",\"loading\":view.loading,\"data-cy-files-navigation-item\":view.id,\"exact\":_vm.useExactRouteMatching(view),\"icon\":view.iconClass,\"name\":view.name,\"open\":_vm.isExpanded(view),\"pinned\":view.sticky,\"to\":_vm.generateToNavigation(view)},on:{\"update:open\":(open) => _vm.onOpen(open, view)},scopedSlots:_vm._u([(view.icon)?{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"svg\":view.icon}})]},proxy:true}:null],null,true)},[_vm._v(\" \"),(view.loadChildViews && !view.loaded)?_c('li',{staticStyle:{\"display\":\"none\"}}):_vm._e(),_vm._v(\" \"),(_vm.hasChildViews(view))?_c('FilesNavigationItem',{attrs:{\"parent\":view,\"level\":_vm.level + 1,\"views\":_vm.filterView(_vm.views, _vm.parent.id)}}):_vm._e()],1)}),1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { getNavigation } from '@nextcloud/files';\nimport { subscribe } from '@nextcloud/event-bus';\nimport { onMounted, onUnmounted, shallowRef, triggerRef } from 'vue';\n/**\n * Composable to get the currently active files view from the files navigation\n */\nexport function useNavigation() {\n const navigation = getNavigation();\n const views = shallowRef(navigation.views);\n const currentView = shallowRef(navigation.active);\n /**\n * Event listener to update the `currentView`\n * @param event The update event\n */\n function onUpdateActive(event) {\n currentView.value = event.detail;\n }\n /**\n * Event listener to update all registered views\n */\n function onUpdateViews() {\n views.value = navigation.views;\n triggerRef(views);\n }\n onMounted(() => {\n navigation.addEventListener('update', onUpdateViews);\n navigation.addEventListener('updateActive', onUpdateActive);\n subscribe('files:navigation:updated', onUpdateViews);\n });\n onUnmounted(() => {\n navigation.removeEventListener('update', onUpdateViews);\n navigation.removeEventListener('updateActive', onUpdateActive);\n });\n return {\n currentView,\n views,\n };\n}\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { 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 viewConfig = loadState('files', 'viewConfigs', {});\nexport const useViewConfigStore = function (...args) {\n const store = defineStore('viewconfig', {\n state: () => ({\n viewConfig,\n }),\n getters: {\n getConfig: (state) => (view) => state.viewConfig[view] || {},\n getConfigs: (state) => () => state.viewConfig,\n },\n actions: {\n /**\n * Update the view config local store\n * @param view\n * @param key\n * @param value\n */\n onUpdate(view, key, value) {\n if (!this.viewConfig[view]) {\n Vue.set(this.viewConfig, view, {});\n }\n Vue.set(this.viewConfig[view], key, value);\n },\n /**\n * Update the view config local store AND on server side\n * @param view\n * @param key\n * @param value\n */\n async update(view, key, value) {\n axios.put(generateUrl('/apps/files/api/v1/views'), {\n value,\n view,\n key,\n });\n emit('files:viewconfig:updated', { view, key, value });\n },\n /**\n * Set the sorting key AND sort by ASC\n * The key param must be a valid key of a File object\n * If not found, will be searched within the File attributes\n * @param key Key to sort by\n * @param view View to set the sorting key for\n */\n setSortingBy(key = 'basename', view = 'files') {\n // Save new config\n this.update(view, 'sorting_mode', key);\n this.update(view, 'sorting_direction', 'asc');\n },\n /**\n * Toggle the sorting direction\n * @param view view to set the sorting order for\n */\n toggleSortingDirection(view = 'files') {\n const config = this.getConfig(view) || { sorting_direction: 'asc' };\n const newDirection = config.sorting_direction === 'asc' ? 'desc' : 'asc';\n // Save new config\n this.update(view, 'sorting_direction', newDirection);\n },\n },\n });\n const viewConfigStore = store(...args);\n // Make sure we only register the listeners once\n if (!viewConfigStore._initialized) {\n subscribe('files:viewconfig:updated', function ({ view, key, value }) {\n viewConfigStore.onUpdate(view, key, value);\n });\n viewConfigStore._initialized = true;\n }\n return viewConfigStore;\n};\n","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!./FilesNavigationItem.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!./FilesNavigationItem.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./FilesNavigationItem.vue?vue&type=template&id=7a39a8a8\"\nimport script from \"./FilesNavigationItem.vue?vue&type=script&lang=ts\"\nexport * from \"./FilesNavigationItem.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 { subscribe } from '@nextcloud/event-bus';\nimport { FileListFilter } from '@nextcloud/files';\n/**\n * Simple file list filter controlled by the Navigation search box\n */\nexport class FilenameFilter extends FileListFilter {\n searchQuery = '';\n constructor() {\n super('files:filename', 5);\n subscribe('files:navigation:changed', () => this.updateQuery(''));\n }\n filter(nodes) {\n const queryParts = this.searchQuery.toLocaleLowerCase().split(' ').filter(Boolean);\n return nodes.filter((node) => {\n const displayname = node.displayname.toLocaleLowerCase();\n return queryParts.every((part) => displayname.includes(part));\n });\n }\n updateQuery(query) {\n query = (query || '').trim();\n // Only if the query is different we update the filter to prevent re-computing all nodes\n if (query !== this.searchQuery) {\n this.searchQuery = query;\n this.filterUpdated();\n const chips = [];\n if (query !== '') {\n chips.push({\n text: query,\n onclick: () => {\n this.updateQuery('');\n },\n });\n }\n this.updateChips(chips);\n // Emit the new query as it might have come not from the Navigation\n this.dispatchTypedEvent('update:query', new CustomEvent('update:query', { detail: query }));\n }\n }\n}\n","import { subscribe } from '@nextcloud/event-bus';\nimport { getFileListFilters } from '@nextcloud/files';\nimport { defineStore } from 'pinia';\nimport logger from '../logger';\nexport const useFiltersStore = defineStore('filters', {\n state: () => ({\n chips: {},\n filters: [],\n filtersChanged: false,\n }),\n getters: {\n /**\n * Currently active filter chips\n * @param state Internal state\n */\n activeChips(state) {\n return Object.values(state.chips).flat();\n },\n /**\n * Filters sorted by order\n * @param state Internal state\n */\n sortedFilters(state) {\n return state.filters.sort((a, b) => a.order - b.order);\n },\n /**\n * All filters that provide a UI for visual controlling the filter state\n */\n filtersWithUI() {\n return this.sortedFilters.filter((filter) => 'mount' in filter);\n },\n },\n actions: {\n addFilter(filter) {\n filter.addEventListener('update:chips', this.onFilterUpdateChips);\n filter.addEventListener('update:filter', this.onFilterUpdate);\n this.filters.push(filter);\n logger.debug('New file list filter registered', { id: filter.id });\n },\n removeFilter(filterId) {\n const index = this.filters.findIndex(({ id }) => id === filterId);\n if (index > -1) {\n const [filter] = this.filters.splice(index, 1);\n filter.removeEventListener('update:chips', this.onFilterUpdateChips);\n filter.removeEventListener('update:filter', this.onFilterUpdate);\n logger.debug('Files list filter unregistered', { id: filterId });\n }\n },\n onFilterUpdate() {\n this.filtersChanged = true;\n },\n onFilterUpdateChips(event) {\n const id = event.target.id;\n this.chips = { ...this.chips, [id]: [...event.detail] };\n logger.debug('File list filter chips updated', { filter: id, chips: event.detail });\n },\n init() {\n subscribe('files:filter:added', this.addFilter);\n subscribe('files:filter:removed', this.removeFilter);\n for (const filter of getFileListFilters()) {\n this.addFilter(filter);\n }\n },\n },\n});\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcAppNavigation',{staticClass:\"files-navigation\",attrs:{\"data-cy-files-navigation\":\"\",\"aria-label\":_vm.t('files', 'Files')},scopedSlots:_vm._u([{key:\"search\",fn:function(){return [_c('NcAppNavigationSearch',{attrs:{\"label\":_vm.t('files', 'Filter filenames…')},model:{value:(_vm.searchQuery),callback:function ($$v) {_vm.searchQuery=$$v},expression:\"searchQuery\"}})]},proxy:true},{key:\"default\",fn:function(){return [_c('NcAppNavigationList',{staticClass:\"files-navigation__list\",attrs:{\"aria-label\":_vm.t('files', 'Views')}},[_c('FilesNavigationItem',{attrs:{\"views\":_vm.viewMap}})],1),_vm._v(\" \"),_c('SettingsModal',{attrs:{\"open\":_vm.settingsOpened,\"data-cy-files-navigation-settings\":\"\"},on:{\"close\":_vm.onSettingsClose}})]},proxy:true},{key:\"footer\",fn:function(){return [_c('ul',{staticClass:\"app-navigation-entry__settings\"},[_c('NavigationQuota'),_vm._v(\" \"),_c('NcAppNavigationItem',{attrs:{\"name\":_vm.t('files', 'Files settings'),\"data-cy-files-navigation-settings-button\":\"\"},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.openSettings.apply(null, arguments)}}},[_c('IconCog',{attrs:{\"slot\":\"icon\",\"size\":20},slot:\"icon\"})],1)],1)]},proxy:true}])})\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!./Navigation.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!./Navigation.vue?vue&type=script&lang=ts\"","/*!\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { registerFileListFilter, unregisterFileListFilter } from '@nextcloud/files';\nimport { watchThrottled } from '@vueuse/core';\nimport { onMounted, onUnmounted, ref } from 'vue';\nimport { FilenameFilter } from '../filters/FilenameFilter';\n/**\n * This is for the `Navigation` component to provide a filename filter\n */\nexport function useFilenameFilter() {\n const searchQuery = ref('');\n const filenameFilter = new FilenameFilter();\n /**\n * Updating the search query ref from the filter\n * @param event The update:query event\n */\n function updateQuery(event) {\n if (event.type === 'update:query') {\n searchQuery.value = event.detail;\n event.stopPropagation();\n }\n }\n onMounted(() => {\n filenameFilter.addEventListener('update:query', updateQuery);\n registerFileListFilter(filenameFilter);\n });\n onUnmounted(() => {\n filenameFilter.removeEventListener('update:query', updateQuery);\n unregisterFileListFilter(filenameFilter.id);\n });\n // Update the query on the filter, but throttle to max. every 800ms\n // This will debounce the filter refresh\n watchThrottled(searchQuery, () => {\n filenameFilter.updateQuery(searchQuery.value);\n }, { throttle: 800 });\n return {\n searchQuery,\n };\n}\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Navigation.vue?vue&type=style&index=0&id=11366bf7&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Navigation.vue?vue&type=style&index=0&id=11366bf7&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Navigation.vue?vue&type=template&id=11366bf7&scoped=true\"\nimport script from \"./Navigation.vue?vue&type=script&lang=ts\"\nexport * from \"./Navigation.vue?vue&type=script&lang=ts\"\nimport style0 from \"./Navigation.vue?vue&type=style&index=0&id=11366bf7&prod&scoped=true&lang=scss\"\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 \"11366bf7\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcAppContent',{attrs:{\"page-heading\":_vm.pageHeading,\"data-cy-files-content\":\"\"}},[_c('div',{staticClass:\"files-list__header\",class:{ 'files-list__header--public': _vm.isPublic }},[_c('BreadCrumbs',{attrs:{\"path\":_vm.directory},on:{\"reload\":_vm.fetchContent},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [(_vm.canShare && _vm.filesListWidth >= 512)?_c('NcButton',{staticClass:\"files-list__header-share-button\",class:{ 'files-list__header-share-button--shared': _vm.shareButtonType },attrs:{\"aria-label\":_vm.shareButtonLabel,\"title\":_vm.shareButtonLabel,\"type\":\"tertiary\"},on:{\"click\":_vm.openSharingSidebar},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.shareButtonType === _vm.Type.SHARE_TYPE_LINK)?_c('LinkIcon'):_c('AccountPlusIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,2969853559)}):_vm._e(),_vm._v(\" \"),(!_vm.canUpload || _vm.isQuotaExceeded)?_c('NcButton',{staticClass:\"files-list__header-upload-button--disabled\",attrs:{\"aria-label\":_vm.cantUploadLabel,\"title\":_vm.cantUploadLabel,\"disabled\":true,\"type\":\"secondary\"},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('PlusIcon',{attrs:{\"size\":20}})]},proxy:true}],null,false,2953566425)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'New'))+\"\\n\\t\\t\\t\\t\")]):(_vm.currentFolder)?_c('UploadPicker',{staticClass:\"files-list__header-upload-button\",attrs:{\"allow-folders\":\"\",\"content\":_vm.getContent,\"destination\":_vm.currentFolder,\"forbidden-characters\":_vm.forbiddenCharacters,\"multiple\":\"\"},on:{\"failed\":_vm.onUploadFail,\"uploaded\":_vm.onUpload}}):_vm._e()]},proxy:true}])}),_vm._v(\" \"),(_vm.isRefreshing)?_c('NcLoadingIcon',{staticClass:\"files-list__refresh-icon\"}):_vm._e(),_vm._v(\" \"),(_vm.filesListWidth >= 512 && _vm.enableGridView)?_c('NcButton',{staticClass:\"files-list__header-grid-button\",attrs:{\"aria-label\":_vm.gridViewButtonLabel,\"title\":_vm.gridViewButtonLabel,\"type\":\"tertiary\"},on:{\"click\":_vm.toggleGridView},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.userConfig.grid_view)?_c('ListViewIcon'):_c('ViewGridIcon')]},proxy:true}],null,false,1682960703)}):_vm._e()],1),_vm._v(\" \"),(!_vm.loading && _vm.canUpload)?_c('DragAndDropNotice',{attrs:{\"current-folder\":_vm.currentFolder}}):_vm._e(),_vm._v(\" \"),(_vm.loading && !_vm.isRefreshing)?_c('NcLoadingIcon',{staticClass:\"files-list__loading-icon\",attrs:{\"size\":38,\"name\":_vm.t('files', 'Loading current folder')}}):(!_vm.loading && _vm.isEmptyDir)?[(_vm.error)?_c('NcEmptyContent',{attrs:{\"name\":_vm.error,\"data-cy-files-content-error\":\"\"},scopedSlots:_vm._u([{key:\"action\",fn:function(){return [_c('NcButton',{attrs:{\"type\":\"secondary\"},on:{\"click\":_vm.fetchContent},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconReload',{attrs:{\"size\":20}})]},proxy:true}],null,false,3448385010)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Retry'))+\"\\n\\t\\t\\t\\t\")])]},proxy:true},{key:\"icon\",fn:function(){return [_c('IconAlertCircleOutline')]},proxy:true}],null,false,2673163798)}):(_vm.currentView?.emptyView)?_c('div',{staticClass:\"files-list__empty-view-wrapper\"},[_c('div',{ref:\"customEmptyView\"})]):_c('NcEmptyContent',{attrs:{\"name\":_vm.currentView?.emptyTitle || _vm.t('files', 'No files in here'),\"description\":_vm.currentView?.emptyCaption || _vm.t('files', 'Upload some content or sync with your devices!'),\"data-cy-files-content-empty\":\"\"},scopedSlots:_vm._u([(_vm.directory !== '/')?{key:\"action\",fn:function(){return [(_vm.canUpload && !_vm.isQuotaExceeded)?_c('UploadPicker',{staticClass:\"files-list__header-upload-button\",attrs:{\"allow-folders\":\"\",\"content\":_vm.getContent,\"destination\":_vm.currentFolder,\"forbidden-characters\":_vm.forbiddenCharacters,\"multiple\":\"\"},on:{\"failed\":_vm.onUploadFail,\"uploaded\":_vm.onUpload}}):_c('NcButton',{attrs:{\"to\":_vm.toPreviousDir,\"type\":\"primary\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Go back'))+\"\\n\\t\\t\\t\\t\")])]},proxy:true}:null,{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"svg\":_vm.currentView.icon}})]},proxy:true}],null,true)})]:_c('FilesListVirtual',{ref:\"filesListVirtual\",attrs:{\"current-folder\":_vm.currentFolder,\"current-view\":_vm.currentView,\"nodes\":_vm.dirContentsSorted}})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : true\"\n :aria-label=\"title\"\n class=\"material-design-icon reload-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M2 12C2 16.97 6.03 21 11 21C13.39 21 15.68 20.06 17.4 18.4L15.9 16.9C14.63 18.25 12.86 19 11 19C4.76 19 1.64 11.46 6.05 7.05C10.46 2.64 18 5.77 18 12H15L19 16H19.1L23 12H20C20 7.03 15.97 3 11 3C6.03 3 2 7.03 2 12Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"ReloadIcon\",\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}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Reload.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Reload.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Reload.vue?vue&type=template&id=23837d1a\"\nimport script from \"./Reload.vue?vue&type=script&lang=js\"\nexport * from \"./Reload.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon reload-icon\",attrs:{\"aria-hidden\":_vm.title ? null : true,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M2 12C2 16.97 6.03 21 11 21C13.39 21 15.68 20.06 17.4 18.4L15.9 16.9C14.63 18.25 12.86 19 11 19C4.76 19 1.64 11.46 6.05 7.05C10.46 2.64 18 5.77 18 12H15L19 16H19.1L23 12H20C20 7.03 15.97 3 11 3C6.03 3 2 7.03 2 12Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : true\"\n :aria-label=\"title\"\n class=\"material-design-icon format-list-bulleted-square-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M3,4H7V8H3V4M9,5V7H21V5H9M3,10H7V14H3V10M9,11V13H21V11H9M3,16H7V20H3V16M9,17V19H21V17H9\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"FormatListBulletedSquareIcon\",\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}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./FormatListBulletedSquare.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./FormatListBulletedSquare.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./FormatListBulletedSquare.vue?vue&type=template&id=00aea13f\"\nimport script from \"./FormatListBulletedSquare.vue?vue&type=script&lang=js\"\nexport * from \"./FormatListBulletedSquare.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon format-list-bulleted-square-icon\",attrs:{\"aria-hidden\":_vm.title ? null : true,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M3,4H7V8H3V4M9,5V7H21V5H9M3,10H7V14H3V10M9,11V13H21V11H9M3,16H7V20H3V16M9,17V19H21V17H9\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : true\"\n :aria-label=\"title\"\n class=\"material-design-icon account-plus-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M15,14C12.33,14 7,15.33 7,18V20H23V18C23,15.33 17.67,14 15,14M6,10V7H4V10H1V12H4V15H6V12H9V10M15,12A4,4 0 0,0 19,8A4,4 0 0,0 15,4A4,4 0 0,0 11,8A4,4 0 0,0 15,12Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"AccountPlusIcon\",\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}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./AccountPlus.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./AccountPlus.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./AccountPlus.vue?vue&type=template&id=a16afc28\"\nimport script from \"./AccountPlus.vue?vue&type=script&lang=js\"\nexport * from \"./AccountPlus.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon account-plus-icon\",attrs:{\"aria-hidden\":_vm.title ? null : true,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M15,14C12.33,14 7,15.33 7,18V20H23V18C23,15.33 17.67,14 15,14M6,10V7H4V10H1V12H4V15H6V12H9V10M15,12A4,4 0 0,0 19,8A4,4 0 0,0 15,4A4,4 0 0,0 11,8A4,4 0 0,0 15,12Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ViewGrid.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ViewGrid.vue?vue&type=script&lang=js\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : true\"\n :aria-label=\"title\"\n class=\"material-design-icon view-grid-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M3,11H11V3H3M3,21H11V13H3M13,21H21V13H13M13,3V11H21V3\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"ViewGridIcon\",\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}\n</script>","import { render, staticRenderFns } from \"./ViewGrid.vue?vue&type=template&id=7b96a104\"\nimport script from \"./ViewGrid.vue?vue&type=script&lang=js\"\nexport * from \"./ViewGrid.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon view-grid-icon\",attrs:{\"aria-hidden\":_vm.title ? null : true,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M3,11H11V3H3M3,21H11V13H3M13,21H21V13H13M13,3V11H21V3\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Permission, FileAction } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport { isPublicShare } from '@nextcloud/sharing/public';\nimport InformationSvg from '@mdi/svg/svg/information-variant.svg?raw';\nimport logger from '../logger.ts';\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 if (isPublicShare()) {\n return false;\n }\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 // Open sidebar and set active tab to sharing by default\n window.OCA.Files.Sidebar.setActiveTab('sharing');\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: String(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: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { computed } from 'vue';\nimport { useRoute } from 'vue-router/composables';\n/**\n * Get information about the current route\n */\nexport function useRouteParameters() {\n const route = useRoute();\n /**\n * Get the path of the current active directory\n */\n const directory = computed(() => String(route.query.dir || '/')\n // Remove any trailing slash but leave root slash\n .replace(/^(.+)\\/$/, '$1'));\n /**\n * Get the current fileId used on the route\n */\n const fileId = computed(() => {\n const fileId = Number.parseInt(route.params.fileid ?? '0') || null;\n return Number.isNaN(fileId) ? null : fileId;\n });\n /**\n * State of `openFile` route param\n */\n const openFile = computed(\n // if `openfile` is set it is considered truthy, but allow to explicitly set it to 'false'\n () => 'openfile' in route.query && (typeof route.query.openfile !== 'string' || route.query.openfile.toLocaleLowerCase() !== 'false'));\n return {\n /** Path of currently open directory */\n directory,\n /** Current active fileId */\n fileId,\n /** Should the active node should be opened (`openFile` route param) */\n openFile,\n };\n}\n","/*!\n * vue-router v3.6.5\n * (c) 2022 Evan You\n * @license MIT\n */\nimport { getCurrentInstance, effectScope, shallowReactive, onUnmounted, computed, unref } from 'vue';\n\n// dev only warn if no current instance\n\nfunction throwNoCurrentInstance (method) {\n if (!getCurrentInstance()) {\n throw new Error(\n (\"[vue-router]: Missing current instance. \" + method + \"() must be called inside <script setup> or setup().\")\n )\n }\n}\n\nfunction useRouter () {\n if (process.env.NODE_ENV !== 'production') {\n throwNoCurrentInstance('useRouter');\n }\n\n return getCurrentInstance().proxy.$root.$router\n}\n\nfunction useRoute () {\n if (process.env.NODE_ENV !== 'production') {\n throwNoCurrentInstance('useRoute');\n }\n\n var root = getCurrentInstance().proxy.$root;\n if (!root._$route) {\n var route = effectScope(true).run(function () { return shallowReactive(Object.assign({}, root.$router.currentRoute)); }\n );\n root._$route = route;\n\n root.$router.afterEach(function (to) {\n Object.assign(route, to);\n });\n }\n\n return root._$route\n}\n\nfunction onBeforeRouteUpdate (guard) {\n if (process.env.NODE_ENV !== 'production') {\n throwNoCurrentInstance('onBeforeRouteUpdate');\n }\n\n return useFilteredGuard(guard, isUpdateNavigation)\n}\nfunction isUpdateNavigation (to, from, depth) {\n var toMatched = to.matched;\n var fromMatched = from.matched;\n return (\n toMatched.length >= depth &&\n toMatched\n .slice(0, depth + 1)\n .every(function (record, i) { return record === fromMatched[i]; })\n )\n}\n\nfunction isLeaveNavigation (to, from, depth) {\n var toMatched = to.matched;\n var fromMatched = from.matched;\n return toMatched.length < depth || toMatched[depth] !== fromMatched[depth]\n}\n\nfunction onBeforeRouteLeave (guard) {\n if (process.env.NODE_ENV !== 'production') {\n throwNoCurrentInstance('onBeforeRouteLeave');\n }\n\n return useFilteredGuard(guard, isLeaveNavigation)\n}\n\nvar noop = function () {};\nfunction useFilteredGuard (guard, fn) {\n var instance = getCurrentInstance();\n var router = useRouter();\n\n var target = instance.proxy;\n // find the nearest RouterView to know the depth\n while (\n target &&\n target.$vnode &&\n target.$vnode.data &&\n target.$vnode.data.routerViewDepth == null\n ) {\n target = target.$parent;\n }\n\n var depth =\n target && target.$vnode && target.$vnode.data\n ? target.$vnode.data.routerViewDepth\n : null;\n\n if (depth != null) {\n var removeGuard = router.beforeEach(function (to, from, next) {\n return fn(to, from, depth) ? guard(to, from, next) : next()\n });\n\n onUnmounted(removeGuard);\n return removeGuard\n }\n\n return noop\n}\n\n/* */\n\nfunction guardEvent (e) {\n // don't redirect with control keys\n if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) { return }\n // don't redirect when preventDefault called\n if (e.defaultPrevented) { return }\n // don't redirect on right click\n if (e.button !== undefined && e.button !== 0) { return }\n // don't redirect if `target=\"_blank\"`\n if (e.currentTarget && e.currentTarget.getAttribute) {\n var target = e.currentTarget.getAttribute('target');\n if (/\\b_blank\\b/i.test(target)) { return }\n }\n // this may be a Weex event which doesn't have this method\n if (e.preventDefault) {\n e.preventDefault();\n }\n return true\n}\n\nfunction includesParams (outer, inner) {\n var loop = function ( key ) {\n var innerValue = inner[key];\n var outerValue = outer[key];\n if (typeof innerValue === 'string') {\n if (innerValue !== outerValue) { return { v: false } }\n } else {\n if (\n !Array.isArray(outerValue) ||\n outerValue.length !== innerValue.length ||\n innerValue.some(function (value, i) { return value !== outerValue[i]; })\n ) {\n return { v: false }\n }\n }\n };\n\n for (var key in inner) {\n var returned = loop( key );\n\n if ( returned ) return returned.v;\n }\n\n return true\n}\n\n// helpers from vue router 4\n\nfunction isSameRouteLocationParamsValue (a, b) {\n return Array.isArray(a)\n ? isEquivalentArray(a, b)\n : Array.isArray(b)\n ? isEquivalentArray(b, a)\n : a === b\n}\n\nfunction isEquivalentArray (a, b) {\n return Array.isArray(b)\n ? a.length === b.length && a.every(function (value, i) { return value === b[i]; })\n : a.length === 1 && a[0] === b\n}\n\nfunction isSameRouteLocationParams (a, b) {\n if (Object.keys(a).length !== Object.keys(b).length) { return false }\n\n for (var key in a) {\n if (!isSameRouteLocationParamsValue(a[key], b[key])) { return false }\n }\n\n return true\n}\n\nfunction useLink (props) {\n if (process.env.NODE_ENV !== 'production') {\n throwNoCurrentInstance('useLink');\n }\n\n var router = useRouter();\n var currentRoute = useRoute();\n\n var resolvedRoute = computed(function () { return router.resolve(unref(props.to), currentRoute); });\n\n var activeRecordIndex = computed(function () {\n var route = resolvedRoute.value.route;\n var matched = route.matched;\n var length = matched.length;\n var routeMatched = matched[length - 1];\n var currentMatched = currentRoute.matched;\n if (!routeMatched || !currentMatched.length) { return -1 }\n var index = currentMatched.indexOf(routeMatched);\n if (index > -1) { return index }\n // possible parent record\n var parentRecord = currentMatched[currentMatched.length - 2];\n\n return (\n // we are dealing with nested routes\n length > 1 &&\n // if the parent and matched route have the same path, this link is\n // referring to the empty child. Or we currently are on a different\n // child of the same parent\n parentRecord && parentRecord === routeMatched.parent\n )\n });\n\n var isActive = computed(\n function () { return activeRecordIndex.value > -1 &&\n includesParams(currentRoute.params, resolvedRoute.value.route.params); }\n );\n var isExactActive = computed(\n function () { return activeRecordIndex.value > -1 &&\n activeRecordIndex.value === currentRoute.matched.length - 1 &&\n isSameRouteLocationParams(currentRoute.params, resolvedRoute.value.route.params); }\n );\n\n var navigate = function (e) {\n var href = resolvedRoute.value.route;\n if (guardEvent(e)) {\n return props.replace\n ? router.replace(href)\n : router.push(href)\n }\n return Promise.resolve()\n };\n\n return {\n href: computed(function () { return resolvedRoute.value.href; }),\n route: computed(function () { return resolvedRoute.value.route; }),\n isExactActive: isExactActive,\n isActive: isActive,\n navigate: navigate\n }\n}\n\nexport { isSameRouteLocationParams, onBeforeRouteLeave, onBeforeRouteUpdate, useLink, useRoute, useRouter };\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { davGetClient, davGetDefaultPropfind, davResultToNode, davRootPath } from '@nextcloud/files';\nexport const client = davGetClient();\nexport const fetchNode = async (node) => {\n const propfindPayload = davGetDefaultPropfind();\n const result = await client.stat(`${davRootPath}${node.path}`, {\n details: true,\n data: propfindPayload,\n });\n return davResultToNode(result.data);\n};\n","import { defineStore } from 'pinia';\nimport { FileType, Folder, Node, getNavigation } from '@nextcloud/files';\nimport { subscribe } from '@nextcloud/event-bus';\nimport Vue from 'vue';\nimport logger from '../logger';\nimport { useFilesStore } from './files';\nexport const usePathsStore = function (...args) {\n const files = useFilesStore(...args);\n const store = defineStore('paths', {\n state: () => ({\n paths: {},\n }),\n getters: {\n getPath: (state) => {\n return (service, path) => {\n if (!state.paths[service]) {\n return undefined;\n }\n return state.paths[service][path];\n };\n },\n },\n actions: {\n addPath(payload) {\n // If it doesn't exists, init the service state\n if (!this.paths[payload.service]) {\n Vue.set(this.paths, payload.service, {});\n }\n // Now we can set the provided path\n Vue.set(this.paths[payload.service], payload.path, payload.source);\n },\n deletePath(service, path) {\n // skip if service does not exist\n if (!this.paths[service]) {\n return;\n }\n Vue.delete(this.paths[service], path);\n },\n onDeletedNode(node) {\n const service = getNavigation()?.active?.id || 'files';\n if (node.type === FileType.Folder) {\n // Delete the path\n this.deletePath(service, node.path);\n }\n // Remove node from children\n if (node.dirname === '/') {\n const root = files.getRoot(service);\n // ensure sources are unique\n const children = new Set(root._children ?? []);\n children.delete(node.source);\n Vue.set(root, '_children', [...children.values()]);\n return;\n }\n if (this.paths[service][node.dirname]) {\n const parentSource = this.paths[service][node.dirname];\n const parentFolder = files.getNode(parentSource);\n if (!parentFolder) {\n logger.error('Parent folder not found', { parentSource });\n return;\n }\n logger.debug('Path exists, removing from children', { parentFolder, node });\n // ensure sources are unique\n const children = new Set(parentFolder._children ?? []);\n children.delete(node.source);\n Vue.set(parentFolder, '_children', [...children.values()]);\n return;\n }\n logger.debug('Parent path does not exists, skipping children update', { node });\n },\n onCreatedNode(node) {\n const service = getNavigation()?.active?.id || 'files';\n if (!node.fileid) {\n logger.error('Node has no fileid', { node });\n return;\n }\n // Only add path if it's a folder\n if (node.type === FileType.Folder) {\n this.addPath({\n service,\n path: node.path,\n source: node.source,\n });\n }\n // Update parent folder children if exists\n // If the folder is the root, get it and update it\n if (node.dirname === '/') {\n const root = files.getRoot(service);\n // ensure sources are unique\n const children = new Set(root._children ?? []);\n children.add(node.source);\n Vue.set(root, '_children', [...children.values()]);\n return;\n }\n // If the folder doesn't exists yet, it will be\n // fetched later and its children updated anyway.\n if (this.paths[service][node.dirname]) {\n const parentSource = this.paths[service][node.dirname];\n const parentFolder = files.getNode(parentSource);\n logger.debug('Path already exists, updating children', { parentFolder, node });\n if (!parentFolder) {\n logger.error('Parent folder not found', { parentSource });\n return;\n }\n // ensure sources are unique\n const children = new Set(parentFolder._children ?? []);\n children.add(node.source);\n Vue.set(parentFolder, '_children', [...children.values()]);\n return;\n }\n logger.debug('Parent path does not exists, skipping children update', { node });\n },\n },\n });\n const pathsStore = store(...args);\n // Make sure we only register the listeners once\n if (!pathsStore._initialized) {\n // TODO: watch folders to update paths?\n subscribe('files:node:created', pathsStore.onCreatedNode);\n subscribe('files:node:deleted', pathsStore.onDeletedNode);\n // subscribe('files:node:moved', pathsStore.onMovedNode)\n pathsStore._initialized = true;\n }\n return pathsStore;\n};\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { defineStore } from 'pinia';\nimport { subscribe } from '@nextcloud/event-bus';\nimport logger from '../logger';\nimport Vue from 'vue';\nimport { fetchNode } from '../services/WebdavClient.ts';\nimport { usePathsStore } from './paths.ts';\nexport const useFilesStore = function (...args) {\n const store = defineStore('files', {\n state: () => ({\n files: {},\n roots: {},\n }),\n getters: {\n /**\n * Get a file or folder by its source\n * @param state\n */\n getNode: (state) => (source) => state.files[source],\n /**\n * Get a list of files or folders by their IDs\n * Note: does not return undefined values\n * @param state\n */\n getNodes: (state) => (sources) => sources\n .map(source => state.files[source])\n .filter(Boolean),\n /**\n * Get files or folders by their file ID\n * Multiple nodes can have the same file ID but different sources\n * (e.g. in a shared context)\n * @param state\n */\n getNodesById: (state) => (fileId) => Object.values(state.files).filter(node => node.fileid === fileId),\n /**\n * Get the root folder of a service\n * @param state\n */\n getRoot: (state) => (service) => state.roots[service],\n },\n actions: {\n /**\n * Get cached nodes within a given path\n *\n * @param service The service (files view)\n * @param path The path relative within the service\n * @returns Array of cached nodes within the path\n */\n getNodesByPath(service, path) {\n const pathsStore = usePathsStore();\n let folder;\n // Get the containing folder from path store\n if (!path || path === '/') {\n folder = this.getRoot(service);\n }\n else {\n const source = pathsStore.getPath(service, path);\n if (source) {\n folder = this.getNode(source);\n }\n }\n // If we found a cache entry and the cache entry was already loaded (has children) then use it\n return (folder?._children ?? [])\n .map((source) => this.getNode(source))\n .filter(Boolean);\n },\n updateNodes(nodes) {\n // Update the store all at once\n const files = nodes.reduce((acc, node) => {\n if (!node.fileid) {\n logger.error('Trying to update/set a node without fileid', { node });\n return acc;\n }\n acc[node.source] = node;\n return acc;\n }, {});\n Vue.set(this, 'files', { ...this.files, ...files });\n },\n deleteNodes(nodes) {\n nodes.forEach(node => {\n if (node.source) {\n Vue.delete(this.files, node.source);\n }\n });\n },\n setRoot({ service, root }) {\n Vue.set(this.roots, service, root);\n },\n onDeletedNode(node) {\n this.deleteNodes([node]);\n },\n onCreatedNode(node) {\n this.updateNodes([node]);\n },\n async onUpdatedNode(node) {\n if (!node.fileid) {\n logger.error('Trying to update/set a node without fileid', { node });\n return;\n }\n // If we have multiple nodes with the same file ID, we need to update all of them\n const nodes = this.getNodesById(node.fileid);\n if (nodes.length > 1) {\n await Promise.all(nodes.map(fetchNode)).then(this.updateNodes);\n logger.debug(nodes.length + ' nodes updated in store', { fileid: node.fileid });\n return;\n }\n // If we have only one node with the file ID, we can update it directly\n if (node.source === nodes[0].source) {\n this.updateNodes([node]);\n return;\n }\n // Otherwise, it means we receive an event for a node that is not in the store\n fetchNode(node).then(n => this.updateNodes([n]));\n },\n },\n });\n const fileStore = store(...args);\n // Make sure we only register the listeners once\n if (!fileStore._initialized) {\n subscribe('files:node:created', fileStore.onCreatedNode);\n subscribe('files:node:deleted', fileStore.onDeletedNode);\n subscribe('files:node:updated', fileStore.onUpdatedNode);\n fileStore._initialized = true;\n }\n return fileStore;\n};\n","import { defineStore } from 'pinia';\nimport Vue from 'vue';\nexport const useSelectionStore = defineStore('selection', {\n state: () => ({\n selected: [],\n lastSelection: [],\n lastSelectedIndex: null,\n }),\n actions: {\n /**\n * Set the selection of fileIds\n * @param selection\n */\n set(selection = []) {\n Vue.set(this, 'selected', [...new Set(selection)]);\n },\n /**\n * Set the last selected index\n * @param lastSelectedIndex\n */\n setLastIndex(lastSelectedIndex = null) {\n // Update the last selection if we provided a new selection starting point\n Vue.set(this, 'lastSelection', lastSelectedIndex ? this.selected : []);\n Vue.set(this, 'lastSelectedIndex', lastSelectedIndex);\n },\n /**\n * Reset the selection\n */\n reset() {\n Vue.set(this, 'selected', []);\n Vue.set(this, 'lastSelection', []);\n Vue.set(this, 'lastSelectedIndex', null);\n },\n },\n});\n","import { defineStore } from 'pinia';\nimport { getUploader } from '@nextcloud/upload';\nlet uploader;\nexport const useUploaderStore = function (...args) {\n // Only init on runtime\n uploader = getUploader();\n const store = defineStore('uploader', {\n state: () => ({\n queue: uploader.queue,\n }),\n });\n return store(...args);\n};\n","import { emit } from '@nextcloud/event-bus';\nimport { Folder, Node, davGetClient, davGetDefaultPropfind, davResultToNode } from '@nextcloud/files';\nimport { openConflictPicker } from '@nextcloud/upload';\nimport { showError, showInfo } from '@nextcloud/dialogs';\nimport { translate as t } from '@nextcloud/l10n';\nimport logger from '../logger.ts';\n/**\n * This represents a Directory in the file tree\n * We extend the File class to better handling uploading\n * and stay as close as possible as the Filesystem API.\n * This also allow us to hijack the size or lastModified\n * properties to compute them dynamically.\n */\nexport class Directory extends File {\n /* eslint-disable no-use-before-define */\n _contents;\n constructor(name, contents = []) {\n super([], name, { type: 'httpd/unix-directory' });\n this._contents = contents;\n }\n set contents(contents) {\n this._contents = contents;\n }\n get contents() {\n return this._contents;\n }\n get size() {\n return this._computeDirectorySize(this);\n }\n get lastModified() {\n if (this._contents.length === 0) {\n return Date.now();\n }\n return this._computeDirectoryMtime(this);\n }\n /**\n * Get the last modification time of a file tree\n * This is not perfect, but will get us a pretty good approximation\n * @param directory the directory to traverse\n */\n _computeDirectoryMtime(directory) {\n return directory.contents.reduce((acc, file) => {\n return file.lastModified > acc\n // If the file is a directory, the lastModified will\n // also return the results of its _computeDirectoryMtime method\n // Fancy recursion, huh?\n ? file.lastModified\n : acc;\n }, 0);\n }\n /**\n * Get the size of a file tree\n * @param directory the directory to traverse\n */\n _computeDirectorySize(directory) {\n return directory.contents.reduce((acc, entry) => {\n // If the file is a directory, the size will\n // also return the results of its _computeDirectorySize method\n // Fancy recursion, huh?\n return acc + entry.size;\n }, 0);\n }\n}\n/**\n * Traverse a file tree using the Filesystem API\n * @param entry the entry to traverse\n */\nexport const traverseTree = async (entry) => {\n // Handle file\n if (entry.isFile) {\n return new Promise((resolve, reject) => {\n entry.file(resolve, reject);\n });\n }\n // Handle directory\n logger.debug('Handling recursive file tree', { entry: entry.name });\n const directory = entry;\n const entries = await readDirectory(directory);\n const contents = (await Promise.all(entries.map(traverseTree))).flat();\n return new Directory(directory.name, contents);\n};\n/**\n * Read a directory using Filesystem API\n * @param directory the directory to read\n */\nconst readDirectory = (directory) => {\n const dirReader = directory.createReader();\n return new Promise((resolve, reject) => {\n const entries = [];\n const getEntries = () => {\n dirReader.readEntries((results) => {\n if (results.length) {\n entries.push(...results);\n getEntries();\n }\n else {\n resolve(entries);\n }\n }, (error) => {\n reject(error);\n });\n };\n getEntries();\n });\n};\nexport const createDirectoryIfNotExists = async (absolutePath) => {\n const davClient = davGetClient();\n const dirExists = await davClient.exists(absolutePath);\n if (!dirExists) {\n logger.debug('Directory does not exist, creating it', { absolutePath });\n await davClient.createDirectory(absolutePath, { recursive: true });\n const stat = await davClient.stat(absolutePath, { details: true, data: davGetDefaultPropfind() });\n emit('files:node:created', davResultToNode(stat.data));\n }\n};\nexport const resolveConflict = async (files, destination, contents) => {\n try {\n // List all conflicting files\n const conflicts = files.filter((file) => {\n return contents.find((node) => node.basename === (file instanceof File ? file.name : file.basename));\n }).filter(Boolean);\n // List of incoming files that are NOT in conflict\n const uploads = files.filter((file) => {\n return !conflicts.includes(file);\n });\n // Let the user choose what to do with the conflicting files\n const { selected, renamed } = await openConflictPicker(destination.path, conflicts, contents);\n logger.debug('Conflict resolution', { uploads, selected, renamed });\n // If the user selected nothing, we cancel the upload\n if (selected.length === 0 && renamed.length === 0) {\n // User skipped\n showInfo(t('files', 'Conflicts resolution skipped'));\n logger.info('User skipped the conflict resolution');\n return [];\n }\n // Update the list of files to upload\n return [...uploads, ...selected, ...renamed];\n }\n catch (error) {\n console.error(error);\n // User cancelled\n showError(t('files', 'Upload cancelled'));\n logger.error('User cancelled the upload');\n }\n return [];\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 { isPublicShare } from '@nextcloud/sharing/public';\nimport PQueue from 'p-queue';\nimport { loadState } from '@nextcloud/initial-state';\nconst sharePermissions = loadState('files_sharing', 'sharePermissions', Permission.NONE);\n// This is the processing queue. We only want to allow 3 concurrent requests\nlet queue;\n// Maximum number of concurrent operations\nconst MAX_CONCURRENCY = 5;\n/**\n * Get the processing queue\n */\nexport const getQueue = () => {\n if (!queue) {\n queue = new PQueue({ concurrency: MAX_CONCURRENCY });\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 Boolean(minPermission & Permission.DELETE);\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.value === false && attribute.key === 'download');\n });\n};\nexport const canCopy = (nodes) => {\n // a shared file cannot be copied if the download is disabled\n if (!canDownload(nodes)) {\n return false;\n }\n // it cannot be copied if the user has only view permissions\n if (nodes.some((node) => node.permissions === Permission.NONE)) {\n return false;\n }\n // on public shares all files have the same permission so copy is only possible if write permission is granted\n if (isPublicShare()) {\n return Boolean(sharePermissions & Permission.CREATE);\n }\n // otherwise permission is granted\n return true;\n};\n","import { davGetDefaultPropfind, davResultToNode, davRootPath } from '@nextcloud/files';\nimport { CancelablePromise } from 'cancelable-promise';\nimport { join } from 'path';\nimport { client } from './WebdavClient.ts';\nimport logger from '../logger.ts';\n/**\n * Slim wrapper over `@nextcloud/files` `davResultToNode` to allow using the function with `Array.map`\n * @param stat The result returned by the webdav library\n */\nexport const resultToNode = (stat) => davResultToNode(stat);\nexport const getContents = (path = '/') => {\n path = join(davRootPath, path);\n const controller = new AbortController();\n const propfindPayload = davGetDefaultPropfind();\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","import { isAxiosError } from '@nextcloud/axios';\nimport { FilePickerClosed, getFilePickerBuilder, showError, showInfo, TOAST_PERMANENT_TIMEOUT } from '@nextcloud/dialogs';\nimport { emit } from '@nextcloud/event-bus';\nimport { FileAction, FileType, NodeStatus, davGetClient, davRootPath, davResultToNode, davGetDefaultPropfind, getUniqueName, Permission } 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';\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 * Create a loading notification toast\n * @param mode The move or copy mode\n * @param source Name of the node that is copied / moved\n * @param destination Destination path\n * @return {() => void} Function to hide the notification\n */\nfunction createLoadingNotification(mode, source, destination) {\n const text = mode === MoveCopyAction.MOVE ? t('files', 'Moving \"{source}\" to \"{destination}\" …', { source, destination }) : t('files', 'Copying \"{source}\" to \"{destination}\" …', { source, destination });\n let toast;\n toast = showInfo(`<span class=\"icon icon-loading-small toast-loading-icon\"></span> ${text}`, {\n isHTML: true,\n timeout: TOAST_PERMANENT_TIMEOUT,\n onRemove: () => { toast?.hideToast(); toast = undefined; },\n });\n return () => toast && toast.hideToast();\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 actionFinished = createLoadingNotification(method, node.basename, destination.path);\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 if (!overwrite) {\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 // two empty arrays: either only old files or conflict skipped -> no action required\n if (!selected.length && !renamed.length) {\n return;\n }\n }\n catch (error) {\n // User cancelled\n showError(t('files', 'Move cancelled'));\n return;\n }\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', '');\n actionFinished();\n }\n });\n};\n/**\n * Open a file picker for the given action\n * @param action The action to open the file picker for\n * @param dir The directory to start the file picker in\n * @param nodes The nodes to move/copy\n * @return The picked destination or false if cancelled by user\n */\nasync function openFilePickerForAction(action, dir = '/', nodes) {\n const { resolve, reject, promise } = Promise.withResolvers();\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 .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 disabled: selection.some((node) => (node.permissions & Permission.CREATE) === 0),\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 .build();\n filePicker.pick()\n .catch((error) => {\n logger.debug(error);\n if (error instanceof FilePickerClosed) {\n resolve(false);\n }\n else {\n reject(new Error(t('files', 'Move or copy operation failed')));\n }\n });\n return promise;\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, view) {\n // We can not copy or move in single file shares\n if (view.id === 'public-file-share') {\n return false;\n }\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 if (result === false) {\n showInfo(t('files', 'Cancelled move or copy of \"{filename}\".', { filename: node.displayname }));\n return null;\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 // Handle cancellation silently\n if (result === false) {\n showInfo(nodes.length === 1\n ? t('files', 'Cancelled move or copy of \"{filename}\".', { filename: nodes[0].displayname })\n : t('files', 'Cancelled move or copy operation'));\n return nodes.map(() => null);\n }\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 { Folder, Node, NodeStatus, davRootPath } from '@nextcloud/files';\nimport { getUploader, hasConflict } from '@nextcloud/upload';\nimport { join } from 'path';\nimport { joinPaths } from '@nextcloud/paths';\nimport { showError, showInfo, showSuccess, showWarning } from '@nextcloud/dialogs';\nimport { translate as t } from '@nextcloud/l10n';\nimport Vue from 'vue';\nimport { Directory, traverseTree, resolveConflict, createDirectoryIfNotExists } from './DropServiceUtils';\nimport { handleCopyMoveNodeTo } from '../actions/moveOrCopyAction';\nimport { MoveCopyAction } from '../actions/moveOrCopyActionUtils';\nimport logger from '../logger.ts';\n/**\n * This function converts a list of DataTransferItems to a file tree.\n * It uses the Filesystem API if available, otherwise it falls back to the File API.\n * The File API will NOT be available if the browser is not in a secure context (e.g. HTTP).\n * ⚠️ When using this method, you need to use it as fast as possible, as the DataTransferItems\n * will be cleared after the first access to the props of one of the entries.\n *\n * @param items the list of DataTransferItems\n */\nexport const dataTransferToFileTree = async (items) => {\n // Check if the browser supports the Filesystem API\n // We need to cache the entries to prevent Blink engine bug that clears\n // the list (`data.items`) after first access props of one of the entries\n const entries = items\n .filter((item) => {\n if (item.kind !== 'file') {\n logger.debug('Skipping dropped item', { kind: item.kind, type: item.type });\n return false;\n }\n return true;\n }).map((item) => {\n // MDN recommends to try both, as it might be renamed in the future\n return item?.getAsEntry?.()\n ?? item?.webkitGetAsEntry?.()\n ?? item;\n });\n let warned = false;\n const fileTree = new Directory('root');\n // Traverse the file tree\n for (const entry of entries) {\n // Handle browser issues if Filesystem API is not available. Fallback to File API\n if (entry instanceof DataTransferItem) {\n logger.warn('Could not get FilesystemEntry of item, falling back to file');\n const file = entry.getAsFile();\n if (file === null) {\n logger.warn('Could not process DataTransferItem', { type: entry.type, kind: entry.kind });\n showError(t('files', 'One of the dropped files could not be processed'));\n continue;\n }\n // Warn the user that the browser does not support the Filesystem API\n // we therefore cannot upload directories recursively.\n if (file.type === 'httpd/unix-directory' || !file.type) {\n if (!warned) {\n logger.warn('Browser does not support Filesystem API. Directories will not be uploaded');\n showWarning(t('files', 'Your browser does not support the Filesystem API. Directories will not be uploaded'));\n warned = true;\n }\n continue;\n }\n fileTree.contents.push(file);\n continue;\n }\n // Use Filesystem API\n try {\n fileTree.contents.push(await traverseTree(entry));\n }\n catch (error) {\n // Do not throw, as we want to continue with the other files\n logger.error('Error while traversing file tree', { error });\n }\n }\n return fileTree;\n};\nexport const onDropExternalFiles = async (root, destination, contents) => {\n const uploader = getUploader();\n // Check for conflicts on root elements\n if (await hasConflict(root.contents, contents)) {\n root.contents = await resolveConflict(root.contents, destination, contents);\n }\n if (root.contents.length === 0) {\n logger.info('No files to upload', { root });\n showInfo(t('files', 'No files to upload'));\n return [];\n }\n // Let's process the files\n logger.debug(`Uploading files to ${destination.path}`, { root, contents: root.contents });\n const queue = [];\n const uploadDirectoryContents = async (directory, path) => {\n for (const file of directory.contents) {\n // This is the relative path to the resource\n // from the current uploader destination\n const relativePath = join(path, file.name);\n // If the file is a directory, we need to create it first\n // then browse its tree and upload its contents.\n if (file instanceof Directory) {\n const absolutePath = joinPaths(davRootPath, destination.path, relativePath);\n try {\n console.debug('Processing directory', { relativePath });\n await createDirectoryIfNotExists(absolutePath);\n await uploadDirectoryContents(file, relativePath);\n }\n catch (error) {\n showError(t('files', 'Unable to create the directory {directory}', { directory: file.name }));\n logger.error('', { error, absolutePath, directory: file });\n }\n continue;\n }\n // If we've reached a file, we can upload it\n logger.debug('Uploading file to ' + join(destination.path, relativePath), { file });\n // Overriding the root to avoid changing the current uploader context\n queue.push(uploader.upload(relativePath, file, destination.source));\n }\n };\n // Pause the uploader to prevent it from starting\n // while we compute the queue\n uploader.pause();\n // Upload the files. Using '/' as the starting point\n // as we already adjusted the uploader destination\n await uploadDirectoryContents(root, '/');\n uploader.start();\n // Wait for all promises to settle\n const results = await Promise.allSettled(queue);\n // Check for errors\n const errors = results.filter(result => result.status === 'rejected');\n if (errors.length > 0) {\n logger.error('Error while uploading files', { errors });\n showError(t('files', 'Some files could not be uploaded'));\n return [];\n }\n logger.debug('Files uploaded successfully');\n showSuccess(t('files', 'Files uploaded successfully'));\n return Promise.all(queue);\n};\nexport const onDropInternalFiles = async (nodes, destination, contents, isCopy = false) => {\n const queue = [];\n // Check for conflicts on root elements\n if (await hasConflict(nodes, contents)) {\n nodes = await resolveConflict(nodes, destination, contents);\n }\n if (nodes.length === 0) {\n logger.info('No files to process', { nodes });\n showInfo(t('files', 'No files to process'));\n return;\n }\n for (const node of nodes) {\n Vue.set(node, 'status', NodeStatus.LOADING);\n queue.push(handleCopyMoveNodeTo(node, destination, isCopy ? MoveCopyAction.COPY : MoveCopyAction.MOVE, true));\n }\n // Wait for all promises to settle\n const results = await Promise.allSettled(queue);\n nodes.forEach(node => Vue.set(node, 'status', undefined));\n // Check for errors\n const errors = results.filter(result => result.status === 'rejected');\n if (errors.length > 0) {\n logger.error('Error while copying or moving files', { errors });\n showError(isCopy ? t('files', 'Some files could not be copied') : t('files', 'Some files could not be moved'));\n return;\n }\n logger.debug('Files copy/move successful');\n showSuccess(isCopy ? t('files', 'Files copied successfully') : t('files', 'Files moved successfully'));\n};\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { defineStore } from 'pinia';\nimport Vue from 'vue';\nexport const useDragAndDropStore = defineStore('dragging', {\n state: () => ({\n dragging: [],\n }),\n actions: {\n /**\n * Set the selection of fileIds\n * @param selection\n */\n set(selection = []) {\n Vue.set(this, 'dragging', selection);\n },\n /**\n * Reset the selection\n */\n reset() {\n Vue.set(this, 'dragging', []);\n },\n },\n});\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { defineComponent } from 'vue';\nexport default defineComponent({\n data() {\n return {\n filesListWidth: 0,\n };\n },\n mounted() {\n const fileListEl = document.querySelector('#app-content-vue');\n this.filesListWidth = fileListEl?.clientWidth ?? 0;\n // @ts-expect-error The resize observer is just now attached to the object\n this.$resizeObserver = new ResizeObserver((entries) => {\n if (entries.length > 0 && entries[0].target === fileListEl) {\n this.filesListWidth = entries[0].contentRect.width;\n }\n });\n // @ts-expect-error The resize observer was attached right before to the this object\n this.$resizeObserver.observe(fileListEl);\n },\n beforeDestroy() {\n // @ts-expect-error mounted must have been called before the destroy, so the resize\n this.$resizeObserver.disconnect();\n },\n});\n","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!./BreadCrumbs.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!./BreadCrumbs.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcBreadcrumbs',{staticClass:\"files-list__breadcrumbs\",class:{ 'files-list__breadcrumbs--with-progress': _vm.wrapUploadProgressBar },attrs:{\"data-cy-files-content-breadcrumbs\":\"\",\"aria-label\":_vm.t('files', 'Current directory path')},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_vm._t(\"actions\")]},proxy:true}],null,true)},_vm._l((_vm.sections),function(section,index){return _c('NcBreadcrumb',_vm._b({key:section.dir,attrs:{\"dir\":\"auto\",\"to\":section.to,\"force-icon-text\":index === 0 && _vm.filesListWidth >= 486,\"title\":_vm.titleForSection(index, section),\"aria-description\":_vm.ariaForSection(section)},on:{\"drop\":function($event){return _vm.onDrop($event, section.dir)}},nativeOn:{\"click\":function($event){return _vm.onClick(section.to)},\"dragover\":function($event){return _vm.onDragOver($event, section.dir)}},scopedSlots:_vm._u([(index === 0)?{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"size\":20,\"svg\":_vm.viewIcon}})]},proxy:true}:null],null,true)},'NcBreadcrumb',section,false))}),1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BreadCrumbs.vue?vue&type=style&index=0&id=dc01fdb0&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BreadCrumbs.vue?vue&type=style&index=0&id=dc01fdb0&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./BreadCrumbs.vue?vue&type=template&id=dc01fdb0&scoped=true\"\nimport script from \"./BreadCrumbs.vue?vue&type=script&lang=ts\"\nexport * from \"./BreadCrumbs.vue?vue&type=script&lang=ts\"\nimport style0 from \"./BreadCrumbs.vue?vue&type=style&index=0&id=dc01fdb0&prod&lang=scss&scoped=true\"\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 \"dc01fdb0\",\n null\n \n)\n\nexport default component.exports","/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { FileType } from '@nextcloud/files';\nimport { translate as t, translatePlural as n } from '@nextcloud/l10n';\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","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('tr',_vm._g({staticClass:\"files-list__row\",class:{\n\t\t'files-list__row--dragover': _vm.dragover,\n\t\t'files-list__row--loading': _vm.isLoading,\n\t\t'files-list__row--active': _vm.isActive,\n\t},attrs:{\"data-cy-files-list-row\":\"\",\"data-cy-files-list-row-fileid\":_vm.fileid,\"data-cy-files-list-row-name\":_vm.source.basename,\"draggable\":_vm.canDrag}},_vm.rowListeners),[(_vm.isFailedSource)?_c('span',{staticClass:\"files-list__row--failed\"}):_vm._e(),_vm._v(\" \"),_c('FileEntryCheckbox',{attrs:{\"fileid\":_vm.fileid,\"is-loading\":_vm.isLoading,\"nodes\":_vm.nodes,\"source\":_vm.source}}),_vm._v(\" \"),_c('td',{staticClass:\"files-list__row-name\",attrs:{\"data-cy-files-list-row-name\":\"\"}},[_c('FileEntryPreview',{ref:\"preview\",attrs:{\"source\":_vm.source,\"dragover\":_vm.dragover},nativeOn:{\"auxclick\":function($event){return _vm.execDefaultAction.apply(null, arguments)},\"click\":function($event){return _vm.execDefaultAction.apply(null, arguments)}}}),_vm._v(\" \"),_c('FileEntryName',{ref:\"name\",attrs:{\"basename\":_vm.basename,\"extension\":_vm.extension,\"files-list-width\":_vm.filesListWidth,\"nodes\":_vm.nodes,\"source\":_vm.source},nativeOn:{\"auxclick\":function($event){return _vm.execDefaultAction.apply(null, arguments)},\"click\":function($event){return _vm.execDefaultAction.apply(null, arguments)}}})],1),_vm._v(\" \"),_c('FileEntryActions',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isRenamingSmallScreen),expression:\"!isRenamingSmallScreen\"}],ref:\"actions\",class:`files-list__row-actions-${_vm.uniqueId}`,attrs:{\"files-list-width\":_vm.filesListWidth,\"loading\":_vm.loading,\"opened\":_vm.openedMenu,\"source\":_vm.source},on:{\"update:loading\":function($event){_vm.loading=$event},\"update:opened\":function($event){_vm.openedMenu=$event}}}),_vm._v(\" \"),(!_vm.compact && _vm.isSizeAvailable)?_c('td',{staticClass:\"files-list__row-size\",style:(_vm.sizeOpacity),attrs:{\"data-cy-files-list-row-size\":\"\"},on:{\"click\":_vm.openDetailsIfAvailable}},[_c('span',[_vm._v(_vm._s(_vm.size))])]):_vm._e(),_vm._v(\" \"),(!_vm.compact && _vm.isMtimeAvailable)?_c('td',{staticClass:\"files-list__row-mtime\",style:(_vm.mtimeOpacity),attrs:{\"data-cy-files-list-row-mtime\":\"\"},on:{\"click\":_vm.openDetailsIfAvailable}},[(_vm.source.mtime)?_c('NcDateTime',{attrs:{\"timestamp\":_vm.source.mtime,\"ignore-seconds\":true}}):_vm._e()],1):_vm._e(),_vm._v(\" \"),_vm._l((_vm.columns),function(column){return _c('td',{key:column.id,staticClass:\"files-list__row-column-custom\",class:`files-list__row-${_vm.currentView?.id}-${column.id}`,attrs:{\"data-cy-files-list-row-column-custom\":column.id},on:{\"click\":_vm.openDetailsIfAvailable}},[_c('CustomElementRender',{attrs:{\"current-view\":_vm.currentView,\"render\":column.render,\"source\":_vm.source}})],1)})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { defineStore } from 'pinia';\nexport const useActionsMenuStore = defineStore('actionsmenu', {\n state: () => ({\n opened: null,\n }),\n});\n","import axios, { isAxiosError } from '@nextcloud/axios';\nimport { emit, subscribe } from '@nextcloud/event-bus';\nimport { NodeStatus } from '@nextcloud/files';\nimport { t } from '@nextcloud/l10n';\nimport { basename, dirname } from 'path';\nimport { defineStore } from 'pinia';\nimport logger from '../logger';\nimport Vue from 'vue';\nexport const useRenamingStore = function (...args) {\n const store = defineStore('renaming', {\n state: () => ({\n renamingNode: undefined,\n newName: '',\n }),\n actions: {\n /**\n * Execute the renaming.\n * This will rename the node set as `renamingNode` to the configured new name `newName`.\n * @return true if success, false if skipped (e.g. new and old name are the same)\n * @throws Error if renaming fails, details are set in the error message\n */\n async rename() {\n if (this.renamingNode === undefined) {\n throw new Error('No node is currently being renamed');\n }\n const newName = this.newName.trim?.() || '';\n const oldName = this.renamingNode.basename;\n const oldEncodedSource = this.renamingNode.encodedSource;\n if (oldName === newName) {\n return false;\n }\n const node = this.renamingNode;\n Vue.set(node, 'status', NodeStatus.LOADING);\n try {\n // rename the node\n this.renamingNode.rename(newName);\n logger.debug('Moving file to', { destination: this.renamingNode.encodedSource, oldEncodedSource });\n // create MOVE request\n await axios({\n method: 'MOVE',\n url: oldEncodedSource,\n headers: {\n Destination: this.renamingNode.encodedSource,\n Overwrite: 'F',\n },\n });\n // Success 🎉\n emit('files:node:updated', this.renamingNode);\n emit('files:node:renamed', this.renamingNode);\n emit('files:node:moved', {\n node: this.renamingNode,\n oldSource: `${dirname(this.renamingNode.source)}/${oldName}`,\n });\n this.$reset();\n return true;\n }\n catch (error) {\n logger.error('Error while renaming file', { error });\n // Rename back as it failed\n this.renamingNode.rename(oldName);\n if (isAxiosError(error)) {\n // TODO: 409 means current folder does not exist, redirect ?\n if (error?.response?.status === 404) {\n throw new Error(t('files', 'Could not rename \"{oldName}\", it does not exist any more', { oldName }));\n }\n else if (error?.response?.status === 412) {\n throw new Error(t('files', 'The name \"{newName}\" is already used in the folder \"{dir}\". Please choose a different name.', {\n newName,\n dir: basename(this.renamingNode.dirname),\n }));\n }\n }\n // Unknown error\n throw new Error(t('files', 'Could not rename \"{oldName}\"', { oldName }));\n }\n finally {\n Vue.set(node, 'status', undefined);\n }\n },\n },\n });\n const renamingStore = store(...args);\n // Make sure we only register the listeners once\n if (!renamingStore._initialized) {\n subscribe('files:node:rename', function (node) {\n renamingStore.renamingNode = node;\n renamingStore.newName = node.basename;\n });\n renamingStore._initialized = true;\n }\n return renamingStore;\n};\n","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : true\"\n :aria-label=\"title\"\n class=\"material-design-icon file-multiple-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M15,7H20.5L15,1.5V7M8,0H16L22,6V18A2,2 0 0,1 20,20H8C6.89,20 6,19.1 6,18V2A2,2 0 0,1 8,0M4,4V22H20V24H4A2,2 0 0,1 2,22V4H4Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"FileMultipleIcon\",\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}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./FileMultiple.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./FileMultiple.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./FileMultiple.vue?vue&type=template&id=27b46e04\"\nimport script from \"./FileMultiple.vue?vue&type=script&lang=js\"\nexport * from \"./FileMultiple.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon file-multiple-icon\",attrs:{\"aria-hidden\":_vm.title ? null : true,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M15,7H20.5L15,1.5V7M8,0H16L22,6V18A2,2 0 0,1 20,20H8C6.89,20 6,19.1 6,18V2A2,2 0 0,1 8,0M4,4V22H20V24H4A2,2 0 0,1 2,22V4H4Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"files-list-drag-image\"},[_c('span',{staticClass:\"files-list-drag-image__icon\"},[_c('span',{ref:\"previewImg\"}),_vm._v(\" \"),(_vm.isSingleFolder)?_c('FolderIcon'):_c('FileMultipleIcon')],1),_vm._v(\" \"),_c('span',{staticClass:\"files-list-drag-image__name\"},[_vm._v(_vm._s(_vm.name))])])\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!./DragAndDropPreview.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!./DragAndDropPreview.vue?vue&type=script&lang=ts\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DragAndDropPreview.vue?vue&type=style&index=0&id=01562099&prod&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DragAndDropPreview.vue?vue&type=style&index=0&id=01562099&prod&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./DragAndDropPreview.vue?vue&type=template&id=01562099\"\nimport script from \"./DragAndDropPreview.vue?vue&type=script&lang=ts\"\nexport * from \"./DragAndDropPreview.vue?vue&type=script&lang=ts\"\nimport style0 from \"./DragAndDropPreview.vue?vue&type=style&index=0&id=01562099&prod&lang=scss\"\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","import DragAndDropPreview from '../components/DragAndDropPreview.vue';\nimport Vue from 'vue';\nconst Preview = Vue.extend(DragAndDropPreview);\nlet preview;\nexport const getDragAndDropPreview = async (nodes) => {\n return new Promise((resolve) => {\n if (!preview) {\n preview = new Preview().$mount();\n document.body.appendChild(preview.$el);\n }\n preview.update(nodes);\n preview.$on('loaded', () => {\n resolve(preview.$el);\n preview.$off('loaded');\n });\n });\n};\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { showError } from '@nextcloud/dialogs';\nimport { FileType, Permission, Folder, File as NcFile, NodeStatus, Node, getFileActions } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport { generateUrl } from '@nextcloud/router';\nimport { isPublicShare } from '@nextcloud/sharing/public';\nimport { vOnClickOutside } from '@vueuse/components';\nimport { extname } from 'path';\nimport Vue, { defineComponent } from 'vue';\nimport { action as sidebarAction } from '../actions/sidebarAction.ts';\nimport { getDragAndDropPreview } from '../utils/dragUtils.ts';\nimport { hashCode } from '../utils/hashUtils.ts';\nimport { dataTransferToFileTree, onDropExternalFiles, onDropInternalFiles } from '../services/DropService.ts';\nimport logger from '../logger.ts';\nimport { isDownloadable } from '../utils/permissions.ts';\nVue.directive('onClickOutside', vOnClickOutside);\nconst actions = getFileActions();\nexport default defineComponent({\n props: {\n source: {\n type: [Folder, NcFile, Node],\n required: true,\n },\n nodes: {\n type: Array,\n required: true,\n },\n filesListWidth: {\n type: Number,\n default: 0,\n },\n isMtimeAvailable: {\n type: Boolean,\n default: false,\n },\n compact: {\n type: Boolean,\n default: false,\n },\n },\n provide() {\n return {\n defaultFileAction: this.defaultFileAction,\n enabledFileActions: this.enabledFileActions,\n };\n },\n data() {\n return {\n loading: '',\n dragover: false,\n gridMode: false,\n };\n },\n computed: {\n fileid() {\n return this.source.fileid ?? 0;\n },\n uniqueId() {\n return hashCode(this.source.source);\n },\n isLoading() {\n return this.source.status === NodeStatus.LOADING || this.loading !== '';\n },\n /**\n * The display name of the current node\n * Either the nodes filename or a custom display name (e.g. for shares)\n */\n displayName() {\n // basename fallback needed for apps using old `@nextcloud/files` prior 3.6.0\n return this.source.displayname || this.source.basename;\n },\n /**\n * The display name without extension\n */\n basename() {\n if (this.extension === '') {\n return this.displayName;\n }\n return this.displayName.slice(0, 0 - this.extension.length);\n },\n /**\n * The extension of the file\n */\n extension() {\n if (this.source.type === FileType.Folder) {\n return '';\n }\n return extname(this.displayName);\n },\n draggingFiles() {\n return this.draggingStore.dragging;\n },\n selectedFiles() {\n return this.selectionStore.selected;\n },\n isSelected() {\n return this.selectedFiles.includes(this.source.source);\n },\n isRenaming() {\n return this.renamingStore.renamingNode === this.source;\n },\n isRenamingSmallScreen() {\n return this.isRenaming && this.filesListWidth < 512;\n },\n isActive() {\n return String(this.fileid) === String(this.currentFileId);\n },\n /**\n * Check if the source is in a failed state after an API request\n */\n isFailedSource() {\n return this.source.status === NodeStatus.FAILED;\n },\n canDrag() {\n if (this.isRenaming) {\n return false;\n }\n const canDrag = (node) => {\n return (node?.permissions & Permission.UPDATE) !== 0;\n };\n // If we're dragging a selection, we need to check all files\n if (this.selectedFiles.length > 0) {\n const nodes = this.selectedFiles.map(source => this.filesStore.getNode(source));\n return nodes.every(canDrag);\n }\n return canDrag(this.source);\n },\n canDrop() {\n if (this.source.type !== FileType.Folder) {\n return false;\n }\n // If the current folder is also being dragged, we can't drop it on itself\n if (this.draggingFiles.includes(this.source.source)) {\n return false;\n }\n return (this.source.permissions & Permission.CREATE) !== 0;\n },\n openedMenu: {\n get() {\n return this.actionsMenuStore.opened === this.uniqueId.toString();\n },\n set(opened) {\n this.actionsMenuStore.opened = opened ? this.uniqueId.toString() : null;\n },\n },\n mtimeOpacity() {\n const maxOpacityTime = 31 * 24 * 60 * 60 * 1000; // 31 days\n const mtime = this.source.mtime?.getTime?.();\n if (!mtime) {\n return {};\n }\n // 1 = today, 0 = 31 days ago\n const ratio = Math.round(Math.min(100, 100 * (maxOpacityTime - (Date.now() - mtime)) / maxOpacityTime));\n if (ratio < 0) {\n return {};\n }\n return {\n color: `color-mix(in srgb, var(--color-main-text) ${ratio}%, var(--color-text-maxcontrast))`,\n };\n },\n /**\n * Sorted actions that are enabled for this node\n */\n enabledFileActions() {\n if (this.source.status === NodeStatus.FAILED) {\n return [];\n }\n return actions\n .filter(action => !action.enabled || action.enabled([this.source], this.currentView))\n .sort((a, b) => (a.order || 0) - (b.order || 0));\n },\n defaultFileAction() {\n return this.enabledFileActions.find((action) => action.default !== undefined);\n },\n },\n watch: {\n /**\n * When the source changes, reset the preview\n * and fetch the new one.\n * @param a\n * @param b\n */\n source(a, b) {\n if (a.source !== b.source) {\n this.resetState();\n }\n },\n openedMenu() {\n if (this.openedMenu === false) {\n // TODO: This timeout can be removed once `close` event only triggers after the transition\n // ref: https://github.com/nextcloud-libraries/nextcloud-vue/pull/6065\n window.setTimeout(() => {\n if (this.openedMenu) {\n // was reopened while the animation run\n return;\n }\n // Reset any right menu position potentially set\n const root = document.getElementById('app-content-vue');\n if (root !== null) {\n root.style.removeProperty('--mouse-pos-x');\n root.style.removeProperty('--mouse-pos-y');\n }\n }, 300);\n }\n },\n },\n beforeDestroy() {\n this.resetState();\n },\n methods: {\n resetState() {\n // Reset loading state\n this.loading = '';\n // Reset the preview state\n this.$refs?.preview?.reset?.();\n // Close menu\n this.openedMenu = false;\n },\n // Open the actions menu on right click\n onRightClick(event) {\n // If already opened, fallback to default browser\n if (this.openedMenu) {\n return;\n }\n // The grid mode is compact enough to not care about\n // the actions menu mouse position\n if (!this.gridMode) {\n // Actions menu is contained within the app content\n const root = this.$el?.closest('main.app-content');\n const contentRect = root.getBoundingClientRect();\n // Using Math.min/max to prevent the menu from going out of the AppContent\n // 200 = max width of the menu\n root.style.setProperty('--mouse-pos-x', Math.max(0, event.clientX - contentRect.left - 200) + 'px');\n root.style.setProperty('--mouse-pos-y', Math.max(0, event.clientY - contentRect.top) + 'px');\n }\n else {\n // Reset any right menu position potentially set\n const root = this.$el?.closest('main.app-content');\n root.style.removeProperty('--mouse-pos-x');\n root.style.removeProperty('--mouse-pos-y');\n }\n // If the clicked row is in the selection, open global menu\n const isMoreThanOneSelected = this.selectedFiles.length > 1;\n this.actionsMenuStore.opened = this.isSelected && isMoreThanOneSelected ? 'global' : this.uniqueId.toString();\n // Prevent any browser defaults\n event.preventDefault();\n event.stopPropagation();\n },\n execDefaultAction(event) {\n // Ignore click if we are renaming\n if (this.isRenaming) {\n return;\n }\n // Ignore right click (button & 2) and any auxillary button expect mouse-wheel (button & 4)\n if (Boolean(event.button & 2) || event.button > 4) {\n return;\n }\n // if ctrl+click / cmd+click (MacOS uses the meta key) or middle mouse button (button & 4), open in new tab\n // also if there is no default action use this as a fallback\n const metaKeyPressed = event.ctrlKey || event.metaKey || Boolean(event.button & 4);\n if (metaKeyPressed || !this.defaultFileAction) {\n // If no download permission, then we can not allow to download (direct link) the files\n if (isPublicShare() && !isDownloadable(this.source)) {\n return;\n }\n const url = isPublicShare()\n ? this.source.encodedSource\n : generateUrl('/f/{fileId}', { fileId: this.fileid });\n event.preventDefault();\n event.stopPropagation();\n window.open(url, metaKeyPressed ? '_self' : undefined);\n return;\n }\n // every special case handled so just execute the default action\n event.preventDefault();\n event.stopPropagation();\n // Execute the first default action if any\n this.defaultFileAction.exec(this.source, this.currentView, this.currentDir);\n },\n openDetailsIfAvailable(event) {\n event.preventDefault();\n event.stopPropagation();\n if (sidebarAction?.enabled?.([this.source], this.currentView)) {\n sidebarAction.exec(this.source, this.currentView, this.currentDir);\n }\n },\n onDragOver(event) {\n this.dragover = this.canDrop;\n if (!this.canDrop) {\n event.dataTransfer.dropEffect = 'none';\n return;\n }\n // Handle copy/move drag and drop\n if (event.ctrlKey) {\n event.dataTransfer.dropEffect = 'copy';\n }\n else {\n event.dataTransfer.dropEffect = 'move';\n }\n },\n onDragLeave(event) {\n // Counter bubbling, make sure we're ending the drag\n // only when we're leaving the current element\n const currentTarget = event.currentTarget;\n if (currentTarget?.contains(event.relatedTarget)) {\n return;\n }\n this.dragover = false;\n },\n async onDragStart(event) {\n event.stopPropagation();\n if (!this.canDrag || !this.fileid) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n logger.debug('Drag started', { event });\n // Make sure that we're not dragging a file like the preview\n event.dataTransfer?.clearData?.();\n // Reset any renaming\n this.renamingStore.$reset();\n // Dragging set of files, if we're dragging a file\n // that is already selected, we use the entire selection\n if (this.selectedFiles.includes(this.source.source)) {\n this.draggingStore.set(this.selectedFiles);\n }\n else {\n this.draggingStore.set([this.source.source]);\n }\n const nodes = this.draggingStore.dragging\n .map(source => this.filesStore.getNode(source));\n const image = await getDragAndDropPreview(nodes);\n event.dataTransfer?.setDragImage(image, -10, -10);\n },\n onDragEnd() {\n this.draggingStore.reset();\n this.dragover = false;\n logger.debug('Drag ended');\n },\n async onDrop(event) {\n // skip if native drop like text drag and drop from files names\n if (!this.draggingFiles && !event.dataTransfer?.items?.length) {\n return;\n }\n event.preventDefault();\n event.stopPropagation();\n // Caching the selection\n const selection = this.draggingFiles;\n const items = [...event.dataTransfer?.items || []];\n // We need to process the dataTransfer ASAP before the\n // browser clears it. This is why we cache the items too.\n const fileTree = await dataTransferToFileTree(items);\n // We might not have the target directory fetched yet\n const contents = await this.currentView?.getContents(this.source.path);\n const folder = contents?.folder;\n if (!folder) {\n showError(this.t('files', 'Target folder does not exist any more'));\n return;\n }\n // If another button is pressed, cancel it. This\n // allows cancelling the drag with the right click.\n if (!this.canDrop || event.button) {\n return;\n }\n const isCopy = event.ctrlKey;\n this.dragover = false;\n logger.debug('Dropped', { event, folder, selection, fileTree });\n // Check whether we're uploading files\n if (fileTree.contents.length > 0) {\n await onDropExternalFiles(fileTree, folder, contents.contents);\n return;\n }\n // Else we're moving/copying files\n const nodes = selection.map(source => this.filesStore.getNode(source));\n await onDropInternalFiles(nodes, folder, contents.contents, isCopy);\n // Reset selection after we dropped the files\n // if the dropped files are within the selection\n if (selection.some(source => this.selectedFiles.includes(source))) {\n logger.debug('Dropped selection, resetting select store...');\n this.selectionStore.reset();\n }\n },\n t,\n },\n});\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * Simple non-secure hashing function similar to Java's `hashCode`\n * @param str The string to hash\n * @return {number} a non secure hash of the string\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 { Permission } from '@nextcloud/files';\n/**\n * Check permissions on the node if it can be downloaded\n * @param node The node to check\n * @return True if downloadable, false otherwise\n */\nexport function isDownloadable(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['share-attributes']) {\n const shareAttributes = JSON.parse(node.attributes['share-attributes'] || '[]');\n const downloadAttribute = shareAttributes.find(({ scope, key }) => scope === 'permissions' && key === 'download');\n if (downloadAttribute !== undefined) {\n return downloadAttribute.value === true;\n }\n }\n return true;\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span')\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!./CustomElementRender.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!./CustomElementRender.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./CustomElementRender.vue?vue&type=template&id=7b30c709\"\nimport script from \"./CustomElementRender.vue?vue&type=script&lang=ts\"\nexport * from \"./CustomElementRender.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","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('td',{staticClass:\"files-list__row-actions\",attrs:{\"data-cy-files-list-row-actions\":\"\"}},[_vm._l((_vm.enabledRenderActions),function(action){return _c('CustomElementRender',{key:action.id,staticClass:\"files-list__row-action--inline\",class:'files-list__row-action-' + action.id,attrs:{\"current-view\":_vm.currentView,\"render\":action.renderInline,\"source\":_vm.source}})}),_vm._v(\" \"),_c('NcActions',{ref:\"actionsMenu\",attrs:{\"boundaries-element\":_vm.getBoundariesElement,\"container\":_vm.getBoundariesElement,\"force-name\":true,\"type\":\"tertiary\",\"force-menu\":_vm.enabledInlineActions.length === 0 /* forceMenu only if no inline actions */,\"inline\":_vm.enabledInlineActions.length,\"open\":_vm.openedMenu},on:{\"update:open\":function($event){_vm.openedMenu=$event},\"close\":function($event){_vm.openedSubmenu = null}}},[_vm._l((_vm.enabledMenuActions),function(action){return _c('NcActionButton',{key:action.id,ref:`action-${action.id}`,refInFor:true,class:{\n\t\t\t\t[`files-list__row-action-${action.id}`]: true,\n\t\t\t\t[`files-list__row-action--menu`]: _vm.isMenu(action.id)\n\t\t\t},attrs:{\"close-after-click\":!_vm.isMenu(action.id),\"data-cy-files-list-row-action\":action.id,\"is-menu\":_vm.isMenu(action.id),\"aria-label\":action.title?.([_vm.source], _vm.currentView),\"title\":action.title?.([_vm.source], _vm.currentView)},on:{\"click\":function($event){return _vm.onActionClick(action)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.loading === action.id)?_c('NcLoadingIcon',{attrs:{\"size\":18}}):_c('NcIconSvgWrapper',{attrs:{\"svg\":action.iconSvgInline([_vm.source], _vm.currentView)}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.mountType === 'shared' && action.id === 'sharing-status' ? '' : _vm.actionDisplayName(action))+\"\\n\\t\\t\")])}),_vm._v(\" \"),(_vm.openedSubmenu && _vm.enabledSubmenuActions[_vm.openedSubmenu?.id])?[_c('NcActionButton',{staticClass:\"files-list__row-action-back\",on:{\"click\":function($event){return _vm.onBackToMenuClick(_vm.openedSubmenu)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('ArrowLeftIcon')]},proxy:true}],null,false,3001860362)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.actionDisplayName(_vm.openedSubmenu))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('NcActionSeparator'),_vm._v(\" \"),_vm._l((_vm.enabledSubmenuActions[_vm.openedSubmenu?.id]),function(action){return _c('NcActionButton',{key:action.id,staticClass:\"files-list__row-action--submenu\",class:`files-list__row-action-${action.id}`,attrs:{\"close-after-click\":\"\",\"data-cy-files-list-row-action\":action.id,\"title\":action.title?.([_vm.source], _vm.currentView)},on:{\"click\":function($event){return _vm.onActionClick(action)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.loading === action.id)?_c('NcLoadingIcon',{attrs:{\"size\":18}}):_c('NcIconSvgWrapper',{attrs:{\"svg\":action.iconSvgInline([_vm.source], _vm.currentView)}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.actionDisplayName(action))+\"\\n\\t\\t\\t\")])})]:_vm._e()],2)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : true\"\n :aria-label=\"title\"\n class=\"material-design-icon arrow-left-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"ArrowLeftIcon\",\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}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ArrowLeft.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ArrowLeft.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ArrowLeft.vue?vue&type=template&id=214c9a86\"\nimport script from \"./ArrowLeft.vue?vue&type=script&lang=js\"\nexport * from \"./ArrowLeft.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon arrow-left-icon\",attrs:{\"aria-hidden\":_vm.title ? null : true,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\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!./FileEntryActions.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!./FileEntryActions.vue?vue&type=script&lang=ts\"","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntryActions.vue?vue&type=style&index=0&id=893a87d0&prod&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntryActions.vue?vue&type=style&index=0&id=893a87d0&prod&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntryActions.vue?vue&type=style&index=1&id=893a87d0&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntryActions.vue?vue&type=style&index=1&id=893a87d0&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FileEntryActions.vue?vue&type=template&id=893a87d0&scoped=true\"\nimport script from \"./FileEntryActions.vue?vue&type=script&lang=ts\"\nexport * from \"./FileEntryActions.vue?vue&type=script&lang=ts\"\nimport style0 from \"./FileEntryActions.vue?vue&type=style&index=0&id=893a87d0&prod&lang=scss\"\nimport style1 from \"./FileEntryActions.vue?vue&type=style&index=1&id=893a87d0&prod&lang=scss&scoped=true\"\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 \"893a87d0\",\n null\n \n)\n\nexport default component.exports","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!./FileEntryCheckbox.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!./FileEntryCheckbox.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('td',{staticClass:\"files-list__row-checkbox\",on:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"]))return null;if($event.ctrlKey||$event.shiftKey||$event.altKey||$event.metaKey)return null;return _vm.resetSelection.apply(null, arguments)}}},[(_vm.isLoading)?_c('NcLoadingIcon',{attrs:{\"name\":_vm.loadingLabel}}):_c('NcCheckboxRadioSwitch',{attrs:{\"aria-label\":_vm.ariaLabel,\"checked\":_vm.isSelected,\"data-cy-files-list-row-checkbox\":\"\"},on:{\"update:checked\":_vm.onSelectionChange}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { defineStore } from 'pinia';\nimport Vue from 'vue';\n/**\n * Observe various events and save the current\n * special keys states. Useful for checking the\n * current status of a key when executing a method.\n * @param {...any} args\n */\nexport const useKeyboardStore = function (...args) {\n const store = defineStore('keyboard', {\n state: () => ({\n altKey: false,\n ctrlKey: false,\n metaKey: false,\n shiftKey: false,\n }),\n actions: {\n onEvent(event) {\n if (!event) {\n event = window.event;\n }\n Vue.set(this, 'altKey', !!event.altKey);\n Vue.set(this, 'ctrlKey', !!event.ctrlKey);\n Vue.set(this, 'metaKey', !!event.metaKey);\n Vue.set(this, 'shiftKey', !!event.shiftKey);\n },\n },\n });\n const keyboardStore = store(...args);\n // Make sure we only register the listeners once\n if (!keyboardStore._initialized) {\n window.addEventListener('keydown', keyboardStore.onEvent);\n window.addEventListener('keyup', keyboardStore.onEvent);\n window.addEventListener('mousemove', keyboardStore.onEvent);\n keyboardStore._initialized = true;\n }\n return keyboardStore;\n};\n","import { render, staticRenderFns } from \"./FileEntryCheckbox.vue?vue&type=template&id=ecdbc20a\"\nimport script from \"./FileEntryCheckbox.vue?vue&type=script&lang=ts\"\nexport * from \"./FileEntryCheckbox.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","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.isRenaming)?_c('form',{directives:[{name:\"on-click-outside\",rawName:\"v-on-click-outside\",value:(_vm.onRename),expression:\"onRename\"}],ref:\"renameForm\",staticClass:\"files-list__row-rename\",attrs:{\"aria-label\":_vm.t('files', 'Rename file')},on:{\"submit\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.onRename.apply(null, arguments)}}},[_c('NcTextField',{ref:\"renameInput\",attrs:{\"label\":_vm.renameLabel,\"autofocus\":true,\"minlength\":1,\"required\":true,\"value\":_vm.newName,\"enterkeyhint\":\"done\"},on:{\"update:value\":function($event){_vm.newName=$event},\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"]))return null;return _vm.stopRenaming.apply(null, arguments)}}})],1):_c(_vm.linkTo.is,_vm._b({ref:\"basename\",tag:\"component\",staticClass:\"files-list__row-name-link\",attrs:{\"aria-hidden\":_vm.isRenaming,\"data-cy-files-list-row-name-link\":\"\",\"dir\":\"auto\"}},'component',_vm.linkTo.params,false),[_c('span',{staticClass:\"files-list__row-name-text\"},[_c('span',{staticClass:\"files-list__row-name-\",domProps:{\"textContent\":_vm._s(_vm.basename)}}),_vm._v(\" \"),_c('span',{staticClass:\"files-list__row-name-ext\",domProps:{\"textContent\":_vm._s(_vm.extension)}})])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/*!\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { InvalidFilenameError, InvalidFilenameErrorReason, validateFilename } from '@nextcloud/files';\nimport { t } from '@nextcloud/l10n';\n/**\n * Get the validity of a filename (empty if valid).\n * This can be used for `setCustomValidity` on input elements\n * @param name The filename\n * @param escape Escape the matched string in the error (only set when used in HTML)\n */\nexport function getFilenameValidity(name, escape = false) {\n if (name.trim() === '') {\n return t('files', 'Filename must not be empty.');\n }\n try {\n validateFilename(name);\n return '';\n }\n catch (error) {\n if (!(error instanceof InvalidFilenameError)) {\n throw error;\n }\n switch (error.reason) {\n case InvalidFilenameErrorReason.Character:\n return t('files', '\"{char}\" is not allowed inside a filename.', { char: error.segment }, undefined, { escape });\n case InvalidFilenameErrorReason.ReservedName:\n return t('files', '\"{segment}\" is a reserved name and not allowed for filenames.', { segment: error.segment }, undefined, { escape: false });\n case InvalidFilenameErrorReason.Extension:\n if (error.segment.match(/\\.[a-z]/i)) {\n return t('files', '\"{extension}\" is not an allowed filetype.', { extension: error.segment }, undefined, { escape: false });\n }\n return t('files', 'Filenames must not end with \"{extension}\".', { extension: error.segment }, undefined, { escape: false });\n default:\n return t('files', 'Invalid filename.');\n }\n }\n}\n","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!./FileEntryName.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!./FileEntryName.vue?vue&type=script&lang=ts\"","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntryName.vue?vue&type=style&index=0&id=37803833&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntryName.vue?vue&type=style&index=0&id=37803833&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FileEntryName.vue?vue&type=template&id=37803833&scoped=true\"\nimport script from \"./FileEntryName.vue?vue&type=script&lang=ts\"\nexport * from \"./FileEntryName.vue?vue&type=script&lang=ts\"\nimport style0 from \"./FileEntryName.vue?vue&type=style&index=0&id=37803833&prod&scoped=true&lang=scss\"\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 \"37803833\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('span',{staticClass:\"files-list__row-icon\"},[(_vm.source.type === 'folder')?[(_vm.dragover)?_vm._m(0):[_vm._m(1),_vm._v(\" \"),(_vm.folderOverlay)?_c(_vm.folderOverlay,{tag:\"OverlayIcon\",staticClass:\"files-list__row-icon-overlay\"}):_vm._e()]]:(_vm.previewUrl)?_c('span',{staticClass:\"files-list__row-icon-preview-container\"},[(_vm.hasBlurhash && (_vm.backgroundFailed === true || !_vm.backgroundLoaded))?_c('canvas',{ref:\"canvas\",staticClass:\"files-list__row-icon-blurhash\",attrs:{\"aria-hidden\":\"true\"}}):_vm._e(),_vm._v(\" \"),(_vm.backgroundFailed !== true)?_c('img',{ref:\"previewImg\",staticClass:\"files-list__row-icon-preview\",class:{'files-list__row-icon-preview--loaded': _vm.backgroundFailed === false},attrs:{\"alt\":\"\",\"loading\":\"lazy\",\"src\":_vm.previewUrl},on:{\"error\":_vm.onBackgroundError,\"load\":_vm.onBackgroundLoad}}):_vm._e()]):_vm._m(2),_vm._v(\" \"),(_vm.isFavorite)?_c('span',{staticClass:\"files-list__row-icon-favorite\"},[_vm._m(3)],1):_vm._e(),_vm._v(\" \"),(_vm.fileOverlay)?_c(_vm.fileOverlay,{tag:\"OverlayIcon\",staticClass:\"files-list__row-icon-overlay files-list__row-icon-overlay--file\"}):_vm._e()],2)\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('FolderOpenIcon')\n},function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('FolderIcon')\n},function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('FileIcon')\n},function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('FavoriteIcon')\n}]\n\nexport { render, staticRenderFns }","var q=[\"0\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\",\"A\",\"B\",\"C\",\"D\",\"E\",\"F\",\"G\",\"H\",\"I\",\"J\",\"K\",\"L\",\"M\",\"N\",\"O\",\"P\",\"Q\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"q\",\"r\",\"s\",\"t\",\"u\",\"v\",\"w\",\"x\",\"y\",\"z\",\"#\",\"$\",\"%\",\"*\",\"+\",\",\",\"-\",\".\",\":\",\";\",\"=\",\"?\",\"@\",\"[\",\"]\",\"^\",\"_\",\"{\",\"|\",\"}\",\"~\"],x=t=>{let e=0;for(let r=0;r<t.length;r++){let n=t[r],l=q.indexOf(n);e=e*83+l}return e},p=(t,e)=>{var r=\"\";for(let n=1;n<=e;n++){let l=Math.floor(t)/Math.pow(83,e-n)%83;r+=q[Math.floor(l)]}return r};var f=t=>{let e=t/255;return e<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)},h=t=>{let e=Math.max(0,Math.min(1,t));return e<=.0031308?Math.trunc(e*12.92*255+.5):Math.trunc((1.055*Math.pow(e,.4166666666666667)-.055)*255+.5)},F=t=>t<0?-1:1,M=(t,e)=>F(t)*Math.pow(Math.abs(t),e);var d=class extends Error{constructor(e){super(e),this.name=\"ValidationError\",this.message=e}};var C=t=>{if(!t||t.length<6)throw new d(\"The blurhash string must be at least 6 characters\");let e=x(t[0]),r=Math.floor(e/9)+1,n=e%9+1;if(t.length!==4+2*n*r)throw new d(`blurhash length mismatch: length is ${t.length} but it should be ${4+2*n*r}`)},N=t=>{try{C(t)}catch(e){return{result:!1,errorReason:e.message}}return{result:!0}},z=t=>{let e=t>>16,r=t>>8&255,n=t&255;return[f(e),f(r),f(n)]},L=(t,e)=>{let r=Math.floor(t/361),n=Math.floor(t/19)%19,l=t%19;return[M((r-9)/9,2)*e,M((n-9)/9,2)*e,M((l-9)/9,2)*e]},U=(t,e,r,n)=>{C(t),n=n|1;let l=x(t[0]),m=Math.floor(l/9)+1,b=l%9+1,i=(x(t[1])+1)/166,u=new Array(b*m);for(let o=0;o<u.length;o++)if(o===0){let a=x(t.substring(2,6));u[o]=z(a)}else{let a=x(t.substring(4+o*2,6+o*2));u[o]=L(a,i*n)}let c=e*4,s=new Uint8ClampedArray(c*r);for(let o=0;o<r;o++)for(let a=0;a<e;a++){let y=0,B=0,R=0;for(let w=0;w<m;w++)for(let P=0;P<b;P++){let G=Math.cos(Math.PI*a*P/e)*Math.cos(Math.PI*o*w/r),T=u[P+w*b];y+=T[0]*G,B+=T[1]*G,R+=T[2]*G}let V=h(y),I=h(B),E=h(R);s[4*a+0+o*c]=V,s[4*a+1+o*c]=I,s[4*a+2+o*c]=E,s[4*a+3+o*c]=255}return s},j=U;var A=4,D=(t,e,r,n)=>{let l=0,m=0,b=0,g=e*A;for(let u=0;u<e;u++){let c=A*u;for(let s=0;s<r;s++){let o=c+s*g,a=n(u,s);l+=a*f(t[o]),m+=a*f(t[o+1]),b+=a*f(t[o+2])}}let i=1/(e*r);return[l*i,m*i,b*i]},$=t=>{let e=h(t[0]),r=h(t[1]),n=h(t[2]);return(e<<16)+(r<<8)+n},H=(t,e)=>{let r=Math.floor(Math.max(0,Math.min(18,Math.floor(M(t[0]/e,.5)*9+9.5)))),n=Math.floor(Math.max(0,Math.min(18,Math.floor(M(t[1]/e,.5)*9+9.5)))),l=Math.floor(Math.max(0,Math.min(18,Math.floor(M(t[2]/e,.5)*9+9.5))));return r*19*19+n*19+l},O=(t,e,r,n,l)=>{if(n<1||n>9||l<1||l>9)throw new d(\"BlurHash must have between 1 and 9 components\");if(e*r*4!==t.length)throw new d(\"Width and height must match the pixels array\");let m=[];for(let s=0;s<l;s++)for(let o=0;o<n;o++){let a=o==0&&s==0?1:2,y=D(t,e,r,(B,R)=>a*Math.cos(Math.PI*o*B/e)*Math.cos(Math.PI*s*R/r));m.push(y)}let b=m[0],g=m.slice(1),i=\"\",u=n-1+(l-1)*9;i+=p(u,1);let c;if(g.length>0){let s=Math.max(...g.map(a=>Math.max(...a))),o=Math.floor(Math.max(0,Math.min(82,Math.floor(s*166-.5))));c=(o+1)/166,i+=p(o,1)}else c=1,i+=p(0,1);return i+=p($(b),4),g.forEach(s=>{i+=p(H(s,c),2)}),i},S=O;export{d as ValidationError,j as decode,S as encode,N as isBlurhashValid};\n//# sourceMappingURL=index.js.map","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : true\"\n :aria-label=\"title\"\n class=\"material-design-icon file-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M13,9V3.5L18.5,9M6,2C4.89,2 4,2.89 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2H6Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"FileIcon\",\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}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./File.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./File.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./File.vue?vue&type=template&id=e3c8d598\"\nimport script from \"./File.vue?vue&type=script&lang=js\"\nexport * from \"./File.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon file-icon\",attrs:{\"aria-hidden\":_vm.title ? null : true,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M13,9V3.5L18.5,9M6,2C4.89,2 4,2.89 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2H6Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./FolderOpen.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./FolderOpen.vue?vue&type=script&lang=js\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : true\"\n :aria-label=\"title\"\n class=\"material-design-icon folder-open-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M19,20H4C2.89,20 2,19.1 2,18V6C2,4.89 2.89,4 4,4H10L12,6H19A2,2 0 0,1 21,8H21L4,8V18L6.14,10H23.21L20.93,18.5C20.7,19.37 19.92,20 19,20Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"FolderOpenIcon\",\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}\n</script>","import { render, staticRenderFns } from \"./FolderOpen.vue?vue&type=template&id=79cee0a4\"\nimport script from \"./FolderOpen.vue?vue&type=script&lang=js\"\nexport * from \"./FolderOpen.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon folder-open-icon\",attrs:{\"aria-hidden\":_vm.title ? null : true,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M19,20H4C2.89,20 2,19.1 2,18V6C2,4.89 2.89,4 4,4H10L12,6H19A2,2 0 0,1 21,8H21L4,8V18L6.14,10H23.21L20.93,18.5C20.7,19.37 19.92,20 19,20Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Key.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Key.vue?vue&type=script&lang=js\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : true\"\n :aria-label=\"title\"\n class=\"material-design-icon key-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M7 14C5.9 14 5 13.1 5 12S5.9 10 7 10 9 10.9 9 12 8.1 14 7 14M12.6 10C11.8 7.7 9.6 6 7 6C3.7 6 1 8.7 1 12S3.7 18 7 18C9.6 18 11.8 16.3 12.6 14H16V18H20V14H23V10H12.6Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"KeyIcon\",\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}\n</script>","import { render, staticRenderFns } from \"./Key.vue?vue&type=template&id=01a06d54\"\nimport script from \"./Key.vue?vue&type=script&lang=js\"\nexport * from \"./Key.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon key-icon\",attrs:{\"aria-hidden\":_vm.title ? null : true,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M7 14C5.9 14 5 13.1 5 12S5.9 10 7 10 9 10.9 9 12 8.1 14 7 14M12.6 10C11.8 7.7 9.6 6 7 6C3.7 6 1 8.7 1 12S3.7 18 7 18C9.6 18 11.8 16.3 12.6 14H16V18H20V14H23V10H12.6Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Network.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Network.vue?vue&type=script&lang=js\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : true\"\n :aria-label=\"title\"\n class=\"material-design-icon network-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M17,3A2,2 0 0,1 19,5V15A2,2 0 0,1 17,17H13V19H14A1,1 0 0,1 15,20H22V22H15A1,1 0 0,1 14,23H10A1,1 0 0,1 9,22H2V20H9A1,1 0 0,1 10,19H11V17H7C5.89,17 5,16.1 5,15V5A2,2 0 0,1 7,3H17Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"NetworkIcon\",\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}\n</script>","import { render, staticRenderFns } from \"./Network.vue?vue&type=template&id=29f8873c\"\nimport script from \"./Network.vue?vue&type=script&lang=js\"\nexport * from \"./Network.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon network-icon\",attrs:{\"aria-hidden\":_vm.title ? null : true,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M17,3A2,2 0 0,1 19,5V15A2,2 0 0,1 17,17H13V19H14A1,1 0 0,1 15,20H22V22H15A1,1 0 0,1 14,23H10A1,1 0 0,1 9,22H2V20H9A1,1 0 0,1 10,19H11V17H7C5.89,17 5,16.1 5,15V5A2,2 0 0,1 7,3H17Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Tag.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Tag.vue?vue&type=script&lang=js\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : true\"\n :aria-label=\"title\"\n class=\"material-design-icon tag-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M5.5,7A1.5,1.5 0 0,1 4,5.5A1.5,1.5 0 0,1 5.5,4A1.5,1.5 0 0,1 7,5.5A1.5,1.5 0 0,1 5.5,7M21.41,11.58L12.41,2.58C12.05,2.22 11.55,2 11,2H4C2.89,2 2,2.89 2,4V11C2,11.55 2.22,12.05 2.59,12.41L11.58,21.41C11.95,21.77 12.45,22 13,22C13.55,22 14.05,21.77 14.41,21.41L21.41,14.41C21.78,14.05 22,13.55 22,13C22,12.44 21.77,11.94 21.41,11.58Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"TagIcon\",\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}\n</script>","import { render, staticRenderFns } from \"./Tag.vue?vue&type=template&id=75dd05e4\"\nimport script from \"./Tag.vue?vue&type=script&lang=js\"\nexport * from \"./Tag.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon tag-icon\",attrs:{\"aria-hidden\":_vm.title ? null : true,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M5.5,7A1.5,1.5 0 0,1 4,5.5A1.5,1.5 0 0,1 5.5,4A1.5,1.5 0 0,1 7,5.5A1.5,1.5 0 0,1 5.5,7M21.41,11.58L12.41,2.58C12.05,2.22 11.55,2 11,2H4C2.89,2 2,2.89 2,4V11C2,11.55 2.22,12.05 2.59,12.41L11.58,21.41C11.95,21.77 12.45,22 13,22C13.55,22 14.05,21.77 14.41,21.41L21.41,14.41C21.78,14.05 22,13.55 22,13C22,12.44 21.77,11.94 21.41,11.58Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./PlayCircle.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./PlayCircle.vue?vue&type=script&lang=js\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : true\"\n :aria-label=\"title\"\n class=\"material-design-icon play-circle-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M10,16.5V7.5L16,12M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"PlayCircleIcon\",\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}\n</script>","import { render, staticRenderFns } from \"./PlayCircle.vue?vue&type=template&id=6901b3e6\"\nimport script from \"./PlayCircle.vue?vue&type=script&lang=js\"\nexport * from \"./PlayCircle.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon play-circle-icon\",attrs:{\"aria-hidden\":_vm.title ? null : true,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M10,16.5V7.5L16,12M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CollectivesIcon.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CollectivesIcon.vue?vue&type=script&lang=js\"","<!--\n - SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n -->\n<template>\n\t<span :aria-hidden=\"!title\"\n\t\t:aria-label=\"title\"\n\t\tclass=\"material-design-icon collectives-icon\"\n\t\trole=\"img\"\n\t\tv-bind=\"$attrs\"\n\t\t@click=\"$emit('click', $event)\">\n\t\t<svg :fill=\"fillColor\"\n\t\t\tclass=\"material-design-icon__svg\"\n\t\t\t:width=\"size\"\n\t\t\t:height=\"size\"\n\t\t\tviewBox=\"0 0 16 16\">\n\t\t\t<path d=\"M2.9,8.8c0-1.2,0.4-2.4,1.2-3.3L0.3,6c-0.2,0-0.3,0.3-0.1,0.4l2.7,2.6C2.9,9,2.9,8.9,2.9,8.8z\" />\n\t\t\t<path d=\"M8,3.7c0.7,0,1.3,0.1,1.9,0.4L8.2,0.6c-0.1-0.2-0.3-0.2-0.4,0L6.1,4C6.7,3.8,7.3,3.7,8,3.7z\" />\n\t\t\t<path d=\"M3.7,11.5L3,15.2c0,0.2,0.2,0.4,0.4,0.3l3.3-1.7C5.4,13.4,4.4,12.6,3.7,11.5z\" />\n\t\t\t<path d=\"M15.7,6l-3.7-0.5c0.7,0.9,1.2,2,1.2,3.3c0,0.1,0,0.2,0,0.3l2.7-2.6C15.9,6.3,15.9,6.1,15.7,6z\" />\n\t\t\t<path d=\"M12.3,11.5c-0.7,1.1-1.8,1.9-3,2.2l3.3,1.7c0.2,0.1,0.4-0.1,0.4-0.3L12.3,11.5z\" />\n\t\t\t<path d=\"M9.6,10.1c-0.4,0.5-1,0.8-1.6,0.8c-1.1,0-2-0.9-2.1-2C5.9,7.7,6.8,6.7,8,6.7c0.6,0,1.1,0.3,1.5,0.7 c0.1,0.1,0.1,0.1,0.2,0.1h1.4c0.2,0,0.4-0.2,0.3-0.5c-0.7-1.3-2.1-2.2-3.8-2.1C5.8,5,4.3,6.6,4.1,8.5C4,10.8,5.8,12.7,8,12.7 c1.6,0,2.9-0.9,3.5-2.3c0.1-0.2-0.1-0.4-0.3-0.4H9.9C9.8,10,9.7,10,9.6,10.1z\" />\n\t\t</svg>\n\t</span>\n</template>\n\n<script>\nexport default {\n\tname: 'CollectivesIcon',\n\tprops: {\n\t\ttitle: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\tfillColor: {\n\t\t\ttype: String,\n\t\t\tdefault: 'currentColor',\n\t\t},\n\t\tsize: {\n\t\t\ttype: Number,\n\t\t\tdefault: 24,\n\t\t},\n\t},\n}\n</script>\n","import { render, staticRenderFns } from \"./CollectivesIcon.vue?vue&type=template&id=43528c7c\"\nimport script from \"./CollectivesIcon.vue?vue&type=script&lang=js\"\nexport * from \"./CollectivesIcon.vue?vue&type=script&lang=js\"\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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon collectives-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 16 16\"}},[_c('path',{attrs:{\"d\":\"M2.9,8.8c0-1.2,0.4-2.4,1.2-3.3L0.3,6c-0.2,0-0.3,0.3-0.1,0.4l2.7,2.6C2.9,9,2.9,8.9,2.9,8.8z\"}}),_vm._v(\" \"),_c('path',{attrs:{\"d\":\"M8,3.7c0.7,0,1.3,0.1,1.9,0.4L8.2,0.6c-0.1-0.2-0.3-0.2-0.4,0L6.1,4C6.7,3.8,7.3,3.7,8,3.7z\"}}),_vm._v(\" \"),_c('path',{attrs:{\"d\":\"M3.7,11.5L3,15.2c0,0.2,0.2,0.4,0.4,0.3l3.3-1.7C5.4,13.4,4.4,12.6,3.7,11.5z\"}}),_vm._v(\" \"),_c('path',{attrs:{\"d\":\"M15.7,6l-3.7-0.5c0.7,0.9,1.2,2,1.2,3.3c0,0.1,0,0.2,0,0.3l2.7-2.6C15.9,6.3,15.9,6.1,15.7,6z\"}}),_vm._v(\" \"),_c('path',{attrs:{\"d\":\"M12.3,11.5c-0.7,1.1-1.8,1.9-3,2.2l3.3,1.7c0.2,0.1,0.4-0.1,0.4-0.3L12.3,11.5z\"}}),_vm._v(\" \"),_c('path',{attrs:{\"d\":\"M9.6,10.1c-0.4,0.5-1,0.8-1.6,0.8c-1.1,0-2-0.9-2.1-2C5.9,7.7,6.8,6.7,8,6.7c0.6,0,1.1,0.3,1.5,0.7 c0.1,0.1,0.1,0.1,0.2,0.1h1.4c0.2,0,0.4-0.2,0.3-0.5c-0.7-1.3-2.1-2.2-3.8-2.1C5.8,5,4.3,6.6,4.1,8.5C4,10.8,5.8,12.7,8,12.7 c1.6,0,2.9-0.9,3.5-2.3c0.1-0.2-0.1-0.4-0.3-0.4H9.9C9.8,10,9.7,10,9.6,10.1z\"}})])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcIconSvgWrapper',{staticClass:\"favorite-marker-icon\",attrs:{\"name\":_vm.t('files', 'Favorite'),\"svg\":_vm.StarSvg}})\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!./FavoriteIcon.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!./FavoriteIcon.vue?vue&type=script&lang=ts\"","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FavoriteIcon.vue?vue&type=style&index=0&id=f2d0cf6e&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FavoriteIcon.vue?vue&type=style&index=0&id=f2d0cf6e&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FavoriteIcon.vue?vue&type=template&id=f2d0cf6e&scoped=true\"\nimport script from \"./FavoriteIcon.vue?vue&type=script&lang=ts\"\nexport * from \"./FavoriteIcon.vue?vue&type=script&lang=ts\"\nimport style0 from \"./FavoriteIcon.vue?vue&type=style&index=0&id=f2d0cf6e&prod&lang=scss&scoped=true\"\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 \"f2d0cf6e\",\n null\n \n)\n\nexport default component.exports","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!./FileEntryPreview.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!./FileEntryPreview.vue?vue&type=script&lang=ts\"","/**\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';\n/**\n *\n */\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","import { render, staticRenderFns } from \"./FileEntryPreview.vue?vue&type=template&id=d02c9e3e\"\nimport script from \"./FileEntryPreview.vue?vue&type=script&lang=ts\"\nexport * from \"./FileEntryPreview.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","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!./FileEntry.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!./FileEntry.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./FileEntry.vue?vue&type=template&id=8fb5fabc\"\nimport script from \"./FileEntry.vue?vue&type=script&lang=ts\"\nexport * from \"./FileEntry.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","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!./FileEntryGrid.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!./FileEntryGrid.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('tr',{staticClass:\"files-list__row\",class:{'files-list__row--active': _vm.isActive, 'files-list__row--dragover': _vm.dragover, 'files-list__row--loading': _vm.isLoading},attrs:{\"data-cy-files-list-row\":\"\",\"data-cy-files-list-row-fileid\":_vm.fileid,\"data-cy-files-list-row-name\":_vm.source.basename,\"draggable\":_vm.canDrag},on:{\"contextmenu\":_vm.onRightClick,\"dragover\":_vm.onDragOver,\"dragleave\":_vm.onDragLeave,\"dragstart\":_vm.onDragStart,\"dragend\":_vm.onDragEnd,\"drop\":_vm.onDrop}},[(_vm.isFailedSource)?_c('span',{staticClass:\"files-list__row--failed\"}):_vm._e(),_vm._v(\" \"),_c('FileEntryCheckbox',{attrs:{\"fileid\":_vm.fileid,\"is-loading\":_vm.isLoading,\"nodes\":_vm.nodes,\"source\":_vm.source}}),_vm._v(\" \"),_c('td',{staticClass:\"files-list__row-name\",attrs:{\"data-cy-files-list-row-name\":\"\"}},[_c('FileEntryPreview',{ref:\"preview\",attrs:{\"dragover\":_vm.dragover,\"grid-mode\":true,\"source\":_vm.source},nativeOn:{\"auxclick\":function($event){return _vm.execDefaultAction.apply(null, arguments)},\"click\":function($event){return _vm.execDefaultAction.apply(null, arguments)}}}),_vm._v(\" \"),_c('FileEntryName',{ref:\"name\",attrs:{\"basename\":_vm.basename,\"extension\":_vm.extension,\"files-list-width\":_vm.filesListWidth,\"grid-mode\":true,\"nodes\":_vm.nodes,\"source\":_vm.source},nativeOn:{\"auxclick\":function($event){return _vm.execDefaultAction.apply(null, arguments)},\"click\":function($event){return _vm.execDefaultAction.apply(null, arguments)}}})],1),_vm._v(\" \"),(!_vm.compact && _vm.isMtimeAvailable)?_c('td',{staticClass:\"files-list__row-mtime\",style:(_vm.mtimeOpacity),attrs:{\"data-cy-files-list-row-mtime\":\"\"},on:{\"click\":_vm.openDetailsIfAvailable}},[(_vm.source.mtime)?_c('NcDateTime',{attrs:{\"timestamp\":_vm.source.mtime,\"ignore-seconds\":true}}):_vm._e()],1):_vm._e(),_vm._v(\" \"),_c('FileEntryActions',{ref:\"actions\",class:`files-list__row-actions-${_vm.uniqueId}`,attrs:{\"files-list-width\":_vm.filesListWidth,\"grid-mode\":true,\"loading\":_vm.loading,\"opened\":_vm.openedMenu,\"source\":_vm.source},on:{\"update:loading\":function($event){_vm.loading=$event},\"update:opened\":function($event){_vm.openedMenu=$event}}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./FileEntryGrid.vue?vue&type=template&id=06360965\"\nimport script from \"./FileEntryGrid.vue?vue&type=script&lang=ts\"\nexport * from \"./FileEntryGrid.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","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!./FilesListHeader.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!./FilesListHeader.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.enabled),expression:\"enabled\"}],class:`files-list__header-${_vm.header.id}`},[_c('span',{ref:\"mount\"})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./FilesListHeader.vue?vue&type=template&id=33e2173e\"\nimport script from \"./FilesListHeader.vue?vue&type=script&lang=ts\"\nexport * from \"./FilesListHeader.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","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!./FilesListTableFooter.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!./FilesListTableFooter.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('tr',[_c('th',{staticClass:\"files-list__row-checkbox\"},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('files', 'Total rows summary')))])]),_vm._v(\" \"),_c('td',{staticClass:\"files-list__row-name\"},[_c('span',{staticClass:\"files-list__row-icon\"}),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.summary))])]),_vm._v(\" \"),_c('td',{staticClass:\"files-list__row-actions\"}),_vm._v(\" \"),(_vm.isSizeAvailable)?_c('td',{staticClass:\"files-list__column files-list__row-size\"},[_c('span',[_vm._v(_vm._s(_vm.totalSize))])]):_vm._e(),_vm._v(\" \"),(_vm.isMtimeAvailable)?_c('td',{staticClass:\"files-list__column files-list__row-mtime\"}):_vm._e(),_vm._v(\" \"),_vm._l((_vm.columns),function(column){return _c('th',{key:column.id,class:_vm.classForColumn(column)},[_c('span',[_vm._v(_vm._s(column.summary?.(_vm.nodes, _vm.currentView)))])])})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListTableFooter.vue?vue&type=style&index=0&id=4c69fc7c&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListTableFooter.vue?vue&type=style&index=0&id=4c69fc7c&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FilesListTableFooter.vue?vue&type=template&id=4c69fc7c&scoped=true\"\nimport script from \"./FilesListTableFooter.vue?vue&type=script&lang=ts\"\nexport * from \"./FilesListTableFooter.vue?vue&type=script&lang=ts\"\nimport style0 from \"./FilesListTableFooter.vue?vue&type=style&index=0&id=4c69fc7c&prod&scoped=true&lang=scss\"\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 \"4c69fc7c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('tr',{staticClass:\"files-list__row-head\"},[_c('th',{staticClass:\"files-list__column files-list__row-checkbox\",on:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"]))return null;if($event.ctrlKey||$event.shiftKey||$event.altKey||$event.metaKey)return null;return _vm.resetSelection.apply(null, arguments)}}},[_c('NcCheckboxRadioSwitch',_vm._b({attrs:{\"data-cy-files-list-selection-checkbox\":\"\"},on:{\"update:checked\":_vm.onToggleAll}},'NcCheckboxRadioSwitch',_vm.selectAllBind,false))],1),_vm._v(\" \"),_c('th',{staticClass:\"files-list__column files-list__row-name files-list__column--sortable\",attrs:{\"aria-sort\":_vm.ariaSortForMode('basename')}},[_c('span',{staticClass:\"files-list__row-icon\"}),_vm._v(\" \"),_c('FilesListTableHeaderButton',{attrs:{\"name\":_vm.t('files', 'Name'),\"mode\":\"basename\"}})],1),_vm._v(\" \"),_c('th',{staticClass:\"files-list__row-actions\"}),_vm._v(\" \"),(_vm.isSizeAvailable)?_c('th',{staticClass:\"files-list__column files-list__row-size\",class:{ 'files-list__column--sortable': _vm.isSizeAvailable },attrs:{\"aria-sort\":_vm.ariaSortForMode('size')}},[_c('FilesListTableHeaderButton',{attrs:{\"name\":_vm.t('files', 'Size'),\"mode\":\"size\"}})],1):_vm._e(),_vm._v(\" \"),(_vm.isMtimeAvailable)?_c('th',{staticClass:\"files-list__column files-list__row-mtime\",class:{ 'files-list__column--sortable': _vm.isMtimeAvailable },attrs:{\"aria-sort\":_vm.ariaSortForMode('mtime')}},[_c('FilesListTableHeaderButton',{attrs:{\"name\":_vm.t('files', 'Modified'),\"mode\":\"mtime\"}})],1):_vm._e(),_vm._v(\" \"),_vm._l((_vm.columns),function(column){return _c('th',{key:column.id,class:_vm.classForColumn(column),attrs:{\"aria-sort\":_vm.ariaSortForMode(column.id)}},[(!!column.sort)?_c('FilesListTableHeaderButton',{attrs:{\"name\":column.title,\"mode\":column.id}}):_c('span',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(column.title)+\"\\n\\t\\t\")])],1)})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport Vue from 'vue';\nimport { mapState } from 'pinia';\nimport { useViewConfigStore } from '../store/viewConfig';\nimport { Navigation, View } from '@nextcloud/files';\nexport default Vue.extend({\n computed: {\n ...mapState(useViewConfigStore, ['getConfig', 'setSortingBy', 'toggleSortingDirection']),\n currentView() {\n return this.$navigation.active;\n },\n /**\n * Get the sorting mode for the current view\n */\n sortingMode() {\n return this.getConfig(this.currentView.id)?.sorting_mode\n || this.currentView?.defaultSortKey\n || 'basename';\n },\n /**\n * Get the sorting direction for the current view\n */\n isAscSorting() {\n const sortingDirection = this.getConfig(this.currentView.id)?.sorting_direction;\n return sortingDirection !== 'desc';\n },\n },\n methods: {\n toggleSortBy(key) {\n // If we're already sorting by this key, flip the direction\n if (this.sortingMode === key) {\n this.toggleSortingDirection(this.currentView.id);\n return;\n }\n // else sort ASC by this new key\n this.setSortingBy(key, this.currentView.id);\n },\n },\n});\n","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!./FilesListTableHeaderButton.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!./FilesListTableHeaderButton.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcButton',{class:['files-list__column-sort-button', {\n\t\t'files-list__column-sort-button--active': _vm.sortingMode === _vm.mode,\n\t\t'files-list__column-sort-button--size': _vm.sortingMode === 'size',\n\t}],attrs:{\"alignment\":_vm.mode === 'size' ? 'end' : 'start-reverse',\"type\":\"tertiary\",\"title\":_vm.name},on:{\"click\":function($event){return _vm.toggleSortBy(_vm.mode)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.sortingMode !== _vm.mode || _vm.isAscSorting)?_c('MenuUp',{staticClass:\"files-list__column-sort-button-icon\"}):_c('MenuDown',{staticClass:\"files-list__column-sort-button-icon\"})]},proxy:true}])},[_vm._v(\" \"),_c('span',{staticClass:\"files-list__column-sort-button-text\"},[_vm._v(_vm._s(_vm.name))])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListTableHeaderButton.vue?vue&type=style&index=0&id=6d7680f0&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListTableHeaderButton.vue?vue&type=style&index=0&id=6d7680f0&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FilesListTableHeaderButton.vue?vue&type=template&id=6d7680f0&scoped=true\"\nimport script from \"./FilesListTableHeaderButton.vue?vue&type=script&lang=ts\"\nexport * from \"./FilesListTableHeaderButton.vue?vue&type=script&lang=ts\"\nimport style0 from \"./FilesListTableHeaderButton.vue?vue&type=style&index=0&id=6d7680f0&prod&scoped=true&lang=scss\"\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 \"6d7680f0\",\n null\n \n)\n\nexport default component.exports","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!./FilesListTableHeader.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!./FilesListTableHeader.vue?vue&type=script&lang=ts\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListTableHeader.vue?vue&type=style&index=0&id=4daa9603&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListTableHeader.vue?vue&type=style&index=0&id=4daa9603&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FilesListTableHeader.vue?vue&type=template&id=4daa9603&scoped=true\"\nimport script from \"./FilesListTableHeader.vue?vue&type=script&lang=ts\"\nexport * from \"./FilesListTableHeader.vue?vue&type=script&lang=ts\"\nimport style0 from \"./FilesListTableHeader.vue?vue&type=style&index=0&id=4daa9603&prod&scoped=true&lang=scss\"\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 \"4daa9603\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"files-list\",attrs:{\"data-cy-files-list\":\"\"}},[_c('div',{ref:\"before\",staticClass:\"files-list__before\"},[_vm._t(\"before\")],2),_vm._v(\" \"),_c('div',{staticClass:\"files-list__filters\"},[_vm._t(\"filters\")],2),_vm._v(\" \"),(!!_vm.$scopedSlots['header-overlay'])?_c('div',{staticClass:\"files-list__thead-overlay\"},[_vm._t(\"header-overlay\")],2):_vm._e(),_vm._v(\" \"),_c('table',{staticClass:\"files-list__table\",class:{ 'files-list__table--with-thead-overlay': !!_vm.$scopedSlots['header-overlay'] }},[(_vm.caption)?_c('caption',{staticClass:\"hidden-visually\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.caption)+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('thead',{ref:\"thead\",staticClass:\"files-list__thead\",attrs:{\"data-cy-files-list-thead\":\"\"}},[_vm._t(\"header\")],2),_vm._v(\" \"),_c('tbody',{staticClass:\"files-list__tbody\",class:_vm.gridMode ? 'files-list__tbody--grid' : 'files-list__tbody--list',style:(_vm.tbodyStyle),attrs:{\"data-cy-files-list-tbody\":\"\"}},_vm._l((_vm.renderedItems),function({key, item},i){return _c(_vm.dataComponent,_vm._b({key:key,tag:\"component\",attrs:{\"source\":item,\"index\":i}},'component',_vm.extraProps,false))}),1),_vm._v(\" \"),_c('tfoot',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isReady),expression:\"isReady\"}],staticClass:\"files-list__tfoot\",attrs:{\"data-cy-files-list-tfoot\":\"\"}},[_vm._t(\"footer\")],2)])])\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!./VirtualList.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!./VirtualList.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./VirtualList.vue?vue&type=template&id=43a0a096\"\nimport script from \"./VirtualList.vue?vue&type=script&lang=ts\"\nexport * from \"./VirtualList.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","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"files-list__column files-list__row-actions-batch\",attrs:{\"data-cy-files-list-selection-actions\":\"\"}},[_c('NcActions',{ref:\"actionsMenu\",attrs:{\"container\":\"#app-content-vue\",\"disabled\":!!_vm.loading || _vm.areSomeNodesLoading,\"force-name\":true,\"inline\":_vm.inlineActions,\"menu-name\":_vm.inlineActions <= 1 ? _vm.t('files', 'Actions') : null,\"open\":_vm.openedMenu},on:{\"update:open\":function($event){_vm.openedMenu=$event}}},_vm._l((_vm.enabledActions),function(action){return _c('NcActionButton',{key:action.id,class:'files-list__row-actions-batch-' + action.id,attrs:{\"aria-label\":action.displayName(_vm.nodes, _vm.currentView) + ' ' + _vm.t('files', '(selected)') /** TRANSLATORS: Selected like 'selected files and folders' */,\"data-cy-files-list-selection-action\":action.id},on:{\"click\":function($event){return _vm.onActionClick(action)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.loading === action.id)?_c('NcLoadingIcon',{attrs:{\"size\":18}}):_c('NcIconSvgWrapper',{attrs:{\"svg\":action.iconSvgInline(_vm.nodes, _vm.currentView)}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(action.displayName(_vm.nodes, _vm.currentView))+\"\\n\\t\\t\")])}),1)],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!./FilesListTableHeaderActions.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!./FilesListTableHeaderActions.vue?vue&type=script&lang=ts\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListTableHeaderActions.vue?vue&type=style&index=0&id=30ce9832&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListTableHeaderActions.vue?vue&type=style&index=0&id=30ce9832&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FilesListTableHeaderActions.vue?vue&type=template&id=30ce9832&scoped=true\"\nimport script from \"./FilesListTableHeaderActions.vue?vue&type=script&lang=ts\"\nexport * from \"./FilesListTableHeaderActions.vue?vue&type=script&lang=ts\"\nimport style0 from \"./FilesListTableHeaderActions.vue?vue&type=style&index=0&id=30ce9832&prod&scoped=true&lang=scss\"\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 \"30ce9832\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"file-list-filters\"},[_c('div',{staticClass:\"file-list-filters__filter\",attrs:{\"data-cy-files-filters\":\"\"}},_vm._l((_setup.visualFilters),function(filter){return _c('span',{key:filter.id,ref:\"filterElements\",refInFor:true})}),0),_vm._v(\" \"),(_setup.activeChips.length > 0)?_c('ul',{staticClass:\"file-list-filters__active\",attrs:{\"aria-label\":_setup.t('files', 'Active filters')}},_vm._l((_setup.activeChips),function(chip,index){return _c('li',{key:index},[_c(_setup.NcChip,{attrs:{\"aria-label-close\":_setup.t('files', 'Remove filter'),\"icon-svg\":chip.icon,\"text\":chip.text},on:{\"close\":chip.onclick},scopedSlots:_vm._u([(chip.user)?{key:\"icon\",fn:function(){return [_c(_setup.NcAvatar,{attrs:{\"disable-menu\":\"\",\"show-user-status\":false,\"size\":24,\"user\":chip.user}})]},proxy:true}:null],null,true)})],1)}),0):_vm._e()])\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!./FileListFilters.vue?vue&type=script&setup=true&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!./FileListFilters.vue?vue&type=script&setup=true&lang=ts\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileListFilters.vue?vue&type=style&index=0&id=bd0c8440&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileListFilters.vue?vue&type=style&index=0&id=bd0c8440&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FileListFilters.vue?vue&type=template&id=bd0c8440&scoped=true\"\nimport script from \"./FileListFilters.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./FileListFilters.vue?vue&type=script&setup=true&lang=ts\"\nimport style0 from \"./FileListFilters.vue?vue&type=style&index=0&id=bd0c8440&prod&scoped=true&lang=scss\"\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 \"bd0c8440\",\n null\n \n)\n\nexport default component.exports","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!./FilesListVirtual.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!./FilesListVirtual.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('VirtualList',{ref:\"table\",attrs:{\"data-component\":_vm.userConfig.grid_view ? _vm.FileEntryGrid : _vm.FileEntry,\"data-key\":'source',\"data-sources\":_vm.nodes,\"grid-mode\":_vm.userConfig.grid_view,\"extra-props\":{\n\t\tisMtimeAvailable: _vm.isMtimeAvailable,\n\t\tisSizeAvailable: _vm.isSizeAvailable,\n\t\tnodes: _vm.nodes,\n\t\tfilesListWidth: _vm.filesListWidth,\n\t},\"scroll-to-index\":_vm.scrollToIndex,\"caption\":_vm.caption},scopedSlots:_vm._u([{key:\"filters\",fn:function(){return [_c('FileListFilters')]},proxy:true},(!_vm.isNoneSelected)?{key:\"header-overlay\",fn:function(){return [_c('span',{staticClass:\"files-list__selected\"},[_vm._v(_vm._s(_vm.t('files', '{count} selected', { count: _vm.selectedNodes.length })))]),_vm._v(\" \"),_c('FilesListTableHeaderActions',{attrs:{\"current-view\":_vm.currentView,\"selected-nodes\":_vm.selectedNodes}})]},proxy:true}:null,{key:\"before\",fn:function(){return _vm._l((_vm.sortedHeaders),function(header){return _c('FilesListHeader',{key:header.id,attrs:{\"current-folder\":_vm.currentFolder,\"current-view\":_vm.currentView,\"header\":header}})})},proxy:true},{key:\"header\",fn:function(){return [_c('FilesListTableHeader',{ref:\"thead\",attrs:{\"files-list-width\":_vm.filesListWidth,\"is-mtime-available\":_vm.isMtimeAvailable,\"is-size-available\":_vm.isSizeAvailable,\"nodes\":_vm.nodes}})]},proxy:true},{key:\"footer\",fn:function(){return [_c('FilesListTableFooter',{attrs:{\"current-view\":_vm.currentView,\"files-list-width\":_vm.filesListWidth,\"is-mtime-available\":_vm.isMtimeAvailable,\"is-size-available\":_vm.isSizeAvailable,\"nodes\":_vm.nodes,\"summary\":_vm.summary}})]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListVirtual.vue?vue&type=style&index=0&id=39cea143&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListVirtual.vue?vue&type=style&index=0&id=39cea143&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListVirtual.vue?vue&type=style&index=1&id=39cea143&prod&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListVirtual.vue?vue&type=style&index=1&id=39cea143&prod&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FilesListVirtual.vue?vue&type=template&id=39cea143&scoped=true\"\nimport script from \"./FilesListVirtual.vue?vue&type=script&lang=ts\"\nexport * from \"./FilesListVirtual.vue?vue&type=script&lang=ts\"\nimport style0 from \"./FilesListVirtual.vue?vue&type=style&index=0&id=39cea143&prod&scoped=true&lang=scss\"\nimport style1 from \"./FilesListVirtual.vue?vue&type=style&index=1&id=39cea143&prod&lang=scss\"\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 \"39cea143\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./TrayArrowDown.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./TrayArrowDown.vue?vue&type=script&lang=js\"","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : true\"\n :aria-label=\"title\"\n class=\"material-design-icon tray-arrow-down-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M2 12H4V17H20V12H22V17C22 18.11 21.11 19 20 19H4C2.9 19 2 18.11 2 17V12M12 15L17.55 9.54L16.13 8.13L13 11.25V2H11V11.25L7.88 8.13L6.46 9.55L12 15Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"TrayArrowDownIcon\",\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}\n</script>","import { render, staticRenderFns } from \"./TrayArrowDown.vue?vue&type=template&id=447c2cd4\"\nimport script from \"./TrayArrowDown.vue?vue&type=script&lang=js\"\nexport * from \"./TrayArrowDown.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon tray-arrow-down-icon\",attrs:{\"aria-hidden\":_vm.title ? null : true,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M2 12H4V17H20V12H22V17C22 18.11 21.11 19 20 19H4C2.9 19 2 18.11 2 17V12M12 15L17.55 9.54L16.13 8.13L13 11.25V2H11V11.25L7.88 8.13L6.46 9.55L12 15Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\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!./DragAndDropNotice.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!./DragAndDropNotice.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.dragover),expression:\"dragover\"}],staticClass:\"files-list__drag-drop-notice\",attrs:{\"data-cy-files-drag-drop-area\":\"\"},on:{\"drop\":_vm.onDrop}},[_c('div',{staticClass:\"files-list__drag-drop-notice-wrapper\"},[(_vm.canUpload && !_vm.isQuotaExceeded)?[_c('TrayArrowDownIcon',{attrs:{\"size\":48}}),_vm._v(\" \"),_c('h3',{staticClass:\"files-list-drag-drop-notice__title\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Drag and drop files here to upload'))+\"\\n\\t\\t\\t\")])]:[_c('h3',{staticClass:\"files-list-drag-drop-notice__title\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.cantUploadLabel)+\"\\n\\t\\t\\t\")])]],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DragAndDropNotice.vue?vue&type=style&index=0&id=48abd828&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DragAndDropNotice.vue?vue&type=style&index=0&id=48abd828&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./DragAndDropNotice.vue?vue&type=template&id=48abd828&scoped=true\"\nimport script from \"./DragAndDropNotice.vue?vue&type=script&lang=ts\"\nexport * from \"./DragAndDropNotice.vue?vue&type=script&lang=ts\"\nimport style0 from \"./DragAndDropNotice.vue?vue&type=style&index=0&id=48abd828&prod&lang=scss&scoped=true\"\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 \"48abd828\",\n null\n \n)\n\nexport default component.exports","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!./FilesList.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!./FilesList.vue?vue&type=script&lang=ts\"","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { t } from '@nextcloud/l10n';\n/**\n * Whether error is a WebDAVClientError\n * @param error - Any exception\n * @return {boolean} - Whether error is a WebDAVClientError\n */\nfunction isWebDAVClientError(error) {\n return error instanceof Error && 'status' in error && 'response' in error;\n}\n/**\n * Get a localized error message from webdav request\n * @param error - An exception from webdav request\n * @return {string} Localized error message for end user\n */\nexport function humanizeWebDAVError(error) {\n if (error instanceof Error) {\n if (isWebDAVClientError(error)) {\n const status = error.status || error.response?.status || 0;\n if ([400, 404, 405].includes(status)) {\n return t('files', 'Folder not found');\n }\n else if (status === 403) {\n return t('files', 'This operation is forbidden');\n }\n else if (status === 500) {\n return t('files', 'This directory is unavailable, please check the logs or contact the administrator');\n }\n else if (status === 503) {\n return t('files', 'Storage is temporarily not available');\n }\n }\n return t('files', 'Unexpected error: {error}', { error: error.message });\n }\n return t('files', 'Unknown error');\n}\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesList.vue?vue&type=style&index=0&id=7deccf49&prod&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesList.vue?vue&type=style&index=0&id=7deccf49&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FilesList.vue?vue&type=template&id=7deccf49&scoped=true\"\nimport script from \"./FilesList.vue?vue&type=script&lang=ts\"\nexport * from \"./FilesList.vue?vue&type=script&lang=ts\"\nimport style0 from \"./FilesList.vue?vue&type=style&index=0&id=7deccf49&prod&scoped=true&lang=scss\"\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 \"7deccf49\",\n null\n \n)\n\nexport default component.exports","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!./FilesApp.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!./FilesApp.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./FilesApp.vue?vue&type=template&id=43ffc6ca\"\nimport script from \"./FilesApp.vue?vue&type=script&lang=ts\"\nexport * from \"./FilesApp.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: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getCSPNonce } from '@nextcloud/auth';\nimport { getNavigation } from '@nextcloud/files';\nimport { PiniaVuePlugin } from 'pinia';\nimport Vue from 'vue';\nimport { pinia } from './store/index.ts';\nimport router from './router/router';\nimport RouterService from './services/RouterService';\nimport SettingsModel from './models/Setting.js';\nimport SettingsService from './services/Settings.js';\nimport FilesApp from './FilesApp.vue';\n__webpack_nonce__ = getCSPNonce();\n// Init private and public Files namespace\nwindow.OCA.Files = window.OCA.Files ?? {};\nwindow.OCP.Files = window.OCP.Files ?? {};\n// Expose router\nif (!window.OCP.Files.Router) {\n const Router = new RouterService(router);\n Object.assign(window.OCP.Files, { Router });\n}\n// Init Pinia store\nVue.use(PiniaVuePlugin);\n// Init Navigation Service\n// This only works with Vue 2 - with Vue 3 this will not modify the source but return just a observer\nconst Navigation = Vue.observable(getNavigation());\nVue.prototype.$navigation = Navigation;\n// Init Files App Settings Service\nconst Settings = new SettingsService();\nObject.assign(window.OCA.Files, { Settings });\nObject.assign(window.OCA.Files.Settings, { Setting: SettingsModel });\nconst FilesAppVue = Vue.extend(FilesApp);\nnew FilesAppVue({\n router: window.OCP.Files.Router._router,\n pinia,\n}).$mount('#content');\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nexport default class Settings {\n\n\t_settings\n\n\tconstructor() {\n\t\tthis._settings = []\n\t\tconsole.debug('OCA.Files.Settings initialized')\n\t}\n\n\t/**\n\t * Register a new setting\n\t *\n\t * @since 19.0.0\n\t * @param {OCA.Files.Settings.Setting} view element to add to settings\n\t * @return {boolean} whether registering was successful\n\t */\n\tregister(view) {\n\t\tif (this._settings.filter(e => e.name === view.name).length > 0) {\n\t\t\tconsole.error('A setting with the same name is already registered')\n\t\t\treturn false\n\t\t}\n\t\tthis._settings.push(view)\n\t\treturn true\n\t}\n\n\t/**\n\t * All settings elements\n\t *\n\t * @return {OCA.Files.Settings.Setting[]} All currently registered settings\n\t */\n\tget settings() {\n\t\treturn this._settings\n\t}\n\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nexport default class Setting {\n\n\t_close\n\t_el\n\t_name\n\t_open\n\n\t/**\n\t * Create a new files app setting\n\t *\n\t * @since 19.0.0\n\t * @param {string} name the name of this setting\n\t * @param {object} component the component\n\t * @param {Function} component.el function that returns an unmounted dom element to be added\n\t * @param {Function} [component.open] callback for when setting is added\n\t * @param {Function} [component.close] callback for when setting is closed\n\t */\n\tconstructor(name, { el, open, close }) {\n\t\tthis._name = name\n\t\tthis._el = el\n\t\tthis._open = open\n\t\tthis._close = close\n\n\t\tif (typeof this._open !== 'function') {\n\t\t\tthis._open = () => {}\n\t\t}\n\n\t\tif (typeof this._close !== 'function') {\n\t\t\tthis._close = () => {}\n\t\t}\n\t}\n\n\tget name() {\n\t\treturn this._name\n\t}\n\n\tget el() {\n\t\treturn this._el\n\t}\n\n\tget open() {\n\t\treturn this._open\n\t}\n\n\tget close() {\n\t\treturn this._close\n\t}\n\n}\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/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, `.files-list__breadcrumbs[data-v-dc01fdb0]{flex:1 1 100% !important;width:100%;height:100%;margin-block:0;margin-inline:10px;min-width:0}.files-list__breadcrumbs[data-v-dc01fdb0] a{cursor:pointer !important}.files-list__breadcrumbs--with-progress[data-v-dc01fdb0]{flex-direction:column !important;align-items:flex-start !important}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/BreadCrumbs.vue\"],\"names\":[],\"mappings\":\"AACA,0CAEC,wBAAA,CACA,UAAA,CACA,WAAA,CACA,cAAA,CACA,kBAAA,CACA,WAAA,CAGC,6CACC,yBAAA,CAIF,yDACC,gCAAA,CACA,iCAAA\",\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/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, `.files-list__drag-drop-notice[data-v-48abd828]{display:flex;align-items:center;justify-content:center;width:100%;min-height:113px;margin:0;user-select:none;color:var(--color-text-maxcontrast);background-color:var(--color-main-background);border-color:#000}.files-list__drag-drop-notice h3[data-v-48abd828]{margin-inline-start:16px;color:inherit}.files-list__drag-drop-notice-wrapper[data-v-48abd828]{display:flex;align-items:center;justify-content:center;height:15vh;max-height:70%;padding:0 5vw;border:2px var(--color-border-dark) dashed;border-radius:var(--border-radius-large)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/DragAndDropNotice.vue\"],\"names\":[],\"mappings\":\"AACA,+CACC,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,UAAA,CAEA,gBAAA,CACA,QAAA,CACA,gBAAA,CACA,mCAAA,CACA,6CAAA,CACA,iBAAA,CAEA,kDACC,wBAAA,CACA,aAAA,CAGD,uDACC,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,WAAA,CACA,cAAA,CACA,aAAA,CACA,0CAAA,CACA,wCAAA\",\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/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, `.files-list-drag-image{position:absolute;top:-9999px;inset-inline-start:-9999px;display:flex;overflow:hidden;align-items:center;height:44px;padding:6px 12px;background:var(--color-main-background)}.files-list-drag-image__icon,.files-list-drag-image .files-list__row-icon{display:flex;overflow:hidden;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--border-radius)}.files-list-drag-image__icon{overflow:visible;margin-inline-end:12px}.files-list-drag-image__icon img{max-width:100%;max-height:100%}.files-list-drag-image__icon .material-design-icon{color:var(--color-text-maxcontrast)}.files-list-drag-image__icon .material-design-icon.folder-icon{color:var(--color-primary-element)}.files-list-drag-image__icon>span{display:flex}.files-list-drag-image__icon>span .files-list__row-icon+.files-list__row-icon{margin-top:6px;margin-inline-start:-26px}.files-list-drag-image__icon>span .files-list__row-icon+.files-list__row-icon+.files-list__row-icon{margin-top:12px}.files-list-drag-image__icon>span:not(:empty)+*{display:none}.files-list-drag-image__name{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/DragAndDropPreview.vue\"],\"names\":[],\"mappings\":\"AAIA,uBACC,iBAAA,CACA,WAAA,CACA,0BAAA,CACA,YAAA,CACA,eAAA,CACA,kBAAA,CACA,WAAA,CACA,gBAAA,CACA,uCAAA,CAEA,0EAEC,YAAA,CACA,eAAA,CACA,kBAAA,CACA,sBAAA,CACA,UAAA,CACA,WAAA,CACA,kCAAA,CAGD,6BACC,gBAAA,CACA,sBAAA,CAEA,iCACC,cAAA,CACA,eAAA,CAGD,mDACC,mCAAA,CACA,+DACC,kCAAA,CAKF,kCACC,YAAA,CAGA,8EACC,cA9CU,CA+CV,yBAAA,CACA,oGACC,eAAA,CAKF,gDACC,YAAA,CAKH,6BACC,eAAA,CACA,kBAAA,CACA,sBAAA\",\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/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, `.favorite-marker-icon[data-v-f2d0cf6e]{color:var(--color-favorite);min-width:unset !important;min-height:unset !important}.favorite-marker-icon[data-v-f2d0cf6e] svg{width:26px !important;height:26px !important;max-width:unset !important;max-height:unset !important}.favorite-marker-icon[data-v-f2d0cf6e] svg path{stroke:var(--color-main-background);stroke-width:8px;stroke-linejoin:round;paint-order:stroke}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FileEntry/FavoriteIcon.vue\"],\"names\":[],\"mappings\":\"AACA,uCACC,2BAAA,CAEA,0BAAA,CACG,2BAAA,CAGF,4CAEC,qBAAA,CACA,sBAAA,CAGA,0BAAA,CACA,2BAAA,CAGA,iDACC,mCAAA,CACA,gBAAA,CACA,qBAAA,CACA,kBAAA\",\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/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, `main.app-content[style*=mouse-pos-x] .v-popper__popper{transform:translate3d(var(--mouse-pos-x), var(--mouse-pos-y), 0px) !important}main.app-content[style*=mouse-pos-x] .v-popper__popper[data-popper-placement=top]{transform:translate3d(var(--mouse-pos-x), calc(var(--mouse-pos-y) - 50vh + 34px), 0px) !important}main.app-content[style*=mouse-pos-x] .v-popper__popper .v-popper__arrow-container{display:none}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FileEntry/FileEntryActions.vue\"],\"names\":[],\"mappings\":\"AAGA,uDACC,6EAAA,CAGA,kFAEC,iGAAA,CAGD,kFACC,YAAA\",\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/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, `[data-v-893a87d0] .button-vue--icon-and-text .button-vue__text{color:var(--color-primary-element)}[data-v-893a87d0] .button-vue--icon-and-text .button-vue__icon{color:var(--color-primary-element)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FileEntry/FileEntryActions.vue\"],\"names\":[],\"mappings\":\"AAEC,+DACC,kCAAA,CAED,+DACC,kCAAA\",\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/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, `button.files-list__row-name-link[data-v-37803833]{background-color:unset;border:none;font-weight:normal}button.files-list__row-name-link[data-v-37803833]:active{background-color:unset !important}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FileEntry/FileEntryName.vue\"],\"names\":[],\"mappings\":\"AACA,kDACC,sBAAA,CACA,WAAA,CACA,kBAAA,CAEA,yDAEC,iCAAA\",\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/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, `.file-list-filters[data-v-bd0c8440]{display:flex;flex-direction:column;gap:var(--default-grid-baseline);height:100%;width:100%}.file-list-filters__filter[data-v-bd0c8440]{display:flex;align-items:start;justify-content:start;gap:calc(var(--default-grid-baseline, 4px)*2)}.file-list-filters__filter>*[data-v-bd0c8440]{flex:0 1 fit-content}.file-list-filters__active[data-v-bd0c8440]{display:flex;flex-direction:row;gap:calc(var(--default-grid-baseline, 4px)*2)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FileListFilters.vue\"],\"names\":[],\"mappings\":\"AACA,oCACC,YAAA,CACA,qBAAA,CACA,gCAAA,CACA,WAAA,CACA,UAAA,CAEA,4CACC,YAAA,CACA,iBAAA,CACA,qBAAA,CACA,6CAAA,CAEA,8CACC,oBAAA,CAIF,4CACC,YAAA,CACA,kBAAA,CACA,6CAAA\",\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/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, `tr[data-v-4c69fc7c]{margin-bottom:max(25vh,var(--body-container-margin));border-top:1px solid var(--color-border);background-color:rgba(0,0,0,0) !important;border-bottom:none !important}tr td[data-v-4c69fc7c]{user-select:none;color:var(--color-text-maxcontrast) !important}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FilesListTableFooter.vue\"],\"names\":[],\"mappings\":\"AAEA,oBACC,oDAAA,CACA,wCAAA,CAEA,yCAAA,CACA,6BAAA,CAEA,uBACC,gBAAA,CAEA,8CAAA\",\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/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, `.files-list__column[data-v-4daa9603]{user-select:none;color:var(--color-text-maxcontrast) !important}.files-list__column--sortable[data-v-4daa9603]{cursor:pointer}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FilesListTableHeader.vue\"],\"names\":[],\"mappings\":\"AACA,qCACC,gBAAA,CAEA,8CAAA,CAEA,+CACC,cAAA\",\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/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, `.files-list__row-actions-batch[data-v-30ce9832]{flex:1 1 100% !important;max-width:100%}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FilesListTableHeaderActions.vue\"],\"names\":[],\"mappings\":\"AACA,gDACC,wBAAA,CACA,cAAA\",\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/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, `.files-list__column-sort-button[data-v-6d7680f0]{margin:0 calc(var(--button-padding, var(--cell-margin))*-1);min-width:calc(100% - 3*var(--cell-margin)) !important}.files-list__column-sort-button-text[data-v-6d7680f0]{color:var(--color-text-maxcontrast);font-weight:normal}.files-list__column-sort-button-icon[data-v-6d7680f0]{color:var(--color-text-maxcontrast);opacity:0;transition:opacity var(--animation-quick);inset-inline-start:-10px}.files-list__column-sort-button--size .files-list__column-sort-button-icon[data-v-6d7680f0]{inset-inline-start:10px}.files-list__column-sort-button--active .files-list__column-sort-button-icon[data-v-6d7680f0],.files-list__column-sort-button:hover .files-list__column-sort-button-icon[data-v-6d7680f0],.files-list__column-sort-button:focus .files-list__column-sort-button-icon[data-v-6d7680f0],.files-list__column-sort-button:active .files-list__column-sort-button-icon[data-v-6d7680f0]{opacity:1}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FilesListTableHeaderButton.vue\"],\"names\":[],\"mappings\":\"AACA,iDAEC,2DAAA,CACA,sDAAA,CAEA,sDACC,mCAAA,CACA,kBAAA,CAGD,sDACC,mCAAA,CACA,SAAA,CACA,yCAAA,CACA,wBAAA,CAGD,4FACC,uBAAA,CAGD,mXAIC,SAAA\",\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/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, `.files-list[data-v-39cea143]{--row-height: 55px;--cell-margin: 14px;--checkbox-padding: calc((var(--row-height) - var(--checkbox-size)) / 2);--checkbox-size: 24px;--clickable-area: var(--default-clickable-area);--icon-preview-size: 32px;--fixed-block-start-position: var(--default-clickable-area);overflow:auto;height:100%;will-change:scroll-position}.files-list[data-v-39cea143]:has(.file-list-filters__active){--fixed-block-start-position: calc(var(--default-clickable-area) + var(--default-grid-baseline) + var(--clickable-area-small))}.files-list[data-v-39cea143] tbody{will-change:padding;contain:layout paint style;display:flex;flex-direction:column;width:100%;position:relative}.files-list[data-v-39cea143] tbody tr{contain:strict}.files-list[data-v-39cea143] tbody tr:hover,.files-list[data-v-39cea143] tbody tr:focus{background-color:var(--color-background-dark)}.files-list[data-v-39cea143] .files-list__before{display:flex;flex-direction:column}.files-list[data-v-39cea143] .files-list__selected{padding-inline-end:12px;white-space:nowrap}.files-list[data-v-39cea143] .files-list__table{display:block}.files-list[data-v-39cea143] .files-list__table.files-list__table--with-thead-overlay{margin-block-start:calc(-1*var(--row-height))}.files-list[data-v-39cea143] .files-list__filters{position:sticky;top:0;background-color:var(--color-main-background);z-index:10;padding-inline:var(--row-height) var(--default-grid-baseline, 4px);height:var(--fixed-block-start-position);width:100%}.files-list[data-v-39cea143] .files-list__thead-overlay{position:sticky;top:var(--fixed-block-start-position);margin-inline-start:var(--row-height);z-index:20;display:flex;align-items:center;background-color:var(--color-main-background);border-block-end:1px solid var(--color-border);height:var(--row-height)}.files-list[data-v-39cea143] .files-list__thead,.files-list[data-v-39cea143] .files-list__tfoot{display:flex;flex-direction:column;width:100%;background-color:var(--color-main-background)}.files-list[data-v-39cea143] .files-list__thead{position:sticky;z-index:10;top:var(--fixed-block-start-position)}.files-list[data-v-39cea143] tr{position:relative;display:flex;align-items:center;width:100%;user-select:none;border-block-end:1px solid var(--color-border);box-sizing:border-box;user-select:none;height:var(--row-height)}.files-list[data-v-39cea143] td,.files-list[data-v-39cea143] th{display:flex;align-items:center;flex:0 0 auto;justify-content:start;width:var(--row-height);height:var(--row-height);margin:0;padding:0;color:var(--color-text-maxcontrast);border:none}.files-list[data-v-39cea143] td span,.files-list[data-v-39cea143] th span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.files-list[data-v-39cea143] .files-list__row--failed{position:absolute;display:block;top:0;inset-inline:0;bottom:0;opacity:.1;z-index:-1;background:var(--color-error)}.files-list[data-v-39cea143] .files-list__row-checkbox{justify-content:center}.files-list[data-v-39cea143] .files-list__row-checkbox .checkbox-radio-switch{display:flex;justify-content:center;--icon-size: var(--checkbox-size)}.files-list[data-v-39cea143] .files-list__row-checkbox .checkbox-radio-switch label.checkbox-radio-switch__label{width:var(--clickable-area);height:var(--clickable-area);margin:0;padding:calc((var(--clickable-area) - var(--checkbox-size))/2)}.files-list[data-v-39cea143] .files-list__row-checkbox .checkbox-radio-switch .checkbox-radio-switch__icon{margin:0 !important}.files-list[data-v-39cea143] .files-list__row:hover,.files-list[data-v-39cea143] .files-list__row:focus,.files-list[data-v-39cea143] .files-list__row:active,.files-list[data-v-39cea143] .files-list__row--active,.files-list[data-v-39cea143] .files-list__row--dragover{background-color:var(--color-background-hover);--color-text-maxcontrast: var(--color-main-text)}.files-list[data-v-39cea143] .files-list__row:hover>*,.files-list[data-v-39cea143] .files-list__row:focus>*,.files-list[data-v-39cea143] .files-list__row:active>*,.files-list[data-v-39cea143] .files-list__row--active>*,.files-list[data-v-39cea143] .files-list__row--dragover>*{--color-border: var(--color-border-dark)}.files-list[data-v-39cea143] .files-list__row:hover .favorite-marker-icon svg path,.files-list[data-v-39cea143] .files-list__row:focus .favorite-marker-icon svg path,.files-list[data-v-39cea143] .files-list__row:active .favorite-marker-icon svg path,.files-list[data-v-39cea143] .files-list__row--active .favorite-marker-icon svg path,.files-list[data-v-39cea143] .files-list__row--dragover .favorite-marker-icon svg path{stroke:var(--color-background-hover)}.files-list[data-v-39cea143] .files-list__row--dragover *{pointer-events:none}.files-list[data-v-39cea143] .files-list__row-icon{position:relative;display:flex;overflow:visible;align-items:center;flex:0 0 var(--icon-preview-size);justify-content:center;width:var(--icon-preview-size);height:100%;margin-inline-end:var(--checkbox-padding);color:var(--color-primary-element)}.files-list[data-v-39cea143] .files-list__row-icon *{cursor:pointer}.files-list[data-v-39cea143] .files-list__row-icon>span{justify-content:flex-start}.files-list[data-v-39cea143] .files-list__row-icon>span:not(.files-list__row-icon-favorite) svg{width:var(--icon-preview-size);height:var(--icon-preview-size)}.files-list[data-v-39cea143] .files-list__row-icon>span.folder-icon,.files-list[data-v-39cea143] .files-list__row-icon>span.folder-open-icon{margin:-3px}.files-list[data-v-39cea143] .files-list__row-icon>span.folder-icon svg,.files-list[data-v-39cea143] .files-list__row-icon>span.folder-open-icon svg{width:calc(var(--icon-preview-size) + 6px);height:calc(var(--icon-preview-size) + 6px)}.files-list[data-v-39cea143] .files-list__row-icon-preview-container{position:relative;overflow:hidden;width:var(--icon-preview-size);height:var(--icon-preview-size);border-radius:var(--border-radius)}.files-list[data-v-39cea143] .files-list__row-icon-blurhash{position:absolute;inset-block-start:0;inset-inline-start:0;height:100%;width:100%;object-fit:cover}.files-list[data-v-39cea143] .files-list__row-icon-preview{object-fit:contain;object-position:center;height:100%;width:100%}.files-list[data-v-39cea143] .files-list__row-icon-preview:not(.files-list__row-icon-preview--loaded){background:var(--color-loading-dark)}.files-list[data-v-39cea143] .files-list__row-icon-favorite{position:absolute;top:0px;inset-inline-end:-10px}.files-list[data-v-39cea143] .files-list__row-icon-overlay{position:absolute;max-height:calc(var(--icon-preview-size)*.5);max-width:calc(var(--icon-preview-size)*.5);color:var(--color-primary-element-text);margin-block-start:2px}.files-list[data-v-39cea143] .files-list__row-icon-overlay--file{color:var(--color-main-text);background:var(--color-main-background);border-radius:100%}.files-list[data-v-39cea143] .files-list__row-name{overflow:hidden;flex:1 1 auto}.files-list[data-v-39cea143] .files-list__row-name button.files-list__row-name-link{display:contents;align-items:center;text-align:start;width:100%;height:100%;min-width:0;margin:0;padding:0}.files-list[data-v-39cea143] .files-list__row-name button.files-list__row-name-link:focus-visible{outline:none !important}.files-list[data-v-39cea143] .files-list__row-name button.files-list__row-name-link:focus .files-list__row-name-text{outline:var(--border-width-input-focused) solid var(--color-main-text) !important;border-radius:var(--border-radius-element)}.files-list[data-v-39cea143] .files-list__row-name button.files-list__row-name-link:focus:not(:focus-visible) .files-list__row-name-text{outline:none !important}.files-list[data-v-39cea143] .files-list__row-name .files-list__row-name-text{color:var(--color-main-text);padding:var(--default-grid-baseline) calc(2*var(--default-grid-baseline));padding-inline-start:-10px;display:inline-flex}.files-list[data-v-39cea143] .files-list__row-name .files-list__row-name-ext{color:var(--color-text-maxcontrast);overflow:visible}.files-list[data-v-39cea143] .files-list__row-rename{width:100%;max-width:600px}.files-list[data-v-39cea143] .files-list__row-rename input{width:100%;margin-inline-start:-8px;padding:2px 6px;border-width:2px}.files-list[data-v-39cea143] .files-list__row-rename input:invalid{border-color:var(--color-error);color:red}.files-list[data-v-39cea143] .files-list__row-actions{width:auto}.files-list[data-v-39cea143] .files-list__row-actions~td,.files-list[data-v-39cea143] .files-list__row-actions~th{margin:0 var(--cell-margin)}.files-list[data-v-39cea143] .files-list__row-actions button .button-vue__text{font-weight:normal}.files-list[data-v-39cea143] .files-list__row-action--inline{margin-inline-end:7px}.files-list[data-v-39cea143] .files-list__row-mtime,.files-list[data-v-39cea143] .files-list__row-size{color:var(--color-text-maxcontrast)}.files-list[data-v-39cea143] .files-list__row-size{width:calc(var(--row-height)*1.5);justify-content:flex-end}.files-list[data-v-39cea143] .files-list__row-mtime{width:calc(var(--row-height)*2)}.files-list[data-v-39cea143] .files-list__row-column-custom{width:calc(var(--row-height)*2)}@media screen and (max-width: 512px){.files-list[data-v-39cea143] .files-list__filters{padding-inline:var(--default-grid-baseline, 4px)}}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FilesListVirtual.vue\"],\"names\":[],\"mappings\":\"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\",\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/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, `tbody.files-list__tbody.files-list__tbody--grid{--half-clickable-area: calc(var(--clickable-area) / 2);--item-padding: 16px;--icon-preview-size: 166px;--name-height: 32px;--mtime-height: 16px;--row-width: calc(var(--icon-preview-size) + var(--item-padding) * 2);--row-height: calc(var(--icon-preview-size) + var(--name-height) + var(--mtime-height) + var(--item-padding) * 2);--checkbox-padding: 0px;display:grid;grid-template-columns:repeat(auto-fill, var(--row-width));align-content:center;align-items:center;justify-content:space-around;justify-items:center}tbody.files-list__tbody.files-list__tbody--grid tr{display:flex;flex-direction:column;width:var(--row-width);height:var(--row-height);border:none;border-radius:var(--border-radius-large);padding:var(--item-padding)}tbody.files-list__tbody.files-list__tbody--grid .files-list__row-checkbox{position:absolute;z-index:9;top:calc(var(--item-padding)/2);inset-inline-start:calc(var(--item-padding)/2);overflow:hidden;--checkbox-container-size: 44px;width:var(--checkbox-container-size);height:var(--checkbox-container-size)}tbody.files-list__tbody.files-list__tbody--grid .files-list__row-checkbox .checkbox-radio-switch__content::after{content:\"\";width:16px;height:16px;position:absolute;inset-inline-start:50%;margin-inline-start:-8px;z-index:-1;background:var(--color-main-background)}tbody.files-list__tbody.files-list__tbody--grid .files-list__row-icon-favorite{position:absolute;top:0;inset-inline-end:0;display:flex;align-items:center;justify-content:center;width:var(--clickable-area);height:var(--clickable-area)}tbody.files-list__tbody.files-list__tbody--grid .files-list__row-name{display:flex;flex-direction:column;width:var(--icon-preview-size);height:calc(var(--icon-preview-size) + var(--name-height));overflow:visible}tbody.files-list__tbody.files-list__tbody--grid .files-list__row-name span.files-list__row-icon{width:var(--icon-preview-size);height:var(--icon-preview-size)}tbody.files-list__tbody.files-list__tbody--grid .files-list__row-name .files-list__row-name-text{margin:0;margin-inline-start:-4px;padding:0px 4px}tbody.files-list__tbody.files-list__tbody--grid .files-list__row-mtime{width:var(--icon-preview-size);height:var(--mtime-height);font-size:calc(var(--default-font-size) - 4px)}tbody.files-list__tbody.files-list__tbody--grid .files-list__row-actions{position:absolute;inset-inline-end:calc(var(--half-clickable-area)/2);inset-block-end:calc(var(--mtime-height)/2);width:var(--clickable-area);height:var(--clickable-area)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FilesListVirtual.vue\"],\"names\":[],\"mappings\":\"AAEA,gDACC,sDAAA,CACA,oBAAA,CACA,0BAAA,CACA,mBAAA,CACA,oBAAA,CACA,qEAAA,CACA,iHAAA,CACA,uBAAA,CAEA,YAAA,CACA,yDAAA,CAEA,oBAAA,CACA,kBAAA,CACA,4BAAA,CACA,oBAAA,CAEA,mDACC,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,wBAAA,CACA,WAAA,CACA,wCAAA,CACA,2BAAA,CAID,0EACC,iBAAA,CACA,SAAA,CACA,+BAAA,CACA,8CAAA,CACA,eAAA,CACA,+BAAA,CACA,oCAAA,CACA,qCAAA,CAGA,iHACC,UAAA,CACA,UAAA,CACA,WAAA,CACA,iBAAA,CACA,sBAAA,CACA,wBAAA,CACA,UAAA,CACA,uCAAA,CAKF,+EACC,iBAAA,CACA,KAAA,CACA,kBAAA,CACA,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,2BAAA,CACA,4BAAA,CAGD,sEACC,YAAA,CACA,qBAAA,CACA,8BAAA,CACA,0DAAA,CAEA,gBAAA,CAEA,gGACC,8BAAA,CACA,+BAAA,CAGD,iGACC,QAAA,CAEA,wBAAA,CACA,eAAA,CAIF,uEACC,8BAAA,CACA,0BAAA,CACA,8CAAA,CAGD,yEACC,iBAAA,CACA,mDAAA,CACA,2CAAA,CACA,2BAAA,CACA,4BAAA\",\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/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, `.app-navigation-entry__settings-quota[data-v-6ed9379e]{--app-navigation-quota-margin: calc((var(--default-clickable-area) - 24px) / 2)}.app-navigation-entry__settings-quota--not-unlimited[data-v-6ed9379e] .app-navigation-entry__name{line-height:1;margin-top:var(--app-navigation-quota-margin)}.app-navigation-entry__settings-quota progress[data-v-6ed9379e]{position:absolute;bottom:var(--app-navigation-quota-margin);margin-inline-start:var(--default-clickable-area);width:calc(100% - 1.5*var(--default-clickable-area))}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/NavigationQuota.vue\"],\"names\":[],\"mappings\":\"AAEA,uDAEC,+EAAA,CAEA,kGACC,aAAA,CACA,6CAAA,CAGD,gEACC,iBAAA,CACA,yCAAA,CACA,iDAAA,CACA,oDAAA\",\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/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, `.toast-loading-icon{margin-inline-start:-4px;min-width:26px}.app-content[data-v-7deccf49]{display:flex;overflow:hidden;flex-direction:column;max-height:100%;position:relative !important}.files-list__header[data-v-7deccf49]{display:flex;align-items:center;flex:0 0;max-width:100%;margin-block:var(--app-navigation-padding, 4px);margin-inline:calc(var(--default-clickable-area, 44px) + 2*var(--app-navigation-padding, 4px)) var(--app-navigation-padding, 4px)}.files-list__header--public[data-v-7deccf49]{margin-inline:0 var(--app-navigation-padding, 4px)}.files-list__header>*[data-v-7deccf49]{flex:0 0}.files-list__header-share-button[data-v-7deccf49]{color:var(--color-text-maxcontrast) !important}.files-list__header-share-button--shared[data-v-7deccf49]{color:var(--color-main-text) !important}.files-list__empty-view-wrapper[data-v-7deccf49]{display:flex;height:100%}.files-list__refresh-icon[data-v-7deccf49]{flex:0 0 var(--default-clickable-area);width:var(--default-clickable-area);height:var(--default-clickable-area)}.files-list__loading-icon[data-v-7deccf49]{margin:auto}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/views/FilesList.vue\"],\"names\":[],\"mappings\":\"AACA,oBAEC,wBAAA,CAEA,cAAA,CAGD,8BAEC,YAAA,CACA,eAAA,CACA,qBAAA,CACA,eAAA,CACA,4BAAA,CAIA,qCACC,YAAA,CACA,kBAAA,CAEA,QAAA,CACA,cAAA,CAEA,+CAAA,CACA,iIAAA,CAEA,6CAEC,kDAAA,CAGD,uCAGC,QAAA,CAGD,kDACC,8CAAA,CAEA,0DACC,uCAAA,CAKH,iDACC,YAAA,CACA,WAAA,CAGD,2CACC,sCAAA,CACA,mCAAA,CACA,oCAAA,CAGD,2CACC,WAAA\",\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/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, `.app-navigation[data-v-11366bf7] .app-navigation-entry-icon{background-repeat:no-repeat;background-position:center}.app-navigation[data-v-11366bf7] .app-navigation-entry.active .button-vue.icon-collapse:not(:hover){color:var(--color-primary-element-text)}.app-navigation>ul.app-navigation__list[data-v-11366bf7]{padding-bottom:var(--default-grid-baseline, 4px)}.app-navigation-entry__settings[data-v-11366bf7]{height:auto !important;overflow:hidden !important;padding-top:0 !important;flex:0 0 auto}.files-navigation__list[data-v-11366bf7]{height:100%}.files-navigation[data-v-11366bf7] .app-navigation__content > ul.app-navigation__list{will-change:scroll-position}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/views/Navigation.vue\"],\"names\":[],\"mappings\":\"AAEA,4DACC,2BAAA,CACA,0BAAA,CAGD,oGACC,uCAAA,CAGD,yDAEC,gDAAA,CAGD,iDACC,sBAAA,CACA,0BAAA,CACA,wBAAA,CAEA,aAAA,CAIA,yCACC,WAAA,CAGD,sFACC,2BAAA\",\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/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, `.setting-link[data-v-23881b2c]:hover{text-decoration:underline}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/views/Settings.vue\"],\"names\":[],\"mappings\":\"AACA,qCACC,yBAAA\",\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","import { getLoggerBuilder } from \"@nextcloud/logger\";\nimport { getCurrentUser, onRequestTokenUpdate, getRequestToken } from \"@nextcloud/auth\";\nimport { join, basename, extname, dirname } from \"path\";\nimport { encodePath } from \"@nextcloud/paths\";\nimport { generateRemoteUrl } from \"@nextcloud/router\";\nimport { CancelablePromise } from \"cancelable-promise\";\nimport { createClient, getPatcher } from \"webdav\";\nimport { isPublicShare, getSharingToken } from \"@nextcloud/sharing/public\";\nimport { getCapabilities } from \"@nextcloud/capabilities\";\nimport { getCanonicalLocale, getLanguage } from \"@nextcloud/l10n\";\nimport { TypedEventTarget } from \"typescript-event-target\";\nconst logger = getLoggerBuilder().setApp(\"@nextcloud/files\").detectUser().build();\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};\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};\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};\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 || {});\nconst defaultDavProperties = [\n \"d:getcontentlength\",\n \"d:getcontenttype\",\n \"d:getetag\",\n \"d:getlastmodified\",\n \"d:creationdate\",\n \"d:displayname\",\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};\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};\nvar FileType = /* @__PURE__ */ ((FileType2) => {\n FileType2[\"Folder\"] = \"folder\";\n FileType2[\"File\"] = \"file\";\n return FileType2;\n})(FileType || {});\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.displayname && typeof data.displayname !== \"string\") {\n throw new Error(\"Invalid displayname type\");\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};\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 = {\n // TODO: Remove with next major release, this is just for compatibility\n displayname: data.attributes?.displayname,\n ...data,\n attributes: {}\n };\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 * The nodes displayname\n * By default the display name and the `basename` are identical,\n * but it is possible to have a different name. This happens\n * on the files app for example for shared folders.\n */\n get displayname() {\n return this._data.displayname || this.basename;\n }\n /**\n * Set the displayname\n */\n set displayname(displayname) {\n this._data.displayname = displayname;\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 const oldBasename = this.basename;\n this._data.source = destination;\n if (this.displayname === oldBasename && this.basename !== oldBasename) {\n this.displayname = this.basename;\n }\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}\nclass File extends Node {\n get type() {\n return FileType.File;\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}\nfunction davGetRootPath() {\n if (isPublicShare()) {\n return `/files/${getSharingToken()}`;\n }\n return `/files/${getCurrentUser()?.uid}`;\n}\nconst davRootPath = davGetRootPath();\nfunction davGetRemoteURL() {\n const url = generateRemoteUrl(\"dav\");\n if (isPublicShare()) {\n return url.replace(\"remote.php\", \"public.php\");\n }\n return url;\n}\nconst davRemoteURL = davGetRemoteURL();\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 if (isPublicShare()) {\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 id = props.fileid || 0;\n const nodeData = {\n id,\n source: `${remoteURL}${node.filename}`,\n mtime: new Date(Date.parse(node.lastmod)),\n mime: node.mime || \"application/octet-stream\",\n // Manually cast to work around for https://github.com/perry-mitchell/webdav-client/pull/380\n displayname: props.displayname !== void 0 ? String(props.displayname) : void 0,\n size: props?.size || Number.parseInt(props.getcontentlength || \"0\"),\n // The fileid is set to -1 for failed requests\n status: id < 0 ? NodeStatus.FAILED : void 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};\nvar InvalidFilenameErrorReason = /* @__PURE__ */ ((InvalidFilenameErrorReason2) => {\n InvalidFilenameErrorReason2[\"ReservedName\"] = \"reserved name\";\n InvalidFilenameErrorReason2[\"Character\"] = \"character\";\n InvalidFilenameErrorReason2[\"Extension\"] = \"extension\";\n return InvalidFilenameErrorReason2;\n})(InvalidFilenameErrorReason || {});\nclass InvalidFilenameError extends Error {\n constructor(options) {\n super(`Invalid ${options.reason} '${options.segment}' in filename '${options.filename}'`, { cause: options });\n }\n /**\n * The filename that was validated\n */\n get filename() {\n return this.cause.filename;\n }\n /**\n * Reason why the validation failed\n */\n get reason() {\n return this.cause.reason;\n }\n /**\n * Part of the filename that caused this error\n */\n get segment() {\n return this.cause.segment;\n }\n}\nfunction validateFilename(filename) {\n const capabilities = getCapabilities().files;\n const forbiddenCharacters = capabilities.forbidden_filename_characters ?? window._oc_config?.forbidden_filenames_characters ?? [\"/\", \"\\\\\"];\n for (const character of forbiddenCharacters) {\n if (filename.includes(character)) {\n throw new InvalidFilenameError({ segment: character, reason: \"character\", filename });\n }\n }\n filename = filename.toLocaleLowerCase();\n const forbiddenFilenames = capabilities.forbidden_filenames ?? [\".htaccess\"];\n if (forbiddenFilenames.includes(filename)) {\n throw new InvalidFilenameError({\n filename,\n segment: filename,\n reason: \"reserved name\"\n /* ReservedName */\n });\n }\n const endOfBasename = filename.indexOf(\".\", 1);\n const basename2 = filename.substring(0, endOfBasename === -1 ? void 0 : endOfBasename);\n const forbiddenFilenameBasenames = capabilities.forbidden_filename_basenames ?? [];\n if (forbiddenFilenameBasenames.includes(basename2)) {\n throw new InvalidFilenameError({\n filename,\n segment: basename2,\n reason: \"reserved name\"\n /* ReservedName */\n });\n }\n const forbiddenFilenameExtensions = capabilities.forbidden_filename_extensions ?? [\".part\", \".filepart\"];\n for (const extension of forbiddenFilenameExtensions) {\n if (filename.length > extension.length && filename.endsWith(extension)) {\n throw new InvalidFilenameError({ segment: extension, reason: \"extension\", filename });\n }\n }\n}\nfunction isFilenameValid(filename) {\n try {\n validateFilename(filename);\n return true;\n } catch (error) {\n if (error instanceof InvalidFilenameError) {\n return false;\n }\n throw error;\n }\n}\nfunction 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}\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, identifiers2, orders) {\n identifiers2 = identifiers2 ?? [(value) => value];\n orders = orders ?? [];\n const sorting = identifiers2.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 identifiers2.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 basename2 = (name) => name.lastIndexOf(\".\") > 0 ? name.slice(0, name.lastIndexOf(\".\")) : name;\n const identifiers2 = [\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 display name too)\n ...sortingOptions.sortingMode !== \"basename\" ? [(v) => v[sortingOptions.sortingMode]] : [],\n // 4: Use display name if available, fallback to name\n (v) => basename2(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, identifiers2, orders);\n}\nclass Navigation extends TypedEventTarget {\n _views = [];\n _currentView = null;\n /**\n * Register a new view on the navigation\n * @param view The view to register\n * @throws `Error` is thrown if a view with the same id is already registered\n */\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 this.dispatchTypedEvent(\"update\", new CustomEvent(\"update\"));\n }\n /**\n * Remove a registered view\n * @param id The id of the view to remove\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 this.dispatchTypedEvent(\"update\", new CustomEvent(\"update\"));\n }\n }\n /**\n * Set the currently active view\n * @fires UpdateActiveViewEvent\n * @param view New active view\n */\n setActive(view) {\n this._currentView = view;\n const event = new CustomEvent(\"updateActive\", { detail: view });\n this.dispatchTypedEvent(\"updateActive\", event);\n }\n /**\n * The currently active files view\n */\n get active() {\n return this._currentView;\n }\n /**\n * All registered views\n */\n get views() {\n return this._views;\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};\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};\nfunction getDefaultExportFromCjs(x) {\n return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, \"default\") ? x[\"default\"] : x;\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) 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 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) 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((t2) => t2.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 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 re2 = /\\d/;\n if (xmlData[i] === \"x\") {\n i++;\n re2 = /[\\da-fA-F]/;\n }\n for (; i < xmlData.length; i++) {\n if (xmlData[i] === \";\")\n return i;\n if (!xmlData[i].match(re2))\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__\") key = \"#__proto__\";\n this.child.push({ [key]: val2 });\n }\n addChild(node) {\n if (node.tagname === \"__proto__\") 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)) i += 8;\n else if (hasBody && isAttlist(xmlData, i)) i += 8;\n else if (hasBody && isNotation(xmlData, i)) i += 9;\n else if (isComment) comment = true;\n else 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) 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] === \"-\") 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\") 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\") 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\") 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\") 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\") return str;\n let trimmedStr = str.trim();\n if (options.skipLike !== void 0 && options.skipLike.test(trimmedStr)) 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] !== \".\") return str;\n else if (!options.leadingZeros && leadingZeros.length > 0 && !sign && trimmedStr[1] !== \".\") return str;\n else {\n const num = Number(trimmedStr);\n const numStr = \"\" + num;\n if (numStr.search(/[eE]/) !== -1) {\n if (options.eNotation) return num;\n else return str;\n } else if (eNotation) {\n if (options.eNotation) return num;\n else return str;\n } else if (trimmedStr.indexOf(\".\") !== -1) {\n if (numStr === \"0\" && numTrimmedByZeros === \"\") return num;\n else if (numStr === numTrimmedByZeros) return num;\n else if (sign && numStr === \"-\" + numTrimmedByZeros) return num;\n else return str;\n }\n if (leadingZeros) {\n if (numTrimmedByZeros === numStr) return num;\n else if (sign + numTrimmedByZeros === numStr) return num;\n else return str;\n }\n if (trimmedStr === numStr) return num;\n else if (trimmedStr === sign + numStr) 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 === \".\") numStr = \"0\";\n else if (numStr[0] === \".\") numStr = \"0\" + numStr;\n else if (numStr[numStr.length - 1] === \".\") 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) 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__\") 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) 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 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) 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) 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 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) 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) 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) 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) 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\") return true;\n else if (newval === \"false\") return false;\n else 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) newJpath = property;\n else newJpath = jPath + \".\" + property;\n if (property === options.textNodeName) {\n if (text === void 0) text = tagObj[property];\n else 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) val2[options.textNodeName] = \"\";\n else 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) compressedObj[options.textNodeName] = text;\n } else if (text !== void 0) 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 !== \":@\") 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 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) 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) return orderedResult;\n else 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 '
'\");\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) continue;\n let newJPath = \"\";\n if (jPath.length === 0) newJPath = tagName;\n else 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) xmlStr += tagStart + \">\";\n else 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)) continue;\n if (key !== \":@\") 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)) 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) 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: \"&\" },\n //it must be on top\n { regex: new RegExp(\">\", \"g\"), val: \">\" },\n { regex: new RegExp(\"<\", \"g\"), val: \"<\" },\n { regex: new RegExp(\"'\", \"g\"), val: \"'\" },\n { regex: new RegExp('\"', \"g\"), val: \""\" }\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)) 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 let listTagAttr = \"\";\n for (let j = 0; j < arrLen; j++) {\n const item = jObj[key][j];\n if (typeof item === \"undefined\") ;\n else if (item === null) {\n if (key[0] === \"?\") val2 += this.indentate(level) + \"<\" + key + \"?\" + this.tagEndChar;\n else val2 += this.indentate(level) + \"<\" + key + \"/\" + this.tagEndChar;\n } else if (typeof item === \"object\") {\n if (this.options.oneListGroup) {\n const result = this.j2x(item, level + 1);\n listTagVal += result.val;\n if (this.options.attributesGroupName && item.hasOwnProperty(this.options.attributesGroupName)) {\n listTagAttr += result.attrStr;\n }\n } else {\n listTagVal += this.processTextOrObjNode(item, key, level);\n }\n } else {\n if (this.options.oneListGroup) {\n let textValue = this.options.tagValueProcessor(key, item);\n textValue = this.replaceEntitiesValue(textValue);\n listTagVal += textValue;\n } else {\n listTagVal += this.buildTextValNode(item, key, \"\", level);\n }\n }\n }\n if (this.options.oneListGroup) {\n listTagVal = this.buildObjectNode(listTagVal, key, listTagAttr, 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 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] === \"?\") 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) 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}\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 get loadChildViews() {\n return this._view.loadChildViews;\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 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 if (view.loadChildViews && typeof view.loadChildViews !== \"function\") {\n throw new Error(\"View loadChildViews must be a function\");\n }\n return true;\n};\nconst debug$1 = typeof process === \"object\" && process.env && process.env.NODE_DEBUG && /\\bsemver\\b/i.test(process.env.NODE_DEBUG) ? (...args) => console.error(\"SEMVER\", ...args) : () => {\n};\nvar debug_1 = debug$1;\nconst SEMVER_SPEC_VERSION = \"2.0.0\";\nconst MAX_LENGTH$1 = 256;\nconst MAX_SAFE_INTEGER$1 = Number.MAX_SAFE_INTEGER || /* istanbul ignore next */\n9007199254740991;\nconst MAX_SAFE_COMPONENT_LENGTH = 16;\nconst MAX_SAFE_BUILD_LENGTH = MAX_LENGTH$1 - 6;\nconst RELEASE_TYPES = [\n \"major\",\n \"premajor\",\n \"minor\",\n \"preminor\",\n \"patch\",\n \"prepatch\",\n \"prerelease\"\n];\nvar constants = {\n MAX_LENGTH: MAX_LENGTH$1,\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_SAFE_INTEGER: MAX_SAFE_INTEGER$1,\n RELEASE_TYPES,\n SEMVER_SPEC_VERSION,\n FLAG_INCLUDE_PRERELEASE: 1,\n FLAG_LOOSE: 2\n};\nvar re$1 = { exports: {} };\n(function(module, exports) {\n const {\n MAX_SAFE_COMPONENT_LENGTH: MAX_SAFE_COMPONENT_LENGTH2,\n MAX_SAFE_BUILD_LENGTH: MAX_SAFE_BUILD_LENGTH2,\n MAX_LENGTH: MAX_LENGTH2\n } = constants;\n const debug2 = debug_1;\n exports = module.exports = {};\n const re2 = exports.re = [];\n const safeRe = exports.safeRe = [];\n const src = exports.src = [];\n const t2 = exports.t = {};\n let R = 0;\n const LETTERDASHNUMBER = \"[a-zA-Z0-9-]\";\n const safeRegexReplacements = [\n [\"\\\\s\", 1],\n [\"\\\\d\", MAX_LENGTH2],\n [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH2]\n ];\n const makeSafeRegex = (value) => {\n for (const [token, max] of safeRegexReplacements) {\n value = value.split(`${token}*`).join(`${token}{0,${max}}`).split(`${token}+`).join(`${token}{1,${max}}`);\n }\n return value;\n };\n const createToken = (name, value, isGlobal) => {\n const safe = makeSafeRegex(value);\n const index = R++;\n debug2(name, index, value);\n t2[name] = index;\n src[index] = value;\n re2[index] = new RegExp(value, isGlobal ? \"g\" : void 0);\n safeRe[index] = new RegExp(safe, isGlobal ? \"g\" : void 0);\n };\n createToken(\"NUMERICIDENTIFIER\", \"0|[1-9]\\\\d*\");\n createToken(\"NUMERICIDENTIFIERLOOSE\", \"\\\\d+\");\n createToken(\"NONNUMERICIDENTIFIER\", `\\\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`);\n createToken(\"MAINVERSION\", `(${src[t2.NUMERICIDENTIFIER]})\\\\.(${src[t2.NUMERICIDENTIFIER]})\\\\.(${src[t2.NUMERICIDENTIFIER]})`);\n createToken(\"MAINVERSIONLOOSE\", `(${src[t2.NUMERICIDENTIFIERLOOSE]})\\\\.(${src[t2.NUMERICIDENTIFIERLOOSE]})\\\\.(${src[t2.NUMERICIDENTIFIERLOOSE]})`);\n createToken(\"PRERELEASEIDENTIFIER\", `(?:${src[t2.NUMERICIDENTIFIER]}|${src[t2.NONNUMERICIDENTIFIER]})`);\n createToken(\"PRERELEASEIDENTIFIERLOOSE\", `(?:${src[t2.NUMERICIDENTIFIERLOOSE]}|${src[t2.NONNUMERICIDENTIFIER]})`);\n createToken(\"PRERELEASE\", `(?:-(${src[t2.PRERELEASEIDENTIFIER]}(?:\\\\.${src[t2.PRERELEASEIDENTIFIER]})*))`);\n createToken(\"PRERELEASELOOSE\", `(?:-?(${src[t2.PRERELEASEIDENTIFIERLOOSE]}(?:\\\\.${src[t2.PRERELEASEIDENTIFIERLOOSE]})*))`);\n createToken(\"BUILDIDENTIFIER\", `${LETTERDASHNUMBER}+`);\n createToken(\"BUILD\", `(?:\\\\+(${src[t2.BUILDIDENTIFIER]}(?:\\\\.${src[t2.BUILDIDENTIFIER]})*))`);\n createToken(\"FULLPLAIN\", `v?${src[t2.MAINVERSION]}${src[t2.PRERELEASE]}?${src[t2.BUILD]}?`);\n createToken(\"FULL\", `^${src[t2.FULLPLAIN]}$`);\n createToken(\"LOOSEPLAIN\", `[v=\\\\s]*${src[t2.MAINVERSIONLOOSE]}${src[t2.PRERELEASELOOSE]}?${src[t2.BUILD]}?`);\n createToken(\"LOOSE\", `^${src[t2.LOOSEPLAIN]}$`);\n createToken(\"GTLT\", \"((?:<|>)?=?)\");\n createToken(\"XRANGEIDENTIFIERLOOSE\", `${src[t2.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`);\n createToken(\"XRANGEIDENTIFIER\", `${src[t2.NUMERICIDENTIFIER]}|x|X|\\\\*`);\n createToken(\"XRANGEPLAIN\", `[v=\\\\s]*(${src[t2.XRANGEIDENTIFIER]})(?:\\\\.(${src[t2.XRANGEIDENTIFIER]})(?:\\\\.(${src[t2.XRANGEIDENTIFIER]})(?:${src[t2.PRERELEASE]})?${src[t2.BUILD]}?)?)?`);\n createToken(\"XRANGEPLAINLOOSE\", `[v=\\\\s]*(${src[t2.XRANGEIDENTIFIERLOOSE]})(?:\\\\.(${src[t2.XRANGEIDENTIFIERLOOSE]})(?:\\\\.(${src[t2.XRANGEIDENTIFIERLOOSE]})(?:${src[t2.PRERELEASELOOSE]})?${src[t2.BUILD]}?)?)?`);\n createToken(\"XRANGE\", `^${src[t2.GTLT]}\\\\s*${src[t2.XRANGEPLAIN]}$`);\n createToken(\"XRANGELOOSE\", `^${src[t2.GTLT]}\\\\s*${src[t2.XRANGEPLAINLOOSE]}$`);\n createToken(\"COERCEPLAIN\", `${\"(^|[^\\\\d])(\\\\d{1,\"}${MAX_SAFE_COMPONENT_LENGTH2}})(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH2}}))?(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH2}}))?`);\n createToken(\"COERCE\", `${src[t2.COERCEPLAIN]}(?:$|[^\\\\d])`);\n createToken(\"COERCEFULL\", src[t2.COERCEPLAIN] + `(?:${src[t2.PRERELEASE]})?(?:${src[t2.BUILD]})?(?:$|[^\\\\d])`);\n createToken(\"COERCERTL\", src[t2.COERCE], true);\n createToken(\"COERCERTLFULL\", src[t2.COERCEFULL], true);\n createToken(\"LONETILDE\", \"(?:~>?)\");\n createToken(\"TILDETRIM\", `(\\\\s*)${src[t2.LONETILDE]}\\\\s+`, true);\n exports.tildeTrimReplace = \"$1~\";\n createToken(\"TILDE\", `^${src[t2.LONETILDE]}${src[t2.XRANGEPLAIN]}$`);\n createToken(\"TILDELOOSE\", `^${src[t2.LONETILDE]}${src[t2.XRANGEPLAINLOOSE]}$`);\n createToken(\"LONECARET\", \"(?:\\\\^)\");\n createToken(\"CARETTRIM\", `(\\\\s*)${src[t2.LONECARET]}\\\\s+`, true);\n exports.caretTrimReplace = \"$1^\";\n createToken(\"CARET\", `^${src[t2.LONECARET]}${src[t2.XRANGEPLAIN]}$`);\n createToken(\"CARETLOOSE\", `^${src[t2.LONECARET]}${src[t2.XRANGEPLAINLOOSE]}$`);\n createToken(\"COMPARATORLOOSE\", `^${src[t2.GTLT]}\\\\s*(${src[t2.LOOSEPLAIN]})$|^$`);\n createToken(\"COMPARATOR\", `^${src[t2.GTLT]}\\\\s*(${src[t2.FULLPLAIN]})$|^$`);\n createToken(\"COMPARATORTRIM\", `(\\\\s*)${src[t2.GTLT]}\\\\s*(${src[t2.LOOSEPLAIN]}|${src[t2.XRANGEPLAIN]})`, true);\n exports.comparatorTrimReplace = \"$1$2$3\";\n createToken(\"HYPHENRANGE\", `^\\\\s*(${src[t2.XRANGEPLAIN]})\\\\s+-\\\\s+(${src[t2.XRANGEPLAIN]})\\\\s*$`);\n createToken(\"HYPHENRANGELOOSE\", `^\\\\s*(${src[t2.XRANGEPLAINLOOSE]})\\\\s+-\\\\s+(${src[t2.XRANGEPLAINLOOSE]})\\\\s*$`);\n createToken(\"STAR\", \"(<|>)?=?\\\\s*\\\\*\");\n createToken(\"GTE0\", \"^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$\");\n createToken(\"GTE0PRE\", \"^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$\");\n})(re$1, re$1.exports);\nvar reExports = re$1.exports;\nconst looseOption = Object.freeze({ loose: true });\nconst emptyOpts = Object.freeze({});\nconst parseOptions$1 = (options) => {\n if (!options) {\n return emptyOpts;\n }\n if (typeof options !== \"object\") {\n return looseOption;\n }\n return options;\n};\nvar parseOptions_1 = parseOptions$1;\nconst numeric = /^[0-9]+$/;\nconst compareIdentifiers$1 = (a, b) => {\n const anum = numeric.test(a);\n const bnum = numeric.test(b);\n if (anum && bnum) {\n a = +a;\n b = +b;\n }\n return a === b ? 0 : anum && !bnum ? -1 : bnum && !anum ? 1 : a < b ? -1 : 1;\n};\nconst rcompareIdentifiers = (a, b) => compareIdentifiers$1(b, a);\nvar identifiers = {\n compareIdentifiers: compareIdentifiers$1,\n rcompareIdentifiers\n};\nconst debug = debug_1;\nconst { MAX_LENGTH, MAX_SAFE_INTEGER } = constants;\nconst { safeRe: re, t } = reExports;\nconst parseOptions = parseOptions_1;\nconst { compareIdentifiers } = identifiers;\nlet SemVer$2 = class SemVer {\n constructor(version, options) {\n options = parseOptions(options);\n if (version instanceof SemVer) {\n if (version.loose === !!options.loose && version.includePrerelease === !!options.includePrerelease) {\n return version;\n } else {\n version = version.version;\n }\n } else if (typeof version !== \"string\") {\n throw new TypeError(`Invalid version. Must be a string. Got type \"${typeof version}\".`);\n }\n if (version.length > MAX_LENGTH) {\n throw new TypeError(\n `version is longer than ${MAX_LENGTH} characters`\n );\n }\n debug(\"SemVer\", version, options);\n this.options = options;\n this.loose = !!options.loose;\n this.includePrerelease = !!options.includePrerelease;\n const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL]);\n if (!m) {\n throw new TypeError(`Invalid Version: ${version}`);\n }\n this.raw = version;\n this.major = +m[1];\n this.minor = +m[2];\n this.patch = +m[3];\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError(\"Invalid major version\");\n }\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError(\"Invalid minor version\");\n }\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError(\"Invalid patch version\");\n }\n if (!m[4]) {\n this.prerelease = [];\n } else {\n this.prerelease = m[4].split(\".\").map((id) => {\n if (/^[0-9]+$/.test(id)) {\n const num = +id;\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num;\n }\n }\n return id;\n });\n }\n this.build = m[5] ? m[5].split(\".\") : [];\n this.format();\n }\n format() {\n this.version = `${this.major}.${this.minor}.${this.patch}`;\n if (this.prerelease.length) {\n this.version += `-${this.prerelease.join(\".\")}`;\n }\n return this.version;\n }\n toString() {\n return this.version;\n }\n compare(other) {\n debug(\"SemVer.compare\", this.version, this.options, other);\n if (!(other instanceof SemVer)) {\n if (typeof other === \"string\" && other === this.version) {\n return 0;\n }\n other = new SemVer(other, this.options);\n }\n if (other.version === this.version) {\n return 0;\n }\n return this.compareMain(other) || this.comparePre(other);\n }\n compareMain(other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options);\n }\n return compareIdentifiers(this.major, other.major) || compareIdentifiers(this.minor, other.minor) || compareIdentifiers(this.patch, other.patch);\n }\n comparePre(other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options);\n }\n if (this.prerelease.length && !other.prerelease.length) {\n return -1;\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1;\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0;\n }\n let i = 0;\n do {\n const a = this.prerelease[i];\n const b = other.prerelease[i];\n debug(\"prerelease compare\", i, a, b);\n if (a === void 0 && b === void 0) {\n return 0;\n } else if (b === void 0) {\n return 1;\n } else if (a === void 0) {\n return -1;\n } else if (a === b) {\n continue;\n } else {\n return compareIdentifiers(a, b);\n }\n } while (++i);\n }\n compareBuild(other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options);\n }\n let i = 0;\n do {\n const a = this.build[i];\n const b = other.build[i];\n debug(\"build compare\", i, a, b);\n if (a === void 0 && b === void 0) {\n return 0;\n } else if (b === void 0) {\n return 1;\n } else if (a === void 0) {\n return -1;\n } else if (a === b) {\n continue;\n } else {\n return compareIdentifiers(a, b);\n }\n } while (++i);\n }\n // preminor will bump the version up to the next minor release, and immediately\n // down to pre-release. premajor and prepatch work the same way.\n inc(release, identifier, identifierBase) {\n switch (release) {\n case \"premajor\":\n this.prerelease.length = 0;\n this.patch = 0;\n this.minor = 0;\n this.major++;\n this.inc(\"pre\", identifier, identifierBase);\n break;\n case \"preminor\":\n this.prerelease.length = 0;\n this.patch = 0;\n this.minor++;\n this.inc(\"pre\", identifier, identifierBase);\n break;\n case \"prepatch\":\n this.prerelease.length = 0;\n this.inc(\"patch\", identifier, identifierBase);\n this.inc(\"pre\", identifier, identifierBase);\n break;\n case \"prerelease\":\n if (this.prerelease.length === 0) {\n this.inc(\"patch\", identifier, identifierBase);\n }\n this.inc(\"pre\", identifier, identifierBase);\n break;\n case \"major\":\n if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) {\n this.major++;\n }\n this.minor = 0;\n this.patch = 0;\n this.prerelease = [];\n break;\n case \"minor\":\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++;\n }\n this.patch = 0;\n this.prerelease = [];\n break;\n case \"patch\":\n if (this.prerelease.length === 0) {\n this.patch++;\n }\n this.prerelease = [];\n break;\n case \"pre\": {\n const base = Number(identifierBase) ? 1 : 0;\n if (!identifier && identifierBase === false) {\n throw new Error(\"invalid increment argument: identifier is empty\");\n }\n if (this.prerelease.length === 0) {\n this.prerelease = [base];\n } else {\n let i = this.prerelease.length;\n while (--i >= 0) {\n if (typeof this.prerelease[i] === \"number\") {\n this.prerelease[i]++;\n i = -2;\n }\n }\n if (i === -1) {\n if (identifier === this.prerelease.join(\".\") && identifierBase === false) {\n throw new Error(\"invalid increment argument: identifier already exists\");\n }\n this.prerelease.push(base);\n }\n }\n if (identifier) {\n let prerelease = [identifier, base];\n if (identifierBase === false) {\n prerelease = [identifier];\n }\n if (compareIdentifiers(this.prerelease[0], identifier) === 0) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = prerelease;\n }\n } else {\n this.prerelease = prerelease;\n }\n }\n break;\n }\n default:\n throw new Error(`invalid increment argument: ${release}`);\n }\n this.raw = this.format();\n if (this.build.length) {\n this.raw += `+${this.build.join(\".\")}`;\n }\n return this;\n }\n};\nvar semver = SemVer$2;\nconst SemVer$1 = semver;\nconst parse$1 = (version, options, throwErrors = false) => {\n if (version instanceof SemVer$1) {\n return version;\n }\n try {\n return new SemVer$1(version, options);\n } catch (er) {\n if (!throwErrors) {\n return null;\n }\n throw er;\n }\n};\nvar parse_1 = parse$1;\nconst parse = parse_1;\nconst valid = (version, options) => {\n const v = parse(version, options);\n return v ? v.version : null;\n};\nvar valid_1 = valid;\nconst valid$1 = /* @__PURE__ */ getDefaultExportFromCjs(valid_1);\nconst SemVer2 = semver;\nconst major = (a, loose) => new SemVer2(a, loose).major;\nvar major_1 = major;\nconst major$1 = /* @__PURE__ */ getDefaultExportFromCjs(major_1);\nclass ProxyBus {\n bus;\n constructor(bus2) {\n if (typeof bus2.getVersion !== \"function\" || !valid$1(bus2.getVersion())) {\n console.warn(\"Proxying an event bus with an unknown or invalid version\");\n } else if (major$1(bus2.getVersion()) !== major$1(this.getVersion())) {\n console.warn(\n \"Proxying an event bus of version \" + bus2.getVersion() + \" with \" + this.getVersion()\n );\n }\n this.bus = bus2;\n }\n getVersion() {\n return \"3.3.1\";\n }\n subscribe(name, handler) {\n this.bus.subscribe(name, handler);\n }\n unsubscribe(name, handler) {\n this.bus.unsubscribe(name, handler);\n }\n emit(name, event) {\n this.bus.emit(name, event);\n }\n}\nclass SimpleBus {\n handlers = /* @__PURE__ */ new Map();\n getVersion() {\n return \"3.3.1\";\n }\n subscribe(name, handler) {\n this.handlers.set(\n name,\n (this.handlers.get(name) || []).concat(\n handler\n )\n );\n }\n unsubscribe(name, handler) {\n this.handlers.set(\n name,\n (this.handlers.get(name) || []).filter((h) => h !== handler)\n );\n }\n emit(name, event) {\n (this.handlers.get(name) || []).forEach((h) => {\n try {\n h(event);\n } catch (e) {\n console.error(\"could not invoke event listener\", e);\n }\n });\n }\n}\nlet bus = null;\nfunction getBus() {\n if (bus !== null) {\n return bus;\n }\n if (typeof window === \"undefined\") {\n return new Proxy({}, {\n get: () => {\n return () => console.error(\n \"Window not available, EventBus can not be established!\"\n );\n }\n });\n }\n if (window.OC?._eventBus && typeof window._nc_event_bus === \"undefined\") {\n console.warn(\n \"found old event bus instance at OC._eventBus. Update your version!\"\n );\n window._nc_event_bus = window.OC._eventBus;\n }\n if (typeof window?._nc_event_bus !== \"undefined\") {\n bus = new ProxyBus(window._nc_event_bus);\n } else {\n bus = window._nc_event_bus = new SimpleBus();\n }\n return bus;\n}\nfunction emit(name, event) {\n getBus().emit(name, event);\n}\n/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nclass FileListFilter extends TypedEventTarget {\n id;\n order;\n constructor(id, order = 100) {\n super();\n this.id = id;\n this.order = order;\n }\n filter(nodes) {\n throw new Error(\"Not implemented\");\n }\n updateChips(chips) {\n this.dispatchTypedEvent(\"update:chips\", new CustomEvent(\"update:chips\", { detail: chips }));\n }\n filterUpdated() {\n this.dispatchTypedEvent(\"update:filter\", new CustomEvent(\"update:filter\"));\n }\n}\nfunction registerFileListFilter(filter) {\n if (!window._nc_filelist_filters) {\n window._nc_filelist_filters = /* @__PURE__ */ new Map();\n }\n if (window._nc_filelist_filters.has(filter.id)) {\n throw new Error(`File list filter \"${filter.id}\" already registered`);\n }\n window._nc_filelist_filters.set(filter.id, filter);\n emit(\"files:filter:added\", filter);\n}\nfunction unregisterFileListFilter(filterId) {\n if (window._nc_filelist_filters && window._nc_filelist_filters.has(filterId)) {\n window._nc_filelist_filters.delete(filterId);\n emit(\"files:filter:removed\", filterId);\n }\n}\nfunction getFileListFilters() {\n if (!window._nc_filelist_filters) {\n return [];\n }\n return [...window._nc_filelist_filters.values()];\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 FileListFilter,\n FileType,\n FilesSortingMode,\n Folder,\n Header,\n InvalidFilenameError,\n InvalidFilenameErrorReason,\n Navigation,\n NewMenuEntryCategory,\n Node,\n NodeStatus,\n Permission,\n View,\n addNewFileMenuEntry,\n davGetClient,\n davGetDefaultPropfind,\n davGetFavoritesReport,\n davGetRecentSearch,\n davGetRemoteURL,\n davGetRootPath,\n davParsePermissions,\n davRemoteURL,\n davResultToNode,\n davRootPath,\n defaultDavNamespaces,\n defaultDavProperties,\n formatFileSize,\n getDavNameSpaces,\n getDavProperties,\n getFavoriteNodes,\n getFileActions,\n getFileListFilters,\n getFileListHeaders,\n getNavigation,\n getNewFileMenuEntries,\n getUniqueName,\n isFilenameValid,\n orderBy,\n parseFileSize,\n registerDavProperty,\n registerFileAction,\n registerFileListFilter,\n registerFileListHeaders,\n removeNewFileMenuEntry,\n sortNodes,\n unregisterFileListFilter,\n validateFilename\n};\n","import '../assets/index-BbS3HZwl.css';\nimport { isPublicShare } from \"@nextcloud/sharing/public\";\nimport Vue, { defineComponent, defineAsyncComponent } from \"vue\";\nimport { getCurrentUser } from \"@nextcloud/auth\";\nimport { Folder, Permission, davRootPath, FileType, davGetClient, davRemoteURL, InvalidFilenameError, InvalidFilenameErrorReason, NewMenuEntryCategory, validateFilename, getUniqueName, getNewFileMenuEntries } from \"@nextcloud/files\";\nimport { basename, encodePath } from \"@nextcloud/paths\";\nimport { normalize } from \"path\";\nimport axios, { isCancel } from \"@nextcloud/axios\";\nimport PCancelable from \"p-cancelable\";\nimport PQueue from \"p-queue\";\nimport { generateRemoteUrl } from \"@nextcloud/router\";\nimport axiosRetry, { exponentialDelay } from \"axios-retry\";\nimport { getGettextBuilder } from \"@nextcloud/l10n/gettext\";\nimport { getLoggerBuilder } from \"@nextcloud/logger\";\nimport { spawnDialog, showInfo, showWarning } from \"@nextcloud/dialogs\";\nimport makeEta from \"simple-eta\";\nimport NcActionButton from \"@nextcloud/vue/dist/Components/NcActionButton.js\";\nimport NcActionCaption from \"@nextcloud/vue/dist/Components/NcActionCaption.js\";\nimport NcActionSeparator from \"@nextcloud/vue/dist/Components/NcActionSeparator.js\";\nimport NcActions from \"@nextcloud/vue/dist/Components/NcActions.js\";\nimport NcButton from \"@nextcloud/vue/dist/Components/NcButton.js\";\nimport NcIconSvgWrapper from \"@nextcloud/vue/dist/Components/NcIconSvgWrapper.js\";\nimport NcProgressBar from \"@nextcloud/vue/dist/Components/NcProgressBar.js\";\nimport NcDialog from \"@nextcloud/vue/dist/Components/NcDialog.js\";\nimport NcTextField from \"@nextcloud/vue/dist/Components/NcTextField.js\";\nimport NcNoteCard from \"@nextcloud/vue/dist/Components/NcNoteCard.js\";\naxiosRetry(axios, { retries: 0 });\nconst uploadData = async function(url, uploadData2, signal, onUploadProgress = () => {\n}, destinationFile = void 0, headers = {}, retries = 5) {\n let data;\n if (uploadData2 instanceof Blob) {\n data = uploadData2;\n } else {\n data = await uploadData2();\n }\n if (destinationFile) {\n headers.Destination = destinationFile;\n }\n if (!headers[\"Content-Type\"]) {\n headers[\"Content-Type\"] = \"application/octet-stream\";\n }\n return await axios.request({\n method: \"PUT\",\n url,\n data,\n signal,\n onUploadProgress,\n headers,\n \"axios-retry\": {\n retries,\n retryDelay: (retryCount, error) => exponentialDelay(retryCount, error, 1e3)\n }\n });\n};\nconst getChunk = function(file, start, length) {\n if (start === 0 && file.size <= length) {\n return Promise.resolve(new Blob([file], { type: file.type || \"application/octet-stream\" }));\n }\n return Promise.resolve(new Blob([file.slice(start, start + length)], { type: \"application/octet-stream\" }));\n};\nconst initChunkWorkspace = async function(destinationFile = void 0, retries = 5) {\n const chunksWorkspace = generateRemoteUrl(`dav/uploads/${getCurrentUser()?.uid}`);\n const hash = [...Array(16)].map(() => Math.floor(Math.random() * 16).toString(16)).join(\"\");\n const tempWorkspace = `web-file-upload-${hash}`;\n const url = `${chunksWorkspace}/${tempWorkspace}`;\n const headers = destinationFile ? { Destination: destinationFile } : void 0;\n await axios.request({\n method: \"MKCOL\",\n url,\n headers,\n \"axios-retry\": {\n retries,\n retryDelay: (retryCount, error) => exponentialDelay(retryCount, error, 1e3)\n }\n });\n return url;\n};\nconst getMaxChunksSize = function(fileSize = void 0) {\n const maxChunkSize = window.OC?.appConfig?.files?.max_chunk_size;\n if (maxChunkSize <= 0) {\n return 0;\n }\n if (!Number(maxChunkSize)) {\n return 10 * 1024 * 1024;\n }\n const minimumChunkSize = Math.max(Number(maxChunkSize), 5 * 1024 * 1024);\n if (fileSize === void 0) {\n return minimumChunkSize;\n }\n return Math.max(minimumChunkSize, Math.ceil(fileSize / 1e4));\n};\nvar Status$1 = /* @__PURE__ */ ((Status2) => {\n Status2[Status2[\"INITIALIZED\"] = 0] = \"INITIALIZED\";\n Status2[Status2[\"UPLOADING\"] = 1] = \"UPLOADING\";\n Status2[Status2[\"ASSEMBLING\"] = 2] = \"ASSEMBLING\";\n Status2[Status2[\"FINISHED\"] = 3] = \"FINISHED\";\n Status2[Status2[\"CANCELLED\"] = 4] = \"CANCELLED\";\n Status2[Status2[\"FAILED\"] = 5] = \"FAILED\";\n return Status2;\n})(Status$1 || {});\nclass Upload {\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(source, chunked = false, size, file) {\n const chunks = Math.min(getMaxChunksSize() > 0 ? Math.ceil(size / getMaxChunksSize()) : 1, 1e4);\n this._source = source;\n this._isChunked = chunked && getMaxChunksSize() > 0 && chunks > 1;\n this._chunks = this._isChunked ? chunks : 1;\n this._size = size;\n this._file = file;\n 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(response) {\n this._response = response;\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(length) {\n if (length >= this._size) {\n this._status = this._isChunked ? 2 : 3;\n this._uploaded = this._size;\n return;\n }\n this._status = 1;\n this._uploaded = length;\n if (this._startTime === 0) {\n this._startTime = (/* @__PURE__ */ new Date()).getTime();\n }\n }\n get status() {\n return this._status;\n }\n /**\n * Update this upload status\n */\n set status(status) {\n this._status = status;\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();\n this._status = 4;\n }\n}\nconst isFileSystemDirectoryEntry = (o) => \"FileSystemDirectoryEntry\" in window && o instanceof FileSystemDirectoryEntry;\nconst isFileSystemFileEntry = (o) => \"FileSystemFileEntry\" in window && o instanceof FileSystemFileEntry;\nconst isFileSystemEntry = (o) => \"FileSystemEntry\" in window && o instanceof FileSystemEntry;\nclass Directory extends File {\n _originalName;\n _path;\n _children;\n constructor(path, children) {\n super([], basename(path), { type: \"httpd/unix-directory\", lastModified: 0 });\n this._children = /* @__PURE__ */ new Map();\n this._originalName = basename(path);\n this._path = path;\n if (children) {\n children.forEach((c) => this.addChild(c));\n }\n }\n get size() {\n return this.children.reduce((sum, file) => sum + file.size, 0);\n }\n get lastModified() {\n return this.children.reduce((latest, file) => Math.max(latest, file.lastModified), 0);\n }\n // We need this to keep track of renamed files\n get originalName() {\n return this._originalName;\n }\n get children() {\n return Array.from(this._children.values());\n }\n get webkitRelativePath() {\n return this._path;\n }\n getChild(name) {\n return this._children.get(name) ?? null;\n }\n async addChild(file) {\n const rootPath = this._path && `${this._path}/`;\n if (isFileSystemFileEntry(file)) {\n file = await new Promise((resolve, reject) => file.file(resolve, reject));\n } else if (isFileSystemDirectoryEntry(file)) {\n const reader = file.createReader();\n const entries = await new Promise((resolve, reject) => reader.readEntries(resolve, reject));\n this._children.set(file.name, new Directory(`${rootPath}${file.name}`, entries));\n return;\n }\n file = file;\n const filePath = file.webkitRelativePath ?? file.name;\n if (!filePath.includes(\"/\")) {\n this._children.set(file.name, file);\n } else {\n if (!filePath.startsWith(this._path)) {\n throw new Error(`File ${filePath} is not a child of ${this._path}`);\n }\n const relPath = filePath.slice(rootPath.length);\n const name = basename(relPath);\n if (name === relPath) {\n this._children.set(name, file);\n } else {\n const base = relPath.slice(0, relPath.indexOf(\"/\"));\n if (this._children.has(base)) {\n this._children.get(base).addChild(file);\n } else {\n this._children.set(base, new Directory(`${rootPath}${base}`, [file]));\n }\n }\n }\n }\n}\nconst gtBuilder = getGettextBuilder().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\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" هو اسم ممنوع لملف أو مجلد.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" هو نوع ممنوع أن يكون لملف.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" هو غير مسموح به في اسم ملف أو مجلد.'] }, \"{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\": [\"إستمر\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"إنشاء جديد\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"تقدير الوقت المتبقي\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"الإصدار الحالي\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['غير مسموح ان ينتهي اسم الملف بـ \"{segment}\".'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"إذا اخترت الاحتفاظ بالنسختين فسيتم إلحاق رقم عداد آخر اسم الملف الوارد.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"اسم ملف غير صحيح\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"تاريخ آخر تعديل غير معلوم\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"جديد\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"اسم ملف جديد\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"نسخة جديدة\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"مُجمَّد\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"معاينة الصورة\"] }, \"Rename\": { \"msgid\": \"Rename\", \"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\": { \"msgid\": \"Skip\", \"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\": { \"msgid\": \"Upload\", \"msgstr\": [\"رفع الملفات\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"رفع ملفات\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"رفع مجلدات\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"الرفع من جهاز \"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"تمّ إلغاء عملية رفع الملفات\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"تمّ تجاوز الرفع\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['رفع \"{folder}\" تمّ تجاوزه'] }, \"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\": [\"عند تحديد مجلد وارد، أي ملفات متعارضة بداخله ستتم الكتابة فوقها.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"عند تحديد مجلد وارد، ستتم كتابة المحتوى في المجلد الموجود و سيتم تنفيذ حل التعارض بشكل تعاوُدي.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"أيُّ الملفات ترغب في الإبقاء عليها؟\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"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\": \"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\", \"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>, 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\\nMartin Hankovec, 2024\\nAppukonrad <appukonrad@gmail.com>, 2024\\nPavel Borecki <pavel.borecki@gmail.com>, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Pavel Borecki <pavel.borecki@gmail.com>, 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\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": [\"„{segment}“ není povoleno použít jako název souboru či složky.\"] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": [\"„{segment}“ není povoleného typu souboru.\"] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": [\"„{segment}“ není povoleno použít v rámci názvu souboru či složky.\"] }, \"{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\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Vytvořit nový\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"odhaduje se zbývající čas\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Existující verze\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": [\"Názvy souborů nemohou končit na „{segment}“.\"] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Pokud vyberete obě verze, příchozí soubor bude mít ke jménu přidánu číslici.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Neplatný název souboru\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Neznámé datum poslední úpravy\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Nové\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Nový název souboru\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Nová verze\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"pozastaveno\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Náhled obrázku\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Přejmenovat\"] }, \"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\": { \"msgid\": \"Skip\", \"msgstr\": [\"Přeskočit\"] }, \"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\": { \"msgid\": \"Upload\", \"msgstr\": [\"Nahrát\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Nahrát soubory\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Nahrát složky\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Nahrát ze zařízení\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Nahrávání bylo zrušeno\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Nahrání bylo přeskočeno\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": [\"Nahrání „{folder}“ bylo přeskočeno\"] }, \"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\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Když je vybrána příchozí složka, obsah je zapsán do existující složky a je provedeno rekurzivní řešení kolizí.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Které soubory si přejete ponechat?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Soubor je možné buď přejmenovat, přeskočit nebo celou operaci zrušit.\"] }, \"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\": \"Rasmus Rosendahl-Kaa, 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\\nRasmus Rosendahl-Kaa, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Rasmus Rosendahl-Kaa, 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\"] }, '\"{filename}\" contains invalid characters, how do you want to continue?': { \"msgid\": '\"{filename}\" contains invalid characters, how do you want to continue?', \"msgstr\": ['\"{filename}\" indeholder ugyldige karakterer, vil du stadig fortsætte?'] }, \"{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\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Opret ny\"] }, \"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 incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Hvis du vælger begge versioner, vil den indkommende fil have et nummer tilføjet til sit navn.\"] }, \"Invalid file name\": { \"msgid\": \"Invalid file name\", \"msgstr\": [\"Ugyldigt filnavn\"] }, \"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\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Omdøb\"] }, \"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\": { \"msgid\": \"Skip\", \"msgstr\": [\"Spring over\"] }, \"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 files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Upload filer\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Upload mapper\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Upload fra enhed\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Upload er blevet annulleret\"] }, \"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.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Når en indkommende mappe er valgt, vil dens indhold blive skrevet ind i den eksisterende mappe og en rekursiv konfliktløsning udføres.\"] }, \"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\": \"Andy Scherzinger <info@andy-scherzinger.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\\nMartin Wilichowski, 2024\\nAndy Scherzinger <info@andy-scherzinger.de>, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Andy Scherzinger <info@andy-scherzinger.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\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" ist ein verbotener Datei- oder Ordnername.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" ist ein verbotener Dateityp.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" ist in einem Datei- oder Ordnernamen nicht zulässig.'] }, \"{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\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Neu erstellen\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"Geschätzte verbleibende Zeit\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Vorhandene Version\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Dateinamen dürfen nicht mit \"{segment}\" enden.'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Wenn du beide Versionen auswählst, wird der eingehenden Datei eine Nummer zum Namen hinzugefügt.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Ungültiger Dateiname\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Datum der letzten Änderung unbekannt\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Neu\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Neuer Dateiname\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Neue Version\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"Pausiert\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Vorschaubild\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Umbenennen\"] }, \"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\": { \"msgid\": \"Skip\", \"msgstr\": [\"Überspringen\"] }, \"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\": { \"msgid\": \"Upload\", \"msgstr\": [\"Hochladen\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Dateien hochladen\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Ordner hochladen\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Vom Gerät hochladen\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Das Hochladen wurde abgebrochen\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Das Hochladen wurde übersprungen\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Das Hochladen von \"{folder}\" wurde übersprungen'] }, \"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.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Bei Auswahl eines eingehenden Ordners wird der Inhalt in den vorhandenen Ordner geschrieben und eine rekursive Konfliktlösung durchgeführt.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Welche Dateien möchtest du behalten?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Du kannst die Datei entweder umbenennen, diese Datei überspringen oder den gesamten Vorgang abbrechen.\"] }, \"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\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" ist ein verbotener Datei- oder Ordnername.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" ist ein verbotener Dateityp.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" ist in einem Datei- oder Ordnernamen nicht zulässig.'] }, \"{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\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Neu erstellen\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"Geschätzte verbleibende Zeit\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Vorhandene Version\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Dateinamen dürfen nicht mit \"{segment}\" enden.'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Wenn Sie beide Versionen auswählen, wird der eingehenden Datei eine Nummer zum Namen hinzugefügt.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Ungültiger Dateiname\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Datum der letzten Änderung unbekannt\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Neu\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Neuer Dateiname\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Neue Version\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"Pausiert\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Vorschaubild\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Umbenennen\"] }, \"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\": { \"msgid\": \"Skip\", \"msgstr\": [\"Überspringen\"] }, \"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\": { \"msgid\": \"Upload\", \"msgstr\": [\"Hochladen\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Dateien hochladen\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Ordner hochladen\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Vom Gerät hochladen\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Das Hochladen wurde abgebrochen\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Das Hochladen wurde übersprungen\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Das Hochladen von \"{folder}\" wurde übersprungen'] }, \"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.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Bei Auswahl eines eingehenden Ordners wird der Inhalt in den vorhandenen Ordner geschrieben und eine rekursive Konfliktlösung durchgeführt.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Welche Dateien möchten Sie behalten?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Sie können die Datei entweder umbenennen, diese Datei überspringen oder den gesamten Vorgang abbrechen.\"] }, \"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\": \"en_GB\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Andi Chandler <andi@gowling.com>, 2024\", \"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:\\nJoas Schilling, 2024\\nAndi Chandler <andi@gowling.com>, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Andi Chandler <andi@gowling.com>, 2024\\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\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" is a forbidden file or folder name.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" is a forbidden file type.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" is not allowed inside a file or folder name.'] }, \"{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\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Cancel\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Cancel the entire operation\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Cancel uploads\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Continue\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Create new\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"estimating time left\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Existing version\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Filenames must not end with \"{segment}\".'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"If you select both versions, the incoming file will have a number added to its name.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Invalid filename\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Last modified date unknown\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"New\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"New filename\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"New version\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"paused\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Preview image\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Rename\"] }, \"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\": { \"msgid\": \"Skip\", \"msgstr\": [\"Skip\"] }, \"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\": { \"msgid\": \"Upload\", \"msgstr\": [\"Upload\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Upload files\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Upload folders\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Upload from device\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Upload has been cancelled\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Upload has been skipped\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Upload of \"{folder}\" has been skipped'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Upload progress\"] }, \"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\": [\"When an incoming folder is selected, any conflicting files within it will also be overwritten.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Which files do you want to keep?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"You can either rename the file, skip this file or cancel the whole operation.\"] }, \"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:\\nJoas Schilling, 2024\\nFranciscoFJ <dev-ooo@satel-sa.com>, 2024\\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\"] }, '\"{filename}\" contains invalid characters, how do you want to continue?': { \"msgid\": '\"{filename}\" contains invalid characters, how do you want to continue?', \"msgstr\": ['\"{filename}\" contiene caracteres inválidos, ¿cómo desea continuar?'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} conflicto de archivo\", \"{count} conflictos de archivo\", \"{count} conflictos de archivo\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} conflicto de archivo en {dirname}\", \"{count} conflictos de archivo en {dirname}\", \"{count} conflictos de archivo 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\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Cancelar\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Cancelar toda la operación\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Cancelar subidas\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Continuar\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Crear nuevo\"] }, \"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 incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Si selecciona ambas versionas, el archivo entrante le será agregado un número a su nombre.\"] }, \"Invalid file name\": { \"msgid\": \"Invalid file name\", \"msgstr\": [\"Nombre de archivo inválido\"] }, \"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\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Renombrar\"] }, \"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\": { \"msgid\": \"Skip\", \"msgstr\": [\"Saltar\"] }, \"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 files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Subir archivos\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Subir carpetas\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Subir desde dispositivo\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"La subida ha sido cancelada\"] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Progreso de la subida\"] }, \"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\": [\"Cuando una carpeta entrante es seleccionada, cualquier de los archivos en conflictos también serán sobre-escritos.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Cuando una carpeta entrante es seleccionada, el contenido es escrito en la carpeta existente y se realizará una resolución de conflictos recursiva.\"] }, \"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\": \"Matías Campo Hoet <matiascampo@gmail.com>, 2024\", \"Language-Team\": \"Spanish (Argentina) (https://app.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:\\nJoas Schilling, 2024\\nMatías Campo Hoet <matiascampo@gmail.com>, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Matías Campo Hoet <matiascampo@gmail.com>, 2024\\nLanguage-Team: Spanish (Argentina) (https://app.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\"] }, '\"{filename}\" contains invalid characters, how do you want to continue?': { \"msgid\": '\"{filename}\" contains invalid characters, how do you want to continue?', \"msgstr\": ['\"{filename}\" contiene caracteres inválidos, ¿cómo desea continuar?'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} conflicto de archivo\", \"{count} conflictos de archivo\", \"{count} conflictos de archivo\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} conflicto de archivo en {dirname}\", \"{count} conflictos de archivo en {dirname}\", \"{count} conflictos de archivo 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\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Cancelar\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Cancelar toda la operación\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Cancelar subidas\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Continuar\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Crear nuevo\"] }, \"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 incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Si selecciona ambas versionas, se agregará un número al nombre del archivo entrante.\"] }, \"Invalid file name\": { \"msgid\": \"Invalid file name\", \"msgstr\": [\"Nombre de archivo inválido\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Fecha de última 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\": [\"Vista previa de imagen\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Renombrar\"] }, \"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\": { \"msgid\": \"Skip\", \"msgstr\": [\"Omitir\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Omitir este archivo\", \"Omitir {count} archivos\", \"Omitir {count} archivos\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Tamaño desconocido\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Cargar archivos\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Cargar carpetas\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Cargar desde dispositivo\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Carga cancelada\"] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Progreso de la carga\"] }, \"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\": [\"Cuando una carpeta entrante es seleccionada, cualquier archivo en conflicto dentro de la misma también serán sobreescritos.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Cuando una carpeta entrante es seleccionada, el contenido se escribe en la carpeta existente y se realiza una resolución de conflictos recursiva.\"] }, \"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_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\": \"Jehu Marcos Herrera Puentes, 2024\", \"Language-Team\": \"Spanish (Mexico) (https://app.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:\\nJoas Schilling, 2024\\nJehu Marcos Herrera Puentes, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Jehu Marcos Herrera Puentes, 2024\\nLanguage-Team: Spanish (Mexico) (https://app.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\"] }, '\"{filename}\" contains invalid characters, how do you want to continue?': { \"msgid\": '\"{filename}\" contains invalid characters, how do you want to continue?', \"msgstr\": ['\"{filename}\" contiene caracteres inválidos, ¿Cómo desea continuar?'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} conflicto de archivo\", \"{count} conflictos de archivo\", \"{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} archivo 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\": [\"{tiempo} restante\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"quedan pocos segundos\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Cancelar\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Cancelar toda la operación\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Cancelar subidas\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Continuar\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Crear nuevo\"] }, \"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 incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Si selecciona ambas versionas, se agregará un número al nombre del archivo entrante.\"] }, \"Invalid file name\": { \"msgid\": \"Invalid file name\", \"msgstr\": [\"Nombre de archivo inválido\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Fecha de última modificación desconocida\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Nuevo\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Nueva versión\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"en pausa\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Previsualizar imagen\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Renombrar\"] }, \"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\": { \"msgid\": \"Skip\", \"msgstr\": [\"Omitir\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Omitir este archivo\", \"Omitir {count} archivos\", \"Omitir {count} archivos\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Tamaño desconocido\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Subir archivos\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Subir carpetas\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Subir desde dispositivo\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"La subida ha sido cancelada\"] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Progreso de la subida\"] }, \"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\": [\"Cuando una carpeta entrante es seleccionada, cualquier archivo en conflicto dentro de la misma también será sobrescrito.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Cuando una carpeta entrante es seleccionada, el contenido se escribe en la carpeta existente y se realiza una resolución de conflictos recursiva.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"¿Cuáles 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_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\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"thingumy, 2024\", \"Language-Team\": \"Finnish (Finland) (https://app.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:\\nJoas Schilling, 2024\\nJiri Grönroos <jiri.gronroos@iki.fi>, 2024\\nthingumy, 2024\\n\" }, \"msgstr\": [\"Last-Translator: thingumy, 2024\\nLanguage-Team: Finnish (Finland) (https://app.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\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" on kielletty tiedoston tai hakemiston nimi.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" on kielletty tiedostotyyppi.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" ei ole sallittu tiedoston tai hakemiston nimessä.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} tiedoston ristiriita\", \"{count} tiedoston ristiriita\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} tiedoston ristiriita kansiossa {dirname}\", \"{count} tiedoston ristiriita kansiossa {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} sekuntia jäljellä\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS 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ä\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Peruuta\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Peruuta koko toimenpide\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Peruuta lähetykset\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Jatka\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Luo uusi\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"arvioidaan jäljellä olevaa aikaa\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Olemassa oleva versio\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Tiedoston nimi ei saa päättyä \"{segment}\"'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Jos valitset molemmat versiot, saapuvan tiedoston nimeen lisätään numero.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Kielletty/väärä tiedoston nimi\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Viimeisin muokkauspäivä on tuntematon\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Uusi\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Uusi tiedostonimi\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Uusi versio\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"keskeytetty\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Esikatsele kuva\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Nimeä uudelleen\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Valitse kaikki valintaruudut\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Valitse kaikki olemassa olevat tiedostot\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Valitse kaikki uudet tiedostot\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Ohita\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Ohita tämä tiedosto\", \"Ohita {count} tiedostoa\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Tuntematon koko\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Lähetä tiedostoja\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Lähetä kansioita\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Lähetä laitteelta\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Lähetys on peruttu\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Lähetys on ohitettu\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Hakemiston \"{folder}\" lähetys on ohitettu'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Lähetyksen edistyminen\"] }, \"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\": [\"Valittuasi saapuvien kansion, kaikki ristiriitaiset tiedostot kansiossa ylikirjoitetaan.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Valittuasi saapuvien kansion, sisältö kirjoitetaan olemassaolevaan kansioon ja suoritetaan rekursiivinen ristiriitojen poisto.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Mitkä tiedostot haluat säilyttää?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Voit joko nimetä tiedoston uudelleen, ohittaa tämän tiedoston tai peruuttaa koko toiminnon.\"] }, \"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\": [\"Sinun täytyy valita vähintään yksi versio jokaisesta tiedostosta jatkaaksesi.\"] } } } } }, { \"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\": \"Arnaud Cazenave, 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\\nJérôme HERBINET, 2024\\nArnaud Cazenave, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Arnaud Cazenave, 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\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" est un nom de fichier ou de dossier interdit.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" est un type de fichier interdit.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": [`\"{segment}\" n'est pas autorisé dans le nom d'un fichier ou d'un dossier.`] }, \"{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 téléversements\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Continuer\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Créer un nouveau\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"estimation du temps restant\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Version existante\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Le nom des fichiers ne doit pas finir par \"{segment}\".'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Si vous sélectionnez les deux versions, le nouveau fichier aura un nombre ajouté à son nom.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Nom de fichier invalide\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Date de la dernière modification est inconnue\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Nouveau\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Nouveau nom de fichier\"] }, \"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\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Renommer\"] }, \"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\": { \"msgid\": \"Skip\", \"msgstr\": [\"Ignorer\"] }, \"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\": { \"msgid\": \"Upload\", \"msgstr\": [\"Téléverser\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Téléverser des fichiers\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Téléverser des dossiers\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Téléverser depuis l'appareil\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Le téléversement a été annulé\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Le téléversement a été ignoré\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Le téléversement de \"{folder}\" a été ignoré'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Progression du téléversement\"] }, \"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.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Lorsqu'un dossier entrant est sélectionné, le contenu est ajouté dans le dossier existant et une résolution récursive des conflits est effectuée.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Quels fichiers souhaitez-vous conserver ?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Vous pouvez soit renommer le fichier, soit ignorer le fichier soit annuler toute l'opération.\"] }, \"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\": \"ga\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Aindriú Mac Giolla Eoin, 2024\", \"Language-Team\": \"Irish (https://app.transifex.com/nextcloud/teams/64236/ga/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"ga\", \"Plural-Forms\": \"nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nAindriú Mac Giolla Eoin, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Aindriú Mac Giolla Eoin, 2024\\nLanguage-Team: Irish (https://app.transifex.com/nextcloud/teams/64236/ga/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ga\\nPlural-Forms: nplurals=5; plural=(n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4);\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['Is ainm toirmiscthe comhaid nó fillteáin é \"{segment}\".'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['Is cineál comhaid toirmiscthe é \"{segment}\".'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": [`Ní cheadaítear \"{segment}\" taobh istigh d'ainm comhaid nó fillteáin.`] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} coimhlint comhaid\", \"{count} coimhlintí comhaid\", \"{count} coimhlintí comhaid\", \"{count} coimhlintí comhaid\", \"{count} coimhlintí comhaid\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} coimhlint comhaid i {dirname}\", \"{count} coimhlintí comhaid i {dirname}\", \"{count} coimhlintí comhaid i {dirname}\", \"{count} coimhlintí comhaid i {dirname}\", \"{count} coimhlintí comhaid i {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} soicind fágtha\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} fágtha\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"cúpla soicind fágtha\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Cealaigh\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Cealaigh an oibríocht iomlán\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Cealaigh uaslódálacha\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Leanúint ar aghaidh\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Cruthaigh nua\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"ag déanamh meastachán ar an am atá fágtha\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Leagan láithreach \"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Níor cheart go gcríochnaíonn comhaid chomhad le \"{segment}\".'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Má roghnaíonn tú an dá leagan, cuirfear uimhir leis an ainm a thagann isteach.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Ainm comhaid neamhbhailí\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Dáta modhnaithe is déanaí anaithnid\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Nua\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Ainm comhaid nua\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Leagan nua\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"sos\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Íomhá réamhamharc\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Athainmnigh\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Roghnaigh gach ticbhosca\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Roghnaigh gach comhad atá ann cheana féin\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Roghnaigh gach comhad nua\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Scipeáil\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Léim an comhad seo\", \"Léim ar {count} comhad\", \"Léim ar {count} comhad\", \"Léim ar {count} comhad\", \"Léim ar {count} comhad\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Méid anaithnid\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Uaslódáil\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Uaslódáil comhaid\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Uaslódáil fillteáin\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Íosluchtaigh ó ghléas\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Cuireadh an t-uaslódáil ar ceal\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Léiríodh an uaslódáil\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Léiríodh an uaslódáil \"{folder}\".'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Uaslódáil dul chun cinn\"] }, \"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\": [\"Nuair a roghnaítear fillteán isteach, déanfar aon chomhad contrártha laistigh de a fhorscríobh freisin.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Nuair a roghnaítear fillteán isteach, scríobhtar an t-ábhar isteach san fhillteán atá ann cheana agus déantar réiteach coinbhleachta athchúrsach.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Cé na comhaid ar mhaith leat a choinneáil?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Is féidir leat an comhad a athainmniú, scipeáil an comhad seo nó an oibríocht iomlán a chealú.\"] }, \"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\": [\"Ní mór duit leagan amháin ar a laghad de gach comhad a roghnú chun leanúint ar aghaidh.\"] } } } } }, { \"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>, 2024\", \"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:\\nJoas Schilling, 2024\\nMiguel Anxo Bouzada <mbouzada@gmail.com>, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Miguel Anxo Bouzada <mbouzada@gmail.com>, 2024\\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\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": [\"«{segment}» é un nome vedado para un ficheiro ou cartafol.\"] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": [\"«{segment}» é un tipo de ficheiro vedado.\"] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": [\"«{segment}» non está permitido dentro dun nome de ficheiro ou cartafol.\"] }, \"{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\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Cancelar\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Cancela toda a operación\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Cancelar envíos\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Continuar\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Crear un novo\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"calculando canto tempo falta\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Versión existente\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": [\"Os nomes de ficheiros non deben rematar con «{segment}».\"] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Se selecciona ambas as versións, o ficheiro entrante terá un número engadido ao seu nome.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"O nome de ficheiro non é válido\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Data da última modificación descoñecida\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Nova\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Novo nome de ficheiro\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Nova versión\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"detido\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Vista previa da imaxe\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Renomear\"] }, \"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\": { \"msgid\": \"Skip\", \"msgstr\": [\"Omitir\"] }, \"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\": { \"msgid\": \"Upload\", \"msgstr\": [\"Enviar\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Enviar ficheiros\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Enviar cartafoles\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Enviar dende o dispositivo\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"O envío foi cancelado\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"O envío foi omitido\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": [\"O envío de «{folder}» foi omitido\"] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Progreso do envío\"] }, \"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\": [\"Cando se selecciona un cartafol entrante, tamén se sobrescribirán os ficheiros en conflito dentro del.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Cando se selecciona un cartafol entrante, o contido escríbese no cartafol existente e lévase a cabo unha resolución recursiva de conflitos.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Que ficheiros quere conservar?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Pode cambiar o nome do ficheiro, omitir este ficheiro ou cancelar toda a operación.\"] }, \"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\": \"Gyuris Gellért <jobel@ujevangelizacio.hu>, 2024\", \"Language-Team\": \"Hungarian (Hungary) (https://app.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:\\nJoas Schilling, 2024\\nGyuris Gellért <jobel@ujevangelizacio.hu>, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Gyuris Gellért <jobel@ujevangelizacio.hu>, 2024\\nLanguage-Team: Hungarian (Hungary) (https://app.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\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['Tiltott fájl- vagy mappanév: „{segment}\".'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['Tiltott fájltípus: „{segment}\".'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['Nem megengedett egy fájl- vagy mappanévben: „{segment}\".'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count}fájlt érintő konfliktus\", \"{count} fájlt érintő konfliktus\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} fájlt érintő konfliktus a mappában: {dirname}\", \"{count}fájlt érintő konfliktus a mappában: {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{} másodperc van hátra\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS 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\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Mégse\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Teljes művelet megszakítása\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Feltöltések megszakítása\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Tovább\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Új létrehozása\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"hátralévő idő becslése\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Jelenlegi változat\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": [\"Fájlnevek nem végződhetnek erre: „{segment}”.\"] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Ha mindkét verziót kiválasztja, a bejövő fájl neve egy számmal egészül ki.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Érvénytelen fájlnév\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Utolsó módosítás dátuma ismeretlen\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Új\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Új fájlnév\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Új verzió\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"szüneteltetve\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Kép előnézete\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Átnevezés\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Minden jelölőnégyzet kijelölése\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Minden jelenlegi fájl kijelölése\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Minden új fájl kijelölése\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Kihagyás\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Ezen fájl kihagyása\", \"{count}fájl kihagyása\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Ismeretlen méret\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Feltöltés\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Fájlok feltöltése\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Mappák feltöltése\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Feltöltés eszközről\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Feltöltés meg lett szakítva\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Feltöltés át lett ugorva\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": [\"„{folder}” feltöltése át lett ugorva\"] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Feltöltési folyamat\"] }, \"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\": [\"Ha egy bejövő mappa van kiválasztva, a mappában lévő ütköző fájlok is felülírásra kerülnek.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Ha egy bejövő mappa van kiválasztva, a tartalom a meglévő mappába íródik és rekurzív konfliktusfeloldás történik.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Mely fájlokat kívánja megtartani?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Átnevezheti a fájlt, kihagyhatja ezt a fájlt, vagy törölheti az egész műveletet.\"] }, \"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\": [\"A folytatáshoz minden fájlból legalább egy verziót ki kell választani.\"] } } } } }, { \"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\": \"ja\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"kshimohata, 2024\", \"Language-Team\": \"Japanese (Japan) (https://app.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:\\nJoas Schilling, 2024\\nkojima.imamura, 2024\\nTakafumi AKAMATSU, 2024\\ndevi, 2024\\nkshimohata, 2024\\n\" }, \"msgstr\": [\"Last-Translator: kshimohata, 2024\\nLanguage-Team: Japanese (Japan) (https://app.transifex.com/nextcloud/teams/64236/ja_JP/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ja_JP\\nPlural-Forms: nplurals=1; plural=0;\\n\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" は禁止されているファイルまたはフォルダ名です。'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" は禁止されているファイルタイプです。'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['ファイルまたはフォルダ名に \"{segment}\" を含めることはできません。'] }, \"{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\": [\"続ける\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"新規作成\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"概算残り時間\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"既存バージョン\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['ファイル名の末尾に \"{segment}\" を付けることはできません。'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"両方のバージョンを選択した場合、受信ファイルの名前に数字が追加されます。\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"無効なファイル名\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"最終更新日不明\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"新規作成\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"新しいファイル名\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"新しいバージョン\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"一時停止中\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"プレビュー画像\"] }, \"Rename\": { \"msgid\": \"Rename\", \"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\": { \"msgid\": \"Skip\", \"msgstr\": [\"スキップ\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"{count} 個のファイルをスキップする\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"サイズ不明\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"アップロード\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"ファイルをアップロード\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"フォルダのアップロード\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"デバイスからのアップロード\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"アップロードはキャンセルされました\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"アップロードがスキップされました\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['\"{folder}\" のアップロードがスキップされました'] }, \"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\": [\"受信フォルダが選択されると、その中の競合するファイルもすべて上書きされます。\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"受信フォルダが選択されると、その内容は既存のフォルダに書き込まれ、再帰的な競合解決が行われます。\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"どのファイルを保持しますか?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"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\": [\"続行するには、各ファイルの少なくとも1つのバージョンを選択する必要があります。\"] } } } } }, { \"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\": \"이상오, 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:\\nJoas Schilling, 2024\\n이상오, 2024\\n\" }, \"msgstr\": [\"Last-Translator: 이상오, 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\"] }, '\"{filename}\" contains invalid characters, how do you want to continue?': { \"msgid\": '\"{filename}\" contains invalid characters, how do you want to continue?', \"msgstr\": ['\"{filename}\"에 유효하지 않은 문자가 있습니다, 계속하시겠습니까?'] }, \"{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\": [\"확인\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"새로 만들기\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"남은 시간 계산\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"현재 버전\"] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"두 파일을 모두 선택하면, 들어오는 파일의 이름에 번호가 추가됩니다.\"] }, \"Invalid file name\": { \"msgid\": \"Invalid file 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\": [\"미리보기 이미지\"] }, \"Rename\": { \"msgid\": \"Rename\", \"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\": { \"msgid\": \"Skip\", \"msgstr\": [\"건너뛰기\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"{count}개의 파일 넘기기\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"크기를 알 수 없음\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"파일 업로드\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"폴더 업로드\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"장치에서 업로드\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"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\": [\"들어오는 폴더를 선택했다면, 충돌하는 내부 파일들은 덮어쓰기 됩니다.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"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\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Roger Knutsen, 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:\\nJoas Schilling, 2024\\nRoger Knutsen, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Roger Knutsen, 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\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" er et forbudt fil- eller mappenavn.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" er en forbudt filtype.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" er ikke tillatt i et fil- eller mappenavn.'] }, \"{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\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Avbryt\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Avbryt hele operasjonen\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Avbryt opplastninger\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Fortsett\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Opprett ny\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"Estimerer tid igjen\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Gjeldende versjon\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Filnavn må ikke slutte med \"{segment}\".'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Hvis du velger begge versjonene, vil den innkommende filen ha et nummer lagt til navnet.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Ugyldig filnavn\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Siste gang redigert ukjent\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Ny\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Nytt filnavn\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Ny versjon\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"pauset\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Forhåndsvis bilde\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Omdøp\"] }, \"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\": { \"msgid\": \"Skip\", \"msgstr\": [\"Hopp over\"] }, \"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 files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Last opp filer\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Last opp mapper\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Last opp fra enhet\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Opplastingen er kansellert\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Opplastingen er hoppet over\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Opplasting av \"{folder}\" er hoppet over'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Fremdrift, opplasting\"] }, \"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 innkommende mappe velges, blir eventuelle motstridende filer i den også overskrevet.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Når en innkommende mappe velges, skrives innholdet inn i den eksisterende mappen, og en rekursiv konfliktløsning utføres.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Hvilke filer vil du beholde?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Du kan enten gi nytt navn til filen, hoppe over denne filen eller avbryte hele operasjonen.\"] }, \"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_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\": \"Piotr Strębski <strebski@gmail.com>, 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:\\nJoas Schilling, 2024\\nPiotr Strębski <strebski@gmail.com>, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Piotr Strębski <strebski@gmail.com>, 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\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Anuluj\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Anuluj całą operację\"] }, \"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 incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Jeśli wybierzesz obie wersje, do nazwy pliku przychodzącego 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\"] }, \"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 wybraniu folderu przychodzącego wszelkie znajdujące się w nim pliki powodujące konflikt również zostaną nadpisane.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Po wybraniu folderu przychodzącego zawartość jest zapisywana w istniejącym folderze i przeprowadzane jest rekursywne rozwiązywanie konfliktów.\"] }, \"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\": \"Rodrigo Sottomaior Macedo <sottomaiormacedotec@sottomaiormacedo.tech>, 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\\nRodrigo Sottomaior Macedo <sottomaiormacedotec@sottomaiormacedo.tech>, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Rodrigo Sottomaior Macedo <sottomaiormacedotec@sottomaiormacedo.tech>, 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\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" é um nome de arquivo ou pasta proibido.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" é um tipo de arquivo proibido.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" não é permitido dentro de um nome de arquivo ou pasta.'] }, \"{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\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Criar novo\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"estimando tempo restante\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Versão existente\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Os nomes dos arquivos não devem terminar com \"{segment}\".'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Se você selecionar ambas as versões, o arquivo recebido terá um número adicionado ao seu nome.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Nome de arquivo inválido\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Data da última modificação desconhecida\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Novo\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Novo nome de arquivo\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Nova versão\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"pausado\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Visualizar imagem\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Renomear\"] }, \"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\": { \"msgid\": \"Skip\", \"msgstr\": [\"Pular\"] }, \"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 files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Enviar arquivos\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Enviar pastas\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Carregar do dispositivo\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"O upload foi cancelado\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"O upload foi pulado\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['O upload de \"{folder}\" foi ignorado'] }, \"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.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Quando uma pasta de entrada é selecionada, o conteúdo é gravado na pasta existente e uma resolução de conflito recursiva é executada.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Quais arquivos você deseja manter?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Você pode renomear o arquivo, pular este arquivo ou cancelar toda a operaçã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\": [\"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\": \"Alex <fedotov22091982@gmail.com>, 2024\", \"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:\\nJoas Schilling, 2024\\nAlex <kekcuha@gmail.com>, 2024\\nВлад, 2024\\nAlex <fedotov22091982@gmail.com>, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Alex <fedotov22091982@gmail.com>, 2024\\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\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": [\"{segment} — это запрещенное имя файла или папки.\"] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": [\"{segment}— это запрещенный тип файла.\"] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": [\"{segment}не допускается в имени файла или папки.\"] }, \"{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\": [\"Продолжить\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Создать новое\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"оценка оставшегося времени\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Текущая версия\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": [\"Имена файлов не должны заканчиваться на {segment}\"] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Если вы выберете обе версии, к имени входящего файла будет добавлен номер.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Неверное имя файла\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Дата последнего изменения неизвестна\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Новый\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Новое имя файла\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Новая версия\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"приостановлено\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Предварительный просмотр\"] }, \"Rename\": { \"msgid\": \"Rename\", \"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\": { \"msgid\": \"Skip\", \"msgstr\": [\"Пропуск\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Пропустить файл\", \"Пропустить {count} файла\", \"Пропустить {count} файлов\", \"Пропустить {count} файлов\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Неизвестный размер\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Загрузка файлов\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Загрузка папок\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Загрузка с устройства\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Загрузка была отменена\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Загрузка была пропущена\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": [\"Загрузка {folder}была пропущена\"] }, \"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\": [\"Когда выбрана входящая папка, все конфликтующие файлы в ней также будут перезаписаны.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Когда выбрана входящая папка, содержимое записывается в существующую папку и выполняется рекурсивное разрешение конфликтов.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Какие файлы вы хотите сохранить?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"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\": \"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\": \"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\": \"Simon Bogina, 2024\", \"Language-Team\": \"Slovenian (https://app.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:\\nJoas Schilling, 2024\\nJan Kraljič <jan.kraljic@patware.eu>, 2024\\nSimon Bogina, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Simon Bogina, 2024\\nLanguage-Team: Slovenian (https://app.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\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" je prepovedano ime datoteka ali mape.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" je prepovedan tip datoteke.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" ni dovoljeno v imenu datoteke ali mape.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"1{count} datoteka je v konfliktu\", \"1{count} datoteki sta v konfiktu\", \"1{count} datotek je v konfliktu\", \"{count} datotek je v konfliktu\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} datoteka je v konfiktu v {dirname}\", \"{count} datoteki sta v konfiktu v {dirname}\", \"{count} datotek je v konfiktu v {dirname}\", \"{count} konfliktov datotek v {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"še {seconds} sekund\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"še {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"še nekaj sekund\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Prekliči\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Prekliči celotni postopek\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Prekliči pošiljanje\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Nadaljuj\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Ustvari nov\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"ocenjujem čas do konca\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Obstoječa različica\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Imena datotek se ne smejo končati s \"{segment}\".'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Če izberete obe različici, bo imenu dohodne datoteke na koncu dodana številka.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Nepravilno ime datoteke\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Datum zadnje spremembe neznan\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Nov\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Novo ime datoteke\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Nova različica\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"v premoru\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Predogled slike\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Preimenuj\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Izberi vsa potrditvena polja\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Označi vse obstoječe datoteke\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Označi vse nove datoteke\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Preskoči\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Preskoči datoteko\", \"Preskoči {count} datoteki\", \"Preskoči {count} datotek\", \"Preskoči {count} datotek\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Neznana velikost\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Naloži\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Naloži datoteke\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Naloži mape\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Naloži iz naprave\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Nalaganje je bilo preklicano\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Nalaganje je bilo preskočeno\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Nalaganje \"{folder}\" je bilo preskočeno'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Napredek nalaganja\"] }, \"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\": [\"Ko je izbrana dohodna mapa, bodo vse datototeke v konfliktu znotraj nje prepisane.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Ko je izbrana dohodna mapa, je vsebina vpisana v obstoječo mapo in je izvedeno rekurzivno reševanje konfliktov.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Katere datoteke želite obdržati?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Datoteko lahko preimenujete, preskočite ali prekličete celo operacijo.\"] }, \"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\": [\"Izbrati morate vsaj eno različico vsake datoteke da nadaljujete.\"] } } } } }, { \"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\": \"Иван Пешић, 2024\", \"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:\\nJoas Schilling, 2024\\nИван Пешић, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Иван Пешић, 2024\\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\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": [\"„{segment}” је забрањено име фајла или фолдера.\"] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": [\"„{segment}” је забрањен тип фајла.\"] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": [\"„{segment}” није дозвољено унутар имена фајла или фолдера.\"] }, \"{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\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Откажи\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Отказује комплетну операцију\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Обустави отпремања\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Настави\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Креирај ново\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"процена преосталог времена\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Постојећа верзија\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": [\"Имена фајлова не смеју да се завршавају на „{segment}”.\"] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Ако изаберете обе верзије, на име долазног фајла ће се додати број.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Неисправно име фајла\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Није познат датум последње измене\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Ново\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Ново име фајла\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Нова верзија\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"паузирано\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Слика прегледа\"] }, \"Rename\": { \"msgid\": \"Rename\", \"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\": { \"msgid\": \"Skip\", \"msgstr\": [\"Прескочи\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Прескочи овај фајл\", \"Прескочи {count} фајла\", \"Прескочи {count} фајлова\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Непозната величина\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Отпреми\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Отпреми фајлове\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Отпреми фолдере\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Отпреми са уређаја\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Отпремање је отказано\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Отпремање је прескочено\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": [\"Отпремање „{folder}”је прескочено\"] }, \"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\": [\"Када се изабере долазни фолдер, сва имена фајлова са конфликтом унутар њега ће се такође преписати.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Када се изабере долазни фолдер, садржај се уписује у постојећи фолдер и извршава се рекурзивно разрешавање конфликата.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Које фајлове желите да задржите?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"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\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" är ett förbjudet fil- eller mappnamn.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" är en förbjuden filtyp.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" är inte tillåtet i ett fil- eller mappnamn.'] }, \"{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\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Skapa ny\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"uppskattar kvarstående tid\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Nuvarande version\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Filnamn får inte sluta med \"{segment}\".'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Om du väljer båda versionerna kommer den inkommande filen att läggas till ett nummer i namnet.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Ogiltigt filnamn\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Senaste ändringsdatum okänt\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Ny\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Nytt filnamn\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Ny version\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"pausad\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Förhandsgranska bild\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Byt namn\"] }, \"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\": { \"msgid\": \"Skip\", \"msgstr\": [\"Hoppa över\"] }, \"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\": { \"msgid\": \"Upload\", \"msgstr\": [\"Ladda upp\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Ladda upp filer\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Ladda upp mappar\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Ladda upp från enhet\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Uppladdningen har avbrutits\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Uppladdningen har hoppats över\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Uppladdningen av \"{folder}\" har hoppats över'] }, \"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.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"När en inkommande mapp väljs skrivs innehållet in i den befintliga mappen och en rekursiv konfliktlösning utförs.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Vilka filer vill du behålla?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Du kan antingen byta namn på filen, hoppa över den här filen eller avbryta hela operationen.\"] }, \"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\": \"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\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" dosya ya da klasör adına izin verilmiyor.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" dosya türüne izin verilmiyor.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['Bir dosya ya da klasör adında \"{segment}\" ifadesine izin verilmiyor.'] }, \"{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\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Yeni ekle\"] }, \"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\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Dosya adları \"{segment}\" ile bitmemeli.'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"İki sürümü de seçerseniz, gelen dosyanın adına bir sayı eklenir.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Dosya adı geçersiz\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Son değiştirilme tarihi bilinmiyor\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Yeni\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Yeni dosya adı\"] }, \"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\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Yeniden adlandır\"] }, \"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\": { \"msgid\": \"Skip\", \"msgstr\": [\"Atla\"] }, \"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\": { \"msgid\": \"Upload\", \"msgstr\": [\"Yükle\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Dosyaları yükle\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Klasörleri yükle\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Aygıttan yükle\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Yükleme iptal edildi\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Yükleme atlandı\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['\"{folder}\" klasörünün yüklenmesi atlandı'] }, \"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.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Bir gelen klasörü seçildiğinde içerik var olan klasöre yazılır ve yinelemeli bir çakışma çözümü uygulanır.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Hangi dosyaları tutmak istiyorsunuz?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"msgstr\": [\"Dosya adını değiştirebilir, bu dosyayı atlayabilir ya da tüm işlemi iptal edebilirsiniz.\"] }, \"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\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": [`\"{segment}\" не є дозволеним ім'ям файлу або каталогу.`] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" не є дозволеним типом файлу.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" не дозволене сполучення символів в назві файлу або каталогу.'] }, \"{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\": [\"Продовжити\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Створити новий\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"оцінка часу, що залишився\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Присутня версія\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": [`Ім'я файлів не можуть закінчуватися на \"{segment}\".`] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"Якщо буде вибрано обидві версії, до імени вхідного файлу було додано цифру.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Недійсне ім'я файлу\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Дата останньої зміни невідома\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Нове\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Нове ім'я файлу\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Нова версія\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"призупинено\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Попередній перегляд\"] }, \"Rename\": { \"msgid\": \"Rename\", \"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\": { \"msgid\": \"Skip\", \"msgstr\": [\"Пропустити\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Пропустити файл\", \"Пропустити {count} файли\", \"Пропустити {count} файлів\", \"Пропустити {count} файлів\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Невідомий розмір\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Завантажити\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Завантажити файли\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Завантажити каталоги\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Завантажити з пристрою\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Завантаження скасовано\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Завантаження пропущено\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Завантаження \"{folder}\" пропущено'] }, \"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\": [\"Усі конфліктні файли у вибраному каталозі призначення буде перезаписано поверх.\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"Якщо буде вибрано вхідний каталог, вміст буде записано до наявного каталогу та вирішено конфлікти у відповідних файлах каталогу та підкаталогів.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Які файли залишити?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"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\": \"Gloryandel, 2024\", \"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:\\nJoas Schilling, 2024\\nGloryandel, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Gloryandel, 2024\\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\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" 是被禁止的文件名或文件夹名。'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" 是被禁止的文件类型。'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" 不允许包含在文件名或文件夹名中。'] }, \"{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\": [\"继续\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"新建\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"估计剩余时间\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"服务端版本\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['文件名不得以 \"{segment}\" 结尾。'] }, \"If you select both versions, the incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming file will have a number added to its name.\", \"msgstr\": [\"如果同时选择两个版本,则上传文件的名称中将添加一个数字。\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"无效文件名\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"文件最后修改日期未知\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"新建\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"新文件名\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"上传版本\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"已暂停\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"图片预览\"] }, \"Rename\": { \"msgid\": \"Rename\", \"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\": { \"msgid\": \"Skip\", \"msgstr\": [\"跳过\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"跳过{count}个文件\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"文件大小未知\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"上传\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"上传文件\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"上传文件夹\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"从设备上传\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"上传已取消\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"上传已跳过\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['已跳过上传\"{folder}\"'] }, \"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\": [\"当选择上传文件夹时,其中任何冲突的文件也都会被覆盖。\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"msgstr\": [\"选择上传文件夹后,内容将写入现有文件夹,并递归执行冲突解决。\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"你要保留哪些文件?\"] }, \"You can either rename the file, skip this file or cancel the whole operation.\": { \"msgid\": \"You can either rename the file, skip this file or cancel the whole operation.\", \"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, 2024\", \"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:\\nJoas Schilling, 2024\\nCafé Tango, 2024\\n\" }, \"msgstr\": [\"Last-Translator: Café Tango, 2024\\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\": [\"還剩幾秒\"] }, \"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 incoming file will have a number added to its name.\": { \"msgid\": \"If you select both versions, the incoming 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\": [\"選取傳入資料夾後,其中任何的衝突檔案都會被覆寫。\"] }, \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\": { \"msgid\": \"When an incoming folder is selected, the content is written into the existing folder and a recursive conflict resolution is performed.\", \"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((data) => gtBuilder.addTranslation(data.locale, data.json));\nconst gt = gtBuilder.build();\nconst n = gt.ngettext.bind(gt);\nconst t = gt.gettext.bind(gt);\nconst logger = getLoggerBuilder().setApp(\"@nextcloud/upload\").detectUser().build();\nvar Status = /* @__PURE__ */ ((Status2) => {\n Status2[Status2[\"IDLE\"] = 0] = \"IDLE\";\n Status2[Status2[\"UPLOADING\"] = 1] = \"UPLOADING\";\n Status2[Status2[\"PAUSED\"] = 2] = \"PAUSED\";\n return Status2;\n})(Status || {});\nconst MAX_CONCURRENCY = 5;\nclass Uploader {\n // Initialized via setter in the constructor\n _destinationFolder;\n _isPublic;\n _customHeaders;\n // Global upload queue\n _uploadQueue = [];\n _jobQueue = new PQueue({ concurrency: MAX_CONCURRENCY });\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(isPublic = false, destinationFolder) {\n this._isPublic = isPublic;\n this._customHeaders = {};\n if (!destinationFolder) {\n const source = `${davRemoteURL}${davRootPath}`;\n let owner;\n if (isPublic) {\n owner = \"anonymous\";\n } else {\n const user = getCurrentUser()?.uid;\n if (!user) {\n throw new Error(\"User is not logged in\");\n }\n owner = user;\n }\n destinationFolder = new Folder({\n id: 0,\n owner,\n permissions: Permission.ALL,\n root: davRootPath,\n source\n });\n }\n this.destination = destinationFolder;\n this._jobQueue.addListener(\"idle\", () => this.reset());\n logger.debug(\"Upload workspace initialized\", {\n destination: this.destination,\n root: this.root,\n isPublic,\n maxChunksSize: getMaxChunksSize()\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(folder) {\n if (!folder || folder.type !== FileType.Folder || !folder.source) {\n throw new Error(\"Invalid destination folder\");\n }\n logger.debug(\"Destination set\", { folder });\n this._destinationFolder = folder;\n }\n /**\n * Get the root folder\n */\n get root() {\n return this._destinationFolder.source;\n }\n /**\n * Get registered custom headers for uploads\n */\n get customHeaders() {\n return structuredClone(this._customHeaders);\n }\n /**\n * Set a custom header\n * @param name The header to set\n * @param value The string value\n */\n setCustomHeader(name, value = \"\") {\n this._customHeaders[name] = value;\n }\n /**\n * Unset a custom header\n * @param name The header to unset\n */\n deleteCustomerHeader(name) {\n delete this._customHeaders[name];\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);\n this._jobQueue.clear();\n this._queueSize = 0;\n this._queueProgress = 0;\n this._queueStatus = 0;\n }\n /**\n * Pause any ongoing upload(s)\n */\n pause() {\n this._jobQueue.pause();\n this._queueStatus = 2;\n }\n /**\n * Resume any pending upload(s)\n */\n start() {\n this._jobQueue.start();\n this._queueStatus = 1;\n 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 size = this._uploadQueue.map((upload2) => upload2.size).reduce((partialSum, a) => partialSum + a, 0);\n const uploaded = this._uploadQueue.map((upload2) => upload2.uploaded).reduce((partialSum, a) => partialSum + a, 0);\n this._queueSize = size;\n this._queueProgress = uploaded;\n if (this._queueStatus === 2) {\n return;\n }\n this._queueStatus = this._jobQueue.size > 0 ? 1 : 0;\n }\n addNotifier(notifier) {\n this._notifiers.push(notifier);\n }\n /**\n * Notify listeners of the upload completion\n * @param upload The upload that finished\n */\n _notifyAll(upload2) {\n for (const notifier of this._notifiers) {\n try {\n notifier(upload2);\n } catch (error) {\n logger.warn(\"Error in upload notifier\", { error, source: upload2.source });\n }\n }\n }\n /**\n * Uploads multiple files or folders while preserving the relative path (if available)\n * @param {string} destination The destination path relative to the root folder. e.g. /foo/bar (a file \"a.txt\" will be uploaded then to \"/foo/bar/a.txt\")\n * @param {Array<File|FileSystemEntry>} files The files and/or folders to upload\n * @param {Function} callback Callback that receives the nodes in the current folder and the current path to allow resolving conflicts, all nodes that are returned will be uploaded (if a folder does not exist it will be created)\n * @return Cancelable promise that resolves to an array of uploads\n *\n * @example\n * ```ts\n * // For example this is from handling the onchange event of an input[type=file]\n * async handleFiles(files: File[]) {\n * this.uploads = await this.uploader.batchUpload('uploads', files, this.handleConflicts)\n * }\n *\n * async handleConflicts(nodes: File[], currentPath: string) {\n * const conflicts = getConflicts(nodes, this.fetchContent(currentPath))\n * if (conflicts.length === 0) {\n * // No conflicts so upload all\n * return nodes\n * } else {\n * // Open the conflict picker to resolve conflicts\n * try {\n * const { selected, renamed } = await openConflictPicker(currentPath, conflicts, this.fetchContent(currentPath), { recursive: true })\n * return [...selected, ...renamed]\n * } catch (e) {\n * return false\n * }\n * }\n * }\n * ```\n */\n batchUpload(destination, files, callback) {\n const rootFolder = new Directory(\"\", files);\n if (!callback) {\n callback = async (files2) => files2;\n }\n return new PCancelable(async (resolve, reject, onCancel) => {\n const upload2 = new Upload(`${this.root.replace(/\\/$/, \"\")}/${destination.replace(/^\\//, \"\")}`, false, 0, rootFolder);\n upload2.status = Status$1.UPLOADING;\n this._uploadQueue.push(upload2);\n try {\n const client = davGetClient(this.root, this._customHeaders);\n const promise = this.uploadDirectory(destination, rootFolder, callback, client);\n onCancel(() => promise.cancel());\n const uploads = await promise;\n upload2.status = Status$1.FINISHED;\n resolve(uploads);\n } catch (error) {\n logger.error(\"Error in batch upload\", { error });\n upload2.status = Status$1.FAILED;\n reject(t(\"Upload has been cancelled\"));\n } finally {\n this._notifyAll(upload2);\n this.updateStats();\n }\n });\n }\n /**\n * Helper to create a directory wrapped inside an Upload class\n * @param destination Destination where to create the directory\n * @param directory The directory to create\n * @param client The cached WebDAV client\n */\n createDirectory(destination, directory, client) {\n const folderPath = normalize(`${destination}/${directory.name}`).replace(/\\/$/, \"\");\n const rootPath = `${this.root.replace(/\\/$/, \"\")}/${folderPath.replace(/^\\//, \"\")}`;\n if (!directory.name) {\n throw new Error(\"Can not create empty directory\");\n }\n const currentUpload = new Upload(rootPath, false, 0, directory);\n this._uploadQueue.push(currentUpload);\n return new PCancelable(async (resolve, reject, onCancel) => {\n const abort = new AbortController();\n onCancel(() => abort.abort());\n currentUpload.signal.addEventListener(\"abort\", () => reject(t(\"Upload has been cancelled\")));\n await this._jobQueue.add(async () => {\n currentUpload.status = Status$1.UPLOADING;\n try {\n await client.createDirectory(folderPath, { signal: abort.signal });\n resolve(currentUpload);\n } catch (error) {\n if (error && typeof error === \"object\" && \"status\" in error && error.status === 405) {\n currentUpload.status = Status$1.FINISHED;\n logger.debug(\"Directory already exists, writing into it\", { directory: directory.name });\n } else {\n currentUpload.status = Status$1.FAILED;\n reject(error);\n }\n } finally {\n this._notifyAll(currentUpload);\n this.updateStats();\n }\n });\n });\n }\n // Helper for uploading directories (recursively)\n uploadDirectory(destination, directory, callback, client) {\n const folderPath = normalize(`${destination}/${directory.name}`).replace(/\\/$/, \"\");\n return new PCancelable(async (resolve, reject, onCancel) => {\n const abort = new AbortController();\n onCancel(() => abort.abort());\n const selectedForUpload = await callback(directory.children, folderPath);\n if (selectedForUpload === false) {\n reject(t(\"Upload has been cancelled\"));\n return;\n } else if (selectedForUpload.length === 0 && directory.children.length > 0) {\n resolve([]);\n return;\n }\n const directories = [];\n const uploads = [];\n abort.signal.addEventListener(\"abort\", () => {\n directories.forEach((upload2) => upload2.cancel());\n uploads.forEach((upload2) => upload2.cancel());\n });\n try {\n if (directory.name) {\n uploads.push(this.createDirectory(destination, directory, client));\n await uploads.at(-1);\n }\n for (const node of selectedForUpload) {\n if (node instanceof Directory) {\n directories.push(this.uploadDirectory(folderPath, node, callback, client));\n } else {\n uploads.push(this.upload(`${folderPath}/${node.name}`, node));\n }\n }\n const resolvedUploads = await Promise.all(uploads);\n const resolvedDirectoryUploads = await Promise.all(directories);\n resolve([resolvedUploads, ...resolvedDirectoryUploads].flat());\n } catch (e) {\n abort.abort(e);\n reject(e);\n }\n });\n }\n /**\n * Upload a file to the given path\n * @param {string} destination the destination path relative to the root folder. e.g. /foo/bar.txt\n * @param {File|FileSystemFileEntry} fileHandle the file to upload\n * @param {string} root the root folder to upload to\n * @param retries number of retries\n */\n upload(destination, fileHandle, root, retries = 5) {\n root = root || this.root;\n const destinationPath = `${root.replace(/\\/$/, \"\")}/${destination.replace(/^\\//, \"\")}`;\n const { origin } = new URL(destinationPath);\n const encodedDestinationFile = origin + encodePath(destinationPath.slice(origin.length));\n logger.debug(`Uploading ${fileHandle.name} to ${encodedDestinationFile}`);\n const promise = new PCancelable(async (resolve, reject, onCancel) => {\n if (isFileSystemFileEntry(fileHandle)) {\n fileHandle = await new Promise((resolve2) => fileHandle.file(resolve2, reject));\n }\n const file = fileHandle;\n const maxChunkSize = getMaxChunksSize(\"size\" in file ? file.size : void 0);\n const disabledChunkUpload = this._isPublic || maxChunkSize === 0 || \"size\" in file && file.size < maxChunkSize;\n const upload2 = new Upload(destinationPath, !disabledChunkUpload, file.size, file);\n this._uploadQueue.push(upload2);\n this.updateStats();\n onCancel(upload2.cancel);\n if (!disabledChunkUpload) {\n logger.debug(\"Initializing chunked upload\", { file, upload: upload2 });\n const tempUrl = await initChunkWorkspace(encodedDestinationFile, retries);\n const chunksQueue = [];\n for (let chunk = 0; chunk < upload2.chunks; chunk++) {\n const bufferStart = chunk * maxChunkSize;\n const bufferEnd = Math.min(bufferStart + maxChunkSize, upload2.size);\n const blob = () => getChunk(file, bufferStart, maxChunkSize);\n const request = () => {\n return uploadData(\n `${tempUrl}/${chunk + 1}`,\n blob,\n upload2.signal,\n () => this.updateStats(),\n encodedDestinationFile,\n {\n ...this._customHeaders,\n \"X-OC-Mtime\": Math.floor(file.lastModified / 1e3),\n \"OC-Total-Length\": file.size,\n \"Content-Type\": \"application/octet-stream\"\n },\n retries\n ).then(() => {\n upload2.uploaded = upload2.uploaded + maxChunkSize;\n }).catch((error) => {\n if (error?.response?.status === 507) {\n logger.error(\"Upload failed, not enough space on the server or quota exceeded. Cancelling the remaining chunks\", { error, upload: upload2 });\n upload2.cancel();\n upload2.status = Status$1.FAILED;\n throw error;\n }\n if (!isCancel(error)) {\n logger.error(`Chunk ${chunk + 1} ${bufferStart} - ${bufferEnd} uploading failed`, { error, upload: upload2 });\n upload2.cancel();\n upload2.status = Status$1.FAILED;\n }\n throw error;\n });\n };\n chunksQueue.push(this._jobQueue.add(request));\n }\n try {\n await Promise.all(chunksQueue);\n this.updateStats();\n upload2.response = await axios.request({\n method: \"MOVE\",\n url: `${tempUrl}/.file`,\n headers: {\n ...this._customHeaders,\n \"X-OC-Mtime\": Math.floor(file.lastModified / 1e3),\n \"OC-Total-Length\": file.size,\n Destination: encodedDestinationFile\n }\n });\n this.updateStats();\n upload2.status = Status$1.FINISHED;\n logger.debug(`Successfully uploaded ${file.name}`, { file, upload: upload2 });\n resolve(upload2);\n } catch (error) {\n if (!isCancel(error)) {\n upload2.status = Status$1.FAILED;\n reject(\"Failed assembling the chunks together\");\n } else {\n upload2.status = Status$1.FAILED;\n reject(t(\"Upload has been cancelled\"));\n }\n axios.request({\n method: \"DELETE\",\n url: `${tempUrl}`\n });\n }\n this._notifyAll(upload2);\n } else {\n logger.debug(\"Initializing regular upload\", { file, upload: upload2 });\n const blob = await getChunk(file, 0, upload2.size);\n const request = async () => {\n try {\n upload2.response = await uploadData(\n encodedDestinationFile,\n blob,\n upload2.signal,\n (event) => {\n upload2.uploaded = upload2.uploaded + event.bytes;\n this.updateStats();\n },\n void 0,\n {\n ...this._customHeaders,\n \"X-OC-Mtime\": Math.floor(file.lastModified / 1e3),\n \"Content-Type\": file.type\n }\n );\n upload2.uploaded = upload2.size;\n this.updateStats();\n logger.debug(`Successfully uploaded ${file.name}`, { file, upload: upload2 });\n resolve(upload2);\n } catch (error) {\n if (isCancel(error)) {\n upload2.status = Status$1.FAILED;\n reject(t(\"Upload has been cancelled\"));\n return;\n }\n if (error?.response) {\n upload2.response = error.response;\n }\n upload2.status = Status$1.FAILED;\n logger.error(`Failed uploading ${file.name}`, { error, file, upload: upload2 });\n reject(\"Failed uploading the file\");\n }\n this._notifyAll(upload2);\n };\n this._jobQueue.add(request);\n this.updateStats();\n }\n return upload2;\n });\n return promise;\n }\n}\nfunction normalizeComponent(scriptExports, render7, staticRenderFns, functionalTemplate, injectStyles, scopeId, moduleIdentifier, shadowMode) {\n var options = typeof scriptExports === \"function\" ? scriptExports.options : scriptExports;\n if (render7) {\n options.render = render7;\n options.staticRenderFns = staticRenderFns;\n options._compiled = true;\n }\n if (scopeId) {\n options._scopeId = \"data-v-\" + scopeId;\n }\n return {\n exports: scriptExports,\n options\n };\n}\nconst _sfc_main$5 = {\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 _sfc_render$5 = function render() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"span\", _vm._b({ staticClass: \"material-design-icon cancel-icon\", attrs: { \"aria-hidden\": _vm.title ? null : true, \"aria-label\": _vm.title, \"role\": \"img\" }, on: { \"click\": function($event) {\n return _vm.$emit(\"click\", $event);\n } } }, \"span\", _vm.$attrs, false), [_c(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { \"fill\": _vm.fillColor, \"width\": _vm.size, \"height\": _vm.size, \"viewBox\": \"0 0 24 24\" } }, [_c(\"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\" } }, [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()])])]);\n};\nvar _sfc_staticRenderFns$5 = [];\nvar __component__$5 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$5,\n _sfc_render$5,\n _sfc_staticRenderFns$5,\n false,\n null,\n null\n);\nconst IconCancel = __component__$5.exports;\nconst _sfc_main$4 = {\n name: \"FolderUploadIcon\",\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 _sfc_render$4 = function render2() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"span\", _vm._b({ staticClass: \"material-design-icon folder-upload-icon\", attrs: { \"aria-hidden\": _vm.title ? null : true, \"aria-label\": _vm.title, \"role\": \"img\" }, on: { \"click\": function($event) {\n return _vm.$emit(\"click\", $event);\n } } }, \"span\", _vm.$attrs, false), [_c(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { \"fill\": _vm.fillColor, \"width\": _vm.size, \"height\": _vm.size, \"viewBox\": \"0 0 24 24\" } }, [_c(\"path\", { attrs: { \"d\": \"M20,6A2,2 0 0,1 22,8V18A2,2 0 0,1 20,20H4A2,2 0 0,1 2,18V6A2,2 0 0,1 4,4H10L12,6H20M10.75,13H14V17H16V13H19.25L15,8.75\" } }, [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()])])]);\n};\nvar _sfc_staticRenderFns$4 = [];\nvar __component__$4 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$4,\n _sfc_render$4,\n _sfc_staticRenderFns$4,\n false,\n null,\n null\n);\nconst IconFolderUpload = __component__$4.exports;\nconst _sfc_main$3 = {\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 _sfc_render$3 = function render3() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"span\", _vm._b({ staticClass: \"material-design-icon plus-icon\", attrs: { \"aria-hidden\": _vm.title ? null : true, \"aria-label\": _vm.title, \"role\": \"img\" }, on: { \"click\": function($event) {\n return _vm.$emit(\"click\", $event);\n } } }, \"span\", _vm.$attrs, false), [_c(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { \"fill\": _vm.fillColor, \"width\": _vm.size, \"height\": _vm.size, \"viewBox\": \"0 0 24 24\" } }, [_c(\"path\", { attrs: { \"d\": \"M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z\" } }, [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()])])]);\n};\nvar _sfc_staticRenderFns$3 = [];\nvar __component__$3 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$3,\n _sfc_render$3,\n _sfc_staticRenderFns$3,\n false,\n null,\n null\n);\nconst IconPlus = __component__$3.exports;\nconst _sfc_main$2 = {\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 _sfc_render$2 = function render4() {\n var _vm = this, _c = _vm._self._c;\n return _c(\"span\", _vm._b({ staticClass: \"material-design-icon upload-icon\", attrs: { \"aria-hidden\": _vm.title ? null : true, \"aria-label\": _vm.title, \"role\": \"img\" }, on: { \"click\": function($event) {\n return _vm.$emit(\"click\", $event);\n } } }, \"span\", _vm.$attrs, false), [_c(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { \"fill\": _vm.fillColor, \"width\": _vm.size, \"height\": _vm.size, \"viewBox\": \"0 0 24 24\" } }, [_c(\"path\", { attrs: { \"d\": \"M9,16V10H5L12,3L19,10H15V16H9M5,20V18H19V20H5Z\" } }, [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()])])]);\n};\nvar _sfc_staticRenderFns$2 = [];\nvar __component__$2 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$2,\n _sfc_render$2,\n _sfc_staticRenderFns$2,\n false,\n null,\n null\n);\nconst IconUpload = __component__$2.exports;\nconst _sfc_main$1 = defineComponent({\n components: {\n NcDialog,\n NcNoteCard,\n NcTextField\n },\n props: {\n error: {\n type: InvalidFilenameError,\n required: true\n },\n /**\n * @deprecated just for legacy reasons, replace with function from @nextcloud/files in future\n */\n validateFilename: {\n type: Function,\n required: true\n }\n },\n setup() {\n return {\n t\n };\n },\n data() {\n return {\n newName: \"\",\n validationError: \"\"\n };\n },\n computed: {\n isValidName() {\n return this.validationError === \"\";\n },\n isInvalidFileType() {\n return this.error.reason === InvalidFilenameErrorReason.Extension && this.error.segment.match(/^\\.\\w/) !== null;\n },\n canRename() {\n return !this.isInvalidFileType;\n },\n dialogButtons() {\n const buttons = [\n {\n label: t(\"Cancel\"),\n type: \"error\",\n callback: () => {\n this.$emit(\"close\", { cancel: true });\n }\n },\n {\n label: t(\"Skip\"),\n callback: () => {\n this.$emit(\"close\", { skip: true });\n }\n }\n ];\n if (this.canRename) {\n buttons.push({\n label: t(\"Rename\"),\n type: \"primary\",\n disabled: !this.isValidName,\n callback: () => {\n this.$emit(\"close\", { rename: this.newName.trimEnd() });\n }\n });\n }\n return buttons;\n }\n },\n watch: {\n error: {\n handler() {\n this.validationError = this.getErrorText(this.error);\n this.newName = this.error.filename;\n },\n immediate: true\n },\n newName() {\n try {\n this.validateFilename(this.newName.trimEnd());\n this.validationError = \"\";\n } catch (error) {\n this.validationError = this.getErrorText(error);\n } finally {\n const textfield = this.$refs.textfield?.$el.querySelector(\"input\");\n if (textfield) {\n textfield.setCustomValidity(this.validationError);\n textfield.reportValidity();\n }\n }\n }\n },\n methods: {\n getErrorText(error) {\n switch (error.reason) {\n case InvalidFilenameErrorReason.Character:\n return t('\"{segment}\" is not allowed inside a file or folder name.', { segment: error.segment });\n case InvalidFilenameErrorReason.ReservedName:\n return t('\"{segment}\" is a forbidden file or folder name.', { segment: error.segment });\n case InvalidFilenameErrorReason.Extension:\n return error.segment.match(/\\.\\w/) ? t('\"{segment}\" is a forbidden file type.', { segment: error.segment }) : t('Filenames must not end with \"{segment}\".', { segment: error.segment });\n }\n }\n }\n});\nvar _sfc_render$1 = function render5() {\n var _vm = this, _c = _vm._self._c;\n _vm._self._setupProxy;\n return _c(\"NcDialog\", { attrs: { \"buttons\": _vm.dialogButtons, \"name\": _vm.t(\"Invalid filename\") }, on: { \"close\": function($event) {\n return _vm.$emit(\"close\", { cancel: true });\n } } }, [_c(\"NcNoteCard\", { attrs: { \"severity\": \"error\" } }, [_vm._v(\" \" + _vm._s(_vm.getErrorText(_vm.error)) + \" \" + _vm._s(_vm.t(\"You can either rename the file, skip this file or cancel the whole operation.\")) + \" \")]), _vm.canRename ? _c(\"NcTextField\", { ref: \"textfield\", staticClass: \"invalid-filename-dialog__input\", attrs: { \"error\": !_vm.isValidName, \"helper-text\": _vm.validationError, \"label\": _vm.t(\"New filename\"), \"value\": _vm.newName }, on: { \"update:value\": function($event) {\n _vm.newName = $event;\n } } }) : _vm._e()], 1);\n};\nvar _sfc_staticRenderFns$1 = [];\nvar __component__$1 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$1,\n _sfc_render$1,\n _sfc_staticRenderFns$1,\n false,\n null,\n \"3a479259\"\n);\nconst InvalidFilenameDialog = __component__$1.exports;\nconst _sfc_main = Vue.extend({\n name: \"UploadPicker\",\n components: {\n IconCancel,\n IconFolderUpload,\n IconPlus,\n IconUpload,\n NcActionButton,\n NcActionCaption,\n NcActionSeparator,\n NcActions,\n NcButton,\n NcIconSvgWrapper,\n NcProgressBar\n },\n props: {\n accept: {\n type: Array,\n default: null\n },\n disabled: {\n type: Boolean,\n default: false\n },\n multiple: {\n type: Boolean,\n default: false\n },\n /**\n * Allow to disable the \"new\"-menu for this UploadPicker instance\n * @default false\n */\n noMenu: {\n type: Boolean,\n default: false\n },\n destination: {\n type: Folder,\n default: void 0\n },\n allowFolders: {\n type: Boolean,\n default: false\n },\n /**\n * List of file present in the destination folder\n * It is also possible to provide a function that takes a relative path to the current directory and returns the content of it\n * Note: If a function is passed it should return the current base directory when no path or an empty is passed\n */\n content: {\n type: [Array, Function],\n default: () => []\n },\n /**\n * Overwrite forbidden characters (by default the capabilities of the server are used)\n * @deprecated Deprecated and will be removed in the next major version\n */\n forbiddenCharacters: {\n type: Array,\n default: () => []\n }\n },\n setup() {\n return {\n t,\n // non reactive data / properties\n progressTimeId: `nc-uploader-progress-${Math.random().toString(36).slice(7)}`\n };\n },\n data() {\n return {\n eta: null,\n timeLeft: \"\",\n newFileMenuEntries: [],\n uploadManager: getUploader()\n };\n },\n computed: {\n menuEntriesUpload() {\n return this.newFileMenuEntries.filter((entry) => entry.category === NewMenuEntryCategory.UploadFromDevice);\n },\n menuEntriesNew() {\n return this.newFileMenuEntries.filter((entry) => entry.category === NewMenuEntryCategory.CreateNew);\n },\n menuEntriesOther() {\n return this.newFileMenuEntries.filter((entry) => entry.category === NewMenuEntryCategory.Other);\n },\n /**\n * Check whether the current browser supports uploading directories\n * Hint: This does not check if the current connection supports this, as some browsers require a secure context!\n */\n canUploadFolders() {\n return this.allowFolders && \"webkitdirectory\" in document.createElement(\"input\");\n },\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((upload2) => upload2.status === Status$1.FAILED).length !== 0;\n },\n isUploading() {\n return this.queue?.length > 0;\n },\n isAssembling() {\n return this.queue?.filter((upload2) => upload2.status === Status$1.ASSEMBLING).length !== 0;\n },\n isPaused() {\n return this.uploadManager.info?.status === Status.PAUSED;\n },\n buttonLabel() {\n return this.noMenu ? t(\"Upload\") : t(\"New\");\n },\n // Hide the button text if we're uploading\n buttonName() {\n if (this.isUploading) {\n return void 0;\n }\n return this.buttonLabel;\n }\n },\n watch: {\n allowFolders: {\n immediate: true,\n handler() {\n if (typeof this.content !== \"function\" && this.allowFolders) {\n logger.error(\"[UploadPicker] Setting `allowFolders` is only allowed if `content` is a function\");\n }\n }\n },\n destination(destination) {\n this.setDestination(destination);\n },\n totalQueueSize(size) {\n this.eta = makeEta({ min: 0, max: size });\n this.updateStatus();\n },\n uploadedQueueSize(size) {\n this.eta?.report?.(size);\n this.updateStatus();\n },\n isPaused(isPaused) {\n if (isPaused) {\n this.$emit(\"paused\", this.queue);\n } else {\n this.$emit(\"resumed\", this.queue);\n }\n }\n },\n beforeMount() {\n if (this.destination) {\n this.setDestination(this.destination);\n }\n this.uploadManager.addNotifier(this.onUploadCompletion);\n logger.debug(\"UploadPicker initialised\");\n },\n methods: {\n /**\n * Handle clicking a new-menu entry\n * @param entry The entry that was clicked\n */\n async onClick(entry) {\n entry.handler(\n this.destination,\n await this.getContent().catch(() => [])\n );\n },\n /**\n * Trigger file picker\n * @param uploadFolders Upload folders\n */\n onTriggerPick(uploadFolders = false) {\n const input = this.$refs.input;\n if (this.canUploadFolders) {\n input.webkitdirectory = uploadFolders;\n }\n this.$nextTick(() => input.click());\n },\n /**\n * Helper for backwards compatibility that queries the content of the current directory\n * @param path The current path\n */\n async getContent(path) {\n return Array.isArray(this.content) ? this.content : await this.content(path);\n },\n /**\n * Show a dialog to let the user decide how to proceed with invalid filenames.\n * The returned promise resolves to false if the file should be skipped, and resolves to a string if it should be renamed.\n * The promise rejects when the user want to abort the operation.\n *\n * @param error the validation error\n */\n showInvalidFileNameDialog(error) {\n const { promise, reject, resolve } = Promise.withResolvers();\n spawnDialog(\n InvalidFilenameDialog,\n {\n error,\n validateFilename: this.validateFilename.bind(this)\n },\n (...rest) => {\n const [{ skip, rename }] = rest;\n if (skip) {\n resolve(false);\n } else if (rename) {\n resolve(rename);\n } else {\n reject();\n }\n }\n );\n return promise;\n },\n /**\n * Wrapper to allow overwriting forbidden characters\n * Remove with next major\n * @param filename name to validate\n */\n validateFilename(filename) {\n if (this.forbiddenCharacters.length > 0) {\n for (const c of this.forbiddenCharacters) {\n if (filename.includes(c)) {\n throw new InvalidFilenameError({\n filename,\n reason: InvalidFilenameErrorReason.Character,\n segment: c\n });\n }\n }\n } else {\n validateFilename(filename);\n }\n },\n async handleConflicts(nodes, path) {\n try {\n const content = await this.getContent(path).catch(() => []);\n const conflicts = getConflicts(nodes, content);\n if (conflicts.length > 0) {\n const { selected, renamed } = await openConflictPicker(path, conflicts, content, { recursive: true });\n nodes = [...selected, ...renamed];\n }\n const filesToUpload = [];\n for (const file of nodes) {\n try {\n this.validateFilename(file.name);\n filesToUpload.push(file);\n } catch (error) {\n if (!(error instanceof InvalidFilenameError)) {\n logger.error(`Unexpected error while validating ${file.name}`, { error });\n throw error;\n }\n let newName = await this.showInvalidFileNameDialog(error);\n if (newName !== false) {\n newName = getUniqueName(newName, nodes.map((node) => node.name));\n Object.defineProperty(file, \"name\", { value: newName });\n filesToUpload.push(file);\n }\n }\n }\n if (filesToUpload.length === 0 && nodes.length > 0) {\n const folder = basename(path);\n showInfo(\n folder ? t('Upload of \"{folder}\" has been skipped', { folder }) : t(\"Upload has been skipped\")\n );\n }\n return filesToUpload;\n } catch (error) {\n logger.debug(\"Upload has been cancelled\", { error });\n showWarning(t(\"Upload has been cancelled\"));\n return false;\n }\n },\n /**\n * Start uploading\n */\n onPick() {\n const input = this.$refs.input;\n const files = input.files ? Array.from(input.files) : [];\n this.uploadManager.batchUpload(\"\", files, this.handleConflicts).catch((error) => logger.debug(\"Error while uploading\", { error })).finally(() => this.resetForm());\n },\n resetForm() {\n const form = this.$refs.form;\n form?.reset();\n },\n /**\n * Cancel ongoing queue\n */\n onCancel() {\n this.uploadManager.queue.forEach((upload2) => {\n upload2.cancel();\n });\n this.resetForm();\n },\n updateStatus() {\n if (this.isPaused) {\n this.timeLeft = t(\"paused\");\n return;\n }\n const estimate = Math.round(this.eta.estimate());\n if (estimate === Infinity) {\n this.timeLeft = t(\"estimating time left\");\n return;\n }\n if (estimate < 10) {\n this.timeLeft = t(\"a few seconds left\");\n return;\n }\n if (estimate > 60) {\n const date = /* @__PURE__ */ new Date(0);\n date.setSeconds(estimate);\n const time = date.toISOString().slice(11, 11 + 8);\n this.timeLeft = t(\"{time} left\", { time });\n return;\n }\n this.timeLeft = t(\"{seconds} seconds left\", { seconds: estimate });\n },\n setDestination(destination) {\n if (!this.destination) {\n logger.debug(\"Invalid destination\");\n return;\n }\n this.uploadManager.destination = destination;\n this.newFileMenuEntries = getNewFileMenuEntries(destination);\n },\n onUploadCompletion(upload2) {\n if (upload2.status === Status$1.FAILED) {\n this.$emit(\"failed\", upload2);\n } else {\n this.$emit(\"uploaded\", upload2);\n }\n }\n }\n});\nvar _sfc_render = function render6() {\n var _vm = this, _c = _vm._self._c;\n _vm._self._setupProxy;\n return _vm.destination ? _c(\"form\", { ref: \"form\", staticClass: \"upload-picker\", class: { \"upload-picker--uploading\": _vm.isUploading, \"upload-picker--paused\": _vm.isPaused }, attrs: { \"data-cy-upload-picker\": \"\" } }, [(_vm.noMenu || _vm.newFileMenuEntries.length === 0) && !_vm.canUploadFolders ? _c(\"NcButton\", { attrs: { \"disabled\": _vm.disabled, \"data-cy-upload-picker-add\": \"\", \"data-cy-upload-picker-menu-entry\": \"upload-file\", \"type\": \"secondary\" }, on: { \"click\": function($event) {\n return _vm.onTriggerPick();\n } }, scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_c(\"IconPlus\", { attrs: { \"size\": 20 } })];\n }, proxy: true }], null, false, 1991456921) }, [_vm._v(\" \" + _vm._s(_vm.buttonName) + \" \")]) : _c(\"NcActions\", { attrs: { \"aria-label\": _vm.buttonLabel, \"menu-name\": _vm.buttonName, \"type\": \"secondary\" }, scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_c(\"IconPlus\", { attrs: { \"size\": 20 } })];\n }, proxy: true }], null, false, 1991456921) }, [_c(\"NcActionCaption\", { attrs: { \"name\": _vm.t(\"Upload from device\") } }), _c(\"NcActionButton\", { attrs: { \"data-cy-upload-picker-add\": \"\", \"data-cy-upload-picker-menu-entry\": \"upload-file\", \"close-after-click\": true }, on: { \"click\": function($event) {\n return _vm.onTriggerPick();\n } }, scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_c(\"IconUpload\", { attrs: { \"size\": 20 } })];\n }, proxy: true }], null, false, 337456192) }, [_vm._v(\" \" + _vm._s(_vm.t(\"Upload files\")) + \" \")]), _vm.canUploadFolders ? _c(\"NcActionButton\", { attrs: { \"close-after-click\": \"\", \"data-cy-upload-picker-add-folders\": \"\", \"data-cy-upload-picker-menu-entry\": \"upload-folder\" }, on: { \"click\": function($event) {\n return _vm.onTriggerPick(true);\n } }, scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_c(\"IconFolderUpload\", { staticStyle: { \"color\": \"var(--color-primary-element)\" }, attrs: { \"size\": 20 } })];\n }, proxy: true }], null, false, 1037549157) }, [_vm._v(\" \" + _vm._s(_vm.t(\"Upload folders\")) + \" \")]) : _vm._e(), !_vm.noMenu ? _vm._l(_vm.menuEntriesUpload, function(entry) {\n return _c(\"NcActionButton\", { key: entry.id, staticClass: \"upload-picker__menu-entry\", attrs: { \"icon\": entry.iconClass, \"close-after-click\": true, \"data-cy-upload-picker-menu-entry\": entry.id }, on: { \"click\": function($event) {\n return _vm.onClick(entry);\n } }, scopedSlots: _vm._u([entry.iconSvgInline ? { key: \"icon\", fn: function() {\n return [_c(\"NcIconSvgWrapper\", { attrs: { \"svg\": entry.iconSvgInline } })];\n }, proxy: true } : null], null, true) }, [_vm._v(\" \" + _vm._s(entry.displayName) + \" \")]);\n }) : _vm._e(), !_vm.noMenu && _vm.menuEntriesNew.length > 0 ? [_c(\"NcActionSeparator\"), _c(\"NcActionCaption\", { attrs: { \"name\": _vm.t(\"Create new\") } }), _vm._l(_vm.menuEntriesNew, function(entry) {\n return _c(\"NcActionButton\", { key: entry.id, staticClass: \"upload-picker__menu-entry\", attrs: { \"icon\": entry.iconClass, \"close-after-click\": true, \"data-cy-upload-picker-menu-entry\": entry.id }, on: { \"click\": function($event) {\n return _vm.onClick(entry);\n } }, scopedSlots: _vm._u([entry.iconSvgInline ? { key: \"icon\", fn: function() {\n return [_c(\"NcIconSvgWrapper\", { attrs: { \"svg\": entry.iconSvgInline } })];\n }, proxy: true } : null], null, true) }, [_vm._v(\" \" + _vm._s(entry.displayName) + \" \")]);\n })] : _vm._e(), !_vm.noMenu && _vm.menuEntriesOther.length > 0 ? [_c(\"NcActionSeparator\"), _vm._l(_vm.menuEntriesOther, function(entry) {\n return _c(\"NcActionButton\", { key: entry.id, staticClass: \"upload-picker__menu-entry\", attrs: { \"icon\": entry.iconClass, \"close-after-click\": true, \"data-cy-upload-picker-menu-entry\": entry.id }, on: { \"click\": function($event) {\n return _vm.onClick(entry);\n } }, scopedSlots: _vm._u([entry.iconSvgInline ? { key: \"icon\", fn: function() {\n return [_c(\"NcIconSvgWrapper\", { attrs: { \"svg\": entry.iconSvgInline } })];\n }, proxy: true } : null], null, true) }, [_vm._v(\" \" + _vm._s(entry.displayName) + \" \")]);\n })] : _vm._e()], 2), _c(\"div\", { directives: [{ name: \"show\", rawName: \"v-show\", value: _vm.isUploading, expression: \"isUploading\" }], staticClass: \"upload-picker__progress\" }, [_c(\"NcProgressBar\", { attrs: { \"aria-label\": _vm.t(\"Upload progress\"), \"aria-describedby\": _vm.progressTimeId, \"error\": _vm.hasFailure, \"value\": _vm.progress, \"size\": \"medium\" } }), _c(\"p\", { attrs: { \"id\": _vm.progressTimeId } }, [_vm._v(\" \" + _vm._s(_vm.timeLeft) + \" \")])], 1), _vm.isUploading ? _c(\"NcButton\", { staticClass: \"upload-picker__cancel\", attrs: { \"type\": \"tertiary\", \"aria-label\": _vm.t(\"Cancel uploads\"), \"data-cy-upload-picker-cancel\": \"\" }, on: { \"click\": _vm.onCancel }, scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_c(\"IconCancel\", { attrs: { \"size\": 20 } })];\n }, proxy: true }], null, false, 3076329829) }) : _vm._e(), _c(\"input\", { ref: \"input\", staticClass: \"hidden-visually\", attrs: { \"accept\": _vm.accept?.join?.(\", \"), \"multiple\": _vm.multiple, \"data-cy-upload-picker-input\": \"\", \"type\": \"file\" }, on: { \"change\": _vm.onPick } })], 1) : _vm._e();\n};\nvar _sfc_staticRenderFns = [];\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n \"a005e528\"\n);\nconst UploadPicker = __component__.exports;\nfunction getUploader(isPublic = isPublicShare(), forceRecreate = false) {\n if (forceRecreate || window._nc_uploader === void 0) {\n window._nc_uploader = new Uploader(isPublic);\n }\n return window._nc_uploader;\n}\nfunction upload(destinationPath, file) {\n const uploader = getUploader();\n uploader.upload(destinationPath, file);\n return uploader;\n}\nasync function openConflictPicker(dirname, conflicts, content, options) {\n const ConflictPicker = defineAsyncComponent(() => import(\"./ConflictPicker-B5Kju9IA.mjs\"));\n return new Promise((resolve, reject) => {\n const picker = new Vue({\n name: \"ConflictPickerRoot\",\n render: (h) => h(ConflictPicker, {\n props: {\n dirname,\n conflicts,\n content,\n recursiveUpload: options?.recursive === true\n },\n on: {\n submit(results) {\n resolve(results);\n picker.$destroy();\n picker.$el?.parentNode?.removeChild(picker.$el);\n },\n cancel(error) {\n reject(error ?? new Error(\"Canceled\"));\n picker.$destroy();\n picker.$el?.parentNode?.removeChild(picker.$el);\n }\n }\n })\n });\n picker.$mount();\n document.body.appendChild(picker.$el);\n });\n}\nfunction hasConflict(files, content) {\n return getConflicts(files, content).length > 0;\n}\nfunction getConflicts(files, content) {\n const contentNames = content.map((node) => node.basename);\n const conflicts = files.filter((node) => {\n const name = \"basename\" in node ? node.basename : node.name;\n return contentNames.indexOf(name) !== -1;\n });\n return conflicts;\n}\nexport {\n Status$1 as S,\n UploadPicker as U,\n isFileSystemEntry as a,\n n as b,\n getConflicts as c,\n Upload as d,\n Uploader as e,\n Status as f,\n getUploader as g,\n hasConflict as h,\n isFileSystemFileEntry as i,\n logger as l,\n normalizeComponent as n,\n openConflictPicker as o,\n t,\n upload 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=\" + {\"1762\":\"5ba189053d6361de1779\",\"5706\":\"3153330af47fc26a725a\",\"6013\":\"e7f3ac037d97a2a368e6\",\"6127\":\"94ece8c4b3588e75f3c1\",\"6423\":\"c45d3b4e1188c5e20b47\"}[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 = 2882;","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 && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\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\t2882: 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__(49664)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","pinia","createPinia","Vue","use","Router","originalPush","prototype","push","to","onComplete","onAbort","call","this","catch","err","mode","base","generateUrl","linkActiveClass","routes","path","redirect","name","params","view","props","stringifyQuery","query","result","queryString","stringify","replace","RouterService","constructor","router","_defineProperty","currentRoute","_router","goTo","arguments","length","undefined","goToRoute","emits","title","type","String","fillColor","default","size","Number","_vm","_c","_self","_b","staticClass","attrs","on","$event","$emit","$attrs","_v","_s","_e","throttle","delay","callback","options","timeoutID","_ref","_ref$noTrailing","noTrailing","_ref$noLeading","noLeading","_ref$debounceMode","debounceMode","cancelled","lastExec","clearExistingTimeout","clearTimeout","wrapper","_len","arguments_","Array","_key","self","elapsed","Date","now","exec","apply","clear","setTimeout","cancel","_ref2$upcomingOnly","upcomingOnly","getLoggerBuilder","setApp","detectUser","build","components","ChartPie","NcAppNavigationItem","NcProgressBar","data","loadingStorageStats","storageStats","loadState","computed","storageStatsTitle","usedQuotaByte","formatFileSize","used","quotaByte","quota","t","storageStatsTooltip","relative","beforeMount","setInterval","throttleUpdateStorageStats","subscribe","mounted","free","showStorageFullWarning","methods","debounceUpdateStorageStats","_ref$atBegin","atBegin","event","updateStorageStats","response","axios","get","Error","error","logger","showError","translate","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","class","stopPropagation","preventDefault","slot","Math","min","el","Function","required","$el","appendChild","userConfig","show_hidden","crop_image_previews","sort_favorites_first","sort_folders_first","grid_view","useUserConfigStore","userConfigStore","defineStore","state","actions","onUpdate","key","value","update","put","emit","store","_initialized","Clipboard","NcAppSettingsDialog","NcAppSettingsSection","NcCheckboxRadioSwitch","NcInputField","Setting","open","Boolean","setup","settings","window","OCA","Files","Settings","webdavUrl","generateRemoteUrl","encodeURIComponent","getCurrentUser","uid","webdavDocs","appPasswordUrl","webdavUrlCopied","enableGridView","forEach","setting","beforeDestroy","close","onClose","setConfig","copyCloudId","document","querySelector","select","navigator","clipboard","writeText","showSuccess","folder_tree","_l","target","scopedSlots","_u","fn","proxy","useNavigation","navigation","getNavigation","views","shallowRef","currentView","active","onUpdateActive","detail","onUpdateViews","triggerRef","onMounted","addEventListener","onUnmounted","removeEventListener","viewConfig","useViewConfigStore","getters","getConfig","getConfigs","setSortingBy","toggleSortingDirection","newDirection","sorting_direction","viewConfigStore","defineComponent","Fragment","NcIconSvgWrapper","parent","Object","level","currentViews","values","reduce","acc","filter","dir","startsWith","id","style","hasChildViews","useExactRouteMatching","generateToNavigation","isExpanded","expanded","onOpen","loadChildViews","filterView","viewMap","fromEntries","entries","viewId","_views","_setupProxy","loading","iconClass","sticky","icon","loaded","staticStyle","FilenameFilter","FileListFilter","super","updateQuery","nodes","queryParts","searchQuery","toLocaleLowerCase","split","node","displayname","every","part","includes","trim","filterUpdated","chips","text","onclick","updateChips","dispatchTypedEvent","CustomEvent","useFiltersStore","filters","filtersChanged","activeChips","flat","sortedFilters","sort","a","b","order","filtersWithUI","addFilter","onFilterUpdateChips","onFilterUpdate","debug","removeFilter","filterId","index","findIndex","splice","init","getFileListFilters","collator","Intl","Collator","getLanguage","getCanonicalLocale","numeric","usage","IconCog","FilesNavigationItem","NavigationQuota","NcAppNavigation","NcAppNavigationList","NcAppNavigationSearch","SettingsModal","filtersStore","ref","filenameFilter","registerFileListFilter","unregisterFileListFilter","watchThrottled","useFilenameFilter","settingsOpened","currentViewId","$route","map","compare","watch","newView","oldView","find","showView","created","loadExpandedViews","_ref2","viewConfigs","viewsToLoad","_ref3","config","_ref4","$navigation","Sidebar","setActive","openSettings","onSettingsClose","model","$$v","expression","action","FileAction","displayName","iconSvgInline","InformationSvg","enabled","isPublicShare","root","permissions","Permission","NONE","setActiveTab","OCP","fileid","useRouteParameters","route","$root","_$route","run","assign","$router","afterEach","useRoute","directory","fileId","parseInt","isNaN","openFile","openfile","client","davGetClient","fetchNode","async","propfindPayload","davGetDefaultPropfind","stat","davRootPath","details","davResultToNode","usePathsStore","files","useFilesStore","pathsStore","paths","getPath","service","addPath","payload","source","deletePath","delete","onDeletedNode","FileType","Folder","dirname","getRoot","children","Set","_children","parentSource","parentFolder","getNode","onCreatedNode","add","fileStore","roots","getNodes","sources","getNodesById","getNodesByPath","folder","updateNodes","deleteNodes","setRoot","onUpdatedNode","Promise","all","then","n","useSelectionStore","selected","lastSelection","lastSelectedIndex","set","selection","setLastIndex","reset","uploader","useUploaderStore","getUploader","queue","Directory","File","contents","_contents","_computeDirectorySize","lastModified","_computeDirectoryMtime","file","entry","traverseTree","isFile","resolve","reject","readDirectory","dirReader","createReader","getEntries","readEntries","results","createDirectoryIfNotExists","davClient","exists","absolutePath","createDirectory","recursive","resolveConflict","destination","conflicts","basename","uploads","renamed","openConflictPicker","showInfo","info","console","sharePermissions","getQueue","PQueue","concurrency","MoveCopyAction","canMove","minPermission","ALL","DELETE","canCopy","JSON","parse","attributes","some","attribute","scope","canDownload","CREATE","resultToNode","getContents","join","controller","AbortController","CancelablePromise","onCancel","abort","contentsResponse","getDirectoryContents","includeSelf","signal","slice","filename","getActionForNodes","MOVE_OR_COPY","MOVE","COPY","handleCopyMoveNodeTo","method","overwrite","NodeStatus","LOADING","actionFinished","toast","isHTML","timeout","TOAST_PERMANENT_TIMEOUT","onRemove","hideToast","createLoadingNotification","copySuffix","currentPath","destinationPath","otherNodes","getUniqueName","suffix","ignoreFileExtension","copyFile","hasConflict","moveFile","isAxiosError","status","message","openFilePickerForAction","promise","withResolvers","fileIDs","getFilePickerBuilder","allowDirectories","setFilter","setMimeTypeFilter","setMultiSelect","startAt","setButtonFactory","buttons","dirnames","label","escape","sanitize","CopyIconSvg","disabled","FolderMoveSvg","pick","FilePickerClosed","e","execBatch","promises","dataTransferToFileTree","items","item","kind","getAsEntry","webkitGetAsEntry","warned","fileTree","DataTransferItem","warn","getAsFile","showWarning","onDropExternalFiles","uploadDirectoryContents","relativePath","joinPaths","upload","pause","start","errors","allSettled","onDropInternalFiles","isCopy","useDragAndDropStore","dragging","filesListWidth","fileListEl","clientWidth","$resizeObserver","ResizeObserver","contentRect","width","observe","disconnect","NcBreadcrumbs","NcBreadcrumb","mixins","filesListWidthMixin","draggingStore","filesStore","selectionStore","uploaderStore","dirs","sections","getFileSourceFromPath","getNodeFromSource","exact","getDirDisplayName","getTo","disableDrop","isUploadInProgress","wrapUploadProgressBar","viewIcon","selectedFiles","draggingFiles","onClick","onDragOver","dataTransfer","ctrlKey","dropEffect","onDrop","canDrop","button","titleForSection","section","ariaForSection","_t","nativeOn","getSummaryFor","fileCount","folderCount","useActionsMenuStore","opened","useRenamingStore","renamingStore","renamingNode","newName","rename","oldName","oldEncodedSource","encodedSource","url","headers","Destination","Overwrite","oldSource","$reset","extend","FileMultipleIcon","FolderIcon","isSingleNode","isSingleFolder","summary","totalSize","total","$refs","previewImg","replaceChildren","preview","parentNode","cloneNode","$nextTick","Preview","DragAndDropPreview","directive","vOnClickOutside","getFileActions","NcFile","Node","isMtimeAvailable","compact","provide","defaultFileAction","enabledFileActions","dragover","gridMode","uniqueId","str","hash","i","charCodeAt","hashCode","isLoading","extension","extname","isSelected","isRenaming","isRenamingSmallScreen","isActive","currentFileId","isFailedSource","FAILED","canDrag","UPDATE","openedMenu","actionsMenuStore","toString","mtimeOpacity","maxOpacityTime","mtime","getTime","ratio","round","color","resetState","getElementById","removeProperty","onRightClick","closest","getBoundingClientRect","setProperty","max","clientX","left","clientY","top","isMoreThanOneSelected","execDefaultAction","metaKeyPressed","metaKey","READ","downloadAttribute","isDownloadable","currentDir","openDetailsIfAvailable","sidebarAction","onDragLeave","currentTarget","contains","relatedTarget","onDragStart","clearData","image","$mount","body","$on","$off","getDragAndDropPreview","setDragImage","onDragEnd","render","updateRootElement","element","ArrowLeftIcon","CustomElementRender","NcActionButton","NcActions","NcActionSeparator","NcLoadingIcon","inject","openedSubmenu","enabledInlineActions","inline","enabledRenderActions","renderInline","enabledMenuActions","DefaultType","HIDDEN","topActionsIds","enabledSubmenuActions","arr","getBoundariesElement","mountType","actionDisplayName","onActionClick","isSubmenu","$set","success","isMenu","onBackToMenuClick","menuAction","focus","refInFor","keyboardStore","altKey","shiftKey","onEvent","useKeyboardStore","ariaLabel","loadingLabel","onSelectionChange","newSelectedIndex","isAlreadySelected","end","filesToSelect","resetSelection","indexOf","_k","keyCode","getFilenameValidity","validateFilename","InvalidFilenameError","reason","InvalidFilenameErrorReason","Character","char","segment","ReservedName","Extension","match","NcTextField","renameLabel","linkTo","is","tabindex","immediate","handler","renaming","startRenaming","input","renameInput","validity","checkIfNodeExists","setCustomValidity","reportValidity","setSelectionRange","dispatchEvent","Event","stopRenaming","onRename","renameForm","checkValidity","nameContainter","directives","rawName","tag","domProps","q","x","r","f","pow","h","trunc","M","F","abs","d","z","L","floor","l","j","C","m","u","o","substring","c","s","Uint8ClampedArray","y","B","R","w","P","G","cos","PI","T","V","I","E","StarSvg","setAttribute","AccountGroupIcon","AccountPlusIcon","CollectivesIcon","FavoriteIcon","FileIcon","FolderOpenIcon","KeyIcon","LinkIcon","NetworkIcon","TagIcon","isPublic","publicSharingToken","getSharingToken","backgroundFailed","backgroundLoaded","isFavorite","favorite","cropPreviews","previewUrl","token","URL","location","origin","searchParams","etag","href","fileOverlay","PlayCircleIcon","folderOverlay","shareTypes","ShareType","Link","Email","hasBlurhash","canvas","drawBlurhash","src","onBackgroundLoad","onBackgroundError","height","pixels","decode","ctx","getContext","imageData","createImageData","putImageData","_m","FileEntryActions","FileEntryCheckbox","FileEntryName","FileEntryPreview","NcDateTime","FileEntryMixin","isSizeAvailable","rowListeners","dragstart","contextmenu","dragleave","dragend","drop","columns","sizeOpacity","mtimeTitle","moment","format","_g","column","inheritAttrs","header","currentFolder","updated","mount","View","classForColumn","mapState","sortingMode","sorting_mode","defaultSortKey","isAscSorting","sortingDirection","toggleSortBy","MenuDown","MenuUp","NcButton","filesSortingMixin","FilesListTableHeaderButton","selectAllBind","checked","isAllSelected","indeterminate","isSomeSelected","selectedNodes","isNoneSelected","ariaSortForMode","onToggleAll","dataComponent","dataKey","dataSources","extraProps","scrollToIndex","caption","beforeHeight","headerHeight","tableHeight","resizeObserver","isReady","bufferItems","columnCount","itemHeight","itemWidth","rowCount","ceil","startIndex","shownItems","renderedItems","oldItemsKeys","$_recycledPool","unusedKeys","keys","pop","random","substr","totalRowCount","tbodyStyle","isOverScrolled","lastIndex","hiddenAfterItems","paddingTop","paddingBottom","minHeight","scrollTo","oldColumnCount","before","thead","debounce","clientHeight","onScroll","passive","targetRow","scrollTop","_onScrollHandle","requestAnimationFrame","topScroll","$scopedSlots","enabledActions","areSomeNodesLoading","inlineActions","selectionSources","failedSources","_defineComponent","__name","__props","filterStore","visualFilters","filterElements","watchEffect","__sfc","NcAvatar","NcChip","_setup","chip","user","FileListFilters","FilesListHeader","FilesListTableFooter","FilesListTableHeader","VirtualList","FilesListTableHeaderActions","FileEntry","FileEntryGrid","getFileListHeaders","openFileId","sortedHeaders","defaultCaption","scrollToFile","handleOpenFile","unselectFile","openSidebarForFile","unsubscribe","documentElement","defaultAction","at","isForeignFile","types","tableElement","table","tableTop","tableBottom","count","TrayArrowDownIcon","canUpload","isQuotaExceeded","cantUploadLabel","resetDragOver","mainContent","onContentDrop","lastUpload","findLast","UploadStatus","webkitRelativePath","isSharingEnabled","getCapabilities","files_sharing","BreadCrumbs","DragAndDropNotice","FilesListVirtual","ListViewIcon","NcAppContent","NcEmptyContent","PlusIcon","UploadPicker","ViewGridIcon","IconAlertCircleOutline","IconReload","forbiddenCharacters","Type","dirContentsFiltered","getContent","normalizedPath","normalize","pageHeading","dirContents","dirContentsSorted","customColumn","reverse","sortNodes","sortFavoritesFirst","sortFoldersFirst","sortingOrder","isEmptyDir","isRefreshing","toPreviousDir","shareTypesAttributes","shareButtonLabel","shareButtonType","SHARE_TYPE_LINK","SHARE_TYPE_USER","gridViewButtonLabel","canShare","SHARE","showCustomEmptyView","emptyView","show","customEmptyView","fetchContent","newDir","oldDir","filesListVirtual","filterDirContent","onNodeDeleted","unmounted","fatal","isWebDAVClientError","humanizeWebDAVError","onUpload","onUploadFail","CANCELLED","doc","DOMParser","parseFromString","getElementsByTagName","textContent","openSharingSidebar","toggleGridView","emptyTitle","emptyCaption","NcContent","FilesList","Navigation","__webpack_nonce__","getCSPNonce","PiniaVuePlugin","observable","_settings","register","_name","_el","_open","_close","FilesApp","___CSS_LOADER_EXPORT___","module","NewMenuEntryCategory","NewMenuEntryCategory2","NewFileMenu","_entries","registerEntry","validateEntry","category","unregisterEntry","entryIndex","getEntryIndex","context","DefaultType2","_action","validateAction","_nc_fileactions","_nc_filelistheader","Permission2","defaultDavProperties","defaultDavNamespaces","nc","oc","ocs","getDavProperties","_nc_dav_properties","prop","getDavNameSpaces","_nc_dav_namespaces","ns","davGetRecentSearch","FileType2","isDavRessource","davService","validateData","crtime","mime","owner","NodeStatus2","_data","_attributes","_knownDavService","readonlyAttributes","getOwnPropertyDescriptors","Reflect","deleteProperty","receiver","Proxy","firstMatch","pathname","updateMtime","move","oldBasename","basename2","TypeError","davRemoteURL","davGetRemoteURL","remoteURL","setHeaders","requesttoken","patch","headers2","fetch","getFavoriteNodes","davRoot","filesRoot","userId","permString","davParsePermissions","nodeData","lastmod","getcontentlength","hasPreview","InvalidFilenameErrorReason2","cause","capabilities","forbidden_filename_characters","_oc_config","forbidden_filenames_characters","character","forbidden_filenames","endOfBasename","forbidden_filename_basenames","forbiddenFilenameExtensions","forbidden_filename_extensions","endsWith","otherNames","opts","ext","humanList","humanListBinary","skipSmallSizes","binaryPrefixes","base1000","log","readableFormat","relativeSize","toFixed","parseFloat","toLocaleString","toISOString","sortingOptions","collection","identifiers2","orders","sorting","_","identifier","orderBy","v","lastIndexOf","_currentView","search","remove","_nc_navigation","Column","_column","isValidColumn","getDefaultExportFromCjs","__esModule","hasOwnProperty","validator$2","util$3","exports","nameStartChar","nameRegexp","regexName","RegExp","isExist","isEmptyObject","obj","merge","arrayMode","len","getValue","isName","string","getAllMatches","regex","matches","allmatches","util$2","defaultOptions$2","allowBooleanAttributes","unpairedTags","isWhiteSpace","readPI","xmlData","tagname","getErrorObject","getLineNumberForPosition","readCommentAndCDATA","angleBracketsCount","validate","tags","tagFound","reachedRoot","tagStartPos","closingTag","tagName","msg","readAttributeStr","attrStr","attrStrStart","isValid","validateAttributeString","code","line","tagClosed","otg","openPos","col","afterAmp","validateAmpersand","t2","doubleQuote","singleQuote","startChar","validAttrStrRegxp","attrNames","getPositionFromMatch","attrName","validateAttrName","re2","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","prefix","charAt","attrsRegx","buildAttributesMap","oldVal","aName","newVal","attrCollection","parseXml","xmlObj","currentNode","textData","closeIndex","findClosingIndex","colonIndex","saveTextToParentTag","lastTagName","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","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","attr","attrVal","suppressBooleanAttributes","textValue","buildFromOrderedJs","jArray","oneListGroup","Builder","isAttribute","attrPrefixLen","processTextOrObjNode","indentate","tagEndChar","newLine","object","j2x","buildTextValNode","buildObjectNode","repeat","jObj","arrayNodeName","buildAttrPairStr","arrLen","listTagVal","listTagAttr","Ks","closeTag","tagEndExp","piClosingChar","fxp","XMLParser","validationOption","orderedObjParser","orderedResult","addEntity","XMLValidator","XMLBuilder","_view","isValidView","jsonObject","parser","toLowerCase","isSvg","debug_1","process","env","NODE_DEBUG","args","constants","MAX_LENGTH","MAX_SAFE_COMPONENT_LENGTH","MAX_SAFE_BUILD_LENGTH","MAX_LENGTH$1","MAX_SAFE_INTEGER","RELEASE_TYPES","SEMVER_SPEC_VERSION","FLAG_INCLUDE_PRERELEASE","FLAG_LOOSE","re$1","MAX_SAFE_COMPONENT_LENGTH2","MAX_SAFE_BUILD_LENGTH2","MAX_LENGTH2","debug2","re","safeRe","LETTERDASHNUMBER","safeRegexReplacements","createToken","isGlobal","safe","makeSafeRegex","NUMERICIDENTIFIER","NUMERICIDENTIFIERLOOSE","NONNUMERICIDENTIFIER","PRERELEASEIDENTIFIER","PRERELEASEIDENTIFIERLOOSE","BUILDIDENTIFIER","MAINVERSION","PRERELEASE","BUILD","FULLPLAIN","MAINVERSIONLOOSE","PRERELEASELOOSE","LOOSEPLAIN","XRANGEIDENTIFIER","XRANGEIDENTIFIERLOOSE","GTLT","XRANGEPLAIN","XRANGEPLAINLOOSE","COERCEPLAIN","COERCE","COERCEFULL","LONETILDE","tildeTrimReplace","LONECARET","caretTrimReplace","comparatorTrimReplace","reExports","looseOption","freeze","loose","emptyOpts","compareIdentifiers$1","anum","bnum","identifiers","compareIdentifiers","rcompareIdentifiers","parseOptions","semver","SemVer","version","includePrerelease","LOOSE","FULL","raw","major","minor","prerelease","other","compareMain","comparePre","compareBuild","inc","release","identifierBase","SemVer$1","valid$1","throwErrors","er","SemVer2","major$1","ProxyBus","bus","bus2","getVersion","SimpleBus","handlers","Map","concat","OC","_eventBus","_nc_event_bus","_nc_filelist_filters","has","getNewFileMenuEntries","_nc_newfilemenu","localeCompare","sensitivity","retries","uploadData","uploadData2","onUploadProgress","destinationFile","Blob","request","retryDelay","retryCount","getChunk","getMaxChunksSize","fileSize","maxChunkSize","appConfig","max_chunk_size","minimumChunkSize","Status$1","Status2","Upload","_source","_file","_isChunked","_chunks","_size","_uploaded","_startTime","_status","_controller","_response","chunked","chunks","isChunked","startTime","uploaded","isFileSystemFileEntry","FileSystemFileEntry","isFileSystemEntry","FileSystemEntry","_originalName","_path","sum","latest","originalName","from","getChild","rootPath","FileSystemDirectoryEntry","reader","filePath","relPath","gtBuilder","detectLocale","addTranslation","locale","json","gt","ngettext","bind","gettext","Status","Uploader","_destinationFolder","_isPublic","_customHeaders","_uploadQueue","_jobQueue","_queueSize","_queueProgress","_queueStatus","_notifiers","destinationFolder","addListener","maxChunksSize","customHeaders","structuredClone","setCustomHeader","deleteCustomerHeader","updateStats","progress","upload2","partialSum","addNotifier","notifier","_notifyAll","batchUpload","rootFolder","files2","UPLOADING","uploadDirectory","FINISHED","folderPath","currentUpload","selectedForUpload","directories","fileHandle","encodedDestinationFile","resolve2","disabledChunkUpload","blob","bytes","tempUrl","initChunkWorkspace","chunksQueue","chunk","bufferStart","bufferEnd","normalizeComponent","scriptExports","render7","staticRenderFns","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","_compiled","_scopeId","IconCancel","IconFolderUpload","IconPlus","IconUpload","InvalidFilenameDialog","NcDialog","NcNoteCard","validationError","isValidName","isInvalidFileType","canRename","dialogButtons","skip","trimEnd","getErrorText","textfield","NcActionCaption","accept","multiple","noMenu","allowFolders","content","progressTimeId","eta","timeLeft","newFileMenuEntries","uploadManager","menuEntriesUpload","UploadFromDevice","menuEntriesNew","CreateNew","menuEntriesOther","Other","canUploadFolders","createElement","totalQueueSize","uploadedQueueSize","hasFailure","isUploading","isAssembling","ASSEMBLING","isPaused","PAUSED","buttonLabel","buttonName","setDestination","updateStatus","report","onUploadCompletion","onTriggerPick","uploadFolders","webkitdirectory","click","showInvalidFileNameDialog","rest","handleConflicts","getConflicts","filesToUpload","defineProperty","onPick","finally","resetForm","form","estimate","Infinity","date","setSeconds","time","seconds","forceRecreate","_nc_uploader","ConflictPicker","picker","recursiveUpload","submit","$destroy","removeChild","contentNames","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","O","chunkIds","priority","notFulfilled","fulfilled","getter","definition","enumerable","chunkId","g","globalThis","done","script","needAttach","scripts","getAttribute","charset","onScriptComplete","prev","onerror","onload","doneFns","head","Symbol","toStringTag","nmd","scriptUrl","importScripts","currentScript","toUpperCase","p","baseURI","installedChunks","installedChunkData","errorType","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}
|