From 4fbf9b9e17c8ecdebbf376971bdc00e09fe2fcb1 Mon Sep 17 00:00:00 2001 From: Peter Ringelmann Date: Fri, 24 Apr 2026 11:05:14 +0200 Subject: [PATCH] chore: rebuild frontend assets -e Signed-off-by: Peter Ringelmann --- dist/files-main.js | 4 ++-- dist/files-main.js.map | 2 +- dist/settings-users-3239.js | 4 ++-- dist/settings-users-3239.js.map | 2 +- dist/settings-vue-settings-apps-users-management.js | 4 ++-- dist/settings-vue-settings-apps-users-management.js.map | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/dist/files-main.js b/dist/files-main.js index 82219924d48..ca7498cd5d1 100644 --- a/dist/files-main.js +++ b/dist/files-main.js @@ -1,2 +1,2 @@ -(()=>{var e,s,i,n={23638(e,s,i){"use strict";var n=i(21777),a=i(10810),o=i(85471),r=i(32505),l=i(22378),d=i(85168),c=i(61338),m=i(35810),g=i(81222),u=i(53334),f=i(71225),p=i(40715),h=i(66860),v=i(22720),w=i(43627),A={name:"teleport",props:{to:{type:String,required:!0},where:{type:String,default:"after"},disabled:Boolean},data:function(){return{nodes:[],waiting:!1,observer:null,parent:null}},watch:{to:"maybeMove",where:"maybeMove",disabled:function(e){var t=this;e?(this.disable(),this.$nextTick(function(){t.teardownObserver()})):(this.bootObserver(),this.move())}},mounted:function(){this.nodes=Array.from(this.$el.childNodes),this.disabled||this.bootObserver(),this.maybeMove()},beforeDestroy:function(){this.nodes=this.getComponentChildrenNode(),this.disable(),this.teardownObserver()},computed:{classes:function(){return this.disabled?["teleporter"]:["teleporter","hidden"]}},methods:{maybeMove:function(){this.disabled||this.move()},move:function(){if(this.waiting=!1,this.parent=document.querySelector(this.to),!this.parent)return this.disable(),void(this.waiting=!0);"before"===this.where?this.parent.prepend(this.getFragment()):this.parent.appendChild(this.getFragment())},disable:function(){this.$el.appendChild(this.getFragment()),this.parent=null},getFragment:function(){var e=document.createDocumentFragment();return this.nodes.forEach(function(t){return e.appendChild(t)}),e},onMutations:function(e){for(var t=this,s=!1,i=0;i0&&(s=!0)}s&&this.move()},bootObserver:function(){var e=this;this.observer||(this.observer=new MutationObserver(function(t){return e.onMutations(t)}),this.observer.observe(document.body,{childList:!0,subtree:!0,attributes:!1,characterData:!1}),this.childObserver||(this.childObserver=new MutationObserver(function(t){t.find(function(t){return t.target===e.$el})&&(e.nodes.forEach(function(e){return e.parentNode&&e.parentNode.removeChild(e)}),e.nodes=e.getComponentChildrenNode(),e.maybeMove())}),this.childObserver.observe(this.$el,{childList:!0,subtree:!1,attributes:!1,characterData:!1})))},teardownObserver:function(){this.observer&&(this.observer.disconnect(),this.observer=null),this.childObserver&&(this.childObserver.disconnect(),this.childObserver=null)},getComponentChildrenNode:function(){return this.$vnode.componentOptions.children.map(function(e){return e.elm}).filter(function(e){return e})}}};function b(e,t,s,i,n,a,o,r,l,d){"boolean"!=typeof o&&(l=r,r=o,o=!1);var c,m="function"==typeof s?s.options:s;if(e&&e.render&&(m.render=e.render,m.staticRenderFns=e.staticRenderFns,m._compiled=!0,n&&(m.functional=!0)),i&&(m._scopeId=i),a?(c=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),t&&t.call(this,l(e)),e&&e._registeredComponents&&e._registeredComponents.add(a)},m._ssrRegister=c):t&&(c=o?function(e){t.call(this,d(e,this.$root.$options.shadowRoot))}:function(e){t.call(this,r(e))}),c)if(m.functional){var g=m.render;m.render=function(e,t){return c.call(t),g(e,t)}}else{var u=m.beforeCreate;m.beforeCreate=u?[].concat(u,c):[c]}return s}var C,y="undefined"!=typeof navigator&&/msie [6-9]\\b/.test(navigator.userAgent.toLowerCase());function k(e){return function(e,t){return function(e,t){var s=y?t.media||"default":e,i=_[s]||(_[s]={ids:new Set,styles:[]});if(!i.ids.has(e)){i.ids.add(e);var n=t.source;if(t.map&&(n+="\n/*# sourceURL="+t.map.sources[0]+" */",n+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(t.map))))+" */"),i.element||(i.element=document.createElement("style"),i.element.type="text/css",t.media&&i.element.setAttribute("media",t.media),void 0===C&&(C=document.head||document.getElementsByTagName("head")[0]),C.appendChild(i.element)),"styleSheet"in i.element)i.styles.push(n),i.element.styleSheet.cssText=i.styles.filter(Boolean).join("\n");else{var a=i.ids.size-1,o=document.createTextNode(n),r=i.element.childNodes;r[a]&&i.element.removeChild(r[a]),r.length?i.element.insertBefore(o,r[a]):i.element.appendChild(o)}}}(e,t)}}var _={},x=A,S=function(){var e=this,t=e.$createElement;return(e._self._c||t)("div",{class:e.classes},[e._t("default")],2)};S._withStripped=!0;var T=b({render:S,staticRenderFns:[]},function(e){e&&e("data-v-50f4b45b_0",{source:".hidden[data-v-50f4b45b] {\n visibility: hidden;\n display: none;\n}\n\n/*# sourceMappingURL=Teleport.vue.map */",map:{version:3,sources:["/home/shodan/Projects/vue2-teleport/src/Teleport.vue","Teleport.vue"],names:[],mappings:"AA2LA;EACA,kBAAA;EACA,aAAA;AC1LA;;AAEA,uCAAuC",file:"Teleport.vue",sourcesContent:["\n\n\\n\\n\\n\",\".hidden {\\n visibility: hidden;\\n display: none;\\n}\\n\\n/*# sourceMappingURL=Teleport.vue.map */\"]}, media: undefined });\n\n };\n /* scoped */\n var __vue_scope_id__ = \"data-v-50f4b45b\";\n /* module identifier */\n var __vue_module_identifier__ = undefined;\n /* functional template */\n var __vue_is_functional_template__ = false;\n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n var __vue_component__ = /*#__PURE__*/normalizeComponent(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n createInjector,\n undefined,\n undefined\n );\n\n// Taken from https://vuejs.org/v2/cookbook/packaging-sfc-for-npm.html\n\n// Declare install function executed by Vue.use()\nfunction install (Vue) {\n if (install.installed) { return; }\n\n install.installed = true;\n Vue.component('Teleport', __vue_component__);\n}\n\n// Create module definition for Vue.use()\nvar plugin = {\n install: install,\n};\n\n// Auto-install when vue is found (eg. in browser via ","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./AlertCircleOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./AlertCircleOutline.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./AlertCircleOutline.vue?vue&type=template&id=da40788e\"\nimport script from \"./AlertCircleOutline.vue?vue&type=script&lang=js\"\nexport * from \"./AlertCircleOutline.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 alert-circle-outline-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,15H13V17H11V15M11,7H13V13H11V7M12,2C6.47,2 2,6.5 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,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!./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\"","\n\n","import { render, staticRenderFns } from \"./FormatListBulletedSquare.vue?vue&type=template&id=64cece03\"\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 }","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\"","\n\n","import { render, staticRenderFns } from \"./Reload.vue?vue&type=template&id=39a07256\"\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 }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ViewGridOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ViewGridOutline.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./ViewGridOutline.vue?vue&type=template&id=0c2dec16\"\nimport script from \"./ViewGridOutline.vue?vue&type=script&lang=js\"\nexport * from \"./ViewGridOutline.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-outline-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 11H11V3H3M5 5H9V9H5M13 21H21V13H13M15 15H19V19H15M3 21H11V13H3M5 15H9V19H5M13 3V11H21V3M19 9H15V5H19Z\"}},[(_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('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.isNarrow,\"force-menu\":\"\",\"open\":_vm.isMenuOpen,\"title\":_vm.titleForSection(index, section),\"aria-description\":_vm.ariaForSection(section)},on:{\"update:open\":function($event){_vm.isMenuOpen=$event},\"drop\":function($event){return _vm.onDrop($event, section.dir)}},nativeOn:{\"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,(index === _vm.sections.length - 1)?{key:\"menu-icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"path\":_vm.isMenuOpen ? _vm.mdiChevronUp : _vm.mdiChevronDown}})]},proxy:true}:null,(index === _vm.sections.length - 1)?{key:\"default\",fn:function(){return [(_vm.canShare)?_c('NcActionButton',{attrs:{\"close-after-click\":\"\"},on:{\"click\":_vm.openSharingSidebar},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"path\":_vm.mdiAccountPlus}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Share'))+\"\\n\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('NcActionButton',{attrs:{\"close-after-click\":\"\"},on:{\"click\":function($event){return _vm.$emit('reload')}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"path\":_vm.mdiReload}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Reload content'))+\"\\n\\t\\t\\t\")])]},proxy:true}:null],null,true)},'NcBreadcrumb',section,false))}),1)\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 { computed, onMounted, readonly, ref } from 'vue';\n/** The element we observe */\nlet element;\n/** The current width of the element */\nconst width = ref(0);\nconst isWide = computed(() => width.value >= 1024);\nconst isMedium = computed(() => width.value >= 512 && width.value < 1024);\nconst isNarrow = computed(() => width.value < 512);\nconst observer = new ResizeObserver(([element]) => {\n if (!element) {\n return;\n }\n const contentBoxSize = element.contentBoxSize?.[0];\n if (contentBoxSize) {\n // use the newer `contentBoxSize` property if available\n width.value = contentBoxSize.inlineSize;\n }\n else {\n // fall back to `contentRect`\n width.value = element.contentRect.width;\n }\n});\n/**\n * Update the observed element if needed and reconfigure the observer\n */\nfunction updateObserver() {\n const el = document.querySelector('#app-content-vue') ?? document.body;\n if (el !== element) {\n // if already observing: stop observing the old element\n if (element) {\n observer.unobserve(element);\n }\n // observe the new element if needed\n observer.observe(el);\n element = el;\n }\n}\n/**\n * Get the reactive width of the file list\n */\nexport function useFileListWidth() {\n // Update the observer when the component is mounted (e.g. because this is the files app)\n onMounted(updateObserver);\n // Update the observer also in setup context, so we already have an initial value\n updateObserver();\n return {\n width: readonly(width),\n isWide,\n isMedium,\n isNarrow,\n };\n}\n","/*!\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getNavigation } from '@nextcloud/files';\nimport { computed, shallowRef } from 'vue';\nconst allViews = shallowRef([]);\nconst visibleViews = computed(() => allViews.value?.filter((view) => !view.hidden) ?? []);\nlet initialized = false;\n/**\n * Get all currently registered views.\n * Unline `Navigation.views` this is reactive and will update when new views are added or existing views are removed.\n */\nexport function useViews() {\n if (!initialized) {\n const navigation = getNavigation();\n navigation.addEventListener('update', () => {\n allViews.value = [...navigation.views];\n });\n allViews.value = [...navigation.views];\n initialized = true;\n }\n return allViews;\n}\n/**\n * Get all non-hidden views.\n */\nexport function useVisibleViews() {\n useViews();\n return visibleViews;\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 { loadState } from '@nextcloud/initial-state';\nimport { isPublicShare } from '@nextcloud/sharing/public';\nimport PQueue from 'p-queue';\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 function 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 = {}));\n/**\n * Check if the given nodes can be moved\n *\n * @param nodes - The nodes to check\n */\nexport function canMove(nodes) {\n const minPermission = nodes.reduce((min, node) => Math.min(min, node.permissions), Permission.ALL);\n return Boolean(minPermission & Permission.DELETE);\n}\n/**\n * Check if the given nodes can be downloaded\n *\n * @param nodes - The nodes to check\n */\nexport function 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}\n/**\n * Check if the given nodes can be copied\n *\n * @param nodes - The nodes to check\n */\nexport function 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","/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport FolderMoveSvg from '@mdi/svg/svg/folder-move-outline.svg?raw';\nimport CopyIconSvg from '@mdi/svg/svg/folder-multiple-outline.svg?raw';\nimport { FilePickerClosed, getFilePickerBuilder, openConflictPicker, showError, showLoading } from '@nextcloud/dialogs';\nimport { emit } from '@nextcloud/event-bus';\nimport { FileType, getUniqueName, NodeStatus, Permission } from '@nextcloud/files';\nimport { defaultRootPath, getClient, getDefaultPropfind, resultToNode } from '@nextcloud/files/dav';\nimport { t } from '@nextcloud/l10n';\nimport { getConflicts } from '@nextcloud/upload';\nimport { basename, join } from 'path';\nimport Vue from 'vue';\nimport { getContents } from '../services/Files.ts';\nimport { logger } from '../utils/logger.ts';\nimport { canCopy, canMove, getQueue, MoveCopyAction } from './moveOrCopyActionUtils.ts';\n/**\n * Exception to hint the user about something.\n * The message is intended to be shown to the user.\n */\nexport class HintException extends Error {\n}\nexport const ACTION_COPY_MOVE = 'move-copy';\nexport const action = {\n id: ACTION_COPY_MOVE,\n order: 15,\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(context) {\n return this.execBatch(context)[0];\n },\n async execBatch({ nodes, folder }) {\n const action = getActionForNodes(nodes);\n const target = await openFilePickerForAction(action, folder.path, nodes);\n // Handle cancellation silently\n if (target === false) {\n return nodes.map(() => null);\n }\n try {\n const result = await Array.fromAsync(handleCopyMoveNodesTo(nodes, target.destination, target.action));\n return result.map(() => true);\n }\n catch (error) {\n logger.error(`Failed to ${target.action} node`, { nodes, error });\n if (error instanceof HintException && !!error.message) {\n showError(error.message);\n // Silent action as we handle the toast\n return nodes.map(() => null);\n }\n // We need to keep the selection on error!\n // So we do not return null, and for batch action\n return nodes.map(() => false);\n }\n },\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 *\n * @param nodes The nodes to copy/move\n * @param destination The destination to copy/move the nodes to\n * @param method The method to use for the copy/move\n * @param overwrite Whether to overwrite the destination if it exists\n * @yields {AsyncGenerator} A promise that resolves when the copy/move is done\n */\nexport async function* handleCopyMoveNodesTo(nodes, 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 && nodes.some((node) => 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 (nodes.some((node) => `${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 const nameMapping = new Map();\n // Check for conflicts if we do not want to overwrite\n if (!overwrite) {\n const otherNodes = (await getContents(destination.path)).contents;\n const conflicts = getConflicts(nodes, otherNodes);\n const nodesToRename = [];\n if (conflicts.length > 0) {\n if (method === MoveCopyAction.MOVE) {\n // Let the user choose what to do with the conflicting files\n const content = otherNodes.filter((n) => conflicts.some((c) => c.basename === n.basename));\n const result = await openConflictPicker(destination.path, conflicts, content);\n if (!result) {\n // User cancelled\n return;\n }\n nodes = nodes.filter((n) => !result.skipped.includes(n));\n nodesToRename.push(...result.renamed);\n }\n else {\n // for COPY we always rename conflicting files\n nodesToRename.push(...conflicts);\n }\n const usedNames = [...otherNodes, ...nodes.filter((n) => !conflicts.includes(n))].map((n) => n.basename);\n for (const node of nodesToRename) {\n const newName = getUniqueName(node.basename, usedNames, { ignoreFileExtension: node.type === FileType.Folder });\n nameMapping.set(node.source, newName);\n usedNames.push(newName); // add the new name to avoid duplicates for following re-namimgs\n }\n }\n }\n const actionFinished = createLoadingNotification(method, nodes.map((node) => node.basename), destination.path);\n const queue = getQueue();\n try {\n for (const node of nodes) {\n // Set loading state\n Vue.set(node, 'status', NodeStatus.LOADING);\n yield queue.add(async () => {\n try {\n const client = getClient();\n const currentPath = join(defaultRootPath, node.path);\n const destinationPath = join(defaultRootPath, destination.path, nameMapping.get(node.source) ?? node.basename);\n if (method === MoveCopyAction.COPY) {\n await client.copyFile(currentPath, destinationPath);\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(destinationPath, {\n details: true,\n data: getDefaultPropfind(),\n });\n emit('files:node:created', resultToNode(data));\n }\n }\n else {\n await client.moveFile(currentPath, destinationPath);\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 logger.debug(`Error while trying to ${method === MoveCopyAction.COPY ? 'copy' : 'move'} node`, { node, error });\n if (error.response?.status === 412) {\n throw new HintException(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 HintException(t('files', 'The files are locked'));\n }\n else if (error.response?.status === 404) {\n throw new HintException(t('files', 'The file does not exist anymore'));\n }\n else if ('response' in error && error.response) {\n const parser = new DOMParser();\n const text = await error.response.text();\n const message = parser.parseFromString(text ?? '', 'text/xml')\n .querySelector('message')?.textContent;\n if (message) {\n throw new HintException(message);\n }\n }\n throw error;\n }\n finally {\n Vue.set(node, 'status', undefined);\n }\n });\n }\n }\n finally {\n actionFinished();\n }\n}\n/**\n * Return the action that is possible for the given nodes\n *\n * @param nodes The nodes to check against\n * @return The action that is possible for the given nodes\n */\nfunction 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 *\n * @param mode The move or copy mode\n * @param sources Names of the nodes that are copied / moved\n * @param destination Destination path\n * @return Function to hide the notification\n */\nfunction createLoadingNotification(mode, sources, destination) {\n const text = mode === MoveCopyAction.MOVE\n ? (sources.length === 1\n ? t('files', 'Moving \"{source}\" to \"{destination}\" …', { source: sources[0], destination })\n : t('files', 'Moving {count} files to \"{destination}\" …', { count: sources.length, destination }))\n : (sources.length === 1\n ? t('files', 'Copying \"{source}\" to \"{destination}\" …', { source: sources[0], destination })\n : t('files', 'Copying {count} files to \"{destination}\" …', { count: sources.length, destination }));\n const toast = showLoading(text);\n return () => toast && toast.hideToast();\n}\n/**\n * Open a file picker for the given action\n *\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 .setCanPick((n) => {\n const hasCreatePermissions = (n.permissions & Permission.CREATE) === Permission.CREATE;\n return hasCreatePermissions;\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 }, { escape: false, sanitize: false }) : t('files', 'Copy'),\n variant: 'primary',\n icon: CopyIconSvg,\n async callback(destination) {\n resolve({\n destination: destination[0],\n action: MoveCopyAction.COPY,\n });\n },\n });\n }\n // Invalid MOVE targets (but valid copy targets)\n if (dirnames.includes(path)) {\n // This file/folder is already in that directory\n return buttons;\n }\n if (paths.includes(path)) {\n // You cannot move a file/folder onto itself\n return buttons;\n }\n if (selection.some((node) => (node.permissions & Permission.CREATE) === 0)) {\n // Missing 'CREATE' permissions for selected destination\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 variant: 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}\n","/*!\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { showInfo, showWarning } from '@nextcloud/dialogs';\nimport { emit } from '@nextcloud/event-bus';\nimport { defaultRemoteURL, defaultRootPath, getClient, getDefaultPropfind, resultToNode } from '@nextcloud/files/dav';\nimport { t } from '@nextcloud/l10n';\nimport { join } from '@nextcloud/paths';\nimport { openConflictPicker } from '@nextcloud/upload';\nimport { logger } from '../utils/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 _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 *\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 *\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 *\n * @param entry the entry to traverse\n */\nexport async function traverseTree(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 *\n * @param directory the directory to read\n */\nfunction 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}\n/**\n * @param path - The path relative to the destination root\n * @param destination - The destination folder. When provided, directories are created relative\n * to its source URL instead of the default user root. This is needed for uploads into\n * non-default locations like team folders.\n */\nexport async function createDirectoryIfNotExists(path, destination) {\n const davUrl = destination?.source ?? join(defaultRemoteURL, defaultRootPath);\n const davRoot = destination?.root ?? defaultRootPath;\n const davClient = getClient(davUrl);\n const dirExists = await davClient.exists(path);\n if (!dirExists) {\n logger.debug('Directory does not exist, creating it', { path, davUrl });\n await davClient.createDirectory(path, { recursive: true });\n const stat = await davClient.stat(path, { details: true, data: getDefaultPropfind() });\n emit('files:node:created', resultToNode(stat.data, davRoot, davUrl));\n }\n}\n/**\n * Resolve conflicts between existing files and incoming files\n *\n * @param files - incoming files\n * @param destination - destination folder\n * @param contents - existing contents of the destination folder\n */\nexport async function resolveConflict(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 && uploads.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 // User cancelled\n logger.warn('User cancelled the upload', { error });\n showWarning(t('files', 'Upload cancelled'));\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 { showError, showInfo, showSuccess, showWarning } from '@nextcloud/dialogs';\nimport { t } from '@nextcloud/l10n';\nimport { join } from '@nextcloud/paths';\nimport { getUploader, hasConflict } from '@nextcloud/upload';\nimport { handleCopyMoveNodesTo, HintException } from '../actions/moveOrCopyAction.ts';\nimport { MoveCopyAction } from '../actions/moveOrCopyActionUtils.ts';\nimport { logger } from '../utils/logger.ts';\nimport { createDirectoryIfNotExists, Directory, resolveConflict, traverseTree } from './DropServiceUtils.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 async function dataTransferToFileTree(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}\n/**\n * Handle dropping external files\n *\n * @param root - The root directory which should be uploaded\n * @param destination - The destination folder\n * @param contents - The contents of the destination folder\n */\nexport async function onDropExternalFiles(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 if (root.contents.length === 0) {\n // user cancelled the upload\n return [];\n }\n }\n else 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 try {\n logger.debug('Processing directory', { relativePath, destination });\n await createDirectoryIfNotExists(relativePath, destination);\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('Unable to create the directory', { error, relativePath, 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}\n/**\n * Handle dropping internal files\n *\n * @param nodes - The nodes being dropped\n * @param destination - The destination folder\n * @param contents - The contents of the destination folder\n * @param isCopy - Whether the operation is a copy\n */\nexport async function onDropInternalFiles(nodes, destination, contents, isCopy = false) {\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 try {\n const promises = Array.fromAsync(handleCopyMoveNodesTo(nodes, destination, isCopy ? MoveCopyAction.COPY : MoveCopyAction.MOVE));\n await promises;\n logger.debug('Files copy/move successful');\n showSuccess(isCopy ? t('files', 'Files copied successfully') : t('files', 'Files moved successfully'));\n }\n catch (error) {\n logger.error('Error while processing dropped files', { error });\n if (error instanceof HintException) {\n showError(error.message);\n }\n else {\n showError(isCopy ? t('files', 'Some files could not be copied') : t('files', 'Some files could not be moved'));\n }\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 Vue from 'vue';\nexport const useDragAndDropStore = defineStore('dragging', {\n state: () => ({\n dragging: [],\n }),\n actions: {\n /**\n * Set the selection of files being dragged currently\n *\n * @param selection array of node sources\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 { 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 *\n * @param selection\n */\n set(selection = []) {\n Vue.set(this, 'selected', [...new Set(selection)]);\n },\n /**\n * Set the last selected index\n *\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","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getUploader } from '@nextcloud/upload';\nimport { defineStore } from 'pinia';\nlet uploader;\n/**\n *\n * @param args\n */\nexport function useUploaderStore(...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 mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.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-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BreadCrumbs.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!./BreadCrumbs.vue?vue&type=style&index=0&id=04c7dec6&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=04c7dec6&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=04c7dec6&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=04c7dec6&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 \"04c7dec6\",\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',{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\n","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\"","import { render, staticRenderFns } from \"./TrayArrowDown.vue?vue&type=template&id=5dbf2618\"\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-6.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-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DragAndDropNotice.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!./DragAndDropNotice.vue?vue&type=style&index=0&id=3920de03&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=3920de03&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=3920de03&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=3920de03&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 \"3920de03\",\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',{class:_vm.$style.fileListFilters,attrs:{\"data-test-id\":\"files-list-filters\"}},[(_setup.isWide)?_vm._l((_setup.visualFilters),function(filter){return _c(_setup.NcPopover,{key:filter.id,attrs:{\"boundary\":_setup.boundary},scopedSlots:_vm._u([{key:\"trigger\",fn:function(){return [_c(_setup.NcButton,{attrs:{\"variant\":\"tertiary\"},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"svg\":filter.iconSvgInline}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(filter.displayName)+\"\\n\\t\\t\\t\\t\")])]},proxy:true},{key:\"default\",fn:function(){return [_c('div',{class:_vm.$style.fileListFilters__popoverContainer},[_c(filter.tagName,{tag:\"component\",domProps:{\"filter\":filter}})],1)]},proxy:true}],null,true)})}):_c(_setup.NcPopover,{attrs:{\"boundary\":_setup.boundary,\"popup-role\":_setup.selectedFilter ? 'dialog' : 'menu'},on:{\"update:shown\":function($event){_setup.selectedFilter = undefined}},scopedSlots:_vm._u([{key:\"trigger\",fn:function(){return [_c(_setup.NcButton,{attrs:{\"id\":_setup.menuTriggerId,\"aria-label\":_setup.t('files', 'Filters'),\"pressed\":_setup.hasActiveFilters,\"variant\":\"tertiary\"},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiFilterVariant}})]},proxy:true}])})]},proxy:true},{key:\"default\",fn:function(){return [(_setup.selectedFilter)?_c('div',{class:_vm.$style.fileListFilters__popoverFilterView},[_c(_setup.NcButton,{attrs:{\"wide\":\"\",\"variant\":\"tertiary\"},on:{\"click\":function($event){_setup.selectedFilter = undefined}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"directional\":\"\",\"path\":_setup.mdiArrowLeft}})]},proxy:true}],null,false,1066031977)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_setup.t('files', 'Back to filters'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),_c(_setup.selectedFilter.tagName,{tag:\"component\",domProps:{\"filter\":_setup.selectedFilter}})],1):[_c('ul',{class:_vm.$style.fileListFilters__popoverContainer,attrs:{\"aria-labelledby\":_setup.menuTriggerId,\"role\":\"menu\"}},_vm._l((_setup.visualFilters),function(filter){return _c('li',{key:filter.id,attrs:{\"role\":\"presentation\"}},[_c(_setup.NcButton,{attrs:{\"role\":\"menuitem\",\"alignment\":\"start\",\"variant\":\"tertiary\",\"wide\":\"\"},on:{\"click\":function($event){_setup.selectedFilter = filter}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"svg\":filter.iconSvgInline}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(filter.displayName)+\"\\n\\t\\t\\t\\t\\t\\t\")])],1)}),0)]]},proxy:true}])})],2)\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 { emit, subscribe } from '@nextcloud/event-bus';\nimport { getFileListFilters, getFilesRegistry } from '@nextcloud/files';\nimport { defineStore } from 'pinia';\nimport { computed, ref } from 'vue';\nimport { logger } from '../utils/logger.ts';\n/**\n * Check if the given value is an instance file list filter with mount function\n *\n * @param value The filter to check\n */\nfunction isFileListFilterWithUi(value) {\n return 'tagName' in value;\n}\nexport const useFiltersStore = defineStore('filters', () => {\n const chips = ref({});\n const filters = ref([]);\n /**\n * Currently active filter chips\n */\n const activeChips = computed(() => Object.values(chips.value).flat());\n /**\n * Filters sorted by order\n */\n const sortedFilters = computed(() => filters.value.sort((a, b) => a.order - b.order));\n /**\n * All filters that provide a UI for visual controlling the filter state\n */\n const filtersWithUI = computed(() => sortedFilters.value.filter(isFileListFilterWithUi));\n /**\n * Register a new filter on the store.\n * This will subscribe the store to the filters events.\n *\n * @param filter The filter to add\n */\n function addFilter(filter) {\n filter.addEventListener('update:chips', onFilterUpdateChips);\n filter.addEventListener('update:filter', onFilterUpdate);\n filters.value.push(filter);\n logger.debug('New file list filter registered', { id: filter.id });\n }\n /**\n * Unregister a filter from the store.\n * This will remove the filter from the store and unsubscribe the store from the filer events.\n *\n * @param filterId Id of the filter to remove\n */\n function removeFilter(filterId) {\n const index = filters.value.findIndex(({ id }) => id === filterId);\n if (index > -1) {\n const [filter] = filters.value.splice(index, 1);\n filter.removeEventListener('update:chips', onFilterUpdateChips);\n filter.removeEventListener('update:filter', onFilterUpdate);\n logger.debug('Files list filter unregistered', { id: filterId });\n }\n }\n /**\n * Event handler for filter update events\n *\n */\n function onFilterUpdate() {\n emit('files:filters:changed');\n }\n /**\n * Event handler for filter chips updates\n *\n * @param event The update event\n */\n function onFilterUpdateChips(event) {\n const id = event.target.id;\n chips.value = {\n ...chips.value,\n [id]: [...event.detail],\n };\n logger.debug('File list filter chips updated', { filter: id, chips: event.detail });\n }\n initialize();\n return {\n // state\n chips,\n filters,\n filtersWithUI,\n // getters / computed\n activeChips,\n sortedFilters,\n };\n /**\n * Initialize the store by registering event listeners and loading initial filters.\n *\n * @internal\n */\n function initialize() {\n const registry = getFilesRegistry();\n const initialFilters = getFileListFilters();\n // handle adding and removing filters after initialization\n registry.addEventListener('register:listFilter', (event) => {\n addFilter(event.detail);\n });\n registry.addEventListener('unregister:listFilter', (event) => {\n removeFilter(event.detail);\n });\n // register the initial filters\n for (const filter of initialFilters) {\n addFilter(filter);\n }\n // subscribe to file list view changes to reset the filters\n subscribe('files:navigation:changed', onViewChanged);\n }\n /**\n * Event handler that resets all filters if the file list view was changed.\n *\n * @internal\n */\n function onViewChanged() {\n logger.debug('Reset all file list filters - view changed');\n for (const filter of filters.value) {\n if (filter.reset !== undefined) {\n filter.reset();\n }\n }\n }\n});\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.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-6.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??clonedRuleSet-3.use[1]!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileListFilters.vue?vue&type=style&index=0&id=4b9fd4ac&prod&module=true&lang=css\";\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??clonedRuleSet-3.use[1]!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileListFilters.vue?vue&type=style&index=0&id=4b9fd4ac&prod&module=true&lang=css\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FileListFilters.vue?vue&type=template&id=4b9fd4ac\"\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=4b9fd4ac&prod&module=true&lang=css\"\n\n\n\n\nfunction injectStyles (context) {\n \n this[\"$style\"] = (style0.locals || style0)\n\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 injectStyles,\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('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\tisMimeAvailable: _vm.isMimeAvailable,\n\t\tisMtimeAvailable: _vm.isMtimeAvailable,\n\t\tisSizeAvailable: _vm.isSizeAvailable,\n\t\tnodes: _vm.nodes,\n\t},\"scroll-to-index\":_vm.scrollToIndex,\"caption\":_vm.caption},scopedSlots:_vm._u([{key:\"filters\",fn:function(){return [_c('FileListFilterToSearch'),_c('FileListFilterChips')]},proxy:true},(!_vm.isNoneSelected)?{key:\"header-overlay\",fn:function(){return [_c('span',{staticClass:\"files-list__selected\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.n('files', '{count} selected', '{count} selected', _vm.selectedNodes.length, { count: _vm.selectedNodes.length }))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('FilesListTableHeaderActions',{attrs:{\"current-view\":_vm.currentView,\"selected-nodes\":_vm.selectedNodes}})]},proxy:true}:null,{key:\"before\",fn:function(){return _vm._l((_vm.headers),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:{\"is-mime-available\":_vm.isMimeAvailable,\"is-mtime-available\":_vm.isMtimeAvailable,\"is-size-available\":_vm.isSizeAvailable,\"nodes\":_vm.nodes}})]},proxy:true},{key:\"empty\",fn:function(){return [_vm._t(\"empty\")]},proxy:true},{key:\"footer\",fn:function(){return [_c('FilesListTableFooter',{attrs:{\"current-view\":_vm.currentView,\"is-mime-available\":_vm.isMimeAvailable,\"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 }","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-6.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-6.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=5eb63caa\"\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:{\"active-folder\":_vm.activeStore.activeFolder,\"active-view\":_vm.activeStore.activeView,\"render\":action.renderInline,\"source\":_vm.source}})}),_vm._v(\" \"),_c('NcActions',{ref:\"actionsMenu\",attrs:{\"boundaries-element\":_vm.getBoundariesElement,\"container\":_vm.getBoundariesElement,\"force-name\":true,\"variant\":\"tertiary\",\"force-menu\":_vm.enabledInlineActions.length === 0 /* forceMenu only if no inline actions */,\"inline\":_vm.enabledInlineActions.length,\"open\":_vm.openedMenu},on:{\"close\":_vm.onMenuClose,\"closed\":_vm.onMenuClosed}},[_vm._l((_vm.renderedNonDestructiveActions),function(action,index){return _c('NcActionButton',{key:action.id,ref:`action-${action.id}`,refInFor:true,staticClass:\"files-list__row-action\",class:{\n\t\t\t\t[`files-list__row-action-${action.id}`]: true,\n\t\t\t\t'files-list__row-action--inline': index < _vm.enabledInlineActions.length,\n\t\t\t\t'files-list__row-action--menu': _vm.isValidMenu(action),\n\t\t\t},attrs:{\"close-after-click\":!_vm.isValidMenu(action),\"data-cy-files-list-row-action\":action.id,\"is-menu\":_vm.isValidMenu(action),\"aria-label\":action.title?.(_vm.actionContext),\"title\":action.title?.(_vm.actionContext)},on:{\"click\":function($event){return _vm.onActionClick(action)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.isLoadingAction(action))?_c('NcLoadingIcon'):_c('NcIconSvgWrapper',{staticClass:\"files-list__row-action-icon\",attrs:{\"svg\":action.iconSvgInline(_vm.actionContext)}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.actionDisplayName(action))+\"\\n\\t\\t\")])}),_vm._v(\" \"),(_vm.renderedDestructiveActions.length > 0)?[_c('NcActionSeparator'),_vm._v(\" \"),_vm._l((_vm.renderedDestructiveActions),function(action,index){return _c('NcActionButton',{key:action.id,ref:`action-${action.id}`,refInFor:true,staticClass:\"files-list__row-action files-list__row-action--destructive\",class:{\n\t\t\t\t\t[`files-list__row-action-${action.id}`]: true,\n\t\t\t\t\t'files-list__row-action--inline': index < _vm.enabledInlineActions.length,\n\t\t\t\t\t'files-list__row-action--menu': _vm.isValidMenu(action),\n\t\t\t\t},attrs:{\"close-after-click\":!_vm.isValidMenu(action),\"data-cy-files-list-row-action\":action.id,\"is-menu\":_vm.isValidMenu(action),\"aria-label\":action.title?.(_vm.actionContext),\"title\":action.title?.(_vm.actionContext)},on:{\"click\":function($event){return _vm.onActionClick(action)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.isLoadingAction(action))?_c('NcLoadingIcon'):_c('NcIconSvgWrapper',{staticClass:\"files-list__row-action-icon\",attrs:{\"svg\":action.iconSvgInline(_vm.actionContext)}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.actionDisplayName(action))+\"\\n\\t\\t\\t\")])})]:_vm._e(),_vm._v(\" \"),(_vm.openedSubmenu && _vm.enabledSubmenuActions[_vm.openedSubmenu?.id])?[_c('NcActionButton',{staticClass:\"files-list__row-action-back\",attrs:{\"data-cy-files-list-row-action\":\"menu-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.t('files', 'Back'))+\"\\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,\"aria-label\":action.title?.(_vm.actionContext),\"title\":action.title?.(_vm.actionContext)},on:{\"click\":function($event){return _vm.onActionClick(action)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.isLoadingAction(action))?_c('NcLoadingIcon'):_c('NcIconSvgWrapper',{attrs:{\"svg\":action.iconSvgInline(_vm.actionContext)}})]},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 }","\n\n","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=16833c02\"\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 }","/**\n * SPDX-FileCopyrightText: 2025 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 openedSubmenu: null,\n };\n },\n computed: {\n enabledSubmenuActions() {\n return this.enabledFileActions\n .reduce((record, action) => {\n if (action.parent !== undefined) {\n if (!record[action.parent]) {\n record[action.parent] = [];\n }\n record[action.parent].push(action);\n }\n return record;\n }, {});\n },\n },\n methods: {\n /**\n * Check if a menu is valid, meaning it is\n * defined and has at least one action\n *\n * @param action The action to check\n */\n isValidMenu(action) {\n return this.enabledSubmenuActions[action.id]?.length > 0;\n },\n async onBackToMenuClick(action) {\n if (!action) {\n return;\n }\n this.openedSubmenu = null;\n // Wait for first render\n await this.$nextTick();\n // Focus the previous menu action button\n this.$nextTick(() => {\n // Focus the action button, test both batch and single action references\n // as this mixin is used in both single and batch actions.\n const menuAction = this.$refs[`action-batch-${action.id}`]?.[0]\n || this.$refs[`action-${action.id}`]?.[0];\n if (menuAction) {\n menuAction.$el.querySelector('button')?.focus();\n }\n });\n },\n },\n});\n","import { showError, showSuccess } from '@nextcloud/dialogs';\nimport { NodeStatus } from '@nextcloud/files';\nimport { t } from '@nextcloud/l10n';\nimport Vue from 'vue';\nimport { useActiveStore } from '../store/active.ts';\nimport { logger } from '../utils/logger.ts';\n/**\n * Execute an action on the current active node\n *\n * @param action The action to execute\n */\nexport async function executeAction(action) {\n const activeStore = useActiveStore();\n const currentFolder = activeStore.activeFolder;\n const currentNode = activeStore.activeNode;\n const currentView = activeStore.activeView;\n if (!currentFolder || !currentNode || !currentView) {\n logger.error('No active folder, node or view', { folder: currentFolder, node: currentNode, view: currentView });\n return;\n }\n if (currentNode.status === NodeStatus.LOADING) {\n logger.debug('Node is already loading', { node: currentNode });\n return;\n }\n // @ts-expect-error _children is private\n const contents = currentFolder?._children || [];\n const context = {\n nodes: [currentNode],\n view: currentView,\n folder: currentFolder,\n contents,\n };\n if (!action.enabled(context)) {\n logger.debug('Action is not not available for the current context', { action, node: currentNode, view: currentView });\n return;\n }\n let displayName = action.id;\n try {\n displayName = action.displayName(context) || displayName;\n }\n catch (error) {\n logger.error('Error while getting action display name', { action, error });\n }\n try {\n // Set the loading marker\n Vue.set(currentNode, 'status', NodeStatus.LOADING);\n activeStore.activeAction = action;\n const success = await action.exec(context);\n // If the action returns null, we stay silent\n if (success === null || success === undefined) {\n return;\n }\n if (success) {\n showSuccess(t('files', '{displayName}: done', { displayName }));\n return;\n }\n showError(t('files', '{displayName}: failed', { displayName }));\n }\n catch (error) {\n logger.error('Error while executing action', { action, error });\n showError(t('files', '{displayName}: failed', { displayName }));\n }\n finally {\n // Reset the loading marker\n Vue.set(currentNode, 'status', undefined);\n activeStore.activeAction = undefined;\n }\n}\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.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-6.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=3d55d6ab&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=3d55d6ab&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=3d55d6ab&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!./FileEntryActions.vue?vue&type=style&index=1&id=3d55d6ab&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FileEntryActions.vue?vue&type=template&id=3d55d6ab&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=3d55d6ab&prod&lang=scss\"\nimport style1 from \"./FileEntryActions.vue?vue&type=style&index=1&id=3d55d6ab&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 \"3d55d6ab\",\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-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,\"model-value\":_vm.isSelected,\"data-cy-files-list-row-checkbox\":\"\"},on:{\"update:modelValue\":_vm.onSelectionChange}})],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-6.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-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntryCheckbox.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 { 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 *\n * @param args\n */\nexport function useKeyboardStore(...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=4861ad0f\"\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\":\"\",\"required\":\"\",\"minlength\":1,\"enterkeyhint\":\"done\"},on:{\"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)}},model:{value:(_vm.newName),callback:function ($$v) {_vm.newName=$$v},expression:\"newName\"}})],1):_c(_vm.linkTo.is,_vm._b({ref:\"basename\",tag:\"component\",staticClass:\"files-list__row-name-link\",attrs:{\"data-cy-files-list-row-name-link\":\"\"}},'component',_vm.linkTo.params,false),[_c('span',{staticClass:\"files-list__row-name-text\",attrs:{\"dir\":\"auto\"}},[_c('span',{staticClass:\"files-list__row-name-\",domProps:{\"textContent\":_vm._s(_vm.basename)}}),_vm._v(\" \"),(_vm.userConfigStore.userConfig.show_files_extensions)?_c('span',{staticClass:\"files-list__row-name-ext\",domProps:{\"textContent\":_vm._s(_vm.extension)}}):_vm._e()])])\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 axios, { isAxiosError } from '@nextcloud/axios';\nimport { emit, subscribe } from '@nextcloud/event-bus';\nimport { FileType, NodeStatus } from '@nextcloud/files';\nimport { t } from '@nextcloud/l10n';\nimport { basename, dirname, extname } from '@nextcloud/paths';\nimport { spawnDialog } from '@nextcloud/vue/functions/dialog';\nimport { defineStore } from 'pinia';\nimport Vue, { defineAsyncComponent, ref } from 'vue';\nimport { fetchNode } from '../services/WebdavClient.ts';\nimport { logger } from '../utils/logger.ts';\nimport { useUserConfigStore } from './userconfig.ts';\nexport const useRenamingStore = defineStore('renaming', () => {\n /**\n * The currently renamed node\n */\n const renamingNode = ref();\n /**\n * The new name of the currently renamed node\n */\n const newNodeName = ref('');\n /**\n * Internal flag to only allow calling `rename` once.\n */\n const isRenaming = ref(false);\n /**\n * Execute the renaming.\n * This will rename the node set as `renamingNode` to the configured new name `newName`.\n *\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 function rename() {\n if (renamingNode.value === undefined) {\n throw new Error('No node is currently being renamed');\n }\n const oldName = renamingNode.value.basename;\n let newName = newNodeName.value.trim();\n if (newName === oldName) {\n return false;\n }\n // Only rename once so we use this as some kind of mutex\n if (isRenaming.value) {\n return false;\n }\n isRenaming.value = true;\n const userConfig = useUserConfigStore();\n let node = renamingNode.value;\n Vue.set(node, 'status', NodeStatus.LOADING);\n try {\n if (userConfig.userConfig.show_dialog_file_extension) {\n const oldExtension = extname(oldName);\n const newExtension = extname(newName);\n // Check for extension change for files\n if (node.type === FileType.File\n && oldExtension !== newExtension\n && !(await showFileExtensionDialog(oldExtension, newExtension))) {\n // user selected to use the old extension\n newName = basename(newName, newExtension) + oldExtension;\n if (oldName === newName) {\n return false;\n }\n }\n if (!userConfig.userConfig.show_hidden\n && newName.startsWith('.')\n && !oldName.startsWith('.')\n && !(await showHiddenFileDialog(newName))) {\n return false;\n }\n }\n const oldEncodedSource = node.encodedSource;\n // rename the node\n node.rename(newName);\n logger.debug('Moving file to', { destination: node.encodedSource, oldEncodedSource });\n // create MOVE request\n await axios({\n method: 'MOVE',\n url: oldEncodedSource,\n headers: {\n Destination: node.encodedSource,\n Overwrite: 'F',\n },\n });\n // Update mime type if extension changed\n // as other related informations might have changed\n // on the backend but it is really hard to know on the front\n if (extname(oldName) !== extname(newName)) {\n node = await fetchNode(node.path);\n }\n // Success 🎉\n emit('files:node:updated', node);\n emit('files:node:renamed', node);\n emit('files:node:moved', {\n node,\n oldSource: `${dirname(node.source)}/${oldName}`,\n });\n // Reset the state not changed\n if (renamingNode.value === node) {\n $reset();\n }\n return true;\n }\n catch (error) {\n logger.error('Error while renaming file', { error });\n // Rename back as it failed\n node.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 }), { cause: error });\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(renamingNode.value.dirname),\n }), { cause: error });\n }\n }\n // Unknown error\n throw new Error(t('files', 'Could not rename \"{oldName}\"', { oldName }), { cause: error });\n }\n finally {\n Vue.set(node, 'status', undefined);\n isRenaming.value = false;\n }\n }\n /**\n * Reset the store state\n */\n function $reset() {\n newNodeName.value = '';\n renamingNode.value = undefined;\n }\n // Make sure we only register the listeners once\n subscribe('files:node:rename', (node) => {\n renamingNode.value = node;\n newNodeName.value = node.basename;\n });\n return {\n $reset,\n newNodeName,\n rename,\n renamingNode,\n };\n});\n/**\n * Show a dialog asking user for confirmation about changing the file extension.\n *\n * @param oldExtension the old file name extension\n * @param newExtension the new file name extension\n */\nasync function showFileExtensionDialog(oldExtension, newExtension) {\n const { promise, resolve } = Promise.withResolvers();\n await spawnDialog(defineAsyncComponent(() => import('../views/DialogConfirmFileExtension.vue')), { oldExtension, newExtension }, resolve);\n return promise;\n}\n/**\n * Show a dialog asking user for confirmation about renaming a file to a hidden file.\n *\n * @param filename - The new filename\n */\nasync function showHiddenFileDialog(filename) {\n const { promise, resolve } = Promise.withResolvers();\n await spawnDialog(defineAsyncComponent(() => import('../views/DialogConfirmFileHidden.vue')), { filename }, resolve);\n return promise;\n}\n","/*!\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 *\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-6.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-6.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=ab3b59e0&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=ab3b59e0&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=ab3b59e0&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=ab3b59e0&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 \"ab3b59e0\",\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:\"component\",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',{key:_vm.source.fileid,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.isRecentView && _vm.isRecentlyCreated)?_c('span',{staticClass:\"files-list__row-icon-recently-created\"},[_vm._m(4)],1):_vm._e(),_vm._v(\" \"),(_vm.fileOverlay)?_c(_vm.fileOverlay,{tag:\"component\",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},function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('RecentlyCreatedIcon')\n}]\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./AccountGroup.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./AccountGroup.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./AccountGroup.vue?vue&type=template&id=fa2b1464\"\nimport script from \"./AccountGroup.vue?vue&type=script&lang=js\"\nexport * from \"./AccountGroup.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-group-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,5.5A3.5,3.5 0 0,1 15.5,9A3.5,3.5 0 0,1 12,12.5A3.5,3.5 0 0,1 8.5,9A3.5,3.5 0 0,1 12,5.5M5,8C5.56,8 6.08,8.15 6.53,8.42C6.38,9.85 6.8,11.27 7.66,12.38C7.16,13.34 6.16,14 5,14A3,3 0 0,1 2,11A3,3 0 0,1 5,8M19,8A3,3 0 0,1 22,11A3,3 0 0,1 19,14C17.84,14 16.84,13.34 16.34,12.38C17.2,11.27 17.62,9.85 17.47,8.42C17.92,8.15 18.44,8 19,8M5.5,18.25C5.5,16.18 8.41,14.5 12,14.5C15.59,14.5 18.5,16.18 18.5,18.25V20H5.5V18.25M0,20V18.5C0,17.11 1.89,15.94 4.45,15.6C3.86,16.28 3.5,17.22 3.5,18.25V20H0M24,20H20.5V18.25C20.5,17.22 20.14,16.28 19.55,15.6C22.11,15.94 24,17.11 24,18.5V20Z\"}},[(_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!./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\"","\n\n","import { render, staticRenderFns } from \"./AccountPlus.vue?vue&type=template&id=53a26aa0\"\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 }","\n\n","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\"","import { render, staticRenderFns } from \"./FolderOpen.vue?vue&type=template&id=ae0c5fc0\"\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\"","\n\n","import { render, staticRenderFns } from \"./Key.vue?vue&type=template&id=499b3412\"\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 }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./NetworkOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./NetworkOutline.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./NetworkOutline.vue?vue&type=template&id=8f00cb50\"\nimport script from \"./NetworkOutline.vue?vue&type=script&lang=js\"\nexport * from \"./NetworkOutline.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-outline-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,20A1,1 0 0,0 14,19H13V17H17A2,2 0 0,0 19,15V5A2,2 0 0,0 17,3H7A2,2 0 0,0 5,5V15A2,2 0 0,0 7,17H11V19H10A1,1 0 0,0 9,20H2V22H9A1,1 0 0,0 10,23H14A1,1 0 0,0 15,22H22V20H15M7,15V5H17V15H7Z\"}},[(_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\"","\n\n","import { render, staticRenderFns } from \"./PlayCircle.vue?vue&type=template&id=3cc1493c\"\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 \"-!../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\"","\n\n","import { render, staticRenderFns } from \"./Tag.vue?vue&type=template&id=356230e0\"\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 \"-!../../../../../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\n\n\n","import { render, staticRenderFns } from \"./CollectivesIcon.vue?vue&type=template&id=dc7ddfee\"\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-6.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-6.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=4505d262&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=4505d262&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=4505d262&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=4505d262&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 \"4505d262\",\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-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RecentlyCreatedIcon.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-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RecentlyCreatedIcon.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcIconSvgWrapper',{staticClass:\"recently-created-marker-icon\",attrs:{\"name\":_vm.t('files', 'Recently created'),\"path\":_vm.mdiPlus}})\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!./RecentlyCreatedIcon.vue?vue&type=style&index=0&id=251f6582&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!./RecentlyCreatedIcon.vue?vue&type=style&index=0&id=251f6582&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./RecentlyCreatedIcon.vue?vue&type=template&id=251f6582&scoped=true\"\nimport script from \"./RecentlyCreatedIcon.vue?vue&type=script&lang=ts\"\nexport * from \"./RecentlyCreatedIcon.vue?vue&type=script&lang=ts\"\nimport style0 from \"./RecentlyCreatedIcon.vue?vue&type=style&index=0&id=251f6582&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 \"251f6582\",\n null\n \n)\n\nexport default component.exports","/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { FileType } from '@nextcloud/files';\nimport { generateUrl } from '@nextcloud/router';\nimport { getSharingToken, isPublicShare } from '@nextcloud/sharing/public';\nimport { toValue } from '@vueuse/core';\nimport { computed } from 'vue';\n/**\n * Get the preview URL for a given node.\n *\n * @param node - The node to get the preview for\n * @param options - The preview options\n * @param options.crop - Whether to crop the preview (default: true)\n * @param options.fallback - Whether to use a mime type icon as fallback (default: true)\n * @param options.size - The size of the preview in pixels (default: 128). Can be a number or a tuple [width, height]\n */\nexport function usePreviewImage(node, options = {}) {\n return computed(() => {\n const source = toValue(node);\n if (!source) {\n return;\n }\n if (source.type === FileType.Folder) {\n return;\n }\n const fallback = toValue(options).fallback ?? true;\n if (source.attributes['has-preview'] !== true\n && source.mime !== undefined\n && source.mime !== 'application/octet-stream') {\n if (!fallback) {\n return;\n }\n const previewUrl = generateUrl('/core/mimeicon?mime={mime}', {\n mime: source.mime,\n });\n const url = new URL(window.location.origin + previewUrl);\n return url.href;\n }\n const crop = toValue(options).crop ?? true;\n const [sizeX, sizeY] = [toValue(options).size ?? 128].flat();\n try {\n const previewUrl = source.attributes.previewUrl\n || (isPublicShare()\n ? generateUrl('/apps/files_sharing/publicpreview/{token}?file={file}', {\n token: getSharingToken(),\n file: source.path,\n })\n : generateUrl('/core/preview?fileId={fileid}', {\n fileid: String(source.fileid),\n }));\n const url = new URL(window.location.origin + previewUrl);\n // Request tiny previews\n url.searchParams.set('x', sizeX.toString());\n url.searchParams.set('y', (sizeY ?? sizeX).toString());\n url.searchParams.set('mimeFallback', fallback.toString());\n // Etag to force refresh preview on change\n const etag = source.attributes.etag || source.mtime?.getTime() || '';\n url.searchParams.set('v', etag.slice(0, 6));\n // Handle cropping\n url.searchParams.set('a', crop ? '0' : '1');\n return url.href;\n }\n catch {\n return;\n }\n });\n}\n","import { registerDavProperty } from '@nextcloud/files/dav';\n/**\n *\n */\nexport function initLivePhotos() {\n registerDavProperty('nc:metadata-files-live-photo', { nc: 'http://nextcloud.org/ns' });\n}\n/**\n * @param node - The node\n */\nexport function isLivePhoto(node) {\n return node.attributes['metadata-files-live-photo'] !== undefined;\n}\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.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-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntryPreview.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./FileEntryPreview.vue?vue&type=template&id=7205bc26\"\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","/*!\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getFileActions, getFilesRegistry } from '@nextcloud/files';\nimport { toValue } from '@vueuse/core';\nimport { computed, readonly, ref } from 'vue';\nconst actions = ref();\n/**\n * Get the registered and sorted file actions.\n */\nexport function useFileActions() {\n if (!actions.value) {\n // if not initialized by other component yet, initialize and subscribe to registry changes\n actions.value = getFileActions();\n getFilesRegistry().addEventListener('register:action', () => {\n actions.value = getFileActions();\n });\n }\n return readonly(actions);\n}\n/**\n * Get the enabled file actions for the given context.\n *\n * @param context - The context to check the enabled state of the actions against\n */\nexport function useEnabledFileActions(context) {\n const actions = useFileActions();\n return computed(() => actions.value\n .filter((action) => action.enabled === undefined\n || action.enabled(toValue(context)))\n .sort((a, b) => (a.order ?? 0) - (b.order ?? 0)));\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(() => 'openfile' in route.query\n && (typeof route.query.openfile !== 'string'\n || route.query.openfile.toLocaleLowerCase() !== 'false'));\n // if `opendetails` is set it is considered truthy, but allow to explicitly set it to 'false'\n const openDetails = computed(() => 'opendetails' in route.query\n && (typeof route.query.opendetails !== 'string'\n || route.query.opendetails.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 /** Should the details sidebar be shown (`openDetails` route param) */\n openDetails,\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';\nexport const useActionsMenuStore = defineStore('actionsmenu', {\n state: () => ({\n opened: null,\n }),\n});\n","/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport InformationSvg from '@mdi/svg/svg/information-outline.svg?raw';\nimport { getSidebar, Permission } from '@nextcloud/files';\nimport { t } from '@nextcloud/l10n';\nimport { isPublicShare } from '@nextcloud/sharing/public';\nimport { logger } from '../utils/logger.ts';\nexport const ACTION_DETAILS = 'details';\nexport const action = {\n id: ACTION_DETAILS,\n displayName: () => t('files', 'Details'),\n iconSvgInline: () => InformationSvg,\n // Sidebar currently supports user folder only, /files/USER\n enabled: ({ nodes }) => {\n const node = nodes[0];\n if (nodes.length !== 1 || !node) {\n return false;\n }\n const sidebar = getSidebar();\n if (!sidebar.available) {\n return false;\n }\n if (isPublicShare()) {\n return false;\n }\n return node.root.startsWith('/files/') && node.permissions !== Permission.NONE;\n },\n async exec({ nodes }) {\n const sidebar = getSidebar();\n const [node] = nodes;\n try {\n // If the sidebar is already open for the current file, do nothing\n if (sidebar.node?.source === node.source) {\n logger.debug('Sidebar already open for this file', { node });\n return null;\n }\n sidebar.open(node, 'sharing');\n return null;\n }\n catch (error) {\n logger.error('Error while opening sidebar', { error });\n return false;\n }\n },\n order: -50,\n hotkey: {\n key: 'D',\n description: t('files', 'Open the details sidebar'),\n },\n};\n","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\"","\n\n","import { render, staticRenderFns } from \"./FileMultiple.vue?vue&type=template&id=15fca808\"\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 }","/**\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 { n } from '@nextcloud/l10n';\n/**\n * Extract dir and name from file path\n *\n * @param path - The full path\n * @return [dirPath, fileName]\n */\nexport function extractFilePaths(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 *\n * @param nodes - The nodes to summarize\n * @param hidden - The number of hidden nodes\n */\nexport function getSummaryFor(nodes, hidden = 0) {\n const fileCount = nodes.filter((node) => node.type === FileType.File).length;\n const folderCount = nodes.filter((node) => node.type === FileType.Folder).length;\n const summary = [];\n if (fileCount > 0 || folderCount === 0) {\n const fileSummary = n('files', '%n file', '%n files', fileCount);\n summary.push(fileSummary);\n }\n if (folderCount > 0) {\n const folderSummary = n('files', '%n folder', '%n folders', folderCount);\n summary.push(folderSummary);\n }\n if (hidden > 0) {\n // TRANSLATORS: This is the number of hidden files or folders\n const hiddenSummary = n('files', '%n hidden', '%n hidden', hidden);\n summary.push(hiddenSummary);\n }\n return summary.join(' · ');\n}\n","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-6.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-6.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=6c14765c&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=6c14765c&prod&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./DragAndDropPreview.vue?vue&type=template&id=6c14765c\"\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=6c14765c&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 Vue from 'vue';\nimport DragAndDropPreview from '../components/DragAndDropPreview.vue';\nconst Preview = Vue.extend(DragAndDropPreview);\nlet preview;\n/**\n *\n * @param nodes\n */\nexport async function getDragAndDropPreview(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 { openConflictPicker } from '@nextcloud/dialogs';\nimport { FileType, Folder, File as NcFile, Node, NodeStatus, Permission } from '@nextcloud/files';\nimport { t } from '@nextcloud/l10n';\nimport { generateUrl } from '@nextcloud/router';\nimport { isPublicShare } from '@nextcloud/sharing/public';\nimport { getConflicts, getUploader } from '@nextcloud/upload';\nimport { vOnClickOutside } from '@vueuse/components';\nimport { extname, relative } from 'path';\nimport Vue, { computed, defineComponent } from 'vue';\nimport { action as sidebarAction } from '../actions/sidebarAction.ts';\nimport { onDropInternalFiles } from '../services/DropService.ts';\nimport { getDragAndDropPreview } from '../utils/dragUtils.ts';\nimport { hashCode } from '../utils/hashUtils.ts';\nimport { logger } from '../utils/logger.ts';\nimport { isDownloadable } from '../utils/permissions.ts';\nVue.directive('onClickOutside', vOnClickOutside);\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 isMtimeAvailable: {\n type: Boolean,\n default: false,\n },\n compact: {\n type: Boolean,\n default: false,\n },\n },\n provide() {\n return {\n defaultFileAction: computed(() => this.defaultFileAction),\n enabledFileActions: computed(() => this.enabledFileActions),\n };\n },\n data() {\n return {\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;\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.isNarrow;\n },\n isActive() {\n // Not using activeNode here because we want to\n // be reactive to the url change directly\n return String(this.fileid) === String(this.currentRouteFileId);\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 // Ignore if the node is not available\n if (this.isFailedSource) {\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 // Ignore if the node is not available\n if (this.isFailedSource) {\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 // If the menu is opened on another file entry, we ignore closed events\n if (opened === false && this.actionsMenuStore.opened !== this.uniqueId.toString()) {\n return;\n }\n // If opened, we specify the current file id\n // else we set it to null to close the menu\n this.actionsMenuStore.opened = opened\n ? this.uniqueId.toString()\n : null;\n },\n },\n mtime() {\n // If the mtime is not a valid date, return it as is\n if (this.source.mtime && !isNaN(this.source.mtime.getDate())) {\n return this.source.mtime;\n }\n if (this.source.crtime && !isNaN(this.source.crtime.getDate())) {\n return this.source.crtime;\n }\n return null;\n },\n mtimeOpacity() {\n if (!this.mtime) {\n return {};\n }\n // The time when we start reducing the opacity\n const maxOpacityTime = 31 * 24 * 60 * 60 * 1000; // 31 days\n // everything older than the maxOpacityTime will have the same value\n const timeDiff = Date.now() - this.mtime.getTime();\n if (timeDiff < 0) {\n // this means we have an invalid mtime which is in the future!\n return {};\n }\n // inversed time difference from 0 to maxOpacityTime (which would mean today)\n const opacityTime = Math.max(0, maxOpacityTime - timeDiff);\n // 100 = today, 0 = 31 days ago or older\n const percentage = Math.round(opacityTime * 100 / maxOpacityTime);\n return {\n color: `color-mix(in srgb, var(--color-main-text) ${percentage}%, 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 this.actions\n .filter((action) => {\n if (!action.enabled) {\n return true;\n }\n // In case something goes wrong, since we don't want to break\n // the entire list, we filter out actions that throw an error.\n try {\n return action.enabled({\n nodes: [this.source],\n view: this.activeView,\n folder: this.activeFolder,\n contents: this.nodes,\n });\n }\n catch (error) {\n logger.error('Error while checking action', { action, error });\n return false;\n }\n })\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 *\n * @param newSource The new value of the source prop\n * @param oldSource The previous value\n */\n source(newSource, oldSource) {\n if (newSource.source !== oldSource.source) {\n this.resetState();\n }\n },\n openedMenu() {\n // Checking if the menu is really closed and not\n // just a change in the open state to another file entry.\n if (this.actionsMenuStore.opened === null) {\n // Reset any right menu position potentially set\n logger.debug('All actions menu closed, resetting right menu position...');\n const root = this.$el?.closest('main.app-content');\n if (root !== null) {\n root.style.removeProperty('--mouse-pos-x');\n root.style.removeProperty('--mouse-pos-y');\n }\n }\n },\n },\n beforeDestroy() {\n this.resetState();\n },\n methods: {\n resetState() {\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 // Ignore right click if the node is not available\n if (this.isFailedSource) {\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 logger.debug('Setting actions menu position...');\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 auxiliary button expect mouse-wheel (button & 4)\n if (Boolean(event.button & 2) || event.button > 4) {\n return;\n }\n // Ignore if the node is not available\n if (this.isFailedSource) {\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 || event.button === 1;\n if (metaKeyPressed || !this.defaultFileAction) {\n // If no download permission, then we can not allow to download (direct link) the files\n if (!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 // Open the file in a new tab if the meta key or the middle mouse button is clicked\n window.open(url, metaKeyPressed ? '_blank' : '_self');\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({\n nodes: [this.source],\n folder: this.activeFolder,\n contents: this.nodes,\n view: this.activeView,\n });\n },\n openDetailsIfAvailable(event) {\n event.preventDefault();\n event.stopPropagation();\n if (sidebarAction?.enabled?.({\n nodes: [this.source],\n folder: this.activeFolder,\n contents: this.nodes,\n view: this.activeView,\n })) {\n sidebarAction.exec({\n nodes: [this.source],\n folder: this.activeFolder,\n contents: this.nodes,\n view: this.activeView,\n });\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 // 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 // Caching the selection\n const selection = this.draggingFiles;\n const items = Array.from(event.dataTransfer?.items || []);\n if (selection.length === 0 && items.some((item) => item.kind === 'file')) {\n const files = items.filter((item) => item.kind === 'file')\n .map((item) => 'webkitGetAsEntry' in item ? item.webkitGetAsEntry() : item.getAsFile())\n .filter(Boolean);\n const uploader = getUploader();\n const root = uploader.destination.path;\n const relativePath = relative(root, this.source.path);\n logger.debug('Start uploading dropped files', { target: this.source.path, root, relativePath, files: files.map((file) => file.name) });\n await uploader.batchUpload(relativePath, files, async (nodes, path) => {\n try {\n const { contents, folder } = await this.activeView.getContents(path);\n const conflicts = getConflicts(nodes, contents);\n if (conflicts.length === 0) {\n return nodes;\n }\n const result = await openConflictPicker(folder.displayname, conflicts, contents.filter((node) => conflicts.some((conflict) => conflict.name === node.basename)), {\n recursive: true,\n });\n if (result === null) {\n return false;\n }\n return [\n ...nodes.filter((node) => !conflicts.some((conflict) => conflict.name === node.name)),\n ...result.selected,\n ...result.renamed,\n ];\n }\n catch {\n return nodes;\n }\n });\n this.dragover = false;\n return;\n }\n // We might not have the target directory fetched yet\n const cachedContents = this.filesStore.getNodesByPath(this.activeView.id, this.source.path);\n const contents = cachedContents.length === 0\n ? (await this.activeView.getContents(this.source.path)).contents\n : cachedContents;\n const isCopy = event.ctrlKey;\n this.dragover = false;\n logger.debug('Dropped', { event, folder: this.source, selection });\n const nodes = selection.map((source) => this.filesStore.getNode(source));\n await onDropInternalFiles(nodes, this.source, 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 *\n * @param str The string to hash\n * @return a non secure hash of the string\n */\nexport function hashCode(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","/*!\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { Permission } from '@nextcloud/files';\n/**\n * Check permissions on the node if it can be downloaded\n *\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 // check hide-download property of shares\n if (node.attributes['hide-download'] === true\n || node.attributes['hide-download'] === 'true') {\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/**\n * Check permissions on the node if it can be synced/open locally\n *\n * @param node The node to check\n * @return True if syncable, false otherwise\n */\nexport function isSyncable(node) {\n if (!node.isDavResource) {\n return false;\n }\n if ((node.permissions & Permission.WRITE) === 0) {\n return false;\n }\n // Syncable has the same permissions as downloadable for now\n return isDownloadable(node);\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,\"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:{\"opened\":_vm.openedMenu,\"source\":_vm.source},on:{\"update:opened\":function($event){_vm.openedMenu=$event}}}),_vm._v(\" \"),(_vm.isMimeAvailable)?_c('td',{staticClass:\"files-list__row-mime\",attrs:{\"title\":_vm.mime,\"data-cy-files-list-row-mime\":\"\"},on:{\"click\":_vm.openDetailsIfAvailable}},[_c('span',[_vm._v(_vm._s(_vm.mime))])]):_vm._e(),_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.mtime)?_c('NcDateTime',{attrs:{\"ignore-seconds\":\"\",\"timestamp\":_vm.mtime}}):_c('span',[_vm._v(_vm._s(_vm.t('files', 'Unknown date')))])],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.activeView.id}-${column.id}`,attrs:{\"data-cy-files-list-row-column-custom\":column.id},on:{\"click\":_vm.openDetailsIfAvailable}},[_c('CustomElementRender',{attrs:{\"active-folder\":_vm.activeFolder,\"active-view\":_vm.activeView,\"render\":column.render,\"source\":_vm.source}})],1)})],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-6.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-6.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=73723a7e\"\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","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,\"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.mtime)?_c('NcDateTime',{attrs:{\"ignore-seconds\":\"\",\"timestamp\":_vm.mtime}}):_vm._e()],1):_vm._e(),_vm._v(\" \"),_c('FileEntryActions',{ref:\"actions\",class:`files-list__row-actions-${_vm.uniqueId}`,attrs:{\"opened\":_vm.openedMenu,\"grid-mode\":true,\"source\":_vm.source},on:{\"update:opened\":function($event){_vm.openedMenu=$event}}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.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-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntryGrid.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./FileEntryGrid.vue?vue&type=template&id=c13970d8\"\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","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_setup.activeChips.length > 0)?_c('ul',{class:_vm.$style.fileListFilterChips,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\":\"\",\"hide-status\":\"\",\"size\":24,\"user\":chip.user}})]},proxy:true}:null],null,true)})],1)}),0):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n import API from \"!../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../css-loader/dist/cjs.js!./NcChip-DLfUzq07.css\";\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 \"!!../../../../css-loader/dist/cjs.js!./NcChip-DLfUzq07.css\";\n export default content && content.locals ? content.locals : undefined;\n","import '../assets/NcChip-DLfUzq07.css';\nimport { c as mdiClose } from \"../chunks/mdi-DkJglNiS.mjs\";\nimport { useSlots, computed } from \"vue\";\nimport { N as NcActionButton } from \"../chunks/NcActionButton-1gSJfFUC.mjs\";\nimport { N as NcActions } from \"../chunks/NcActions-BcLis_nr.mjs\";\nimport { N as NcIconSvgWrapper } from \"../chunks/NcIconSvgWrapper-Bui9PhAS.mjs\";\nimport { r as register, m as t18, a as t } from \"../chunks/_l10n-DVz9Qdzk.mjs\";\nimport { n as normalizeComponent } from \"../chunks/_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nregister(t18);\nconst _sfc_main = {\n __name: \"NcChip\",\n props: {\n /**\n * aria label to set on the close button\n *\n * @default 'Close'\n */\n ariaLabelClose: {\n type: String,\n default: t(\"Close\")\n },\n /**\n * Container for the actions\n */\n actionsContainer: {\n type: String,\n default: \"body\"\n },\n /**\n * Main text of the chip.\n */\n text: {\n type: String,\n default: \"\"\n },\n /**\n * Set the chips design variant-\n *\n * This sets the background style of the chip, similar to NcButton's `variant`.\n *\n * @deprecated will be removed with v9 - use `variant` instead.\n */\n type: {\n type: String,\n default: \"secondary\",\n validator: (value) => [\"primary\", \"secondary\", \"tertiary\", \"error\", \"warning\", \"success\"].includes(value)\n },\n /**\n * SVG path of the icon to use, this takes precedence over `iconSVG`.\n * For example icon paths from `@mdi/js` can be used.\n */\n iconPath: {\n type: String,\n default: null\n },\n /**\n * Inline SVG to use as the icon\n */\n iconSvg: {\n type: String,\n default: null\n },\n /**\n * Set to true to prevent the close button to be shown\n */\n noClose: {\n type: Boolean,\n default: false\n },\n /**\n * Set the chips design variant-\n *\n * This sets the background style of the chip, similar to NcButton's `variant`.\n *\n * @since 8.24.0\n */\n variant: {\n type: String,\n default: \"secondary\",\n validator: (value) => [\"primary\", \"secondary\", \"tertiary\", \"error\", \"warning\", \"success\"].includes(value)\n }\n },\n emits: [\"close\"],\n setup(__props, { emit }) {\n const props = __props;\n const slots = useSlots();\n const realVariant = computed(() => props.type !== \"secondary\" ? props.type : props.variant);\n const canClose = computed(() => !props.noClose);\n const hasActions = () => Boolean(slots.actions?.());\n const hasIcon = () => Boolean(props.iconPath || props.iconSvg || !!slots.icon?.());\n return { __sfc: true, props, emit, slots, realVariant, canClose, hasActions, hasIcon, mdiClose, NcActionButton, NcActions, NcIconSvgWrapper };\n }\n};\nvar _sfc_render = function render() {\n var _vm = this, _c = _vm._self._c, _setup = _vm._self._setupProxy;\n return _c(\"div\", { staticClass: \"nc-chip\", class: {\n [`nc-chip--${_setup.realVariant}`]: true,\n \"nc-chip--no-actions\": _vm.noClose && !_setup.hasActions(),\n \"nc-chip--no-icon\": !_setup.hasIcon()\n } }, [_setup.hasIcon() ? _c(\"span\", { staticClass: \"nc-chip__icon\" }, [_vm._t(\"icon\", function() {\n return [_vm.iconPath || _vm.iconSvg ? _c(_setup.NcIconSvgWrapper, { attrs: { \"inline\": \"\", \"path\": _vm.iconPath, \"svg\": _vm.iconPath ? void 0 : _vm.iconSvg, \"size\": 18 } }) : _vm._e()];\n })], 2) : _vm._e(), _c(\"span\", { staticClass: \"nc-chip__text\" }, [_vm._t(\"default\", function() {\n return [_vm._v(_vm._s(_vm.text))];\n })], 2), _setup.canClose || _setup.hasActions() ? _c(_setup.NcActions, { staticClass: \"nc-chip__actions\", attrs: { \"container\": _vm.actionsContainer, \"force-menu\": !_setup.canClose, \"variant\": \"tertiary-no-background\" } }, [_setup.canClose ? _c(_setup.NcActionButton, { attrs: { \"close-after-click\": \"\" }, on: { \"click\": function($event) {\n return _setup.emit(\"close\");\n } }, scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_c(_setup.NcIconSvgWrapper, { attrs: { \"path\": _setup.mdiClose, \"size\": 20 } })];\n }, proxy: true }], null, false, 2547223506) }, [_vm._v(\" \" + _vm._s(_vm.ariaLabelClose) + \" \")]) : _vm._e(), _vm._t(\"actions\")], 2) : _vm._e()], 1);\n};\nvar _sfc_staticRenderFns = [];\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n \"c8e429a5\"\n);\nconst NcChip = __component__.exports;\nexport {\n NcChip as default\n};\n//# sourceMappingURL=NcChip.mjs.map\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileListFilterChips.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-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileListFilterChips.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??clonedRuleSet-3.use[1]!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileListFilterChips.vue?vue&type=style&index=0&id=690b69f8&prod&module=true&lang=css\";\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??clonedRuleSet-3.use[1]!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileListFilterChips.vue?vue&type=style&index=0&id=690b69f8&prod&module=true&lang=css\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FileListFilterChips.vue?vue&type=template&id=690b69f8\"\nimport script from \"./FileListFilterChips.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./FileListFilterChips.vue?vue&type=script&setup=true&lang=ts\"\nimport style0 from \"./FileListFilterChips.vue?vue&type=style&index=0&id=690b69f8&prod&module=true&lang=css\"\n\n\n\n\nfunction injectStyles (context) {\n \n this[\"$style\"] = (style0.locals || style0)\n\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 injectStyles,\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 (_setup.isVisible)?_c(_setup.NcButton,{attrs:{\"size\":\"small\"},on:{\"click\":_setup.onClick}},[_vm._v(\"\\n\\t\"+_vm._s(_setup.t('files', 'Search everywhere'))+\"\\n\")]):_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-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileListFilterToSearch.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-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileListFilterToSearch.vue?vue&type=script&setup=true&lang=ts\"","import { render, staticRenderFns } from \"./FileListFilterToSearch.vue?vue&type=template&id=f1a11948\"\nimport script from \"./FileListFilterToSearch.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./FileListFilterToSearch.vue?vue&type=script&setup=true&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-6.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-6.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=5f40923a\"\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","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(_setup.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.isMimeAvailable)?_c('td',{staticClass:\"files-list__column files-list__row-mime\"}):_vm._e(),_vm._v(\" \"),(_vm.isSizeAvailable)?_c('td',{staticClass:\"files-list__column files-list__row-size\"},[_c('span',[_vm._v(_vm._s(_setup.totalSize))])]):_vm._e(),_vm._v(\" \"),(_vm.isMtimeAvailable)?_c('td',{staticClass:\"files-list__column files-list__row-mtime\"}):_vm._e(),_vm._v(\" \"),_vm._l((_setup.columns),function(column){return _c('th',{key:column.id,class:_setup.classForColumn(column)},[_c('span',[_vm._v(_vm._s(column.summary?.(_vm.nodes, _vm.currentView)))])])})],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-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListTableFooter.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-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListTableFooter.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!./FilesListTableFooter.vue?vue&type=style&index=0&id=378a6e4a&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=378a6e4a&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=378a6e4a&scoped=true\"\nimport script from \"./FilesListTableFooter.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./FilesListTableFooter.vue?vue&type=script&setup=true&lang=ts\"\nimport style0 from \"./FilesListTableFooter.vue?vue&type=style&index=0&id=378a6e4a&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 \"378a6e4a\",\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:{\"open\":_vm.openedMenu,\"container\":\"#app-content-vue\",\"boundaries-element\":_vm.boundariesElement,\"disabled\":!!_vm.loading || _vm.areSomeNodesLoading,\"force-name\":true,\"inline\":_vm.enabledInlineActions.length,\"menu-name\":_vm.enabledInlineActions.length <= 1 ? _vm.t('files', 'Actions') : undefined},on:{\"update:open\":function($event){_vm.openedMenu=$event},\"close\":function($event){_vm.openedSubmenu = null}}},[_vm._l((_vm.enabledMenuActions),function(action,idx){return _c('NcActionButton',{key:action.id,ref:`action-batch-${action.id}`,refInFor:true,class:{\n\t\t\t\t[`files-list__row-actions-batch-${action.id}`]: true,\n\t\t\t\t[`files-list__row-actions-batch--menu`]: _vm.isValidMenu(action),\n\t\t\t},attrs:{\"id\":idx === 0 ? _vm.FILE_LIST_HEAD_FIRST_BATCH_ACTION_ID : undefined,\"close-after-click\":!_vm.isValidMenu(action),\"data-cy-files-list-selection-action\":action.id,\"is-menu\":_vm.isValidMenu(action),\"aria-label\":action.displayName(_vm.actionContext) + ' ' + _vm.t('files', '(selected)') /** TRANSLATORS: Selected like 'selected files and folders' */,\"title\":action.title?.(_vm.actionContext)},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.actionContext)}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(action.displayName(_vm.actionContext))+\"\\n\\t\\t\")])}),_vm._v(\" \"),(_vm.openedSubmenu && _vm.enabledSubmenuActions[_vm.openedSubmenu?.id])?[_c('NcActionButton',{staticClass:\"files-list__row-actions-batch-back\",attrs:{\"data-cy-files-list-selection-action\":\"menu-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.t('files', 'Back'))+\"\\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-actions-batch--submenu\",class:`files-list__row-actions-batch-${action.id}`,attrs:{\"close-after-click\":\"\",\"data-cy-files-list-selection-action\":action.id,\"aria-label\":action.displayName(_vm.actionContext) + ' ' + _vm.t('files', '(selected)') /** TRANSLATORS: Selected like 'selected files and folders' */,\"title\":action.title?.(_vm.actionContext)},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.actionContext)}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(action.displayName(_vm.actionContext))+\"\\n\\t\\t\\t\")])})]:_vm._e()],2)],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-6.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-6.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=3b887a8f&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=3b887a8f&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=3b887a8f&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=3b887a8f&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 \"3b887a8f\",\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('NcButton',{staticClass:\"files-list__column-sort-button\",class:[{\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',\"variant\":\"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 * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getCurrentUser } from '@nextcloud/auth';\nimport axios from '@nextcloud/axios';\nimport { emit, subscribe } from '@nextcloud/event-bus';\nimport { loadState } from '@nextcloud/initial-state';\nimport { generateUrl } from '@nextcloud/router';\nimport { defineStore } from 'pinia';\nimport { ref, set } from 'vue';\nconst initialViewConfig = loadState('files', 'viewConfigs', {});\nexport const useViewConfigStore = defineStore('viewconfig', () => {\n const viewConfigs = ref({ ...initialViewConfig });\n /**\n * Get the config for a specific view\n *\n * @param viewid Id of the view to fet the config for\n */\n function getConfig(viewid) {\n return viewConfigs.value[viewid] || {};\n }\n /**\n * Update the view config local store\n *\n * @param viewId The id of the view to update\n * @param key The config key to update\n * @param value The new value\n */\n function onUpdate(viewId, key, value) {\n if (!(viewId in viewConfigs.value)) {\n set(viewConfigs.value, viewId, {});\n }\n set(viewConfigs.value[viewId], key, value);\n }\n /**\n * Update the view config local store AND on server side\n *\n * @param view Id of the view to update\n * @param key Config key to update\n * @param value New value\n */\n async function update(view, key, value) {\n if (getCurrentUser() !== null) {\n await axios.put(generateUrl('/apps/files/api/v1/views'), {\n value,\n view,\n key,\n });\n }\n emit('files:view-config: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 *\n * @param key Key to sort by\n * @param view View to set the sorting key for\n */\n function setSortingBy(key = 'basename', view = 'files') {\n // Save new config\n update(view, 'sorting_mode', key);\n update(view, 'sorting_direction', 'asc');\n }\n /**\n * Toggle the sorting direction\n *\n * @param viewId id of the view to set the sorting order for\n */\n function toggleSortingDirection(viewId = 'files') {\n const config = viewConfigs.value[viewId] || { sorting_direction: 'asc' };\n const newDirection = config.sorting_direction === 'asc' ? 'desc' : 'asc';\n // Save new config\n update(viewId, 'sorting_direction', newDirection);\n }\n // Initialize event listener\n subscribe('files:view-config:updated', ({ view, key, value }) => onUpdate(view, key, value));\n return {\n viewConfigs,\n getConfig,\n setSortingBy,\n toggleSortingDirection,\n update,\n };\n});\n","/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { mapState } from 'pinia';\nimport Vue from 'vue';\nimport { useActiveStore } from '../store/active.ts';\nimport { useViewConfigStore } from '../store/viewConfig.ts';\nexport default Vue.extend({\n setup() {\n const activeStore = useActiveStore();\n return {\n activeStore,\n };\n },\n computed: {\n ...mapState(useViewConfigStore, ['getConfig', 'setSortingBy', 'toggleSortingDirection']),\n /**\n * Get the sorting mode for the current view\n */\n sortingMode() {\n return this.getConfig(this.activeStore.activeView?.id)?.sorting_mode\n || this.activeStore.activeView?.defaultSortKey\n || 'basename';\n },\n /**\n * Get the sorting direction for the current view\n */\n isAscSorting() {\n const sortingDirection = this.getConfig(this.activeStore.activeView?.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.activeStore.activeView?.id);\n return;\n }\n // else sort ASC by this new key\n this.setSortingBy(key, this.activeStore.activeView?.id);\n },\n },\n});\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.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-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListTableHeaderButton.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!./FilesListTableHeaderButton.vue?vue&type=style&index=0&id=4a8557e6&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=4a8557e6&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=4a8557e6&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=4a8557e6&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 \"4a8557e6\",\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:{\"id\":_vm.FILES_LIST_HEADER_SELECT_ALL_CHECKBOX_ID,\"data-cy-files-list-selection-checkbox\":\"\"},on:{\"update:model-value\":_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\"},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files', 'Actions'))+\"\\n\\t\\t\")])]),_vm._v(\" \"),(_vm.isMimeAvailable)?_c('th',{staticClass:\"files-list__column files-list__row-mime\",class:{ 'files-list__column--sortable': _vm.isMimeAvailable },attrs:{\"aria-sort\":_vm.ariaSortForMode('mime')}},[_c('FilesListTableHeaderButton',{attrs:{\"name\":_vm.t('files', 'File type'),\"mode\":\"mime\"}})],1):_vm._e(),_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 }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.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-6.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=12d5b60e&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=12d5b60e&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=12d5b60e&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=12d5b60e&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 \"12d5b60e\",\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-6.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-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VirtualList.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"files-list\",class:{ 'files-list--grid': _vm.gridMode },attrs:{\"data-cy-files-list\":\"\"},on:{\"&scroll\":function($event){return _vm.onScroll.apply(null, arguments)}}},[_c('div',{ref:\"before\",staticClass:\"files-list__before\"},[_vm._t(\"before\")],2),_vm._v(\" \"),_c('div',{ref:\"filters\",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(\" \"),(_vm.dataSources.length === 0)?_c('div',{staticClass:\"files-list__empty\"},[_vm._t(\"empty\")],2):_vm._e(),_vm._v(\" \"),_c('table',{staticClass:\"files-list__table\",class:{\n\t\t\t'files-list__table--with-thead-overlay': !!_vm.$scopedSlots['header-overlay'],\n\t\t\t'files-list__table--hidden': _vm.dataSources.length === 0,\n\t\t},attrs:{\"aria-hidden\":_vm.dataSources.length === 0,\"inert\":_vm.dataSources.length === 0}},[(_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\",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',{ref:\"footer\",staticClass:\"files-list__tfoot\",attrs:{\"data-cy-files-list-tfoot\":\"\"}},[_vm._t(\"footer\")],2)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./VirtualList.vue?vue&type=template&id=48432047\"\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","/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getFileListHeaders, getFilesRegistry } from '@nextcloud/files';\nimport { computed, ref } from 'vue';\nconst headers = ref();\nconst sorted = computed(() => [...(headers.value ?? [])].sort((a, b) => a.order - b.order));\n/**\n * Get the registered and sorted file list headers.\n */\nexport function useFileListHeaders() {\n if (!headers.value) {\n // if not initialized by other component yet, initialize and subscribe to registry changes\n headers.value = getFileListHeaders();\n getFilesRegistry().addEventListener('register:listHeader', () => {\n headers.value = getFileListHeaders();\n });\n }\n return sorted;\n}\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.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-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListVirtual.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!./FilesListVirtual.vue?vue&type=style&index=0&id=0aebd17f&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=0aebd17f&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=0aebd17f&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=0aebd17f&prod&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FilesListVirtual.vue?vue&type=template&id=0aebd17f&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=0aebd17f&prod&scoped=true&lang=scss\"\nimport style1 from \"./FilesListVirtual.vue?vue&type=style&index=1&id=0aebd17f&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 \"0aebd17f\",\n null\n \n)\n\nexport default component.exports","/*!\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getFileListActions, getFilesRegistry } from '@nextcloud/files';\nimport { toValue } from '@vueuse/core';\nimport { computed, ref } from 'vue';\nconst actions = ref();\nconst sorted = computed(() => [...(actions.value ?? [])].sort((a, b) => a.order - b.order));\n/**\n * Get the registered and sorted file list actions.\n */\nexport function useFileListActions() {\n if (!actions.value) {\n // if not initialized by other component yet, initialize and subscribe to registry changes\n actions.value = getFileListActions();\n getFilesRegistry().addEventListener('register:listAction', () => {\n actions.value = getFileListActions();\n });\n }\n return sorted;\n}\n/**\n * Get the enabled file list actions for the given folder, contents and view.\n *\n * @param folder - The current folder\n * @param contents - The contents of the current folder\n * @param view - The current view\n */\nexport function useEnabledFileListActions(folder, contents, view) {\n const actions = useFileListActions();\n return computed(() => {\n if (toValue(folder) === undefined || toValue(view) === undefined) {\n return [];\n }\n return actions.value.filter((action) => action.enabled === undefined\n || action.enabled({ folder: toValue(folder), contents: toValue(contents), view: toValue(view) }));\n });\n}\n","/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { subscribe } from '@nextcloud/event-bus';\nimport { getSidebarActions, getSidebarTabs } from '@nextcloud/files';\nimport { defineStore } from 'pinia';\nimport { computed, readonly, ref, watch } from 'vue';\nimport { logger } from '../utils/logger.ts';\nimport { useActiveStore } from './active.ts';\nimport { useFilesStore } from './files.ts';\nexport const useSidebarStore = defineStore('sidebar', () => {\n const activeTab = ref();\n const isOpen = ref(false);\n const activeStore = useActiveStore();\n const currentNode = computed(() => isOpen.value ? activeStore.activeNode : undefined);\n const hasContext = computed(() => !!(currentNode.value && activeStore.activeFolder && activeStore.activeView));\n const currentContext = computed(() => {\n if (!hasContext.value) {\n return;\n }\n return {\n node: currentNode.value,\n folder: activeStore.activeFolder,\n view: activeStore.activeView,\n };\n });\n const currentActions = computed(() => currentContext.value ? getActions(currentContext.value) : []);\n const currentTabs = computed(() => currentContext.value ? getTabs(currentContext.value) : []);\n /**\n * Open the sidebar for a given node and optional tab ID.\n *\n * @param node - The node to display in the sidebar.\n * @param tabId - Optional ID of the tab to activate.\n */\n function open(node, tabId) {\n if (!(node && activeStore.activeFolder && activeStore.activeView)) {\n logger.debug('sidebar: cannot open sidebar because the active folder or view is not set.', {\n node,\n activeFolder: activeStore.activeFolder,\n activeView: activeStore.activeView,\n });\n throw new Error('Cannot open sidebar because the active folder or view is not set.');\n }\n if (isOpen.value && currentNode.value?.source === node.source) {\n logger.debug('sidebar: already open for current node');\n if (tabId) {\n logger.debug('sidebar: already open for current node - switching tab', { tabId });\n setActiveTab(tabId);\n }\n return;\n }\n const newTabs = getTabs({\n node,\n folder: activeStore.activeFolder,\n view: activeStore.activeView,\n });\n if (tabId && !newTabs.find(({ id }) => id === tabId)) {\n logger.warn(`sidebar: cannot open tab '${tabId}' because it is not available for the current context.`);\n activeTab.value = newTabs[0]?.id;\n }\n else {\n activeTab.value = tabId ?? newTabs[0]?.id;\n }\n logger.debug(`sidebar: opening for ${node.displayname}`, { node });\n activeStore.activeNode = node;\n isOpen.value = true;\n }\n /**\n * Close the sidebar.\n */\n function close() {\n isOpen.value = false;\n }\n /**\n * Get the available tabs for the sidebar.\n * If a context is provided, only tabs enabled for that context are returned.\n *\n * @param context - Optional context to filter the available tabs.\n */\n function getTabs(context) {\n let tabs = getSidebarTabs();\n if (context) {\n tabs = tabs.filter((tab) => tab.enabled === undefined || tab.enabled(context));\n }\n return tabs.sort((a, b) => a.order - b.order);\n }\n /**\n * Get the available actions for the sidebar.\n * If a context is provided, only actions enabled for that context are returned.\n *\n * @param context - Optional context to filter the available actions.\n */\n function getActions(context) {\n let actions = getSidebarActions();\n if (context) {\n actions = actions.filter((action) => action.enabled === undefined || action.enabled(context));\n }\n return actions.sort((a, b) => a.order - b.order);\n }\n /**\n * Set the active tab in the sidebar.\n *\n * @param tabId - The ID of the tab to activate.\n */\n function setActiveTab(tabId) {\n if (!currentTabs.value.find(({ id }) => id === tabId)) {\n throw new Error(`Cannot set sidebar tab '${tabId}' because it is not available for the current context.`);\n }\n activeTab.value = tabId;\n }\n // update the current node if updated\n subscribe('files:node:updated', (node) => {\n if (node.source === currentNode.value?.source) {\n activeStore.activeNode = node;\n }\n });\n // close the sidebar if the current node is deleted\n subscribe('files:node:deleted', (node) => {\n if (node.fileid === currentNode.value?.fileid) {\n close();\n }\n });\n subscribe('viewer:sidebar:open', ({ source }) => {\n const filesStore = useFilesStore();\n const node = filesStore.getNode(source);\n if (node) {\n logger.debug('sidebar: opening for node from Viewer.', { node });\n open(node);\n }\n else {\n logger.error(`sidebar: cannot open for node '${source}' because it was not found in the current view.`);\n }\n });\n let initialized = false;\n // close sidebar when parameter is removed from url\n subscribe('files:list:updated', () => {\n if (!initialized) {\n initialized = true;\n window.OCP.Files.Router._router.afterEach((to, from) => {\n if ((from.query && ('opendetails' in from.query))\n && (to.query && !('opendetails' in to.query))) {\n logger.debug('sidebar: closing because \"opendetails\" query parameter was removed from URL.');\n close();\n }\n });\n }\n });\n // watch open state and update URL query parameters\n watch(isOpen, (isOpen) => {\n const params = { ...(window.OCP?.Files?.Router?.params ?? {}) };\n const query = { ...(window.OCP?.Files?.Router?.query ?? {}) };\n logger.debug(`sidebar: current node changed: ${isOpen ? 'open' : 'closed'}`, { query, params, node: activeStore.activeNode });\n if (!isOpen && ('opendetails' in query)) {\n delete query.opendetails;\n window.OCP.Files.Router.goToRoute(null, params, query, true);\n }\n if (isOpen && !('opendetails' in query)) {\n window.OCP.Files.Router.goToRoute(null, params, {\n ...query,\n opendetails: 'true',\n }, true);\n }\n });\n return {\n activeTab,\n currentActions,\n currentContext,\n currentNode,\n currentTabs,\n hasContext,\n isOpen: readonly(isOpen),\n open,\n close,\n getActions,\n getTabs,\n setActiveTab,\n };\n});\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { loadState } from '@nextcloud/initial-state';\n/**\n * Check whether the personal files view can be shown\n */\nexport function hasPersonalFilesView() {\n const storageStats = loadState('files', 'storageStats', { quota: -1 });\n // Don't show this view if the user has no storage quota\n return storageStats.quota !== 0;\n}\n/**\n * Get the default files view\n */\nexport function defaultView() {\n const { default_view: defaultView } = loadState('files', 'config', { default_view: 'files' });\n // the default view - only use the personal one if it is enabled\n if (defaultView !== 'personal' || hasPersonalFilesView()) {\n return defaultView;\n }\n return 'files';\n}\n","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(_vm.isNarrow ? 'Teleport' : 'div',{tag:\"component\",attrs:{\"to\":_vm.isNarrow ? 'body' : undefined}},[(_vm.canUpload && !_vm.isQuotaExceeded && _vm.currentFolder)?_c('UploadPicker',{staticClass:\"files-list__header-upload-button\",class:{ 'files-list__header-upload-button--narrow': _vm.isNarrow },attrs:{\"allow-folders\":\"\",\"no-label\":_vm.isNarrow,\"content\":_vm.getContent,\"destination\":_vm.currentFolder,\"forbidden-characters\":_vm.forbiddenCharacters,\"multiple\":\"\",\"primary\":\"\"},on:{\"failed\":_vm.onUploadFail,\"uploaded\":_vm.onUpload}}):_vm._e()],1),_vm._v(\" \"),_c('BreadCrumbs',{attrs:{\"path\":_vm.directory},on:{\"reload\":_vm.fetchContent}}),_vm._v(\" \"),(_vm.isRefreshing)?_c('NcLoadingIcon',{staticClass:\"files-list__refresh-icon\",attrs:{\"name\":_vm.t('files', 'File list is reloading')}}):_vm._e(),_vm._v(\" \"),_c('NcActions',{staticClass:\"files-list__header-actions\",attrs:{\"inline\":1,\"variant\":\"tertiary\",\"force-name\":\"\"}},_vm._l((_vm.enabledFileListActions),function(action){return _c('NcActionButton',{key:action.id,attrs:{\"disabled\":!!_vm.loadingAction,\"data-cy-files-list-action\":action.id,\"close-after-click\":\"\"},on:{\"click\":function($event){return _vm.execFileListAction(action)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.loadingAction === action.id)?_c('NcLoadingIcon',{attrs:{\"size\":18}}):(action.iconSvgInline !== undefined && _vm.currentView)?_c('NcIconSvgWrapper',{attrs:{\"svg\":action.iconSvgInline(_vm.currentView)}}):_vm._e()]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.actionDisplayName(action))+\"\\n\\t\\t\\t\")])}),1),_vm._v(\" \"),_c('FileListFilters'),_vm._v(\" \"),(_vm.enableGridView)?_c('NcButton',{staticClass:\"files-list__header-grid-button\",attrs:{\"aria-label\":_vm.gridViewButtonLabel,\"title\":_vm.gridViewButtonLabel,\"variant\":\"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 && _vm.currentFolder)?_c('DragAndDropNotice',{attrs:{\"current-folder\":_vm.currentFolder}}):_vm._e(),_vm._v(\" \"),(!_vm.currentView)?_c('NcLoadingIcon',{staticClass:\"files-list__loading-icon\",attrs:{\"size\":38,\"name\":_vm.t('files', 'Loading current folder')}}):_c('FilesListVirtual',{ref:\"filesListVirtual\",attrs:{\"current-folder\":_vm.currentFolder,\"current-view\":_vm.currentView,\"nodes\":_vm.dirContentsSorted,\"summary\":_vm.summary},scopedSlots:_vm._u([{key:\"empty\",fn:function(){return [(_vm.loading && !_vm.isRefreshing)?_c('NcLoadingIcon',{staticClass:\"files-list__loading-icon\",attrs:{\"size\":38,\"name\":_vm.t('files', 'Loading current folder')}}):(_vm.error)?_c('NcEmptyContent',{attrs:{\"name\":_vm.error,\"data-cy-files-content-error\":\"\"},scopedSlots:_vm._u([{key:\"action\",fn:function(){return [_c('NcButton',{attrs:{\"variant\":\"secondary\"},on:{\"click\":_vm.fetchContent},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconReload',{attrs:{\"size\":20}})]},proxy:true}])},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Retry'))+\"\\n\\t\\t\\t\\t\\t\")])]},proxy:true},{key:\"icon\",fn:function(){return [_c('IconAlertCircleOutline')]},proxy:true}])}):(_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,\"variant\":\"primary\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Go back'))+\"\\n\\t\\t\\t\\t\\t\")])]},proxy:true}:null,{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"svg\":_vm.currentView?.icon}})]},proxy:true}],null,true)})]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\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 *\n * @param error - Any exception\n * @return - 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 *\n * @param error - An exception from webdav request\n * @return 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 folder is unavailable, please try again later or contact the administration');\n }\n else if (status === 503) {\n return t('files', 'Storage is temporarily not available');\n }\n }\n // We don't need to show abortion error to the user as those are expected.\n if (error.name === 'AbortError') {\n return null;\n }\n return t('files', 'Unexpected error: {error}', { error: error.message });\n }\n return t('files', 'Unknown error');\n}\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.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-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesList.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!./FilesList.vue?vue&type=style&index=0&id=243e0eb8&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=243e0eb8&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=243e0eb8&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=243e0eb8&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 \"243e0eb8\",\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(_setup.NcAppNavigation,{staticClass:\"files-navigation\",attrs:{\"data-cy-files-navigation\":\"\",\"aria-label\":_setup.t('files', 'Files')},scopedSlots:_vm._u([{key:\"search\",fn:function(){return [_c(_setup.FilesNavigationSearch)]},proxy:true},{key:\"default\",fn:function(){return [_c(_setup.FilesNavigationList),_vm._v(\" \"),_c(_setup.FilesAppSettings,{attrs:{\"open\":_setup.settingsOpened,\"data-cy-files-navigation-settings\":\"\"},on:{\"update:open\":function($event){_setup.settingsOpened=$event},\"close\":function($event){_setup.settingsOpened = false}}})]},proxy:true},{key:\"footer\",fn:function(){return [_c('ul',{staticClass:\"app-navigation-entry__settings\"},[_c(_setup.NavigationQuota),_vm._v(\" \"),_c(_setup.NcAppNavigationItem,{attrs:{\"name\":_setup.t('files', 'Files settings'),\"data-cy-files-navigation-settings-button\":\"\"},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();_setup.settingsOpened = true}}},[_c(_setup.IconCog,{attrs:{\"slot\":\"icon\",\"size\":20},slot:\"icon\"})],1)],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./CogOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./CogOutline.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CogOutline.vue?vue&type=template&id=96fed70c\"\nimport script from \"./CogOutline.vue?vue&type=script&lang=js\"\nexport * from \"./CogOutline.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-outline-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,8A4,4 0 0,1 16,12A4,4 0 0,1 12,16A4,4 0 0,1 8,12A4,4 0 0,1 12,8M12,10A2,2 0 0,0 10,12A2,2 0 0,0 12,14A2,2 0 0,0 14,12A2,2 0 0,0 12,10M10,22C9.75,22 9.54,21.82 9.5,21.58L9.13,18.93C8.5,18.68 7.96,18.34 7.44,17.94L4.95,18.95C4.73,19.03 4.46,18.95 4.34,18.73L2.34,15.27C2.21,15.05 2.27,14.78 2.46,14.63L4.57,12.97L4.5,12L4.57,11L2.46,9.37C2.27,9.22 2.21,8.95 2.34,8.73L4.34,5.27C4.46,5.05 4.73,4.96 4.95,5.05L7.44,6.05C7.96,5.66 8.5,5.32 9.13,5.07L9.5,2.42C9.54,2.18 9.75,2 10,2H14C14.25,2 14.46,2.18 14.5,2.42L14.87,5.07C15.5,5.32 16.04,5.66 16.56,6.05L19.05,5.05C19.27,4.96 19.54,5.05 19.66,5.27L21.66,8.73C21.79,8.95 21.73,9.22 21.54,9.37L19.43,11L19.5,12L19.43,13L21.54,14.63C21.73,14.78 21.79,15.05 21.66,15.27L19.66,18.73C19.54,18.95 19.27,19.04 19.05,18.95L16.56,17.95C16.04,18.34 15.5,18.68 14.87,18.93L14.5,21.58C14.46,21.82 14.25,22 14,22H10M11.25,4L10.88,6.61C9.68,6.86 8.62,7.5 7.85,8.39L5.44,7.35L4.69,8.65L6.8,10.2C6.4,11.37 6.4,12.64 6.8,13.8L4.68,15.36L5.43,16.66L7.86,15.62C8.63,16.5 9.68,17.14 10.87,17.38L11.24,20H12.76L13.13,17.39C14.32,17.14 15.37,16.5 16.14,15.62L18.57,16.66L19.32,15.36L17.2,13.81C17.6,12.64 17.6,11.37 17.2,10.2L19.31,8.65L18.56,7.35L16.15,8.39C15.38,7.5 14.32,6.86 13.12,6.62L12.75,4H11.25Z\"}},[(_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(_setup.NcAppNavigationList,{class:_vm.$style.filesNavigationList,attrs:{\"aria-label\":_setup.t('files', 'Views')}},_vm._l((_setup.rootViews),function(view){return _c(_setup.FilesNavigationListItem,{key:view.id,attrs:{\"view\":view}})}),1)\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 { getCurrentUser } from '@nextcloud/auth';\nimport axios from '@nextcloud/axios';\nimport { getRemoteURL } from '@nextcloud/files/dav';\nimport { getCanonicalLocale, getLanguage } from '@nextcloud/l10n';\nimport { dirname, encodePath, join } from '@nextcloud/paths';\nimport { generateOcsUrl } from '@nextcloud/router';\nimport { getContents as getFiles } from './Files.ts';\nexport const folderTreeId = 'folders';\nexport const sourceRoot = `${getRemoteURL()}/files/${getCurrentUser()?.uid}`;\nconst collator = Intl.Collator([getLanguage(), getCanonicalLocale()], {\n numeric: true,\n usage: 'sort',\n});\nconst compareNodes = (a, b) => collator.compare(a.displayName ?? a.basename, b.displayName ?? b.basename);\n/**\n * Get all tree nodes recursively\n *\n * @param tree - The tree to process\n * @param currentPath - The current path\n * @param nodes - The nodes collected so far\n */\nfunction getTreeNodes(tree, currentPath = '/', nodes = []) {\n const sortedTree = tree.toSorted(compareNodes);\n for (const { id, basename, displayName, children } of sortedTree) {\n const path = join(currentPath, basename);\n const source = `${sourceRoot}${path}`;\n const node = {\n source,\n encodedSource: encodeSource(source),\n path,\n fileid: id,\n basename,\n };\n if (displayName) {\n node.displayName = displayName;\n }\n nodes.push(node);\n if (children.length > 0) {\n getTreeNodes(children, path, nodes);\n }\n }\n return nodes;\n}\n/**\n * Get folder tree nodes\n *\n * @param path - The path to get the tree from\n * @param depth - The depth to fetch\n * @param withParents - Whether to include parent folders in the response\n */\nexport async function getFolderTreeNodes(path = '/', depth = 1, withParents = false) {\n const { data: tree } = await axios.get(generateOcsUrl('/apps/files/api/v1/folder-tree'), {\n params: new URLSearchParams({ path, depth: String(depth), withParents: String(withParents) }),\n });\n const nodes = getTreeNodes(tree, withParents ? '/' : path);\n return nodes;\n}\nexport const getContents = (path, options) => getFiles(path, options);\n/**\n * Encode source URL\n *\n * @param source - The source URL\n */\nexport function encodeSource(source) {\n const { origin } = new URL(source);\n return origin + encodePath(source.slice(origin.length));\n}\n/**\n * Get parent source URL\n *\n * @param source - The source URL\n */\nexport function getSourceParent(source) {\n const parent = dirname(source);\n if (parent === sourceRoot) {\n return folderTreeId;\n }\n return `${folderTreeId}::${encodeSource(parent)}`;\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c(_setup.NcAppNavigationItem,{staticClass:\"files-navigation__item\",attrs:{\"allow-collapse\":\"\",\"loading\":_setup.isLoading,\"data-cy-files-navigation-item\":_vm.view.id,\"exact\":_setup.hasChildViews,\"name\":_vm.view.name,\"open\":_setup.isExpanded,\"pinned\":_vm.view.sticky,\"to\":_setup.navigationRoute},on:{\"update:open\":_setup.onExpandCollapse},scopedSlots:_vm._u([(_vm.view.icon)?{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"svg\":_vm.view.icon}})]},proxy:true}:null],null,true)},[_vm._v(\" \"),(!_setup.hasChildViews && !_setup.childViewsLoaded && _vm.view.loadChildViews)?_c('li',{directives:[{name:\"show\",rawName:\"v-show\",value:(false),expression:\"false\"}],attrs:{\"role\":\"presentation\"}}):_vm._e(),_vm._v(\" \"),_vm._l((_setup.sortedChildViews),function(childView){return _c('FilesNavigationListItem',{key:childView.id,attrs:{\"level\":_vm.level + 1,\"view\":childView}})})],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-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesNavigationListItem.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-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesNavigationListItem.vue?vue&type=script&setup=true&lang=ts\"","import { render, staticRenderFns } from \"./FilesNavigationListItem.vue?vue&type=template&id=008accd4\"\nimport script from \"./FilesNavigationListItem.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./FilesNavigationListItem.vue?vue&type=script&setup=true&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-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesNavigationList.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-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesNavigationList.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??clonedRuleSet-3.use[1]!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesNavigationList.vue?vue&type=style&index=0&id=1b62d532&prod&module=true&lang=css\";\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??clonedRuleSet-3.use[1]!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesNavigationList.vue?vue&type=style&index=0&id=1b62d532&prod&module=true&lang=css\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FilesNavigationList.vue?vue&type=template&id=1b62d532\"\nimport script from \"./FilesNavigationList.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./FilesNavigationList.vue?vue&type=script&setup=true&lang=ts\"\nimport style0 from \"./FilesNavigationList.vue?vue&type=style&index=0&id=1b62d532&prod&module=true&lang=css\"\n\n\n\n\nfunction injectStyles (context) {\n \n this[\"$style\"] = (style0.locals || style0)\n\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 injectStyles,\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(_setup.NcAppNavigationSearch,{attrs:{\"label\":_setup.searchLabel},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c(_setup.NcActions,{attrs:{\"aria-label\":_setup.t('files', 'Search scope options'),\"disabled\":_setup.isSearchView},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.searchStore.scope === 'globally' ? _setup.mdiSearchWeb : _setup.mdiMagnify}})]},proxy:true}])},[_vm._v(\" \"),_c(_setup.NcActionButton,{attrs:{\"close-after-click\":\"\"},on:{\"click\":function($event){_setup.searchStore.scope = 'filter'}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiMagnify}})]},proxy:true}])},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_setup.t('files', 'Search here'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c(_setup.NcActionButton,{attrs:{\"close-after-click\":\"\"},on:{\"click\":function($event){_setup.searchStore.scope = 'globally'}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiSearchWeb}})]},proxy:true}])},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_setup.t('files', 'Search everywhere'))+\"\\n\\t\\t\\t\")])],1)]},proxy:true}]),model:{value:(_setup.searchStore.query),callback:function ($$v) {_vm.$set(_setup.searchStore, \"query\", $$v)},expression:\"searchStore.query\"}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesNavigationSearch.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-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesNavigationSearch.vue?vue&type=script&setup=true&lang=ts\"","/**\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { onUnmounted } from 'vue';\nimport { useRouter } from 'vue-router/composables';\n/**\n * Helper until we use Vue-Router v4 (Vue3).\n *\n * @param fn - The navigation guard\n */\nexport function onBeforeNavigation(fn) {\n const router = useRouter();\n const remove = router.beforeResolve(fn);\n onUnmounted(remove);\n}\n","import { render, staticRenderFns } from \"./FilesNavigationSearch.vue?vue&type=template&id=7f26c822\"\nimport script from \"./FilesNavigationSearch.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./FilesNavigationSearch.vue?vue&type=script&setup=true&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","/* 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","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ChartPieOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ChartPieOutline.vue?vue&type=script&lang=js\"","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\n\n\n\n\n","import { render, staticRenderFns } from \"./ChartPieOutline.vue?vue&type=template&id=a29cc97a\"\nimport script from \"./ChartPieOutline.vue?vue&type=script&lang=js\"\nexport * from \"./ChartPieOutline.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-outline-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 11H19.95Q19.58 8.25 17.66 6.34 15.75 4.43 13 4.05M11 19.95V4.05Q8 4.43 6 6.69 4 8.95 4 12T6 17.31Q8 19.58 11 19.95M13 19.95Q15.75 19.6 17.68 17.68 19.6 15.75 19.95 13H13M12 12M12 22Q9.93 22 8.1 21.21 6.28 20.43 4.93 19.08 3.58 17.73 2.79 15.9 2 14.08 2 12T2.79 8.1Q3.58 6.28 4.93 4.93 6.28 3.58 8.1 2.79 9.93 2 12 2T15.89 2.79Q17.7 3.58 19.06 4.94 20.43 6.3 21.21 8.11 22 9.93 22 12 22 14.05 21.21 15.88 20.43 17.7 19.08 19.06 17.73 20.43 15.9 21.21 14.08 22 12 22Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\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!./NavigationQuota.vue?vue&type=style&index=0&id=7c2cda32&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=7c2cda32&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=7c2cda32&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=7c2cda32&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 \"7c2cda32\",\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,_setup=_vm._self._setupProxy;return _c(_setup.NcAppSettingsDialog,{attrs:{\"legacy\":false,\"name\":_setup.t('files', 'Files settings'),\"no-version\":\"\",\"open\":_vm.open,\"show-navigation\":\"\"},on:{\"update:open\":function($event){return _setup.emit('close')}}},[_c(_setup.FilesAppSettingsGeneral),_vm._v(\" \"),_c(_setup.FilesAppSettingsAppearance),_vm._v(\" \"),_c(_setup.FilesAppSettingsLegacyApi),_vm._v(\" \"),_c(_setup.FilesAppSettingsWarnings),_vm._v(\" \"),_c(_setup.FilesAppSettingsWebDav),_vm._v(\" \"),_c(_setup.FilesAppSettingsShortcuts)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c(_setup.NcAppSettingsSection,{attrs:{\"id\":\"appearance\",\"name\":_setup.t('files', 'Appearance')}},[_c(_setup.NcFormBox,[_c(_setup.NcFormBoxSwitch,{attrs:{\"label\":_setup.t('files', 'Show hidden files')},on:{\"update:modelValue\":function($event){return _setup.store.update('show_hidden', $event)}},model:{value:(_setup.store.userConfig.show_hidden),callback:function ($$v) {_vm.$set(_setup.store.userConfig, \"show_hidden\", $$v)},expression:\"store.userConfig.show_hidden\"}}),_vm._v(\" \"),_c(_setup.NcFormBoxSwitch,{attrs:{\"label\":_setup.t('files', 'Show file type column')},on:{\"update:modelValue\":function($event){return _setup.store.update('show_mime_column', $event)}},model:{value:(_setup.store.userConfig.show_mime_column),callback:function ($$v) {_vm.$set(_setup.store.userConfig, \"show_mime_column\", $$v)},expression:\"store.userConfig.show_mime_column\"}}),_vm._v(\" \"),_c(_setup.NcFormBoxSwitch,{attrs:{\"label\":_setup.t('files', 'Show file extensions')},on:{\"update:modelValue\":function($event){return _setup.store.update('show_files_extensions', $event)}},model:{value:(_setup.store.userConfig.show_files_extensions),callback:function ($$v) {_vm.$set(_setup.store.userConfig, \"show_files_extensions\", $$v)},expression:\"store.userConfig.show_files_extensions\"}}),_vm._v(\" \"),_c(_setup.NcFormBoxSwitch,{attrs:{\"label\":_setup.t('files', 'Crop image previews')},on:{\"update:modelValue\":function($event){return _setup.store.update('crop_image_previews', $event)}},model:{value:(_setup.store.userConfig.crop_image_previews),callback:function ($$v) {_vm.$set(_setup.store.userConfig, \"crop_image_previews\", $$v)},expression:\"store.userConfig.crop_image_previews\"}})],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-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesAppSettingsAppearance.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-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesAppSettingsAppearance.vue?vue&type=script&setup=true&lang=ts\"","import { render, staticRenderFns } from \"./FilesAppSettingsAppearance.vue?vue&type=template&id=1d0fcc36\"\nimport script from \"./FilesAppSettingsAppearance.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./FilesAppSettingsAppearance.vue?vue&type=script&setup=true&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(_setup.NcAppSettingsSection,{attrs:{\"id\":\"settings\",\"name\":_setup.t('files', 'General')}},[_c(_setup.NcFormBox,[_c(_setup.NcFormBoxSwitch,{attrs:{\"label\":_setup.t('files', 'Sort favorites first')},on:{\"update:modelValue\":function($event){return _setup.store.update('sort_favorites_first', $event)}},model:{value:(_setup.store.userConfig.sort_favorites_first),callback:function ($$v) {_vm.$set(_setup.store.userConfig, \"sort_favorites_first\", $$v)},expression:\"store.userConfig.sort_favorites_first\"}}),_vm._v(\" \"),_c(_setup.NcFormBoxSwitch,{attrs:{\"label\":_setup.t('files', 'Sort folders before files')},on:{\"update:modelValue\":function($event){return _setup.store.update('sort_folders_first', $event)}},model:{value:(_setup.store.userConfig.sort_folders_first),callback:function ($$v) {_vm.$set(_setup.store.userConfig, \"sort_folders_first\", $$v)},expression:\"store.userConfig.sort_folders_first\"}}),_vm._v(\" \"),_c(_setup.NcFormBoxSwitch,{attrs:{\"label\":_setup.t('files', 'Enable folder tree view')},on:{\"update:modelValue\":function($event){return _setup.store.update('folder_tree', $event)}},model:{value:(_setup.store.userConfig.folder_tree),callback:function ($$v) {_vm.$set(_setup.store.userConfig, \"folder_tree\", $$v)},expression:\"store.userConfig.folder_tree\"}})],1),_vm._v(\" \"),_c(_setup.NcRadioGroup,{attrs:{\"label\":_setup.t('files', 'Default view')},on:{\"update:modelValue\":function($event){return _setup.store.update('default_view', $event)}},model:{value:(_setup.store.userConfig.default_view),callback:function ($$v) {_vm.$set(_setup.store.userConfig, \"default_view\", $$v)},expression:\"store.userConfig.default_view\"}},[_c(_setup.NcRadioGroupButton,{attrs:{\"label\":_setup.t('files', 'All files'),\"value\":\"files\"},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiFolderOutline}})]},proxy:true}])}),_vm._v(\" \"),_c(_setup.NcRadioGroupButton,{attrs:{\"label\":_setup.t('files', 'Personal files'),\"value\":\"personal\"},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiAccountOutline}})]},proxy:true}])})],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-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesAppSettingsGeneral.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-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesAppSettingsGeneral.vue?vue&type=script&setup=true&lang=ts\"","import { render, staticRenderFns } from \"./FilesAppSettingsGeneral.vue?vue&type=template&id=286756ea\"\nimport script from \"./FilesAppSettingsGeneral.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./FilesAppSettingsGeneral.vue?vue&type=script&setup=true&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-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesAppSettingsLegacyApiEntry.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-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesAppSettingsLegacyApiEntry.vue?vue&type=script&setup=true&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{ref:\"el\"})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./FilesAppSettingsLegacyApiEntry.vue?vue&type=template&id=6d8612e1\"\nimport script from \"./FilesAppSettingsLegacyApiEntry.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./FilesAppSettingsLegacyApiEntry.vue?vue&type=script&setup=true&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-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesAppSettingsLegacyApi.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-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesAppSettingsLegacyApi.vue?vue&type=script&setup=true&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_setup.apiSettings.length !== 0)?_c(_setup.NcAppSettingsSection,{attrs:{\"id\":\"api-settings\",\"name\":_setup.t('files', 'Additional settings')}},_vm._l((_setup.apiSettings),function(setting){return _c(_setup.FilesAppSettingsLegacyApiEntry,{key:setting.name,attrs:{\"setting\":setting}})}),1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./FilesAppSettingsLegacyApi.vue?vue&type=template&id=f4559f9c\"\nimport script from \"./FilesAppSettingsLegacyApi.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./FilesAppSettingsLegacyApi.vue?vue&type=script&setup=true&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(_setup.NcAppSettingsShortcutsSection,[_c(_setup.NcHotkeyList,{attrs:{\"label\":_setup.t('files', 'Actions')}},[_c(_setup.NcHotkey,{attrs:{\"label\":_setup.t('files', 'File actions'),\"hotkey\":\"A\"}}),_vm._v(\" \"),_vm._l((_setup.actionHotkeys),function(hotkey){return _c(_setup.NcHotkey,{key:hotkey.id,attrs:{\"label\":hotkey.label,\"hotkey\":hotkey.hotkey}})})],2),_vm._v(\" \"),_c(_setup.NcHotkeyList,{attrs:{\"label\":_setup.t('files', 'Selection')}},[_c(_setup.NcHotkey,{attrs:{\"label\":_setup.t('files', 'Select all files'),\"hotkey\":\"Control A\"}}),_vm._v(\" \"),_c(_setup.NcHotkey,{attrs:{\"label\":_setup.t('files', 'Deselect all'),\"hotkey\":\"Escape\"}}),_vm._v(\" \"),_c(_setup.NcHotkey,{attrs:{\"label\":_setup.t('files', 'Select or deselect'),\"hotkey\":\"Control Space\"}}),_vm._v(\" \"),_c(_setup.NcHotkey,{attrs:{\"label\":_setup.t('files', 'Select a range'),\"hotkey\":\"Control Shift Space\"}})],1),_vm._v(\" \"),_c(_setup.NcHotkeyList,{attrs:{\"label\":_setup.t('files', 'Navigation')}},[_c(_setup.NcHotkey,{attrs:{\"label\":_setup.t('files', 'Go to parent folder'),\"hotkey\":\"Alt ArrowUp\"}}),_vm._v(\" \"),_c(_setup.NcHotkey,{attrs:{\"label\":_setup.t('files', 'Go to file above'),\"hotkey\":\"ArrowUp\"}}),_vm._v(\" \"),_c(_setup.NcHotkey,{attrs:{\"label\":_setup.t('files', 'Go to file below'),\"hotkey\":\"ArrowDown\"}}),_vm._v(\" \"),_c(_setup.NcHotkey,{attrs:{\"label\":_setup.t('files', 'Go left in grid'),\"hotkey\":\"ArrowLeft\"}}),_vm._v(\" \"),_c(_setup.NcHotkey,{attrs:{\"label\":_setup.t('files', 'Go right in grid'),\"hotkey\":\"ArrowRight\"}})],1),_vm._v(\" \"),_c(_setup.NcHotkeyList,{attrs:{\"label\":_setup.t('files', 'View')}},[_c(_setup.NcHotkey,{attrs:{\"label\":_setup.t('files', 'Toggle grid view'),\"hotkey\":\"V\"}}),_vm._v(\" \"),_c(_setup.NcHotkey,{attrs:{\"label\":_setup.t('files', 'Show those shortcuts'),\"hotkey\":\"?\"}})],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-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesAppSettingsShortcuts.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-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesAppSettingsShortcuts.vue?vue&type=script&setup=true&lang=ts\"","import { render, staticRenderFns } from \"./FilesAppSettingsShortcuts.vue?vue&type=template&id=5a8abf86\"\nimport script from \"./FilesAppSettingsShortcuts.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./FilesAppSettingsShortcuts.vue?vue&type=script&setup=true&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-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesAppSettingsWarnings.vue?vue&type=script&lang=ts&setup=true\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesAppSettingsWarnings.vue?vue&type=script&lang=ts&setup=true\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c(_setup.NcAppSettingsSection,{attrs:{\"id\":\"warning\",\"name\":_setup.t('files', 'Warnings')}},[_c(_setup.NcFormBox,[_c(_setup.NcFormBoxSwitch,{attrs:{\"label\":_setup.t('files', 'Warn before changing a file extension')},on:{\"update:modelValue\":function($event){return _setup.store.update('show_dialog_file_extension', $event)}},model:{value:(_setup.store.userConfig.show_dialog_file_extension),callback:function ($$v) {_vm.$set(_setup.store.userConfig, \"show_dialog_file_extension\", $$v)},expression:\"store.userConfig.show_dialog_file_extension\"}}),_vm._v(\" \"),_c(_setup.NcFormBoxSwitch,{attrs:{\"label\":_setup.t('files', 'Warn before deleting a file')},on:{\"update:modelValue\":function($event){return _setup.store.update('show_dialog_deletion', $event)}},model:{value:(_setup.store.userConfig.show_dialog_deletion),callback:function ($$v) {_vm.$set(_setup.store.userConfig, \"show_dialog_deletion\", $$v)},expression:\"store.userConfig.show_dialog_deletion\"}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./FilesAppSettingsWarnings.vue?vue&type=template&id=02608f74\"\nimport script from \"./FilesAppSettingsWarnings.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./FilesAppSettingsWarnings.vue?vue&type=script&lang=ts&setup=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 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(_setup.NcAppSettingsSection,{attrs:{\"id\":\"webdav\",\"name\":\"WebDAV\"}},[_c(_setup.NcFormBox,[_c(_setup.NcFormBoxCopyButton,{attrs:{\"label\":_setup.t('files', 'WebDAV URL'),\"value\":_setup.webDavUrl}}),_vm._v(\" \"),(_setup.isTwoFactorEnabled)?_c(_setup.NcFormBoxButton,{attrs:{\"label\":_setup.t('files', 'Create an app password'),\"description\":_setup.t('files', 'Required for WebDAV authentication because Two-Factor Authentication is enabled for this account.'),\"href\":_setup.appPasswordUrl,\"target\":\"_blank\"}}):_vm._e(),_vm._v(\" \"),_c(_setup.NcFormBoxButton,{attrs:{\"label\":_setup.t('files', 'How to access files using WebDAV'),\"href\":_setup.webDavDocsUrl,\"target\":\"_blank\"}})],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-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesAppSettingsWebDav.vue?vue&type=script&lang=ts&setup=true\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesAppSettingsWebDav.vue?vue&type=script&lang=ts&setup=true\"","import { render, staticRenderFns } from \"./FilesAppSettingsWebDav.vue?vue&type=template&id=601f53e8\"\nimport script from \"./FilesAppSettingsWebDav.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./FilesAppSettingsWebDav.vue?vue&type=script&lang=ts&setup=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 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-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesAppSettings.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-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesAppSettings.vue?vue&type=script&setup=true&lang=ts\"","import { render, staticRenderFns } from \"./FilesAppSettings.vue?vue&type=template&id=72195bd8\"\nimport script from \"./FilesAppSettings.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./FilesAppSettings.vue?vue&type=script&setup=true&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-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesNavigation.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-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesNavigation.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!./FilesNavigation.vue?vue&type=style&index=0&id=bb94c4f2&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!./FilesNavigation.vue?vue&type=style&index=0&id=bb94c4f2&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FilesNavigation.vue?vue&type=template&id=bb94c4f2&scoped=true\"\nimport script from \"./FilesNavigation.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./FilesNavigation.vue?vue&type=script&setup=true&lang=ts\"\nimport style0 from \"./FilesNavigation.vue?vue&type=style&index=0&id=bb94c4f2&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 \"bb94c4f2\",\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(_setup.NcAppSidebar,{attrs:{\"data-cy-sidebar\":\"\",\"force-menu\":\"\",\"active\":_setup.sidebar.activeTab,\"background\":_setup.background,\"empty\":!_setup.sidebar.hasContext,\"loading\":!_setup.sidebar.hasContext,\"name\":_setup.sidebar.currentNode?.displayname ?? _setup.t('files', 'Loading …'),\"no-toggle\":\"\",\"open\":_setup.sidebar.isOpen},on:{\"update:active\":function($event){return _vm.$set(_setup.sidebar, \"activeTab\", $event)},\"closed\":_setup.onClosed,\"opened\":_setup.onOpened,\"update:open\":_setup.onToggle},scopedSlots:_vm._u([(_setup.sidebar.currentNode)?{key:\"subname\",fn:function(){return [_c(_setup.FilesSidebarSubname,{attrs:{\"node\":_setup.sidebar.currentNode}})]},proxy:true}:null,(_setup.sidebar.currentContext)?{key:\"secondary-actions\",fn:function(){return _vm._l((_setup.sidebar.currentActions),function(action){return _c(_setup.NcActionButton,{key:action.id,attrs:{\"close-after-click\":\"\"},on:{\"click\":function($event){return action.onClick(_setup.sidebar.currentContext)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"svg\":action.iconSvgInline(_setup.sidebar.currentContext)}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(action.displayName(_setup.sidebar.currentContext))+\"\\n\\t\\t\")])})},proxy:true}:null],null,true)},[_vm._v(\" \"),_vm._v(\" \"),(_setup.sidebar.hasContext)?_vm._l((_setup.sidebar.currentTabs),function(tab){return _c(_setup.FilesSidebarTab,{key:tab.id,attrs:{\"active\":_setup.sidebar.activeTab === tab.id,\"tab\":tab}})}):_vm._e()],2)\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',{class:_vm.$style.filesSidebarSubname},[(_setup.isFavourited)?_c(_setup.NcIconSvgWrapper,{attrs:{\"inline\":\"\",\"path\":_setup.mdiStar,\"name\":_setup.t('files', 'Favorite')}}):_vm._e(),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_setup.size))]),_vm._v(\" \"),(_vm.node.mtime)?_c('span',[_c('span',{class:_vm.$style.filesSidebarSubname__separator},[_vm._v(\"•\")]),_vm._v(\" \"),_c(_setup.NcDateTime,{attrs:{\"timestamp\":_vm.node.mtime}})],1):_vm._e(),_vm._v(\" \"),(_vm.node.owner)?[_c('span',{class:_vm.$style.filesSidebarSubname__separator},[_vm._v(\"•\")]),_vm._v(\" \"),_c(_setup.NcUserBubble,{class:_vm.$style.filesSidebarSubname__userBubble,attrs:{\"title\":_setup.t('files', 'Owner'),\"user\":_vm.node.owner,\"display-name\":_vm.node.attributes['owner-display-name']}})]:_vm._e()],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-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesSidebarSubname.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-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesSidebarSubname.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??clonedRuleSet-3.use[1]!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesSidebarSubname.vue?vue&type=style&index=0&id=7bd1e3c0&prod&module=true&lang=css\";\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??clonedRuleSet-3.use[1]!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesSidebarSubname.vue?vue&type=style&index=0&id=7bd1e3c0&prod&module=true&lang=css\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FilesSidebarSubname.vue?vue&type=template&id=7bd1e3c0\"\nimport script from \"./FilesSidebarSubname.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./FilesSidebarSubname.vue?vue&type=script&setup=true&lang=ts\"\nimport style0 from \"./FilesSidebarSubname.vue?vue&type=style&index=0&id=7bd1e3c0&prod&module=true&lang=css\"\n\n\n\n\nfunction injectStyles (context) {\n \n this[\"$style\"] = (style0.locals || style0)\n\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 injectStyles,\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(_setup.NcAppSidebarTab,{attrs:{\"id\":_vm.tab.id,\"order\":_vm.tab.order,\"name\":_vm.tab.displayName},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"svg\":_vm.tab.iconSvgInline}})]},proxy:true}])},[_vm._v(\" \"),(_setup.loading)?_c(_setup.NcEmptyContent,{scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcLoadingIcon)]},proxy:true}],null,false,1675040227)}):_c(_vm.tab.tagName,{tag:\"component\",domProps:{\"active\":_vm.active,\"node\":_setup.sidebar.currentNode,\"folder\":_setup.activeStore.activeFolder,\"view\":_setup.activeStore.activeView}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { N as NcActionButton } from \"./chunks/NcActionButton-1gSJfFUC.mjs\";\nimport { N as NcActionButtonGroup } from \"./chunks/NcActionButtonGroup-eZxqibUd.mjs\";\nimport NcActionCaption from \"./Components/NcActionCaption.mjs\";\nimport { N as NcActionCheckbox } from \"./chunks/NcActionCheckbox-23CmleUh.mjs\";\nimport { N as NcActionInput } from \"./chunks/NcActionInput-UPwE2Dky.mjs\";\nimport NcActionLink from \"./Components/NcActionLink.mjs\";\nimport { N as NcActionRadio } from \"./chunks/NcActionRadio-Dd3CsuiD.mjs\";\nimport NcActionRouter from \"./Components/NcActionRouter.mjs\";\nimport { N as NcActions } from \"./chunks/NcActions-BcLis_nr.mjs\";\nimport NcActionSeparator from \"./Components/NcActionSeparator.mjs\";\nimport NcActionText from \"./Components/NcActionText.mjs\";\nimport { N as NcActionTextEditable } from \"./chunks/NcActionTextEditable-CIsAP-pp.mjs\";\nimport { N as NcAppContent } from \"./chunks/NcAppContent-CeVqX0gV.mjs\";\nimport NcAppContentDetails from \"./Components/NcAppContentDetails.mjs\";\nimport NcAppContentList from \"./Components/NcAppContentList.mjs\";\nimport { N as NcAppNavigation } from \"./chunks/NcAppNavigation-BfzJA6cb.mjs\";\nimport { N as NcAppNavigationCaption } from \"./chunks/NcAppNavigationCaption-3YHrxAYS.mjs\";\nimport NcAppNavigationIconBullet from \"./Components/NcAppNavigationIconBullet.mjs\";\nimport { N as NcAppNavigationItem } from \"./chunks/NcAppNavigationItem-D30ztZfZ.mjs\";\nimport NcAppNavigationList from \"./Components/NcAppNavigationList.mjs\";\nimport { N as NcAppNavigationNew } from \"./chunks/NcAppNavigationNew-Ce_TheyK.mjs\";\nimport { N as NcAppNavigationNewItem } from \"./chunks/NcAppNavigationNewItem-BskLwwWH.mjs\";\nimport { N as NcAppNavigationSearch } from \"./chunks/NcAppNavigationSearch-CkcBGG0H.mjs\";\nimport { N as NcAppNavigationSettings } from \"./chunks/NcAppNavigationSettings-BjyBA5Mj.mjs\";\nimport NcAppNavigationSpacer from \"./Components/NcAppNavigationSpacer.mjs\";\nimport { N as NcAppSettingsDialog } from \"./chunks/NcAppSettingsDialog-vBeCGFqk.mjs\";\nimport { N as NcAppSettingsSection } from \"./chunks/NcAppSettingsSection-BjQllLEA.mjs\";\nimport { N as NcAppSettingsShortcutsSection } from \"./chunks/NcAppSettingsShortcutsSection-DblUBaWP.mjs\";\nimport { N as NcAppSidebar } from \"./chunks/NcAppSidebar-Cx0PlofZ.mjs\";\nimport { N as NcAppSidebarHeader } from \"./chunks/NcAppSidebarHeader-CBE4tNYb.mjs\";\nimport NcAppSidebarTab from \"./Components/NcAppSidebarTab.mjs\";\nimport { N as NcAssistantButton } from \"./chunks/NcAssistantButton-D1Miejvu.mjs\";\nimport NcAssistantContent from \"./Components/NcAssistantContent.mjs\";\nimport { N as NcAssistantIcon } from \"./chunks/NcAssistantIcon-DCx6AaSW.mjs\";\nimport { N as NcAvatar } from \"./chunks/NcAvatar-DC2fiCH-.mjs\";\nimport { u } from \"./chunks/NcAvatar-DC2fiCH-.mjs\";\nimport { N as NcBlurHash } from \"./chunks/NcBlurHash-KSj0HXbX.mjs\";\nimport { N as NcBreadcrumb } from \"./chunks/NcBreadcrumb-VwnF27KB.mjs\";\nimport { N as NcBreadcrumbs } from \"./chunks/NcBreadcrumbs-CpXJ-OQ1.mjs\";\nimport { N as NcButton } from \"./chunks/NcButton-BaZAY-tN.mjs\";\nimport { N as NcCheckboxRadioSwitch } from \"./chunks/NcCheckboxRadioSwitch-DJmw98x9.mjs\";\nimport { N as NcCollectionList } from \"./chunks/NcCollectionList-U0EoWgeN.mjs\";\nimport { N as NcColorPicker } from \"./chunks/NcColorPicker-BfApfazi.mjs\";\nimport { N as NcContent } from \"./chunks/NcContent-DFOsZ6pm.mjs\";\nimport { N as NcCounterBubble } from \"./chunks/NcCounterBubble-oxV8oMlX.mjs\";\nimport { N as NcDashboardWidget } from \"./chunks/NcDashboardWidget-Cp3DMHz7.mjs\";\nimport { N as NcDashboardWidgetItem } from \"./chunks/NcDashboardWidgetItem-BCjppWNJ.mjs\";\nimport { N as NcDateTime } from \"./chunks/NcDateTime-enXYuwj8.mjs\";\nimport NcDateTimePicker from \"./Components/NcDateTimePicker.mjs\";\nimport NcDateTimePickerNative from \"./Components/NcDateTimePickerNative.mjs\";\nimport { N as NcDialog } from \"./chunks/NcDialog-CDFWleNp.mjs\";\nimport { N as NcDialogButton } from \"./chunks/NcDialogButton-tB5RGMME.mjs\";\nimport NcEllipsisedOption from \"./Components/NcEllipsisedOption.mjs\";\nimport { N as NcEmojiPicker } from \"./chunks/NcEmojiPicker-Cw593Jp6.mjs\";\nimport NcEmptyContent from \"./Components/NcEmptyContent.mjs\";\nimport { N as NcFilePicker } from \"./chunks/NcFilePicker-CDHKrfPj.mjs\";\nimport { N as NcFormBox } from \"./chunks/NcFormBox-DtoCXLMx.mjs\";\nimport { N as NcFormBoxButton } from \"./chunks/NcFormBoxButton-BQi11xQX.mjs\";\nimport { N as NcFormBoxCopyButton } from \"./chunks/NcFormBoxCopyButton-BkunQ3me.mjs\";\nimport { N as NcFormBoxSwitch } from \"./chunks/NcFormBoxSwitch-E6sxPL4n.mjs\";\nimport { N as NcFormGroup } from \"./chunks/NcFormGroup-DblLoFMf.mjs\";\nimport NcGuestContent from \"./Components/NcGuestContent.mjs\";\nimport { N as NcHeaderButton } from \"./chunks/NcHeaderButton-BI15lyn_.mjs\";\nimport { N as NcHeaderMenu } from \"./chunks/NcHeaderMenu-B2gYavD4.mjs\";\nimport { N as NcHighlight } from \"./chunks/index-CxTT94_h.mjs\";\nimport { N as NcHotkey } from \"./chunks/NcHotkey-CLLtt9LG.mjs\";\nimport { N as NcHotkeyList } from \"./chunks/NcHotkeyList-Co7MBL5U.mjs\";\nimport { N as NcIconSvgWrapper } from \"./chunks/NcIconSvgWrapper-Bui9PhAS.mjs\";\nimport { N as NcInputField } from \"./chunks/NcInputField-Cfm1bJR4.mjs\";\nimport { N as NcListItem } from \"./chunks/NcListItem-RKTfRg06.mjs\";\nimport { N as NcListItemIcon } from \"./chunks/NcListItemIcon-D49wESTI.mjs\";\nimport NcLoadingIcon from \"./Components/NcLoadingIcon.mjs\";\nimport NcModal from \"./Components/NcModal.mjs\";\nimport NcNoteCard from \"./Components/NcNoteCard.mjs\";\nimport { N as NcPasswordField } from \"./chunks/NcPasswordField-lE4m20vf.mjs\";\nimport { N as NcPopover } from \"./chunks/NcPopover-UAg26Qdd.mjs\";\nimport { N as NcProgressBar } from \"./chunks/NcProgressBar-D7zYeXBH.mjs\";\nimport { N as NcRadioGroup } from \"./chunks/NcRadioGroup-BbBX9X2J.mjs\";\nimport { N as NcRadioGroupButton } from \"./chunks/NcRadioGroupButton-BkxlxjIA.mjs\";\nimport { N as NcRelatedResourcesPanel } from \"./chunks/NcRelatedResourcesPanel-C2sLodV8.mjs\";\nimport { N as NcMentionBubble } from \"./chunks/index-TmAR7I2T.mjs\";\nimport { r } from \"./chunks/index-TmAR7I2T.mjs\";\nimport { N as NcAutoCompleteResult, a as NcRichContenteditable } from \"./chunks/NcRichContenteditable-SA1zbfkk.mjs\";\nimport \"@nextcloud/auth\";\nimport \"@nextcloud/axios\";\nimport \"@nextcloud/router\";\nimport \"@nextcloud/sharing/public\";\nimport \"@vueuse/core\";\nimport \"vue\";\nimport \"vue-router\";\nimport { a, g, b, c, s, d } from \"./chunks/referencePickerModal-DD_GM6xV.mjs\";\nimport { N, h, c as c2, i, e, r as r2, f, a as a2 } from \"./chunks/customPickerElements-DLFtgReB.mjs\";\nimport \"unist-builder\";\nimport \"unist-util-visit\";\nimport \"./chunks/logger-D3RVzcfQ.mjs\";\nimport { N as NcRichText } from \"./chunks/NcRichText-rNfwY_Oc.mjs\";\nimport { N as NcSelect } from \"./chunks/NcSelect-CbWXsDdZ.mjs\";\nimport { N as NcTextField } from \"./chunks/NcTextField-DZHP0Dfw.mjs\";\nimport \"@nextcloud/event-bus\";\nimport { N as NcSavingIndicatorIcon } from \"./chunks/NcSavingIndicatorIcon-U7AIamCl.mjs\";\nimport { N as NcSelectTags } from \"./chunks/NcSelectTags-CqVn5iU9.mjs\";\nimport { N as NcSelectUsers } from \"./chunks/NcSelectUsers-DGnn4yBW.mjs\";\nimport { N as NcSettingsInputText } from \"./chunks/NcSettingsInputText-BwnkZzWL.mjs\";\nimport { N as NcSettingsSection } from \"./chunks/NcSettingsSection-Dz_b9rcq.mjs\";\nimport { N as NcSettingsSelectGroup } from \"./chunks/NcSettingsSelectGroup-BaSHNm1x.mjs\";\nimport { N as NcTextArea } from \"./chunks/NcTextArea-fGUiK7p2.mjs\";\nimport { N as NcThemeProvider } from \"./chunks/NcThemeProvider-BA_zMjAf.mjs\";\nimport { N as NcTimezonePicker } from \"./chunks/NcTimezonePicker-w7XtRhLb.mjs\";\nimport { N as NcUserBubble } from \"./chunks/NcUserBubble-CIOqCO9S.mjs\";\nimport { N as NcUserStatusIcon } from \"./chunks/NcUserStatusIcon-Cq1RnTfF.mjs\";\nimport NcVNodes from \"./Components/NcVNodes.mjs\";\nimport { useFormatDateTime, useFormatRelativeTime, useFormatTime } from \"./Composables/useFormatDateTime.mjs\";\nimport { useHotKey } from \"./Composables/useHotKey.mjs\";\nimport { useIsDarkTheme, useIsDarkThemeElement } from \"./Composables/useIsDarkTheme.mjs\";\nimport { isFullscreenState, useIsFullscreen } from \"./Composables/useIsFullscreen.mjs\";\nimport { MOBILE_BREAKPOINT, MOBILE_SMALL_BREAKPOINT, isMobileState, useIsMobile, useIsSmallMobile } from \"./Composables/useIsMobile.mjs\";\nimport { isA11yActivation } from \"./Functions/a11y.mjs\";\nimport { getEnabledContactsMenuActions, registerContactsMenuAction } from \"./Functions/contactsMenu.mjs\";\nimport { spawnDialog } from \"./Functions/dialog.mjs\";\nimport { E, a as a3, e as e2, g as g2, s as s2 } from \"./chunks/emoji-BgZdRy3v.mjs\";\nimport { checkIfDarkTheme, isDarkTheme } from \"./Functions/isDarkTheme.mjs\";\nimport { preloadImage } from \"./Functions/preloadImage.mjs\";\nimport { usernameToColor } from \"./Functions/usernameToColor.mjs\";\nimport directive from \"./Directives/Focus.mjs\";\nimport directive$1 from \"./Directives/Linkify.mjs\";\nimport \"./Directives/Tooltip.mjs\";\nimport { default as default2 } from \"./Mixins/clickOutsideOptions.mjs\";\nimport { default as default3 } from \"./Mixins/isFullscreen.mjs\";\nimport { default as default4 } from \"./Mixins/isMobile.mjs\";\nimport { VTooltip } from \"floating-vue\";\nimport { VTooltip as VTooltip2 } from \"floating-vue\";\nconst NcComponents = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n NcActionButton,\n NcActionButtonGroup,\n NcActionCaption,\n NcActionCheckbox,\n NcActionInput,\n NcActionLink,\n NcActionRadio,\n NcActionRouter,\n NcActionSeparator,\n NcActionText,\n NcActionTextEditable,\n NcActions,\n NcAppContent,\n NcAppContentDetails,\n NcAppContentList,\n NcAppNavigation,\n NcAppNavigationCaption,\n NcAppNavigationIconBullet,\n NcAppNavigationItem,\n NcAppNavigationList,\n NcAppNavigationNew,\n NcAppNavigationNewItem,\n NcAppNavigationSearch,\n NcAppNavigationSettings,\n NcAppNavigationSpacer,\n NcAppSettingsDialog,\n NcAppSettingsSection,\n NcAppSettingsSectionShortcuts: NcAppSettingsShortcutsSection,\n NcAppSettingsShortcutsSection,\n NcAppSidebar,\n NcAppSidebarHeader,\n NcAppSidebarTab,\n NcAssistantButton,\n NcAssistantContent,\n NcAssistantIcon,\n NcAutoCompleteResult,\n NcAvatar,\n NcBlurHash,\n NcBreadcrumb,\n NcBreadcrumbs,\n NcButton,\n NcCheckboxRadioSwitch,\n NcCollectionList,\n NcColorPicker,\n NcContent,\n NcCounterBubble,\n NcDashboardWidget,\n NcDashboardWidgetItem,\n NcDateTime,\n NcDateTimePicker,\n NcDateTimePickerNative,\n NcDialog,\n NcDialogButton,\n NcEllipsisedOption,\n NcEmojiPicker,\n NcEmptyContent,\n NcFilePicker,\n NcFormBox,\n NcFormBoxButton,\n NcFormBoxCopyButton,\n NcFormBoxSwitch,\n NcFormGroup,\n NcGuestContent,\n NcHeaderButton,\n NcHeaderMenu,\n NcHighlight,\n NcHotkey,\n NcHotkeyList,\n NcIconSvgWrapper,\n NcInputField,\n NcListItem,\n NcListItemIcon,\n NcLoadingIcon,\n NcMentionBubble,\n NcModal,\n NcNoteCard,\n NcPasswordField,\n NcPopover,\n NcProgressBar,\n NcRadioGroup,\n NcRadioGroupButton,\n NcRelatedResourcesPanel,\n NcRichContenteditable,\n NcRichText,\n NcSavingIndicatorIcon,\n NcSelect,\n NcSelectTags,\n NcSelectUsers,\n NcSettingsInputText,\n NcSettingsSection,\n NcSettingsSelectGroup,\n NcTextArea,\n NcTextField,\n NcThemeProvider,\n NcTimezonePicker,\n NcUserBubble,\n NcUserStatusIcon,\n NcVNodes\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst NcDirectives = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n Focus: directive,\n Linkify: directive$1,\n Tooltip: VTooltip\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst NextcloudVuePlugin = {\n install(Vue) {\n Object.entries(NcComponents).forEach(([name, component]) => {\n Vue.component(component.name || name, component);\n });\n Object.entries(NcDirectives).forEach(([name, directive2]) => {\n Vue.directive(name, directive2);\n });\n }\n};\nexport {\n E as EmojiSkinTone,\n directive as Focus,\n directive$1 as Linkify,\n MOBILE_BREAKPOINT,\n MOBILE_SMALL_BREAKPOINT,\n NcActionButton,\n NcActionButtonGroup,\n NcActionCaption,\n NcActionCheckbox,\n NcActionInput,\n NcActionLink,\n NcActionRadio,\n NcActionRouter,\n NcActionSeparator,\n NcActionText,\n NcActionTextEditable,\n NcActions,\n NcAppContent,\n NcAppContentDetails,\n NcAppContentList,\n NcAppNavigation,\n NcAppNavigationCaption,\n NcAppNavigationIconBullet,\n NcAppNavigationItem,\n NcAppNavigationList,\n NcAppNavigationNew,\n NcAppNavigationNewItem,\n NcAppNavigationSearch,\n NcAppNavigationSettings,\n NcAppNavigationSpacer,\n NcAppSettingsDialog,\n NcAppSettingsSection,\n NcAppSettingsShortcutsSection as NcAppSettingsSectionShortcuts,\n NcAppSettingsShortcutsSection,\n NcAppSidebar,\n NcAppSidebarHeader,\n NcAppSidebarTab,\n NcAssistantButton,\n NcAssistantContent,\n NcAssistantIcon,\n NcAutoCompleteResult,\n NcAvatar,\n NcBlurHash,\n NcBreadcrumb,\n NcBreadcrumbs,\n NcButton,\n NcCheckboxRadioSwitch,\n NcCollectionList,\n NcColorPicker,\n NcContent,\n NcCounterBubble,\n N as NcCustomPickerRenderResult,\n NcDashboardWidget,\n NcDashboardWidgetItem,\n NcDateTime,\n NcDateTimePicker,\n NcDateTimePickerNative,\n NcDialog,\n NcDialogButton,\n NcEllipsisedOption,\n NcEmojiPicker,\n NcEmptyContent,\n NcFilePicker,\n NcFormBox,\n NcFormBoxButton,\n NcFormBoxCopyButton,\n NcFormBoxSwitch,\n NcFormGroup,\n NcGuestContent,\n NcHeaderButton,\n NcHeaderMenu,\n NcHighlight,\n NcHotkey,\n NcHotkeyList,\n NcIconSvgWrapper,\n NcInputField,\n NcListItem,\n NcListItemIcon,\n NcLoadingIcon,\n NcMentionBubble,\n NcModal,\n NcNoteCard,\n NcPasswordField,\n NcPopover,\n NcProgressBar,\n NcRadioGroup,\n NcRadioGroupButton,\n NcRelatedResourcesPanel,\n NcRichContenteditable,\n NcRichText,\n NcSavingIndicatorIcon,\n NcSelect,\n NcSelectTags,\n NcSelectUsers,\n NcSettingsInputText,\n NcSettingsSection,\n NcSettingsSelectGroup,\n NcTextArea,\n NcTextField,\n NcThemeProvider,\n NcTimezonePicker,\n NcUserBubble,\n NcUserStatusIcon,\n NcVNodes,\n NextcloudVuePlugin,\n VTooltip2 as Tooltip,\n a as anyLinkProviderId,\n checkIfDarkTheme,\n default2 as clickOutsideOptions,\n a3 as emojiAddRecent,\n e2 as emojiSearch,\n g2 as getCurrentSkinTone,\n getEnabledContactsMenuActions,\n g as getLinkWithPicker,\n b as getProvider,\n c as getProviders,\n h as hasInteractiveView,\n isA11yActivation,\n c2 as isCustomPickerElementRegistered,\n isDarkTheme,\n default3 as isFullscreen,\n isFullscreenState,\n default4 as isMobile,\n isMobileState,\n i as isWidgetRegistered,\n preloadImage,\n registerContactsMenuAction,\n e as registerCustomPickerElement,\n r2 as registerWidget,\n f as renderCustomPickerElement,\n a2 as renderWidget,\n r as richEditor,\n s as searchProvider,\n s2 as setCurrentSkinTone,\n d as sortProviders,\n spawnDialog,\n useFormatDateTime,\n useFormatRelativeTime,\n useFormatTime,\n useHotKey,\n useIsDarkTheme,\n useIsDarkThemeElement,\n useIsFullscreen,\n useIsMobile,\n useIsSmallMobile,\n u as userStatus,\n usernameToColor\n};\n//# sourceMappingURL=index.mjs.map\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesSidebarTab.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-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesSidebarTab.vue?vue&type=script&setup=true&lang=ts\"","import { render, staticRenderFns } from \"./FilesSidebarTab.vue?vue&type=template&id=475d2f7b\"\nimport script from \"./FilesSidebarTab.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./FilesSidebarTab.vue?vue&type=script&setup=true&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-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesSidebar.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-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesSidebar.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!./FilesSidebar.vue?vue&type=style&index=0&id=f91af60e&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!./FilesSidebar.vue?vue&type=style&index=0&id=f91af60e&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FilesSidebar.vue?vue&type=template&id=f91af60e&scoped=true\"\nimport script from \"./FilesSidebar.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./FilesSidebar.vue?vue&type=script&setup=true&lang=ts\"\nimport style0 from \"./FilesSidebar.vue?vue&type=style&index=0&id=f91af60e&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 \"f91af60e\",\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(_setup.NcContent,{attrs:{\"app-name\":\"files\"}},[(!_setup.isPublic)?_c(_setup.FilesNavigation):_vm._e(),_vm._v(\" \"),_c(_setup.FilesList,{attrs:{\"is-public\":_setup.isPublic}}),_vm._v(\" \"),(!_setup.isPublic)?_c(_setup.FilesSidebar):_vm._e()],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 { getFileActions } from '@nextcloud/files';\nimport { useHotKey } from '@nextcloud/vue/composables/useHotKey';\nimport { dirname } from 'path';\nimport { useRoute, useRouter } from 'vue-router/composables';\nimport { useUserConfigStore } from '../store/userconfig.ts';\nimport { executeAction } from '../utils/actionUtils.ts';\nimport { logger } from '../utils/logger.ts';\nimport { useRouteParameters } from './useRouteParameters.ts';\n/**\n * This register the hotkeys for the Files app.\n * As much as possible, we try to have all the hotkeys in one place.\n * Please make sure to add tests for the hotkeys after adding a new one.\n */\nexport function useHotKeys() {\n const userConfigStore = useUserConfigStore();\n const { directory } = useRouteParameters();\n const router = useRouter();\n const route = useRoute();\n const actions = getFileActions();\n for (const action of actions) {\n if (!action.hotkey) {\n continue;\n }\n const key = action.hotkey.key.match(/^[a-z]$/)\n ? action.hotkey.key.toUpperCase()\n : action.hotkey.key;\n logger.debug(`Register hotkey for action \"${action.id}\"`);\n useHotKey(key, () => executeAction(action), {\n stop: true,\n prevent: true,\n alt: action.hotkey.alt,\n ctrl: action.hotkey.ctrl,\n shift: action.hotkey.shift,\n });\n }\n // alt+up go to parent directory\n useHotKey('ArrowUp', goToParentDir, {\n stop: true,\n prevent: true,\n alt: true,\n });\n // v toggle grid view\n useHotKey('v', toggleGridView, {\n stop: true,\n prevent: true,\n });\n logger.debug('Hotkeys registered');\n /**\n * Use the router to go to the parent directory\n */\n function goToParentDir() {\n const dir = dirname(directory.value);\n logger.debug('Navigating to parent directory', { dir });\n router.push({ params: { ...route.params }, query: { ...route.query, dir } });\n }\n /**\n * Toggle the grid view\n */\n function toggleGridView() {\n const value = userConfigStore.userConfig.grid_view;\n logger.debug('Toggling grid view', { old: value, new: !value });\n userConfigStore.update('grid_view', !value);\n }\n}\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesApp.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-6.use[1]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesApp.vue?vue&type=script&setup=true&lang=ts\"","import { render, staticRenderFns } from \"./FilesApp.vue?vue&type=template&id=e1f85142\"\nimport script from \"./FilesApp.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./FilesApp.vue?vue&type=script&setup=true&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: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { subscribe } from '@nextcloud/event-bus';\nimport { generateUrl } from '@nextcloud/router';\nimport { relative } from 'path';\nimport queryString from 'query-string';\nimport Vue from 'vue';\nimport Router, { isNavigationFailure, NavigationFailureType } from 'vue-router';\nimport { useFilesStore } from '../store/files.ts';\nimport { getPinia } from '../store/index.ts';\nimport { usePathsStore } from '../store/paths.ts';\nimport { defaultView } from '../utils/filesViews.ts';\nimport { logger } from '../utils/logger.ts';\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 (...args) {\n if (args.length > 1) {\n return originalPush.call(this, ...args);\n }\n return originalPush.call(this, args[0]).catch(ignoreDuplicateNavigation);\n});\nconst originalReplace = Router.prototype.replace;\nRouter.prototype.replace = (function (...args) {\n if (args.length > 1) {\n return originalReplace.call(this, ...args);\n }\n return originalReplace.call(this, args[0]).catch(ignoreDuplicateNavigation);\n});\n/**\n * Ignore duplicated- and redirected-navigation errors but forward real exceptions\n *\n * @param error The thrown error\n */\nfunction ignoreDuplicateNavigation(error) {\n if (isNavigationFailure(error, NavigationFailureType.duplicated)\n || isNavigationFailure(error, NavigationFailureType.redirected)) {\n logger.debug('Ignoring duplicated/redirected navigation from vue-router', { error });\n }\n else {\n throw error;\n }\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: defaultView() } },\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});\n// Handle aborted navigation (NavigationGuards) gracefully\nrouter.onError((error) => {\n if (isNavigationFailure(error, NavigationFailureType.aborted)) {\n logger.debug('Navigation was aboorted', { error });\n }\n else {\n throw error;\n }\n});\n// If navigating back from a folder to a parent folder,\n// we need to keep the current dir fileid so it's highlighted\n// and scrolled into view.\nrouter.beforeResolve((to, from, next) => {\n if (to.params?.parentIntercept) {\n delete to.params.parentIntercept;\n return next();\n }\n if (to.params.view !== from.params.view) {\n // skip if different views\n return next();\n }\n const fromDir = (from.query?.dir || '/');\n const toDir = (to.query?.dir || '/');\n // We are going back to a parent directory\n if (relative(fromDir, toDir) === '..') {\n const { getNode } = useFilesStore();\n const { getPath } = usePathsStore();\n if (!from.params.view) {\n logger.error('No current view id found, cannot navigate to parent directory', { fromDir, toDir });\n return next();\n }\n // Get the previous parent's file id\n const fromSource = getPath(from.params.view, fromDir);\n if (!fromSource) {\n logger.error('No source found for the parent directory', { fromDir, toDir });\n return next();\n }\n const fileId = getNode(fromSource)?.fileid;\n if (!fileId) {\n logger.error('No fileid found for the parent directory', { fromDir, toDir, fromSource });\n return next();\n }\n logger.debug('Navigating back to parent directory', { fromDir, toDir, fileId });\n return next({\n name: 'filelist',\n query: to.query,\n params: {\n ...to.params,\n fileid: String(fileId),\n // Prevents the beforeEach from being called again\n parentIntercept: 'true',\n },\n // Replace the current history entry\n replace: true,\n });\n }\n // else, we just continue\n next();\n});\nsubscribe('files:node:deleted', (node) => {\n if (router.currentRoute.params.fileid === String(node.fileid)) {\n const params = { ...router.currentRoute.params };\n const { getPath } = usePathsStore(getPinia());\n const { getNode } = useFilesStore(getPinia());\n const source = getPath(router.currentRoute.params.view, node.dirname);\n const parentFolder = getNode(source);\n if (source && parentFolder) {\n params.fileid = String(parentFolder.fileid);\n }\n else {\n delete params.fileid;\n }\n const query = { ...router.currentRoute.query };\n delete query.opendetails;\n delete query.openfile;\n router.replace({\n ...router.currentRoute,\n name: router.currentRoute.name,\n params,\n query,\n });\n }\n});\nexport default router;\n","/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nexport 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 *\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 or null to keep current route and just update params/query\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 name ??= this.router.currentRoute.name;\n const location = { name, query, params };\n if (replace) {\n return this._router.replace(location);\n }\n return this._router.push(location);\n }\n}\n","/**\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 { PiniaVuePlugin } from 'pinia';\nimport Vue from 'vue';\nimport FilesApp from './FilesApp.vue';\nimport SettingsModel from './models/Setting.ts';\nimport router from './router/router.ts';\nimport RouterService from './services/RouterService.ts';\nimport SettingsService from './services/Settings.js';\nimport { getPinia } from './store/index.ts';\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 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: getPinia(),\n}).$mount('#content');\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { logger } from '../utils/logger.ts'\n\nexport default class Settings {\n\t_settings\n\n\tconstructor() {\n\t\tthis._settings = []\n\t\tlogger.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\tlogger.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 * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nexport default class Setting {\n #name;\n #options;\n /**\n * Create a new files app setting\n *\n * @param name - The name of this setting\n * @param options - The setting options\n * @param options.el - Function that returns an unmounted dom element to be added\n * @param options.open - Callback for when setting is added\n * @param options.close - Callback for when setting is closed\n * @param options.order - The order of this setting, lower numbers are shown first\n * @since 19.0.0\n */\n constructor(name, options) {\n this.#name = name;\n this.#options = {\n open: () => { },\n close: () => { },\n order: 0,\n ...options,\n };\n if (typeof this.#options.el !== 'function') {\n throw new Error('Setting must have an `el` function that returns a DOM element');\n }\n if (typeof this.#name !== 'string') {\n throw new Error('Setting must have a `name` string');\n }\n if (typeof this.#options.order !== 'number') {\n throw new Error('Setting must have an `order` number');\n }\n }\n get name() {\n return this.#name;\n }\n get el() {\n return this.#options.el;\n }\n get open() {\n return this.#options.open;\n }\n get close() {\n return this.#options.close;\n }\n get order() {\n return this.#options.order;\n }\n}\n","import { getDefaultPropfind, getRootPath, resultToNode } from '@nextcloud/files/dav';\nimport { join } from 'path';\nimport { useFilesStore } from '../store/files.ts';\nimport { getPinia } from '../store/index.ts';\nimport { useSearchStore } from '../store/search.ts';\nimport { logger } from '../utils/logger.ts';\nimport { client } from './WebdavClient.ts';\nimport { searchNodes } from './WebDavSearch.ts';\n/**\n * Get contents implementation for the files view.\n * This also allows to fetch local search results when the user is currently filtering.\n *\n * @param path - The path to query\n * @param options - Options\n * @param options.signal - Abort signal to cancel the request\n */\nexport async function getContents(path = '/', options) {\n const searchStore = useSearchStore(getPinia());\n if (searchStore.query.length < 3) {\n return await defaultGetContents(path, options);\n }\n return await getLocalSearch(path, searchStore.query, options?.signal);\n}\n/**\n * Generic `getContents` implementation for the users files.\n *\n * @param path - The path to get the contents\n * @param options - Options\n * @param options.signal - Abort signal to cancel the request\n */\nexport async function defaultGetContents(path, options) {\n path = join(getRootPath(), path);\n const propfindPayload = getDefaultPropfind();\n const contentsResponse = await client.getDirectoryContents(path, {\n details: true,\n data: propfindPayload,\n includeSelf: true,\n signal: options?.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 return {\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/**\n * Get the local search results for the current folder.\n *\n * @param path - The path\n * @param query - The current search query\n * @param signal - The aboort signal\n */\nasync function getLocalSearch(path, query, signal) {\n const filesStore = useFilesStore(getPinia());\n let folder = filesStore.getDirectoryByPath('files', path);\n if (!folder) {\n const rootPath = join(getRootPath(), path);\n const stat = await client.stat(rootPath, { details: true });\n folder = resultToNode(stat.data);\n }\n const contents = await searchNodes(query, { dir: path, signal });\n return {\n folder,\n contents,\n };\n}\n","/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getCurrentUser } from '@nextcloud/auth';\nimport { defaultRootPath, getDavNameSpaces, getDavProperties, resultToNode } from '@nextcloud/files/dav';\nimport { getBaseUrl } from '@nextcloud/router';\nimport { logger } from '../utils/logger.ts';\nimport { client } from './WebdavClient.ts';\n/**\n * Search for nodes matching the given query.\n *\n * @param query - Search query\n * @param options - Options\n * @param options.dir - The base directory to scope the search to\n * @param options.signal - Abort signal for the request\n */\nexport async function searchNodes(query, { dir, signal }) {\n const user = getCurrentUser();\n if (!user) {\n // the search plugin only works for user roots\n return [];\n }\n query = query.trim();\n if (query.length < 3) {\n // the search plugin only works with queries of at least 3 characters\n return [];\n }\n if (dir && !dir.startsWith('/')) {\n dir = `/${dir}`;\n }\n logger.debug('Searching for nodes', { query, dir });\n const { data } = await client.search('/', {\n details: true,\n signal,\n data: `\n\n\t \n\t\t \n\t\t\t \n\t\t\t ${getDavProperties()}\n\t\t\t \n\t\t \n\t\t \n\t\t\t \n\t\t\t\t /files/${user.uid}${dir || ''}\n\t\t\t\t infinity\n\t\t\t \n\t\t \n\t\t \n\t\t\t \n\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t \n\t\t\t\t %${query.replace('%', '')}%\n\t\t\t \n\t\t \n\t\t \n\t\n`,\n });\n // check if the request was aborted\n if (signal?.aborted) {\n return [];\n }\n // otherwise return the result mapped to Nextcloud nodes\n return data.results.map((result) => resultToNode(result, defaultRootPath, getBaseUrl()));\n}\n","/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getClient, getDefaultPropfind, getRootPath, resultToNode } from '@nextcloud/files/dav';\nexport const client = getClient();\n/**\n * Fetches a node from the given path\n *\n * @param path - The path to fetch the node from\n */\nexport async function fetchNode(path) {\n const propfindPayload = getDefaultPropfind();\n const result = await client.stat(`${getRootPath()}${path}`, {\n details: true,\n data: propfindPayload,\n });\n return resultToNode(result.data);\n}\n","/*!\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getCurrentUser } from '@nextcloud/auth';\nimport { subscribe } from '@nextcloud/event-bus';\nimport { Folder, getNavigation, Permission } from '@nextcloud/files';\nimport { getRemoteURL, getRootPath } from '@nextcloud/files/dav';\nimport { defineStore } from 'pinia';\nimport { ref, shallowRef, watch } from 'vue';\nimport { logger } from '../utils/logger.ts';\n// Temporary fake folder to use until we have the first valid folder\n// fetched and cached. This allow us to mount the FilesListVirtual\n// at all time and avoid unmount/mount and undesired rendering issues.\nconst dummyFolder = new Folder({\n id: 0,\n source: getRemoteURL() + getRootPath(),\n root: getRootPath(),\n owner: getCurrentUser()?.uid || null,\n permissions: Permission.NONE,\n});\nexport const useActiveStore = defineStore('active', () => {\n /**\n * The currently active action\n */\n const activeAction = shallowRef();\n /**\n * The current active node within the folder\n */\n const activeNode = ref();\n /**\n * The current active view\n */\n const activeView = shallowRef();\n /**\n * The currently active folder\n */\n const activeFolder = ref(dummyFolder);\n // Set the active node on the router params\n watch(activeNode, () => {\n if (typeof activeNode.value?.fileid !== 'number' || activeNode.value.fileid === activeFolder.value?.fileid) {\n return;\n }\n logger.debug('Updating active fileid in URL query', { fileid: activeNode.value.fileid });\n window.OCP.Files.Router.goToRoute(null, { ...window.OCP.Files.Router.params, fileid: String(activeNode.value.fileid) }, { ...window.OCP.Files.Router.query }, true);\n });\n initialize();\n /**\n * Unset the active node if deleted\n *\n * @param node - The node thats deleted\n */\n function onDeletedNode(node) {\n if (activeNode.value && activeNode.value.source === node.source) {\n activeNode.value = undefined;\n }\n }\n /**\n * Callback to update the current active view\n *\n * @param view - The new active view\n */\n function onChangedView(view = null) {\n logger.debug('Setting active view', { view });\n activeView.value = view ?? undefined;\n activeNode.value = undefined;\n }\n /**\n * Initalize the store - connect all event listeners.\n *\n */\n function initialize() {\n const navigation = getNavigation();\n onChangedView(navigation.active);\n // Make sure we only register the listeners once\n subscribe('files:node:deleted', onDeletedNode);\n // Or you can react to changes of the current active view\n navigation.addEventListener('updateActive', (event) => {\n onChangedView(event.detail);\n });\n }\n return {\n activeAction,\n activeFolder,\n activeNode,\n activeView,\n };\n});\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { subscribe } from '@nextcloud/event-bus';\nimport { defineStore } from 'pinia';\nimport Vue, { ref } from 'vue';\nimport { fetchNode } from '../services/WebdavClient.ts';\nimport { logger } from '../utils/logger.ts';\nimport { usePathsStore } from './paths.ts';\n/**\n * Store for files and folders in the files app.\n */\nexport const useFilesStore = defineStore('files', () => {\n const files = ref({});\n const roots = ref({});\n // initialize the store once its used first time\n initalizeStore();\n /**\n * Get a file or folder by its source\n *\n * @param source - The file source\n */\n function getNode(source) {\n return files.value[source];\n }\n /**\n * Get a list of files or folders by their IDs\n * Note: does not return undefined values\n *\n * @param sources - The file sources\n */\n function getNodes(sources) {\n return sources\n .map((source) => files.value[source])\n .filter(Boolean);\n }\n /**\n * Get files or folders by their ID\n * Multiple nodes can have the same ID but different sources\n * (e.g. in a shared context)\n *\n * @param id - The file ID\n */\n function getNodesById(id) {\n return Object.values(files.value)\n .filter((node) => node.id === id);\n }\n /**\n * Get the root folder of a service\n *\n * @param service - The service (files view)\n * @return The root folder if set\n */\n function getRoot(service) {\n return roots.value[service];\n }\n /**\n * Get cached directory matching a given path\n *\n * @param service - The service (files view)\n * @param path - The path relative within the service\n * @return The folder if found\n */\n function getDirectoryByPath(service, path) {\n const pathsStore = usePathsStore();\n let folder;\n // Get the containing folder from path store\n if (!path || path === '/') {\n folder = getRoot(service);\n }\n else {\n const source = pathsStore.getPath(service, path);\n if (source) {\n folder = getNode(source);\n }\n }\n return folder;\n }\n /**\n * Get cached child nodes within a given path\n *\n * @param service - The service (files view)\n * @param path - The path relative within the service\n * @return Array of cached nodes within the path\n */\n function getNodesByPath(service, path) {\n const folder = getDirectoryByPath(service, path);\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) => getNode(source))\n .filter(Boolean);\n }\n /**\n * Update or set nodes in the store\n *\n * @param nodes - The nodes to update or set\n */\n function updateNodes(nodes) {\n // Update the store all at once\n const newNodes = nodes.reduce((acc, node) => {\n if (files.value[node.source]?.id && !node.id) {\n logger.error('Trying to update/set a node without id', { node });\n return acc;\n }\n acc[node.source] = node;\n return acc;\n }, {});\n files.value = { ...files.value, ...newNodes };\n }\n /**\n * Delete nodes from the store\n *\n * @param nodes - The nodes to delete\n */\n function deleteNodes(nodes) {\n const entries = Object.entries(files.value)\n .filter(([, node]) => !nodes.some((n) => n.source === node.source));\n files.value = Object.fromEntries(entries);\n }\n /**\n * Set the root folder for a service\n *\n * @param options - The options for setting the root\n * @param options.service - The service (files view)\n * @param options.root - The root folder\n */\n function setRoot({ service, root }) {\n roots.value = { ...roots.value, [service]: root };\n }\n return {\n files,\n roots,\n deleteNodes,\n getDirectoryByPath,\n getNode,\n getNodes,\n getNodesById,\n getNodesByPath,\n getRoot,\n setRoot,\n updateNodes,\n };\n // Internal helper functions\n /**\n * Initialize the store by subscribing to events\n */\n function initalizeStore() {\n subscribe('files:node:created', onCreatedNode);\n subscribe('files:node:deleted', onDeletedNode);\n subscribe('files:node:updated', onUpdatedNode);\n subscribe('files:node:moved', onMovedNode);\n // legacy sidebar\n subscribe('files:favorites:added', onAddFavorite);\n subscribe('files:favorites:removed', onRemoveFavorite);\n }\n /**\n * Called when a node is deleted, removes the node from the store\n *\n * @param node - The deleted node\n */\n function onDeletedNode(node) {\n deleteNodes([node]);\n }\n /**\n * Handler for when a node is created\n *\n * @param node - The created node\n */\n function onCreatedNode(node) {\n updateNodes([node]);\n }\n /**\n * Handler for when a node is moved, updates the path of the node in the store\n *\n * @param context - The context of the moved node\n * @param context.node - The moved node\n * @param context.oldSource - The old source of the node before it was moved\n */\n function onMovedNode({ node, oldSource }) {\n // Update the path of the node\n delete files.value[oldSource];\n updateNodes([node]);\n }\n /**\n * Handler for when a node is updated, updates the node in the store\n *\n * @param node - The updated node\n */\n async function onUpdatedNode(node) {\n // If we have multiple nodes with the same file ID, we need to update all of them\n const nodes = node.id\n ? getNodesById(node.id)\n : getNodes([node.source]);\n if (nodes.length > 1) {\n await Promise.all(nodes.map((node) => fetchNode(node.path))).then(updateNodes);\n logger.debug(nodes.length + ' nodes updated in store', { fileid: node.id, source: node.source });\n return;\n }\n // If we have only one node with the file ID, we can update it directly\n if (nodes.length === 1 && node.source === nodes[0].source) {\n 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.path).then((n) => updateNodes([n]));\n }\n /**\n * Handlers for legacy sidebar (no real nodes support)\n *\n * @param node - The node that was added to favorites\n */\n function onAddFavorite(node) {\n const ourNode = getNode(node.source);\n if (ourNode) {\n Vue.set(ourNode.attributes, 'favorite', 1);\n }\n }\n /**\n * Handler for when a node is removed from favorites\n *\n * @param node - The removed favorite\n */\n function onRemoveFavorite(node) {\n const ourNode = getNode(node.source);\n if (ourNode) {\n Vue.set(ourNode.attributes, 'favorite', 0);\n }\n }\n});\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { createPinia } from 'pinia';\n/**\n * Get the Pinia instance for the Files app.\n */\nexport function getPinia() {\n if (window._nc_files_pinia) {\n return window._nc_files_pinia;\n }\n window._nc_files_pinia = createPinia();\n return window._nc_files_pinia;\n}\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { subscribe } from '@nextcloud/event-bus';\nimport { File, FileType, getNavigation } from '@nextcloud/files';\nimport { dirname } from '@nextcloud/paths';\nimport { defineStore } from 'pinia';\nimport Vue from 'vue';\nimport { logger } from '../utils/logger.ts';\nimport { useFilesStore } from './files.ts';\n/**\n *\n * @param args\n */\nexport function usePathsStore(...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 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 this.addNodeToParentChildren(node);\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 this.deleteNodeFromParentChildren(node);\n },\n onMovedNode({ node, oldSource }) {\n const service = getNavigation()?.active?.id || 'files';\n // Update the path of the node\n if (node.type === FileType.Folder) {\n // Delete the old path if it exists\n const oldPath = Object.entries(this.paths[service]).find(([, source]) => source === oldSource);\n if (oldPath?.[0]) {\n this.deletePath(service, oldPath[0]);\n }\n // Add the new path\n this.addPath({\n service,\n path: node.path,\n source: node.source,\n });\n }\n // Dummy simple clone of the renamed node from a previous state\n const oldNode = new File({\n source: oldSource,\n owner: node.owner,\n mime: node.mime,\n root: node.root,\n });\n this.deleteNodeFromParentChildren(oldNode);\n this.addNodeToParentChildren(node);\n },\n deleteNodeFromParentChildren(node) {\n const service = getNavigation()?.active?.id || 'files';\n // Update children of a root folder\n const parentSource = dirname(node.source);\n const folder = (node.dirname === '/' ? files.getRoot(service) : files.getNode(parentSource));\n if (folder) {\n // ensure sources are unique\n const children = new Set(folder._children ?? []);\n children.delete(node.source);\n Vue.set(folder, '_children', [...children.values()]);\n logger.debug('Children updated', { parent: folder, node, children: folder._children });\n return;\n }\n logger.debug('Parent path does not exists, skipping children update', { node });\n },\n addNodeToParentChildren(node) {\n const service = getNavigation()?.active?.id || 'files';\n // Update children of a root folder\n const parentSource = dirname(node.source);\n const folder = (node.dirname === '/' ? files.getRoot(service) : files.getNode(parentSource));\n if (folder) {\n // ensure sources are unique\n const children = new Set(folder._children ?? []);\n children.add(node.source);\n Vue.set(folder, '_children', [...children.values()]);\n logger.debug('Children updated', { parent: folder, node, children: folder._children });\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 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: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { emit, subscribe } from '@nextcloud/event-bus';\nimport debounce from 'debounce';\nimport { defineStore } from 'pinia';\nimport { ref, watch } from 'vue';\nimport { logger } from '../utils/logger.ts';\nimport { VIEW_ID } from '../views/search.ts';\nexport const useSearchStore = defineStore('search', () => {\n /**\n * The current search query\n */\n const query = ref('');\n /**\n * Scope of the search.\n * Scopes:\n * - filter: only filter current file list\n * - globally: search everywhere\n */\n const scope = ref('filter');\n // reset the base if query is cleared\n watch(scope, updateSearch);\n watch(query, (old, current) => {\n // skip if only whitespaces changed\n if (old.trim() === current.trim()) {\n return;\n }\n updateSearch();\n });\n // initialize the search store\n initialize();\n /**\n * Debounced update of the current route\n *\n */\n const updateRouter = debounce((isSearch) => {\n const router = window.OCP.Files.Router;\n router.goToRoute(undefined, {\n view: VIEW_ID,\n }, {\n query: query.value,\n }, isSearch);\n });\n /**\n * Handle updating the filter if needed.\n * Also update the search view by updating the current route if needed.\n *\n */\n function updateSearch() {\n // emit the search event to update the filter\n emit('files:search:updated', { query: query.value, scope: scope.value });\n const router = window.OCP.Files.Router;\n // if we are on the search view and the query was unset or scope was set to 'filter' we need to move back to the files view\n if (router.params.view === VIEW_ID && (query.value === '' || scope.value === 'filter')) {\n scope.value = 'filter';\n return router.goToRoute(undefined, {\n view: 'files',\n }, {\n ...router.query,\n query: undefined,\n });\n }\n // for the filter scope we do not need to adjust the current route anymore\n // also if the query is empty we do not need to do anything\n if (scope.value === 'filter' || !query.value) {\n return;\n }\n const isSearch = router.params.view === VIEW_ID;\n logger.debug('Update route for updated search query', { query: query.value, isSearch });\n updateRouter(isSearch);\n }\n /**\n * Event handler that resets the store if the file list view was changed.\n *\n * @param view - The new view that is active\n */\n function onViewChanged(view) {\n if (view.id !== VIEW_ID) {\n query.value = '';\n scope.value = 'filter';\n }\n }\n /**\n * Initialize the store from the router if needed\n */\n function initialize() {\n subscribe('files:navigation:changed', onViewChanged);\n const router = window.OCP.Files.Router;\n // if we initially load the search view (e.g. hard page refresh)\n // then we need to initialize the store from the router\n if (router.params.view === VIEW_ID) {\n query.value = [router.query.query].flat()[0] ?? '';\n if (query.value) {\n scope.value = 'globally';\n logger.debug('Directly navigated to search view', { query: query.value });\n }\n else {\n // we do not have any query so we need to move to the files list\n logger.info('Directly navigated to search view without any query, redirect to files view.');\n router.goToRoute(undefined, {\n ...router.params,\n view: 'files',\n }, {\n ...router.query,\n query: undefined,\n }, true);\n }\n }\n }\n return {\n query,\n scope,\n };\n});\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getCurrentUser } from '@nextcloud/auth';\nimport axios from '@nextcloud/axios';\nimport { emit, subscribe } from '@nextcloud/event-bus';\nimport { loadState } from '@nextcloud/initial-state';\nimport { generateUrl } from '@nextcloud/router';\nimport { defineStore } from 'pinia';\nimport { ref, set } from 'vue';\nconst initialUserConfig = loadState('files', 'config', {\n crop_image_previews: true,\n default_view: 'files',\n folder_tree: true,\n grid_view: false,\n show_files_extensions: true,\n show_hidden: false,\n show_mime_column: true,\n sort_favorites_first: true,\n sort_folders_first: true,\n show_dialog_deletion: false,\n show_dialog_file_extension: true,\n});\nexport const useUserConfigStore = defineStore('userconfig', () => {\n const userConfig = ref({ ...initialUserConfig });\n /**\n * Update the user config local store\n *\n * @param key The config key\n * @param value The new value\n */\n function onUpdate(key, value) {\n set(userConfig.value, key, value);\n }\n /**\n * Update the user config local store AND on server side\n *\n * @param key The config key\n * @param value The new value\n */\n async function update(key, value) {\n // only update if a user is logged in (not the case for public shares)\n if (getCurrentUser() !== null) {\n await axios.put(generateUrl('/apps/files/api/v1/config/{key}', { key }), {\n value,\n });\n }\n emit('files:config:updated', { key, value });\n }\n // Register the event listener\n subscribe('files:config:updated', ({ key, value }) => onUpdate(key, value));\n return {\n userConfig,\n update,\n };\n});\n","/*!\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getLoggerBuilder } from '@nextcloud/logger';\nexport const logger = getLoggerBuilder()\n .setApp('files')\n .detectUser()\n .build();\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport MagnifySvg from '@mdi/svg/svg/magnify.svg?raw';\nimport { getNavigation, View } from '@nextcloud/files';\nimport { t } from '@nextcloud/l10n';\nimport Vue from 'vue';\nimport { getContents } from '../services/Search.ts';\nimport { VIEW_ID as FILES_VIEW_ID } from './files.ts';\nexport const VIEW_ID = 'search';\n/**\n * Register the search-in-files view\n */\nexport function registerSearchView() {\n let instance;\n let view;\n const Navigation = getNavigation();\n Navigation.register(new View({\n id: VIEW_ID,\n name: t('files', 'Search'),\n caption: t('files', 'Search results within your files.'),\n async emptyView(el) {\n if (!view) {\n view = (await import('./SearchEmptyView.vue')).default;\n }\n else {\n instance.$destroy();\n }\n instance = new Vue(view);\n instance.$mount(el);\n },\n icon: MagnifySvg,\n order: 10,\n parent: FILES_VIEW_ID,\n // it should be shown expanded\n expanded: true,\n // this view is hidden by default and only shown when active\n hidden: true,\n getContents,\n }));\n}\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-c8e429a5] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.nc-chip[data-v-c8e429a5] {\n --chip-size: 24px;\n --chip-radius: calc(var(--chip-size) / 2);\n height: var(--chip-size);\n max-width: fit-content;\n display: flex;\n flex-direction: row;\n align-items: center;\n border-radius: var(--chip-radius);\n background-color: var(--color-background-hover);\n}\n.nc-chip--primary[data-v-c8e429a5] {\n background-color: var(--color-primary-element);\n color: var(--color-primary-element-text);\n}\n.nc-chip--secondary[data-v-c8e429a5] {\n background-color: var(--color-primary-element-light);\n color: var(--color-primary-element-light-text);\n}\n.nc-chip--error[data-v-c8e429a5] {\n background-color: var(--color-error);\n color: var(--color-error-text);\n}\n.nc-chip--warning[data-v-c8e429a5] {\n background-color: var(--color-warning);\n color: var(--color-warning-text);\n}\n.nc-chip--success[data-v-c8e429a5] {\n background-color: var(--color-success);\n color: var(--color-success-text);\n}\n.nc-chip--no-actions .nc-chip__text[data-v-c8e429a5] {\n padding-inline-end: calc(2 * var(--default-grid-baseline));\n}\n.nc-chip--no-icon .nc-chip__text[data-v-c8e429a5] {\n padding-inline-start: calc(2 * var(--default-grid-baseline));\n}\n.nc-chip__text[data-v-c8e429a5] {\n flex: 1 auto;\n overflow: hidden;\n text-overflow: ellipsis;\n text-wrap: nowrap;\n}\n.nc-chip__icon[data-v-c8e429a5] {\n flex: 0 0 var(--chip-size);\n margin-inline-end: var(--default-grid-baseline);\n line-height: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n height: var(--chip-size);\n width: var(--chip-size);\n}\n.nc-chip__actions[data-v-c8e429a5] {\n flex: 0 0 var(--chip-size);\n --default-clickable-area: var(--chip-size);\n --border-radius-element: var(--chip-radius);\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@nextcloud/vue/dist/assets/NcChip-DLfUzq07.css\"],\"names\":[],\"mappings\":\"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,iBAAiB;EACjB,yCAAyC;EACzC,wBAAwB;EACxB,sBAAsB;EACtB,aAAa;EACb,mBAAmB;EACnB,mBAAmB;EACnB,iCAAiC;EACjC,+CAA+C;AACjD;AACA;EACE,8CAA8C;EAC9C,wCAAwC;AAC1C;AACA;EACE,oDAAoD;EACpD,8CAA8C;AAChD;AACA;EACE,oCAAoC;EACpC,8BAA8B;AAChC;AACA;EACE,sCAAsC;EACtC,gCAAgC;AAClC;AACA;EACE,sCAAsC;EACtC,gCAAgC;AAClC;AACA;EACE,0DAA0D;AAC5D;AACA;EACE,4DAA4D;AAC9D;AACA;EACE,YAAY;EACZ,gBAAgB;EAChB,uBAAuB;EACvB,iBAAiB;AACnB;AACA;EACE,0BAA0B;EAC1B,+CAA+C;EAC/C,cAAc;EACd,aAAa;EACb,mBAAmB;EACnB,uBAAuB;EACvB,gBAAgB;EAChB,wBAAwB;EACxB,uBAAuB;AACzB;AACA;EACE,0BAA0B;EAC1B,0CAA0C;EAC1C,2CAA2C;AAC7C\",\"sourcesContent\":[\"/**\\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/**\\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon[data-v-c8e429a5] {\\n display: flex;\\n align-self: center;\\n justify-self: center;\\n align-items: center;\\n justify-content: center;\\n}\\n.nc-chip[data-v-c8e429a5] {\\n --chip-size: 24px;\\n --chip-radius: calc(var(--chip-size) / 2);\\n height: var(--chip-size);\\n max-width: fit-content;\\n display: flex;\\n flex-direction: row;\\n align-items: center;\\n border-radius: var(--chip-radius);\\n background-color: var(--color-background-hover);\\n}\\n.nc-chip--primary[data-v-c8e429a5] {\\n background-color: var(--color-primary-element);\\n color: var(--color-primary-element-text);\\n}\\n.nc-chip--secondary[data-v-c8e429a5] {\\n background-color: var(--color-primary-element-light);\\n color: var(--color-primary-element-light-text);\\n}\\n.nc-chip--error[data-v-c8e429a5] {\\n background-color: var(--color-error);\\n color: var(--color-error-text);\\n}\\n.nc-chip--warning[data-v-c8e429a5] {\\n background-color: var(--color-warning);\\n color: var(--color-warning-text);\\n}\\n.nc-chip--success[data-v-c8e429a5] {\\n background-color: var(--color-success);\\n color: var(--color-success-text);\\n}\\n.nc-chip--no-actions .nc-chip__text[data-v-c8e429a5] {\\n padding-inline-end: calc(2 * var(--default-grid-baseline));\\n}\\n.nc-chip--no-icon .nc-chip__text[data-v-c8e429a5] {\\n padding-inline-start: calc(2 * var(--default-grid-baseline));\\n}\\n.nc-chip__text[data-v-c8e429a5] {\\n flex: 1 auto;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n text-wrap: nowrap;\\n}\\n.nc-chip__icon[data-v-c8e429a5] {\\n flex: 0 0 var(--chip-size);\\n margin-inline-end: var(--default-grid-baseline);\\n line-height: 1;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n overflow: hidden;\\n height: var(--chip-size);\\n width: var(--chip-size);\\n}\\n.nc-chip__actions[data-v-c8e429a5] {\\n flex: 0 0 var(--chip-size);\\n --default-clickable-area: var(--chip-size);\\n --border-radius-element: var(--chip-radius);\\n}\"],\"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__breadcrumbs[data-v-04c7dec6]{flex:1 1 100% !important;width:100%;height:100%;margin:0;min-width:0}.files-list__breadcrumbs[data-v-04c7dec6] a{cursor:pointer !important}.files-list__breadcrumbs--with-progress[data-v-04c7dec6]{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,QAAA,CACA,WAAA,CAGC,6CACC,yBAAA,CAIF,yDACC,gCAAA,CACA,iCAAA\",\"sourcesContent\":[\"\\n.files-list__breadcrumbs {\\n\\t// Take as much space as possible\\n\\tflex: 1 1 100% !important;\\n\\twidth: 100%;\\n\\theight: 100%;\\n\\tmargin: 0;\\n\\tmin-width: 0;\\n\\n\\t:deep() {\\n\\t\\ta {\\n\\t\\t\\tcursor: pointer !important;\\n\\t\\t}\\n\\t}\\n\\n\\t&--with-progress {\\n\\t\\tflex-direction: column !important;\\n\\t\\talign-items: flex-start !important;\\n\\t}\\n}\\n\"],\"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-3920de03]{display:flex;align-items:center;justify-content:center;width:100%;min-height:102px;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-3920de03]{margin-inline-start:16px;color:inherit}.files-list__drag-drop-notice-wrapper[data-v-3920de03]{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\",\"sourcesContent\":[\"\\n.files-list__drag-drop-notice {\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n\\twidth: 100%;\\n\\t// Breadcrumbs height + row thead height\\n\\tmin-height: calc(58px + 44px);\\n\\tmargin: 0;\\n\\tuser-select: none;\\n\\tcolor: var(--color-text-maxcontrast);\\n\\tbackground-color: var(--color-main-background);\\n\\tborder-color: black;\\n\\n\\th3 {\\n\\t\\tmargin-inline-start: 16px;\\n\\t\\tcolor: inherit;\\n\\t}\\n\\n\\t&-wrapper {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tjustify-content: center;\\n\\t\\theight: 15vh;\\n\\t\\tmax-height: 70%;\\n\\t\\tpadding: 0 5vw;\\n\\t\\tborder: 2px var(--color-border-dark) dashed;\\n\\t\\tborder-radius: var(--border-radius-large);\\n\\t}\\n}\\n\\n\"],\"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:34px;padding:6px 12px;background:var(--color-main-background)}.files-list-drag-image__icon,.files-list-drag-image .files-list__row-icon-preview-container{display:flex;overflow:hidden;align-items:center;justify-content:center;width:22px;height:22px;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-preview-container+.files-list__row-icon-preview-container{margin-top:6px;margin-inline-start:-16px}.files-list-drag-image__icon>span>.files-list__row-icon-preview-container+.files-list__row-icon-preview-container+.files-list__row-icon-preview-container{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,4FAEC,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,CAIA,kHACC,cA/CU,CAgDV,yBAAA,CACA,0JACC,eAAA,CAMF,gDACC,YAAA,CAKH,6BACC,eAAA,CACA,kBAAA,CACA,sBAAA\",\"sourcesContent\":[\"\\n$size: 28px;\\n$stack-shift: 6px;\\n\\n.files-list-drag-image {\\n\\tposition: absolute;\\n\\ttop: -9999px;\\n\\tinset-inline-start: -9999px;\\n\\tdisplay: flex;\\n\\toverflow: hidden;\\n\\talign-items: center;\\n\\theight: $size + $stack-shift;\\n\\tpadding: $stack-shift $stack-shift * 2;\\n\\tbackground: var(--color-main-background);\\n\\n\\t&__icon,\\n\\t.files-list__row-icon-preview-container {\\n\\t\\tdisplay: flex;\\n\\t\\toverflow: hidden;\\n\\t\\talign-items: center;\\n\\t\\tjustify-content: center;\\n\\t\\twidth: $size - $stack-shift;\\n\\t\\theight: $size - $stack-shift;;\\n\\t\\tborder-radius: var(--border-radius);\\n\\t}\\n\\n\\t&__icon {\\n\\t\\toverflow: visible;\\n\\t\\tmargin-inline-end: $stack-shift * 2;\\n\\n\\t\\timg {\\n\\t\\t\\tmax-width: 100%;\\n\\t\\t\\tmax-height: 100%;\\n\\t\\t}\\n\\n\\t\\t.material-design-icon {\\n\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\t\\t&.folder-icon {\\n\\t\\t\\t\\tcolor: var(--color-primary-element);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// Previews container\\n\\t\\t> span {\\n\\t\\t\\tdisplay: flex;\\n\\n\\t\\t\\t// Stack effect if more than one element\\n\\t\\t\\t// Max 3 elements\\n\\t\\t\\t> .files-list__row-icon-preview-container + .files-list__row-icon-preview-container {\\n\\t\\t\\t\\tmargin-top: $stack-shift;\\n\\t\\t\\t\\tmargin-inline-start: $stack-shift * 2 - $size;\\n\\t\\t\\t\\t& + .files-list__row-icon-preview-container {\\n\\t\\t\\t\\t\\tmargin-top: $stack-shift * 2;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t\\t// If we have manually clone the preview,\\n\\t\\t\\t// let's hide any fallback icons\\n\\t\\t\\t&:not(:empty) + * {\\n\\t\\t\\t\\tdisplay: none;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&__name {\\n\\t\\toverflow: hidden;\\n\\t\\twhite-space: nowrap;\\n\\t\\ttext-overflow: ellipsis;\\n\\t}\\n}\\n\\n\"],\"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-4505d262]{color:var(--color-favorite);min-width:unset !important;min-height:unset !important}.favorite-marker-icon[data-v-4505d262] svg{width:20px !important;height:20px !important;max-width:unset !important;max-height:unset !important}.favorite-marker-icon[data-v-4505d262] 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\",\"sourcesContent\":[\"\\n.favorite-marker-icon {\\n\\tcolor: var(--color-favorite);\\n\\t// Override NcIconSvgWrapper defaults (clickable area)\\n\\tmin-width: unset !important;\\n min-height: unset !important;\\n\\n\\t:deep() {\\n\\t\\tsvg {\\n\\t\\t\\t// We added a stroke for a11y so we must increase the size to include the stroke\\n\\t\\t\\twidth: 20px !important;\\n\\t\\t\\theight: 20px !important;\\n\\n\\t\\t\\t// Override NcIconSvgWrapper defaults of 20px\\n\\t\\t\\tmax-width: unset !important;\\n\\t\\t\\tmax-height: unset !important;\\n\\n\\t\\t\\t// Sow a border around the icon for better contrast\\n\\t\\t\\tpath {\\n\\t\\t\\t\\tstroke: var(--color-main-background);\\n\\t\\t\\t\\tstroke-width: 8px;\\n\\t\\t\\t\\tstroke-linejoin: round;\\n\\t\\t\\t\\tpaint-order: stroke;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\"],\"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\",\"sourcesContent\":[\"\\n// Allow right click to define the position of the menu\\n// only if defined\\nmain.app-content[style*=\\\"mouse-pos-x\\\"] .v-popper__popper {\\n\\ttransform: translate3d(var(--mouse-pos-x), var(--mouse-pos-y), 0px) !important;\\n\\n\\t// If the menu is too close to the bottom, we move it up\\n\\t&[data-popper-placement=\\\"top\\\"] {\\n\\t\\t// 34px added to align with the top of the cursor\\n\\t\\ttransform: translate3d(var(--mouse-pos-x), calc(var(--mouse-pos-y) - 50vh + 34px), 0px) !important;\\n\\t}\\n\\t// Hide arrow if floating\\n\\t.v-popper__arrow-container {\\n\\t\\tdisplay: none;\\n\\t}\\n}\\n\"],\"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-action[data-v-3d55d6ab]{--max-icon-size: calc(var(--default-clickable-area) - 2 * var(--default-grid-baseline))}.files-list__row-action.files-list__row-action--inline[data-v-3d55d6ab]{--max-icon-size: var(--default-clickable-area)}.files-list__row-action .files-list__row-action-icon[data-v-3d55d6ab] svg{max-height:var(--max-icon-size) !important;max-width:var(--max-icon-size) !important}.files-list__row-action.files-list__row-action--destructive[data-v-3d55d6ab] ::deep(button){color:var(--color-text-error) !important}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FileEntry/FileEntryActions.vue\"],\"names\":[],\"mappings\":\"AACA,yCACC,uFAAA,CAGA,wEACC,8CAAA,CAID,0EACC,0CAAA,CACA,yCAAA,CAIA,4FACC,wCAAA\",\"sourcesContent\":[\"\\n.files-list__row-action {\\n\\t--max-icon-size: calc(var(--default-clickable-area) - 2 * var(--default-grid-baseline));\\n\\n\\t// inline icons can have clickable area size so they still fit into the row\\n\\t&.files-list__row-action--inline {\\n\\t\\t--max-icon-size: var(--default-clickable-area);\\n\\t}\\n\\n\\t// Some icons exceed the default size so we need to enforce a max width and height\\n\\t.files-list__row-action-icon :deep(svg) {\\n\\t\\tmax-height: var(--max-icon-size) !important;\\n\\t\\tmax-width: var(--max-icon-size) !important;\\n\\t}\\n\\n\\t&.files-list__row-action--destructive {\\n\\t\\t::deep(button) {\\n\\t\\t\\tcolor: var(--color-text-error) !important;\\n\\t\\t}\\n\\t}\\n}\\n\\n\"],\"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-ab3b59e0]{background-color:unset;border:none;font-weight:normal}button.files-list__row-name-link[data-v-ab3b59e0]: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\",\"sourcesContent\":[\"\\nbutton.files-list__row-name-link {\\n\\tbackground-color: unset;\\n\\tborder: none;\\n\\tfont-weight: normal;\\n\\n\\t&:active {\\n\\t\\t// No active styles - handled by the row entry\\n\\t\\tbackground-color: unset !important;\\n\\t}\\n}\\n\"],\"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, `.recently-created-marker-icon[data-v-251f6582]{color:var(--color-element-success);min-width:unset !important;min-height:unset !important}.recently-created-marker-icon[data-v-251f6582] svg{width:20px !important;height:20px !important;max-width:unset !important;max-height:unset !important}.recently-created-marker-icon[data-v-251f6582] 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/RecentlyCreatedIcon.vue\"],\"names\":[],\"mappings\":\"AACA,+CACC,kCAAA,CAEA,0BAAA,CACA,2BAAA,CAGC,oDAEC,qBAAA,CACA,sBAAA,CAGA,0BAAA,CACA,2BAAA,CAGA,yDACC,mCAAA,CACA,gBAAA,CACA,qBAAA,CACA,kBAAA\",\"sourcesContent\":[\"\\n.recently-created-marker-icon {\\n\\tcolor: var(--color-element-success);\\n\\t// Override NcIconSvgWrapper defaults (clickable area)\\n\\tmin-width: unset !important;\\n\\tmin-height: unset !important;\\n\\n\\t:deep() {\\n\\t\\tsvg {\\n\\t\\t\\t// We added a stroke for a11y so we must increase the size to include the stroke\\n\\t\\t\\twidth: 20px !important;\\n\\t\\t\\theight: 20px !important;\\n\\n\\t\\t\\t// Override NcIconSvgWrapper defaults of 20px\\n\\t\\t\\tmax-width: unset !important;\\n\\t\\t\\tmax-height: unset !important;\\n\\n\\t\\t\\t// Show a border around the icon for better contrast\\n\\t\\t\\tpath {\\n\\t\\t\\t\\tstroke: var(--color-main-background);\\n\\t\\t\\t\\tstroke-width: 8px;\\n\\t\\t\\t\\tstroke-linejoin: round;\\n\\t\\t\\t\\tpaint-order: stroke;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\"],\"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-378a6e4a]{margin-bottom: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-378a6e4a]{user-select:none;color:var(--color-text-maxcontrast) !important}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FilesListTableFooter.vue\"],\"names\":[],\"mappings\":\"AAEA,oBACC,0CAAA,CACA,wCAAA,CAEA,yCAAA,CACA,6BAAA,CAEA,uBACC,gBAAA,CAEA,8CAAA\",\"sourcesContent\":[\"\\n// Scoped row\\ntr {\\n\\tmargin-bottom: var(--body-container-margin);\\n\\tborder-top: 1px solid var(--color-border);\\n\\t// Prevent hover effect on the whole row\\n\\tbackground-color: transparent !important;\\n\\tborder-bottom: none !important;\\n\\n\\ttd {\\n\\t\\tuser-select: none;\\n\\t\\t// Make sure the cell colors don't apply to column headers\\n\\t\\tcolor: var(--color-text-maxcontrast) !important;\\n\\t}\\n}\\n\"],\"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-12d5b60e]{user-select:none;color:var(--color-text-maxcontrast) !important}.files-list__column--sortable[data-v-12d5b60e]{cursor:pointer}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FilesListTableHeader.vue\"],\"names\":[],\"mappings\":\"AACA,qCACC,gBAAA,CAEA,8CAAA,CAEA,+CACC,cAAA\",\"sourcesContent\":[\"\\n.files-list__column {\\n\\tuser-select: none;\\n\\t// Make sure the cell colors don't apply to column headers\\n\\tcolor: var(--color-text-maxcontrast) !important;\\n\\n\\t&--sortable {\\n\\t\\tcursor: pointer;\\n\\t}\\n}\\n\\n\"],\"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-3b887a8f]{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\",\"sourcesContent\":[\"\\n.files-list__row-actions-batch {\\n\\tflex: 1 1 100% !important;\\n\\tmax-width: 100%;\\n}\\n\"],\"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-4a8557e6]{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-4a8557e6]{color:var(--color-text-maxcontrast);font-weight:normal}.files-list__column-sort-button-icon[data-v-4a8557e6]{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-4a8557e6]{inset-inline-start:10px}.files-list__column-sort-button--active .files-list__column-sort-button-icon[data-v-4a8557e6],.files-list__column-sort-button:hover .files-list__column-sort-button-icon[data-v-4a8557e6],.files-list__column-sort-button:focus .files-list__column-sort-button-icon[data-v-4a8557e6],.files-list__column-sort-button:active .files-list__column-sort-button-icon[data-v-4a8557e6]{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\",\"sourcesContent\":[\"\\n.files-list__column-sort-button {\\n\\t// Compensate for cells margin\\n\\tmargin: 0 calc(var(--button-padding, var(--cell-margin)) * -1);\\n\\tmin-width: calc(100% - 3 * var(--cell-margin))!important;\\n\\n\\t&-text {\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\tfont-weight: normal;\\n\\t}\\n\\n\\t&-icon {\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\topacity: 0;\\n\\t\\ttransition: opacity var(--animation-quick);\\n\\t\\tinset-inline-start: -10px;\\n\\t}\\n\\n\\t&--size &-icon {\\n\\t\\tinset-inline-start: 10px;\\n\\t}\\n\\n\\t&--active &-icon,\\n\\t&:hover &-icon,\\n\\t&:focus &-icon,\\n\\t&:active &-icon {\\n\\t\\topacity: 1;\\n\\t}\\n}\\n\"],\"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-0aebd17f]{--row-height: 44px;--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: 24px;--fixed-block-start-position: calc(var(--clickable-area-small) + var(--default-grid-baseline, 4px));display:flex;flex-direction:column;overflow:auto;height:100%;will-change:scroll-position}.files-list[data-v-0aebd17f]:has(.files-list__filters:empty){--fixed-block-start-position: 0px}.files-list[data-v-0aebd17f] tbody{will-change:padding;contain:layout paint style;display:flex;flex-direction:column;width:100%;position:relative}.files-list[data-v-0aebd17f] tbody tr{contain:strict}.files-list[data-v-0aebd17f] tbody tr:hover,.files-list[data-v-0aebd17f] tbody tr:focus{background-color:var(--color-background-dark)}.files-list[data-v-0aebd17f] .files-list__before{display:flex;flex-direction:column}.files-list[data-v-0aebd17f] .files-list__selected{padding-inline-end:12px;white-space:nowrap;font-variant-numeric:tabular-nums}.files-list[data-v-0aebd17f] .files-list__table{display:block}.files-list[data-v-0aebd17f] .files-list__table.files-list__table--with-thead-overlay{margin-block-start:calc(-1*var(--row-height))}.files-list[data-v-0aebd17f] .files-list__table--hidden{visibility:hidden;z-index:-1;opacity:0}.files-list[data-v-0aebd17f] .files-list__filters{display:flex;gap:var(--default-grid-baseline);box-sizing:border-box;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-0aebd17f] .files-list__filters:not(:empty){padding-block:calc(var(--default-grid-baseline, 4px)/2)}.files-list[data-v-0aebd17f] .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);flex:0 0 var(--row-height)}.files-list[data-v-0aebd17f] .files-list__thead,.files-list[data-v-0aebd17f] .files-list__tfoot{display:flex;flex-direction:column;width:100%;background-color:var(--color-main-background)}.files-list[data-v-0aebd17f] .files-list__thead{position:sticky;z-index:10;top:var(--fixed-block-start-position)}.files-list[data-v-0aebd17f] .files-list__empty{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%}.files-list[data-v-0aebd17f] tr{position:relative;display:flex;align-items:center;width:100%;border-block-end:1px solid var(--color-border);box-sizing:border-box;user-select:none;height:var(--row-height)}.files-list[data-v-0aebd17f] td,.files-list[data-v-0aebd17f] 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-0aebd17f] td span,.files-list[data-v-0aebd17f] th span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.files-list[data-v-0aebd17f] .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-0aebd17f] .files-list__row-checkbox{justify-content:center}.files-list[data-v-0aebd17f] .files-list__row-checkbox .checkbox-radio-switch{display:flex;justify-content:center;--icon-size: var(--checkbox-size)}.files-list[data-v-0aebd17f] .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-0aebd17f] .files-list__row-checkbox .checkbox-radio-switch .checkbox-radio-switch__icon{margin:0 !important}.files-list[data-v-0aebd17f] .files-list__row:hover,.files-list[data-v-0aebd17f] .files-list__row:focus,.files-list[data-v-0aebd17f] .files-list__row:active,.files-list[data-v-0aebd17f] .files-list__row--active,.files-list[data-v-0aebd17f] .files-list__row--dragover{background-color:var(--color-background-hover);--color-text-maxcontrast: var(--color-main-text)}.files-list[data-v-0aebd17f] .files-list__row:hover>*,.files-list[data-v-0aebd17f] .files-list__row:focus>*,.files-list[data-v-0aebd17f] .files-list__row:active>*,.files-list[data-v-0aebd17f] .files-list__row--active>*,.files-list[data-v-0aebd17f] .files-list__row--dragover>*{--color-border: var(--color-border-dark)}.files-list[data-v-0aebd17f] .files-list__row:hover .favorite-marker-icon svg path,.files-list[data-v-0aebd17f] .files-list__row:focus .favorite-marker-icon svg path,.files-list[data-v-0aebd17f] .files-list__row:active .favorite-marker-icon svg path,.files-list[data-v-0aebd17f] .files-list__row--active .favorite-marker-icon svg path,.files-list[data-v-0aebd17f] .files-list__row--dragover .favorite-marker-icon svg path{stroke:var(--color-background-hover)}.files-list[data-v-0aebd17f] .files-list__row--dragover *{pointer-events:none}.files-list[data-v-0aebd17f] .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-0aebd17f] .files-list__row-icon *{cursor:pointer}.files-list[data-v-0aebd17f] .files-list__row-icon>span{justify-content:flex-start}.files-list[data-v-0aebd17f] .files-list__row-icon>span:not(.files-list__row-icon-favorite):not(.files-list__row-icon-recently-created) svg{width:var(--icon-preview-size);height:var(--icon-preview-size)}.files-list[data-v-0aebd17f] .files-list__row-icon>span.folder-icon,.files-list[data-v-0aebd17f] .files-list__row-icon>span.folder-open-icon{margin:-3px}.files-list[data-v-0aebd17f] .files-list__row-icon>span.folder-icon svg,.files-list[data-v-0aebd17f] .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-0aebd17f] .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-0aebd17f] .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-0aebd17f] .files-list__row-icon-preview{object-fit:contain;object-position:center;height:100%;width:100%}.files-list[data-v-0aebd17f] .files-list__row-icon-preview:not(.files-list__row-icon-preview--loaded){background:var(--color-loading-dark)}.files-list[data-v-0aebd17f] .files-list__row-icon-favorite,.files-list[data-v-0aebd17f] .files-list__row-icon-recently-created{position:absolute;top:0px;inset-inline-end:-10px}.files-list[data-v-0aebd17f] .files-list__row-icon-overlay{position:absolute;max-height:calc(var(--icon-preview-size)*.6);max-width:calc(var(--icon-preview-size)*.6);color:var(--color-primary-element-text);margin-block-start:2px}.files-list[data-v-0aebd17f] .files-list__row-icon-overlay--file{color:var(--color-main-text);background:var(--color-main-background);border-radius:100%}.files-list[data-v-0aebd17f] .files-list__row-name{overflow:hidden;flex:1 1 auto}.files-list[data-v-0aebd17f] .files-list__row-name button.files-list__row-name-link{display:flex;align-items:center;text-align:start;width:100%;height:100%;min-width:0;margin:0;padding:0}.files-list[data-v-0aebd17f] .files-list__row-name button.files-list__row-name-link:focus-visible{outline:none !important}.files-list[data-v-0aebd17f] .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-0aebd17f] .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-0aebd17f] .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-0aebd17f] .files-list__row-name .files-list__row-name-ext{color:var(--color-text-maxcontrast);overflow:visible}.files-list[data-v-0aebd17f] .files-list__row-rename{width:100%;max-width:600px}.files-list[data-v-0aebd17f] .files-list__row-rename input{width:100%;margin-inline-start:-8px;padding:2px 6px;border-width:2px}.files-list[data-v-0aebd17f] .files-list__row-rename input:invalid{border-color:var(--color-border-error);color:var(--color-text-error)}.files-list[data-v-0aebd17f] .files-list__row-actions{width:auto}.files-list[data-v-0aebd17f] .files-list__row-actions~td,.files-list[data-v-0aebd17f] .files-list__row-actions~th{margin:0 var(--cell-margin)}.files-list[data-v-0aebd17f] .files-list__row-actions button .button-vue__text{font-weight:normal}.files-list[data-v-0aebd17f] .files-list__row-action--inline{margin-inline-end:7px}.files-list[data-v-0aebd17f] .files-list__row-mime,.files-list[data-v-0aebd17f] .files-list__row-mtime,.files-list[data-v-0aebd17f] .files-list__row-size{color:var(--color-text-maxcontrast)}.files-list[data-v-0aebd17f] .files-list__row-size{width:calc(var(--row-height)*2);justify-content:flex-end}.files-list[data-v-0aebd17f] .files-list__row-mtime{width:calc(var(--row-height)*2.5)}.files-list[data-v-0aebd17f] .files-list__row-mime{width:calc(var(--row-height)*3.5)}.files-list[data-v-0aebd17f] .files-list__row-column-custom{width:calc(var(--row-height)*2.5)}@media screen and (max-width: 512px){.files-list[data-v-0aebd17f] .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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\",\"sourcesContent\":[\"\\n.files-list {\\n\\t--row-height: 44px;\\n\\t--cell-margin: 14px;\\n\\n\\t--checkbox-padding: calc((var(--row-height) - var(--checkbox-size)) / 2);\\n\\t--checkbox-size: 24px;\\n\\t--clickable-area: var(--default-clickable-area);\\n\\t--icon-preview-size: 24px;\\n\\n\\t--fixed-block-start-position: calc(var(--clickable-area-small) + var(--default-grid-baseline, 4px));\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\toverflow: auto;\\n\\theight: 100%;\\n\\twill-change: scroll-position;\\n\\n\\t&:has(&__filters:empty) {\\n\\t\\t--fixed-block-start-position: 0px;\\n\\t}\\n\\n\\t& :deep() {\\n\\t\\t// Table head, body and footer\\n\\t\\ttbody {\\n\\t\\t\\twill-change: padding;\\n\\t\\t\\tcontain: layout paint style;\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex-direction: column;\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\t// Necessary for virtual scrolling absolute\\n\\t\\t\\tposition: relative;\\n\\n\\t\\t\\t/* Hover effect on tbody lines only */\\n\\t\\t\\ttr {\\n\\t\\t\\t\\tcontain: strict;\\n\\t\\t\\t\\t&:hover,\\n\\t\\t\\t\\t&:focus {\\n\\t\\t\\t\\t\\tbackground-color: var(--color-background-dark);\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// Before table and thead\\n\\t\\t.files-list__before {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex-direction: column;\\n\\t\\t}\\n\\n\\t\\t.files-list__selected {\\n\\t\\t\\tpadding-inline-end: 12px;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\tfont-variant-numeric: tabular-nums;\\n\\t\\t}\\n\\n\\t\\t.files-list__table {\\n\\t\\t\\tdisplay: block;\\n\\n\\t\\t\\t&.files-list__table--with-thead-overlay {\\n\\t\\t\\t\\t// Hide the table header below the overlay\\n\\t\\t\\t\\tmargin-block-start: calc(-1 * var(--row-height));\\n\\t\\t\\t}\\n\\n\\t\\t\\t// Visually hide the table when there are no files\\n\\t\\t\\t&--hidden {\\n\\t\\t\\t\\tvisibility: hidden;\\n\\t\\t\\t\\tz-index: -1;\\n\\t\\t\\t\\topacity: 0;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t.files-list__filters {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tgap: var(--default-grid-baseline);\\n\\t\\t\\tbox-sizing: border-box;\\n\\n\\t\\t\\t// Pinned on top when scrolling above table header\\n\\t\\t\\tposition: sticky;\\n\\t\\t\\ttop: 0;\\n\\t\\t\\t// ensure there is a background to hide the file list on scroll\\n\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\tz-index: 10;\\n\\t\\t\\t// fixed the size\\n\\t\\t\\tpadding-inline: var(--row-height) var(--default-grid-baseline, 4px);\\n\\t\\t\\theight: var(--fixed-block-start-position);\\n\\t\\t\\twidth: 100%;\\n\\n\\t\\t\\t&:not(:empty) {\\n\\t\\t\\t\\tpadding-block: calc(var(--default-grid-baseline, 4px) / 2);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t.files-list__thead-overlay {\\n\\t\\t\\t// Pinned on top when scrolling\\n\\t\\t\\tposition: sticky;\\n\\t\\t\\ttop: var(--fixed-block-start-position);\\n\\t\\t\\t// Save space for a row checkbox\\n\\t\\t\\tmargin-inline-start: var(--row-height);\\n\\t\\t\\t// More than .files-list__thead\\n\\t\\t\\tz-index: 20;\\n\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\n\\n\\t\\t\\t// Reuse row styles\\n\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\tborder-block-end: 1px solid var(--color-border);\\n\\t\\t\\theight: var(--row-height);\\n\\t\\t\\tflex: 0 0 var(--row-height);\\n\\t\\t}\\n\\n\\t\\t.files-list__thead,\\n\\t\\t.files-list__tfoot {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex-direction: column;\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t}\\n\\n\\t\\t// Table header\\n\\t\\t.files-list__thead {\\n\\t\\t\\t// Pinned on top when scrolling\\n\\t\\t\\tposition: sticky;\\n\\t\\t\\tz-index: 10;\\n\\t\\t\\ttop: var(--fixed-block-start-position);\\n\\t\\t}\\n\\n\\t\\t// Empty content\\n\\t\\t.files-list__empty {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex-direction: column;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tjustify-content: center;\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\theight: 100%;\\n\\t\\t}\\n\\n\\t\\ttr {\\n\\t\\t\\tposition: relative;\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\tborder-block-end: 1px solid var(--color-border);\\n\\t\\t\\tbox-sizing: border-box;\\n\\t\\t\\tuser-select: none;\\n\\t\\t\\theight: var(--row-height);\\n\\t\\t}\\n\\n\\t\\ttd, th {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tflex: 0 0 auto;\\n\\t\\t\\tjustify-content: start;\\n\\t\\t\\twidth: var(--row-height);\\n\\t\\t\\theight: var(--row-height);\\n\\t\\t\\tmargin: 0;\\n\\t\\t\\tpadding: 0;\\n\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\t\\tborder: none;\\n\\n\\t\\t\\t// Columns should try to add any text\\n\\t\\t\\t// node wrapped in a span. That should help\\n\\t\\t\\t// with the ellipsis on overflow.\\n\\t\\t\\tspan {\\n\\t\\t\\t\\toverflow: hidden;\\n\\t\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t.files-list__row--failed {\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\tdisplay: block;\\n\\t\\t\\ttop: 0;\\n\\t\\t\\tinset-inline: 0;\\n\\t\\t\\tbottom: 0;\\n\\t\\t\\topacity: .1;\\n\\t\\t\\tz-index: -1;\\n\\t\\t\\tbackground: var(--color-error);\\n\\t\\t}\\n\\n\\t\\t.files-list__row-checkbox {\\n\\t\\t\\tjustify-content: center;\\n\\n\\t\\t\\t.checkbox-radio-switch {\\n\\t\\t\\t\\tdisplay: flex;\\n\\t\\t\\t\\tjustify-content: center;\\n\\n\\t\\t\\t\\t--icon-size: var(--checkbox-size);\\n\\n\\t\\t\\t\\tlabel.checkbox-radio-switch__label {\\n\\t\\t\\t\\t\\twidth: var(--clickable-area);\\n\\t\\t\\t\\t\\theight: var(--clickable-area);\\n\\t\\t\\t\\t\\tmargin: 0;\\n\\t\\t\\t\\t\\tpadding: calc((var(--clickable-area) - var(--checkbox-size)) / 2);\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t.checkbox-radio-switch__icon {\\n\\t\\t\\t\\t\\tmargin: 0 !important;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t.files-list__row {\\n\\t\\t\\t&:hover, &:focus, &:active, &--active, &--dragover {\\n\\t\\t\\t\\t// WCAG AA compliant\\n\\t\\t\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\t\\t\\t// text-maxcontrast have been designed to pass WCAG AA over\\n\\t\\t\\t\\t// a white background, we need to adjust then.\\n\\t\\t\\t\\t--color-text-maxcontrast: var(--color-main-text);\\n\\t\\t\\t\\t> * {\\n\\t\\t\\t\\t\\t--color-border: var(--color-border-dark);\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t// Hover state of the row should also change the favorite markers background\\n\\t\\t\\t\\t.favorite-marker-icon svg path {\\n\\t\\t\\t\\t\\tstroke: var(--color-background-hover);\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t\\t&--dragover * {\\n\\t\\t\\t\\t// Prevent dropping on row children\\n\\t\\t\\t\\tpointer-events: none;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// Entry preview or mime icon\\n\\t\\t.files-list__row-icon {\\n\\t\\t\\tposition: relative;\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\toverflow: visible;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\t// No shrinking or growing allowed\\n\\t\\t\\tflex: 0 0 var(--icon-preview-size);\\n\\t\\t\\tjustify-content: center;\\n\\t\\t\\twidth: var(--icon-preview-size);\\n\\t\\t\\theight: 100%;\\n\\t\\t\\t// Show same padding as the checkbox right padding for visual balance\\n\\t\\t\\tmargin-inline-end: var(--checkbox-padding);\\n\\t\\t\\tcolor: var(--color-primary-element);\\n\\n\\t\\t\\t// Icon is also clickable\\n\\t\\t\\t* {\\n\\t\\t\\t\\tcursor: pointer;\\n\\t\\t\\t}\\n\\n\\t\\t\\t& > span {\\n\\t\\t\\t\\tjustify-content: flex-start;\\n\\n\\t\\t\\t\\t&:not(.files-list__row-icon-favorite):not(.files-list__row-icon-recently-created) svg {\\n\\t\\t\\t\\t\\twidth: var(--icon-preview-size);\\n\\t\\t\\t\\t\\theight: var(--icon-preview-size);\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t// Slightly increase the size of the folder icon\\n\\t\\t\\t\\t&.folder-icon,\\n\\t\\t\\t\\t&.folder-open-icon {\\n\\t\\t\\t\\t\\tmargin: -3px;\\n\\t\\t\\t\\t\\tsvg {\\n\\t\\t\\t\\t\\t\\twidth: calc(var(--icon-preview-size) + 6px);\\n\\t\\t\\t\\t\\t\\theight: calc(var(--icon-preview-size) + 6px);\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t\\t&-preview-container {\\n\\t\\t\\t\\tposition: relative; // Needed for the blurshash to be positioned correctly\\n\\t\\t\\t\\toverflow: hidden;\\n\\t\\t\\t\\twidth: var(--icon-preview-size);\\n\\t\\t\\t\\theight: var(--icon-preview-size);\\n\\t\\t\\t\\tborder-radius: var(--border-radius);\\n\\t\\t\\t}\\n\\n\\t\\t\\t&-blurhash {\\n\\t\\t\\t\\tposition: absolute;\\n\\t\\t\\t\\tinset-block-start: 0;\\n\\t\\t\\t\\tinset-inline-start: 0;\\n\\t\\t\\t\\theight: 100%;\\n\\t\\t\\t\\twidth: 100%;\\n\\t\\t\\t\\tobject-fit: cover;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&-preview {\\n\\t\\t\\t\\t// Center and contain the preview\\n\\t\\t\\t\\tobject-fit: contain;\\n\\t\\t\\t\\tobject-position: center;\\n\\n\\t\\t\\t\\theight: 100%;\\n\\t\\t\\t\\twidth: 100%;\\n\\n\\t\\t\\t\\t/* Preview not loaded animation effect */\\n\\t\\t\\t\\t&:not(.files-list__row-icon-preview--loaded) {\\n\\t\\t\\t\\t\\tbackground: var(--color-loading-dark);\\n\\t\\t\\t\\t\\t// animation: preview-gradient-fade 1.2s ease-in-out infinite;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t\\t&-favorite,\\n\\t\\t\\t&-recently-created {\\n\\t\\t\\t\\tposition: absolute;\\n\\t\\t\\t\\ttop: 0px;\\n\\t\\t\\t\\tinset-inline-end: -10px;\\n\\t\\t\\t}\\n\\n\\t\\t\\t// File and folder overlay\\n\\t\\t\\t&-overlay {\\n\\t\\t\\t\\tposition: absolute;\\n\\t\\t\\t\\tmax-height: calc(var(--icon-preview-size) * 0.6);\\n\\t\\t\\t\\tmax-width: calc(var(--icon-preview-size) * 0.6);\\n\\t\\t\\t\\tcolor: var(--color-primary-element-text);\\n\\t\\t\\t\\t// better alignment with the folder icon\\n\\t\\t\\t\\tmargin-block-start: 2px;\\n\\n\\t\\t\\t\\t// Improve icon contrast with a background for files\\n\\t\\t\\t\\t&--file {\\n\\t\\t\\t\\t\\tcolor: var(--color-main-text);\\n\\t\\t\\t\\t\\tbackground: var(--color-main-background);\\n\\t\\t\\t\\t\\tborder-radius: 100%;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// Entry link\\n\\t\\t.files-list__row-name {\\n\\t\\t\\t// Prevent link from overflowing\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\t// Take as much space as possible\\n\\t\\t\\tflex: 1 1 auto;\\n\\n\\t\\t\\tbutton.files-list__row-name-link {\\n\\t\\t\\t\\tdisplay: flex;\\n\\t\\t\\t\\talign-items: center;\\n\\t\\t\\t\\ttext-align: start;\\n\\t\\t\\t\\t// Fill cell height and width\\n\\t\\t\\t\\twidth: 100%;\\n\\t\\t\\t\\theight: 100%;\\n\\t\\t\\t\\t// Necessary for flex grow to work\\n\\t\\t\\t\\tmin-width: 0;\\n\\t\\t\\t\\tmargin: 0;\\n\\t\\t\\t\\tpadding: 0;\\n\\n\\t\\t\\t\\t// Already added to the inner text, see rule below\\n\\t\\t\\t\\t&:focus-visible {\\n\\t\\t\\t\\t\\toutline: none !important;\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t// Keyboard indicator a11y\\n\\t\\t\\t\\t&:focus .files-list__row-name-text {\\n\\t\\t\\t\\t\\toutline: var(--border-width-input-focused) solid var(--color-main-text) !important;\\n\\t\\t\\t\\t\\tborder-radius: var(--border-radius-element);\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\t&:focus:not(:focus-visible) .files-list__row-name-text {\\n\\t\\t\\t\\t\\toutline: none !important;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t\\t.files-list__row-name-text {\\n\\t\\t\\t\\tcolor: var(--color-main-text);\\n\\t\\t\\t\\t// Make some space for the outline\\n\\t\\t\\t\\tpadding: var(--default-grid-baseline) calc(2 * var(--default-grid-baseline));\\n\\t\\t\\t\\tpadding-inline-start: -10px;\\n\\t\\t\\t\\t// Align two name and ext\\n\\t\\t\\t\\tdisplay: inline-flex;\\n\\t\\t\\t}\\n\\n\\t\\t\\t.files-list__row-name-ext {\\n\\t\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\t\\t\\t// always show the extension\\n\\t\\t\\t\\toverflow: visible;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// Rename form\\n\\t\\t.files-list__row-rename {\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\tmax-width: 600px;\\n\\t\\t\\tinput {\\n\\t\\t\\t\\twidth: 100%;\\n\\t\\t\\t\\t// Align with text, 0 - padding - border\\n\\t\\t\\t\\tmargin-inline-start: -8px;\\n\\t\\t\\t\\tpadding: 2px 6px;\\n\\t\\t\\t\\tborder-width: 2px;\\n\\n\\t\\t\\t\\t&:invalid {\\n\\t\\t\\t\\t\\t// Show red border on invalid input\\n\\t\\t\\t\\t\\tborder-color: var(--color-border-error);\\n\\t\\t\\t\\t\\tcolor: var(--color-text-error);\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t.files-list__row-actions {\\n\\t\\t\\t// take as much space as necessary\\n\\t\\t\\twidth: auto;\\n\\n\\t\\t\\t// Add margin to all cells after the actions\\n\\t\\t\\t& ~ td,\\n\\t\\t\\t& ~ th {\\n\\t\\t\\t\\tmargin: 0 var(--cell-margin);\\n\\t\\t\\t}\\n\\n\\t\\t\\tbutton {\\n\\t\\t\\t\\t.button-vue__text {\\n\\t\\t\\t\\t\\t// Remove bold from default button styling\\n\\t\\t\\t\\t\\tfont-weight: normal;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t.files-list__row-action--inline {\\n\\t\\t\\tmargin-inline-end: 7px;\\n\\t\\t}\\n\\n\\t\\t.files-list__row-mime,\\n\\t\\t.files-list__row-mtime,\\n\\t\\t.files-list__row-size {\\n\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\t}\\n\\n\\t\\t.files-list__row-size {\\n\\t\\t\\twidth: calc(var(--row-height) * 2);\\n\\t\\t\\t// Right align content/text\\n\\t\\t\\tjustify-content: flex-end;\\n\\t\\t}\\n\\n\\t\\t.files-list__row-mtime {\\n\\t\\t\\twidth: calc(var(--row-height) * 2.5);\\n\\t\\t}\\n\\n\\t\\t.files-list__row-mime {\\n\\t\\t\\twidth: calc(var(--row-height) * 3.5);\\n\\t\\t}\\n\\n\\t\\t.files-list__row-column-custom {\\n\\t\\t\\twidth: calc(var(--row-height) * 2.5);\\n\\t\\t}\\n\\t}\\n}\\n\\n@media screen and (max-width: 512px) {\\n\\t.files-list :deep(.files-list__filters) {\\n\\t\\t// Reduce padding on mobile\\n\\t\\tpadding-inline: var(--default-grid-baseline, 4px);\\n\\t}\\n}\\n\\n\"],\"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--grid tbody.files-list__tbody{--item-padding: 16px;--icon-preview-size: 166px;--name-height: var(--default-clickable-area);--mtime-height: calc(var(--font-size-small) + var(--default-grid-baseline));--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}.files-list--grid tbody.files-list__tbody 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)}.files-list--grid tbody.files-list__tbody .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)}.files-list--grid tbody.files-list__tbody .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)}.files-list--grid tbody.files-list__tbody .files-list__row-icon-favorite,.files-list--grid tbody.files-list__tbody .files-list__row-icon-recently-created{position:absolute;top:0;inset-inline-end:0;display:flex;align-items:center;justify-content:center;width:var(--clickable-area);height:var(--clickable-area)}.files-list--grid tbody.files-list__tbody .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}.files-list--grid tbody.files-list__tbody .files-list__row-name span.files-list__row-icon{width:var(--icon-preview-size);height:var(--icon-preview-size)}.files-list--grid tbody.files-list__tbody .files-list__row-name .files-list__row-name-text{margin:0;margin-inline-start:-4px;padding:0px 4px}.files-list--grid tbody.files-list__tbody .files-list__row-mtime{width:var(--icon-preview-size);height:var(--mtime-height);font-size:var(--font-size-small)}.files-list--grid tbody.files-list__tbody .files-list__row-actions{position:absolute;inset-inline-end:calc(var(--clickable-area)/4);inset-block-end:calc(var(--mtime-height)/2);width:var(--clickable-area);height:var(--clickable-area)}@media screen and (max-width: 768px){.files-list--grid tbody.files-list__tbody{--mtime-height: 0px}.files-list--grid tbody.files-list__tbody .files-list__row-actions{inset-block-end:var(--item-padding)}.files-list--grid tbody.files-list__tbody .files-list__row-name-text{padding-inline-end:var(--clickable-area) !important}}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FilesListVirtual.vue\"],\"names\":[],\"mappings\":\"AAEA,0CACC,oBAAA,CACA,0BAAA,CACA,4CAAA,CACA,2EAAA,CACA,qEAAA,CACA,iHAAA,CACA,uBAAA,CACA,YAAA,CACA,yDAAA,CAEA,oBAAA,CACA,kBAAA,CACA,4BAAA,CACA,oBAAA,CAEA,6CACC,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,wBAAA,CACA,WAAA,CACA,wCAAA,CACA,2BAAA,CAID,oEACC,iBAAA,CACA,SAAA,CACA,+BAAA,CACA,8CAAA,CACA,eAAA,CACA,+BAAA,CACA,oCAAA,CACA,qCAAA,CAGA,2GACC,UAAA,CACA,UAAA,CACA,WAAA,CACA,iBAAA,CACA,sBAAA,CACA,wBAAA,CACA,UAAA,CACA,uCAAA,CAKF,0JAEC,iBAAA,CACA,KAAA,CACA,kBAAA,CACA,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,2BAAA,CACA,4BAAA,CAGD,gEACC,YAAA,CACA,qBAAA,CACA,8BAAA,CACA,0DAAA,CAEA,gBAAA,CAEA,0FACC,8BAAA,CACA,+BAAA,CAGD,2FACC,QAAA,CAEA,wBAAA,CACA,eAAA,CAIF,iEACC,8BAAA,CACA,0BAAA,CACA,gCAAA,CAGD,mEACC,iBAAA,CACA,8CAAA,CACA,2CAAA,CACA,2BAAA,CACA,4BAAA,CAIF,qCAEC,0CACC,mBAAA,CAGA,mEACC,mCAAA,CAID,qEACC,mDAAA,CAAA\",\"sourcesContent\":[\"\\n// Grid mode\\n.files-list--grid tbody.files-list__tbody {\\n\\t--item-padding: 16px;\\n\\t--icon-preview-size: 166px;\\n\\t--name-height: var(--default-clickable-area);\\n\\t--mtime-height: calc(var(--font-size-small) + var(--default-grid-baseline));\\n\\t--row-width: calc(var(--icon-preview-size) + var(--item-padding) * 2);\\n\\t--row-height: calc(var(--icon-preview-size) + var(--name-height) + var(--mtime-height) + var(--item-padding) * 2);\\n\\t--checkbox-padding: 0px;\\n\\tdisplay: grid;\\n\\tgrid-template-columns: repeat(auto-fill, var(--row-width));\\n\\n\\talign-content: center;\\n\\talign-items: center;\\n\\tjustify-content: space-around;\\n\\tjustify-items: center;\\n\\n\\ttr {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\twidth: var(--row-width);\\n\\t\\theight: var(--row-height);\\n\\t\\tborder: none;\\n\\t\\tborder-radius: var(--border-radius-large);\\n\\t\\tpadding: var(--item-padding);\\n\\t}\\n\\n\\t// Checkbox in the top left\\n\\t.files-list__row-checkbox {\\n\\t\\tposition: absolute;\\n\\t\\tz-index: 9;\\n\\t\\ttop: calc(var(--item-padding) / 2);\\n\\t\\tinset-inline-start: calc(var(--item-padding) / 2);\\n\\t\\toverflow: hidden;\\n\\t\\t--checkbox-container-size: 44px;\\n\\t\\twidth: var(--checkbox-container-size);\\n\\t\\theight: var(--checkbox-container-size);\\n\\n\\t\\t// Add a background to the checkbox so we do not see the image through it.\\n\\t\\t.checkbox-radio-switch__content::after {\\n\\t\\t\\tcontent: '';\\n\\t\\t\\twidth: 16px;\\n\\t\\t\\theight: 16px;\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\tinset-inline-start: 50%;\\n\\t\\t\\tmargin-inline-start: -8px;\\n\\t\\t\\tz-index: -1;\\n\\t\\t\\tbackground: var(--color-main-background);\\n\\t\\t}\\n\\t}\\n\\n\\t// Icon in the top right\\n\\t.files-list__row-icon-favorite,\\n\\t.files-list__row-icon-recently-created {\\n\\t\\tposition: absolute;\\n\\t\\ttop: 0;\\n\\t\\tinset-inline-end: 0;\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tjustify-content: center;\\n\\t\\twidth: var(--clickable-area);\\n\\t\\theight: var(--clickable-area);\\n\\t}\\n\\n\\t.files-list__row-name {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\twidth: var(--icon-preview-size);\\n\\t\\theight: calc(var(--icon-preview-size) + var(--name-height));\\n\\t\\t// Ensure that the name outline is visible.\\n\\t\\toverflow: visible;\\n\\n\\t\\tspan.files-list__row-icon {\\n\\t\\t\\twidth: var(--icon-preview-size);\\n\\t\\t\\theight: var(--icon-preview-size);\\n\\t\\t}\\n\\n\\t\\t.files-list__row-name-text {\\n\\t\\t\\tmargin: 0;\\n\\t\\t\\t// Ensure that the outline is not too close to the text.\\n\\t\\t\\tmargin-inline-start: -4px;\\n\\t\\t\\tpadding: 0px 4px;\\n\\t\\t}\\n\\t}\\n\\n\\t.files-list__row-mtime {\\n\\t\\twidth: var(--icon-preview-size);\\n\\t\\theight: var(--mtime-height);\\n\\t\\tfont-size: var(--font-size-small);\\n\\t}\\n\\n\\t.files-list__row-actions {\\n\\t\\tposition: absolute;\\n\\t\\tinset-inline-end: calc(var(--clickable-area) / 4);\\n\\t\\tinset-block-end: calc(var(--mtime-height) / 2);\\n\\t\\twidth: var(--clickable-area);\\n\\t\\theight: var(--clickable-area);\\n\\t}\\n}\\n\\n@media screen and (max-width: 768px) {\\n\\t// there is no mtime\\n\\t.files-list--grid tbody.files-list__tbody {\\n\\t\\t--mtime-height: 0px;\\n\\n\\t\\t// so we move the action to the name\\n\\t\\t.files-list__row-actions {\\n\\t\\t\\tinset-block-end: var(--item-padding);\\n\\t\\t}\\n\\n\\t\\t// and we need to keep space on the name for the actions\\n\\t\\t.files-list__row-name-text {\\n\\t\\t\\tpadding-inline-end: var(--clickable-area) !important;\\n\\t\\t}\\n\\t}\\n}\\n\"],\"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-7c2cda32]{--app-navigation-quota-margin: calc((var(--default-clickable-area) - 24px) / 2)}.app-navigation-entry__settings-quota--not-unlimited[data-v-7c2cda32] .app-navigation-entry__name{line-height:1;margin-top:var(--app-navigation-quota-margin)}.app-navigation-entry__settings-quota progress[data-v-7c2cda32]{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\",\"sourcesContent\":[\"\\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\"],\"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-243e0eb8]{display:flex;overflow:hidden;flex-direction:column;max-height:100%;position:relative !important}.files-list__header[data-v-243e0eb8]{display:flex;gap:var(--default-grid-baseline);align-items:center;flex:0 0;max-width:100%;margin-block:var(--app-navigation-padding, 4px);margin-inline:calc(var(--default-clickable-area) + 2*var(--app-navigation-padding, 4px)) var(--app-navigation-padding, 4px)}.files-list__header--public[data-v-243e0eb8]{margin-inline:0 var(--app-navigation-padding, 4px)}.files-list__header>*[data-v-243e0eb8]{flex:0 0}.files-list__header-actions[data-v-243e0eb8]{min-width:fit-content !important}.files-list__header-upload-button--narrow[data-v-243e0eb8]{position:fixed;inset-block-end:calc(1.5*var(--default-grid-baseline));inset-inline-end:calc(1.5*var(--default-grid-baseline))}.files-list__before[data-v-243e0eb8]{display:flex;flex-direction:column;gap:calc(var(--default-grid-baseline)*2);margin-inline:calc(var(--default-clickable-area) + 2*var(--app-navigation-padding))}.files-list__empty-view-wrapper[data-v-243e0eb8]{display:flex;height:100%}.files-list__refresh-icon[data-v-243e0eb8]{flex:0 0 var(--default-clickable-area);width:var(--default-clickable-area);height:var(--default-clickable-area)}.files-list__loading-icon[data-v-243e0eb8]{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,gCAAA,CACA,kBAAA,CAEA,QAAA,CACA,cAAA,CAEA,+CAAA,CACA,2HAAA,CAEA,6CAEC,kDAAA,CAGD,uCAGC,QAAA,CAGD,6CACC,gCAAA,CAIF,2DAEC,cAAA,CACA,sDAAA,CACA,uDAAA,CAGD,qCACC,YAAA,CACA,qBAAA,CACA,wCAAA,CACA,mFAAA,CAGD,iDACC,YAAA,CACA,WAAA,CAGD,2CACC,sCAAA,CACA,mCAAA,CACA,oCAAA,CAGD,2CACC,WAAA\",\"sourcesContent\":[\"\\n:global(.toast-loading-icon) {\\n\\t// Reduce start margin (it was made for text but this is an icon)\\n\\tmargin-inline-start: -4px;\\n\\t// 16px icon + 5px on both sides\\n\\tmin-width: 26px;\\n}\\n\\n.app-content {\\n\\t// Virtual list needs to be full height and is scrollable\\n\\tdisplay: flex;\\n\\toverflow: hidden;\\n\\tflex-direction: column;\\n\\tmax-height: 100%;\\n\\tposition: relative !important;\\n}\\n\\n.files-list {\\n\\t&__header {\\n\\t\\tdisplay: flex;\\n\\t\\tgap: var(--default-grid-baseline);\\n\\t\\talign-items: center;\\n\\t\\t// Do not grow or shrink (vertically)\\n\\t\\tflex: 0 0;\\n\\t\\tmax-width: 100%;\\n\\t\\t// Align with the navigation toggle icon\\n\\t\\tmargin-block: var(--app-navigation-padding, 4px);\\n\\t\\tmargin-inline: calc(var(--default-clickable-area) + 2 * var(--app-navigation-padding, 4px)) var(--app-navigation-padding, 4px);\\n\\n\\t\\t&--public {\\n\\t\\t\\t// There is no navigation toggle on public shares\\n\\t\\t\\tmargin-inline: 0 var(--app-navigation-padding, 4px);\\n\\t\\t}\\n\\n\\t\\t>* {\\n\\t\\t\\t// Do not grow or shrink (horizontally)\\n\\t\\t\\t// Only the breadcrumbs shrinks\\n\\t\\t\\tflex: 0 0;\\n\\t\\t}\\n\\n\\t\\t&-actions {\\n\\t\\t\\tmin-width: fit-content !important;\\n\\t\\t}\\n\\t}\\n\\n\\t&__header-upload-button--narrow {\\n\\t\\t// this is teleported to body on narrow screens\\n\\t\\tposition: fixed;\\n\\t\\tinset-block-end: calc(1.5 * var(--default-grid-baseline));\\n\\t\\tinset-inline-end: calc(1.5 * var(--default-grid-baseline));\\n\\t}\\n\\n\\t&__before {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\tgap: calc(var(--default-grid-baseline) * 2);\\n\\t\\tmargin-inline: calc(var(--default-clickable-area) + 2 * var(--app-navigation-padding));\\n\\t}\\n\\n\\t&__empty-view-wrapper {\\n\\t\\tdisplay: flex;\\n\\t\\theight: 100%;\\n\\t}\\n\\n\\t&__refresh-icon {\\n\\t\\tflex: 0 0 var(--default-clickable-area);\\n\\t\\twidth: var(--default-clickable-area);\\n\\t\\theight: var(--default-clickable-area);\\n\\t}\\n\\n\\t&__loading-icon {\\n\\t\\tmargin: auto;\\n\\t}\\n}\\n\"],\"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-bb94c4f2] .app-navigation-entry.active .button-vue.icon-collapse:not(:hover){color:var(--color-primary-element-text)}.app-navigation>ul.app-navigation__list[data-v-bb94c4f2]{padding-bottom:var(--default-grid-baseline, 4px)}.app-navigation-entry__settings[data-v-bb94c4f2]{height:auto !important;overflow:hidden !important;padding-top:0 !important;flex:0 0 auto}.files-navigation[data-v-bb94c4f2] .app-navigation__content > ul.app-navigation__list{will-change:scroll-position}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/views/FilesNavigation.vue\"],\"names\":[],\"mappings\":\"AAEC,oGACC,uCAAA,CAGD,yDAEC,gDAAA,CAIF,iDACC,sBAAA,CACA,0BAAA,CACA,wBAAA,CAEA,aAAA,CAIA,sFACC,2BAAA\",\"sourcesContent\":[\"\\n.app-navigation {\\n\\t:deep(.app-navigation-entry.active .button-vue.icon-collapse:not(:hover)) {\\n\\t\\tcolor: var(--color-primary-element-text);\\n\\t}\\n\\n\\t> ul.app-navigation__list {\\n\\t\\t// Use flex gap value for more elegant spacing\\n\\t\\tpadding-bottom: var(--default-grid-baseline, 4px);\\n\\t}\\n}\\n\\n.app-navigation-entry__settings {\\n\\theight: auto !important;\\n\\toverflow: hidden !important;\\n\\tpadding-top: 0 !important;\\n\\t// Prevent shrinking or growing\\n\\tflex: 0 0 auto;\\n}\\n\\n.files-navigation {\\n\\t:deep(.app-navigation__content > ul.app-navigation__list) {\\n\\t\\twill-change: scroll-position;\\n\\t}\\n}\\n\"],\"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-sidebar--has-preview[data-v-f91af60e] .app-sidebar-header__figure{background-size:cover}.app-sidebar--has-preview[data-v-f91af60e][data-mimetype=\"text/plain\"] .app-sidebar-header__figure,.app-sidebar--has-preview[data-v-f91af60e][data-mimetype=\"text/markdown\"] .app-sidebar-header__figure{background-size:contain}.app-sidebar--full[data-v-f91af60e]{position:fixed !important;z-index:2025 !important;top:0 !important;height:100% !important}.app-sidebar[data-v-f91af60e] .app-sidebar-header__description{margin:0 16px 4px 16px !important}.app-sidebar .svg-icon[data-v-f91af60e] svg{width:20px;height:20px;fill:currentColor}.sidebar__description[data-v-f91af60e]{display:flex;flex-direction:column;width:100%;gap:8px 0}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/views/FilesSidebar.vue\"],\"names\":[],\"mappings\":\"AAGE,uEACC,qBAAA,CAKA,yMACC,uBAAA,CAKH,oCACC,yBAAA,CACA,uBAAA,CACA,gBAAA,CACA,sBAAA,CAIA,+DACC,iCAAA,CAKD,4CACC,UAAA,CACA,WAAA,CACA,iBAAA,CAKH,uCACE,YAAA,CACA,qBAAA,CACA,UAAA,CACA,SAAA\",\"sourcesContent\":[\"\\n.app-sidebar {\\n\\t&--has-preview:deep {\\n\\t\\t.app-sidebar-header__figure {\\n\\t\\t\\tbackground-size: cover;\\n\\t\\t}\\n\\n\\t\\t&[data-mimetype=\\\"text/plain\\\"],\\n\\t\\t&[data-mimetype=\\\"text/markdown\\\"] {\\n\\t\\t\\t.app-sidebar-header__figure {\\n\\t\\t\\t\\tbackground-size: contain;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&--full {\\n\\t\\tposition: fixed !important;\\n\\t\\tz-index: 2025 !important;\\n\\t\\ttop: 0 !important;\\n\\t\\theight: 100% !important;\\n\\t}\\n\\n\\t:deep {\\n\\t\\t.app-sidebar-header__description {\\n\\t\\t\\tmargin: 0 16px 4px 16px !important;\\n\\t\\t}\\n\\t}\\n\\n\\t.svg-icon {\\n\\t\\t:deep(svg) {\\n\\t\\t\\twidth: 20px;\\n\\t\\t\\theight: 20px;\\n\\t\\t\\tfill: currentColor;\\n\\t\\t}\\n\\t}\\n}\\n\\n.sidebar__description {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\twidth: 100%;\\n\\t\\tgap: 8px 0;\\n\\t}\\n\"],\"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, `\n._fileListFilterChips_yBylg {\n\tdisplay: flex;\n\tgap: var(--default-grid-baseline);\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FileListFilter/FileListFilterChips.vue\"],\"names\":[],\"mappings\":\";AAwCA;CACA,aAAA;CACA,iCAAA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"fileListFilterChips\": `_fileListFilterChips_yBylg`\n};\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, `\n._fileListFilters_dNswU {\n\tdisplay: flex;\n\tflex-direction: row;\n\tgap: var(--default-grid-baseline);\n\tmargin-inline-end: var(--default-grid-baseline);\n\theight: 100%;\n\twidth: 100%;\n}\n._fileListFilters__popoverFilterView_fJWbD {\n\tbox-sizing: border-box;\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: calc(2 * var(--default-grid-baseline));\n\tpadding: calc(var(--default-grid-baseline) / 2);\n\tmin-width: calc(7 * var(--default-clickable-area));\n}\n._fileListFilters__popoverContainer_A30Cl {\n\tbox-sizing: border-box;\n\tpadding: calc(var(--default-grid-baseline) / 2);\n\tmin-width: calc(7 * var(--default-clickable-area));\n}\n._fileListFilters__filter_bCU2H {\n\tdisplay: flex;\n\talign-items: start;\n\tjustify-content: start;\n\tgap: calc(var(--default-grid-baseline, 4px) * 2);\n> * {\n\t\tflex: 0 1 fit-content;\n}\n}\n._fileListFilters__active_ECsmY {\n\tdisplay: flex;\n\tflex-direction: row;\n\tgap: calc(var(--default-grid-baseline, 4px) * 2);\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FileListFilter/FileListFilters.vue\"],\"names\":[],\"mappings\":\";AAkGA;CACA,aAAA;CACA,mBAAA;CACA,iCAAA;CACA,+CAAA;CACA,YAAA;CACA,WAAA;AACA;AAEA;CACA,sBAAA;CACA,aAAA;CACA,sBAAA;CACA,2CAAA;CACA,+CAAA;CACA,kDAAA;AACA;AAEA;CACA,sBAAA;CACA,+CAAA;CACA,kDAAA;AACA;AAEA;CACA,aAAA;CACA,kBAAA;CACA,sBAAA;CACA,gDAAA;AAEA;EACA,qBAAA;AACA;AACA;AAEA;CACA,aAAA;CACA,mBAAA;CACA,gDAAA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"fileListFilters\": `_fileListFilters_dNswU`,\n\t\"fileListFilters__popoverFilterView\": `_fileListFilters__popoverFilterView_fJWbD`,\n\t\"fileListFilters__popoverContainer\": `_fileListFilters__popoverContainer_A30Cl`,\n\t\"fileListFilters__filter\": `_fileListFilters__filter_bCU2H`,\n\t\"fileListFilters__active\": `_fileListFilters__active_ECsmY`\n};\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, `\n._filesNavigationList_MBZVA {\n\theight: 100%; /* Fill all available space for sticky views */\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FilesNavigationList.vue\"],\"names\":[],\"mappings\":\";AAsDA;CACA,YAAA,EAAA,8CAAA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"filesNavigationList\": `_filesNavigationList_MBZVA`\n};\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, `\n._filesSidebarSubname_yXZVi {\n\tdisplay: flex;\n\talign-items: center;\n\tflex-wrap: wrap;\n\tgap: 0 8px;\n}\n._filesSidebarSubname__separator__OQUr {\n\tdisplay: inline-block;\n\tfont-weight: bold !important;\n}\n._filesSidebarSubname__userBubble_XTdWm {\n\tdisplay: inline-flex !important;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FilesSidebar/FilesSidebarSubname.vue\"],\"names\":[],\"mappings\":\";AAiDA;CACA,aAAA;CACA,mBAAA;CACA,eAAA;CACA,UAAA;AACA;AAEA;CACA,qBAAA;CACA,4BAAA;AACA;AAEA;CACA,+BAAA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"filesSidebarSubname\": `_filesSidebarSubname_yXZVi`,\n\t\"filesSidebarSubname__separator\": `_filesSidebarSubname__separator__OQUr`,\n\t\"filesSidebarSubname__userBubble\": `_filesSidebarSubname__userBubble_XTdWm`\n};\nexport default ___CSS_LOADER_EXPORT___;\n","import { getCurrentUser, onRequestTokenUpdate, getRequestToken } from \"@nextcloud/auth\";\nimport { generateRemoteUrl } from \"@nextcloud/router\";\nimport { isPublicShare, getSharingToken } from \"@nextcloud/sharing/public\";\nimport { createClient, getPatcher } from \"webdav\";\nimport { P as Permission, s as scopedGlobals, l as logger, c as NodeStatus, a as File, b as Folder } from \"./chunks/folder-29HuacU_.mjs\";\nimport \"@nextcloud/paths\";\n/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nfunction parsePermissions(permString = \"\") {\n let permissions = Permission.NONE;\n if (!permString) {\n return permissions;\n }\n if (permString.includes(\"G\")) {\n permissions |= Permission.READ;\n }\n if (permString.includes(\"W\")) {\n permissions |= Permission.WRITE;\n }\n if (permString.includes(\"CK\")) {\n permissions |= Permission.CREATE;\n }\n if (permString.includes(\"NV\")) {\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}\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};\nfunction registerDavProperty(prop, namespace = { nc: \"http://nextcloud.org/ns\" }) {\n scopedGlobals.davNamespaces ??= { ...defaultDavNamespaces };\n scopedGlobals.davProperties ??= [...defaultDavProperties];\n const namespaces = { ...scopedGlobals.davNamespaces, ...namespace };\n if (scopedGlobals.davProperties.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 scopedGlobals.davProperties.push(prop);\n scopedGlobals.davNamespaces = namespaces;\n return true;\n}\nfunction getDavProperties() {\n scopedGlobals.davProperties ??= [...defaultDavProperties];\n return scopedGlobals.davProperties.map((prop) => `<${prop} />`).join(\" \");\n}\nfunction getDavNameSpaces() {\n scopedGlobals.davNamespaces ??= { ...defaultDavNamespaces };\n return Object.keys(scopedGlobals.davNamespaces).map((ns) => `xmlns:${ns}=\"${scopedGlobals.davNamespaces?.[ns]}\"`).join(\" \");\n}\nfunction getDefaultPropfind() {\n return `\n\t\t\n\t\t\t\n\t\t\t\t${getDavProperties()}\n\t\t\t\n\t\t`;\n}\nfunction getFavoritesReport() {\n return `\n\t\t\n\t\t\t\n\t\t\t\t${getDavProperties()}\n\t\t\t\n\t\t\t\n\t\t\t\t1\n\t\t\t\n\t\t`;\n}\nfunction getRecentSearch(lastModified) {\n return `\n\n\t\n\t\t\n\t\t\t\n\t\t\t\t${getDavProperties()}\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t/files/${getCurrentUser()?.uid}/\n\t\t\t\tinfinity\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\thttpd/unix-directory\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t0\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t${lastModified}\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t100\n\t\t\t0\n\t\t\n\t\n`;\n}\nfunction getRootPath() {\n if (isPublicShare()) {\n return `/files/${getSharingToken()}`;\n }\n return `/files/${getCurrentUser()?.uid}`;\n}\nconst defaultRootPath = getRootPath();\nfunction getRemoteURL() {\n const url = generateRemoteUrl(\"dav\");\n if (isPublicShare()) {\n return url.replace(\"remote.php\", \"public.php\");\n }\n return url;\n}\nconst defaultRemoteURL = getRemoteURL();\nfunction getClient(remoteURL = defaultRemoteURL, 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}\nasync function getFavoriteNodes(options = {}) {\n const client = options.client ?? getClient();\n const path = options.path ?? \"/\";\n const davRoot = options.davRoot ?? defaultRootPath;\n const contentsResponse = await client.getDirectoryContents(`${davRoot}${path}`, {\n signal: options.signal,\n details: true,\n data: getFavoritesReport(),\n headers: {\n // see getClient for patched webdav client\n method: \"REPORT\"\n },\n includeSelf: true\n });\n return contentsResponse.data.filter((node) => node.filename !== path).map((result) => resultToNode(result, davRoot));\n}\nfunction resultToNode(node, filesRoot = defaultRootPath, remoteURL = defaultRemoteURL) {\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 = parsePermissions(props?.permissions);\n const owner = String(props?.[\"owner-id\"] || userId);\n const id = props.fileid || 0;\n const mtime = new Date(Date.parse(node.lastmod));\n const crtime = new Date(Date.parse(props.creationdate));\n const nodeData = {\n id,\n source: `${remoteURL}${node.filename}`,\n mtime: !isNaN(mtime.getTime()) && mtime.getTime() !== 0 ? mtime : void 0,\n crtime: !isNaN(crtime.getTime()) && crtime.getTime() !== 0 ? crtime : void 0,\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}\nexport {\n defaultDavNamespaces,\n defaultDavProperties,\n defaultRemoteURL,\n defaultRootPath,\n getClient,\n getDavNameSpaces,\n getDavProperties,\n getDefaultPropfind,\n getFavoriteNodes,\n getFavoritesReport,\n getRecentSearch,\n getRemoteURL,\n getRootPath,\n parsePermissions,\n registerDavProperty,\n resultToNode\n};\n//# sourceMappingURL=dav.mjs.map\n","import '../assets/index-BGmULkk-.css';\nimport { getSharingToken, isPublicShare } from \"@nextcloud/sharing/public\";\nimport { getCurrentUser } from \"@nextcloud/auth\";\nimport { formatFileSize, Folder, davRemoteURL, davRootPath, Permission, FileType, davGetClient, validateFilename, InvalidFilenameError, getUniqueName, getNewFileMenuEntries, NewMenuEntryCategory } from \"@nextcloud/files\";\nimport { basename, encodePath } from \"@nextcloud/paths\";\nimport { normalize } from \"path\";\nimport { getCapabilities } from \"@nextcloud/capabilities\";\nimport axios, { isCancel } from \"@nextcloud/axios\";\nimport PCancelable from \"p-cancelable\";\nimport PQueue from \"p-queue\";\nimport { getGettextBuilder } from \"@nextcloud/l10n/gettext\";\nimport { getBaseUrl, generateRemoteUrl } from \"@nextcloud/router\";\nimport axiosRetry, { exponentialDelay, isNetworkOrIdempotentRequestError } from \"axios-retry\";\nimport { getLoggerBuilder } from \"@nextcloud/logger\";\nimport { TypedEventTarget } from \"typescript-event-target\";\nimport Vue, { defineAsyncComponent, defineComponent } from \"vue\";\nimport { showInfo, showWarning } from \"@nextcloud/dialogs\";\nimport { spawnDialog } from \"@nextcloud/vue/functions/dialog\";\nimport { useHotKey } from \"@nextcloud/vue/dist/Composables/useHotKey.js\";\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\";\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 , 2025\", \"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\\nabu.s3ud, 2024\\nAli , 2025\\n\" }, \"msgstr\": [\"Last-Translator: Ali , 2025\\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} ملف متعارض في {dirname}\", \"{count} ملف متعارض في {dirname}\", \"{count} ملفان متعارضان في {dirname}\", \"{count} ملف متعارض في {dirname}\", \"{count} ملفات متعارضة في {dirname}\", \"{count} ملفات متعارضة في {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"مازال {seconds} ثوانٍ\", \"مازال {seconds} ثوانٍ\", \"مازال {seconds} ثوانٍ\", \"مازال {seconds} ثوانٍ\", \"مازال {seconds} ثوانٍ\", \"مازال {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\": [\"بضع ثوانٍ متبقية\"] }, \"assembling\": { \"msgid\": \"assembling\", \"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\": [\"الإصدار الحالي\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"تعذّرت إعادة تجميع الكتل معاً \"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"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 , 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 , 2023\\n\" }, \"msgstr\": [\"Last-Translator: enolp , 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 , 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 , 2023\\n\" }, \"msgstr\": [\"Last-Translator: Rashad Aliyev , 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\": \"Leandro Navarro , 2025\", \"Language-Team\": \"Catalan (https://app.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:\\nJoas Schilling, 2024\\nv v , 2025\\nLeandro Navarro , 2025\\n\" }, \"msgstr\": [\"Last-Translator: Leandro Navarro , 2025\\nLanguage-Team: Catalan (https://app.transifex.com/nextcloud/teams/64236/ca/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ca\\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}\" és un nom de fitxer o carpeta prohibit.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" és un tipus de fitxer prohibit.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" no és permès dins del nom de fitxer o carpeta.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count}fitxer en conflicte\", \"{count} fitxer en conflicte\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} conflicte de fitxers a {dirname}\", \"{count} conflictes de fitxers a {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} segon restant\", \"{seconds} segons restants\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"Queden {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"queden uns segons\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"assemblatge\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Cancel·lar\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Cancel·lar l'operació sencera\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Cancel·la les pujades\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Continuar\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Crea nou\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"s’està estimant el temps restant\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Existing version\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"No s'han pogut acoblar els trossos\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"No s'ha pogut pujar el fitxer\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": [`Els noms de fitxer no han d'acabar en \"{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 seleccioneu les dues versions, el fitxer entrant tindrà un número afegit al seu nom.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Nom de fitxer no vàlid\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Data de la darrera modificació desconeguda\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Nou\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Nou nom de fitxer\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Nova versió\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"en pausa\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Imatge de vista prèvia\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Canviar el nom\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Seleccioneu totes les caselles de selecció\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Seleccioneu tots els fitxers existents\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Seleccioneu tots el fitxers nous\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Saltar\"] }, \"Skip {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Omet {count} fitxer\", \"Omet {count} fitxers\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"Omet aquest fitxer\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Mida desconeguda\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Pujar\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Puja els fitxers\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Pujar les carpetes\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Pujada des del dispositiu\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"La pujada s'ha cancel·lat\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"S'ha omès la pujada\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": [`S'ha omès la pujada de \"{folder}\"`] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Procés de pujada\"] }, \"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\": [\"Quan es selecciona una carpeta d'entrada, també es sobreescriuran els fitxers en conflicte dins d'ella.\"] }, \"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\": [\"Quan es selecciona una carpeta d'entrada, el contingut s'escriu a la carpeta existent i es realitza una resolució recursiva de conflictes.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Quins fitxers vols 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\": [\"Podeu canviar el nom del fitxer, saltar aquest fitxer o cancel·lar tota l'operació.\"] }, \"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\": [\"Heu de seleccionar almenys una versió de cada fitxer per continuar.\"] } } } } }, { \"locale\": \"cs\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Pavel Borecki , 2025\", \"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 , 2024\\nMartin Hankovec, 2024\\nAppukonrad , 2024\\nPavel Borecki , 2025\\n\" }, \"msgstr\": [\"Last-Translator: Pavel Borecki , 2025\\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\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"zbývá {seconds}\", \"zbývají {seconds}\", \"zbývá {seconds}\", \"zbývají {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\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"sestavování\"] }, \"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\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Shluky se nepodařilo dát dohromady\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Soubor se nepodařilo nahrát\"] }, '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 {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Přeskočit {count} soubor\", \"Přeskočit {count} soubory\", \"Přeskočit {count} souborů\", \"Přeskočit {count} soubory\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"Přeskočit tento soubor\"] }, \"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\": \"Finn Sommer , 2025\", \"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\\nRasmus Rosendahl-Kaa, 2024\\nMartin Bonde , 2025\\nFinn Sommer , 2025\\n\" }, \"msgstr\": [\"Last-Translator: Finn Sommer , 2025\\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\"] }, '\"{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 tilladt i et fil- eller mappenavn.'] }, \"{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\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"{sekunder} sekunder tilbage\", \"{sekunder} sekunder tilbage\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} tilbage\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"et par sekunder tilbage\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"samling\"] }, \"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\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Mislykkedes at samle stumperne sammen\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Kunne ikke uploade filen\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Filnavne 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 vælger begge versioner, vil den indkommende fil have et nummer tilføjet til sit navn.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Ugyldigt filnavn\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Sidste modifikationsdato ukendt\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Ny\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Nyt filnavn\"] }, \"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 {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Spring {count} fil over\", \"Spring {count} fil over\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"Spring denne fil over\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Ukendt størrelse\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Upload\"] }, \"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 has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Upload er blevet sprunget over\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Upload af \"{folder}\" er blevet sprunget over'] }, \"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 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 omdøbe filen, springe denne fil over eller annullere hele handlingen.\"] }, \"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\": \"Martin Wilichowski, 2025\", \"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\\nAndy Scherzinger , 2024\\nMark Ziegler , 2025\\nMario Siegmann , 2025\\nMartin Wilichowski, 2025\\n\" }, \"msgstr\": [\"Last-Translator: Martin Wilichowski, 2025\\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\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} Sekunde verbleibt\", \"{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\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"zusammenfügen\"] }, \"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\": [\"Berechne verbleibende Zeit\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Vorhandene Version\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Die Teile konnten nicht zusammengefügt werden\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Die Datei konnte nicht hochgeladen werden\"] }, '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 {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"{count} Datei überspringen\", \"{count} Dateien überspringen\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"Diese Datei ü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\": \"Martin Wilichowski, 2025\", \"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\\nMark Ziegler , 2025\\nMario Siegmann , 2025\\nMartin Wilichowski, 2025\\n\" }, \"msgstr\": [\"Last-Translator: Martin Wilichowski, 2025\\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\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} Sekunde verbleibt\", \"{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\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"zusammenfügen\"] }, \"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\": [\"Berechne verbleibende Zeit\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Vorhandene Version\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Die Teile konnten nicht zusammengefügt werden\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Die Datei konnte nicht hochgeladen werden\"] }, '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 {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"{count} Datei überspringen\", \"{count} Dateien überspringen\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"Diese Datei ü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\": \"Γιάννος, 2025\", \"Language-Team\": \"Greek (https://app.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:\\nJoas Schilling, 2024\\nEfstathios Iosifidis , 2025\\nΓιάννος, 2025\\n\" }, \"msgstr\": [\"Last-Translator: Γιάννος, 2025\\nLanguage-Team: Greek (https://app.transifex.com/nextcloud/teams/64236/el/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: el\\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}\" είναι απαγορευμένο όνομα αρχείου ή φακέλου.'] }, '\"{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} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} αρχείο σε διένεξη στον φάκελο {dirname}\", \"{count} αρχεία σε διένεξη στον φάκελο {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"Απομένει {seconds} δευτερόλεπτο\", \"Απομένουν {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\": [\"απομένουν λίγα δευτερόλεπτα\"] }, \"assembling\": { \"msgid\": \"assembling\", \"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\": [\"Υπάρχουσα έκδοση\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Αποτυχία συναρμολόγησης των κομματιών\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"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 {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Παράλειψη {count} αρχείου\", \"Παράλειψη {count} αρχείων\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"Παραλείψτε αυτό το αρχείο\"] }, \"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\": \"en_GB\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Andi Chandler , 2025\", \"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 , 2025\\n\" }, \"msgstr\": [\"Last-Translator: Andi Chandler , 2025\\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\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} seconds left\", \"{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\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"assembling\"] }, \"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\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Failed to assemble the chunks together\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Failed to upload the file\"] }, '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 {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Skip {count} file\", \"Skip {count} files\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"Skip this file\"] }, \"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, 2025\", \"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 , 2024\\nJulio C. Ortega, 2025\\n\" }, \"msgstr\": [\"Last-Translator: Julio C. Ortega, 2025\\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\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" es un nombre de archivo o carpeta no permitido.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" es un tipo de archivo no permitido.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" no está permitido dentro del nombre de un archivo o carpeta.'] }, \"{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\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"queda {seconds} segundo\", \"quedan {seconds} segundos\", \"quedan {seconds} segundos\"] }, \"{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\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"ensamblando\"] }, \"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\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Fallo al ensamblar todas las partes juntas\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Fallo al cargar el archivo\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Los nombres de archivo no deben terminar en \"{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 selecciona ambas versionas, el archivo entrante le será agregado un número a su nombre.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"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 filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Nuevo nombre de archivo\"] }, \"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 {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Omitir {count} archivo\", \"Omitir {count} archivos\", \"Omitir {count} archivos\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"Omitir este archivo\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Tamaño desconocido\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Cargar\"] }, \"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 has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"La carga fue omitida\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['La carga de \"{folder}\" ha sido omitida'] }, \"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 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\": [\"Puede o bien, renombrar el archivo, omitirlo, o, cancelar toda la 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 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 , 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 , 2024\\n\" }, \"msgstr\": [\"Last-Translator: Matías Campo Hoet , 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\": \"Priit Jõerüüt , 2025\", \"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:\\nJoas Schilling, 2024\\nPriit Jõerüüt , 2025\\n\" }, \"msgstr\": [\"Last-Translator: Priit Jõerüüt , 2025\\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\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": [\"„{segment}“ on keelatud faili- või kausta nimi.\"] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": [\"„{segment}“ on keelatud failitüüp.\"] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": [\"„{segment}“ pole faili- või kausta nimes lubatud.\"] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} fail on vastuolus\", \"{count} faili on vastuolus\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} fail on vastuolus „{dirname}“ kaustas\", \"{count} faili on vastuolus „{dirname}“ kaustas\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"jäänud {seconds} sekund\", \"jäänud {seconds} sekundit\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"aega jäänud {time} \"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"jäänud mõni sekund\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"koostamisel\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Katkesta\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Katkesta kogu tegevus\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Katkesta üleslaadimine\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Jätka\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Loo uus\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"hinnanguline järelejäänud aeg\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Olemasolev versioon\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Tükkide koostamine üheks tervikuks ei õnnestunud\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Faili üleslaadimine ei õnnestunud\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": [\"Failinime lõpus ei tohi olla „{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\": [\"Kui sa valid mõlemad versioonid, lisatakse kopeeritud faili nimele number.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Vigane failinimi\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Viimase muutmise kuupäev pole teada\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Uus\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Uus failinimi\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Uus versioon\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"pausil\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Vaata pildi eelvaadet\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Muuda nime\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Vali kõik märkeruudud\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Vali kõik olemasolevad failid\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Vali kõik uued failid\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Jäta vahele\"] }, \"Skip {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Jäta vahele {count} fail\", \"Jäta vahele {count} faili\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"Jäta vahele see fail\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Tundmatu suurus\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Laadi üles\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Laadi failid üles\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Laadi kaustad üles\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Laadi üles seadmest\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Üleslaadimine on katkestatud\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Üleslaadimine on vahele jäetud\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": [\"„{folder}“ kausta üleslaadimine on vahele jäetud\"] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Üleslaadimise edenemine\"] }, \"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\": [\"Kui saabuvate failide kaust on valitud, siis seal asuvad vastuoluliste nimedega failid kirjutatakse samuti üle.\"] }, \"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\": [\"Kui saabuvate failide kaust on valitud, siis sisu kirjutatakse olemasolevasse kausta ja käivitatakse rekursiivne vastuolude haldus.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Milliseid faile soovid säilitada?\"] }, \"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\": [\"Sa võid kas faili nime muuta, ta vahele jätta või kogu tegevuse katkestada.\"] }, \"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\": [\"Jätkamiseks pead valima vähemalt ühe versiooni igast failist.\"] } } } } }, { \"locale\": \"eu\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Unai Tolosa Pontesta , 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 , 2022\\n\" }, \"msgstr\": [\"Last-Translator: Unai Tolosa Pontesta , 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\": \"Alireza Rashidi, 2025\", \"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:\\nJoas Schilling, 2024\\nreza reza , 2024\\nAlireza Rashidi, 2025\\n\" }, \"msgstr\": [\"Last-Translator: Alireza Rashidi, 2025\\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\"] }, '\"{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} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} پرونده با {dirname} ناسازگاری داشت\", \"{count} پرونده با {dirname} ناسازگاری داشت\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} ثانیه مانده\", \"{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\": [\"چند ثانیه مانده\"] }, \"assembling\": { \"msgid\": \"assembling\", \"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\": [\"نگارش موجود\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"نتوانست تکه‌های را به سرهم کند\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"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\": \"fi\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Jiri Grönroos , 2025\", \"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\\nthingumy, 2024\\nteemue, 2024\\nJiri Grönroos , 2025\\n\" }, \"msgstr\": [\"Last-Translator: Jiri Grönroos , 2025\\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\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} sekunti jäljellä\", \"{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ä\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"kootaan\"] }, \"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\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Palojen kokoaminen yhteen epäonnistui\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Tiedoston lähetys epäonnistui\"] }, '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\": { \"msgid\": \"Upload\", \"msgstr\": [\"Lähetä\"] }, \"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\": \"Caro Leviia, 2025\", \"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\\nJEEEEEEEEEEEEEEEEEEEEEED, 2024\\nJérôme HERBINET, 2024\\nacazenave, 2024\\nLisa Cintosh, 2025\\nLdm Public , 2025\\nCaro Leviia, 2025\\n\" }, \"msgstr\": [\"Last-Translator: Caro Leviia, 2025\\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\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} seconde restante\", \"{seconds} secondes restantes\", \"{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\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"assemblage\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Annuler\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Annuler toute l'opération\"] }, \"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\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Échec de l'assemblage des morceaux\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Échec de téléversement du fichier\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Les noms des fichiers ne doivent pas terminer 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, un numéro sera ajouté au nom du fichier entrant.\"] }, \"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 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 {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"{count} fichier ignoré\", \"{count} fichiers ignorés\", \"{count} fichiers ignorés\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"Ignorer ce fichier\"] }, \"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, 2025\", \"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, 2025\\n\" }, \"msgstr\": [\"Last-Translator: Aindriú Mac Giolla Eoin, 2025\\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\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} soicind fágtha\", \"{seconds} soicind fágtha\", \"{seconds} soicind fágtha\", \"{seconds} soicind fágtha\", \"{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\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"ag cur le chéile\"] }, \"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 \"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Theip ar na smután a chur le chéile le chéile\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Theip ar uaslódáil an chomhaid\"] }, '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 {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Léim an comhad {count}\", \"Léim thar {count} comhad\", \"Léim thar {count} comhad\", \"Léim thar {count} comhad\", \"Léim thar {count} comhad\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"Seachain an comhad seo\"] }, \"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 , 2025\", \"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 , 2025\\n\" }, \"msgstr\": [\"Last-Translator: Miguel Anxo Bouzada , 2025\\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\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"falta {seconds} segundo\", \"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\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"ensamblando\"] }, \"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\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Produciuse un fallo ao ensamblar os anacos\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Produciuse un fallo ao enviar o ficheiro\"] }, '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 {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Omitir {count} ficheiro\", \"Omitir {count} ficheiros\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"Omitir este ficheiro\"] }, \"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 , 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 , 2024\\n\" }, \"msgstr\": [\"Last-Translator: Gyuris Gellért , 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 , 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æ , 2023\\nEmpty Slot Filler, 2023\\nLinerly , 2023\\n\" }, \"msgstr\": [\"Last-Translator: Linerly , 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 , 2025\", \"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:\\nJoas Schilling, 2024\\nSveinn í Felli , 2025\\n\" }, \"msgstr\": [\"Last-Translator: Sveinn í Felli , 2025\\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\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" er bannað sem heiti á skrá eða möppu.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" er bönnuð skráartegund.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" er ekki leyfilegt innan í heiti á skrá eða möppu.'] }, \"{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\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} sekúnda eftir\", \"{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\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"set saman\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Hætta við\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Hætta við alla aðgerðina\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Hætta við innsendingar\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Halda áfram\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Búa til nýtt\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"áætla tíma sem eftir er\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Fyrirliggjandi útgáfa\"] }, \"Failed assembling the chunks together\": { \"msgid\": \"Failed assembling the chunks together\", \"msgstr\": [\"Mistókst að setja saman bútana\"] }, \"Failed uploading the file\": { \"msgid\": \"Failed uploading the file\", \"msgstr\": [\"Mistókst að senda inn skrána\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Skráaheiti mega ekki enda á \"{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\": [\"Ef þú velur báðar útgáfur, þá mun verða bætt tölustaf aftan við heiti innkomandi skrárinnar.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Ógilt skráarheiti\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Síðasta breytingadagsetning er óþekkt\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Nýtt\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Nýtt skráarheiti\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Ný útgáfa\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"í bið\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Forskoðun myndar\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Endurnefna\"] }, \"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\": { \"msgid\": \"Skip\", \"msgstr\": [\"Sleppa\"] }, \"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\": { \"msgid\": \"Upload\", \"msgstr\": [\"Senda inn\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Senda inn skrár\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Senda inn möppur\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Senda inn frá tæki\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Hætt hefur verið við innsendingu\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Innsendingu hefur verið sleppt\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Innsendingu á \"{folder}\" hefur verið sleppt'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Framvinda innsendingar\"] }, \"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\": [\"Þegar valin er mappa fyrir skrár sem berast, verður einnig skrifað yfir allar skrár í henni sem valda árekstrum.\"] }, \"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\": [\"Þegar valin er mappa fyrir skrár sem berast, verður efnið skrifað inn í fyrirliggjandi möppu og farið í að leysa úr árekstrum.\"] }, \"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 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\": [\"Þú getur annaðhvort endurnefnt skrána, sleppt þessari skrá eða hætt við alla þessa aðgerð.\"] }, \"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\": \"Roberto Resoli, 2025\", \"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:\\nJoas Schilling, 2024\\nFrancesco Sercia, 2024\\nalbanobattistella , 2024\\nLorenzo Taiocchi, 2025\\nesseti kappa, 2025\\nRoberto Resoli, 2025\\n\" }, \"msgstr\": [\"Last-Translator: Roberto Resoli, 2025\\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\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" è un nome di file o cartella proibito.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\"è un tipo di file proibito.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": [`\"{segment}\" non è consentito all'interno di un nome di file o cartella.`] }, \"{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\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} secondo rimanente \", \"{seconds} secondi rimanenti \", \"{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\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"assemblaggio\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Annulla\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Annulla l'intera operazione\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Annulla i caricamenti\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Continua\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Crea nuovo\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"calcolo il tempo rimanente\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Versione esistente\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Impossibile unire i pezzi\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Impossibile caricare il file\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['I nomi dei file non devono terminare 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 selezioni entrambe le versioni, nel nome del file copiato verrà aggiunto un numero \"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Nome file non valido\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Ultima modifica sconosciuta\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Nuovo\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Nuovo nome file\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Nuova versione\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"pausa\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Anteprima immagine\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Rinomina\"] }, \"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\": { \"msgid\": \"Skip\", \"msgstr\": [\"Salta\"] }, \"Skip {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Sata {count} file\", \"Salta {count} file\", \"Salta {count} file\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"Salta questo file\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Dimensione sconosciuta\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Caricamento\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Carica i file\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Carica cartelle\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Carica dal dispositivo\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Caricamento annullato\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Il caricamento è stato saltato\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Il caricamento di \"{folder}\" è stato saltato'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Progresso del caricamento\"] }, \"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 si seleziona una cartella in arrivo, anche tutti i file in conflitto al suo interno verranno sovrascritti.\"] }, \"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 si seleziona una cartella in arrivo, il contenuto viene scritto nella cartella esistente e viene eseguita una risoluzione ricorsiva dei conflitti.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Quali file vuoi mantenere?\"] }, \"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\": [\"È possibile rinominare il file, ignorarlo o annullare l'intera operazione.\"] }, \"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\": \"kojima.imamura, 2025\", \"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\\nTakafumi AKAMATSU, 2024\\ndevi, 2024\\n貴宝, 2025\\nkshimohata, 2025\\nkojima.imamura, 2025\\n\" }, \"msgstr\": [\"Last-Translator: kojima.imamura, 2025\\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\", \"msgid_plural\": \"{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\": [\"残り数秒\"] }, \"assembling\": { \"msgid\": \"assembling\", \"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\": [\"既存バージョン\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"チャンクの組み立てに失敗しました\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"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 {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"{count} 個のファイルをスキップする\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"このファイルをスキップする\"] }, \"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\": \"보헤민, 2025\", \"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\\nshin2012 , 2025\\n이상오, 2025\\n보헤민, 2025\\n\" }, \"msgstr\": [\"Last-Translator: 보헤민, 2025\\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\"] }, '\"{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\", \"msgid_plural\": \"{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\": [\"곧 완료\"] }, \"assembling\": { \"msgid\": \"assembling\", \"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\": [\"현재 버전\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"조각을 취합하는 데 실패\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"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 {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"{count}개 파일 건너뛰기\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"이 파일 건너뛰기\"] }, \"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\": \"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\": \"bone NI, 2025\", \"Language-Team\": \"Lao (https://app.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:\\nbone NI, 2025\\n\" }, \"msgstr\": [\"Last-Translator: bone NI, 2025\\nLanguage-Team: Lao (https://app.transifex.com/nextcloud/teams/64236/lo/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: lo\\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\": [\"ໄຟລ໌ຊ້ຳກັນ {count} ລາຍການ ໃນ {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{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\": [\"ເຫຼືອເວລາອີກບໍ່ດົນ\"] }, \"assembling\": { \"msgid\": \"assembling\", \"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\": [\"ສະບັບທີ່ມີຢູ່ແລ້ວ\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"ການຮວບຮວມສ່ວນຕ່າງໆເຂົ້າກັນບໍ່ສຳເລັດ\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"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 {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"ຂ້າມ {count} ໄຟລ໌\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"ຂ້າມໄຟລ໌ນີ້\"] }, \"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\": \"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\": \"Edgars Andersons, 2025\", \"Language-Team\": \"Latvian (https://app.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:\\nPapuass , 2024\\nArmīns Jeltajevs , 2024\\nEdgars Andersons, 2025\\n\" }, \"msgstr\": [\"Last-Translator: Edgars Andersons, 2025\\nLanguage-Team: Latvian (https://app.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\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" ir aizliegts datnes vai mapes nosaukums.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" ir aizliegts datnes veids.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" ir nav ļauts datnes vai mapes nosaukumā.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} nesaderīgu datņu\", \"{count} nesaderīga datne\", \"{count} nesaderīgas datnes\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} nesaderīgu datņu {dirname}\", \"{count} nesaderīga datne {dirname}\", \"{count} nesaderīgas datnes {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"Atlikušas {seconds} sekundes\", \"Atlikusi {seconds} sekunde\", \"Atlikušas {seconds} sekundes\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"atlicis {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"atlikušas dažas sekundes\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"sakopo\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Atcelt\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Atcelt visu darbību\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Atcelt augšupielādes\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Turpināt\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Izveidot jaunu\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"paredzamais atlikušais laiks\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Esošā versija\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Neizdevās apvienot gabalus\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Neizdevās augšupielādēt datni\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Datnes nosaukumi nedrīkst beigties ar \"{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\": [\"Ja atlasa abas versijas, ienākošās datnes nosaukumam tiks pievienots skaitlis.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Nederīgs datnes nosaukums\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Pēdējais izmainīšanas datums nav zināms\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Jauns\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Jauns datnes nosaukums\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Jauna versija\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"apturēta\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Priekšskatīt attēlu\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Pārdēvēt\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Atlasīt visas izvēles rūtiņas\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Atlasīt visas esošās datnes\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Atlasīt visas jaunās datnes\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Izlaist\"] }, \"Skip {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Izlaist {count} datņu\", \"Izlaist {count} datni\", \"Izlaist {count} datnes\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"Izlaist šo datni\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Nezināms izmērs\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Augšupielādēt\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Augšupielādēt datnes\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Augšupielādēt mapes\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Augšupielādēt no ierīces\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Augšupielāde tika atcelta\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Augšupielāde tika izlaista\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['\"{folder}\" augšupielāde tika izlaista'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Augšupielādes virzība\"] }, \"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\": [\"Kad ir atlasīta ienākošā mape, tiks pārrakstītas arī jebkuras tajā esošās nesaderīgās datnes.\"] }, \"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\": [\"Kad ir atlasīta ienākošā mape, saturs tiks rakstīts esošajā mapē, un tiks veikta rekursīva nesaderību novēršana.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Kuras datnes paturēt?\"] }, \"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\": [\"Datni var vai nu pārdēvēt, vai izlaist vai atcelt visu darbību.\"] }, \"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\": [\"Ir nepieciešams atlasīt vismaz vienu katras datnes versiju, lai turpinātu.\"] } } } } }, { \"locale\": \"mk\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Сашко Тодоров , 2025\", \"Language-Team\": \"Macedonian (https://app.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:\\nJoas Schilling, 2024\\nСашко Тодоров , 2025\\n\" }, \"msgstr\": [\"Last-Translator: Сашко Тодоров , 2025\\nLanguage-Team: Macedonian (https://app.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\"] }, '\"{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} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} конфликт со датотека во {dirname}\", \"{count} конфликти на датотеки во {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"уште {seconds} секунда\", \"уште {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\": [\"уште неколку секунди\"] }, \"assembling\": { \"msgid\": \"assembling\", \"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\": [\"Постоечка верзија\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Неуспешно составување на парчињата заедно\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"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 {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Прескокни {count} датотека\", \"Прескокни {count} датотеки\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"Прескокни ја оваа датотека\"] }, \"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\": \"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\": \"DT Navy, 2024\", \"Language-Team\": \"Malay (Malaysia) (https://app.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:\\nDT Navy, 2024\\n\" }, \"msgstr\": [\"Last-Translator: DT Navy, 2024\\nLanguage-Team: Malay (Malaysia) (https://app.transifex.com/nextcloud/teams/64236/ms_MY/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ms_MY\\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}\" adalah fail dan nama folder yang dilarang'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" adalah jenis fail yang dilarang'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" adalah tidak dibenarkan dalam nama fail atau folder'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} files bertindih\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} fail bertindih dalam {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} saat tinggal\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} tinggal\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"beberapa saat lagi\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"batal\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Batal keseluruhan operasi\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"batal muat naik\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"teruskan\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Buat baharu\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"jangkaan masa tinggal\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"versi sedia ada\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Nama fail tidak boleh berakhir dengan \"{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\": [\"Jika dua versi dipilih, fail yang masuk akan ditambah bilangan pada namanya.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Nama fail tidak sah\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Tarikh terakhir diubah suai tidak diketahui\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Baru\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Nama fail baharu\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Versi baharu\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"Jeda\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Pratonton gambar\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Menamakan semula\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Pilih semua kotak pilihan\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Pilih semua fail yang wujud\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"pilih semua fail baharu\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Langkau\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Langkau fail {count}\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Saiz tidak diketahui\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Muat naik\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Muat naik fail\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Muat naik folder\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Muat naik dari peranti\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Muat naik telah dibatalkan\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Muat naik telah dilangkau\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Muat naik \"{folder}\" telah dilangkau'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Kemajuan muat naik\"] }, \"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\": [\"Apabila folder masuk dipilih, sebarang fail bertindih akan ditulis semula\"] }, \"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\": [\"Apabila folder masuk dipilih, kandungan ditulis ke dalam folder sedia ada dan penyelesaian konflik rekursif dilakukan.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Fail yang mana ingin disimpan?\"] }, \"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\": [\"And boleh menamakan semula fail, langkau fail tersebut atau membatalkan keseluruhan operasi\"] }, \"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 perlu memilih sekurangnya satu versi setiap fail untuk teruskan\"] } } } } }, { \"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\": \"Stephan Paternotte , 2025\", \"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:\\nJoas Schilling, 2024\\nJoris deLeeuw, 2025\\nStephan Paternotte , 2025\\n\" }, \"msgstr\": [\"Last-Translator: Stephan Paternotte , 2025\\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\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" is een verboden bestands- of mapnaam.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" is een verboden bestandstype.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" is niet toegestaan in een bestand of mapnaam.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} bestandsconflict\", \"{count} bestanden conflicteren\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} bestandsconflict in {dirname}\", \"{count} bestandenconflicten in {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} seconde resterend\", \"{seconds} seconden resterend\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} resterend\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"Nog een paar seconden over\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"samenstellen\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Annuleren\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"De hele bewerking annuleren\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Uploaden annuleren\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Doorgaan\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Nieuw aanmaken\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"resterende tijd schatten\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Bestaande versie\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Kon de stukken niet samenvoegen\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Het uploaden van het bestand is mislukt\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Bestandsnamen mogen niet eindigen met \"{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\": [\"Als je beide versies selecteert, krijgt het binnenkomende bestand een nummer toegevoegd aan de naam.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Ongeldige bestandsnaam\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Laatst gewijzigde datum onbekend\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Nieuw\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Nieuwe bestandsnaam\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Nieuwe versie\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"gepauzeerd\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Voorbeeldweergave\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Hernoemen\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Alle opties selecteren\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Alle bestanden selecteren\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Alle nieuwe bestanden selecteren\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Overslaan\"] }, \"Skip {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"{count} bestand overslaan\", \"{count} bestanden overslaan\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"Dit bestand overslaan\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Onbekende grootte\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Uploaden\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Upload bestanden\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Mappen uploaden\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Uploaden vanaf apparaat\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Upload is geanulleerd\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Upload is overgeslagen\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Upload van \"{folder}\" is overgeslagen'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Uploadvoortgang\"] }, \"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\": [\"Wanneer een inkomende map is geselecteerd, worden alle conflicterende bestanden daarin ook overschreven.\"] }, \"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\": [\"Wanneer een inkomende map is geselecteerd, wordt de inhoud in de bestaande map geschreven en wordt er een recursieve conflictoplossing uitgevoerd.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Welke bestanden wil je behouden?\"] }, \"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\": [\"Je kunt het bestand ofwel hernoemen, dit bestand overslaan of de hele bewerking annuleren.\"] }, \"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\": [\"Je moet minstens één versie van elk bestand selecteren om door te gaan.\"] } } } } }, { \"locale\": \"nn_NO\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Norwegian Nynorsk (Norway) (https://www.transifex.com/nextcloud/teams/64236/nn_NO/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"nn_NO\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Norwegian Nynorsk (Norway) (https://www.transifex.com/nextcloud/teams/64236/nn_NO/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: nn_NO\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"oc\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Occitan (post 1500) (https://www.transifex.com/nextcloud/teams/64236/oc/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"oc\", \"Plural-Forms\": \"nplurals=2; plural=(n > 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Occitan (post 1500) (https://www.transifex.com/nextcloud/teams/64236/oc/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: oc\\nPlural-Forms: nplurals=2; plural=(n > 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"pl\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Valdnet, 2025\", \"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 Strebski , 2024\\nValdnet, 2025\\n\" }, \"msgstr\": [\"Last-Translator: Valdnet, 2025\\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\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" to zabroniona nazwa pliku lub katalogu.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" jest zabronionym typem pliku.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['Znak \"{segment}\" nie jest dozwolony w nazwie pliku lub katalogu.'] }, \"{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\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Utwórz nowe\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"Szacowanie pozostałego czasu\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Istniejąca wersja\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Nazwy plików nie mogą kończyć się 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\": [\"Jeśli wybierzesz obie wersje, do nazwy pliku przychodzącego zostanie dodany numer.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Nieprawidłowa nazwa pliku\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Nieznana data ostatniej modyfikacji\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Nowy\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Nowa nazwa pliku\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Nowa wersja\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"Wstrzymane\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Podgląd obrazu\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Zmiana nazwy\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Zaznacz wszystkie pola wyboru\"] }, \"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\": { \"msgid\": \"Skip\", \"msgstr\": [\"Pomiń\"] }, \"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\": { \"msgid\": \"Upload\", \"msgstr\": [\"Wyślij\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Wyślij pliki\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Wyślij katalogi\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Wyślij z urządzenia\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Wysyłanie zostało anulowane\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Wysyłanie zostało pominięte\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Wysyłanie \"{folder}\" zostało pominięte'] }, \"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 katalogu 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 katalogu przychodzącego zawartość jest zapisywana w istniejącym katalogu 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 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\": [\"Możesz zmienić nazwę pliku, pominąć ten plik lub anulować całą operację.\"] }, \"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\": \"F Bausch, 2025\", \"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 , 2024\\nRodrigo Sottomaior Macedo , 2024\\nF Bausch, 2025\\n\" }, \"msgstr\": [\"Last-Translator: F Bausch, 2025\\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\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} segundo restante\", \"{seconds} segundos restantes\", \"{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\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"montando\"] }, \"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\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Falha ao montar os pedaços juntos\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Falha ao fazer o upload do arquivo\"] }, '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\": [\"Selecionar todas as caixas de seleção\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Selecionar todos os arquivos existentes\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Selecionar todos os novos arquivos\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Pular\"] }, \"Skip {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Pular {count} arquivo\", \"Pular {count} de arquivos\", \"Pular {count} arquivos\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"Pular este arquivo\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Tamanho desconhecido\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Fazer upload\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Fazer upload de arquivos\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Fazer upload de pastas\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Fazer upload 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 pulado'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Progresso de upload\"] }, \"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 recebida é selecionada, todos os arquivos conflitantes 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 recebida é 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\": \"artur25 , 2025\", \"Language-Team\": \"Portuguese (Portugal) (https://app.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:\\nJoas Schilling, 2024\\nguilherme ferreira, 2025\\nartur25 , 2025\\n\" }, \"msgstr\": [\"Last-Translator: artur25 , 2025\\nLanguage-Team: Portuguese (Portugal) (https://app.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\"] }, '\"{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 ficheiro 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 num nome de ficheiro ou pasta.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"Conflito em {count} ficheiro\", \"Conflito em {count} ficheiros\", \"Conflito em {count} ficheiros\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} conflito de ficheiro em {dirname}\", \"{count} conflitos de ficheiro em {dirname}\", \"{count} conflitos de ficheiro em {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"Falta {seconds} segundo\", \"Faltam {seconds} segundos\", \"Faltam {seconds} segundos\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"faltam {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"faltam uns segundos\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"montagem\"] }, \"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 envios\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Continuar\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Criar novo\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"tempo em falta estimado\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Versão existente\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Falha ao juntar os fragmentos\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Falha ao carregar o ficheiro\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Os nomes de ficheiro não podem terminar em \"{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 selecionar ambas as versões, será adicionado um número ao nome do ficheiro recebido.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Nome de ficheiro 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 ficheiro\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Nova versão\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"pausado\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Pré-visualizar imagem\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Renomear\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Selecionar todas as caixas de verificação\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Selecionar todos os ficheiros existentes\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Selecionar todos os ficheiros novos\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Ignorar\"] }, \"Skip {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Ignorar {count} ficheiro\", \"Ignorar {count} ficheiros\", \"Ignorar {count} ficheiros\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"Ignorar este ficheiro\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Tamanho desconhecido\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Carregar\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Enviar ficheiros\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Carregar pastas\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Carregar a partir do dispositivo\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"O carregamento foi cancelado\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"O carregamento foi ignorado\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['O carregamento da pasta \"{folder}\" foi ignorado'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Progresso do carregamento\"] }, \"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\": [\"Ao selecionar uma pasta recebida, quaisquer ficheiros em conflito no seu interior 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\": [\"Ao selecionar uma pasta recebida, o conteúdo é escrito na pasta existente e é efetuada uma resolução de conflitos recursiva.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Quais ficheiros pretende 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\": [\"Pode renomear o ficheiro, ignorá-lo 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\": [\"Precisa de selecionar pelo menos uma versão de cada ficheiro para continuar.\"] } } } } }, { \"locale\": \"ro\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Mădălin Vasiliu , 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 , 2022\\n\" }, \"msgstr\": [\"Last-Translator: Mădălin Vasiliu , 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\": \"Igor Orlov, 2025\", \"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\\nВлад, 2024\\nAlex , 2024\\nRoman Stepanov, 2024\\nMaksim Sukharev, 2024\\nАлександр, 2025\\nIgor Orlov, 2025\\n\" }, \"msgstr\": [\"Last-Translator: Igor Orlov, 2025\\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\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"осталась {seconds} секунда\", \"осталось {seconds} секунды\", \"осталось {seconds} секунд\", \"осталось {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\": [\"осталось несколько секунд\"] }, \"assembling\": { \"msgid\": \"assembling\", \"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\": [\"Текущая версия\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Не удалось собрать части вместе\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"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 {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Пропустить {count} файл\", \"Пропустить {count} файла\", \"Пропустить {count} файлов\", \"Пропустить {count} файлов\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"Пропустить этот файл\"] }, \"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\": \"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\": \"Anton Krajcik , 2025\", \"Language-Team\": \"Slovak (Slovakia) (https://app.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:\\nJozef Gaal , 2024\\nLinker Linker , 2024\\nAnton Krajcik , 2025\\n\" }, \"msgstr\": [\"Last-Translator: Anton Krajcik , 2025\\nLanguage-Team: Slovak (Slovakia) (https://app.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\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": [\"„{segment}“ je zakázaný názov súboru alebo priečinka.\"] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" je zákazaný typ súboru.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}“ je zakázané v názve súboru alebo adresára.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} súbor má konflikt\", \"{count} súbory majú konflikt\", \"{count} súborov má konflikt\", \"{count} súborov má konflikt\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} súborový konflikt v {dirname}\", \"{count} súborové konflikty v {dirname}\", \"{count} súborových konfliktov v {dirname}\", \"{count} súborových konfliktov v {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} sekunda zostáva\", \"{seconds} sekúnd zostáva\", \"{seconds} sekúnd zostáva\", \"{seconds} sekundy zostávajú\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} zostáva\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"zostáva niekoľko sekúnd\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"zhromažďovanie\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Zrušiť\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Zrušiť celú operáciu\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Zrušiť nahrávanie\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Pokračovať\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Vytvoriť nové\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"odhadovanie zostávajúceho času\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Existujúca verzia\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Nepodarilo sa dať časti dohromady.\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Nepodarilo sa nahrať súbor\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Názvy súborov nesmú končiť znakom \"{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\": [\"Ak vyberiete obe verzie, k názvu prichádzajúceho súboru sa pridá číslo.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Neplatný názov súboru\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Dátum poslednej úpravy neznámy\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Nový\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Nový názov súboru\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Nová verzia\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"pozastavené\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Náhľad obrázka\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Premenovať\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Označiť všetky výberové políčka\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Vybrať všetky existujúce súbory\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Vybrať všetky nové súbory\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Preskočiť\"] }, \"Skip {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Preskočiť {count} súbor\", \"Preskočiť {count} súborov\", \"Preskočiť {count} súborov\", \"Preskočiť {count} súbory\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"Preskočiť tento súbor\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Neznáma veľkosť\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Nahrať\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Nahrať súbory\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Nahrať priečinky\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Nahrať zo zariadenia\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Nahrávanie bolo zrušené\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Nahrávanie bolo preskočené\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Nahrávanie \"{folder}\" bolo preskočené'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Priebeh nahrávania\"] }, \"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\": [\"Keď je vybraný prichádzajúci priečinok, prepíšu sa aj všetky konfliktné súbory v ňom.\"] }, \"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 výbere prichádzajúceho priečinka sa obsah zapíše do existujúceho priečinka a vykoná sa rekurzívne riešenie konfliktov.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Ktoré súbory chcete ponechať?\"] }, \"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\": [\"Súbor môžete premenovať, preskočiť alebo zrušiť celú operáciu.\"] }, \"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\": [\"Ak chcete pokračovať, musíte vybrať aspoň jednu verziu každého súboru.\"] } } } } }, { \"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č , 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\": \"Иван Пешић, 2025\", \"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Иван Пешић, 2025\\n\" }, \"msgstr\": [\"Last-Translator: Иван Пешић, 2025\\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\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"преостало је {seconds} секунда\", \"преостало је {seconds} секунде\", \"преостало је {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\": [\"преостало је неколико секунди\"] }, \"assembling\": { \"msgid\": \"assembling\", \"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\": [\"Постојећа верзија\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Није успело састављање делова\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"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 {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Прескочи {count} фајл\", \"Прескочи {count} фајла\", \"Прескочи {count} фајлова\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"Прескочи овај фајл\"] }, \"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, 2025\", \"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, 2025\\n\" }, \"msgstr\": [\"Last-Translator: Magnus Höglund, 2025\\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\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} sekunder kvar\", \"{seconds} sekunder kvar\"] }, \"{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\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"Sammanställer\"] }, \"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\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Misslyckades med att sammanställa delarna\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Kunde inte ladda upp filen\"] }, '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 {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Hoppa över {count} fil\", \"Hoppa över {count} filer\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"Hoppa över denna fil\"] }, \"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 , 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 , 2022\\n\" }, \"msgstr\": [\"Last-Translator: Phongpanot Phairat , 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 , 2025\", \"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 , 2025\\n\" }, \"msgstr\": [\"Last-Translator: Kaya Zeren , 2025\\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\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} saniye kaldı\", \"{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ı\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"birleştiriliyor\"] }, \"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\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Parçalar birleştirilemedi\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Dosya yüklenemedi\"] }, '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 {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"{count} dosyayı atla\", \"{count} dosyayı atla\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"Bu 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, 2025\", \"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, 2025\\n\" }, \"msgstr\": [\"Last-Translator: O St, 2025\\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\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} секунда залишилася\", \"{seconds} секунди залишилося\", \"{seconds} секунд залишилося\", \"{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\": [\"залишилося кілька секунд\"] }, \"assembling\": { \"msgid\": \"assembling\", \"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\": [\"Присутня версія\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Не вдалося зібрати частинки докупи\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"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 {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Пропустити {count} файл\", \"Пропустити {count} файли\", \"Пропустити {count} файлів\", \"Пропустити {count} файлів\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"Пропустити цей файл\"] }, \"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\": \"Khurshid Ibatov , 2025\", \"Language-Team\": \"Uzbek (https://app.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:\\nKhurshid Ibatov , 2025\\n\" }, \"msgstr\": [\"Last-Translator: Khurshid Ibatov , 2025\\nLanguage-Team: Uzbek (https://app.transifex.com/nextcloud/teams/64236/uz/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: uz\\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}\" taqiqlangan fayl yoki papka nomidir.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" taqiqlangan fayl turi hisoblanadi.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" fayl yoki papka nomi ichida ruxsat berilmaydi.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} fayllar ziddiyati\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count}fayl ziddiyatlari {dirname} da\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} soniya qoldi\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} qoldi\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"bir necha soniya qoldi\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"yig'ish\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Bekor qilish\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Butun operatsiyani bekor qiling\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Yuklashni bekor qilish\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Davom eting\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Yangi yaratish\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"qolgan vaqtni hisoblash\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Mavjud versiya\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Bo'laklarni birlashtirib bo'lmadi\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Fayl yuklanmadi\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Fayl nomlari bilan tugamasligi kerak \"{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\": [\"Agar siz ikkala versiyani tanlasangiz, kiruvchi fayl nomiga qo'shilgan raqamga ega bo'ladi.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Fayl nomi noto‘g‘ri\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Oxirgi tahrirlangan sana noma'lum\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Yangi\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Yangi nom faylga\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Yangi versiya\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"tanaffus\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Rasmni oldindan ko'rish\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Qayta nomlash\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Barcha katakchalarni belgilang\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Barcha mavjud fayllarni tanlang\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Barcha yangi fayllarni tanlang\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Oʻtkazib yuborish\"] }, \"Skip {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Oʻtkazib yuborish {count} fayllarini\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"Oʻtkazib yuborish ushbu faylni\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Noma'lum o'lcham\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Yuklash\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Fayllarni yuklash\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Jildlarni yuklash\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Qurilmadan yuklash\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Yuklash bekor qilindi\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Yuklash oʻtkazib yuborildi\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": [' \"{folder}\" ni yuklash bekor qilindi'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Yuklash jarayoni\"] }, \"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\": [\"Kiruvchi jild tanlanganda, undagi har qanday ziddiyatli fayllar ham ustiga yoziladi.\"] }, \"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\": [\"Kiruvchi jild tanlanganda, kontent mavjud jildga yoziladi va nizolarni rekursiv hal qilish amalga oshiriladi.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Qaysi fayllarni saqlamoqchisiz?\"] }, \"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\": [\"Siz fayl nomini o'zgartirishingiz, ushbu faylni o'tkazib yuborishingiz yoki butun operatsiyani bekor qilishingiz mumkin.\"] }, \"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\": [\"Davom etish uchun har bir faylning kamida bitta versiyasini tanlashingiz kerak.\"] } } } } }, { \"locale\": \"vi\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"nhatCreA, 2025\", \"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:\\nJoas Schilling, 2024\\nnhatCreA, 2025\\n\" }, \"msgstr\": [\"Last-Translator: nhatCreA, 2025\\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\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" là tên thư mục bị cấm đặt.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" là loại tệp bị cấm.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" không được phép đặt trong tên tệp hoặc thư mục.'] }, \"{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 ở thư mục \"{dirname}\"'] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} giây trước\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} trước\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"vài giây trước\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"đang cấu trúc\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Huỷ\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Huỷ toàn bộ thao tác\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Huỷ tải lên\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Tiếp Tục\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Tạo mới\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"ước tính thời gian còn lại\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Phiên bản hiện tại\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Không thể assemble các chunks lại với nhau\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Tải lên tệp tin thất bại\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Tên tập tin không được kết thúc bằng \"{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\": [\"Nếu bạn chọn cả hai, tệp tin đến sẽ có thêm một chữ số vào tên.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Tên tệp tin không hợp lệ\"] }, \"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 filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Tên tệp tin 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\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Đổi tên\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Chọn tất cả\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Chọn tất cả các tập tin đang tồn tại\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Chọn tất cả các tập tin mới\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Bỏ qua\"] }, \"Skip {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Bỏ qua {count} tệp\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"Bỏ qua tệp này\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Không rõ dung lượng\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Tải Lên\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Tải lên tệp tin\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Tải lên thư mục\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Tải lên từ thiết bị\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Tải lên đã bị huỷ\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Tải lên đã bỏ qua\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Tải lên \"{folder}\" đã bị bỏ qua'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Tiến trình tải lê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\": [\"Khi bạn chọn một thư mục để đưa vào, bất kỳ tệp nào trong đó gây xung đột cũng sẽ bị ghi đè.\"] }, \"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\": [\"Khi chọn một thư mục để đưa vào, nội dung sẽ được ghi vào thư mục hiện có, và hệ thống sẽ tự động giải quyết các xung đột một cách chi tiết và cẩn thận.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Bạn muốn giữ tệp nào?\"] }, \"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\": [\"Bạn có thể đổi tên tệp, bỏ qua tệp này, hoặc hủy toàn bộ thao tác.\"] }, \"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 cho mỗi tệp để tiếp tục.\"] } } } } }, { \"locale\": \"zh_CN\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"DWXXX, 2025\", \"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\\nDWXXX, 2025\\n\" }, \"msgstr\": [\"Last-Translator: DWXXX, 2025\\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\", \"msgid_plural\": \"{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\": [\"还剩几秒\"] }, \"assembling\": { \"msgid\": \"assembling\", \"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\": [\"服务端版本\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"组合区块失败\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"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 {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"跳过 {count} 文件\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"跳过此文件\"] }, \"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, 2025\", \"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, 2025\\n\" }, \"msgstr\": [\"Last-Translator: Café Tango, 2025\\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\"] }, '\"{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\", \"msgid_plural\": \"{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\": [\"還剩幾秒\"] }, \"assembling\": { \"msgid\": \"assembling\", \"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\": [\"既有版本\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"無法組裝這些部分\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"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 {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"略過 {count} 個檔案\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"略過這個檔案\"] }, \"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_TW\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"黃柏諺 , 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黃柏諺 , 2024\\n\" }, \"msgstr\": [\"Last-Translator: 黃柏諺 , 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);\n/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nclass UploadCancelledError extends Error {\n constructor(cause) {\n super(t(\"Upload has been cancelled\"), { cause });\n }\n}\nconst logger = getLoggerBuilder().setApp(\"@nextcloud/upload\").detectUser().build();\naxiosRetry(axios, { retries: 0 });\nasync function uploadData(url, uploadData2, uploadOptions) {\n const options = {\n headers: {},\n onUploadProgress: () => {\n },\n onUploadRetry: () => {\n },\n retries: 5,\n ...uploadOptions\n };\n let data;\n if (uploadData2 instanceof Blob) {\n data = uploadData2;\n } else {\n data = await uploadData2();\n }\n if (options.destinationFile) {\n options.headers.Destination = options.destinationFile;\n }\n if (!options.headers[\"Content-Type\"]) {\n options.headers[\"Content-Type\"] = \"application/octet-stream\";\n }\n return await axios.request({\n method: \"PUT\",\n url,\n data,\n signal: options.signal,\n onUploadProgress: options.onUploadProgress,\n headers: options.headers,\n \"axios-retry\": {\n retries: options.retries,\n retryDelay: (retryCount, error) => exponentialDelay(retryCount, error, 1e3),\n retryCondition(error) {\n if (error.status === 507) {\n return false;\n }\n if (error.status === 423) {\n return true;\n }\n return isNetworkOrIdempotentRequestError(error);\n },\n onRetry: options.onUploadRetry\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, isPublic = false, customHeaders = {}) {\n let chunksWorkspace;\n if (isPublic) {\n chunksWorkspace = `${getBaseUrl()}/public.php/dav/uploads/${getSharingToken()}`;\n } else {\n chunksWorkspace = generateRemoteUrl(`dav/uploads/${getCurrentUser()?.uid}`);\n }\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 = customHeaders;\n if (destinationFile) {\n headers.Destination = destinationFile;\n }\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 logger.debug(\"Created temporary upload workspace\", { url });\n return url;\n};\n/*!\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\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 = /* @__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 || {});\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}\n/*!\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\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) {\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 }\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 /**\n * Add multiple children at once\n * @param files The files to add\n */\n async addChildren(files) {\n for (const file of files) {\n await this.addChild(file);\n }\n }\n /**\n * Add a child to the directory.\n * If it is a nested child the parents will be created if not already exist.\n * @param file The child to add\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 const child = new Directory(`${rootPath}${file.name}`);\n await child.addChildren(entries);\n this._children.set(file.name, child);\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 await this._children.get(base).addChild(file);\n } else {\n const child = new Directory(`${rootPath}${base}`);\n await child.addChild(file);\n this._children.set(base, child);\n }\n }\n }\n }\n}\n/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nvar EtaStatus = /* @__PURE__ */ ((EtaStatus2) => {\n EtaStatus2[EtaStatus2[\"Idle\"] = 0] = \"Idle\";\n EtaStatus2[EtaStatus2[\"Paused\"] = 1] = \"Paused\";\n EtaStatus2[EtaStatus2[\"Running\"] = 2] = \"Running\";\n return EtaStatus2;\n})(EtaStatus || {});\nclass Eta extends TypedEventTarget {\n /** Bytes done */\n _done = 0;\n /** Total bytes to do */\n _total = 0;\n /** Current progress (cached) as interval [0,1] */\n _progress = 0;\n /** Status of the ETA */\n _status = 0;\n /** Time of the last update */\n _startTime = -1;\n /** Total elapsed time for current ETA */\n _elapsedTime = 0;\n /** Current speed in bytes per second */\n _speed = -1;\n /** Expected duration to finish in seconds */\n _eta = Infinity;\n /**\n * Cutoff time for the low pass filter of the ETA.\n * A higher value will consider more history information for calculation,\n * and thus suppress spikes of the speed,\n * but will make the overall resposiveness slower.\n */\n _cutoffTime = 2.5;\n constructor(options = {}) {\n super();\n if (options.start) {\n this.resume();\n }\n if (options.total) {\n this.update(0, options.total);\n }\n this._cutoffTime = options.cutoffTime ?? 2.5;\n }\n /**\n * Add more transferred bytes.\n * @param done Additional bytes done.\n */\n add(done) {\n this.update(this._done + done);\n }\n /**\n * Update the transmission state.\n *\n * @param done The new value of transferred bytes.\n * @param total Optionally also update the total bytes we expect.\n */\n update(done, total) {\n if (this.status !== 2) {\n return;\n }\n if (total && total > 0) {\n this._total = total;\n }\n const deltaDone = done - this._done;\n const deltaTime = (Date.now() - this._startTime) / 1e3;\n this._startTime = Date.now();\n this._elapsedTime += deltaTime;\n this._done = done;\n this._progress = this._done / this._total;\n const historyNeeded = this._cutoffTime + deltaTime;\n if (this._elapsedTime > historyNeeded) {\n const alpha = deltaTime / (deltaTime + 1 / this._cutoffTime);\n const filtered = this._done - deltaDone + (1 - alpha) * deltaDone;\n this._speed = Math.round(filtered / this._elapsedTime);\n } else if (this._speed === -1 && this._elapsedTime > deltaTime) {\n const remaining = this._total - done;\n const eta = remaining / (done / this._elapsedTime);\n if (this._eta !== Infinity || eta <= 2 * this._cutoffTime) {\n this._eta = eta;\n }\n }\n if (this._speed > 0) {\n this._eta = Math.round((this._total - this._done) / this._speed);\n }\n this.dispatchTypedEvent(\"update\", new CustomEvent(\"update\", { cancelable: false }));\n }\n reset() {\n this._done = 0;\n this._total = 0;\n this._progress = 0;\n this._elapsedTime = 0;\n this._eta = Infinity;\n this._speed = -1;\n this._startTime = -1;\n this._status = 0;\n this.dispatchTypedEvent(\"reset\", new CustomEvent(\"reset\"));\n }\n /**\n * Pause the ETA calculation.\n */\n pause() {\n if (this._status === 2) {\n this._status = 1;\n this._elapsedTime += (Date.now() - this._startTime) / 1e3;\n this.dispatchTypedEvent(\"pause\", new CustomEvent(\"pause\"));\n }\n }\n /**\n * Resume the ETA calculation.\n */\n resume() {\n if (this._status !== 2) {\n this._startTime = Date.now();\n this._status = 2;\n this.dispatchTypedEvent(\"resume\", new CustomEvent(\"resume\"));\n }\n }\n /**\n * Status of the Eta (paused, active, idle).\n */\n get status() {\n return this._status;\n }\n /**\n * Progress (percent done)\n */\n get progress() {\n return Math.round(this._progress * 1e4) / 100;\n }\n /**\n * Estimated time in seconds.\n */\n get time() {\n return this._eta;\n }\n /**\n * Human readable version of the estimated time.\n */\n get timeReadable() {\n if (this._eta === Infinity) {\n return t(\"estimating time left\");\n } else if (this._eta < 10) {\n return t(\"a few seconds left\");\n } else if (this._eta < 60) {\n return n(\"{seconds} seconds left\", \"{seconds} seconds left\", this._eta, { seconds: this._eta });\n }\n const hours = String(Math.floor(this._eta / 3600)).padStart(2, \"0\");\n const minutes = String(Math.floor(this._eta % 3600 / 60)).padStart(2, \"0\");\n const seconds = String(this._eta % 60).padStart(2, \"0\");\n return t(\"{time} left\", { time: `${hours}:${minutes}:${seconds}` });\n }\n /**\n * Transfer speed in bytes per second.\n * Returns `-1` if not yet estimated.\n */\n get speed() {\n return this._speed;\n }\n /**\n * Get the speed in human readable format using file sizes like 10KB/s.\n * Returns the empty string if not yet estimated.\n */\n get speedReadable() {\n return this._speed > 0 ? `${formatFileSize(this._speed, true)}∕s` : \"\";\n }\n}\nvar UploaderStatus = /* @__PURE__ */ ((UploaderStatus2) => {\n UploaderStatus2[UploaderStatus2[\"IDLE\"] = 0] = \"IDLE\";\n UploaderStatus2[UploaderStatus2[\"UPLOADING\"] = 1] = \"UPLOADING\";\n UploaderStatus2[UploaderStatus2[\"PAUSED\"] = 2] = \"PAUSED\";\n return UploaderStatus2;\n})(UploaderStatus || {});\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({\n // Maximum number of concurrent uploads\n // @ts-expect-error TS2339 Object has no defined properties\n concurrency: getCapabilities().files?.chunked_upload?.max_parallel_count ?? 5\n });\n _queueSize = 0;\n _queueProgress = 0;\n _queueStatus = 0;\n _eta = new Eta();\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 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._eta.reset();\n if (this._uploadQueue.length === 0 && this._jobQueue.size === 0) {\n return;\n }\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 logger.debug(\"Uploader state reset\");\n }\n /**\n * Pause any ongoing upload(s)\n */\n pause() {\n this._eta.pause();\n this._jobQueue.pause();\n this._queueStatus = 2;\n this.updateStats();\n logger.debug(\"Uploader paused\");\n }\n /**\n * Resume any pending upload(s)\n */\n start() {\n this._eta.resume();\n this._jobQueue.start();\n this._queueStatus = 1;\n this.updateStats();\n logger.debug(\"Uploader resumed\");\n }\n /**\n * Get the estimation for the uploading time.\n */\n get eta() {\n return this._eta;\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._eta.update(uploaded, size);\n this._queueSize = size;\n this._queueProgress = uploaded;\n if (this._queueStatus !== 2) {\n const pending = this._uploadQueue.find(({ status }) => [Status.INITIALIZED, Status.UPLOADING, Status.ASSEMBLING].includes(status));\n if (this._jobQueue.size > 0 || pending) {\n this._queueStatus = 1;\n } else {\n this.eta.reset();\n this._queueStatus = 0;\n }\n }\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} 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 if (!callback) {\n callback = async (files2) => files2;\n }\n return new PCancelable(async (resolve, reject, onCancel) => {\n const rootFolder = new Directory(\"\");\n await rootFolder.addChildren(files);\n const target = `${this.root.replace(/\\/$/, \"\")}/${destination.replace(/^\\//, \"\")}`;\n const upload2 = new Upload(target, false, 0, rootFolder);\n upload2.status = Status.UPLOADING;\n this._uploadQueue.push(upload2);\n logger.debug(\"Starting new batch upload\", { target });\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.FINISHED;\n resolve(uploads);\n } catch (error) {\n if (isCancel(error) || error instanceof UploadCancelledError) {\n logger.info(\"Upload cancelled by user\", { error });\n upload2.status = Status.CANCELLED;\n reject(new UploadCancelledError(error));\n } else {\n logger.error(\"Error in batch upload\", { error });\n upload2.status = Status.FAILED;\n reject(error);\n }\n } finally {\n this._uploadQueue.splice(this._uploadQueue.indexOf(upload2), 1);\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.UPLOADING;\n try {\n await client.createDirectory(folderPath, { signal: abort.signal });\n resolve(currentUpload);\n } catch (error) {\n if (isCancel(error) || error instanceof UploadCancelledError) {\n currentUpload.status = Status.CANCELLED;\n reject(new UploadCancelledError(error));\n } else if (error && typeof error === \"object\" && \"status\" in error && error.status === 405) {\n logger.debug(\"Directory already exists, writing into it\", { directory: directory.name });\n currentUpload.status = Status.FINISHED;\n resolve(currentUpload);\n } else {\n currentUpload.status = Status.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 logger.debug(\"Upload canceled by user\", { directory });\n reject(new UploadCancelledError(\"Conflict resolution cancelled by user\"));\n return;\n } else if (selectedForUpload.length === 0 && directory.children.length > 0) {\n logger.debug(\"Skipping directory, as all files were skipped by user\", { directory });\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 logger.debug(\"Start directory upload\", { directory });\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 this.eta.resume();\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 supportsPublicChunking = getCapabilities().dav?.public_shares_chunking ?? false;\n const maxChunkSize = getMaxChunksSize(\"size\" in file ? file.size : void 0);\n const disabledChunkUpload = this._isPublic && !supportsPublicChunking || 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, this._isPublic, this._customHeaders);\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 request2 = () => {\n let chunkBytes = 0;\n return uploadData(\n `${tempUrl}/${chunk + 1}`,\n blob,\n {\n signal: upload2.signal,\n destinationFile: encodedDestinationFile,\n retries,\n onUploadProgress: ({ bytes }) => {\n const progressBytes = bytes * 0.9;\n chunkBytes += progressBytes;\n upload2.uploaded += progressBytes;\n this.updateStats();\n },\n onUploadRetry: () => {\n upload2.uploaded -= chunkBytes;\n chunkBytes = 0;\n this.updateStats();\n },\n headers: {\n ...this._customHeaders,\n ...this._mtimeHeader(file),\n \"OC-Total-Length\": file.size,\n \"Content-Type\": \"application/octet-stream\"\n }\n }\n ).then(() => {\n upload2.uploaded += bufferEnd - bufferStart - chunkBytes;\n this.updateStats();\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.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.FAILED;\n }\n throw error;\n });\n };\n chunksQueue.push(this._jobQueue.add(request2));\n }\n const request = async () => {\n try {\n await Promise.all(chunksQueue);\n upload2.status = Status.ASSEMBLING;\n this.updateStats();\n upload2.response = await axios.request({\n method: \"MOVE\",\n url: `${tempUrl}/.file`,\n headers: {\n ...this._customHeaders,\n ...this._mtimeHeader(file),\n \"OC-Total-Length\": file.size,\n Destination: encodedDestinationFile\n }\n });\n upload2.status = Status.FINISHED;\n this.updateStats();\n logger.debug(`Successfully uploaded ${file.name}`, { file, upload: upload2 });\n resolve(upload2);\n } catch (error) {\n if (isCancel(error) || error instanceof UploadCancelledError) {\n upload2.status = Status.CANCELLED;\n reject(new UploadCancelledError(error));\n } else {\n upload2.status = Status.FAILED;\n reject(t(\"Failed to assemble the chunks together\"));\n }\n axios.request({\n method: \"DELETE\",\n url: `${tempUrl}`\n });\n } finally {\n this._notifyAll(upload2);\n }\n };\n this._jobQueue.add(request);\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 {\n signal: upload2.signal,\n onUploadProgress: ({ bytes }) => {\n upload2.uploaded += bytes * 0.9;\n this.updateStats();\n },\n onUploadRetry: () => {\n upload2.uploaded = 0;\n this.updateStats();\n },\n headers: {\n ...this._customHeaders,\n ...this._mtimeHeader(file),\n \"Content-Type\": file.type\n }\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) || error instanceof UploadCancelledError) {\n upload2.status = Status.CANCELLED;\n reject(new UploadCancelledError(error));\n return;\n }\n if (error?.response) {\n upload2.response = error.response;\n }\n upload2.status = Status.FAILED;\n logger.error(`Failed uploading ${file.name}`, { error, file, upload: upload2 });\n reject(t(\"Failed to upload the file\"));\n }\n this._notifyAll(upload2);\n };\n this._jobQueue.add(request);\n this.updateStats();\n }\n this._jobQueue.onIdle().then(() => this.reset());\n return upload2;\n });\n return promise;\n }\n /**\n * Create modification time headers if valid value is available.\n * It can be invalid on Android devices if SD cards with NTFS / FAT are used,\n * as those files might use the NT epoch for time so the value will be negative.\n *\n * @param file The file to upload\n */\n _mtimeHeader(file) {\n const mtime = Math.floor(file.lastModified / 1e3);\n if (mtime > 0) {\n return { \"X-OC-Mtime\": mtime };\n }\n return {};\n }\n}\n/*!\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\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}\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}\n/*!\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nasync function openConflictPicker(dirname, conflicts, content, options) {\n const ConflictPicker = defineAsyncComponent(() => import(\"./ConflictPicker-DuPiUBHl.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 showInvalidFilenameDialog(error) {\n const InvalidFilenameDialog = defineAsyncComponent(() => import(\"./InvalidFilenameDialog-BM2VDeLo.mjs\"));\n const { promise, reject, resolve } = Promise.withResolvers();\n spawnDialog(\n InvalidFilenameDialog,\n {\n error,\n validateFilename\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 * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nfunction uploadConflictHandler(contentsCallback) {\n return async (nodes, path) => {\n try {\n const content = await contentsCallback(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 = [\n ...nodes.filter((node) => !conflicts.includes(node)),\n ...selected,\n ...renamed\n ];\n }\n const filesToUpload = [];\n for (const file of nodes) {\n try {\n 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 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}\nfunction normalizeComponent(scriptExports, render6, staticRenderFns, functionalTemplate, injectStyles, scopeId, moduleIdentifier, shadowMode) {\n var options = typeof scriptExports === \"function\" ? scriptExports.options : scriptExports;\n if (render6) {\n options.render = render6;\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$4 = {\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$4 = 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$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 IconCancel = __component__$4.exports;\nconst _sfc_main$3 = {\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$3 = 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$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 IconFolderUpload = __component__$3.exports;\nconst _sfc_main$2 = {\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$2 = 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$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 IconPlus = __component__$2.exports;\nconst _sfc_main$1 = {\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$1 = 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$1 = [];\nvar __component__$1 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$1,\n _sfc_render$1,\n _sfc_staticRenderFns$1,\n false,\n null,\n null\n);\nconst IconUpload = __component__$1.exports;\nconst _sfc_main = defineComponent({\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 */\n noMenu: {\n type: Boolean,\n default: false\n },\n /**\n * Allow to disable the button label\n */\n noLabel: {\n type: Boolean,\n default: false\n },\n /**\n * Make the \"New\"-button primary color.\n */\n primary: {\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 newFileMenuEntries: [],\n openedMenu: false,\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 queue() {\n return this.uploadManager.queue;\n },\n hasFailure() {\n return this.queue.some((upload2) => upload2.status === Status.FAILED);\n },\n isAssembling() {\n return this.queue.some((upload2) => upload2.status === Status.ASSEMBLING);\n },\n isUploading() {\n return this.queue.some((upload2) => upload2.status !== Status.CANCELLED);\n },\n isOnlyAssembling() {\n return this.isAssembling && this.queue.every((upload2) => (\n // ignore empty uploads or meta uploads\n upload2.size === 0 || upload2.status === Status.ASSEMBLING || upload2.status === Status.FINISHED\n ));\n },\n isPaused() {\n return this.uploadManager.info?.status === UploaderStatus.PAUSED;\n },\n buttonLabel() {\n return this.noMenu ? t(\"Upload\") : t(\"New\");\n },\n haveMenu() {\n return !((this.noMenu || this.newFileMenuEntries.length === 0) && !this.canUploadFolders);\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 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 useHotKey(\"u\", this.onKeyDown, {\n stop: true,\n prevent: true,\n shift: true\n });\n useHotKey(\"Escape\", this.onKeyDown, {\n stop: true,\n prevent: true\n });\n logger.debug(\"UploadPicker initialised\");\n },\n methods: {\n etaTimeAndSpeed() {\n const speed = this.uploadManager.eta.speedReadable;\n if (speed) {\n return `${this.uploadManager.eta.timeReadable} (${speed})`;\n }\n return this.uploadManager.eta.timeReadable;\n },\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 * Start uploading\n */\n async onPick() {\n const input = this.$refs.input;\n const files = input.files ? Array.from(input.files) : [];\n try {\n await this.uploadManager.batchUpload(\"\", files, uploadConflictHandler(this.getContent));\n } catch (error) {\n logger.debug(\"Error while uploading\", { error });\n } finally {\n this.resetForm();\n }\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 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.FAILED) {\n this.$emit(\"failed\", upload2);\n } else {\n this.$emit(\"uploaded\", upload2);\n }\n },\n onKeyDown(event) {\n if (event.key === \"u\") {\n if (this.haveMenu) {\n this.openedMenu = true;\n return;\n }\n this.onTriggerPick();\n }\n if (event.key === \"Escape\" && this.openedMenu) {\n this.openedMenu = false;\n }\n }\n }\n});\nvar _sfc_render = function render5() {\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.haveMenu ? _c(\"NcButton\", { attrs: { \"aria-label\": _vm.buttonLabel, \"disabled\": _vm.disabled, \"data-cy-upload-picker-add\": \"\", \"data-cy-upload-picker-menu-entry\": \"upload-file\", \"type\": _vm.primary ? \"primary\" : \"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 }, !_vm.isUploading ? { key: \"default\", fn: function() {\n return [_vm._v(\" \" + _vm._s(_vm.buttonLabel) + \" \")];\n }, proxy: true } : null], null, true) }) : _c(\"NcActions\", { attrs: { \"aria-label\": _vm.buttonLabel, \"menu-name\": _vm.noLabel ? void 0 : _vm.buttonLabel, \"open\": _vm.openedMenu, \"type\": _vm.primary ? \"primary\" : \"secondary\" }, on: { \"update:open\": function($event) {\n _vm.openedMenu = $event;\n } }, 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\", { attrs: { \"size\": 20 } })];\n }, proxy: true }], null, false, 931184598) }, [_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, \"data-cy-upload-picker-progress\": \"\", \"error\": _vm.hasFailure, \"value\": _vm.uploadManager.eta.progress, \"size\": \"medium\" } }), _c(\"p\", { attrs: { \"id\": _vm.progressTimeId, \"data-cy-upload-picker-progress-label\": \"\" } }, [_vm.isPaused ? _c(\"span\", [_vm._v(\" \" + _vm._s(_vm.t(\"paused\")) + \" \")]) : _vm.isOnlyAssembling ? _c(\"span\", [_vm._v(\" \" + _vm._s(_vm.t(\"assembling\")) + \" \")]) : _c(\"span\", { attrs: { \"title\": _vm.etaTimeAndSpeed() } }, [_vm._v(\" \" + _vm._s(_vm.uploadManager.eta.timeReadable) + \" \"), _vm.uploadManager.eta.speedReadable && _vm.uploadManager.eta.time >= 60 ? _c(\"span\", [_vm._v(\" (\" + _vm._s(_vm.uploadManager.eta.speedReadable) + \") \")]) : _vm._e()])])], 1), _vm.isUploading && !_vm.isOnlyAssembling ? _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 \"a66c1264\"\n);\nconst UploadPicker = __component__.exports;\nexport {\n EtaStatus as E,\n Status as S,\n Upload as U,\n isFileSystemFileEntry as a,\n n as b,\n Uploader as c,\n UploaderStatus as d,\n getConflicts as e,\n uploadConflictHandler as f,\n getUploader as g,\n hasConflict as h,\n isFileSystemEntry as i,\n UploadPicker as j,\n logger as l,\n normalizeComponent as n,\n openConflictPicker as o,\n t,\n upload as u\n};\n//# sourceMappingURL=index-DPkUyJ8g.mjs.map\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=\" + {\"1035\":\"da08d310d18692ca4e27\",\"1140\":\"490e17ed9c8948d5a9e8\",\"1764\":\"3654558a3474ec02b609\",\"2221\":\"428c2ff62c4b8b3c97fc\",\"2457\":\"ce6348bfa704a5bf56fb\",\"3145\":\"3908fb4074194097d3f5\",\"4271\":\"101cdb0f1357424796fd\",\"4723\":\"934c36402dc782526ac6\",\"5448\":\"71cfe268d6f1213c4735\",\"5862\":\"580b9c2e231a9169a12f\",\"6015\":\"ebcb6885c1fc8c461988\",\"6798\":\"1a6cf42d93801a926a3d\",\"7471\":\"b4ac70873a3ab192efd0\",\"7859\":\"740587c0c8c350dad157\",\"7910\":\"de857920f8beb5205bbc\",\"8815\":\"9a5c507c75429c9c04e4\",\"9281\":\"29ef7f217a0c6b239922\",\"9906\":\"7304d0da95152b604642\"}[chunkId] + \"\";\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 (globalThis.importScripts) scriptUrl = globalThis.location + \"\";\nvar document = globalThis.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(/^blob:/, \"\").replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = (typeof document !== 'undefined' && 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\t7471: 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, moreModules, runtime] = data;\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 = globalThis[\"webpackChunknextcloud_ui_legacy\"] = globalThis[\"webpackChunknextcloud_ui_legacy\"] || [];\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__(23638)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","script","name","props","to","type","String","required","where","default","disabled","Boolean","data","nodes","waiting","observer","parent","watch","value","this$1","this","disable","$nextTick","teardownObserver","bootObserver","move","mounted","Array","from","$el","childNodes","maybeMove","beforeDestroy","getComponentChildrenNode","computed","classes","methods","document","querySelector","prepend","getFragment","appendChild","fragment","createDocumentFragment","forEach","node","onMutations","mutations","shouldMove","i","length","mutation","filteredAddedNodes","addedNodes","filter","includes","removedNodes","MutationObserver","observe","body","childList","subtree","attributes","characterData","childObserver","find","target","parentNode","removeChild","disconnect","$vnode","componentOptions","children","map","elm","normalizeComponent","template","style","scopeId","isFunctionalTemplate","moduleIdentifier","shadowMode","createInjector","createInjectorSSR","createInjectorShadow","hook","options","render","staticRenderFns","_compiled","functional","_scopeId","context","ssrContext","__VUE_SSR_CONTEXT__","call","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","originalRender","h","existing","beforeCreate","concat","HEAD","isOldIE","navigator","test","userAgent","toLowerCase","id","css","group","media","styles","ids","Set","has","code","source","sources","btoa","unescape","encodeURIComponent","JSON","stringify","element","createElement","setAttribute","undefined","head","getElementsByTagName","push","styleSheet","cssText","join","index","size","textNode","createTextNode","insertBefore","addStyle","__vue_script__","__vue_render__","_vm","_h","$createElement","_self","_c","class","_t","_withStripped","__vue_component__","inject","install","Vue","installed","component","GlobalVue","window","use","emits","title","fillColor","Number","_b","staticClass","attrs","on","$event","$emit","$attrs","_v","_s","_e","width","ref","isWide","isMedium","isNarrow","ResizeObserver","contentBoxSize","inlineSize","contentRect","updateObserver","el","unobserve","useFileListWidth","onMounted","readonly","allViews","shallowRef","visibleViews","view","hidden","initialized","useViews","navigation","getNavigation","addEventListener","views","useVisibleViews","queue","getQueue","PQueue","concurrency","MoveCopyAction","loadState","Permission","NONE","HintException","Error","Directory","File","constructor","contents","super","_defineProperty","_contents","_computeDirectorySize","lastModified","Date","now","_computeDirectoryMtime","directory","reduce","acc","file","entry","async","traverseTree","isFile","Promise","resolve","reject","logger","debug","entries","dirReader","createReader","getEntries","readEntries","results","error","readDirectory","all","flat","createDirectoryIfNotExists","path","destination","davUrl","defaultRemoteURL","defaultRootPath","davRoot","root","davClient","getClient","exists","createDirectory","recursive","stat","details","getDefaultPropfind","emit","resultToNode","resolveConflict","files","conflicts","basename","uploads","selected","renamed","openConflictPicker","showInfo","t","info","warn","showWarning","dataTransferToFileTree","items","item","kind","getAsEntry","webkitGetAsEntry","warned","fileTree","DataTransferItem","getAsFile","showError","onDropExternalFiles","uploader","getUploader","hasConflict","uploadDirectoryContents","relativePath","upload","pause","start","errors","allSettled","result","status","showSuccess","onDropInternalFiles","isCopy","promises","fromAsync","method","overwrite","FileType","Folder","MOVE","some","dirname","startsWith","nameMapping","Map","otherNodes","getContents","getConflicts","nodesToRename","content","n","c","skipped","usedNames","newName","getUniqueName","ignoreFileExtension","set","actionFinished","mode","text","count","toast","showLoading","hideToast","createLoadingNotification","NodeStatus","LOADING","client","currentPath","destinationPath","get","COPY","copyFile","moveFile","response","parser","DOMParser","message","parseFromString","textContent","handleCopyMoveNodesTo","useDragAndDropStore","defineStore","state","dragging","actions","selection","reset","useSelectionStore","lastSelection","lastSelectedIndex","setLastIndex","useUploaderStore","args","store","defineComponent","components","NcActionButton","NcBreadcrumbs","NcBreadcrumb","NcIconSvgWrapper","setup","activeStore","useActiveStore","filesStore","useFilesStore","pathsStore","usePathsStore","draggingStore","selectionStore","uploaderStore","isMenuOpen","activeFolder","isSharingEnabled","getCapabilities","files_sharing","isPublic","isPublicShare","canShare","permissions","SHARE","openSharingSidebar","getSidebar","open","mdiAccountPlus","mdiChevronDown","mdiChevronUp","mdiReload","dirs","split","replace","sections","dir","getFileSourceFromPath","getNodeFromSource","exact","getDirDisplayName","getTo","disableDrop","isUploadInProgress","wrapUploadProgressBar","viewIcon","activeView","icon","selectedFiles","draggingFiles","getNode","getPath","displayname","$route","params","query","fileid","onDragOver","event","dataTransfer","ctrlKey","dropEffect","onDrop","preventDefault","controller","AbortController","signal","folder","canDrop","CREATE","button","titleForSection","section","ariaForSection","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","_setupProxy","scopedSlots","_u","key","fn","proxy","_l","nativeOn","TrayArrowDownIcon","currentFolder","Object","dragover","canUpload","isQuotaExceeded","cantUploadLabel","resetDragOver","debounce","mainContent","getElementById","onDragLeave","onContentDrop","beforeUnmount","removeEventListener","isForeignFile","types","currentTarget","contains","relatedTarget","clear","stopPropagation","lastUpload","findLast","UploadStatus","FAILED","webkitRelativePath","headers","$router","directives","rawName","expression","isFileListFilterWithUi","useFiltersStore","chips","filters","activeChips","values","sortedFilters","sort","a","b","order","filtersWithUI","addFilter","onFilterUpdateChips","onFilterUpdate","detail","registry","getFilesRegistry","initialFilters","getFileListFilters","filterId","findIndex","splice","removeFilter","subscribe","onViewChanged","initialize","_defineComponent","__name","__props","filterStore","visualFilters","hasActiveFilters","selectedFilter","boundary","__sfc","menuTriggerId","mdiArrowLeft","mdiFilterVariant","NcButton","NcPopover","_setup","$style","fileListFilters","iconSvgInline","displayName","fileListFilters__popoverContainer","tagName","tag","domProps","fileListFilters__popoverFilterView","Function","updateRootElement","currentView","replaceChildren","openedSubmenu","enabledSubmenuActions","enabledFileActions","record","action","isValidMenu","onBackToMenuClick","menuAction","$refs","focus","executeAction","currentNode","activeNode","_children","enabled","activeAction","success","exec","ArrowLeftIcon","CustomElementRender","NcActions","NcActionSeparator","NcLoadingIcon","mixins","actionsMixins","opened","gridMode","isActive","isLoading","actionContext","enabledInlineActions","inline","enabledRenderActions","renderInline","enabledMenuActions","DefaultType","HIDDEN","self","topActionsIds","renderedNonDestructiveActions","destructive","renderedDestructiveActions","openedMenu","getBoundariesElement","created","useHotKey","onKeyDown","stop","prevent","actionDisplayName","isLoadingAction","onActionClick","onMenuClose","onMenuClosed","refInFor","NcCheckboxRadioSwitch","keyboardStore","altKey","metaKey","shiftKey","onEvent","_initialized","useKeyboardStore","isSelected","ariaLabel","loadingLabel","onToggleSelect","ctrl","shift","onSelectionChange","newSelectedIndex","isAlreadySelected","Math","min","end","max","filesToSelect","slice","resetSelection","indexOf","_k","keyCode","apply","arguments","useRenamingStore","renamingNode","newNodeName","isRenaming","$reset","rename","oldName","trim","userConfig","useUserConfigStore","show_dialog_file_extension","oldExtension","extname","newExtension","promise","withResolvers","spawnDialog","defineAsyncComponent","showFileExtensionDialog","show_hidden","filename","showHiddenFileDialog","oldEncodedSource","encodedSource","axios","url","Destination","Overwrite","fetchNode","oldSource","isAxiosError","cause","getFilenameValidity","escape","validateFilename","InvalidFilenameError","reason","InvalidFilenameErrorReason","Character","char","segment","ReservedName","Extension","match","extension","NcTextField","renamingStore","userConfigStore","defaultFileAction","isRenamingSmallScreen","renameLabel","linkTo","is","tabindex","immediate","handler","renaming","startRenaming","input","renameInput","validity","checkIfNodeExists","setCustomValidity","reportValidity","sourceName","setSelectionRange","dispatchEvent","Event","stopRenaming","onRename","renameForm","checkValidity","nameContainer","model","callback","$$v","show_files_extensions","StarSvg","mdiPlus","usePreviewImage","toValue","fallback","mime","previewUrl","generateUrl","URL","location","origin","href","crop","sizeX","sizeY","token","getSharingToken","searchParams","toString","etag","mtime","getTime","AccountGroupIcon","AccountPlusIcon","CollectivesIcon","FavoriteIcon","FileIcon","FolderIcon","FolderOpenIcon","KeyIcon","LinkIcon","NetworkIcon","TagIcon","RecentlyCreatedIcon","toRef","crop_image_previews","backgroundFailed","backgroundLoaded","isFavorite","favorite","isRecentlyCreated","crtime","oneDayAgo","setDate","getDate","isRecentView","fileOverlay","PlayCircleIcon","folderOverlay","shareTypes","ShareType","Link","Email","hasBlurhash","canvas","drawBlurhash","previewImg","src","onBackgroundLoad","onBackgroundError","height","pixels","decode","ctx","getContext","imageData","createImageData","putImageData","_m","useFileActions","getFileActions","useRouteParameters","route","useRoute","fileId","parseInt","isNaN","openFile","openfile","toLocaleLowerCase","openDetails","opendetails","useActionsMenuStore","available","sidebar","hotkey","description","getSummaryFor","fileCount","folderCount","summary","fileSummary","folderSummary","hiddenSummary","extend","FileMultipleIcon","isSingleNode","isSingleFolder","totalSize","total","formatFileSize","update","preview","cloneNode","Preview","DragAndDropPreview","directive","vOnClickOutside","NcFile","Node","isMtimeAvailable","compact","provide","uniqueId","str","hash","charCodeAt","hashCode","currentRouteFileId","isFailedSource","canDrag","UPDATE","every","actionsMenuStore","mtimeOpacity","maxOpacityTime","timeDiff","opacityTime","color","round","newSource","resetState","closest","removeProperty","onRightClick","getBoundingClientRect","setProperty","clientX","left","clientY","top","isMoreThanOneSelected","execDefaultAction","metaKeyPressed","READ","downloadAttribute","parse","scope","isDownloadable","openDetailsIfAvailable","sidebarAction","onDragStart","clearData","image","$mount","$on","$off","getDragAndDropPreview","setDragImage","onDragEnd","relative","batchUpload","conflict","cachedContents","getNodesByPath","FileEntryActions","FileEntryCheckbox","FileEntryName","FileEntryPreview","NcDateTime","FileEntryMixin","isMimeAvailable","isSizeAvailable","storeToRefs","rowListeners","dragstart","contextmenu","dragleave","dragend","drop","columns","OC","MimeTypeList","names","baseType","ext","toUpperCase","sizeOpacity","pow","triggerDefaultAction","_g","column","inheritAttrs","r","_sfc_main","ariaLabelClose","actionsContainer","validator","iconPath","iconSvg","noClose","variant","slots","realVariant","canClose","hasActions","hasIcon","mdiClose","_sfc_render","_sfc_staticRenderFns","NcChip","exports","NcAvatar","fileListFilterChips","chip","onclick","user","searchStore","useSearchStore","getPinia","isVisible","onClick","header","queueUpdate","initialRender","mount","then","catch","destroyed","updated","classForColumn","FILE_LIST_HEAD_FIRST_BATCH_ACTION_ID","selectedNodes","boundariesElement","inlineActions","loading","execBatch","childrenActionsIds","menuActions","areSomeNodesLoading","firstActionId","at","firstButton","actionsMenu","onFirstButtonFocusOut","selectionSources","$set","failedSources","e","FILES_LIST_HEADER_SELECT_ALL_CHECKBOX_ID","translate","idx","initialViewConfig","useViewConfigStore","viewConfigs","getCurrentUser","put","viewId","onUpdate","getConfig","viewid","setSortingBy","toggleSortingDirection","sorting_direction","mapState","sortingMode","sorting_mode","defaultSortKey","isAscSorting","sortingDirection","toggleSortBy","MenuDown","MenuUp","filesSortingMixin","FilesListTableHeaderButton","selectAllBind","label","checked","isAllSelected","indeterminate","isSomeSelected","isNoneSelected","onToggleAll","selectAllCheckbox","onSelectAllCheckboxFocusOut","ariaSortForMode","firstBatchActionButton","dataComponent","dataKey","dataSources","extraProps","scrollToIndex","caption","fileListWidth","beforeHeight","footerHeight","headerHeight","tableHeight","resizeObserver","isReady","bufferItems","columnCount","itemHeight","itemWidth","visibleRows","floor","rowCount","startIndex","firstColumnIndex","shownItems","renderedItems","oldItemsKeys","$_recycledPool","unusedKeys","keys","pop","random","substr","totalRowCount","ceil","tbodyStyle","rowsAbove","rowsBelow","paddingBlock","minHeight","scrollTo","oldColumnCount","updateHeightVariables","onScroll","before","footer","lastVisibleIndex","totalRows","clampedIndex","scrollTop","indexToScrollPos","_onScrollHandle","requestAnimationFrame","scrollPosToIndex","scrollPos","topScroll","clientHeight","theadHeight","thead","filterHeight","$scopedSlots","sorted","FileListFilterChips","FileListFilterToSearch","FilesListHeader","FilesListTableFooter","FilesListTableHeader","VirtualList","FilesListTableHeaderActions","View","show_mime_column","getFileListHeaders","FileEntry","FileEntryGrid","cantUpload","defaultCaption","isEmpty","handleOpenQueries","unselectFile","handleOpenFile","openSidebarForFile","scrollToFile","defaultAction","useEnabledFileActions","OCP","Files","Router","goToRoute","tableElement","table","tableTop","tableBottom","grid_view","setActiveNode","nextIndex","nextNode","useSidebarStore","activeTab","isOpen","hasContext","currentContext","currentActions","getActions","currentTabs","getTabs","tabId","setActiveTab","newTabs","close","tabs","getSidebarTabs","tab","getSidebarActions","_router","afterEach","defaultView","default_view","quota","BreadCrumbs","DragAndDropNotice","FileListFilters","FilesListVirtual","ListViewIcon","NcAppContent","NcEmptyContent","Teleport","UploadPicker","ViewGridIcon","IconAlertCircleOutline","IconReload","filtersStore","viewConfigStore","enableGridView","forbiddenCharacters","dirContents","enabledFileListActions","getFileListActions","useEnabledFileListActions","stopWatching","nextTick","loadingAction","dirContentsFiltered","getContent","normalizedPath","normalize","pageHeading","dirContentsSorted","customColumn","reverse","sortNodes","sortFavoritesFirst","sort_favorites_first","sortFoldersFirst","sort_folders_first","sortingOrder","aa","bb","isEmptyDir","isRefreshing","toPreviousDir","gridViewButtonLabel","showCustomEmptyView","emptyView","debouncedFetchContent","useThrottleFn","fetchContent","show","customEmptyView","newView","oldView","newDir","oldDir","filesListVirtual","filterDirContent","onUpdatedNode","onUpdateSearch","unmounted","unsubscribe","once","abort","updateNodes","setRoot","service","addPath","fatal","isWebDAVClientError","humanizeWebDAVError","onUpload","onUploadFail","CANCELLED","doc","toggleGridView","execFileListAction","emptyTitle","emptyCaption","Intl","Collator","getLanguage","getCanonicalLocale","numeric","usage","collator","level","viewConfig","isExpanded","expanded","childViews","v","isDescendant","parentView","sortedChildViews","compare","hasChildViews","navigationRoute","childViewsLoaded","loadChildViews","maxLevel","onExpandCollapse","NcAppNavigationItem","sticky","childView","rootViews","sortViews","NcAppNavigationList","FilesNavigationListItem","filesNavigationList","remove","useRouter","beforeResolve","next","VIEW_ID","onUnmounted","onBeforeNavigation","isSearchView","searchLabel","mdiMagnify","mdiSearchWeb","NcAppNavigationSearch","throttle","delay","timeoutID","_ref","_ref$noTrailing","noTrailing","_ref$noLeading","noLeading","_ref$debounceMode","debounceMode","cancelled","lastExec","clearExistingTimeout","clearTimeout","wrapper","_len","arguments_","_key","elapsed","setTimeout","cancel","_ref2$upcomingOnly","upcomingOnly","ChartPie","NcProgressBar","loadingStorageStats","storageStats","storageStatsTitle","usedQuotaByte","used","quotaByte","storageStatsTooltip","beforeMount","throttleUpdateStorageStats","free","showStorageFullWarning","debounceUpdateStorageStats","_ref$atBegin","atBegin","updateStorageStats","slot","NcAppSettingsSection","NcFormBox","NcFormBoxSwitch","mdiAccountOutline","mdiFolderOutline","NcRadioGroup","NcRadioGroupButton","folder_tree","setting","onBeforeMount","onBeforeUnmount","apiSettings","OCA","Settings","settings","localeCompare","FilesAppSettingsLegacyApiEntry","actionHotkeys","hotkeyToString","parts","alt","NcAppSettingsShortcutsSection","NcHotkey","NcHotkeyList","show_dialog_deletion","webDavUrl","generateRemoteUrl","uid","webDavDocsUrl","appPasswordUrl","isTwoFactorEnabled","NcFormBoxButton","NcFormBoxCopyButton","showKeyboardShortcuts","scrollIntoView","behavior","NcAppSettingsDialog","FilesAppSettingsAppearance","FilesAppSettingsGeneral","FilesAppSettingsLegacyApi","FilesAppSettingsShortcuts","FilesAppSettingsWarnings","FilesAppSettingsWebDav","settingsOpened","currentViewId","watchEffect","setActive","NcAppNavigation","IconCog","FilesNavigationList","FilesNavigationSearch","NavigationQuota","FilesAppSettings","isFavourited","mdiStar","NcUserBubble","filesSidebarSubname","filesSidebarSubname__separator","owner","filesSidebarSubname__userBubble","N","Symbol","toStringTag","initializedTabs","active","onInit","customElements","whenDefined","NcAppSidebarTab","background","Image","onload","onClosed","onOpened","onToggle","NcAppSidebar","FilesSidebarSubname","FilesSidebarTab","router","old","new","useHotKeys","NcContent","FilesList","FilesNavigation","FilesSidebar","originalPush","prototype","ignoreDuplicateNavigation","originalReplace","isNavigationFailure","NavigationFailureType","duplicated","redirected","base","linkActiveClass","routes","redirect","stringifyQuery","queryString","onError","aborted","parentIntercept","fromDir","toDir","fromSource","currentRoute","parentFolder","RouterService","goTo","__webpack_nonce__","getCSPNonce","assign","PiniaVuePlugin","_settings","register","Setting","_classPrivateFieldInitSpec","_name","_options","_classPrivateFieldSet","_classPrivateFieldGet","FilesApp","pinia","getRootPath","propfindPayload","contentsResponse","getDirectoryContents","includeSelf","defaultGetContents","getDirectoryByPath","rootPath","searchNodes","getLocalSearch","search","getDavNameSpaces","getDavProperties","getBaseUrl","dummyFolder","getRemoteURL","onDeletedNode","onChangedView","roots","getNodes","getNodesById","getRoot","newNodes","deleteNodes","fromEntries","ourNode","_nc_files_pinia","createPinia","paths","getters","payload","deletePath","delete","onCreatedNode","addNodeToParentChildren","deleteNodeFromParentChildren","onMovedNode","oldPath","oldNode","parentSource","updateSearch","current","updateRouter","isSearch","initialUserConfig","getLoggerBuilder","setApp","detectUser","build","___CSS_LOADER_EXPORT___","module","defaultDavProperties","defaultDavNamespaces","d","nc","oc","ocs","s","davProperties","prop","davNamespaces","ns","getRecentSearch","remoteURL","setHeaders","requesttoken","patch","headers2","fetch","getFavoriteNodes","filesRoot","userId","permString","P","WRITE","DELETE","parsePermissions","lastmod","creationdate","nodeData","getcontentlength","hasPreview","gtBuilder","detectLocale","addTranslation","locale","json","gt","ngettext","bind","gettext","UploadCancelledError","uploadData","uploadData2","uploadOptions","onUploadProgress","onUploadRetry","retries","Blob","destinationFile","request","retryDelay","retryCount","retryCondition","onRetry","getChunk","getMaxChunksSize","fileSize","maxChunkSize","appConfig","max_chunk_size","minimumChunkSize","Status","Status2","Upload","_source","_file","_isChunked","_chunks","_size","_uploaded","_startTime","_status","_controller","_response","chunked","chunks","isChunked","startTime","uploaded","isFileSystemFileEntry","o","FileSystemFileEntry","isFileSystemEntry","FileSystemEntry","_originalName","_path","sum","latest","originalName","getChild","addChildren","addChild","FileSystemDirectoryEntry","reader","child","filePath","relPath","Eta","_done","_total","_progress","_elapsedTime","_speed","_eta","Infinity","_cutoffTime","resume","cutoffTime","done","deltaDone","deltaTime","historyNeeded","alpha","filtered","eta","dispatchTypedEvent","CustomEvent","cancelable","progress","time","timeReadable","seconds","hours","padStart","minutes","speed","speedReadable","UploaderStatus","UploaderStatus2","Uploader","_destinationFolder","_isPublic","_customHeaders","_uploadQueue","_jobQueue","chunked_upload","max_parallel_count","_queueSize","_queueProgress","_queueStatus","_notifiers","destinationFolder","ALL","maxChunksSize","customHeaders","structuredClone","setCustomHeader","deleteCustomerHeader","updateStats","upload2","partialSum","pending","INITIALIZED","UPLOADING","ASSEMBLING","addNotifier","notifier","_notifyAll","files2","onCancel","rootFolder","uploadDirectory","FINISHED","folderPath","currentUpload","selectedForUpload","directories","fileHandle","encodedDestinationFile","resolve2","supportsPublicChunking","dav","public_shares_chunking","disabledChunkUpload","blob","bytes","_mtimeHeader","tempUrl","chunksWorkspace","initChunkWorkspace","chunksQueue","chunk","bufferStart","bufferEnd","request2","chunkBytes","progressBytes","onIdle","forceRecreate","_nc_uploader","contentNames","ConflictPicker","picker","recursiveUpload","submit","$destroy","showInvalidFilenameDialog","InvalidFilenameDialog","rest","skip","scriptExports","render6","functionalTemplate","injectStyles","IconCancel","IconFolderUpload","IconPlus","IconUpload","NcActionCaption","accept","multiple","noMenu","noLabel","primary","allowFolders","progressTimeId","newFileMenuEntries","uploadManager","menuEntriesUpload","category","UploadFromDevice","menuEntriesNew","CreateNew","menuEntriesOther","Other","canUploadFolders","hasFailure","isAssembling","isUploading","isOnlyAssembling","isPaused","PAUSED","buttonLabel","haveMenu","setDestination","onUploadCompletion","etaTimeAndSpeed","onTriggerPick","uploadFolders","webkitdirectory","click","isArray","onPick","contentsCallback","filesToUpload","defineProperty","resetForm","form","iconClass","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","m","O","chunkIds","priority","notFulfilled","fulfilled","j","getter","__esModule","definition","enumerable","f","chunkId","u","obj","hasOwnProperty","l","needAttach","scripts","getAttribute","charset","onScriptComplete","prev","onerror","timeout","doneFns","nmd","scriptUrl","globalThis","importScripts","currentScript","p","baseURI","installedChunks","installedChunkData","errorType","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"files-main.js?v=504de36f8a22bea3fc44","mappings":"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EAZF,SAAuBrF,GAErBxE,KAAa,OAAK,GAAOgb,QAAU,EAErC,EAUE,KACA,M,QCvBF,I,4jCCqIgB,KACK,KACJ,KACC,KACH,KACD,KACC,KACC,KACG,KACL,KACQ,KACX,KACG,KACO,KACH,KACD,KACO,KACG,KACN,KACA,KACD,KACI,KACD,KACE,KACF,KACF,KACC,KACW,GAAA+2B,EACF,KACjB,KACM,KACH,KACE,KACC,KACH,KACK,KACZ,KACE,KACE,KACC,KACL,KACa,KACL,KACH,KACJ,KACM,KACE,KACI,KACX,KACM,WACM,KACd,KACM,KACI,KACL,KACC,IACF,KACH,KACM,KACI,KACJ,KACJ,KACG,KACA,KACF,KACD,KACH,KACI,KACI,KACJ,KACF,KACI,KACD,IACE,KACR,KACG,KACK,KACN,KACI,KACD,KACM,KACK,KACF,KACX,KACW,KACb,KACI,KACC,KACM,KACF,KACI,KACX,KACC,KACI,KACC,KACJ,KACI,KACR,KACPC,OAAOC,YAGD,KACE,KACA,MACRD,OAAOC,YA1GV,MDlIMC,GAAkB,IAAI/rC,IAQ5B,IAA6BiZ,EAAAA,EAAAA,IAAiB,CAC1CC,OAAQ,kBACRtgB,MAAO,CACHozC,OAAQ,CAAElzC,KAAMM,SAChBokC,IAAK,MAETrtB,KAAAA,CAAMgJ,GACF,MAAMvgB,EAAQugB,EACR8Q,EAAUwS,KACVrsB,GAAcC,EAAAA,GAAAA,KACdkjB,GAAU3vB,EAAAA,EAAAA,KAAI,GAsBpB,OArBAlK,EAAAA,EAAAA,KAAMqtB,EAAAA,EAAAA,IAAMnuB,EAAO,UAAW,UAC1B,GAAKozC,EAAL,CAGAzkC,GAAAA,EAAOC,MAAM,yCAA2C5O,EAAM4kC,IAAI99B,GAAI,CAAE89B,IAAK5kC,EAAM4kC,MACnFjK,EAAQ55B,OAAQ,EAChB,IACSoyC,GAAgB9rC,IAAIrH,EAAM4kC,IAAInjB,WAC/B0xB,GAAgBrtC,IAAI9F,EAAM4kC,IAAInjB,SAC9B9S,GAAAA,EAAOC,MAAM,yBAA2B5O,EAAM4kC,IAAI99B,UAC5C9G,EAAM4kC,IAAIyO,aAEp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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/node_modules/vue2-teleport/dist/teleport.esm.js","webpack:///nextcloud/node_modules/vue-material-design-icons/AlertCircleOutline.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/AlertCircleOutline.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/AlertCircleOutline.vue?730b","webpack:///nextcloud/node_modules/vue-material-design-icons/AlertCircleOutline.vue?vue&type=template&id=da40788e","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","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=64cece03","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","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=39a07256","webpack:///nextcloud/node_modules/vue-material-design-icons/ViewGridOutline.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/ViewGridOutline.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/ViewGridOutline.vue?0216","webpack:///nextcloud/node_modules/vue-material-design-icons/ViewGridOutline.vue?vue&type=template&id=0c2dec16","webpack:///nextcloud/apps/files/src/components/BreadCrumbs.vue","webpack:///nextcloud/apps/files/src/composables/useFileListWidth.ts","webpack:///nextcloud/apps/files/src/composables/useViews.ts","webpack:///nextcloud/apps/files/src/actions/moveOrCopyActionUtils.ts","webpack:///nextcloud/apps/files/src/actions/moveOrCopyAction.ts","webpack:///nextcloud/apps/files/src/services/DropServiceUtils.ts","webpack:///nextcloud/apps/files/src/services/DropService.ts","webpack:///nextcloud/apps/files/src/store/dragging.ts","webpack:///nextcloud/apps/files/src/store/selection.ts","webpack:///nextcloud/apps/files/src/store/uploader.ts","webpack:///nextcloud/apps/files/src/components/BreadCrumbs.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files/src/components/BreadCrumbs.vue?954b","webpack://nextcloud/./apps/files/src/components/BreadCrumbs.vue?d357","webpack:///nextcloud/apps/files/src/components/DragAndDropNotice.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/TrayArrowDown.vue","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?a897","webpack:///nextcloud/node_modules/vue-material-design-icons/TrayArrowDown.vue?vue&type=template&id=5dbf2618","webpack:///nextcloud/apps/files/src/components/DragAndDropNotice.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files/src/components/DragAndDropNotice.vue?a66e","webpack://nextcloud/./apps/files/src/components/DragAndDropNotice.vue?a2e0","webpack:///nextcloud/apps/files/src/components/FileListFilter/FileListFilters.vue","webpack:///nextcloud/apps/files/src/store/filters.ts","webpack:///nextcloud/apps/files/src/components/FileListFilter/FileListFilters.vue?vue&type=script&setup=true&lang=ts","webpack://nextcloud/./apps/files/src/components/FileListFilter/FileListFilters.vue?5f13","webpack://nextcloud/./apps/files/src/components/FileListFilter/FileListFilters.vue?9837","webpack:///nextcloud/apps/files/src/components/FilesListVirtual.vue","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=16833c02","webpack:///nextcloud/apps/files/src/mixins/actionsMixin.ts","webpack:///nextcloud/apps/files/src/utils/actionUtils.ts","webpack:///nextcloud/apps/files/src/components/FileEntry/FileEntryActions.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files/src/components/FileEntry/FileEntryActions.vue?3630","webpack://nextcloud/./apps/files/src/components/FileEntry/FileEntryActions.vue?c1d0","webpack://nextcloud/./apps/files/src/components/FileEntry/FileEntryActions.vue?7b52","webpack:///nextcloud/apps/files/src/components/FileEntry/FileEntryCheckbox.vue","webpack:///nextcloud/apps/files/src/components/FileEntry/FileEntryCheckbox.vue?vue&type=script&lang=ts","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/store/renaming.ts","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?9bb1","webpack://nextcloud/./apps/files/src/components/FileEntry/FileEntryName.vue?98a4","webpack:///nextcloud/apps/files/src/components/FileEntry/FileEntryPreview.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/AccountGroup.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/AccountGroup.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/AccountGroup.vue?1c79","webpack:///nextcloud/node_modules/vue-material-design-icons/AccountGroup.vue?vue&type=template&id=fa2b1464","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","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=53a26aa0","webpack:///nextcloud/node_modules/vue-material-design-icons/FolderOpen.vue","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?6818","webpack:///nextcloud/node_modules/vue-material-design-icons/FolderOpen.vue?vue&type=template&id=ae0c5fc0","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=499b3412","webpack:///nextcloud/node_modules/vue-material-design-icons/NetworkOutline.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/NetworkOutline.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/NetworkOutline.vue?5a96","webpack:///nextcloud/node_modules/vue-material-design-icons/NetworkOutline.vue?vue&type=template&id=8f00cb50","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=3cc1493c","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=356230e0","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?227e","webpack://nextcloud/./apps/files/src/components/FileEntry/FavoriteIcon.vue?62c6","webpack:///nextcloud/apps/files/src/components/FileEntry/RecentlyCreatedIcon.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/files/src/components/FileEntry/RecentlyCreatedIcon.vue","webpack://nextcloud/./apps/files/src/components/FileEntry/RecentlyCreatedIcon.vue?2c65","webpack://nextcloud/./apps/files/src/components/FileEntry/RecentlyCreatedIcon.vue?75c1","webpack:///nextcloud/apps/files/src/composables/usePreviewImage.ts","webpack:///nextcloud/apps/files/src/services/LivePhotos.ts","webpack:///nextcloud/apps/files/src/components/FileEntry/FileEntryPreview.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files/src/components/FileEntry/FileEntryPreview.vue?8c1f","webpack:///nextcloud/apps/files/src/composables/useFileActions.ts","webpack:///nextcloud/apps/files/src/composables/useRouteParameters.ts","webpack:///nextcloud/apps/files/src/store/actionsmenu.ts","webpack:///nextcloud/apps/files/src/actions/sidebarAction.ts","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","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=15fca808","webpack:///nextcloud/apps/files/src/utils/fileUtils.ts","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?34b2","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/FileEntry.vue","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","webpack:///nextcloud/apps/files/src/components/FileEntryGrid.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files/src/components/FileEntryGrid.vue?bb8e","webpack:///nextcloud/apps/files/src/components/FileListFilter/FileListFilterChips.vue","webpack://nextcloud/./node_modules/@nextcloud/vue/dist/assets/NcChip-DLfUzq07.css?b679","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/Components/NcChip.mjs","webpack:///nextcloud/apps/files/src/components/FileListFilter/FileListFilterChips.vue?vue&type=script&setup=true&lang=ts","webpack://nextcloud/./apps/files/src/components/FileListFilter/FileListFilterChips.vue?d193","webpack://nextcloud/./apps/files/src/components/FileListFilter/FileListFilterChips.vue?e408","webpack:///nextcloud/apps/files/src/components/FileListFilter/FileListFilterToSearch.vue","webpack:///nextcloud/apps/files/src/components/FileListFilter/FileListFilterToSearch.vue?vue&type=script&setup=true&lang=ts","webpack://nextcloud/./apps/files/src/components/FileListFilter/FileListFilterToSearch.vue?feab","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","webpack:///nextcloud/apps/files/src/components/FilesListTableFooter.vue?vue&type=script&setup=true&lang=ts","webpack://nextcloud/./apps/files/src/components/FilesListTableFooter.vue?e251","webpack://nextcloud/./apps/files/src/components/FilesListTableFooter.vue?fa4c","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?c574","webpack://nextcloud/./apps/files/src/components/FilesListTableHeaderActions.vue?9494","webpack:///nextcloud/apps/files/src/components/FilesListTableHeaderButton.vue","webpack:///nextcloud/apps/files/src/store/viewConfig.ts","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?9000","webpack://nextcloud/./apps/files/src/components/FilesListTableHeaderButton.vue?e364","webpack:///nextcloud/apps/files/src/components/FilesListTableHeader.vue","webpack:///nextcloud/apps/files/src/components/FilesListTableHeader.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files/src/components/FilesListTableHeader.vue?606b","webpack://nextcloud/./apps/files/src/components/FilesListTableHeader.vue?b1c9","webpack:///nextcloud/apps/files/src/components/VirtualList.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/files/src/components/VirtualList.vue","webpack://nextcloud/./apps/files/src/components/VirtualList.vue?37fa","webpack:///nextcloud/apps/files/src/composables/useFileListHeaders.ts","webpack:///nextcloud/apps/files/src/components/FilesListVirtual.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files/src/components/FilesListVirtual.vue?45e6","webpack://nextcloud/./apps/files/src/components/FilesListVirtual.vue?a11d","webpack://nextcloud/./apps/files/src/components/FilesListVirtual.vue?3555","webpack:///nextcloud/apps/files/src/composables/useFileListActions.ts","webpack:///nextcloud/apps/files/src/store/sidebar.ts","webpack:///nextcloud/apps/files/src/utils/filesViews.ts","webpack:///nextcloud/apps/files/src/views/FilesList.vue","webpack:///nextcloud/apps/files/src/utils/davUtils.ts","webpack:///nextcloud/apps/files/src/views/FilesList.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files/src/views/FilesList.vue?4e87","webpack://nextcloud/./apps/files/src/views/FilesList.vue?1e5b","webpack:///nextcloud/apps/files/src/views/FilesNavigation.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/CogOutline.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/CogOutline.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/CogOutline.vue?045c","webpack:///nextcloud/node_modules/vue-material-design-icons/CogOutline.vue?vue&type=template&id=96fed70c","webpack:///nextcloud/apps/files/src/components/FilesNavigationList.vue","webpack:///nextcloud/apps/files/src/services/FolderTree.ts","webpack:///nextcloud/apps/files/src/components/FilesNavigationListItem.vue","webpack:///nextcloud/apps/files/src/components/FilesNavigationListItem.vue?vue&type=script&setup=true&lang=ts","webpack://nextcloud/./apps/files/src/components/FilesNavigationListItem.vue?adcc","webpack:///nextcloud/apps/files/src/components/FilesNavigationList.vue?vue&type=script&setup=true&lang=ts","webpack://nextcloud/./apps/files/src/components/FilesNavigationList.vue?a941","webpack://nextcloud/./apps/files/src/components/FilesNavigationList.vue?110b","webpack:///nextcloud/apps/files/src/components/FilesNavigationSearch.vue","webpack:///nextcloud/apps/files/src/components/FilesNavigationSearch.vue?vue&type=script&setup=true&lang=ts","webpack:///nextcloud/apps/files/src/composables/useBeforeNavigation.ts","webpack://nextcloud/./apps/files/src/components/FilesNavigationSearch.vue?a917","webpack:///nextcloud/node_modules/throttle-debounce/esm/index.js","webpack:///nextcloud/node_modules/vue-material-design-icons/ChartPieOutline.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/ChartPieOutline.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files/src/components/NavigationQuota.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files/src/components/NavigationQuota.vue","webpack://nextcloud/./node_modules/vue-material-design-icons/ChartPieOutline.vue?0c3f","webpack:///nextcloud/node_modules/vue-material-design-icons/ChartPieOutline.vue?vue&type=template&id=a29cc97a","webpack://nextcloud/./apps/files/src/components/NavigationQuota.vue?763a","webpack://nextcloud/./apps/files/src/components/NavigationQuota.vue?2966","webpack://nextcloud/./apps/files/src/components/NavigationQuota.vue?08cb","webpack:///nextcloud/apps/files/src/views/FilesAppSettings.vue","webpack:///nextcloud/apps/files/src/components/FilesAppSettings/FilesAppSettingsAppearance.vue","webpack:///nextcloud/apps/files/src/components/FilesAppSettings/FilesAppSettingsAppearance.vue?vue&type=script&setup=true&lang=ts","webpack://nextcloud/./apps/files/src/components/FilesAppSettings/FilesAppSettingsAppearance.vue?f01b","webpack:///nextcloud/apps/files/src/components/FilesAppSettings/FilesAppSettingsGeneral.vue","webpack:///nextcloud/apps/files/src/components/FilesAppSettings/FilesAppSettingsGeneral.vue?vue&type=script&setup=true&lang=ts","webpack://nextcloud/./apps/files/src/components/FilesAppSettings/FilesAppSettingsGeneral.vue?3c4f","webpack:///nextcloud/apps/files/src/components/FilesAppSettings/FilesAppSettingsLegacyApiEntry.vue?vue&type=script&setup=true&lang=ts","webpack:///nextcloud/apps/files/src/components/FilesAppSettings/FilesAppSettingsLegacyApiEntry.vue","webpack://nextcloud/./apps/files/src/components/FilesAppSettings/FilesAppSettingsLegacyApiEntry.vue?4bf8","webpack:///nextcloud/apps/files/src/components/FilesAppSettings/FilesAppSettingsLegacyApi.vue?vue&type=script&setup=true&lang=ts","webpack:///nextcloud/apps/files/src/components/FilesAppSettings/FilesAppSettingsLegacyApi.vue","webpack://nextcloud/./apps/files/src/components/FilesAppSettings/FilesAppSettingsLegacyApi.vue?afdf","webpack:///nextcloud/apps/files/src/components/FilesAppSettings/FilesAppSettingsShortcuts.vue","webpack:///nextcloud/apps/files/src/components/FilesAppSettings/FilesAppSettingsShortcuts.vue?vue&type=script&setup=true&lang=ts","webpack://nextcloud/./apps/files/src/components/FilesAppSettings/FilesAppSettingsShortcuts.vue?09e9","webpack:///nextcloud/apps/files/src/components/FilesAppSettings/FilesAppSettingsWarnings.vue?vue&type=script&lang=ts&setup=true","webpack:///nextcloud/apps/files/src/components/FilesAppSettings/FilesAppSettingsWarnings.vue","webpack://nextcloud/./apps/files/src/components/FilesAppSettings/FilesAppSettingsWarnings.vue?ccbe","webpack:///nextcloud/apps/files/src/components/FilesAppSettings/FilesAppSettingsWebDav.vue","webpack:///nextcloud/apps/files/src/components/FilesAppSettings/FilesAppSettingsWebDav.vue?vue&type=script&lang=ts&setup=true","webpack://nextcloud/./apps/files/src/components/FilesAppSettings/FilesAppSettingsWebDav.vue?7317","webpack:///nextcloud/apps/files/src/views/FilesAppSettings.vue?vue&type=script&setup=true&lang=ts","webpack://nextcloud/./apps/files/src/views/FilesAppSettings.vue?38e4","webpack:///nextcloud/apps/files/src/views/FilesNavigation.vue?vue&type=script&setup=true&lang=ts","webpack://nextcloud/./apps/files/src/views/FilesNavigation.vue?290d","webpack://nextcloud/./apps/files/src/views/FilesNavigation.vue?e4aa","webpack:///nextcloud/apps/files/src/views/FilesSidebar.vue","webpack:///nextcloud/apps/files/src/components/FilesSidebar/FilesSidebarSubname.vue","webpack:///nextcloud/apps/files/src/components/FilesSidebar/FilesSidebarSubname.vue?vue&type=script&setup=true&lang=ts","webpack://nextcloud/./apps/files/src/components/FilesSidebar/FilesSidebarSubname.vue?0f62","webpack://nextcloud/./apps/files/src/components/FilesSidebar/FilesSidebarSubname.vue?bfcc","webpack:///nextcloud/apps/files/src/components/FilesSidebar/FilesSidebarTab.vue","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/index.mjs","webpack:///nextcloud/apps/files/src/components/FilesSidebar/FilesSidebarTab.vue?vue&type=script&setup=true&lang=ts","webpack://nextcloud/./apps/files/src/components/FilesSidebar/FilesSidebarTab.vue?4ce1","webpack:///nextcloud/apps/files/src/views/FilesSidebar.vue?vue&type=script&setup=true&lang=ts","webpack://nextcloud/./apps/files/src/views/FilesSidebar.vue?66bc","webpack://nextcloud/./apps/files/src/views/FilesSidebar.vue?9144","webpack:///nextcloud/apps/files/src/FilesApp.vue","webpack:///nextcloud/apps/files/src/composables/useHotKeys.ts","webpack:///nextcloud/apps/files/src/FilesApp.vue?vue&type=script&setup=true&lang=ts","webpack://nextcloud/./apps/files/src/FilesApp.vue?597e","webpack:///nextcloud/apps/files/src/router/router.ts","webpack:///nextcloud/apps/files/src/services/RouterService.ts","webpack:///nextcloud/apps/files/src/main.ts","webpack:///nextcloud/apps/files/src/services/Settings.js","webpack:///nextcloud/apps/files/src/models/Setting.ts","webpack:///nextcloud/apps/files/src/services/Files.ts","webpack:///nextcloud/apps/files/src/services/WebDavSearch.ts","webpack:///nextcloud/apps/files/src/services/WebdavClient.ts","webpack:///nextcloud/apps/files/src/store/active.ts","webpack:///nextcloud/apps/files/src/store/files.ts","webpack:///nextcloud/apps/files/src/store/index.ts","webpack:///nextcloud/apps/files/src/store/paths.ts","webpack:///nextcloud/apps/files/src/store/search.ts","webpack:///nextcloud/apps/files/src/store/userconfig.ts","webpack:///nextcloud/apps/files/src/utils/logger.ts","webpack:///nextcloud/apps/files/src/views/search.ts","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/assets/NcChip-DLfUzq07.css","webpack:///nextcloud/apps/files/src/components/BreadCrumbs.vue?vue&type=style&index=0&id=04c7dec6&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/files/src/components/DragAndDropNotice.vue?vue&type=style&index=0&id=3920de03&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/files/src/components/DragAndDropPreview.vue?vue&type=style&index=0&id=6c14765c&prod&lang=scss","webpack:///nextcloud/apps/files/src/components/FileEntry/FavoriteIcon.vue?vue&type=style&index=0&id=4505d262&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/files/src/components/FileEntry/FileEntryActions.vue?vue&type=style&index=0&id=3d55d6ab&prod&lang=scss","webpack:///nextcloud/apps/files/src/components/FileEntry/FileEntryActions.vue?vue&type=style&index=1&id=3d55d6ab&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/files/src/components/FileEntry/FileEntryName.vue?vue&type=style&index=0&id=ab3b59e0&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/files/src/components/FileEntry/RecentlyCreatedIcon.vue?vue&type=style&index=0&id=251f6582&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/files/src/components/FilesListTableFooter.vue?vue&type=style&index=0&id=378a6e4a&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/files/src/components/FilesListTableHeader.vue?vue&type=style&index=0&id=12d5b60e&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/files/src/components/FilesListTableHeaderActions.vue?vue&type=style&index=0&id=3b887a8f&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/files/src/components/FilesListTableHeaderButton.vue?vue&type=style&index=0&id=4a8557e6&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/files/src/components/FilesListVirtual.vue?vue&type=style&index=0&id=0aebd17f&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/files/src/components/FilesListVirtual.vue?vue&type=style&index=1&id=0aebd17f&prod&lang=scss","webpack:///nextcloud/apps/files/src/components/NavigationQuota.vue?vue&type=style&index=0&id=7c2cda32&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/files/src/views/FilesList.vue?vue&type=style&index=0&id=243e0eb8&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/files/src/views/FilesNavigation.vue?vue&type=style&index=0&id=bb94c4f2&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/files/src/views/FilesSidebar.vue?vue&type=style&index=0&id=f91af60e&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/files/src/components/FileListFilter/FileListFilterChips.vue?vue&type=style&index=0&id=690b69f8&prod&module=true&lang=css","webpack:///nextcloud/apps/files/src/components/FileListFilter/FileListFilters.vue?vue&type=style&index=0&id=4b9fd4ac&prod&module=true&lang=css","webpack:///nextcloud/apps/files/src/components/FilesNavigationList.vue?vue&type=style&index=0&id=1b62d532&prod&module=true&lang=css","webpack:///nextcloud/apps/files/src/components/FilesSidebar/FilesSidebarSubname.vue?vue&type=style&index=0&id=7bd1e3c0&prod&module=true&lang=css","webpack:///nextcloud/node_modules/@nextcloud/files/dist/dav.mjs","webpack:///nextcloud/node_modules/@nextcloud/upload/dist/chunks/index-DPkUyJ8g.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/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, fn, priority] = deferred[i];\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-ui-legacy:\";\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\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//\n//\n//\n//\n//\n\nvar script = {\n name: 'teleport',\n props: {\n to: {\n type: String,\n required: true,\n },\n where: {\n type: String,\n default: 'after',\n },\n disabled: Boolean,\n },\n data: function data() {\n return {\n nodes: [],\n waiting: false,\n observer: null,\n parent: null,\n };\n },\n watch: {\n to: 'maybeMove',\n where: 'maybeMove',\n disabled: function disabled(value) {\n var this$1 = this;\n\n if (value) {\n this.disable();\n // Ensure all event done.\n this.$nextTick(function () {\n this$1.teardownObserver();\n });\n } else {\n this.bootObserver();\n this.move();\n }\n },\n },\n mounted: function mounted() {\n // Store a reference to the nodes\n this.nodes = Array.from(this.$el.childNodes);\n\n if (!this.disabled) {\n this.bootObserver();\n }\n\n // Move slot content to target\n this.maybeMove();\n },\n beforeDestroy: function beforeDestroy() {\n // Fix nodes reference\n this.nodes = this.getComponentChildrenNode();\n\n // Move back\n this.disable();\n\n // Stop observing\n this.teardownObserver();\n },\n computed: {\n classes: function classes() {\n if (this.disabled) {\n return ['teleporter'];\n }\n\n return ['teleporter', 'hidden'];\n },\n },\n methods: {\n maybeMove: function maybeMove() {\n if (!this.disabled) {\n this.move();\n }\n },\n move: function move() {\n this.waiting = false;\n\n this.parent = document.querySelector(this.to);\n\n if (!this.parent) {\n this.disable();\n\n this.waiting = true;\n\n return;\n }\n\n if (this.where === 'before') {\n this.parent.prepend(this.getFragment());\n } else {\n this.parent.appendChild(this.getFragment());\n }\n },\n disable: function disable() {\n this.$el.appendChild(this.getFragment());\n this.parent = null;\n },\n // Using a fragment is faster because it'll trigger only a single reflow\n // See https://developer.mozilla.org/en-US/docs/Web/API/DocumentFragment\n getFragment: function getFragment() {\n var fragment = document.createDocumentFragment();\n\n this.nodes.forEach(function (node) { return fragment.appendChild(node); });\n\n return fragment;\n },\n onMutations: function onMutations(mutations) {\n var this$1 = this;\n\n // Makes sure the move operation is only done once\n var shouldMove = false;\n\n for (var i = 0; i < mutations.length; i++) {\n var mutation = mutations[i];\n var filteredAddedNodes = Array.from(mutation.addedNodes).filter(function (node) { return !this$1.nodes.includes(node); });\n\n if (Array.from(mutation.removedNodes).includes(this.parent)) {\n this.disable();\n this.waiting = !this.disabled;\n } else if (this.waiting && filteredAddedNodes.length > 0) {\n shouldMove = true;\n }\n }\n\n if (shouldMove) {\n this.move();\n }\n },\n bootObserver: function bootObserver() {\n var this$1 = this;\n\n if (this.observer) {\n return;\n }\n\n this.observer = new MutationObserver(function (mutations) { return this$1.onMutations(mutations); });\n\n this.observer.observe(document.body, {\n childList: true,\n subtree: true,\n attributes: false,\n characterData: false,\n });\n\n if (this.childObserver) {\n return;\n }\n // watch childNodes change\n this.childObserver = new MutationObserver(function (mutations) {\n var childChangeRecord = mutations.find(function (i) { return i.target === this$1.$el; });\n if (childChangeRecord) {\n // Remove old nodes before update position.\n this$1.nodes.forEach(function (node) { return node.parentNode && node.parentNode.removeChild(node); });\n this$1.nodes = this$1.getComponentChildrenNode();\n this$1.maybeMove();\n }\n });\n\n this.childObserver.observe(this.$el, {\n childList: true,\n subtree: false,\n attributes: false,\n characterData: false,\n });\n },\n teardownObserver: function teardownObserver() {\n if (this.observer) {\n this.observer.disconnect();\n this.observer = null;\n }\n if (this.childObserver) {\n this.childObserver.disconnect();\n this.childObserver = null;\n }\n },\n getComponentChildrenNode: function getComponentChildrenNode() {\n return this.$vnode.componentOptions.children\n .map(function (i) { return i.elm; })\n .filter(function (i) { return i; });\n },\n },\n};\n\nfunction normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\r\n if (typeof shadowMode !== 'boolean') {\r\n createInjectorSSR = createInjector;\r\n createInjector = shadowMode;\r\n shadowMode = false;\r\n }\r\n // Vue.extend constructor export interop.\r\n var options = typeof script === 'function' ? script.options : script;\r\n // render functions\r\n if (template && template.render) {\r\n options.render = template.render;\r\n options.staticRenderFns = template.staticRenderFns;\r\n options._compiled = true;\r\n // functional template\r\n if (isFunctionalTemplate) {\r\n options.functional = true;\r\n }\r\n }\r\n // scopedId\r\n if (scopeId) {\r\n options._scopeId = scopeId;\r\n }\r\n var hook;\r\n if (moduleIdentifier) {\r\n // server build\r\n hook = function (context) {\r\n // 2.3 injection\r\n context =\r\n context || // cached call\r\n (this.$vnode && this.$vnode.ssrContext) || // stateful\r\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext); // functional\r\n // 2.2 with runInNewContext: true\r\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\r\n context = __VUE_SSR_CONTEXT__;\r\n }\r\n // inject component styles\r\n if (style) {\r\n style.call(this, createInjectorSSR(context));\r\n }\r\n // register component module identifier for async chunk inference\r\n if (context && context._registeredComponents) {\r\n context._registeredComponents.add(moduleIdentifier);\r\n }\r\n };\r\n // used by ssr in case component is cached and beforeCreate\r\n // never gets called\r\n options._ssrRegister = hook;\r\n }\r\n else if (style) {\r\n hook = shadowMode\r\n ? function (context) {\r\n style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\r\n }\r\n : function (context) {\r\n style.call(this, createInjector(context));\r\n };\r\n }\r\n if (hook) {\r\n if (options.functional) {\r\n // register for functional component in vue file\r\n var originalRender = options.render;\r\n options.render = function renderWithStyleInjection(h, context) {\r\n hook.call(context);\r\n return originalRender(h, context);\r\n };\r\n }\r\n else {\r\n // inject component registration as beforeCreate hook\r\n var existing = options.beforeCreate;\r\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\r\n }\r\n }\r\n return script;\r\n}\n\nvar isOldIE = typeof navigator !== 'undefined' &&\r\n /msie [6-9]\\\\b/.test(navigator.userAgent.toLowerCase());\r\nfunction createInjector(context) {\r\n return function (id, style) { return addStyle(id, style); };\r\n}\r\nvar HEAD;\r\nvar styles = {};\r\nfunction addStyle(id, css) {\r\n var group = isOldIE ? css.media || 'default' : id;\r\n var style = styles[group] || (styles[group] = { ids: new Set(), styles: [] });\r\n if (!style.ids.has(id)) {\r\n style.ids.add(id);\r\n var code = css.source;\r\n if (css.map) {\r\n // https://developer.chrome.com/devtools/docs/javascript-debugging\r\n // this makes source maps inside style tags work properly in Chrome\r\n code += '\\n/*# sourceURL=' + css.map.sources[0] + ' */';\r\n // http://stackoverflow.com/a/26603875\r\n code +=\r\n '\\n/*# sourceMappingURL=data:application/json;base64,' +\r\n btoa(unescape(encodeURIComponent(JSON.stringify(css.map)))) +\r\n ' */';\r\n }\r\n if (!style.element) {\r\n style.element = document.createElement('style');\r\n style.element.type = 'text/css';\r\n if (css.media)\r\n { style.element.setAttribute('media', css.media); }\r\n if (HEAD === undefined) {\r\n HEAD = document.head || document.getElementsByTagName('head')[0];\r\n }\r\n HEAD.appendChild(style.element);\r\n }\r\n if ('styleSheet' in style.element) {\r\n style.styles.push(code);\r\n style.element.styleSheet.cssText = style.styles\r\n .filter(Boolean)\r\n .join('\\n');\r\n }\r\n else {\r\n var index = style.ids.size - 1;\r\n var textNode = document.createTextNode(code);\r\n var nodes = style.element.childNodes;\r\n if (nodes[index])\r\n { style.element.removeChild(nodes[index]); }\r\n if (nodes.length)\r\n { style.element.insertBefore(textNode, nodes[index]); }\r\n else\r\n { style.element.appendChild(textNode); }\r\n }\r\n }\r\n}\n\n/* script */\nvar __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function() {\n var _vm = this;\n var _h = _vm.$createElement;\n var _c = _vm._self._c || _h;\n return _c(\"div\", { class: _vm.classes }, [_vm._t(\"default\")], 2)\n};\nvar __vue_staticRenderFns__ = [];\n__vue_render__._withStripped = true;\n\n /* style */\n var __vue_inject_styles__ = function (inject) {\n if (!inject) { return }\n inject(\"data-v-50f4b45b_0\", { source: \".hidden[data-v-50f4b45b] {\\n visibility: hidden;\\n display: none;\\n}\\n\\n/*# sourceMappingURL=Teleport.vue.map */\", map: {\"version\":3,\"sources\":[\"/home/shodan/Projects/vue2-teleport/src/Teleport.vue\",\"Teleport.vue\"],\"names\":[],\"mappings\":\"AA2LA;EACA,kBAAA;EACA,aAAA;AC1LA;;AAEA,uCAAuC\",\"file\":\"Teleport.vue\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\",\".hidden {\\n visibility: hidden;\\n display: none;\\n}\\n\\n/*# sourceMappingURL=Teleport.vue.map */\"]}, media: undefined });\n\n };\n /* scoped */\n var __vue_scope_id__ = \"data-v-50f4b45b\";\n /* module identifier */\n var __vue_module_identifier__ = undefined;\n /* functional template */\n var __vue_is_functional_template__ = false;\n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n var __vue_component__ = /*#__PURE__*/normalizeComponent(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n createInjector,\n undefined,\n undefined\n );\n\n// Taken from https://vuejs.org/v2/cookbook/packaging-sfc-for-npm.html\n\n// Declare install function executed by Vue.use()\nfunction install (Vue) {\n if (install.installed) { return; }\n\n install.installed = true;\n Vue.component('Teleport', __vue_component__);\n}\n\n// Create module definition for Vue.use()\nvar plugin = {\n install: install,\n};\n\n// Auto-install when vue is found (eg. in browser via ","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./AlertCircleOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./AlertCircleOutline.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./AlertCircleOutline.vue?vue&type=template&id=da40788e\"\nimport script from \"./AlertCircleOutline.vue?vue&type=script&lang=js\"\nexport * from \"./AlertCircleOutline.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 alert-circle-outline-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,15H13V17H11V15M11,7H13V13H11V7M12,2C6.47,2 2,6.5 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,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!./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\"","\n\n","import { render, staticRenderFns } from \"./FormatListBulletedSquare.vue?vue&type=template&id=64cece03\"\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 }","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\"","\n\n","import { render, staticRenderFns } from \"./Reload.vue?vue&type=template&id=39a07256\"\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 }","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ViewGridOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ViewGridOutline.vue?vue&type=script&lang=js\"","\n\n","import { render, staticRenderFns } from \"./ViewGridOutline.vue?vue&type=template&id=0c2dec16\"\nimport script from \"./ViewGridOutline.vue?vue&type=script&lang=js\"\nexport * from \"./ViewGridOutline.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-outline-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 11H11V3H3M5 5H9V9H5M13 21H21V13H13M15 15H19V19H15M3 21H11V13H3M5 15H9V19H5M13 3V11H21V3M19 9H15V5H19Z\"}},[(_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('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.isNarrow,\"force-menu\":\"\",\"open\":_vm.isMenuOpen,\"title\":_vm.titleForSection(index, section),\"aria-description\":_vm.ariaForSection(section)},on:{\"update:open\":function($event){_vm.isMenuOpen=$event},\"drop\":function($event){return _vm.onDrop($event, section.dir)}},nativeOn:{\"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,(index === _vm.sections.length - 1)?{key:\"menu-icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"path\":_vm.isMenuOpen ? _vm.mdiChevronUp : _vm.mdiChevronDown}})]},proxy:true}:null,(index === _vm.sections.length - 1)?{key:\"default\",fn:function(){return [(_vm.canShare)?_c('NcActionButton',{attrs:{\"close-after-click\":\"\"},on:{\"click\":_vm.openSharingSidebar},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"path\":_vm.mdiAccountPlus}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Share'))+\"\\n\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('NcActionButton',{attrs:{\"close-after-click\":\"\"},on:{\"click\":function($event){return _vm.$emit('reload')}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"path\":_vm.mdiReload}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Reload content'))+\"\\n\\t\\t\\t\")])]},proxy:true}:null],null,true)},'NcBreadcrumb',section,false))}),1)\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 { computed, onMounted, readonly, ref } from 'vue';\n/** The element we observe */\nlet element;\n/** The current width of the element */\nconst width = ref(0);\nconst isWide = computed(() => width.value >= 1024);\nconst isMedium = computed(() => width.value >= 512 && width.value < 1024);\nconst isNarrow = computed(() => width.value < 512);\nconst observer = new ResizeObserver(([element]) => {\n if (!element) {\n return;\n }\n const contentBoxSize = element.contentBoxSize?.[0];\n if (contentBoxSize) {\n // use the newer `contentBoxSize` property if available\n width.value = contentBoxSize.inlineSize;\n }\n else {\n // fall back to `contentRect`\n width.value = element.contentRect.width;\n }\n});\n/**\n * Update the observed element if needed and reconfigure the observer\n */\nfunction updateObserver() {\n const el = document.querySelector('#app-content-vue') ?? document.body;\n if (el !== element) {\n // if already observing: stop observing the old element\n if (element) {\n observer.unobserve(element);\n }\n // observe the new element if needed\n observer.observe(el);\n element = el;\n }\n}\n/**\n * Get the reactive width of the file list\n */\nexport function useFileListWidth() {\n // Update the observer when the component is mounted (e.g. because this is the files app)\n onMounted(updateObserver);\n // Update the observer also in setup context, so we already have an initial value\n updateObserver();\n return {\n width: readonly(width),\n isWide,\n isMedium,\n isNarrow,\n };\n}\n","/*!\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getNavigation } from '@nextcloud/files';\nimport { computed, shallowRef } from 'vue';\nconst allViews = shallowRef([]);\nconst visibleViews = computed(() => allViews.value?.filter((view) => !view.hidden) ?? []);\nlet initialized = false;\n/**\n * Get all currently registered views.\n * Unline `Navigation.views` this is reactive and will update when new views are added or existing views are removed.\n */\nexport function useViews() {\n if (!initialized) {\n const navigation = getNavigation();\n navigation.addEventListener('update', () => {\n allViews.value = [...navigation.views];\n });\n allViews.value = [...navigation.views];\n initialized = true;\n }\n return allViews;\n}\n/**\n * Get all non-hidden views.\n */\nexport function useVisibleViews() {\n useViews();\n return visibleViews;\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 { loadState } from '@nextcloud/initial-state';\nimport { isPublicShare } from '@nextcloud/sharing/public';\nimport PQueue from 'p-queue';\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 function 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 = {}));\n/**\n * Check if the given nodes can be moved\n *\n * @param nodes - The nodes to check\n */\nexport function canMove(nodes) {\n const minPermission = nodes.reduce((min, node) => Math.min(min, node.permissions), Permission.ALL);\n return Boolean(minPermission & Permission.DELETE);\n}\n/**\n * Check if the given nodes can be downloaded\n *\n * @param nodes - The nodes to check\n */\nexport function 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}\n/**\n * Check if the given nodes can be copied\n *\n * @param nodes - The nodes to check\n */\nexport function 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","/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport FolderMoveSvg from '@mdi/svg/svg/folder-move-outline.svg?raw';\nimport CopyIconSvg from '@mdi/svg/svg/folder-multiple-outline.svg?raw';\nimport { isAxiosError } from '@nextcloud/axios';\nimport { FilePickerClosed, getFilePickerBuilder, openConflictPicker, showError, showLoading } from '@nextcloud/dialogs';\nimport { emit } from '@nextcloud/event-bus';\nimport { FileType, getUniqueName, NodeStatus, Permission } from '@nextcloud/files';\nimport { defaultRootPath, getClient, getDefaultPropfind, resultToNode } from '@nextcloud/files/dav';\nimport { t } from '@nextcloud/l10n';\nimport { getConflicts } from '@nextcloud/upload';\nimport { basename, join } from 'path';\nimport Vue from 'vue';\nimport { getContents } from '../services/Files.ts';\nimport { logger } from '../utils/logger.ts';\nimport { canCopy, canMove, getQueue, MoveCopyAction } from './moveOrCopyActionUtils.ts';\n/**\n * Exception to hint the user about something.\n * The message is intended to be shown to the user.\n */\nexport class HintException extends Error {\n}\nexport const ACTION_COPY_MOVE = 'move-copy';\nexport const action = {\n id: ACTION_COPY_MOVE,\n order: 15,\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(context) {\n return this.execBatch(context)[0];\n },\n async execBatch({ nodes, folder }) {\n const action = getActionForNodes(nodes);\n const target = await openFilePickerForAction(action, folder.path, nodes);\n // Handle cancellation silently\n if (target === false) {\n return nodes.map(() => null);\n }\n try {\n const result = await Array.fromAsync(handleCopyMoveNodesTo(nodes, target.destination, target.action));\n return result.map(() => true);\n }\n catch (error) {\n logger.error(`Failed to ${target.action} node`, { nodes, error });\n if (error instanceof HintException && !!error.message) {\n showError(error.message);\n // Silent action as we handle the toast\n return nodes.map(() => null);\n }\n // We need to keep the selection on error!\n // So we do not return null, and for batch action\n return nodes.map(() => false);\n }\n },\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 *\n * @param nodes The nodes to copy/move\n * @param destination The destination to copy/move the nodes to\n * @param method The method to use for the copy/move\n * @param overwrite Whether to overwrite the destination if it exists\n * @yields {AsyncGenerator} A promise that resolves when the copy/move is done\n */\nexport async function* handleCopyMoveNodesTo(nodes, 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 && nodes.some((node) => 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 (nodes.some((node) => `${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 const nameMapping = new Map();\n // Check for conflicts if we do not want to overwrite\n if (!overwrite) {\n const otherNodes = (await getContents(destination.path)).contents;\n const conflicts = getConflicts(nodes, otherNodes);\n const nodesToRename = [];\n if (conflicts.length > 0) {\n if (method === MoveCopyAction.MOVE) {\n // Let the user choose what to do with the conflicting files\n const content = otherNodes.filter((n) => conflicts.some((c) => c.basename === n.basename));\n const result = await openConflictPicker(destination.path, conflicts, content);\n if (!result) {\n // User cancelled\n return;\n }\n nodes = nodes.filter((n) => !result.skipped.includes(n));\n nodesToRename.push(...result.renamed);\n }\n else {\n // for COPY we always rename conflicting files\n nodesToRename.push(...conflicts);\n }\n const usedNames = [...otherNodes, ...nodes.filter((n) => !conflicts.includes(n))].map((n) => n.basename);\n for (const node of nodesToRename) {\n const newName = getUniqueName(node.basename, usedNames, { ignoreFileExtension: node.type === FileType.Folder });\n nameMapping.set(node.source, newName);\n usedNames.push(newName); // add the new name to avoid duplicates for following re-namimgs\n }\n }\n }\n const actionFinished = createLoadingNotification(method, nodes.map((node) => node.basename), destination.path);\n const queue = getQueue();\n try {\n for (const node of nodes) {\n // Set loading state\n Vue.set(node, 'status', NodeStatus.LOADING);\n yield queue.add(async () => {\n try {\n const client = getClient();\n const currentPath = join(defaultRootPath, node.path);\n const destinationPath = join(defaultRootPath, destination.path, nameMapping.get(node.source) ?? node.basename);\n if (method === MoveCopyAction.COPY) {\n await client.copyFile(currentPath, destinationPath);\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(destinationPath, {\n details: true,\n data: getDefaultPropfind(),\n });\n emit('files:node:created', resultToNode(data));\n }\n }\n else {\n await client.moveFile(currentPath, destinationPath);\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 logger.debug(`Error while trying to ${method === MoveCopyAction.COPY ? 'copy' : 'move'} node`, { node, error });\n if (isAxiosError(error)) {\n if (error.response?.status === 412) {\n throw new HintException(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 HintException(t('files', 'The files are locked'));\n }\n else if (error.response?.status === 404) {\n throw new HintException(t('files', 'The file does not exist anymore'));\n }\n else if ('response' in error && error.response) {\n const parser = new DOMParser();\n const text = await error.response.text();\n const message = parser.parseFromString(text ?? '', 'text/xml')\n .querySelector('message')?.textContent;\n if (message) {\n throw new HintException(message);\n }\n }\n }\n throw error;\n }\n finally {\n Vue.set(node, 'status', undefined);\n }\n });\n }\n }\n finally {\n actionFinished();\n }\n}\n/**\n * Return the action that is possible for the given nodes\n *\n * @param nodes The nodes to check against\n * @return The action that is possible for the given nodes\n */\nfunction 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 *\n * @param mode The move or copy mode\n * @param sources Names of the nodes that are copied / moved\n * @param destination Destination path\n * @return Function to hide the notification\n */\nfunction createLoadingNotification(mode, sources, destination) {\n const text = mode === MoveCopyAction.MOVE\n ? (sources.length === 1\n ? t('files', 'Moving \"{source}\" to \"{destination}\" …', { source: sources[0], destination })\n : t('files', 'Moving {count} files to \"{destination}\" …', { count: sources.length, destination }))\n : (sources.length === 1\n ? t('files', 'Copying \"{source}\" to \"{destination}\" …', { source: sources[0], destination })\n : t('files', 'Copying {count} files to \"{destination}\" …', { count: sources.length, destination }));\n const toast = showLoading(text);\n return () => toast && toast.hideToast();\n}\n/**\n * Open a file picker for the given action\n *\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 .setCanPick((n) => {\n const hasCreatePermissions = (n.permissions & Permission.CREATE) === Permission.CREATE;\n return hasCreatePermissions;\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 }, { escape: false, sanitize: false }) : t('files', 'Copy'),\n variant: 'primary',\n icon: CopyIconSvg,\n async callback(destination) {\n resolve({\n destination: destination[0],\n action: MoveCopyAction.COPY,\n });\n },\n });\n }\n // Invalid MOVE targets (but valid copy targets)\n if (dirnames.includes(path)) {\n // This file/folder is already in that directory\n return buttons;\n }\n if (paths.includes(path)) {\n // You cannot move a file/folder onto itself\n return buttons;\n }\n if (selection.some((node) => (node.permissions & Permission.CREATE) === 0)) {\n // Missing 'CREATE' permissions for selected destination\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 variant: 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}\n","/*!\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { showInfo, showWarning } from '@nextcloud/dialogs';\nimport { emit } from '@nextcloud/event-bus';\nimport { defaultRemoteURL, defaultRootPath, getClient, getDefaultPropfind, resultToNode } from '@nextcloud/files/dav';\nimport { t } from '@nextcloud/l10n';\nimport { join } from '@nextcloud/paths';\nimport { openConflictPicker } from '@nextcloud/upload';\nimport { logger } from '../utils/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 _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 *\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 *\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 *\n * @param entry the entry to traverse\n */\nexport async function traverseTree(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 *\n * @param directory the directory to read\n */\nfunction 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}\n/**\n * @param path - The path relative to the destination root\n * @param destination - The destination folder. When provided, directories are created relative\n * to its source URL instead of the default user root. This is needed for uploads into\n * non-default locations like team folders.\n */\nexport async function createDirectoryIfNotExists(path, destination) {\n const davUrl = destination?.source ?? join(defaultRemoteURL, defaultRootPath);\n const davRoot = destination?.root ?? defaultRootPath;\n const davClient = getClient(davUrl);\n const dirExists = await davClient.exists(path);\n if (!dirExists) {\n logger.debug('Directory does not exist, creating it', { path, davUrl });\n await davClient.createDirectory(path, { recursive: true });\n const stat = await davClient.stat(path, { details: true, data: getDefaultPropfind() });\n emit('files:node:created', resultToNode(stat.data, davRoot, davUrl));\n }\n}\n/**\n * Resolve conflicts between existing files and incoming files\n *\n * @param files - incoming files\n * @param destination - destination folder\n * @param contents - existing contents of the destination folder\n */\nexport async function resolveConflict(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 && uploads.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 // User cancelled\n logger.warn('User cancelled the upload', { error });\n showWarning(t('files', 'Upload cancelled'));\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 { showError, showInfo, showSuccess, showWarning } from '@nextcloud/dialogs';\nimport { t } from '@nextcloud/l10n';\nimport { join } from '@nextcloud/paths';\nimport { getUploader, hasConflict } from '@nextcloud/upload';\nimport { handleCopyMoveNodesTo, HintException } from '../actions/moveOrCopyAction.ts';\nimport { MoveCopyAction } from '../actions/moveOrCopyActionUtils.ts';\nimport { logger } from '../utils/logger.ts';\nimport { createDirectoryIfNotExists, Directory, resolveConflict, traverseTree } from './DropServiceUtils.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 async function dataTransferToFileTree(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}\n/**\n * Handle dropping external files\n *\n * @param root - The root directory which should be uploaded\n * @param destination - The destination folder\n * @param contents - The contents of the destination folder\n */\nexport async function onDropExternalFiles(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 if (root.contents.length === 0) {\n // user cancelled the upload\n return [];\n }\n }\n else 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 try {\n logger.debug('Processing directory', { relativePath, destination });\n await createDirectoryIfNotExists(relativePath, destination);\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('Unable to create the directory', { error, relativePath, 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}\n/**\n * Handle dropping internal files\n *\n * @param nodes - The nodes being dropped\n * @param destination - The destination folder\n * @param contents - The contents of the destination folder\n * @param isCopy - Whether the operation is a copy\n */\nexport async function onDropInternalFiles(nodes, destination, contents, isCopy = false) {\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 try {\n const promises = Array.fromAsync(handleCopyMoveNodesTo(nodes, destination, isCopy ? MoveCopyAction.COPY : MoveCopyAction.MOVE));\n await promises;\n logger.debug('Files copy/move successful');\n showSuccess(isCopy ? t('files', 'Files copied successfully') : t('files', 'Files moved successfully'));\n }\n catch (error) {\n logger.error('Error while processing dropped files', { error });\n if (error instanceof HintException) {\n showError(error.message);\n }\n else {\n showError(isCopy ? t('files', 'Some files could not be copied') : t('files', 'Some files could not be moved'));\n }\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 Vue from 'vue';\nexport const useDragAndDropStore = defineStore('dragging', {\n state: () => ({\n dragging: [],\n }),\n actions: {\n /**\n * Set the selection of files being dragged currently\n *\n * @param selection array of node sources\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 { 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 *\n * @param selection\n */\n set(selection = []) {\n Vue.set(this, 'selected', [...new Set(selection)]);\n },\n /**\n * Set the last selected index\n *\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","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getUploader } from '@nextcloud/upload';\nimport { defineStore } from 'pinia';\nlet uploader;\n/**\n *\n * @param args\n */\nexport function useUploaderStore(...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 mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.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-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BreadCrumbs.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!./BreadCrumbs.vue?vue&type=style&index=0&id=04c7dec6&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=04c7dec6&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=04c7dec6&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=04c7dec6&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 \"04c7dec6\",\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',{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\n","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\"","import { render, staticRenderFns } from \"./TrayArrowDown.vue?vue&type=template&id=5dbf2618\"\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-6.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-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DragAndDropNotice.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!./DragAndDropNotice.vue?vue&type=style&index=0&id=3920de03&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=3920de03&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=3920de03&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=3920de03&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 \"3920de03\",\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',{class:_vm.$style.fileListFilters,attrs:{\"data-test-id\":\"files-list-filters\"}},[(_setup.isWide)?_vm._l((_setup.visualFilters),function(filter){return _c(_setup.NcPopover,{key:filter.id,attrs:{\"boundary\":_setup.boundary},scopedSlots:_vm._u([{key:\"trigger\",fn:function(){return [_c(_setup.NcButton,{attrs:{\"variant\":\"tertiary\"},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"svg\":filter.iconSvgInline}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(filter.displayName)+\"\\n\\t\\t\\t\\t\")])]},proxy:true},{key:\"default\",fn:function(){return [_c('div',{class:_vm.$style.fileListFilters__popoverContainer},[_c(filter.tagName,{tag:\"component\",domProps:{\"filter\":filter}})],1)]},proxy:true}],null,true)})}):_c(_setup.NcPopover,{attrs:{\"boundary\":_setup.boundary,\"popup-role\":_setup.selectedFilter ? 'dialog' : 'menu'},on:{\"update:shown\":function($event){_setup.selectedFilter = undefined}},scopedSlots:_vm._u([{key:\"trigger\",fn:function(){return [_c(_setup.NcButton,{attrs:{\"id\":_setup.menuTriggerId,\"aria-label\":_setup.t('files', 'Filters'),\"pressed\":_setup.hasActiveFilters,\"variant\":\"tertiary\"},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiFilterVariant}})]},proxy:true}])})]},proxy:true},{key:\"default\",fn:function(){return [(_setup.selectedFilter)?_c('div',{class:_vm.$style.fileListFilters__popoverFilterView},[_c(_setup.NcButton,{attrs:{\"wide\":\"\",\"variant\":\"tertiary\"},on:{\"click\":function($event){_setup.selectedFilter = undefined}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"directional\":\"\",\"path\":_setup.mdiArrowLeft}})]},proxy:true}],null,false,1066031977)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_setup.t('files', 'Back to filters'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),_c(_setup.selectedFilter.tagName,{tag:\"component\",domProps:{\"filter\":_setup.selectedFilter}})],1):[_c('ul',{class:_vm.$style.fileListFilters__popoverContainer,attrs:{\"aria-labelledby\":_setup.menuTriggerId,\"role\":\"menu\"}},_vm._l((_setup.visualFilters),function(filter){return _c('li',{key:filter.id,attrs:{\"role\":\"presentation\"}},[_c(_setup.NcButton,{attrs:{\"role\":\"menuitem\",\"alignment\":\"start\",\"variant\":\"tertiary\",\"wide\":\"\"},on:{\"click\":function($event){_setup.selectedFilter = filter}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"svg\":filter.iconSvgInline}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(filter.displayName)+\"\\n\\t\\t\\t\\t\\t\\t\")])],1)}),0)]]},proxy:true}])})],2)\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 { emit, subscribe } from '@nextcloud/event-bus';\nimport { getFileListFilters, getFilesRegistry } from '@nextcloud/files';\nimport { defineStore } from 'pinia';\nimport { computed, ref } from 'vue';\nimport { logger } from '../utils/logger.ts';\n/**\n * Check if the given value is an instance file list filter with mount function\n *\n * @param value The filter to check\n */\nfunction isFileListFilterWithUi(value) {\n return 'tagName' in value;\n}\nexport const useFiltersStore = defineStore('filters', () => {\n const chips = ref({});\n const filters = ref([]);\n /**\n * Currently active filter chips\n */\n const activeChips = computed(() => Object.values(chips.value).flat());\n /**\n * Filters sorted by order\n */\n const sortedFilters = computed(() => filters.value.sort((a, b) => a.order - b.order));\n /**\n * All filters that provide a UI for visual controlling the filter state\n */\n const filtersWithUI = computed(() => sortedFilters.value.filter(isFileListFilterWithUi));\n /**\n * Register a new filter on the store.\n * This will subscribe the store to the filters events.\n *\n * @param filter The filter to add\n */\n function addFilter(filter) {\n filter.addEventListener('update:chips', onFilterUpdateChips);\n filter.addEventListener('update:filter', onFilterUpdate);\n filters.value.push(filter);\n logger.debug('New file list filter registered', { id: filter.id });\n }\n /**\n * Unregister a filter from the store.\n * This will remove the filter from the store and unsubscribe the store from the filer events.\n *\n * @param filterId Id of the filter to remove\n */\n function removeFilter(filterId) {\n const index = filters.value.findIndex(({ id }) => id === filterId);\n if (index > -1) {\n const [filter] = filters.value.splice(index, 1);\n filter.removeEventListener('update:chips', onFilterUpdateChips);\n filter.removeEventListener('update:filter', onFilterUpdate);\n logger.debug('Files list filter unregistered', { id: filterId });\n }\n }\n /**\n * Event handler for filter update events\n *\n */\n function onFilterUpdate() {\n emit('files:filters:changed');\n }\n /**\n * Event handler for filter chips updates\n *\n * @param event The update event\n */\n function onFilterUpdateChips(event) {\n const id = event.target.id;\n chips.value = {\n ...chips.value,\n [id]: [...event.detail],\n };\n logger.debug('File list filter chips updated', { filter: id, chips: event.detail });\n }\n initialize();\n return {\n // state\n chips,\n filters,\n filtersWithUI,\n // getters / computed\n activeChips,\n sortedFilters,\n };\n /**\n * Initialize the store by registering event listeners and loading initial filters.\n *\n * @internal\n */\n function initialize() {\n const registry = getFilesRegistry();\n const initialFilters = getFileListFilters();\n // handle adding and removing filters after initialization\n registry.addEventListener('register:listFilter', (event) => {\n addFilter(event.detail);\n });\n registry.addEventListener('unregister:listFilter', (event) => {\n removeFilter(event.detail);\n });\n // register the initial filters\n for (const filter of initialFilters) {\n addFilter(filter);\n }\n // subscribe to file list view changes to reset the filters\n subscribe('files:navigation:changed', onViewChanged);\n }\n /**\n * Event handler that resets all filters if the file list view was changed.\n *\n * @internal\n */\n function onViewChanged() {\n logger.debug('Reset all file list filters - view changed');\n for (const filter of filters.value) {\n if (filter.reset !== undefined) {\n filter.reset();\n }\n }\n }\n});\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.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-6.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??clonedRuleSet-3.use[1]!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileListFilters.vue?vue&type=style&index=0&id=4b9fd4ac&prod&module=true&lang=css\";\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??clonedRuleSet-3.use[1]!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileListFilters.vue?vue&type=style&index=0&id=4b9fd4ac&prod&module=true&lang=css\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FileListFilters.vue?vue&type=template&id=4b9fd4ac\"\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=4b9fd4ac&prod&module=true&lang=css\"\n\n\n\n\nfunction injectStyles (context) {\n \n this[\"$style\"] = (style0.locals || style0)\n\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 injectStyles,\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('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\tisMimeAvailable: _vm.isMimeAvailable,\n\t\tisMtimeAvailable: _vm.isMtimeAvailable,\n\t\tisSizeAvailable: _vm.isSizeAvailable,\n\t\tnodes: _vm.nodes,\n\t},\"scroll-to-index\":_vm.scrollToIndex,\"caption\":_vm.caption},scopedSlots:_vm._u([{key:\"filters\",fn:function(){return [_c('FileListFilterToSearch'),_c('FileListFilterChips')]},proxy:true},(!_vm.isNoneSelected)?{key:\"header-overlay\",fn:function(){return [_c('span',{staticClass:\"files-list__selected\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.n('files', '{count} selected', '{count} selected', _vm.selectedNodes.length, { count: _vm.selectedNodes.length }))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('FilesListTableHeaderActions',{attrs:{\"current-view\":_vm.currentView,\"selected-nodes\":_vm.selectedNodes}})]},proxy:true}:null,{key:\"before\",fn:function(){return _vm._l((_vm.headers),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:{\"is-mime-available\":_vm.isMimeAvailable,\"is-mtime-available\":_vm.isMtimeAvailable,\"is-size-available\":_vm.isSizeAvailable,\"nodes\":_vm.nodes}})]},proxy:true},{key:\"empty\",fn:function(){return [_vm._t(\"empty\")]},proxy:true},{key:\"footer\",fn:function(){return [_c('FilesListTableFooter',{attrs:{\"current-view\":_vm.currentView,\"is-mime-available\":_vm.isMimeAvailable,\"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 }","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-6.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-6.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=5eb63caa\"\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:{\"active-folder\":_vm.activeStore.activeFolder,\"active-view\":_vm.activeStore.activeView,\"render\":action.renderInline,\"source\":_vm.source}})}),_vm._v(\" \"),_c('NcActions',{ref:\"actionsMenu\",attrs:{\"boundaries-element\":_vm.getBoundariesElement,\"container\":_vm.getBoundariesElement,\"force-name\":true,\"variant\":\"tertiary\",\"force-menu\":_vm.enabledInlineActions.length === 0 /* forceMenu only if no inline actions */,\"inline\":_vm.enabledInlineActions.length,\"open\":_vm.openedMenu},on:{\"close\":_vm.onMenuClose,\"closed\":_vm.onMenuClosed}},[_vm._l((_vm.renderedNonDestructiveActions),function(action,index){return _c('NcActionButton',{key:action.id,ref:`action-${action.id}`,refInFor:true,staticClass:\"files-list__row-action\",class:{\n\t\t\t\t[`files-list__row-action-${action.id}`]: true,\n\t\t\t\t'files-list__row-action--inline': index < _vm.enabledInlineActions.length,\n\t\t\t\t'files-list__row-action--menu': _vm.isValidMenu(action),\n\t\t\t},attrs:{\"close-after-click\":!_vm.isValidMenu(action),\"data-cy-files-list-row-action\":action.id,\"is-menu\":_vm.isValidMenu(action),\"aria-label\":action.title?.(_vm.actionContext),\"title\":action.title?.(_vm.actionContext)},on:{\"click\":function($event){return _vm.onActionClick(action)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.isLoadingAction(action))?_c('NcLoadingIcon'):_c('NcIconSvgWrapper',{staticClass:\"files-list__row-action-icon\",attrs:{\"svg\":action.iconSvgInline(_vm.actionContext)}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.actionDisplayName(action))+\"\\n\\t\\t\")])}),_vm._v(\" \"),(_vm.renderedDestructiveActions.length > 0)?[_c('NcActionSeparator'),_vm._v(\" \"),_vm._l((_vm.renderedDestructiveActions),function(action,index){return _c('NcActionButton',{key:action.id,ref:`action-${action.id}`,refInFor:true,staticClass:\"files-list__row-action files-list__row-action--destructive\",class:{\n\t\t\t\t\t[`files-list__row-action-${action.id}`]: true,\n\t\t\t\t\t'files-list__row-action--inline': index < _vm.enabledInlineActions.length,\n\t\t\t\t\t'files-list__row-action--menu': _vm.isValidMenu(action),\n\t\t\t\t},attrs:{\"close-after-click\":!_vm.isValidMenu(action),\"data-cy-files-list-row-action\":action.id,\"is-menu\":_vm.isValidMenu(action),\"aria-label\":action.title?.(_vm.actionContext),\"title\":action.title?.(_vm.actionContext)},on:{\"click\":function($event){return _vm.onActionClick(action)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.isLoadingAction(action))?_c('NcLoadingIcon'):_c('NcIconSvgWrapper',{staticClass:\"files-list__row-action-icon\",attrs:{\"svg\":action.iconSvgInline(_vm.actionContext)}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.actionDisplayName(action))+\"\\n\\t\\t\\t\")])})]:_vm._e(),_vm._v(\" \"),(_vm.openedSubmenu && _vm.enabledSubmenuActions[_vm.openedSubmenu?.id])?[_c('NcActionButton',{staticClass:\"files-list__row-action-back\",attrs:{\"data-cy-files-list-row-action\":\"menu-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.t('files', 'Back'))+\"\\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,\"aria-label\":action.title?.(_vm.actionContext),\"title\":action.title?.(_vm.actionContext)},on:{\"click\":function($event){return _vm.onActionClick(action)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.isLoadingAction(action))?_c('NcLoadingIcon'):_c('NcIconSvgWrapper',{attrs:{\"svg\":action.iconSvgInline(_vm.actionContext)}})]},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 }","\n\n","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=16833c02\"\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 }","/**\n * SPDX-FileCopyrightText: 2025 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 openedSubmenu: null,\n };\n },\n computed: {\n enabledSubmenuActions() {\n return this.enabledFileActions\n .reduce((record, action) => {\n if (action.parent !== undefined) {\n if (!record[action.parent]) {\n record[action.parent] = [];\n }\n record[action.parent].push(action);\n }\n return record;\n }, {});\n },\n },\n methods: {\n /**\n * Check if a menu is valid, meaning it is\n * defined and has at least one action\n *\n * @param action The action to check\n */\n isValidMenu(action) {\n return this.enabledSubmenuActions[action.id]?.length > 0;\n },\n async onBackToMenuClick(action) {\n if (!action) {\n return;\n }\n this.openedSubmenu = null;\n // Wait for first render\n await this.$nextTick();\n // Focus the previous menu action button\n this.$nextTick(() => {\n // Focus the action button, test both batch and single action references\n // as this mixin is used in both single and batch actions.\n const menuAction = this.$refs[`action-batch-${action.id}`]?.[0]\n || this.$refs[`action-${action.id}`]?.[0];\n if (menuAction) {\n menuAction.$el.querySelector('button')?.focus();\n }\n });\n },\n },\n});\n","import { showError, showSuccess } from '@nextcloud/dialogs';\nimport { NodeStatus } from '@nextcloud/files';\nimport { t } from '@nextcloud/l10n';\nimport Vue from 'vue';\nimport { useActiveStore } from '../store/active.ts';\nimport { logger } from '../utils/logger.ts';\n/**\n * Execute an action on the current active node\n *\n * @param action The action to execute\n */\nexport async function executeAction(action) {\n const activeStore = useActiveStore();\n const currentFolder = activeStore.activeFolder;\n const currentNode = activeStore.activeNode;\n const currentView = activeStore.activeView;\n if (!currentFolder || !currentNode || !currentView) {\n logger.error('No active folder, node or view', { folder: currentFolder, node: currentNode, view: currentView });\n return;\n }\n if (currentNode.status === NodeStatus.LOADING) {\n logger.debug('Node is already loading', { node: currentNode });\n return;\n }\n // @ts-expect-error _children is private\n const contents = currentFolder?._children || [];\n const context = {\n nodes: [currentNode],\n view: currentView,\n folder: currentFolder,\n contents,\n };\n if (!action.enabled(context)) {\n logger.debug('Action is not not available for the current context', { action, node: currentNode, view: currentView });\n return;\n }\n let displayName = action.id;\n try {\n displayName = action.displayName(context) || displayName;\n }\n catch (error) {\n logger.error('Error while getting action display name', { action, error });\n }\n try {\n // Set the loading marker\n Vue.set(currentNode, 'status', NodeStatus.LOADING);\n activeStore.activeAction = action;\n const success = await action.exec(context);\n // If the action returns null, we stay silent\n if (success === null || success === undefined) {\n return;\n }\n if (success) {\n showSuccess(t('files', '{displayName}: done', { displayName }));\n return;\n }\n showError(t('files', '{displayName}: failed', { displayName }));\n }\n catch (error) {\n logger.error('Error while executing action', { action, error });\n showError(t('files', '{displayName}: failed', { displayName }));\n }\n finally {\n // Reset the loading marker\n Vue.set(currentNode, 'status', undefined);\n activeStore.activeAction = undefined;\n }\n}\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.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-6.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=3d55d6ab&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=3d55d6ab&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=3d55d6ab&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!./FileEntryActions.vue?vue&type=style&index=1&id=3d55d6ab&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FileEntryActions.vue?vue&type=template&id=3d55d6ab&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=3d55d6ab&prod&lang=scss\"\nimport style1 from \"./FileEntryActions.vue?vue&type=style&index=1&id=3d55d6ab&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 \"3d55d6ab\",\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-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,\"model-value\":_vm.isSelected,\"data-cy-files-list-row-checkbox\":\"\"},on:{\"update:modelValue\":_vm.onSelectionChange}})],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-6.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-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntryCheckbox.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 { 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 *\n * @param args\n */\nexport function useKeyboardStore(...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=4861ad0f\"\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\":\"\",\"required\":\"\",\"minlength\":1,\"enterkeyhint\":\"done\"},on:{\"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)}},model:{value:(_vm.newName),callback:function ($$v) {_vm.newName=$$v},expression:\"newName\"}})],1):_c(_vm.linkTo.is,_vm._b({ref:\"basename\",tag:\"component\",staticClass:\"files-list__row-name-link\",attrs:{\"data-cy-files-list-row-name-link\":\"\"}},'component',_vm.linkTo.params,false),[_c('span',{staticClass:\"files-list__row-name-text\",attrs:{\"dir\":\"auto\"}},[_c('span',{staticClass:\"files-list__row-name-\",domProps:{\"textContent\":_vm._s(_vm.basename)}}),_vm._v(\" \"),(_vm.userConfigStore.userConfig.show_files_extensions)?_c('span',{staticClass:\"files-list__row-name-ext\",domProps:{\"textContent\":_vm._s(_vm.extension)}}):_vm._e()])])\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 axios, { isAxiosError } from '@nextcloud/axios';\nimport { emit, subscribe } from '@nextcloud/event-bus';\nimport { FileType, NodeStatus } from '@nextcloud/files';\nimport { t } from '@nextcloud/l10n';\nimport { basename, dirname, extname } from '@nextcloud/paths';\nimport { spawnDialog } from '@nextcloud/vue/functions/dialog';\nimport { defineStore } from 'pinia';\nimport Vue, { defineAsyncComponent, ref } from 'vue';\nimport { fetchNode } from '../services/WebdavClient.ts';\nimport { logger } from '../utils/logger.ts';\nimport { useUserConfigStore } from './userconfig.ts';\nexport const useRenamingStore = defineStore('renaming', () => {\n /**\n * The currently renamed node\n */\n const renamingNode = ref();\n /**\n * The new name of the currently renamed node\n */\n const newNodeName = ref('');\n /**\n * Internal flag to only allow calling `rename` once.\n */\n const isRenaming = ref(false);\n /**\n * Execute the renaming.\n * This will rename the node set as `renamingNode` to the configured new name `newName`.\n *\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 function rename() {\n if (renamingNode.value === undefined) {\n throw new Error('No node is currently being renamed');\n }\n const oldName = renamingNode.value.basename;\n let newName = newNodeName.value.trim();\n if (newName === oldName) {\n return false;\n }\n // Only rename once so we use this as some kind of mutex\n if (isRenaming.value) {\n return false;\n }\n isRenaming.value = true;\n const userConfig = useUserConfigStore();\n let node = renamingNode.value;\n Vue.set(node, 'status', NodeStatus.LOADING);\n try {\n if (userConfig.userConfig.show_dialog_file_extension) {\n const oldExtension = extname(oldName);\n const newExtension = extname(newName);\n // Check for extension change for files\n if (node.type === FileType.File\n && oldExtension !== newExtension\n && !(await showFileExtensionDialog(oldExtension, newExtension))) {\n // user selected to use the old extension\n newName = basename(newName, newExtension) + oldExtension;\n if (oldName === newName) {\n return false;\n }\n }\n if (!userConfig.userConfig.show_hidden\n && newName.startsWith('.')\n && !oldName.startsWith('.')\n && !(await showHiddenFileDialog(newName))) {\n return false;\n }\n }\n const oldEncodedSource = node.encodedSource;\n // rename the node\n node.rename(newName);\n logger.debug('Moving file to', { destination: node.encodedSource, oldEncodedSource });\n // create MOVE request\n await axios({\n method: 'MOVE',\n url: oldEncodedSource,\n headers: {\n Destination: node.encodedSource,\n Overwrite: 'F',\n },\n });\n // Update mime type if extension changed\n // as other related informations might have changed\n // on the backend but it is really hard to know on the front\n if (extname(oldName) !== extname(newName)) {\n node = await fetchNode(node.path);\n }\n // Success 🎉\n emit('files:node:updated', node);\n emit('files:node:renamed', node);\n emit('files:node:moved', {\n node,\n oldSource: `${dirname(node.source)}/${oldName}`,\n });\n // Reset the state not changed\n if (renamingNode.value === node) {\n $reset();\n }\n return true;\n }\n catch (error) {\n logger.error('Error while renaming file', { error });\n // Rename back as it failed\n node.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 }), { cause: error });\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(renamingNode.value.dirname),\n }), { cause: error });\n }\n }\n // Unknown error\n throw new Error(t('files', 'Could not rename \"{oldName}\"', { oldName }), { cause: error });\n }\n finally {\n Vue.set(node, 'status', undefined);\n isRenaming.value = false;\n }\n }\n /**\n * Reset the store state\n */\n function $reset() {\n newNodeName.value = '';\n renamingNode.value = undefined;\n }\n // Make sure we only register the listeners once\n subscribe('files:node:rename', (node) => {\n renamingNode.value = node;\n newNodeName.value = node.basename;\n });\n return {\n $reset,\n newNodeName,\n rename,\n renamingNode,\n };\n});\n/**\n * Show a dialog asking user for confirmation about changing the file extension.\n *\n * @param oldExtension the old file name extension\n * @param newExtension the new file name extension\n */\nasync function showFileExtensionDialog(oldExtension, newExtension) {\n const { promise, resolve } = Promise.withResolvers();\n await spawnDialog(defineAsyncComponent(() => import('../views/DialogConfirmFileExtension.vue')), { oldExtension, newExtension }, resolve);\n return promise;\n}\n/**\n * Show a dialog asking user for confirmation about renaming a file to a hidden file.\n *\n * @param filename - The new filename\n */\nasync function showHiddenFileDialog(filename) {\n const { promise, resolve } = Promise.withResolvers();\n await spawnDialog(defineAsyncComponent(() => import('../views/DialogConfirmFileHidden.vue')), { filename }, resolve);\n return promise;\n}\n","/*!\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 *\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-6.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-6.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=ab3b59e0&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=ab3b59e0&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=ab3b59e0&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=ab3b59e0&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 \"ab3b59e0\",\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:\"component\",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',{key:_vm.source.fileid,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.isRecentView && _vm.isRecentlyCreated)?_c('span',{staticClass:\"files-list__row-icon-recently-created\"},[_vm._m(4)],1):_vm._e(),_vm._v(\" \"),(_vm.fileOverlay)?_c(_vm.fileOverlay,{tag:\"component\",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},function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('RecentlyCreatedIcon')\n}]\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./AccountGroup.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./AccountGroup.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./AccountGroup.vue?vue&type=template&id=fa2b1464\"\nimport script from \"./AccountGroup.vue?vue&type=script&lang=js\"\nexport * from \"./AccountGroup.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-group-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,5.5A3.5,3.5 0 0,1 15.5,9A3.5,3.5 0 0,1 12,12.5A3.5,3.5 0 0,1 8.5,9A3.5,3.5 0 0,1 12,5.5M5,8C5.56,8 6.08,8.15 6.53,8.42C6.38,9.85 6.8,11.27 7.66,12.38C7.16,13.34 6.16,14 5,14A3,3 0 0,1 2,11A3,3 0 0,1 5,8M19,8A3,3 0 0,1 22,11A3,3 0 0,1 19,14C17.84,14 16.84,13.34 16.34,12.38C17.2,11.27 17.62,9.85 17.47,8.42C17.92,8.15 18.44,8 19,8M5.5,18.25C5.5,16.18 8.41,14.5 12,14.5C15.59,14.5 18.5,16.18 18.5,18.25V20H5.5V18.25M0,20V18.5C0,17.11 1.89,15.94 4.45,15.6C3.86,16.28 3.5,17.22 3.5,18.25V20H0M24,20H20.5V18.25C20.5,17.22 20.14,16.28 19.55,15.6C22.11,15.94 24,17.11 24,18.5V20Z\"}},[(_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!./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\"","\n\n","import { render, staticRenderFns } from \"./AccountPlus.vue?vue&type=template&id=53a26aa0\"\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 }","\n\n","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\"","import { render, staticRenderFns } from \"./FolderOpen.vue?vue&type=template&id=ae0c5fc0\"\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\"","\n\n","import { render, staticRenderFns } from \"./Key.vue?vue&type=template&id=499b3412\"\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 }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./NetworkOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./NetworkOutline.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./NetworkOutline.vue?vue&type=template&id=8f00cb50\"\nimport script from \"./NetworkOutline.vue?vue&type=script&lang=js\"\nexport * from \"./NetworkOutline.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-outline-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,20A1,1 0 0,0 14,19H13V17H17A2,2 0 0,0 19,15V5A2,2 0 0,0 17,3H7A2,2 0 0,0 5,5V15A2,2 0 0,0 7,17H11V19H10A1,1 0 0,0 9,20H2V22H9A1,1 0 0,0 10,23H14A1,1 0 0,0 15,22H22V20H15M7,15V5H17V15H7Z\"}},[(_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\"","\n\n","import { render, staticRenderFns } from \"./PlayCircle.vue?vue&type=template&id=3cc1493c\"\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 \"-!../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\"","\n\n","import { render, staticRenderFns } from \"./Tag.vue?vue&type=template&id=356230e0\"\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 \"-!../../../../../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\n\n\n","import { render, staticRenderFns } from \"./CollectivesIcon.vue?vue&type=template&id=dc7ddfee\"\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-6.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-6.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=4505d262&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=4505d262&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=4505d262&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=4505d262&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 \"4505d262\",\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-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RecentlyCreatedIcon.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-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RecentlyCreatedIcon.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcIconSvgWrapper',{staticClass:\"recently-created-marker-icon\",attrs:{\"name\":_vm.t('files', 'Recently created'),\"path\":_vm.mdiPlus}})\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!./RecentlyCreatedIcon.vue?vue&type=style&index=0&id=251f6582&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!./RecentlyCreatedIcon.vue?vue&type=style&index=0&id=251f6582&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./RecentlyCreatedIcon.vue?vue&type=template&id=251f6582&scoped=true\"\nimport script from \"./RecentlyCreatedIcon.vue?vue&type=script&lang=ts\"\nexport * from \"./RecentlyCreatedIcon.vue?vue&type=script&lang=ts\"\nimport style0 from \"./RecentlyCreatedIcon.vue?vue&type=style&index=0&id=251f6582&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 \"251f6582\",\n null\n \n)\n\nexport default component.exports","/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { FileType } from '@nextcloud/files';\nimport { generateUrl } from '@nextcloud/router';\nimport { getSharingToken, isPublicShare } from '@nextcloud/sharing/public';\nimport { toValue } from '@vueuse/core';\nimport { computed } from 'vue';\n/**\n * Get the preview URL for a given node.\n *\n * @param node - The node to get the preview for\n * @param options - The preview options\n * @param options.crop - Whether to crop the preview (default: true)\n * @param options.fallback - Whether to use a mime type icon as fallback (default: true)\n * @param options.size - The size of the preview in pixels (default: 128). Can be a number or a tuple [width, height]\n */\nexport function usePreviewImage(node, options = {}) {\n return computed(() => {\n const source = toValue(node);\n if (!source) {\n return;\n }\n if (source.type === FileType.Folder) {\n return;\n }\n const fallback = toValue(options).fallback ?? true;\n if (source.attributes['has-preview'] !== true\n && source.mime !== undefined\n && source.mime !== 'application/octet-stream') {\n if (!fallback) {\n return;\n }\n const previewUrl = generateUrl('/core/mimeicon?mime={mime}', {\n mime: source.mime,\n });\n const url = new URL(window.location.origin + previewUrl);\n return url.href;\n }\n const crop = toValue(options).crop ?? true;\n const [sizeX, sizeY] = [toValue(options).size ?? 128].flat();\n try {\n const previewUrl = source.attributes.previewUrl\n || (isPublicShare()\n ? generateUrl('/apps/files_sharing/publicpreview/{token}?file={file}', {\n token: getSharingToken(),\n file: source.path,\n })\n : generateUrl('/core/preview?fileId={fileid}', {\n fileid: String(source.fileid),\n }));\n const url = new URL(window.location.origin + previewUrl);\n // Request tiny previews\n url.searchParams.set('x', sizeX.toString());\n url.searchParams.set('y', (sizeY ?? sizeX).toString());\n url.searchParams.set('mimeFallback', fallback.toString());\n // Etag to force refresh preview on change\n const etag = source.attributes.etag || source.mtime?.getTime() || '';\n url.searchParams.set('v', etag.slice(0, 6));\n // Handle cropping\n url.searchParams.set('a', crop ? '0' : '1');\n return url.href;\n }\n catch {\n return;\n }\n });\n}\n","import { registerDavProperty } from '@nextcloud/files/dav';\n/**\n *\n */\nexport function initLivePhotos() {\n registerDavProperty('nc:metadata-files-live-photo', { nc: 'http://nextcloud.org/ns' });\n}\n/**\n * @param node - The node\n */\nexport function isLivePhoto(node) {\n return node.attributes['metadata-files-live-photo'] !== undefined;\n}\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.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-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntryPreview.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./FileEntryPreview.vue?vue&type=template&id=7205bc26\"\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","/*!\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getFileActions, getFilesRegistry } from '@nextcloud/files';\nimport { toValue } from '@vueuse/core';\nimport { computed, readonly, ref } from 'vue';\nconst actions = ref();\n/**\n * Get the registered and sorted file actions.\n */\nexport function useFileActions() {\n if (!actions.value) {\n // if not initialized by other component yet, initialize and subscribe to registry changes\n actions.value = getFileActions();\n getFilesRegistry().addEventListener('register:action', () => {\n actions.value = getFileActions();\n });\n }\n return readonly(actions);\n}\n/**\n * Get the enabled file actions for the given context.\n *\n * @param context - The context to check the enabled state of the actions against\n */\nexport function useEnabledFileActions(context) {\n const actions = useFileActions();\n return computed(() => actions.value\n .filter((action) => action.enabled === undefined\n || action.enabled(toValue(context)))\n .sort((a, b) => (a.order ?? 0) - (b.order ?? 0)));\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(() => 'openfile' in route.query\n && (typeof route.query.openfile !== 'string'\n || route.query.openfile.toLocaleLowerCase() !== 'false'));\n // if `opendetails` is set it is considered truthy, but allow to explicitly set it to 'false'\n const openDetails = computed(() => 'opendetails' in route.query\n && (typeof route.query.opendetails !== 'string'\n || route.query.opendetails.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 /** Should the details sidebar be shown (`openDetails` route param) */\n openDetails,\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';\nexport const useActionsMenuStore = defineStore('actionsmenu', {\n state: () => ({\n opened: null,\n }),\n});\n","/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport InformationSvg from '@mdi/svg/svg/information-outline.svg?raw';\nimport { getSidebar, Permission } from '@nextcloud/files';\nimport { t } from '@nextcloud/l10n';\nimport { isPublicShare } from '@nextcloud/sharing/public';\nimport { logger } from '../utils/logger.ts';\nexport const ACTION_DETAILS = 'details';\nexport const action = {\n id: ACTION_DETAILS,\n displayName: () => t('files', 'Details'),\n iconSvgInline: () => InformationSvg,\n // Sidebar currently supports user folder only, /files/USER\n enabled: ({ nodes }) => {\n const node = nodes[0];\n if (nodes.length !== 1 || !node) {\n return false;\n }\n const sidebar = getSidebar();\n if (!sidebar.available) {\n return false;\n }\n if (isPublicShare()) {\n return false;\n }\n return node.root.startsWith('/files/') && node.permissions !== Permission.NONE;\n },\n async exec({ nodes }) {\n const sidebar = getSidebar();\n const [node] = nodes;\n try {\n // If the sidebar is already open for the current file, do nothing\n if (sidebar.node?.source === node.source) {\n logger.debug('Sidebar already open for this file', { node });\n return null;\n }\n sidebar.open(node, 'sharing');\n return null;\n }\n catch (error) {\n logger.error('Error while opening sidebar', { error });\n return false;\n }\n },\n order: -50,\n hotkey: {\n key: 'D',\n description: t('files', 'Open the details sidebar'),\n },\n};\n","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\"","\n\n","import { render, staticRenderFns } from \"./FileMultiple.vue?vue&type=template&id=15fca808\"\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 }","/**\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 { n } from '@nextcloud/l10n';\n/**\n * Extract dir and name from file path\n *\n * @param path - The full path\n * @return [dirPath, fileName]\n */\nexport function extractFilePaths(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 *\n * @param nodes - The nodes to summarize\n * @param hidden - The number of hidden nodes\n */\nexport function getSummaryFor(nodes, hidden = 0) {\n const fileCount = nodes.filter((node) => node.type === FileType.File).length;\n const folderCount = nodes.filter((node) => node.type === FileType.Folder).length;\n const summary = [];\n if (fileCount > 0 || folderCount === 0) {\n const fileSummary = n('files', '%n file', '%n files', fileCount);\n summary.push(fileSummary);\n }\n if (folderCount > 0) {\n const folderSummary = n('files', '%n folder', '%n folders', folderCount);\n summary.push(folderSummary);\n }\n if (hidden > 0) {\n // TRANSLATORS: This is the number of hidden files or folders\n const hiddenSummary = n('files', '%n hidden', '%n hidden', hidden);\n summary.push(hiddenSummary);\n }\n return summary.join(' · ');\n}\n","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-6.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-6.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=6c14765c&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=6c14765c&prod&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./DragAndDropPreview.vue?vue&type=template&id=6c14765c\"\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=6c14765c&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 Vue from 'vue';\nimport DragAndDropPreview from '../components/DragAndDropPreview.vue';\nconst Preview = Vue.extend(DragAndDropPreview);\nlet preview;\n/**\n *\n * @param nodes\n */\nexport async function getDragAndDropPreview(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 { openConflictPicker } from '@nextcloud/dialogs';\nimport { FileType, Folder, File as NcFile, Node, NodeStatus, Permission } from '@nextcloud/files';\nimport { t } from '@nextcloud/l10n';\nimport { generateUrl } from '@nextcloud/router';\nimport { isPublicShare } from '@nextcloud/sharing/public';\nimport { getConflicts, getUploader } from '@nextcloud/upload';\nimport { vOnClickOutside } from '@vueuse/components';\nimport { extname, relative } from 'path';\nimport Vue, { computed, defineComponent } from 'vue';\nimport { action as sidebarAction } from '../actions/sidebarAction.ts';\nimport { onDropInternalFiles } from '../services/DropService.ts';\nimport { getDragAndDropPreview } from '../utils/dragUtils.ts';\nimport { hashCode } from '../utils/hashUtils.ts';\nimport { logger } from '../utils/logger.ts';\nimport { isDownloadable } from '../utils/permissions.ts';\nVue.directive('onClickOutside', vOnClickOutside);\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 isMtimeAvailable: {\n type: Boolean,\n default: false,\n },\n compact: {\n type: Boolean,\n default: false,\n },\n },\n provide() {\n return {\n defaultFileAction: computed(() => this.defaultFileAction),\n enabledFileActions: computed(() => this.enabledFileActions),\n };\n },\n data() {\n return {\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;\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.isNarrow;\n },\n isActive() {\n // Not using activeNode here because we want to\n // be reactive to the url change directly\n return String(this.fileid) === String(this.currentRouteFileId);\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 // Ignore if the node is not available\n if (this.isFailedSource) {\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 // Ignore if the node is not available\n if (this.isFailedSource) {\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 // If the menu is opened on another file entry, we ignore closed events\n if (opened === false && this.actionsMenuStore.opened !== this.uniqueId.toString()) {\n return;\n }\n // If opened, we specify the current file id\n // else we set it to null to close the menu\n this.actionsMenuStore.opened = opened\n ? this.uniqueId.toString()\n : null;\n },\n },\n mtime() {\n // If the mtime is not a valid date, return it as is\n if (this.source.mtime && !isNaN(this.source.mtime.getDate())) {\n return this.source.mtime;\n }\n if (this.source.crtime && !isNaN(this.source.crtime.getDate())) {\n return this.source.crtime;\n }\n return null;\n },\n mtimeOpacity() {\n if (!this.mtime) {\n return {};\n }\n // The time when we start reducing the opacity\n const maxOpacityTime = 31 * 24 * 60 * 60 * 1000; // 31 days\n // everything older than the maxOpacityTime will have the same value\n const timeDiff = Date.now() - this.mtime.getTime();\n if (timeDiff < 0) {\n // this means we have an invalid mtime which is in the future!\n return {};\n }\n // inversed time difference from 0 to maxOpacityTime (which would mean today)\n const opacityTime = Math.max(0, maxOpacityTime - timeDiff);\n // 100 = today, 0 = 31 days ago or older\n const percentage = Math.round(opacityTime * 100 / maxOpacityTime);\n return {\n color: `color-mix(in srgb, var(--color-main-text) ${percentage}%, 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 this.actions\n .filter((action) => {\n if (!action.enabled) {\n return true;\n }\n // In case something goes wrong, since we don't want to break\n // the entire list, we filter out actions that throw an error.\n try {\n return action.enabled({\n nodes: [this.source],\n view: this.activeView,\n folder: this.activeFolder,\n contents: this.nodes,\n });\n }\n catch (error) {\n logger.error('Error while checking action', { action, error });\n return false;\n }\n })\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 *\n * @param newSource The new value of the source prop\n * @param oldSource The previous value\n */\n source(newSource, oldSource) {\n if (newSource.source !== oldSource.source) {\n this.resetState();\n }\n },\n openedMenu() {\n // Checking if the menu is really closed and not\n // just a change in the open state to another file entry.\n if (this.actionsMenuStore.opened === null) {\n // Reset any right menu position potentially set\n logger.debug('All actions menu closed, resetting right menu position...');\n const root = this.$el?.closest('main.app-content');\n if (root !== null) {\n root.style.removeProperty('--mouse-pos-x');\n root.style.removeProperty('--mouse-pos-y');\n }\n }\n },\n },\n beforeDestroy() {\n this.resetState();\n },\n methods: {\n resetState() {\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 // Ignore right click if the node is not available\n if (this.isFailedSource) {\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 logger.debug('Setting actions menu position...');\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 auxiliary button expect mouse-wheel (button & 4)\n if (Boolean(event.button & 2) || event.button > 4) {\n return;\n }\n // Ignore if the node is not available\n if (this.isFailedSource) {\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 || event.button === 1;\n if (metaKeyPressed || !this.defaultFileAction) {\n // If no download permission, then we can not allow to download (direct link) the files\n if (!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 // Open the file in a new tab if the meta key or the middle mouse button is clicked\n window.open(url, metaKeyPressed ? '_blank' : '_self');\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({\n nodes: [this.source],\n folder: this.activeFolder,\n contents: this.nodes,\n view: this.activeView,\n });\n },\n openDetailsIfAvailable(event) {\n event.preventDefault();\n event.stopPropagation();\n if (sidebarAction?.enabled?.({\n nodes: [this.source],\n folder: this.activeFolder,\n contents: this.nodes,\n view: this.activeView,\n })) {\n sidebarAction.exec({\n nodes: [this.source],\n folder: this.activeFolder,\n contents: this.nodes,\n view: this.activeView,\n });\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 // 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 // Caching the selection\n const selection = this.draggingFiles;\n const items = Array.from(event.dataTransfer?.items || []);\n if (selection.length === 0 && items.some((item) => item.kind === 'file')) {\n const files = items.filter((item) => item.kind === 'file')\n .map((item) => 'webkitGetAsEntry' in item ? item.webkitGetAsEntry() : item.getAsFile())\n .filter(Boolean);\n const uploader = getUploader();\n const root = uploader.destination.path;\n const relativePath = relative(root, this.source.path);\n logger.debug('Start uploading dropped files', { target: this.source.path, root, relativePath, files: files.map((file) => file.name) });\n await uploader.batchUpload(relativePath, files, async (nodes, path) => {\n try {\n const { contents, folder } = await this.activeView.getContents(path);\n const conflicts = getConflicts(nodes, contents);\n if (conflicts.length === 0) {\n return nodes;\n }\n const result = await openConflictPicker(folder.displayname, conflicts, contents.filter((node) => conflicts.some((conflict) => conflict.name === node.basename)), {\n recursive: true,\n });\n if (result === null) {\n return false;\n }\n return [\n ...nodes.filter((node) => !conflicts.some((conflict) => conflict.name === node.name)),\n ...result.selected,\n ...result.renamed,\n ];\n }\n catch {\n return nodes;\n }\n });\n this.dragover = false;\n return;\n }\n // We might not have the target directory fetched yet\n const cachedContents = this.filesStore.getNodesByPath(this.activeView.id, this.source.path);\n const contents = cachedContents.length === 0\n ? (await this.activeView.getContents(this.source.path)).contents\n : cachedContents;\n const isCopy = event.ctrlKey;\n this.dragover = false;\n logger.debug('Dropped', { event, folder: this.source, selection });\n const nodes = selection.map((source) => this.filesStore.getNode(source));\n await onDropInternalFiles(nodes, this.source, 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 *\n * @param str The string to hash\n * @return a non secure hash of the string\n */\nexport function hashCode(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","/*!\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { Permission } from '@nextcloud/files';\n/**\n * Check permissions on the node if it can be downloaded\n *\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 // check hide-download property of shares\n if (node.attributes['hide-download'] === true\n || node.attributes['hide-download'] === 'true') {\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/**\n * Check permissions on the node if it can be synced/open locally\n *\n * @param node The node to check\n * @return True if syncable, false otherwise\n */\nexport function isSyncable(node) {\n if (!node.isDavResource) {\n return false;\n }\n if ((node.permissions & Permission.WRITE) === 0) {\n return false;\n }\n // Syncable has the same permissions as downloadable for now\n return isDownloadable(node);\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,\"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:{\"opened\":_vm.openedMenu,\"source\":_vm.source},on:{\"update:opened\":function($event){_vm.openedMenu=$event}}}),_vm._v(\" \"),(_vm.isMimeAvailable)?_c('td',{staticClass:\"files-list__row-mime\",attrs:{\"title\":_vm.mime,\"data-cy-files-list-row-mime\":\"\"},on:{\"click\":_vm.openDetailsIfAvailable}},[_c('span',[_vm._v(_vm._s(_vm.mime))])]):_vm._e(),_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.mtime)?_c('NcDateTime',{attrs:{\"ignore-seconds\":\"\",\"timestamp\":_vm.mtime}}):_c('span',[_vm._v(_vm._s(_vm.t('files', 'Unknown date')))])],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.activeView.id}-${column.id}`,attrs:{\"data-cy-files-list-row-column-custom\":column.id},on:{\"click\":_vm.openDetailsIfAvailable}},[_c('CustomElementRender',{attrs:{\"active-folder\":_vm.activeFolder,\"active-view\":_vm.activeView,\"render\":column.render,\"source\":_vm.source}})],1)})],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-6.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-6.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=4f64df34\"\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","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,\"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.mtime)?_c('NcDateTime',{attrs:{\"ignore-seconds\":\"\",\"timestamp\":_vm.mtime}}):_vm._e()],1):_vm._e(),_vm._v(\" \"),_c('FileEntryActions',{ref:\"actions\",class:`files-list__row-actions-${_vm.uniqueId}`,attrs:{\"opened\":_vm.openedMenu,\"grid-mode\":true,\"source\":_vm.source},on:{\"update:opened\":function($event){_vm.openedMenu=$event}}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.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-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileEntryGrid.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./FileEntryGrid.vue?vue&type=template&id=c13970d8\"\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","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_setup.activeChips.length > 0)?_c('ul',{class:_vm.$style.fileListFilterChips,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\":\"\",\"hide-status\":\"\",\"size\":24,\"user\":chip.user}})]},proxy:true}:null],null,true)})],1)}),0):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n import API from \"!../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../css-loader/dist/cjs.js!./NcChip-DLfUzq07.css\";\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 \"!!../../../../css-loader/dist/cjs.js!./NcChip-DLfUzq07.css\";\n export default content && content.locals ? content.locals : undefined;\n","import '../assets/NcChip-DLfUzq07.css';\nimport { c as mdiClose } from \"../chunks/mdi-DkJglNiS.mjs\";\nimport { useSlots, computed } from \"vue\";\nimport { N as NcActionButton } from \"../chunks/NcActionButton-1gSJfFUC.mjs\";\nimport { N as NcActions } from \"../chunks/NcActions-BcLis_nr.mjs\";\nimport { N as NcIconSvgWrapper } from \"../chunks/NcIconSvgWrapper-Bui9PhAS.mjs\";\nimport { r as register, m as t18, a as t } from \"../chunks/_l10n-DVz9Qdzk.mjs\";\nimport { n as normalizeComponent } from \"../chunks/_plugin-vue2_normalizer-DU4iP6Vu.mjs\";\nregister(t18);\nconst _sfc_main = {\n __name: \"NcChip\",\n props: {\n /**\n * aria label to set on the close button\n *\n * @default 'Close'\n */\n ariaLabelClose: {\n type: String,\n default: t(\"Close\")\n },\n /**\n * Container for the actions\n */\n actionsContainer: {\n type: String,\n default: \"body\"\n },\n /**\n * Main text of the chip.\n */\n text: {\n type: String,\n default: \"\"\n },\n /**\n * Set the chips design variant-\n *\n * This sets the background style of the chip, similar to NcButton's `variant`.\n *\n * @deprecated will be removed with v9 - use `variant` instead.\n */\n type: {\n type: String,\n default: \"secondary\",\n validator: (value) => [\"primary\", \"secondary\", \"tertiary\", \"error\", \"warning\", \"success\"].includes(value)\n },\n /**\n * SVG path of the icon to use, this takes precedence over `iconSVG`.\n * For example icon paths from `@mdi/js` can be used.\n */\n iconPath: {\n type: String,\n default: null\n },\n /**\n * Inline SVG to use as the icon\n */\n iconSvg: {\n type: String,\n default: null\n },\n /**\n * Set to true to prevent the close button to be shown\n */\n noClose: {\n type: Boolean,\n default: false\n },\n /**\n * Set the chips design variant-\n *\n * This sets the background style of the chip, similar to NcButton's `variant`.\n *\n * @since 8.24.0\n */\n variant: {\n type: String,\n default: \"secondary\",\n validator: (value) => [\"primary\", \"secondary\", \"tertiary\", \"error\", \"warning\", \"success\"].includes(value)\n }\n },\n emits: [\"close\"],\n setup(__props, { emit }) {\n const props = __props;\n const slots = useSlots();\n const realVariant = computed(() => props.type !== \"secondary\" ? props.type : props.variant);\n const canClose = computed(() => !props.noClose);\n const hasActions = () => Boolean(slots.actions?.());\n const hasIcon = () => Boolean(props.iconPath || props.iconSvg || !!slots.icon?.());\n return { __sfc: true, props, emit, slots, realVariant, canClose, hasActions, hasIcon, mdiClose, NcActionButton, NcActions, NcIconSvgWrapper };\n }\n};\nvar _sfc_render = function render() {\n var _vm = this, _c = _vm._self._c, _setup = _vm._self._setupProxy;\n return _c(\"div\", { staticClass: \"nc-chip\", class: {\n [`nc-chip--${_setup.realVariant}`]: true,\n \"nc-chip--no-actions\": _vm.noClose && !_setup.hasActions(),\n \"nc-chip--no-icon\": !_setup.hasIcon()\n } }, [_setup.hasIcon() ? _c(\"span\", { staticClass: \"nc-chip__icon\" }, [_vm._t(\"icon\", function() {\n return [_vm.iconPath || _vm.iconSvg ? _c(_setup.NcIconSvgWrapper, { attrs: { \"inline\": \"\", \"path\": _vm.iconPath, \"svg\": _vm.iconPath ? void 0 : _vm.iconSvg, \"size\": 18 } }) : _vm._e()];\n })], 2) : _vm._e(), _c(\"span\", { staticClass: \"nc-chip__text\" }, [_vm._t(\"default\", function() {\n return [_vm._v(_vm._s(_vm.text))];\n })], 2), _setup.canClose || _setup.hasActions() ? _c(_setup.NcActions, { staticClass: \"nc-chip__actions\", attrs: { \"container\": _vm.actionsContainer, \"force-menu\": !_setup.canClose, \"variant\": \"tertiary-no-background\" } }, [_setup.canClose ? _c(_setup.NcActionButton, { attrs: { \"close-after-click\": \"\" }, on: { \"click\": function($event) {\n return _setup.emit(\"close\");\n } }, scopedSlots: _vm._u([{ key: \"icon\", fn: function() {\n return [_c(_setup.NcIconSvgWrapper, { attrs: { \"path\": _setup.mdiClose, \"size\": 20 } })];\n }, proxy: true }], null, false, 2547223506) }, [_vm._v(\" \" + _vm._s(_vm.ariaLabelClose) + \" \")]) : _vm._e(), _vm._t(\"actions\")], 2) : _vm._e()], 1);\n};\nvar _sfc_staticRenderFns = [];\nvar __component__ = /* @__PURE__ */ normalizeComponent(\n _sfc_main,\n _sfc_render,\n _sfc_staticRenderFns,\n false,\n null,\n \"c8e429a5\"\n);\nconst NcChip = __component__.exports;\nexport {\n NcChip as default\n};\n//# sourceMappingURL=NcChip.mjs.map\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileListFilterChips.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-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileListFilterChips.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??clonedRuleSet-3.use[1]!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileListFilterChips.vue?vue&type=style&index=0&id=690b69f8&prod&module=true&lang=css\";\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??clonedRuleSet-3.use[1]!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileListFilterChips.vue?vue&type=style&index=0&id=690b69f8&prod&module=true&lang=css\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FileListFilterChips.vue?vue&type=template&id=690b69f8\"\nimport script from \"./FileListFilterChips.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./FileListFilterChips.vue?vue&type=script&setup=true&lang=ts\"\nimport style0 from \"./FileListFilterChips.vue?vue&type=style&index=0&id=690b69f8&prod&module=true&lang=css\"\n\n\n\n\nfunction injectStyles (context) {\n \n this[\"$style\"] = (style0.locals || style0)\n\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 injectStyles,\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 (_setup.isVisible)?_c(_setup.NcButton,{attrs:{\"size\":\"small\"},on:{\"click\":_setup.onClick}},[_vm._v(\"\\n\\t\"+_vm._s(_setup.t('files', 'Search everywhere'))+\"\\n\")]):_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-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileListFilterToSearch.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-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileListFilterToSearch.vue?vue&type=script&setup=true&lang=ts\"","import { render, staticRenderFns } from \"./FileListFilterToSearch.vue?vue&type=template&id=f1a11948\"\nimport script from \"./FileListFilterToSearch.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./FileListFilterToSearch.vue?vue&type=script&setup=true&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-6.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-6.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=5f40923a\"\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","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(_setup.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.isMimeAvailable)?_c('td',{staticClass:\"files-list__column files-list__row-mime\"}):_vm._e(),_vm._v(\" \"),(_vm.isSizeAvailable)?_c('td',{staticClass:\"files-list__column files-list__row-size\"},[_c('span',[_vm._v(_vm._s(_setup.totalSize))])]):_vm._e(),_vm._v(\" \"),(_vm.isMtimeAvailable)?_c('td',{staticClass:\"files-list__column files-list__row-mtime\"}):_vm._e(),_vm._v(\" \"),_vm._l((_setup.columns),function(column){return _c('th',{key:column.id,class:_setup.classForColumn(column)},[_c('span',[_vm._v(_vm._s(column.summary?.(_vm.nodes, _vm.currentView)))])])})],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-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListTableFooter.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-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListTableFooter.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!./FilesListTableFooter.vue?vue&type=style&index=0&id=378a6e4a&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=378a6e4a&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=378a6e4a&scoped=true\"\nimport script from \"./FilesListTableFooter.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./FilesListTableFooter.vue?vue&type=script&setup=true&lang=ts\"\nimport style0 from \"./FilesListTableFooter.vue?vue&type=style&index=0&id=378a6e4a&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 \"378a6e4a\",\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:{\"open\":_vm.openedMenu,\"container\":\"#app-content-vue\",\"boundaries-element\":_vm.boundariesElement,\"disabled\":!!_vm.loading || _vm.areSomeNodesLoading,\"force-name\":true,\"inline\":_vm.enabledInlineActions.length,\"menu-name\":_vm.enabledInlineActions.length <= 1 ? _vm.t('files', 'Actions') : undefined},on:{\"update:open\":function($event){_vm.openedMenu=$event},\"close\":function($event){_vm.openedSubmenu = null}}},[_vm._l((_vm.enabledMenuActions),function(action,idx){return _c('NcActionButton',{key:action.id,ref:`action-batch-${action.id}`,refInFor:true,class:{\n\t\t\t\t[`files-list__row-actions-batch-${action.id}`]: true,\n\t\t\t\t[`files-list__row-actions-batch--menu`]: _vm.isValidMenu(action),\n\t\t\t},attrs:{\"id\":idx === 0 ? _vm.FILE_LIST_HEAD_FIRST_BATCH_ACTION_ID : undefined,\"close-after-click\":!_vm.isValidMenu(action),\"data-cy-files-list-selection-action\":action.id,\"is-menu\":_vm.isValidMenu(action),\"aria-label\":action.displayName(_vm.actionContext) + ' ' + _vm.t('files', '(selected)') /** TRANSLATORS: Selected like 'selected files and folders' */,\"title\":action.title?.(_vm.actionContext)},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.actionContext)}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(action.displayName(_vm.actionContext))+\"\\n\\t\\t\")])}),_vm._v(\" \"),(_vm.openedSubmenu && _vm.enabledSubmenuActions[_vm.openedSubmenu?.id])?[_c('NcActionButton',{staticClass:\"files-list__row-actions-batch-back\",attrs:{\"data-cy-files-list-selection-action\":\"menu-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.t('files', 'Back'))+\"\\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-actions-batch--submenu\",class:`files-list__row-actions-batch-${action.id}`,attrs:{\"close-after-click\":\"\",\"data-cy-files-list-selection-action\":action.id,\"aria-label\":action.displayName(_vm.actionContext) + ' ' + _vm.t('files', '(selected)') /** TRANSLATORS: Selected like 'selected files and folders' */,\"title\":action.title?.(_vm.actionContext)},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.actionContext)}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(action.displayName(_vm.actionContext))+\"\\n\\t\\t\\t\")])})]:_vm._e()],2)],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-6.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-6.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=3b887a8f&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=3b887a8f&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=3b887a8f&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=3b887a8f&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 \"3b887a8f\",\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('NcButton',{staticClass:\"files-list__column-sort-button\",class:[{\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',\"variant\":\"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 * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getCurrentUser } from '@nextcloud/auth';\nimport axios from '@nextcloud/axios';\nimport { emit, subscribe } from '@nextcloud/event-bus';\nimport { loadState } from '@nextcloud/initial-state';\nimport { generateUrl } from '@nextcloud/router';\nimport { defineStore } from 'pinia';\nimport { ref, set } from 'vue';\nconst initialViewConfig = loadState('files', 'viewConfigs', {});\nexport const useViewConfigStore = defineStore('viewconfig', () => {\n const viewConfigs = ref({ ...initialViewConfig });\n /**\n * Get the config for a specific view\n *\n * @param viewid Id of the view to fet the config for\n */\n function getConfig(viewid) {\n return viewConfigs.value[viewid] || {};\n }\n /**\n * Update the view config local store\n *\n * @param viewId The id of the view to update\n * @param key The config key to update\n * @param value The new value\n */\n function onUpdate(viewId, key, value) {\n if (!(viewId in viewConfigs.value)) {\n set(viewConfigs.value, viewId, {});\n }\n set(viewConfigs.value[viewId], key, value);\n }\n /**\n * Update the view config local store AND on server side\n *\n * @param view Id of the view to update\n * @param key Config key to update\n * @param value New value\n */\n async function update(view, key, value) {\n if (getCurrentUser() !== null) {\n await axios.put(generateUrl('/apps/files/api/v1/views'), {\n value,\n view,\n key,\n });\n }\n emit('files:view-config: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 *\n * @param key Key to sort by\n * @param view View to set the sorting key for\n */\n function setSortingBy(key = 'basename', view = 'files') {\n // Save new config\n update(view, 'sorting_mode', key);\n update(view, 'sorting_direction', 'asc');\n }\n /**\n * Toggle the sorting direction\n *\n * @param viewId id of the view to set the sorting order for\n */\n function toggleSortingDirection(viewId = 'files') {\n const config = viewConfigs.value[viewId] || { sorting_direction: 'asc' };\n const newDirection = config.sorting_direction === 'asc' ? 'desc' : 'asc';\n // Save new config\n update(viewId, 'sorting_direction', newDirection);\n }\n // Initialize event listener\n subscribe('files:view-config:updated', ({ view, key, value }) => onUpdate(view, key, value));\n return {\n viewConfigs,\n getConfig,\n setSortingBy,\n toggleSortingDirection,\n update,\n };\n});\n","/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { mapState } from 'pinia';\nimport Vue from 'vue';\nimport { useActiveStore } from '../store/active.ts';\nimport { useViewConfigStore } from '../store/viewConfig.ts';\nexport default Vue.extend({\n setup() {\n const activeStore = useActiveStore();\n return {\n activeStore,\n };\n },\n computed: {\n ...mapState(useViewConfigStore, ['getConfig', 'setSortingBy', 'toggleSortingDirection']),\n /**\n * Get the sorting mode for the current view\n */\n sortingMode() {\n return this.getConfig(this.activeStore.activeView?.id)?.sorting_mode\n || this.activeStore.activeView?.defaultSortKey\n || 'basename';\n },\n /**\n * Get the sorting direction for the current view\n */\n isAscSorting() {\n const sortingDirection = this.getConfig(this.activeStore.activeView?.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.activeStore.activeView?.id);\n return;\n }\n // else sort ASC by this new key\n this.setSortingBy(key, this.activeStore.activeView?.id);\n },\n },\n});\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.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-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListTableHeaderButton.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!./FilesListTableHeaderButton.vue?vue&type=style&index=0&id=4a8557e6&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=4a8557e6&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=4a8557e6&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=4a8557e6&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 \"4a8557e6\",\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:{\"id\":_vm.FILES_LIST_HEADER_SELECT_ALL_CHECKBOX_ID,\"data-cy-files-list-selection-checkbox\":\"\"},on:{\"update:model-value\":_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\"},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files', 'Actions'))+\"\\n\\t\\t\")])]),_vm._v(\" \"),(_vm.isMimeAvailable)?_c('th',{staticClass:\"files-list__column files-list__row-mime\",class:{ 'files-list__column--sortable': _vm.isMimeAvailable },attrs:{\"aria-sort\":_vm.ariaSortForMode('mime')}},[_c('FilesListTableHeaderButton',{attrs:{\"name\":_vm.t('files', 'File type'),\"mode\":\"mime\"}})],1):_vm._e(),_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 }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.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-6.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=12d5b60e&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=12d5b60e&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=12d5b60e&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=12d5b60e&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 \"12d5b60e\",\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-6.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-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VirtualList.vue?vue&type=script&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"files-list\",class:{ 'files-list--grid': _vm.gridMode },attrs:{\"data-cy-files-list\":\"\"},on:{\"&scroll\":function($event){return _vm.onScroll.apply(null, arguments)}}},[_c('div',{ref:\"before\",staticClass:\"files-list__before\"},[_vm._t(\"before\")],2),_vm._v(\" \"),_c('div',{ref:\"filters\",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(\" \"),(_vm.dataSources.length === 0)?_c('div',{staticClass:\"files-list__empty\"},[_vm._t(\"empty\")],2):_vm._e(),_vm._v(\" \"),_c('table',{staticClass:\"files-list__table\",class:{\n\t\t\t'files-list__table--with-thead-overlay': !!_vm.$scopedSlots['header-overlay'],\n\t\t\t'files-list__table--hidden': _vm.dataSources.length === 0,\n\t\t},attrs:{\"aria-hidden\":_vm.dataSources.length === 0,\"inert\":_vm.dataSources.length === 0}},[(_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\",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',{ref:\"footer\",staticClass:\"files-list__tfoot\",attrs:{\"data-cy-files-list-tfoot\":\"\"}},[_vm._t(\"footer\")],2)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./VirtualList.vue?vue&type=template&id=48432047\"\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","/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getFileListHeaders, getFilesRegistry } from '@nextcloud/files';\nimport { computed, ref } from 'vue';\nconst headers = ref();\nconst sorted = computed(() => [...(headers.value ?? [])].sort((a, b) => a.order - b.order));\n/**\n * Get the registered and sorted file list headers.\n */\nexport function useFileListHeaders() {\n if (!headers.value) {\n // if not initialized by other component yet, initialize and subscribe to registry changes\n headers.value = getFileListHeaders();\n getFilesRegistry().addEventListener('register:listHeader', () => {\n headers.value = getFileListHeaders();\n });\n }\n return sorted;\n}\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.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-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesListVirtual.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!./FilesListVirtual.vue?vue&type=style&index=0&id=0aebd17f&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=0aebd17f&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=0aebd17f&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=0aebd17f&prod&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FilesListVirtual.vue?vue&type=template&id=0aebd17f&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=0aebd17f&prod&scoped=true&lang=scss\"\nimport style1 from \"./FilesListVirtual.vue?vue&type=style&index=1&id=0aebd17f&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 \"0aebd17f\",\n null\n \n)\n\nexport default component.exports","/*!\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getFileListActions, getFilesRegistry } from '@nextcloud/files';\nimport { toValue } from '@vueuse/core';\nimport { computed, ref } from 'vue';\nconst actions = ref();\nconst sorted = computed(() => [...(actions.value ?? [])].sort((a, b) => a.order - b.order));\n/**\n * Get the registered and sorted file list actions.\n */\nexport function useFileListActions() {\n if (!actions.value) {\n // if not initialized by other component yet, initialize and subscribe to registry changes\n actions.value = getFileListActions();\n getFilesRegistry().addEventListener('register:listAction', () => {\n actions.value = getFileListActions();\n });\n }\n return sorted;\n}\n/**\n * Get the enabled file list actions for the given folder, contents and view.\n *\n * @param folder - The current folder\n * @param contents - The contents of the current folder\n * @param view - The current view\n */\nexport function useEnabledFileListActions(folder, contents, view) {\n const actions = useFileListActions();\n return computed(() => {\n if (toValue(folder) === undefined || toValue(view) === undefined) {\n return [];\n }\n return actions.value.filter((action) => action.enabled === undefined\n || action.enabled({ folder: toValue(folder), contents: toValue(contents), view: toValue(view) }));\n });\n}\n","/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { subscribe } from '@nextcloud/event-bus';\nimport { getSidebarActions, getSidebarTabs } from '@nextcloud/files';\nimport { defineStore } from 'pinia';\nimport { computed, readonly, ref, watch } from 'vue';\nimport { logger } from '../utils/logger.ts';\nimport { useActiveStore } from './active.ts';\nimport { useFilesStore } from './files.ts';\nexport const useSidebarStore = defineStore('sidebar', () => {\n const activeTab = ref();\n const isOpen = ref(false);\n const activeStore = useActiveStore();\n const currentNode = computed(() => isOpen.value ? activeStore.activeNode : undefined);\n const hasContext = computed(() => !!(currentNode.value && activeStore.activeFolder && activeStore.activeView));\n const currentContext = computed(() => {\n if (!hasContext.value) {\n return;\n }\n return {\n node: currentNode.value,\n folder: activeStore.activeFolder,\n view: activeStore.activeView,\n };\n });\n const currentActions = computed(() => currentContext.value ? getActions(currentContext.value) : []);\n const currentTabs = computed(() => currentContext.value ? getTabs(currentContext.value) : []);\n /**\n * Open the sidebar for a given node and optional tab ID.\n *\n * @param node - The node to display in the sidebar.\n * @param tabId - Optional ID of the tab to activate.\n */\n function open(node, tabId) {\n if (!(node && activeStore.activeFolder && activeStore.activeView)) {\n logger.debug('sidebar: cannot open sidebar because the active folder or view is not set.', {\n node,\n activeFolder: activeStore.activeFolder,\n activeView: activeStore.activeView,\n });\n throw new Error('Cannot open sidebar because the active folder or view is not set.');\n }\n if (isOpen.value && currentNode.value?.source === node.source) {\n logger.debug('sidebar: already open for current node');\n if (tabId) {\n logger.debug('sidebar: already open for current node - switching tab', { tabId });\n setActiveTab(tabId);\n }\n return;\n }\n const newTabs = getTabs({\n node,\n folder: activeStore.activeFolder,\n view: activeStore.activeView,\n });\n if (tabId && !newTabs.find(({ id }) => id === tabId)) {\n logger.warn(`sidebar: cannot open tab '${tabId}' because it is not available for the current context.`);\n activeTab.value = newTabs[0]?.id;\n }\n else {\n activeTab.value = tabId ?? newTabs[0]?.id;\n }\n logger.debug(`sidebar: opening for ${node.displayname}`, { node });\n activeStore.activeNode = node;\n isOpen.value = true;\n }\n /**\n * Close the sidebar.\n */\n function close() {\n isOpen.value = false;\n }\n /**\n * Get the available tabs for the sidebar.\n * If a context is provided, only tabs enabled for that context are returned.\n *\n * @param context - Optional context to filter the available tabs.\n */\n function getTabs(context) {\n let tabs = getSidebarTabs();\n if (context) {\n tabs = tabs.filter((tab) => tab.enabled === undefined || tab.enabled(context));\n }\n return tabs.sort((a, b) => a.order - b.order);\n }\n /**\n * Get the available actions for the sidebar.\n * If a context is provided, only actions enabled for that context are returned.\n *\n * @param context - Optional context to filter the available actions.\n */\n function getActions(context) {\n let actions = getSidebarActions();\n if (context) {\n actions = actions.filter((action) => action.enabled === undefined || action.enabled(context));\n }\n return actions.sort((a, b) => a.order - b.order);\n }\n /**\n * Set the active tab in the sidebar.\n *\n * @param tabId - The ID of the tab to activate.\n */\n function setActiveTab(tabId) {\n if (!currentTabs.value.find(({ id }) => id === tabId)) {\n throw new Error(`Cannot set sidebar tab '${tabId}' because it is not available for the current context.`);\n }\n activeTab.value = tabId;\n }\n // update the current node if updated\n subscribe('files:node:updated', (node) => {\n if (node.source === currentNode.value?.source) {\n activeStore.activeNode = node;\n }\n });\n // close the sidebar if the current node is deleted\n subscribe('files:node:deleted', (node) => {\n if (node.fileid === currentNode.value?.fileid) {\n close();\n }\n });\n subscribe('viewer:sidebar:open', ({ source }) => {\n const filesStore = useFilesStore();\n const node = filesStore.getNode(source);\n if (node) {\n logger.debug('sidebar: opening for node from Viewer.', { node });\n open(node);\n }\n else {\n logger.error(`sidebar: cannot open for node '${source}' because it was not found in the current view.`);\n }\n });\n let initialized = false;\n // close sidebar when parameter is removed from url\n subscribe('files:list:updated', () => {\n if (!initialized) {\n initialized = true;\n window.OCP.Files.Router._router.afterEach((to, from) => {\n if ((from.query && ('opendetails' in from.query))\n && (to.query && !('opendetails' in to.query))) {\n logger.debug('sidebar: closing because \"opendetails\" query parameter was removed from URL.');\n close();\n }\n });\n }\n });\n // watch open state and update URL query parameters\n watch(isOpen, (isOpen) => {\n const params = { ...(window.OCP?.Files?.Router?.params ?? {}) };\n const query = { ...(window.OCP?.Files?.Router?.query ?? {}) };\n logger.debug(`sidebar: current node changed: ${isOpen ? 'open' : 'closed'}`, { query, params, node: activeStore.activeNode });\n if (!isOpen && ('opendetails' in query)) {\n delete query.opendetails;\n window.OCP.Files.Router.goToRoute(null, params, query, true);\n }\n if (isOpen && !('opendetails' in query)) {\n window.OCP.Files.Router.goToRoute(null, params, {\n ...query,\n opendetails: 'true',\n }, true);\n }\n });\n return {\n activeTab,\n currentActions,\n currentContext,\n currentNode,\n currentTabs,\n hasContext,\n isOpen: readonly(isOpen),\n open,\n close,\n getActions,\n getTabs,\n setActiveTab,\n };\n});\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { loadState } from '@nextcloud/initial-state';\n/**\n * Check whether the personal files view can be shown\n */\nexport function hasPersonalFilesView() {\n const storageStats = loadState('files', 'storageStats', { quota: -1 });\n // Don't show this view if the user has no storage quota\n return storageStats.quota !== 0;\n}\n/**\n * Get the default files view\n */\nexport function defaultView() {\n const { default_view: defaultView } = loadState('files', 'config', { default_view: 'files' });\n // the default view - only use the personal one if it is enabled\n if (defaultView !== 'personal' || hasPersonalFilesView()) {\n return defaultView;\n }\n return 'files';\n}\n","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(_vm.isNarrow ? 'Teleport' : 'div',{tag:\"component\",attrs:{\"to\":_vm.isNarrow ? 'body' : undefined}},[(_vm.canUpload && !_vm.isQuotaExceeded && _vm.currentFolder)?_c('UploadPicker',{staticClass:\"files-list__header-upload-button\",class:{ 'files-list__header-upload-button--narrow': _vm.isNarrow },attrs:{\"allow-folders\":\"\",\"no-label\":_vm.isNarrow,\"content\":_vm.getContent,\"destination\":_vm.currentFolder,\"forbidden-characters\":_vm.forbiddenCharacters,\"multiple\":\"\",\"primary\":\"\"},on:{\"failed\":_vm.onUploadFail,\"uploaded\":_vm.onUpload}}):_vm._e()],1),_vm._v(\" \"),_c('BreadCrumbs',{attrs:{\"path\":_vm.directory},on:{\"reload\":_vm.fetchContent}}),_vm._v(\" \"),(_vm.isRefreshing)?_c('NcLoadingIcon',{staticClass:\"files-list__refresh-icon\",attrs:{\"name\":_vm.t('files', 'File list is reloading')}}):_vm._e(),_vm._v(\" \"),_c('NcActions',{staticClass:\"files-list__header-actions\",attrs:{\"inline\":1,\"variant\":\"tertiary\",\"force-name\":\"\"}},_vm._l((_vm.enabledFileListActions),function(action){return _c('NcActionButton',{key:action.id,attrs:{\"disabled\":!!_vm.loadingAction,\"data-cy-files-list-action\":action.id,\"close-after-click\":\"\"},on:{\"click\":function($event){return _vm.execFileListAction(action)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.loadingAction === action.id)?_c('NcLoadingIcon',{attrs:{\"size\":18}}):(action.iconSvgInline !== undefined && _vm.currentView)?_c('NcIconSvgWrapper',{attrs:{\"svg\":action.iconSvgInline(_vm.currentView)}}):_vm._e()]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.actionDisplayName(action))+\"\\n\\t\\t\\t\")])}),1),_vm._v(\" \"),_c('FileListFilters'),_vm._v(\" \"),(_vm.enableGridView)?_c('NcButton',{staticClass:\"files-list__header-grid-button\",attrs:{\"aria-label\":_vm.gridViewButtonLabel,\"title\":_vm.gridViewButtonLabel,\"variant\":\"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 && _vm.currentFolder)?_c('DragAndDropNotice',{attrs:{\"current-folder\":_vm.currentFolder}}):_vm._e(),_vm._v(\" \"),(!_vm.currentView)?_c('NcLoadingIcon',{staticClass:\"files-list__loading-icon\",attrs:{\"size\":38,\"name\":_vm.t('files', 'Loading current folder')}}):_c('FilesListVirtual',{ref:\"filesListVirtual\",attrs:{\"current-folder\":_vm.currentFolder,\"current-view\":_vm.currentView,\"nodes\":_vm.dirContentsSorted,\"summary\":_vm.summary},scopedSlots:_vm._u([{key:\"empty\",fn:function(){return [(_vm.loading && !_vm.isRefreshing)?_c('NcLoadingIcon',{staticClass:\"files-list__loading-icon\",attrs:{\"size\":38,\"name\":_vm.t('files', 'Loading current folder')}}):(_vm.error)?_c('NcEmptyContent',{attrs:{\"name\":_vm.error,\"data-cy-files-content-error\":\"\"},scopedSlots:_vm._u([{key:\"action\",fn:function(){return [_c('NcButton',{attrs:{\"variant\":\"secondary\"},on:{\"click\":_vm.fetchContent},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconReload',{attrs:{\"size\":20}})]},proxy:true}])},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Retry'))+\"\\n\\t\\t\\t\\t\\t\")])]},proxy:true},{key:\"icon\",fn:function(){return [_c('IconAlertCircleOutline')]},proxy:true}])}):(_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,\"variant\":\"primary\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('files', 'Go back'))+\"\\n\\t\\t\\t\\t\\t\")])]},proxy:true}:null,{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"svg\":_vm.currentView?.icon}})]},proxy:true}],null,true)})]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\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 *\n * @param error - Any exception\n * @return - 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 *\n * @param error - An exception from webdav request\n * @return 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 folder is unavailable, please try again later or contact the administration');\n }\n else if (status === 503) {\n return t('files', 'Storage is temporarily not available');\n }\n }\n // We don't need to show abortion error to the user as those are expected.\n if (error.name === 'AbortError') {\n return null;\n }\n return t('files', 'Unexpected error: {error}', { error: error.message });\n }\n return t('files', 'Unknown error');\n}\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.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-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesList.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!./FilesList.vue?vue&type=style&index=0&id=243e0eb8&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=243e0eb8&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=243e0eb8&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=243e0eb8&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 \"243e0eb8\",\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(_setup.NcAppNavigation,{staticClass:\"files-navigation\",attrs:{\"data-cy-files-navigation\":\"\",\"aria-label\":_setup.t('files', 'Files')},scopedSlots:_vm._u([{key:\"search\",fn:function(){return [_c(_setup.FilesNavigationSearch)]},proxy:true},{key:\"default\",fn:function(){return [_c(_setup.FilesNavigationList),_vm._v(\" \"),_c(_setup.FilesAppSettings,{attrs:{\"open\":_setup.settingsOpened,\"data-cy-files-navigation-settings\":\"\"},on:{\"update:open\":function($event){_setup.settingsOpened=$event},\"close\":function($event){_setup.settingsOpened = false}}})]},proxy:true},{key:\"footer\",fn:function(){return [_c('ul',{staticClass:\"app-navigation-entry__settings\"},[_c(_setup.NavigationQuota),_vm._v(\" \"),_c(_setup.NcAppNavigationItem,{attrs:{\"name\":_setup.t('files', 'Files settings'),\"data-cy-files-navigation-settings-button\":\"\"},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();_setup.settingsOpened = true}}},[_c(_setup.IconCog,{attrs:{\"slot\":\"icon\",\"size\":20},slot:\"icon\"})],1)],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./CogOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./CogOutline.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CogOutline.vue?vue&type=template&id=96fed70c\"\nimport script from \"./CogOutline.vue?vue&type=script&lang=js\"\nexport * from \"./CogOutline.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-outline-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,8A4,4 0 0,1 16,12A4,4 0 0,1 12,16A4,4 0 0,1 8,12A4,4 0 0,1 12,8M12,10A2,2 0 0,0 10,12A2,2 0 0,0 12,14A2,2 0 0,0 14,12A2,2 0 0,0 12,10M10,22C9.75,22 9.54,21.82 9.5,21.58L9.13,18.93C8.5,18.68 7.96,18.34 7.44,17.94L4.95,18.95C4.73,19.03 4.46,18.95 4.34,18.73L2.34,15.27C2.21,15.05 2.27,14.78 2.46,14.63L4.57,12.97L4.5,12L4.57,11L2.46,9.37C2.27,9.22 2.21,8.95 2.34,8.73L4.34,5.27C4.46,5.05 4.73,4.96 4.95,5.05L7.44,6.05C7.96,5.66 8.5,5.32 9.13,5.07L9.5,2.42C9.54,2.18 9.75,2 10,2H14C14.25,2 14.46,2.18 14.5,2.42L14.87,5.07C15.5,5.32 16.04,5.66 16.56,6.05L19.05,5.05C19.27,4.96 19.54,5.05 19.66,5.27L21.66,8.73C21.79,8.95 21.73,9.22 21.54,9.37L19.43,11L19.5,12L19.43,13L21.54,14.63C21.73,14.78 21.79,15.05 21.66,15.27L19.66,18.73C19.54,18.95 19.27,19.04 19.05,18.95L16.56,17.95C16.04,18.34 15.5,18.68 14.87,18.93L14.5,21.58C14.46,21.82 14.25,22 14,22H10M11.25,4L10.88,6.61C9.68,6.86 8.62,7.5 7.85,8.39L5.44,7.35L4.69,8.65L6.8,10.2C6.4,11.37 6.4,12.64 6.8,13.8L4.68,15.36L5.43,16.66L7.86,15.62C8.63,16.5 9.68,17.14 10.87,17.38L11.24,20H12.76L13.13,17.39C14.32,17.14 15.37,16.5 16.14,15.62L18.57,16.66L19.32,15.36L17.2,13.81C17.6,12.64 17.6,11.37 17.2,10.2L19.31,8.65L18.56,7.35L16.15,8.39C15.38,7.5 14.32,6.86 13.12,6.62L12.75,4H11.25Z\"}},[(_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(_setup.NcAppNavigationList,{class:_vm.$style.filesNavigationList,attrs:{\"aria-label\":_setup.t('files', 'Views')}},_vm._l((_setup.rootViews),function(view){return _c(_setup.FilesNavigationListItem,{key:view.id,attrs:{\"view\":view}})}),1)\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 { getCurrentUser } from '@nextcloud/auth';\nimport axios from '@nextcloud/axios';\nimport { getRemoteURL } from '@nextcloud/files/dav';\nimport { getCanonicalLocale, getLanguage } from '@nextcloud/l10n';\nimport { dirname, encodePath, join } from '@nextcloud/paths';\nimport { generateOcsUrl } from '@nextcloud/router';\nimport { getContents as getFiles } from './Files.ts';\nexport const folderTreeId = 'folders';\nexport const sourceRoot = `${getRemoteURL()}/files/${getCurrentUser()?.uid}`;\nconst collator = Intl.Collator([getLanguage(), getCanonicalLocale()], {\n numeric: true,\n usage: 'sort',\n});\nconst compareNodes = (a, b) => collator.compare(a.displayName ?? a.basename, b.displayName ?? b.basename);\n/**\n * Get all tree nodes recursively\n *\n * @param tree - The tree to process\n * @param currentPath - The current path\n * @param nodes - The nodes collected so far\n */\nfunction getTreeNodes(tree, currentPath = '/', nodes = []) {\n const sortedTree = tree.toSorted(compareNodes);\n for (const { id, basename, displayName, children } of sortedTree) {\n const path = join(currentPath, basename);\n const source = `${sourceRoot}${path}`;\n const node = {\n source,\n encodedSource: encodeSource(source),\n path,\n fileid: id,\n basename,\n };\n if (displayName) {\n node.displayName = displayName;\n }\n nodes.push(node);\n if (children.length > 0) {\n getTreeNodes(children, path, nodes);\n }\n }\n return nodes;\n}\n/**\n * Get folder tree nodes\n *\n * @param path - The path to get the tree from\n * @param depth - The depth to fetch\n * @param withParents - Whether to include parent folders in the response\n */\nexport async function getFolderTreeNodes(path = '/', depth = 1, withParents = false) {\n const { data: tree } = await axios.get(generateOcsUrl('/apps/files/api/v1/folder-tree'), {\n params: new URLSearchParams({ path, depth: String(depth), withParents: String(withParents) }),\n });\n const nodes = getTreeNodes(tree, withParents ? '/' : path);\n return nodes;\n}\nexport const getContents = (path, options) => getFiles(path, options);\n/**\n * Encode source URL\n *\n * @param source - The source URL\n */\nexport function encodeSource(source) {\n const { origin } = new URL(source);\n return origin + encodePath(source.slice(origin.length));\n}\n/**\n * Get parent source URL\n *\n * @param source - The source URL\n */\nexport function getSourceParent(source) {\n const parent = dirname(source);\n if (parent === sourceRoot) {\n return folderTreeId;\n }\n return `${folderTreeId}::${encodeSource(parent)}`;\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c(_setup.NcAppNavigationItem,{staticClass:\"files-navigation__item\",attrs:{\"allow-collapse\":\"\",\"loading\":_setup.isLoading,\"data-cy-files-navigation-item\":_vm.view.id,\"exact\":_setup.hasChildViews,\"name\":_vm.view.name,\"open\":_setup.isExpanded,\"pinned\":_vm.view.sticky,\"to\":_setup.navigationRoute},on:{\"update:open\":_setup.onExpandCollapse},scopedSlots:_vm._u([(_vm.view.icon)?{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"svg\":_vm.view.icon}})]},proxy:true}:null],null,true)},[_vm._v(\" \"),(!_setup.hasChildViews && !_setup.childViewsLoaded && _vm.view.loadChildViews)?_c('li',{directives:[{name:\"show\",rawName:\"v-show\",value:(false),expression:\"false\"}],attrs:{\"role\":\"presentation\"}}):_vm._e(),_vm._v(\" \"),_vm._l((_setup.sortedChildViews),function(childView){return _c('FilesNavigationListItem',{key:childView.id,attrs:{\"level\":_vm.level + 1,\"view\":childView}})})],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-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesNavigationListItem.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-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesNavigationListItem.vue?vue&type=script&setup=true&lang=ts\"","import { render, staticRenderFns } from \"./FilesNavigationListItem.vue?vue&type=template&id=008accd4\"\nimport script from \"./FilesNavigationListItem.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./FilesNavigationListItem.vue?vue&type=script&setup=true&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-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesNavigationList.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-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesNavigationList.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??clonedRuleSet-3.use[1]!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesNavigationList.vue?vue&type=style&index=0&id=1b62d532&prod&module=true&lang=css\";\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??clonedRuleSet-3.use[1]!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesNavigationList.vue?vue&type=style&index=0&id=1b62d532&prod&module=true&lang=css\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FilesNavigationList.vue?vue&type=template&id=1b62d532\"\nimport script from \"./FilesNavigationList.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./FilesNavigationList.vue?vue&type=script&setup=true&lang=ts\"\nimport style0 from \"./FilesNavigationList.vue?vue&type=style&index=0&id=1b62d532&prod&module=true&lang=css\"\n\n\n\n\nfunction injectStyles (context) {\n \n this[\"$style\"] = (style0.locals || style0)\n\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 injectStyles,\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(_setup.NcAppNavigationSearch,{attrs:{\"label\":_setup.searchLabel},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c(_setup.NcActions,{attrs:{\"aria-label\":_setup.t('files', 'Search scope options'),\"disabled\":_setup.isSearchView},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.searchStore.scope === 'globally' ? _setup.mdiSearchWeb : _setup.mdiMagnify}})]},proxy:true}])},[_vm._v(\" \"),_c(_setup.NcActionButton,{attrs:{\"close-after-click\":\"\"},on:{\"click\":function($event){_setup.searchStore.scope = 'filter'}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiMagnify}})]},proxy:true}])},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_setup.t('files', 'Search here'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c(_setup.NcActionButton,{attrs:{\"close-after-click\":\"\"},on:{\"click\":function($event){_setup.searchStore.scope = 'globally'}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiSearchWeb}})]},proxy:true}])},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_setup.t('files', 'Search everywhere'))+\"\\n\\t\\t\\t\")])],1)]},proxy:true}]),model:{value:(_setup.searchStore.query),callback:function ($$v) {_vm.$set(_setup.searchStore, \"query\", $$v)},expression:\"searchStore.query\"}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesNavigationSearch.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-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesNavigationSearch.vue?vue&type=script&setup=true&lang=ts\"","/**\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { onUnmounted } from 'vue';\nimport { useRouter } from 'vue-router/composables';\n/**\n * Helper until we use Vue-Router v4 (Vue3).\n *\n * @param fn - The navigation guard\n */\nexport function onBeforeNavigation(fn) {\n const router = useRouter();\n const remove = router.beforeResolve(fn);\n onUnmounted(remove);\n}\n","import { render, staticRenderFns } from \"./FilesNavigationSearch.vue?vue&type=template&id=7f26c822\"\nimport script from \"./FilesNavigationSearch.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./FilesNavigationSearch.vue?vue&type=script&setup=true&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","/* 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","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ChartPieOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ChartPieOutline.vue?vue&type=script&lang=js\"","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\n\n\n\n\n","import { render, staticRenderFns } from \"./ChartPieOutline.vue?vue&type=template&id=a29cc97a\"\nimport script from \"./ChartPieOutline.vue?vue&type=script&lang=js\"\nexport * from \"./ChartPieOutline.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-outline-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 11H19.95Q19.58 8.25 17.66 6.34 15.75 4.43 13 4.05M11 19.95V4.05Q8 4.43 6 6.69 4 8.95 4 12T6 17.31Q8 19.58 11 19.95M13 19.95Q15.75 19.6 17.68 17.68 19.6 15.75 19.95 13H13M12 12M12 22Q9.93 22 8.1 21.21 6.28 20.43 4.93 19.08 3.58 17.73 2.79 15.9 2 14.08 2 12T2.79 8.1Q3.58 6.28 4.93 4.93 6.28 3.58 8.1 2.79 9.93 2 12 2T15.89 2.79Q17.7 3.58 19.06 4.94 20.43 6.3 21.21 8.11 22 9.93 22 12 22 14.05 21.21 15.88 20.43 17.7 19.08 19.06 17.73 20.43 15.9 21.21 14.08 22 12 22Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\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!./NavigationQuota.vue?vue&type=style&index=0&id=7c2cda32&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=7c2cda32&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=7c2cda32&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=7c2cda32&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 \"7c2cda32\",\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,_setup=_vm._self._setupProxy;return _c(_setup.NcAppSettingsDialog,{attrs:{\"legacy\":false,\"name\":_setup.t('files', 'Files settings'),\"no-version\":\"\",\"open\":_vm.open,\"show-navigation\":\"\"},on:{\"update:open\":function($event){return _setup.emit('close')}}},[_c(_setup.FilesAppSettingsGeneral),_vm._v(\" \"),_c(_setup.FilesAppSettingsAppearance),_vm._v(\" \"),_c(_setup.FilesAppSettingsLegacyApi),_vm._v(\" \"),_c(_setup.FilesAppSettingsWarnings),_vm._v(\" \"),_c(_setup.FilesAppSettingsWebDav),_vm._v(\" \"),_c(_setup.FilesAppSettingsShortcuts)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c(_setup.NcAppSettingsSection,{attrs:{\"id\":\"appearance\",\"name\":_setup.t('files', 'Appearance')}},[_c(_setup.NcFormBox,[_c(_setup.NcFormBoxSwitch,{attrs:{\"label\":_setup.t('files', 'Show hidden files')},on:{\"update:modelValue\":function($event){return _setup.store.update('show_hidden', $event)}},model:{value:(_setup.store.userConfig.show_hidden),callback:function ($$v) {_vm.$set(_setup.store.userConfig, \"show_hidden\", $$v)},expression:\"store.userConfig.show_hidden\"}}),_vm._v(\" \"),_c(_setup.NcFormBoxSwitch,{attrs:{\"label\":_setup.t('files', 'Show file type column')},on:{\"update:modelValue\":function($event){return _setup.store.update('show_mime_column', $event)}},model:{value:(_setup.store.userConfig.show_mime_column),callback:function ($$v) {_vm.$set(_setup.store.userConfig, \"show_mime_column\", $$v)},expression:\"store.userConfig.show_mime_column\"}}),_vm._v(\" \"),_c(_setup.NcFormBoxSwitch,{attrs:{\"label\":_setup.t('files', 'Show file extensions')},on:{\"update:modelValue\":function($event){return _setup.store.update('show_files_extensions', $event)}},model:{value:(_setup.store.userConfig.show_files_extensions),callback:function ($$v) {_vm.$set(_setup.store.userConfig, \"show_files_extensions\", $$v)},expression:\"store.userConfig.show_files_extensions\"}}),_vm._v(\" \"),_c(_setup.NcFormBoxSwitch,{attrs:{\"label\":_setup.t('files', 'Crop image previews')},on:{\"update:modelValue\":function($event){return _setup.store.update('crop_image_previews', $event)}},model:{value:(_setup.store.userConfig.crop_image_previews),callback:function ($$v) {_vm.$set(_setup.store.userConfig, \"crop_image_previews\", $$v)},expression:\"store.userConfig.crop_image_previews\"}})],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-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesAppSettingsAppearance.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-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesAppSettingsAppearance.vue?vue&type=script&setup=true&lang=ts\"","import { render, staticRenderFns } from \"./FilesAppSettingsAppearance.vue?vue&type=template&id=1d0fcc36\"\nimport script from \"./FilesAppSettingsAppearance.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./FilesAppSettingsAppearance.vue?vue&type=script&setup=true&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(_setup.NcAppSettingsSection,{attrs:{\"id\":\"settings\",\"name\":_setup.t('files', 'General')}},[_c(_setup.NcFormBox,[_c(_setup.NcFormBoxSwitch,{attrs:{\"label\":_setup.t('files', 'Sort favorites first')},on:{\"update:modelValue\":function($event){return _setup.store.update('sort_favorites_first', $event)}},model:{value:(_setup.store.userConfig.sort_favorites_first),callback:function ($$v) {_vm.$set(_setup.store.userConfig, \"sort_favorites_first\", $$v)},expression:\"store.userConfig.sort_favorites_first\"}}),_vm._v(\" \"),_c(_setup.NcFormBoxSwitch,{attrs:{\"label\":_setup.t('files', 'Sort folders before files')},on:{\"update:modelValue\":function($event){return _setup.store.update('sort_folders_first', $event)}},model:{value:(_setup.store.userConfig.sort_folders_first),callback:function ($$v) {_vm.$set(_setup.store.userConfig, \"sort_folders_first\", $$v)},expression:\"store.userConfig.sort_folders_first\"}}),_vm._v(\" \"),_c(_setup.NcFormBoxSwitch,{attrs:{\"label\":_setup.t('files', 'Enable folder tree view')},on:{\"update:modelValue\":function($event){return _setup.store.update('folder_tree', $event)}},model:{value:(_setup.store.userConfig.folder_tree),callback:function ($$v) {_vm.$set(_setup.store.userConfig, \"folder_tree\", $$v)},expression:\"store.userConfig.folder_tree\"}})],1),_vm._v(\" \"),_c(_setup.NcRadioGroup,{attrs:{\"label\":_setup.t('files', 'Default view')},on:{\"update:modelValue\":function($event){return _setup.store.update('default_view', $event)}},model:{value:(_setup.store.userConfig.default_view),callback:function ($$v) {_vm.$set(_setup.store.userConfig, \"default_view\", $$v)},expression:\"store.userConfig.default_view\"}},[_c(_setup.NcRadioGroupButton,{attrs:{\"label\":_setup.t('files', 'All files'),\"value\":\"files\"},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiFolderOutline}})]},proxy:true}])}),_vm._v(\" \"),_c(_setup.NcRadioGroupButton,{attrs:{\"label\":_setup.t('files', 'Personal files'),\"value\":\"personal\"},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiAccountOutline}})]},proxy:true}])})],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-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesAppSettingsGeneral.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-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesAppSettingsGeneral.vue?vue&type=script&setup=true&lang=ts\"","import { render, staticRenderFns } from \"./FilesAppSettingsGeneral.vue?vue&type=template&id=286756ea\"\nimport script from \"./FilesAppSettingsGeneral.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./FilesAppSettingsGeneral.vue?vue&type=script&setup=true&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-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesAppSettingsLegacyApiEntry.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-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesAppSettingsLegacyApiEntry.vue?vue&type=script&setup=true&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{ref:\"el\"})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./FilesAppSettingsLegacyApiEntry.vue?vue&type=template&id=6d8612e1\"\nimport script from \"./FilesAppSettingsLegacyApiEntry.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./FilesAppSettingsLegacyApiEntry.vue?vue&type=script&setup=true&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-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesAppSettingsLegacyApi.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-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesAppSettingsLegacyApi.vue?vue&type=script&setup=true&lang=ts\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_setup.apiSettings.length !== 0)?_c(_setup.NcAppSettingsSection,{attrs:{\"id\":\"api-settings\",\"name\":_setup.t('files', 'Additional settings')}},_vm._l((_setup.apiSettings),function(setting){return _c(_setup.FilesAppSettingsLegacyApiEntry,{key:setting.name,attrs:{\"setting\":setting}})}),1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./FilesAppSettingsLegacyApi.vue?vue&type=template&id=f4559f9c\"\nimport script from \"./FilesAppSettingsLegacyApi.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./FilesAppSettingsLegacyApi.vue?vue&type=script&setup=true&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(_setup.NcAppSettingsShortcutsSection,[_c(_setup.NcHotkeyList,{attrs:{\"label\":_setup.t('files', 'Actions')}},[_c(_setup.NcHotkey,{attrs:{\"label\":_setup.t('files', 'File actions'),\"hotkey\":\"A\"}}),_vm._v(\" \"),_vm._l((_setup.actionHotkeys),function(hotkey){return _c(_setup.NcHotkey,{key:hotkey.id,attrs:{\"label\":hotkey.label,\"hotkey\":hotkey.hotkey}})})],2),_vm._v(\" \"),_c(_setup.NcHotkeyList,{attrs:{\"label\":_setup.t('files', 'Selection')}},[_c(_setup.NcHotkey,{attrs:{\"label\":_setup.t('files', 'Select all files'),\"hotkey\":\"Control A\"}}),_vm._v(\" \"),_c(_setup.NcHotkey,{attrs:{\"label\":_setup.t('files', 'Deselect all'),\"hotkey\":\"Escape\"}}),_vm._v(\" \"),_c(_setup.NcHotkey,{attrs:{\"label\":_setup.t('files', 'Select or deselect'),\"hotkey\":\"Control Space\"}}),_vm._v(\" \"),_c(_setup.NcHotkey,{attrs:{\"label\":_setup.t('files', 'Select a range'),\"hotkey\":\"Control Shift Space\"}})],1),_vm._v(\" \"),_c(_setup.NcHotkeyList,{attrs:{\"label\":_setup.t('files', 'Navigation')}},[_c(_setup.NcHotkey,{attrs:{\"label\":_setup.t('files', 'Go to parent folder'),\"hotkey\":\"Alt ArrowUp\"}}),_vm._v(\" \"),_c(_setup.NcHotkey,{attrs:{\"label\":_setup.t('files', 'Go to file above'),\"hotkey\":\"ArrowUp\"}}),_vm._v(\" \"),_c(_setup.NcHotkey,{attrs:{\"label\":_setup.t('files', 'Go to file below'),\"hotkey\":\"ArrowDown\"}}),_vm._v(\" \"),_c(_setup.NcHotkey,{attrs:{\"label\":_setup.t('files', 'Go left in grid'),\"hotkey\":\"ArrowLeft\"}}),_vm._v(\" \"),_c(_setup.NcHotkey,{attrs:{\"label\":_setup.t('files', 'Go right in grid'),\"hotkey\":\"ArrowRight\"}})],1),_vm._v(\" \"),_c(_setup.NcHotkeyList,{attrs:{\"label\":_setup.t('files', 'View')}},[_c(_setup.NcHotkey,{attrs:{\"label\":_setup.t('files', 'Toggle grid view'),\"hotkey\":\"V\"}}),_vm._v(\" \"),_c(_setup.NcHotkey,{attrs:{\"label\":_setup.t('files', 'Show those shortcuts'),\"hotkey\":\"?\"}})],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-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesAppSettingsShortcuts.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-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesAppSettingsShortcuts.vue?vue&type=script&setup=true&lang=ts\"","import { render, staticRenderFns } from \"./FilesAppSettingsShortcuts.vue?vue&type=template&id=5a8abf86\"\nimport script from \"./FilesAppSettingsShortcuts.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./FilesAppSettingsShortcuts.vue?vue&type=script&setup=true&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-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesAppSettingsWarnings.vue?vue&type=script&lang=ts&setup=true\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesAppSettingsWarnings.vue?vue&type=script&lang=ts&setup=true\"","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c(_setup.NcAppSettingsSection,{attrs:{\"id\":\"warning\",\"name\":_setup.t('files', 'Warnings')}},[_c(_setup.NcFormBox,[_c(_setup.NcFormBoxSwitch,{attrs:{\"label\":_setup.t('files', 'Warn before changing a file extension')},on:{\"update:modelValue\":function($event){return _setup.store.update('show_dialog_file_extension', $event)}},model:{value:(_setup.store.userConfig.show_dialog_file_extension),callback:function ($$v) {_vm.$set(_setup.store.userConfig, \"show_dialog_file_extension\", $$v)},expression:\"store.userConfig.show_dialog_file_extension\"}}),_vm._v(\" \"),_c(_setup.NcFormBoxSwitch,{attrs:{\"label\":_setup.t('files', 'Warn before deleting a file')},on:{\"update:modelValue\":function($event){return _setup.store.update('show_dialog_deletion', $event)}},model:{value:(_setup.store.userConfig.show_dialog_deletion),callback:function ($$v) {_vm.$set(_setup.store.userConfig, \"show_dialog_deletion\", $$v)},expression:\"store.userConfig.show_dialog_deletion\"}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./FilesAppSettingsWarnings.vue?vue&type=template&id=02608f74\"\nimport script from \"./FilesAppSettingsWarnings.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./FilesAppSettingsWarnings.vue?vue&type=script&lang=ts&setup=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 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(_setup.NcAppSettingsSection,{attrs:{\"id\":\"webdav\",\"name\":\"WebDAV\"}},[_c(_setup.NcFormBox,[_c(_setup.NcFormBoxCopyButton,{attrs:{\"label\":_setup.t('files', 'WebDAV URL'),\"value\":_setup.webDavUrl}}),_vm._v(\" \"),(_setup.isTwoFactorEnabled)?_c(_setup.NcFormBoxButton,{attrs:{\"label\":_setup.t('files', 'Create an app password'),\"description\":_setup.t('files', 'Required for WebDAV authentication because Two-Factor Authentication is enabled for this account.'),\"href\":_setup.appPasswordUrl,\"target\":\"_blank\"}}):_vm._e(),_vm._v(\" \"),_c(_setup.NcFormBoxButton,{attrs:{\"label\":_setup.t('files', 'How to access files using WebDAV'),\"href\":_setup.webDavDocsUrl,\"target\":\"_blank\"}})],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-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesAppSettingsWebDav.vue?vue&type=script&lang=ts&setup=true\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesAppSettingsWebDav.vue?vue&type=script&lang=ts&setup=true\"","import { render, staticRenderFns } from \"./FilesAppSettingsWebDav.vue?vue&type=template&id=601f53e8\"\nimport script from \"./FilesAppSettingsWebDav.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./FilesAppSettingsWebDav.vue?vue&type=script&lang=ts&setup=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 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-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesAppSettings.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-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesAppSettings.vue?vue&type=script&setup=true&lang=ts\"","import { render, staticRenderFns } from \"./FilesAppSettings.vue?vue&type=template&id=72195bd8\"\nimport script from \"./FilesAppSettings.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./FilesAppSettings.vue?vue&type=script&setup=true&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-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesNavigation.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-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesNavigation.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!./FilesNavigation.vue?vue&type=style&index=0&id=bb94c4f2&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!./FilesNavigation.vue?vue&type=style&index=0&id=bb94c4f2&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FilesNavigation.vue?vue&type=template&id=bb94c4f2&scoped=true\"\nimport script from \"./FilesNavigation.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./FilesNavigation.vue?vue&type=script&setup=true&lang=ts\"\nimport style0 from \"./FilesNavigation.vue?vue&type=style&index=0&id=bb94c4f2&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 \"bb94c4f2\",\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(_setup.NcAppSidebar,{attrs:{\"data-cy-sidebar\":\"\",\"force-menu\":\"\",\"active\":_setup.sidebar.activeTab,\"background\":_setup.background,\"empty\":!_setup.sidebar.hasContext,\"loading\":!_setup.sidebar.hasContext,\"name\":_setup.sidebar.currentNode?.displayname ?? _setup.t('files', 'Loading …'),\"no-toggle\":\"\",\"open\":_setup.sidebar.isOpen},on:{\"update:active\":function($event){return _vm.$set(_setup.sidebar, \"activeTab\", $event)},\"closed\":_setup.onClosed,\"opened\":_setup.onOpened,\"update:open\":_setup.onToggle},scopedSlots:_vm._u([(_setup.sidebar.currentNode)?{key:\"subname\",fn:function(){return [_c(_setup.FilesSidebarSubname,{attrs:{\"node\":_setup.sidebar.currentNode}})]},proxy:true}:null,(_setup.sidebar.currentContext)?{key:\"secondary-actions\",fn:function(){return _vm._l((_setup.sidebar.currentActions),function(action){return _c(_setup.NcActionButton,{key:action.id,attrs:{\"close-after-click\":\"\"},on:{\"click\":function($event){return action.onClick(_setup.sidebar.currentContext)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"svg\":action.iconSvgInline(_setup.sidebar.currentContext)}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(action.displayName(_setup.sidebar.currentContext))+\"\\n\\t\\t\")])})},proxy:true}:null],null,true)},[_vm._v(\" \"),_vm._v(\" \"),(_setup.sidebar.hasContext)?_vm._l((_setup.sidebar.currentTabs),function(tab){return _c(_setup.FilesSidebarTab,{key:tab.id,attrs:{\"active\":_setup.sidebar.activeTab === tab.id,\"tab\":tab}})}):_vm._e()],2)\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',{class:_vm.$style.filesSidebarSubname},[(_setup.isFavourited)?_c(_setup.NcIconSvgWrapper,{attrs:{\"inline\":\"\",\"path\":_setup.mdiStar,\"name\":_setup.t('files', 'Favorite')}}):_vm._e(),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_setup.size))]),_vm._v(\" \"),(_vm.node.mtime)?_c('span',[_c('span',{class:_vm.$style.filesSidebarSubname__separator},[_vm._v(\"•\")]),_vm._v(\" \"),_c(_setup.NcDateTime,{attrs:{\"timestamp\":_vm.node.mtime}})],1):_vm._e(),_vm._v(\" \"),(_vm.node.owner)?[_c('span',{class:_vm.$style.filesSidebarSubname__separator},[_vm._v(\"•\")]),_vm._v(\" \"),_c(_setup.NcUserBubble,{class:_vm.$style.filesSidebarSubname__userBubble,attrs:{\"title\":_setup.t('files', 'Owner'),\"user\":_vm.node.owner,\"display-name\":_vm.node.attributes['owner-display-name']}})]:_vm._e()],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-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesSidebarSubname.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-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesSidebarSubname.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??clonedRuleSet-3.use[1]!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesSidebarSubname.vue?vue&type=style&index=0&id=7bd1e3c0&prod&module=true&lang=css\";\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??clonedRuleSet-3.use[1]!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesSidebarSubname.vue?vue&type=style&index=0&id=7bd1e3c0&prod&module=true&lang=css\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FilesSidebarSubname.vue?vue&type=template&id=7bd1e3c0\"\nimport script from \"./FilesSidebarSubname.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./FilesSidebarSubname.vue?vue&type=script&setup=true&lang=ts\"\nimport style0 from \"./FilesSidebarSubname.vue?vue&type=style&index=0&id=7bd1e3c0&prod&module=true&lang=css\"\n\n\n\n\nfunction injectStyles (context) {\n \n this[\"$style\"] = (style0.locals || style0)\n\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 injectStyles,\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(_setup.NcAppSidebarTab,{attrs:{\"id\":_vm.tab.id,\"order\":_vm.tab.order,\"name\":_vm.tab.displayName},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"svg\":_vm.tab.iconSvgInline}})]},proxy:true}])},[_vm._v(\" \"),(_setup.loading)?_c(_setup.NcEmptyContent,{scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcLoadingIcon)]},proxy:true}],null,false,1675040227)}):_c(_vm.tab.tagName,{tag:\"component\",domProps:{\"active\":_vm.active,\"node\":_setup.sidebar.currentNode,\"folder\":_setup.activeStore.activeFolder,\"view\":_setup.activeStore.activeView}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { N as NcActionButton } from \"./chunks/NcActionButton-1gSJfFUC.mjs\";\nimport { N as NcActionButtonGroup } from \"./chunks/NcActionButtonGroup-eZxqibUd.mjs\";\nimport NcActionCaption from \"./Components/NcActionCaption.mjs\";\nimport { N as NcActionCheckbox } from \"./chunks/NcActionCheckbox-23CmleUh.mjs\";\nimport { N as NcActionInput } from \"./chunks/NcActionInput-UPwE2Dky.mjs\";\nimport NcActionLink from \"./Components/NcActionLink.mjs\";\nimport { N as NcActionRadio } from \"./chunks/NcActionRadio-Dd3CsuiD.mjs\";\nimport NcActionRouter from \"./Components/NcActionRouter.mjs\";\nimport { N as NcActions } from \"./chunks/NcActions-BcLis_nr.mjs\";\nimport NcActionSeparator from \"./Components/NcActionSeparator.mjs\";\nimport NcActionText from \"./Components/NcActionText.mjs\";\nimport { N as NcActionTextEditable } from \"./chunks/NcActionTextEditable-CIsAP-pp.mjs\";\nimport { N as NcAppContent } from \"./chunks/NcAppContent-CeVqX0gV.mjs\";\nimport NcAppContentDetails from \"./Components/NcAppContentDetails.mjs\";\nimport NcAppContentList from \"./Components/NcAppContentList.mjs\";\nimport { N as NcAppNavigation } from \"./chunks/NcAppNavigation-BfzJA6cb.mjs\";\nimport { N as NcAppNavigationCaption } from \"./chunks/NcAppNavigationCaption-3YHrxAYS.mjs\";\nimport NcAppNavigationIconBullet from \"./Components/NcAppNavigationIconBullet.mjs\";\nimport { N as NcAppNavigationItem } from \"./chunks/NcAppNavigationItem-D30ztZfZ.mjs\";\nimport NcAppNavigationList from \"./Components/NcAppNavigationList.mjs\";\nimport { N as NcAppNavigationNew } from \"./chunks/NcAppNavigationNew-Ce_TheyK.mjs\";\nimport { N as NcAppNavigationNewItem } from \"./chunks/NcAppNavigationNewItem-BskLwwWH.mjs\";\nimport { N as NcAppNavigationSearch } from \"./chunks/NcAppNavigationSearch-CkcBGG0H.mjs\";\nimport { N as NcAppNavigationSettings } from \"./chunks/NcAppNavigationSettings-BjyBA5Mj.mjs\";\nimport NcAppNavigationSpacer from \"./Components/NcAppNavigationSpacer.mjs\";\nimport { N as NcAppSettingsDialog } from \"./chunks/NcAppSettingsDialog-vBeCGFqk.mjs\";\nimport { N as NcAppSettingsSection } from \"./chunks/NcAppSettingsSection-BjQllLEA.mjs\";\nimport { N as NcAppSettingsShortcutsSection } from \"./chunks/NcAppSettingsShortcutsSection-DblUBaWP.mjs\";\nimport { N as NcAppSidebar } from \"./chunks/NcAppSidebar-Cx0PlofZ.mjs\";\nimport { N as NcAppSidebarHeader } from \"./chunks/NcAppSidebarHeader-CBE4tNYb.mjs\";\nimport NcAppSidebarTab from \"./Components/NcAppSidebarTab.mjs\";\nimport { N as NcAssistantButton } from \"./chunks/NcAssistantButton-D1Miejvu.mjs\";\nimport NcAssistantContent from \"./Components/NcAssistantContent.mjs\";\nimport { N as NcAssistantIcon } from \"./chunks/NcAssistantIcon-DCx6AaSW.mjs\";\nimport { N as NcAvatar } from \"./chunks/NcAvatar-DC2fiCH-.mjs\";\nimport { u } from \"./chunks/NcAvatar-DC2fiCH-.mjs\";\nimport { N as NcBlurHash } from \"./chunks/NcBlurHash-KSj0HXbX.mjs\";\nimport { N as NcBreadcrumb } from \"./chunks/NcBreadcrumb-VwnF27KB.mjs\";\nimport { N as NcBreadcrumbs } from \"./chunks/NcBreadcrumbs-CpXJ-OQ1.mjs\";\nimport { N as NcButton } from \"./chunks/NcButton-BaZAY-tN.mjs\";\nimport { N as NcCheckboxRadioSwitch } from \"./chunks/NcCheckboxRadioSwitch-DJmw98x9.mjs\";\nimport { N as NcCollectionList } from \"./chunks/NcCollectionList-U0EoWgeN.mjs\";\nimport { N as NcColorPicker } from \"./chunks/NcColorPicker-BfApfazi.mjs\";\nimport { N as NcContent } from \"./chunks/NcContent-DFOsZ6pm.mjs\";\nimport { N as NcCounterBubble } from \"./chunks/NcCounterBubble-oxV8oMlX.mjs\";\nimport { N as NcDashboardWidget } from \"./chunks/NcDashboardWidget-Cp3DMHz7.mjs\";\nimport { N as NcDashboardWidgetItem } from \"./chunks/NcDashboardWidgetItem-BCjppWNJ.mjs\";\nimport { N as NcDateTime } from \"./chunks/NcDateTime-enXYuwj8.mjs\";\nimport NcDateTimePicker from \"./Components/NcDateTimePicker.mjs\";\nimport NcDateTimePickerNative from \"./Components/NcDateTimePickerNative.mjs\";\nimport { N as NcDialog } from \"./chunks/NcDialog-CDFWleNp.mjs\";\nimport { N as NcDialogButton } from \"./chunks/NcDialogButton-tB5RGMME.mjs\";\nimport NcEllipsisedOption from \"./Components/NcEllipsisedOption.mjs\";\nimport { N as NcEmojiPicker } from \"./chunks/NcEmojiPicker-Cw593Jp6.mjs\";\nimport NcEmptyContent from \"./Components/NcEmptyContent.mjs\";\nimport { N as NcFilePicker } from \"./chunks/NcFilePicker-CDHKrfPj.mjs\";\nimport { N as NcFormBox } from \"./chunks/NcFormBox-DtoCXLMx.mjs\";\nimport { N as NcFormBoxButton } from \"./chunks/NcFormBoxButton-BQi11xQX.mjs\";\nimport { N as NcFormBoxCopyButton } from \"./chunks/NcFormBoxCopyButton-BkunQ3me.mjs\";\nimport { N as NcFormBoxSwitch } from \"./chunks/NcFormBoxSwitch-E6sxPL4n.mjs\";\nimport { N as NcFormGroup } from \"./chunks/NcFormGroup-DblLoFMf.mjs\";\nimport NcGuestContent from \"./Components/NcGuestContent.mjs\";\nimport { N as NcHeaderButton } from \"./chunks/NcHeaderButton-BI15lyn_.mjs\";\nimport { N as NcHeaderMenu } from \"./chunks/NcHeaderMenu-B2gYavD4.mjs\";\nimport { N as NcHighlight } from \"./chunks/index-CxTT94_h.mjs\";\nimport { N as NcHotkey } from \"./chunks/NcHotkey-CLLtt9LG.mjs\";\nimport { N as NcHotkeyList } from \"./chunks/NcHotkeyList-Co7MBL5U.mjs\";\nimport { N as NcIconSvgWrapper } from \"./chunks/NcIconSvgWrapper-Bui9PhAS.mjs\";\nimport { N as NcInputField } from \"./chunks/NcInputField-Cfm1bJR4.mjs\";\nimport { N as NcListItem } from \"./chunks/NcListItem-RKTfRg06.mjs\";\nimport { N as NcListItemIcon } from \"./chunks/NcListItemIcon-D49wESTI.mjs\";\nimport NcLoadingIcon from \"./Components/NcLoadingIcon.mjs\";\nimport NcModal from \"./Components/NcModal.mjs\";\nimport NcNoteCard from \"./Components/NcNoteCard.mjs\";\nimport { N as NcPasswordField } from \"./chunks/NcPasswordField-lE4m20vf.mjs\";\nimport { N as NcPopover } from \"./chunks/NcPopover-UAg26Qdd.mjs\";\nimport { N as NcProgressBar } from \"./chunks/NcProgressBar-D7zYeXBH.mjs\";\nimport { N as NcRadioGroup } from \"./chunks/NcRadioGroup-BbBX9X2J.mjs\";\nimport { N as NcRadioGroupButton } from \"./chunks/NcRadioGroupButton-BkxlxjIA.mjs\";\nimport { N as NcRelatedResourcesPanel } from \"./chunks/NcRelatedResourcesPanel-C2sLodV8.mjs\";\nimport { N as NcMentionBubble } from \"./chunks/index-TmAR7I2T.mjs\";\nimport { r } from \"./chunks/index-TmAR7I2T.mjs\";\nimport { N as NcAutoCompleteResult, a as NcRichContenteditable } from \"./chunks/NcRichContenteditable-SA1zbfkk.mjs\";\nimport \"@nextcloud/auth\";\nimport \"@nextcloud/axios\";\nimport \"@nextcloud/router\";\nimport \"@nextcloud/sharing/public\";\nimport \"@vueuse/core\";\nimport \"vue\";\nimport \"vue-router\";\nimport { a, g, b, c, s, d } from \"./chunks/referencePickerModal-DD_GM6xV.mjs\";\nimport { N, h, c as c2, i, e, r as r2, f, a as a2 } from \"./chunks/customPickerElements-DLFtgReB.mjs\";\nimport \"unist-builder\";\nimport \"unist-util-visit\";\nimport \"./chunks/logger-D3RVzcfQ.mjs\";\nimport { N as NcRichText } from \"./chunks/NcRichText-rNfwY_Oc.mjs\";\nimport { N as NcSelect } from \"./chunks/NcSelect-CbWXsDdZ.mjs\";\nimport { N as NcTextField } from \"./chunks/NcTextField-DZHP0Dfw.mjs\";\nimport \"@nextcloud/event-bus\";\nimport { N as NcSavingIndicatorIcon } from \"./chunks/NcSavingIndicatorIcon-U7AIamCl.mjs\";\nimport { N as NcSelectTags } from \"./chunks/NcSelectTags-CqVn5iU9.mjs\";\nimport { N as NcSelectUsers } from \"./chunks/NcSelectUsers-DGnn4yBW.mjs\";\nimport { N as NcSettingsInputText } from \"./chunks/NcSettingsInputText-BwnkZzWL.mjs\";\nimport { N as NcSettingsSection } from \"./chunks/NcSettingsSection-Dz_b9rcq.mjs\";\nimport { N as NcSettingsSelectGroup } from \"./chunks/NcSettingsSelectGroup-BaSHNm1x.mjs\";\nimport { N as NcTextArea } from \"./chunks/NcTextArea-fGUiK7p2.mjs\";\nimport { N as NcThemeProvider } from \"./chunks/NcThemeProvider-BA_zMjAf.mjs\";\nimport { N as NcTimezonePicker } from \"./chunks/NcTimezonePicker-w7XtRhLb.mjs\";\nimport { N as NcUserBubble } from \"./chunks/NcUserBubble-CIOqCO9S.mjs\";\nimport { N as NcUserStatusIcon } from \"./chunks/NcUserStatusIcon-Cq1RnTfF.mjs\";\nimport NcVNodes from \"./Components/NcVNodes.mjs\";\nimport { useFormatDateTime, useFormatRelativeTime, useFormatTime } from \"./Composables/useFormatDateTime.mjs\";\nimport { useHotKey } from \"./Composables/useHotKey.mjs\";\nimport { useIsDarkTheme, useIsDarkThemeElement } from \"./Composables/useIsDarkTheme.mjs\";\nimport { isFullscreenState, useIsFullscreen } from \"./Composables/useIsFullscreen.mjs\";\nimport { MOBILE_BREAKPOINT, MOBILE_SMALL_BREAKPOINT, isMobileState, useIsMobile, useIsSmallMobile } from \"./Composables/useIsMobile.mjs\";\nimport { isA11yActivation } from \"./Functions/a11y.mjs\";\nimport { getEnabledContactsMenuActions, registerContactsMenuAction } from \"./Functions/contactsMenu.mjs\";\nimport { spawnDialog } from \"./Functions/dialog.mjs\";\nimport { E, a as a3, e as e2, g as g2, s as s2 } from \"./chunks/emoji-BgZdRy3v.mjs\";\nimport { checkIfDarkTheme, isDarkTheme } from \"./Functions/isDarkTheme.mjs\";\nimport { preloadImage } from \"./Functions/preloadImage.mjs\";\nimport { usernameToColor } from \"./Functions/usernameToColor.mjs\";\nimport directive from \"./Directives/Focus.mjs\";\nimport directive$1 from \"./Directives/Linkify.mjs\";\nimport \"./Directives/Tooltip.mjs\";\nimport { default as default2 } from \"./Mixins/clickOutsideOptions.mjs\";\nimport { default as default3 } from \"./Mixins/isFullscreen.mjs\";\nimport { default as default4 } from \"./Mixins/isMobile.mjs\";\nimport { VTooltip } from \"floating-vue\";\nimport { VTooltip as VTooltip2 } from \"floating-vue\";\nconst NcComponents = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n NcActionButton,\n NcActionButtonGroup,\n NcActionCaption,\n NcActionCheckbox,\n NcActionInput,\n NcActionLink,\n NcActionRadio,\n NcActionRouter,\n NcActionSeparator,\n NcActionText,\n NcActionTextEditable,\n NcActions,\n NcAppContent,\n NcAppContentDetails,\n NcAppContentList,\n NcAppNavigation,\n NcAppNavigationCaption,\n NcAppNavigationIconBullet,\n NcAppNavigationItem,\n NcAppNavigationList,\n NcAppNavigationNew,\n NcAppNavigationNewItem,\n NcAppNavigationSearch,\n NcAppNavigationSettings,\n NcAppNavigationSpacer,\n NcAppSettingsDialog,\n NcAppSettingsSection,\n NcAppSettingsSectionShortcuts: NcAppSettingsShortcutsSection,\n NcAppSettingsShortcutsSection,\n NcAppSidebar,\n NcAppSidebarHeader,\n NcAppSidebarTab,\n NcAssistantButton,\n NcAssistantContent,\n NcAssistantIcon,\n NcAutoCompleteResult,\n NcAvatar,\n NcBlurHash,\n NcBreadcrumb,\n NcBreadcrumbs,\n NcButton,\n NcCheckboxRadioSwitch,\n NcCollectionList,\n NcColorPicker,\n NcContent,\n NcCounterBubble,\n NcDashboardWidget,\n NcDashboardWidgetItem,\n NcDateTime,\n NcDateTimePicker,\n NcDateTimePickerNative,\n NcDialog,\n NcDialogButton,\n NcEllipsisedOption,\n NcEmojiPicker,\n NcEmptyContent,\n NcFilePicker,\n NcFormBox,\n NcFormBoxButton,\n NcFormBoxCopyButton,\n NcFormBoxSwitch,\n NcFormGroup,\n NcGuestContent,\n NcHeaderButton,\n NcHeaderMenu,\n NcHighlight,\n NcHotkey,\n NcHotkeyList,\n NcIconSvgWrapper,\n NcInputField,\n NcListItem,\n NcListItemIcon,\n NcLoadingIcon,\n NcMentionBubble,\n NcModal,\n NcNoteCard,\n NcPasswordField,\n NcPopover,\n NcProgressBar,\n NcRadioGroup,\n NcRadioGroupButton,\n NcRelatedResourcesPanel,\n NcRichContenteditable,\n NcRichText,\n NcSavingIndicatorIcon,\n NcSelect,\n NcSelectTags,\n NcSelectUsers,\n NcSettingsInputText,\n NcSettingsSection,\n NcSettingsSelectGroup,\n NcTextArea,\n NcTextField,\n NcThemeProvider,\n NcTimezonePicker,\n NcUserBubble,\n NcUserStatusIcon,\n NcVNodes\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst NcDirectives = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n Focus: directive,\n Linkify: directive$1,\n Tooltip: VTooltip\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst NextcloudVuePlugin = {\n install(Vue) {\n Object.entries(NcComponents).forEach(([name, component]) => {\n Vue.component(component.name || name, component);\n });\n Object.entries(NcDirectives).forEach(([name, directive2]) => {\n Vue.directive(name, directive2);\n });\n }\n};\nexport {\n E as EmojiSkinTone,\n directive as Focus,\n directive$1 as Linkify,\n MOBILE_BREAKPOINT,\n MOBILE_SMALL_BREAKPOINT,\n NcActionButton,\n NcActionButtonGroup,\n NcActionCaption,\n NcActionCheckbox,\n NcActionInput,\n NcActionLink,\n NcActionRadio,\n NcActionRouter,\n NcActionSeparator,\n NcActionText,\n NcActionTextEditable,\n NcActions,\n NcAppContent,\n NcAppContentDetails,\n NcAppContentList,\n NcAppNavigation,\n NcAppNavigationCaption,\n NcAppNavigationIconBullet,\n NcAppNavigationItem,\n NcAppNavigationList,\n NcAppNavigationNew,\n NcAppNavigationNewItem,\n NcAppNavigationSearch,\n NcAppNavigationSettings,\n NcAppNavigationSpacer,\n NcAppSettingsDialog,\n NcAppSettingsSection,\n NcAppSettingsShortcutsSection as NcAppSettingsSectionShortcuts,\n NcAppSettingsShortcutsSection,\n NcAppSidebar,\n NcAppSidebarHeader,\n NcAppSidebarTab,\n NcAssistantButton,\n NcAssistantContent,\n NcAssistantIcon,\n NcAutoCompleteResult,\n NcAvatar,\n NcBlurHash,\n NcBreadcrumb,\n NcBreadcrumbs,\n NcButton,\n NcCheckboxRadioSwitch,\n NcCollectionList,\n NcColorPicker,\n NcContent,\n NcCounterBubble,\n N as NcCustomPickerRenderResult,\n NcDashboardWidget,\n NcDashboardWidgetItem,\n NcDateTime,\n NcDateTimePicker,\n NcDateTimePickerNative,\n NcDialog,\n NcDialogButton,\n NcEllipsisedOption,\n NcEmojiPicker,\n NcEmptyContent,\n NcFilePicker,\n NcFormBox,\n NcFormBoxButton,\n NcFormBoxCopyButton,\n NcFormBoxSwitch,\n NcFormGroup,\n NcGuestContent,\n NcHeaderButton,\n NcHeaderMenu,\n NcHighlight,\n NcHotkey,\n NcHotkeyList,\n NcIconSvgWrapper,\n NcInputField,\n NcListItem,\n NcListItemIcon,\n NcLoadingIcon,\n NcMentionBubble,\n NcModal,\n NcNoteCard,\n NcPasswordField,\n NcPopover,\n NcProgressBar,\n NcRadioGroup,\n NcRadioGroupButton,\n NcRelatedResourcesPanel,\n NcRichContenteditable,\n NcRichText,\n NcSavingIndicatorIcon,\n NcSelect,\n NcSelectTags,\n NcSelectUsers,\n NcSettingsInputText,\n NcSettingsSection,\n NcSettingsSelectGroup,\n NcTextArea,\n NcTextField,\n NcThemeProvider,\n NcTimezonePicker,\n NcUserBubble,\n NcUserStatusIcon,\n NcVNodes,\n NextcloudVuePlugin,\n VTooltip2 as Tooltip,\n a as anyLinkProviderId,\n checkIfDarkTheme,\n default2 as clickOutsideOptions,\n a3 as emojiAddRecent,\n e2 as emojiSearch,\n g2 as getCurrentSkinTone,\n getEnabledContactsMenuActions,\n g as getLinkWithPicker,\n b as getProvider,\n c as getProviders,\n h as hasInteractiveView,\n isA11yActivation,\n c2 as isCustomPickerElementRegistered,\n isDarkTheme,\n default3 as isFullscreen,\n isFullscreenState,\n default4 as isMobile,\n isMobileState,\n i as isWidgetRegistered,\n preloadImage,\n registerContactsMenuAction,\n e as registerCustomPickerElement,\n r2 as registerWidget,\n f as renderCustomPickerElement,\n a2 as renderWidget,\n r as richEditor,\n s as searchProvider,\n s2 as setCurrentSkinTone,\n d as sortProviders,\n spawnDialog,\n useFormatDateTime,\n useFormatRelativeTime,\n useFormatTime,\n useHotKey,\n useIsDarkTheme,\n useIsDarkThemeElement,\n useIsFullscreen,\n useIsMobile,\n useIsSmallMobile,\n u as userStatus,\n usernameToColor\n};\n//# sourceMappingURL=index.mjs.map\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesSidebarTab.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-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesSidebarTab.vue?vue&type=script&setup=true&lang=ts\"","import { render, staticRenderFns } from \"./FilesSidebarTab.vue?vue&type=template&id=475d2f7b\"\nimport script from \"./FilesSidebarTab.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./FilesSidebarTab.vue?vue&type=script&setup=true&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-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesSidebar.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-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesSidebar.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!./FilesSidebar.vue?vue&type=style&index=0&id=f91af60e&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!./FilesSidebar.vue?vue&type=style&index=0&id=f91af60e&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FilesSidebar.vue?vue&type=template&id=f91af60e&scoped=true\"\nimport script from \"./FilesSidebar.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./FilesSidebar.vue?vue&type=script&setup=true&lang=ts\"\nimport style0 from \"./FilesSidebar.vue?vue&type=style&index=0&id=f91af60e&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 \"f91af60e\",\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(_setup.NcContent,{attrs:{\"app-name\":\"files\"}},[(!_setup.isPublic)?_c(_setup.FilesNavigation):_vm._e(),_vm._v(\" \"),_c(_setup.FilesList,{attrs:{\"is-public\":_setup.isPublic}}),_vm._v(\" \"),(!_setup.isPublic)?_c(_setup.FilesSidebar):_vm._e()],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 { getFileActions } from '@nextcloud/files';\nimport { useHotKey } from '@nextcloud/vue/composables/useHotKey';\nimport { dirname } from 'path';\nimport { useRoute, useRouter } from 'vue-router/composables';\nimport { useUserConfigStore } from '../store/userconfig.ts';\nimport { executeAction } from '../utils/actionUtils.ts';\nimport { logger } from '../utils/logger.ts';\nimport { useRouteParameters } from './useRouteParameters.ts';\n/**\n * This register the hotkeys for the Files app.\n * As much as possible, we try to have all the hotkeys in one place.\n * Please make sure to add tests for the hotkeys after adding a new one.\n */\nexport function useHotKeys() {\n const userConfigStore = useUserConfigStore();\n const { directory } = useRouteParameters();\n const router = useRouter();\n const route = useRoute();\n const actions = getFileActions();\n for (const action of actions) {\n if (!action.hotkey) {\n continue;\n }\n const key = action.hotkey.key.match(/^[a-z]$/)\n ? action.hotkey.key.toUpperCase()\n : action.hotkey.key;\n logger.debug(`Register hotkey for action \"${action.id}\"`);\n useHotKey(key, () => executeAction(action), {\n stop: true,\n prevent: true,\n alt: action.hotkey.alt,\n ctrl: action.hotkey.ctrl,\n shift: action.hotkey.shift,\n });\n }\n // alt+up go to parent directory\n useHotKey('ArrowUp', goToParentDir, {\n stop: true,\n prevent: true,\n alt: true,\n });\n // v toggle grid view\n useHotKey('v', toggleGridView, {\n stop: true,\n prevent: true,\n });\n logger.debug('Hotkeys registered');\n /**\n * Use the router to go to the parent directory\n */\n function goToParentDir() {\n const dir = dirname(directory.value);\n logger.debug('Navigating to parent directory', { dir });\n router.push({ params: { ...route.params }, query: { ...route.query, dir } });\n }\n /**\n * Toggle the grid view\n */\n function toggleGridView() {\n const value = userConfigStore.userConfig.grid_view;\n logger.debug('Toggling grid view', { old: value, new: !value });\n userConfigStore.update('grid_view', !value);\n }\n}\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-6.use[1]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesApp.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-6.use[1]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FilesApp.vue?vue&type=script&setup=true&lang=ts\"","import { render, staticRenderFns } from \"./FilesApp.vue?vue&type=template&id=e1f85142\"\nimport script from \"./FilesApp.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./FilesApp.vue?vue&type=script&setup=true&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: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { subscribe } from '@nextcloud/event-bus';\nimport { generateUrl } from '@nextcloud/router';\nimport { relative } from 'path';\nimport queryString from 'query-string';\nimport Vue from 'vue';\nimport Router, { isNavigationFailure, NavigationFailureType } from 'vue-router';\nimport { useFilesStore } from '../store/files.ts';\nimport { getPinia } from '../store/index.ts';\nimport { usePathsStore } from '../store/paths.ts';\nimport { defaultView } from '../utils/filesViews.ts';\nimport { logger } from '../utils/logger.ts';\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 (...args) {\n if (args.length > 1) {\n return originalPush.call(this, ...args);\n }\n return originalPush.call(this, args[0]).catch(ignoreDuplicateNavigation);\n});\nconst originalReplace = Router.prototype.replace;\nRouter.prototype.replace = (function (...args) {\n if (args.length > 1) {\n return originalReplace.call(this, ...args);\n }\n return originalReplace.call(this, args[0]).catch(ignoreDuplicateNavigation);\n});\n/**\n * Ignore duplicated- and redirected-navigation errors but forward real exceptions\n *\n * @param error The thrown error\n */\nfunction ignoreDuplicateNavigation(error) {\n if (isNavigationFailure(error, NavigationFailureType.duplicated)\n || isNavigationFailure(error, NavigationFailureType.redirected)) {\n logger.debug('Ignoring duplicated/redirected navigation from vue-router', { error });\n }\n else {\n throw error;\n }\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: defaultView() } },\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});\n// Handle aborted navigation (NavigationGuards) gracefully\nrouter.onError((error) => {\n if (isNavigationFailure(error, NavigationFailureType.aborted)) {\n logger.debug('Navigation was aboorted', { error });\n }\n else {\n throw error;\n }\n});\n// If navigating back from a folder to a parent folder,\n// we need to keep the current dir fileid so it's highlighted\n// and scrolled into view.\nrouter.beforeResolve((to, from, next) => {\n if (to.params?.parentIntercept) {\n delete to.params.parentIntercept;\n return next();\n }\n if (to.params.view !== from.params.view) {\n // skip if different views\n return next();\n }\n const fromDir = (from.query?.dir || '/');\n const toDir = (to.query?.dir || '/');\n // We are going back to a parent directory\n if (relative(fromDir, toDir) === '..') {\n const { getNode } = useFilesStore();\n const { getPath } = usePathsStore();\n if (!from.params.view) {\n logger.error('No current view id found, cannot navigate to parent directory', { fromDir, toDir });\n return next();\n }\n // Get the previous parent's file id\n const fromSource = getPath(from.params.view, fromDir);\n if (!fromSource) {\n logger.error('No source found for the parent directory', { fromDir, toDir });\n return next();\n }\n const fileId = getNode(fromSource)?.fileid;\n if (!fileId) {\n logger.error('No fileid found for the parent directory', { fromDir, toDir, fromSource });\n return next();\n }\n logger.debug('Navigating back to parent directory', { fromDir, toDir, fileId });\n return next({\n name: 'filelist',\n query: to.query,\n params: {\n ...to.params,\n fileid: String(fileId),\n // Prevents the beforeEach from being called again\n parentIntercept: 'true',\n },\n // Replace the current history entry\n replace: true,\n });\n }\n // else, we just continue\n next();\n});\nsubscribe('files:node:deleted', (node) => {\n if (router.currentRoute.params.fileid === String(node.fileid)) {\n const params = { ...router.currentRoute.params };\n const { getPath } = usePathsStore(getPinia());\n const { getNode } = useFilesStore(getPinia());\n const source = getPath(router.currentRoute.params.view, node.dirname);\n const parentFolder = getNode(source);\n if (source && parentFolder) {\n params.fileid = String(parentFolder.fileid);\n }\n else {\n delete params.fileid;\n }\n const query = { ...router.currentRoute.query };\n delete query.opendetails;\n delete query.openfile;\n router.replace({\n ...router.currentRoute,\n name: router.currentRoute.name,\n params,\n query,\n });\n }\n});\nexport default router;\n","/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nexport 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 *\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 or null to keep current route and just update params/query\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 name ??= this.router.currentRoute.name;\n const location = { name, query, params };\n if (replace) {\n return this._router.replace(location);\n }\n return this._router.push(location);\n }\n}\n","/**\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 { PiniaVuePlugin } from 'pinia';\nimport Vue from 'vue';\nimport FilesApp from './FilesApp.vue';\nimport SettingsModel from './models/Setting.ts';\nimport router from './router/router.ts';\nimport RouterService from './services/RouterService.ts';\nimport SettingsService from './services/Settings.js';\nimport { getPinia } from './store/index.ts';\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 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: getPinia(),\n}).$mount('#content');\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { logger } from '../utils/logger.ts'\n\nexport default class Settings {\n\t_settings\n\n\tconstructor() {\n\t\tthis._settings = []\n\t\tlogger.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\tlogger.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 * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nexport default class Setting {\n #name;\n #options;\n /**\n * Create a new files app setting\n *\n * @param name - The name of this setting\n * @param options - The setting options\n * @param options.el - Function that returns an unmounted dom element to be added\n * @param options.open - Callback for when setting is added\n * @param options.close - Callback for when setting is closed\n * @param options.order - The order of this setting, lower numbers are shown first\n * @since 19.0.0\n */\n constructor(name, options) {\n this.#name = name;\n this.#options = {\n open: () => { },\n close: () => { },\n order: 0,\n ...options,\n };\n if (typeof this.#options.el !== 'function') {\n throw new Error('Setting must have an `el` function that returns a DOM element');\n }\n if (typeof this.#name !== 'string') {\n throw new Error('Setting must have a `name` string');\n }\n if (typeof this.#options.order !== 'number') {\n throw new Error('Setting must have an `order` number');\n }\n }\n get name() {\n return this.#name;\n }\n get el() {\n return this.#options.el;\n }\n get open() {\n return this.#options.open;\n }\n get close() {\n return this.#options.close;\n }\n get order() {\n return this.#options.order;\n }\n}\n","import { getDefaultPropfind, getRootPath, resultToNode } from '@nextcloud/files/dav';\nimport { join } from 'path';\nimport { useFilesStore } from '../store/files.ts';\nimport { getPinia } from '../store/index.ts';\nimport { useSearchStore } from '../store/search.ts';\nimport { logger } from '../utils/logger.ts';\nimport { client } from './WebdavClient.ts';\nimport { searchNodes } from './WebDavSearch.ts';\n/**\n * Get contents implementation for the files view.\n * This also allows to fetch local search results when the user is currently filtering.\n *\n * @param path - The path to query\n * @param options - Options\n * @param options.signal - Abort signal to cancel the request\n */\nexport async function getContents(path = '/', options) {\n const searchStore = useSearchStore(getPinia());\n if (searchStore.query.length < 3) {\n return await defaultGetContents(path, options);\n }\n return await getLocalSearch(path, searchStore.query, options?.signal);\n}\n/**\n * Generic `getContents` implementation for the users files.\n *\n * @param path - The path to get the contents\n * @param options - Options\n * @param options.signal - Abort signal to cancel the request\n */\nexport async function defaultGetContents(path, options) {\n path = join(getRootPath(), path);\n const propfindPayload = getDefaultPropfind();\n const contentsResponse = await client.getDirectoryContents(path, {\n details: true,\n data: propfindPayload,\n includeSelf: true,\n signal: options?.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 return {\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/**\n * Get the local search results for the current folder.\n *\n * @param path - The path\n * @param query - The current search query\n * @param signal - The aboort signal\n */\nasync function getLocalSearch(path, query, signal) {\n const filesStore = useFilesStore(getPinia());\n let folder = filesStore.getDirectoryByPath('files', path);\n if (!folder) {\n const rootPath = join(getRootPath(), path);\n const stat = await client.stat(rootPath, { details: true });\n folder = resultToNode(stat.data);\n }\n const contents = await searchNodes(query, { dir: path, signal });\n return {\n folder,\n contents,\n };\n}\n","/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getCurrentUser } from '@nextcloud/auth';\nimport { defaultRootPath, getDavNameSpaces, getDavProperties, resultToNode } from '@nextcloud/files/dav';\nimport { getBaseUrl } from '@nextcloud/router';\nimport { logger } from '../utils/logger.ts';\nimport { client } from './WebdavClient.ts';\n/**\n * Search for nodes matching the given query.\n *\n * @param query - Search query\n * @param options - Options\n * @param options.dir - The base directory to scope the search to\n * @param options.signal - Abort signal for the request\n */\nexport async function searchNodes(query, { dir, signal }) {\n const user = getCurrentUser();\n if (!user) {\n // the search plugin only works for user roots\n return [];\n }\n query = query.trim();\n if (query.length < 3) {\n // the search plugin only works with queries of at least 3 characters\n return [];\n }\n if (dir && !dir.startsWith('/')) {\n dir = `/${dir}`;\n }\n logger.debug('Searching for nodes', { query, dir });\n const { data } = await client.search('/', {\n details: true,\n signal,\n data: `\n\n\t \n\t\t \n\t\t\t \n\t\t\t ${getDavProperties()}\n\t\t\t \n\t\t \n\t\t \n\t\t\t \n\t\t\t\t /files/${user.uid}${dir || ''}\n\t\t\t\t infinity\n\t\t\t \n\t\t \n\t\t \n\t\t\t \n\t\t\t\t \n\t\t\t\t\t \n\t\t\t\t \n\t\t\t\t %${query.replace('%', '')}%\n\t\t\t \n\t\t \n\t\t \n\t\n`,\n });\n // check if the request was aborted\n if (signal?.aborted) {\n return [];\n }\n // otherwise return the result mapped to Nextcloud nodes\n return data.results.map((result) => resultToNode(result, defaultRootPath, getBaseUrl()));\n}\n","/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getClient, getDefaultPropfind, getRootPath, resultToNode } from '@nextcloud/files/dav';\nexport const client = getClient();\n/**\n * Fetches a node from the given path\n *\n * @param path - The path to fetch the node from\n */\nexport async function fetchNode(path) {\n const propfindPayload = getDefaultPropfind();\n const result = await client.stat(`${getRootPath()}${path}`, {\n details: true,\n data: propfindPayload,\n });\n return resultToNode(result.data);\n}\n","/*!\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getCurrentUser } from '@nextcloud/auth';\nimport { subscribe } from '@nextcloud/event-bus';\nimport { Folder, getNavigation, Permission } from '@nextcloud/files';\nimport { getRemoteURL, getRootPath } from '@nextcloud/files/dav';\nimport { defineStore } from 'pinia';\nimport { ref, shallowRef, watch } from 'vue';\nimport { logger } from '../utils/logger.ts';\n// Temporary fake folder to use until we have the first valid folder\n// fetched and cached. This allow us to mount the FilesListVirtual\n// at all time and avoid unmount/mount and undesired rendering issues.\nconst dummyFolder = new Folder({\n id: 0,\n source: getRemoteURL() + getRootPath(),\n root: getRootPath(),\n owner: getCurrentUser()?.uid || null,\n permissions: Permission.NONE,\n});\nexport const useActiveStore = defineStore('active', () => {\n /**\n * The currently active action\n */\n const activeAction = shallowRef();\n /**\n * The current active node within the folder\n */\n const activeNode = ref();\n /**\n * The current active view\n */\n const activeView = shallowRef();\n /**\n * The currently active folder\n */\n const activeFolder = ref(dummyFolder);\n // Set the active node on the router params\n watch(activeNode, () => {\n if (typeof activeNode.value?.fileid !== 'number' || activeNode.value.fileid === activeFolder.value?.fileid) {\n return;\n }\n logger.debug('Updating active fileid in URL query', { fileid: activeNode.value.fileid });\n window.OCP.Files.Router.goToRoute(null, { ...window.OCP.Files.Router.params, fileid: String(activeNode.value.fileid) }, { ...window.OCP.Files.Router.query }, true);\n });\n initialize();\n /**\n * Unset the active node if deleted\n *\n * @param node - The node thats deleted\n */\n function onDeletedNode(node) {\n if (activeNode.value && activeNode.value.source === node.source) {\n activeNode.value = undefined;\n }\n }\n /**\n * Callback to update the current active view\n *\n * @param view - The new active view\n */\n function onChangedView(view = null) {\n logger.debug('Setting active view', { view });\n activeView.value = view ?? undefined;\n activeNode.value = undefined;\n }\n /**\n * Initalize the store - connect all event listeners.\n *\n */\n function initialize() {\n const navigation = getNavigation();\n onChangedView(navigation.active);\n // Make sure we only register the listeners once\n subscribe('files:node:deleted', onDeletedNode);\n // Or you can react to changes of the current active view\n navigation.addEventListener('updateActive', (event) => {\n onChangedView(event.detail);\n });\n }\n return {\n activeAction,\n activeFolder,\n activeNode,\n activeView,\n };\n});\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { subscribe } from '@nextcloud/event-bus';\nimport { defineStore } from 'pinia';\nimport Vue, { ref } from 'vue';\nimport { fetchNode } from '../services/WebdavClient.ts';\nimport { logger } from '../utils/logger.ts';\nimport { usePathsStore } from './paths.ts';\n/**\n * Store for files and folders in the files app.\n */\nexport const useFilesStore = defineStore('files', () => {\n const files = ref({});\n const roots = ref({});\n // initialize the store once its used first time\n initalizeStore();\n /**\n * Get a file or folder by its source\n *\n * @param source - The file source\n */\n function getNode(source) {\n return files.value[source];\n }\n /**\n * Get a list of files or folders by their IDs\n * Note: does not return undefined values\n *\n * @param sources - The file sources\n */\n function getNodes(sources) {\n return sources\n .map((source) => files.value[source])\n .filter(Boolean);\n }\n /**\n * Get files or folders by their ID\n * Multiple nodes can have the same ID but different sources\n * (e.g. in a shared context)\n *\n * @param id - The file ID\n */\n function getNodesById(id) {\n return Object.values(files.value)\n .filter((node) => node.id === id);\n }\n /**\n * Get the root folder of a service\n *\n * @param service - The service (files view)\n * @return The root folder if set\n */\n function getRoot(service) {\n return roots.value[service];\n }\n /**\n * Get cached directory matching a given path\n *\n * @param service - The service (files view)\n * @param path - The path relative within the service\n * @return The folder if found\n */\n function getDirectoryByPath(service, path) {\n const pathsStore = usePathsStore();\n let folder;\n // Get the containing folder from path store\n if (!path || path === '/') {\n folder = getRoot(service);\n }\n else {\n const source = pathsStore.getPath(service, path);\n if (source) {\n folder = getNode(source);\n }\n }\n return folder;\n }\n /**\n * Get cached child nodes within a given path\n *\n * @param service - The service (files view)\n * @param path - The path relative within the service\n * @return Array of cached nodes within the path\n */\n function getNodesByPath(service, path) {\n const folder = getDirectoryByPath(service, path);\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) => getNode(source))\n .filter(Boolean);\n }\n /**\n * Update or set nodes in the store\n *\n * @param nodes - The nodes to update or set\n */\n function updateNodes(nodes) {\n // Update the store all at once\n const newNodes = nodes.reduce((acc, node) => {\n if (files.value[node.source]?.id && !node.id) {\n logger.error('Trying to update/set a node without id', { node });\n return acc;\n }\n acc[node.source] = node;\n return acc;\n }, {});\n files.value = { ...files.value, ...newNodes };\n }\n /**\n * Delete nodes from the store\n *\n * @param nodes - The nodes to delete\n */\n function deleteNodes(nodes) {\n const entries = Object.entries(files.value)\n .filter(([, node]) => !nodes.some((n) => n.source === node.source));\n files.value = Object.fromEntries(entries);\n }\n /**\n * Set the root folder for a service\n *\n * @param options - The options for setting the root\n * @param options.service - The service (files view)\n * @param options.root - The root folder\n */\n function setRoot({ service, root }) {\n roots.value = { ...roots.value, [service]: root };\n }\n return {\n files,\n roots,\n deleteNodes,\n getDirectoryByPath,\n getNode,\n getNodes,\n getNodesById,\n getNodesByPath,\n getRoot,\n setRoot,\n updateNodes,\n };\n // Internal helper functions\n /**\n * Initialize the store by subscribing to events\n */\n function initalizeStore() {\n subscribe('files:node:created', onCreatedNode);\n subscribe('files:node:deleted', onDeletedNode);\n subscribe('files:node:updated', onUpdatedNode);\n subscribe('files:node:moved', onMovedNode);\n // legacy sidebar\n subscribe('files:favorites:added', onAddFavorite);\n subscribe('files:favorites:removed', onRemoveFavorite);\n }\n /**\n * Called when a node is deleted, removes the node from the store\n *\n * @param node - The deleted node\n */\n function onDeletedNode(node) {\n deleteNodes([node]);\n }\n /**\n * Handler for when a node is created\n *\n * @param node - The created node\n */\n function onCreatedNode(node) {\n updateNodes([node]);\n }\n /**\n * Handler for when a node is moved, updates the path of the node in the store\n *\n * @param context - The context of the moved node\n * @param context.node - The moved node\n * @param context.oldSource - The old source of the node before it was moved\n */\n function onMovedNode({ node, oldSource }) {\n // Update the path of the node\n delete files.value[oldSource];\n updateNodes([node]);\n }\n /**\n * Handler for when a node is updated, updates the node in the store\n *\n * @param node - The updated node\n */\n async function onUpdatedNode(node) {\n // If we have multiple nodes with the same file ID, we need to update all of them\n const nodes = node.id\n ? getNodesById(node.id)\n : getNodes([node.source]);\n if (nodes.length > 1) {\n await Promise.all(nodes.map((node) => fetchNode(node.path))).then(updateNodes);\n logger.debug(nodes.length + ' nodes updated in store', { fileid: node.id, source: node.source });\n return;\n }\n // If we have only one node with the file ID, we can update it directly\n if (nodes.length === 1 && node.source === nodes[0].source) {\n 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.path).then((n) => updateNodes([n]));\n }\n /**\n * Handlers for legacy sidebar (no real nodes support)\n *\n * @param node - The node that was added to favorites\n */\n function onAddFavorite(node) {\n const ourNode = getNode(node.source);\n if (ourNode) {\n Vue.set(ourNode.attributes, 'favorite', 1);\n }\n }\n /**\n * Handler for when a node is removed from favorites\n *\n * @param node - The removed favorite\n */\n function onRemoveFavorite(node) {\n const ourNode = getNode(node.source);\n if (ourNode) {\n Vue.set(ourNode.attributes, 'favorite', 0);\n }\n }\n});\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { createPinia } from 'pinia';\n/**\n * Get the Pinia instance for the Files app.\n */\nexport function getPinia() {\n if (window._nc_files_pinia) {\n return window._nc_files_pinia;\n }\n window._nc_files_pinia = createPinia();\n return window._nc_files_pinia;\n}\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { subscribe } from '@nextcloud/event-bus';\nimport { File, FileType, getNavigation } from '@nextcloud/files';\nimport { dirname } from '@nextcloud/paths';\nimport { defineStore } from 'pinia';\nimport Vue from 'vue';\nimport { logger } from '../utils/logger.ts';\nimport { useFilesStore } from './files.ts';\n/**\n *\n * @param args\n */\nexport function usePathsStore(...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 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 this.addNodeToParentChildren(node);\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 this.deleteNodeFromParentChildren(node);\n },\n onMovedNode({ node, oldSource }) {\n const service = getNavigation()?.active?.id || 'files';\n // Update the path of the node\n if (node.type === FileType.Folder) {\n // Delete the old path if it exists\n const oldPath = Object.entries(this.paths[service]).find(([, source]) => source === oldSource);\n if (oldPath?.[0]) {\n this.deletePath(service, oldPath[0]);\n }\n // Add the new path\n this.addPath({\n service,\n path: node.path,\n source: node.source,\n });\n }\n // Dummy simple clone of the renamed node from a previous state\n const oldNode = new File({\n source: oldSource,\n owner: node.owner,\n mime: node.mime,\n root: node.root,\n });\n this.deleteNodeFromParentChildren(oldNode);\n this.addNodeToParentChildren(node);\n },\n deleteNodeFromParentChildren(node) {\n const service = getNavigation()?.active?.id || 'files';\n // Update children of a root folder\n const parentSource = dirname(node.source);\n const folder = (node.dirname === '/' ? files.getRoot(service) : files.getNode(parentSource));\n if (folder) {\n // ensure sources are unique\n const children = new Set(folder._children ?? []);\n children.delete(node.source);\n Vue.set(folder, '_children', [...children.values()]);\n logger.debug('Children updated', { parent: folder, node, children: folder._children });\n return;\n }\n logger.debug('Parent path does not exists, skipping children update', { node });\n },\n addNodeToParentChildren(node) {\n const service = getNavigation()?.active?.id || 'files';\n // Update children of a root folder\n const parentSource = dirname(node.source);\n const folder = (node.dirname === '/' ? files.getRoot(service) : files.getNode(parentSource));\n if (folder) {\n // ensure sources are unique\n const children = new Set(folder._children ?? []);\n children.add(node.source);\n Vue.set(folder, '_children', [...children.values()]);\n logger.debug('Children updated', { parent: folder, node, children: folder._children });\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 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: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { emit, subscribe } from '@nextcloud/event-bus';\nimport debounce from 'debounce';\nimport { defineStore } from 'pinia';\nimport { ref, watch } from 'vue';\nimport { logger } from '../utils/logger.ts';\nimport { VIEW_ID } from '../views/search.ts';\nexport const useSearchStore = defineStore('search', () => {\n /**\n * The current search query\n */\n const query = ref('');\n /**\n * Scope of the search.\n * Scopes:\n * - filter: only filter current file list\n * - globally: search everywhere\n */\n const scope = ref('filter');\n // reset the base if query is cleared\n watch(scope, updateSearch);\n watch(query, (old, current) => {\n // skip if only whitespaces changed\n if (old.trim() === current.trim()) {\n return;\n }\n updateSearch();\n });\n // initialize the search store\n initialize();\n /**\n * Debounced update of the current route\n *\n */\n const updateRouter = debounce((isSearch) => {\n const router = window.OCP.Files.Router;\n router.goToRoute(undefined, {\n view: VIEW_ID,\n }, {\n query: query.value,\n }, isSearch);\n });\n /**\n * Handle updating the filter if needed.\n * Also update the search view by updating the current route if needed.\n *\n */\n function updateSearch() {\n // emit the search event to update the filter\n emit('files:search:updated', { query: query.value, scope: scope.value });\n const router = window.OCP.Files.Router;\n // if we are on the search view and the query was unset or scope was set to 'filter' we need to move back to the files view\n if (router.params.view === VIEW_ID && (query.value === '' || scope.value === 'filter')) {\n scope.value = 'filter';\n return router.goToRoute(undefined, {\n view: 'files',\n }, {\n ...router.query,\n query: undefined,\n });\n }\n // for the filter scope we do not need to adjust the current route anymore\n // also if the query is empty we do not need to do anything\n if (scope.value === 'filter' || !query.value) {\n return;\n }\n const isSearch = router.params.view === VIEW_ID;\n logger.debug('Update route for updated search query', { query: query.value, isSearch });\n updateRouter(isSearch);\n }\n /**\n * Event handler that resets the store if the file list view was changed.\n *\n * @param view - The new view that is active\n */\n function onViewChanged(view) {\n if (view.id !== VIEW_ID) {\n query.value = '';\n scope.value = 'filter';\n }\n }\n /**\n * Initialize the store from the router if needed\n */\n function initialize() {\n subscribe('files:navigation:changed', onViewChanged);\n const router = window.OCP.Files.Router;\n // if we initially load the search view (e.g. hard page refresh)\n // then we need to initialize the store from the router\n if (router.params.view === VIEW_ID) {\n query.value = [router.query.query].flat()[0] ?? '';\n if (query.value) {\n scope.value = 'globally';\n logger.debug('Directly navigated to search view', { query: query.value });\n }\n else {\n // we do not have any query so we need to move to the files list\n logger.info('Directly navigated to search view without any query, redirect to files view.');\n router.goToRoute(undefined, {\n ...router.params,\n view: 'files',\n }, {\n ...router.query,\n query: undefined,\n }, true);\n }\n }\n }\n return {\n query,\n scope,\n };\n});\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getCurrentUser } from '@nextcloud/auth';\nimport axios from '@nextcloud/axios';\nimport { emit, subscribe } from '@nextcloud/event-bus';\nimport { loadState } from '@nextcloud/initial-state';\nimport { generateUrl } from '@nextcloud/router';\nimport { defineStore } from 'pinia';\nimport { ref, set } from 'vue';\nconst initialUserConfig = loadState('files', 'config', {\n crop_image_previews: true,\n default_view: 'files',\n folder_tree: true,\n grid_view: false,\n show_files_extensions: true,\n show_hidden: false,\n show_mime_column: true,\n sort_favorites_first: true,\n sort_folders_first: true,\n show_dialog_deletion: false,\n show_dialog_file_extension: true,\n});\nexport const useUserConfigStore = defineStore('userconfig', () => {\n const userConfig = ref({ ...initialUserConfig });\n /**\n * Update the user config local store\n *\n * @param key The config key\n * @param value The new value\n */\n function onUpdate(key, value) {\n set(userConfig.value, key, value);\n }\n /**\n * Update the user config local store AND on server side\n *\n * @param key The config key\n * @param value The new value\n */\n async function update(key, value) {\n // only update if a user is logged in (not the case for public shares)\n if (getCurrentUser() !== null) {\n await axios.put(generateUrl('/apps/files/api/v1/config/{key}', { key }), {\n value,\n });\n }\n emit('files:config:updated', { key, value });\n }\n // Register the event listener\n subscribe('files:config:updated', ({ key, value }) => onUpdate(key, value));\n return {\n userConfig,\n update,\n };\n});\n","/*!\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getLoggerBuilder } from '@nextcloud/logger';\nexport const logger = getLoggerBuilder()\n .setApp('files')\n .detectUser()\n .build();\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport MagnifySvg from '@mdi/svg/svg/magnify.svg?raw';\nimport { getNavigation, View } from '@nextcloud/files';\nimport { t } from '@nextcloud/l10n';\nimport Vue from 'vue';\nimport { getContents } from '../services/Search.ts';\nimport { VIEW_ID as FILES_VIEW_ID } from './files.ts';\nexport const VIEW_ID = 'search';\n/**\n * Register the search-in-files view\n */\nexport function registerSearchView() {\n let instance;\n let view;\n const Navigation = getNavigation();\n Navigation.register(new View({\n id: VIEW_ID,\n name: t('files', 'Search'),\n caption: t('files', 'Search results within your files.'),\n async emptyView(el) {\n if (!view) {\n view = (await import('./SearchEmptyView.vue')).default;\n }\n else {\n instance.$destroy();\n }\n instance = new Vue(view);\n instance.$mount(el);\n },\n icon: MagnifySvg,\n order: 10,\n parent: FILES_VIEW_ID,\n // it should be shown expanded\n expanded: true,\n // this view is hidden by default and only shown when active\n hidden: true,\n getContents,\n }));\n}\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/*\n* Ensure proper alignment of the vue material icons\n*/\n.material-design-icon[data-v-c8e429a5] {\n display: flex;\n align-self: center;\n justify-self: center;\n align-items: center;\n justify-content: center;\n}\n.nc-chip[data-v-c8e429a5] {\n --chip-size: 24px;\n --chip-radius: calc(var(--chip-size) / 2);\n height: var(--chip-size);\n max-width: fit-content;\n display: flex;\n flex-direction: row;\n align-items: center;\n border-radius: var(--chip-radius);\n background-color: var(--color-background-hover);\n}\n.nc-chip--primary[data-v-c8e429a5] {\n background-color: var(--color-primary-element);\n color: var(--color-primary-element-text);\n}\n.nc-chip--secondary[data-v-c8e429a5] {\n background-color: var(--color-primary-element-light);\n color: var(--color-primary-element-light-text);\n}\n.nc-chip--error[data-v-c8e429a5] {\n background-color: var(--color-error);\n color: var(--color-error-text);\n}\n.nc-chip--warning[data-v-c8e429a5] {\n background-color: var(--color-warning);\n color: var(--color-warning-text);\n}\n.nc-chip--success[data-v-c8e429a5] {\n background-color: var(--color-success);\n color: var(--color-success-text);\n}\n.nc-chip--no-actions .nc-chip__text[data-v-c8e429a5] {\n padding-inline-end: calc(2 * var(--default-grid-baseline));\n}\n.nc-chip--no-icon .nc-chip__text[data-v-c8e429a5] {\n padding-inline-start: calc(2 * var(--default-grid-baseline));\n}\n.nc-chip__text[data-v-c8e429a5] {\n flex: 1 auto;\n overflow: hidden;\n text-overflow: ellipsis;\n text-wrap: nowrap;\n}\n.nc-chip__icon[data-v-c8e429a5] {\n flex: 0 0 var(--chip-size);\n margin-inline-end: var(--default-grid-baseline);\n line-height: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n height: var(--chip-size);\n width: var(--chip-size);\n}\n.nc-chip__actions[data-v-c8e429a5] {\n flex: 0 0 var(--chip-size);\n --default-clickable-area: var(--chip-size);\n --border-radius-element: var(--chip-radius);\n}`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@nextcloud/vue/dist/assets/NcChip-DLfUzq07.css\"],\"names\":[],\"mappings\":\"AAAA;;;EAGE;AACF;;;EAGE;AACF;;CAEC;AACD;EACE,aAAa;EACb,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,iBAAiB;EACjB,yCAAyC;EACzC,wBAAwB;EACxB,sBAAsB;EACtB,aAAa;EACb,mBAAmB;EACnB,mBAAmB;EACnB,iCAAiC;EACjC,+CAA+C;AACjD;AACA;EACE,8CAA8C;EAC9C,wCAAwC;AAC1C;AACA;EACE,oDAAoD;EACpD,8CAA8C;AAChD;AACA;EACE,oCAAoC;EACpC,8BAA8B;AAChC;AACA;EACE,sCAAsC;EACtC,gCAAgC;AAClC;AACA;EACE,sCAAsC;EACtC,gCAAgC;AAClC;AACA;EACE,0DAA0D;AAC5D;AACA;EACE,4DAA4D;AAC9D;AACA;EACE,YAAY;EACZ,gBAAgB;EAChB,uBAAuB;EACvB,iBAAiB;AACnB;AACA;EACE,0BAA0B;EAC1B,+CAA+C;EAC/C,cAAc;EACd,aAAa;EACb,mBAAmB;EACnB,uBAAuB;EACvB,gBAAgB;EAChB,wBAAwB;EACxB,uBAAuB;AACzB;AACA;EACE,0BAA0B;EAC1B,0CAA0C;EAC1C,2CAA2C;AAC7C\",\"sourcesContent\":[\"/**\\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/**\\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon[data-v-c8e429a5] {\\n display: flex;\\n align-self: center;\\n justify-self: center;\\n align-items: center;\\n justify-content: center;\\n}\\n.nc-chip[data-v-c8e429a5] {\\n --chip-size: 24px;\\n --chip-radius: calc(var(--chip-size) / 2);\\n height: var(--chip-size);\\n max-width: fit-content;\\n display: flex;\\n flex-direction: row;\\n align-items: center;\\n border-radius: var(--chip-radius);\\n background-color: var(--color-background-hover);\\n}\\n.nc-chip--primary[data-v-c8e429a5] {\\n background-color: var(--color-primary-element);\\n color: var(--color-primary-element-text);\\n}\\n.nc-chip--secondary[data-v-c8e429a5] {\\n background-color: var(--color-primary-element-light);\\n color: var(--color-primary-element-light-text);\\n}\\n.nc-chip--error[data-v-c8e429a5] {\\n background-color: var(--color-error);\\n color: var(--color-error-text);\\n}\\n.nc-chip--warning[data-v-c8e429a5] {\\n background-color: var(--color-warning);\\n color: var(--color-warning-text);\\n}\\n.nc-chip--success[data-v-c8e429a5] {\\n background-color: var(--color-success);\\n color: var(--color-success-text);\\n}\\n.nc-chip--no-actions .nc-chip__text[data-v-c8e429a5] {\\n padding-inline-end: calc(2 * var(--default-grid-baseline));\\n}\\n.nc-chip--no-icon .nc-chip__text[data-v-c8e429a5] {\\n padding-inline-start: calc(2 * var(--default-grid-baseline));\\n}\\n.nc-chip__text[data-v-c8e429a5] {\\n flex: 1 auto;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n text-wrap: nowrap;\\n}\\n.nc-chip__icon[data-v-c8e429a5] {\\n flex: 0 0 var(--chip-size);\\n margin-inline-end: var(--default-grid-baseline);\\n line-height: 1;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n overflow: hidden;\\n height: var(--chip-size);\\n width: var(--chip-size);\\n}\\n.nc-chip__actions[data-v-c8e429a5] {\\n flex: 0 0 var(--chip-size);\\n --default-clickable-area: var(--chip-size);\\n --border-radius-element: var(--chip-radius);\\n}\"],\"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__breadcrumbs[data-v-04c7dec6]{flex:1 1 100% !important;width:100%;height:100%;margin:0;min-width:0}.files-list__breadcrumbs[data-v-04c7dec6] a{cursor:pointer !important}.files-list__breadcrumbs--with-progress[data-v-04c7dec6]{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,QAAA,CACA,WAAA,CAGC,6CACC,yBAAA,CAIF,yDACC,gCAAA,CACA,iCAAA\",\"sourcesContent\":[\"\\n.files-list__breadcrumbs {\\n\\t// Take as much space as possible\\n\\tflex: 1 1 100% !important;\\n\\twidth: 100%;\\n\\theight: 100%;\\n\\tmargin: 0;\\n\\tmin-width: 0;\\n\\n\\t:deep() {\\n\\t\\ta {\\n\\t\\t\\tcursor: pointer !important;\\n\\t\\t}\\n\\t}\\n\\n\\t&--with-progress {\\n\\t\\tflex-direction: column !important;\\n\\t\\talign-items: flex-start !important;\\n\\t}\\n}\\n\"],\"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-3920de03]{display:flex;align-items:center;justify-content:center;width:100%;min-height:102px;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-3920de03]{margin-inline-start:16px;color:inherit}.files-list__drag-drop-notice-wrapper[data-v-3920de03]{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\",\"sourcesContent\":[\"\\n.files-list__drag-drop-notice {\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n\\twidth: 100%;\\n\\t// Breadcrumbs height + row thead height\\n\\tmin-height: calc(58px + 44px);\\n\\tmargin: 0;\\n\\tuser-select: none;\\n\\tcolor: var(--color-text-maxcontrast);\\n\\tbackground-color: var(--color-main-background);\\n\\tborder-color: black;\\n\\n\\th3 {\\n\\t\\tmargin-inline-start: 16px;\\n\\t\\tcolor: inherit;\\n\\t}\\n\\n\\t&-wrapper {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tjustify-content: center;\\n\\t\\theight: 15vh;\\n\\t\\tmax-height: 70%;\\n\\t\\tpadding: 0 5vw;\\n\\t\\tborder: 2px var(--color-border-dark) dashed;\\n\\t\\tborder-radius: var(--border-radius-large);\\n\\t}\\n}\\n\\n\"],\"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:34px;padding:6px 12px;background:var(--color-main-background)}.files-list-drag-image__icon,.files-list-drag-image .files-list__row-icon-preview-container{display:flex;overflow:hidden;align-items:center;justify-content:center;width:22px;height:22px;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-preview-container+.files-list__row-icon-preview-container{margin-top:6px;margin-inline-start:-16px}.files-list-drag-image__icon>span>.files-list__row-icon-preview-container+.files-list__row-icon-preview-container+.files-list__row-icon-preview-container{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,4FAEC,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,CAIA,kHACC,cA/CU,CAgDV,yBAAA,CACA,0JACC,eAAA,CAMF,gDACC,YAAA,CAKH,6BACC,eAAA,CACA,kBAAA,CACA,sBAAA\",\"sourcesContent\":[\"\\n$size: 28px;\\n$stack-shift: 6px;\\n\\n.files-list-drag-image {\\n\\tposition: absolute;\\n\\ttop: -9999px;\\n\\tinset-inline-start: -9999px;\\n\\tdisplay: flex;\\n\\toverflow: hidden;\\n\\talign-items: center;\\n\\theight: $size + $stack-shift;\\n\\tpadding: $stack-shift $stack-shift * 2;\\n\\tbackground: var(--color-main-background);\\n\\n\\t&__icon,\\n\\t.files-list__row-icon-preview-container {\\n\\t\\tdisplay: flex;\\n\\t\\toverflow: hidden;\\n\\t\\talign-items: center;\\n\\t\\tjustify-content: center;\\n\\t\\twidth: $size - $stack-shift;\\n\\t\\theight: $size - $stack-shift;;\\n\\t\\tborder-radius: var(--border-radius);\\n\\t}\\n\\n\\t&__icon {\\n\\t\\toverflow: visible;\\n\\t\\tmargin-inline-end: $stack-shift * 2;\\n\\n\\t\\timg {\\n\\t\\t\\tmax-width: 100%;\\n\\t\\t\\tmax-height: 100%;\\n\\t\\t}\\n\\n\\t\\t.material-design-icon {\\n\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\t\\t&.folder-icon {\\n\\t\\t\\t\\tcolor: var(--color-primary-element);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// Previews container\\n\\t\\t> span {\\n\\t\\t\\tdisplay: flex;\\n\\n\\t\\t\\t// Stack effect if more than one element\\n\\t\\t\\t// Max 3 elements\\n\\t\\t\\t> .files-list__row-icon-preview-container + .files-list__row-icon-preview-container {\\n\\t\\t\\t\\tmargin-top: $stack-shift;\\n\\t\\t\\t\\tmargin-inline-start: $stack-shift * 2 - $size;\\n\\t\\t\\t\\t& + .files-list__row-icon-preview-container {\\n\\t\\t\\t\\t\\tmargin-top: $stack-shift * 2;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t\\t// If we have manually clone the preview,\\n\\t\\t\\t// let's hide any fallback icons\\n\\t\\t\\t&:not(:empty) + * {\\n\\t\\t\\t\\tdisplay: none;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&__name {\\n\\t\\toverflow: hidden;\\n\\t\\twhite-space: nowrap;\\n\\t\\ttext-overflow: ellipsis;\\n\\t}\\n}\\n\\n\"],\"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-4505d262]{color:var(--color-favorite);min-width:unset !important;min-height:unset !important}.favorite-marker-icon[data-v-4505d262] svg{width:20px !important;height:20px !important;max-width:unset !important;max-height:unset !important}.favorite-marker-icon[data-v-4505d262] 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\",\"sourcesContent\":[\"\\n.favorite-marker-icon {\\n\\tcolor: var(--color-favorite);\\n\\t// Override NcIconSvgWrapper defaults (clickable area)\\n\\tmin-width: unset !important;\\n min-height: unset !important;\\n\\n\\t:deep() {\\n\\t\\tsvg {\\n\\t\\t\\t// We added a stroke for a11y so we must increase the size to include the stroke\\n\\t\\t\\twidth: 20px !important;\\n\\t\\t\\theight: 20px !important;\\n\\n\\t\\t\\t// Override NcIconSvgWrapper defaults of 20px\\n\\t\\t\\tmax-width: unset !important;\\n\\t\\t\\tmax-height: unset !important;\\n\\n\\t\\t\\t// Sow a border around the icon for better contrast\\n\\t\\t\\tpath {\\n\\t\\t\\t\\tstroke: var(--color-main-background);\\n\\t\\t\\t\\tstroke-width: 8px;\\n\\t\\t\\t\\tstroke-linejoin: round;\\n\\t\\t\\t\\tpaint-order: stroke;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\"],\"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\",\"sourcesContent\":[\"\\n// Allow right click to define the position of the menu\\n// only if defined\\nmain.app-content[style*=\\\"mouse-pos-x\\\"] .v-popper__popper {\\n\\ttransform: translate3d(var(--mouse-pos-x), var(--mouse-pos-y), 0px) !important;\\n\\n\\t// If the menu is too close to the bottom, we move it up\\n\\t&[data-popper-placement=\\\"top\\\"] {\\n\\t\\t// 34px added to align with the top of the cursor\\n\\t\\ttransform: translate3d(var(--mouse-pos-x), calc(var(--mouse-pos-y) - 50vh + 34px), 0px) !important;\\n\\t}\\n\\t// Hide arrow if floating\\n\\t.v-popper__arrow-container {\\n\\t\\tdisplay: none;\\n\\t}\\n}\\n\"],\"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-action[data-v-3d55d6ab]{--max-icon-size: calc(var(--default-clickable-area) - 2 * var(--default-grid-baseline))}.files-list__row-action.files-list__row-action--inline[data-v-3d55d6ab]{--max-icon-size: var(--default-clickable-area)}.files-list__row-action .files-list__row-action-icon[data-v-3d55d6ab] svg{max-height:var(--max-icon-size) !important;max-width:var(--max-icon-size) !important}.files-list__row-action.files-list__row-action--destructive[data-v-3d55d6ab] ::deep(button){color:var(--color-text-error) !important}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FileEntry/FileEntryActions.vue\"],\"names\":[],\"mappings\":\"AACA,yCACC,uFAAA,CAGA,wEACC,8CAAA,CAID,0EACC,0CAAA,CACA,yCAAA,CAIA,4FACC,wCAAA\",\"sourcesContent\":[\"\\n.files-list__row-action {\\n\\t--max-icon-size: calc(var(--default-clickable-area) - 2 * var(--default-grid-baseline));\\n\\n\\t// inline icons can have clickable area size so they still fit into the row\\n\\t&.files-list__row-action--inline {\\n\\t\\t--max-icon-size: var(--default-clickable-area);\\n\\t}\\n\\n\\t// Some icons exceed the default size so we need to enforce a max width and height\\n\\t.files-list__row-action-icon :deep(svg) {\\n\\t\\tmax-height: var(--max-icon-size) !important;\\n\\t\\tmax-width: var(--max-icon-size) !important;\\n\\t}\\n\\n\\t&.files-list__row-action--destructive {\\n\\t\\t::deep(button) {\\n\\t\\t\\tcolor: var(--color-text-error) !important;\\n\\t\\t}\\n\\t}\\n}\\n\\n\"],\"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-ab3b59e0]{background-color:unset;border:none;font-weight:normal}button.files-list__row-name-link[data-v-ab3b59e0]: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\",\"sourcesContent\":[\"\\nbutton.files-list__row-name-link {\\n\\tbackground-color: unset;\\n\\tborder: none;\\n\\tfont-weight: normal;\\n\\n\\t&:active {\\n\\t\\t// No active styles - handled by the row entry\\n\\t\\tbackground-color: unset !important;\\n\\t}\\n}\\n\"],\"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, `.recently-created-marker-icon[data-v-251f6582]{color:var(--color-element-success);min-width:unset !important;min-height:unset !important}.recently-created-marker-icon[data-v-251f6582] svg{width:20px !important;height:20px !important;max-width:unset !important;max-height:unset !important}.recently-created-marker-icon[data-v-251f6582] 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/RecentlyCreatedIcon.vue\"],\"names\":[],\"mappings\":\"AACA,+CACC,kCAAA,CAEA,0BAAA,CACA,2BAAA,CAGC,oDAEC,qBAAA,CACA,sBAAA,CAGA,0BAAA,CACA,2BAAA,CAGA,yDACC,mCAAA,CACA,gBAAA,CACA,qBAAA,CACA,kBAAA\",\"sourcesContent\":[\"\\n.recently-created-marker-icon {\\n\\tcolor: var(--color-element-success);\\n\\t// Override NcIconSvgWrapper defaults (clickable area)\\n\\tmin-width: unset !important;\\n\\tmin-height: unset !important;\\n\\n\\t:deep() {\\n\\t\\tsvg {\\n\\t\\t\\t// We added a stroke for a11y so we must increase the size to include the stroke\\n\\t\\t\\twidth: 20px !important;\\n\\t\\t\\theight: 20px !important;\\n\\n\\t\\t\\t// Override NcIconSvgWrapper defaults of 20px\\n\\t\\t\\tmax-width: unset !important;\\n\\t\\t\\tmax-height: unset !important;\\n\\n\\t\\t\\t// Show a border around the icon for better contrast\\n\\t\\t\\tpath {\\n\\t\\t\\t\\tstroke: var(--color-main-background);\\n\\t\\t\\t\\tstroke-width: 8px;\\n\\t\\t\\t\\tstroke-linejoin: round;\\n\\t\\t\\t\\tpaint-order: stroke;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\"],\"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-378a6e4a]{margin-bottom: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-378a6e4a]{user-select:none;color:var(--color-text-maxcontrast) !important}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FilesListTableFooter.vue\"],\"names\":[],\"mappings\":\"AAEA,oBACC,0CAAA,CACA,wCAAA,CAEA,yCAAA,CACA,6BAAA,CAEA,uBACC,gBAAA,CAEA,8CAAA\",\"sourcesContent\":[\"\\n// Scoped row\\ntr {\\n\\tmargin-bottom: var(--body-container-margin);\\n\\tborder-top: 1px solid var(--color-border);\\n\\t// Prevent hover effect on the whole row\\n\\tbackground-color: transparent !important;\\n\\tborder-bottom: none !important;\\n\\n\\ttd {\\n\\t\\tuser-select: none;\\n\\t\\t// Make sure the cell colors don't apply to column headers\\n\\t\\tcolor: var(--color-text-maxcontrast) !important;\\n\\t}\\n}\\n\"],\"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-12d5b60e]{user-select:none;color:var(--color-text-maxcontrast) !important}.files-list__column--sortable[data-v-12d5b60e]{cursor:pointer}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FilesListTableHeader.vue\"],\"names\":[],\"mappings\":\"AACA,qCACC,gBAAA,CAEA,8CAAA,CAEA,+CACC,cAAA\",\"sourcesContent\":[\"\\n.files-list__column {\\n\\tuser-select: none;\\n\\t// Make sure the cell colors don't apply to column headers\\n\\tcolor: var(--color-text-maxcontrast) !important;\\n\\n\\t&--sortable {\\n\\t\\tcursor: pointer;\\n\\t}\\n}\\n\\n\"],\"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-3b887a8f]{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\",\"sourcesContent\":[\"\\n.files-list__row-actions-batch {\\n\\tflex: 1 1 100% !important;\\n\\tmax-width: 100%;\\n}\\n\"],\"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-4a8557e6]{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-4a8557e6]{color:var(--color-text-maxcontrast);font-weight:normal}.files-list__column-sort-button-icon[data-v-4a8557e6]{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-4a8557e6]{inset-inline-start:10px}.files-list__column-sort-button--active .files-list__column-sort-button-icon[data-v-4a8557e6],.files-list__column-sort-button:hover .files-list__column-sort-button-icon[data-v-4a8557e6],.files-list__column-sort-button:focus .files-list__column-sort-button-icon[data-v-4a8557e6],.files-list__column-sort-button:active .files-list__column-sort-button-icon[data-v-4a8557e6]{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\",\"sourcesContent\":[\"\\n.files-list__column-sort-button {\\n\\t// Compensate for cells margin\\n\\tmargin: 0 calc(var(--button-padding, var(--cell-margin)) * -1);\\n\\tmin-width: calc(100% - 3 * var(--cell-margin))!important;\\n\\n\\t&-text {\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\tfont-weight: normal;\\n\\t}\\n\\n\\t&-icon {\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\topacity: 0;\\n\\t\\ttransition: opacity var(--animation-quick);\\n\\t\\tinset-inline-start: -10px;\\n\\t}\\n\\n\\t&--size &-icon {\\n\\t\\tinset-inline-start: 10px;\\n\\t}\\n\\n\\t&--active &-icon,\\n\\t&:hover &-icon,\\n\\t&:focus &-icon,\\n\\t&:active &-icon {\\n\\t\\topacity: 1;\\n\\t}\\n}\\n\"],\"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-0aebd17f]{--row-height: 44px;--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: 24px;--fixed-block-start-position: calc(var(--clickable-area-small) + var(--default-grid-baseline, 4px));display:flex;flex-direction:column;overflow:auto;height:100%;will-change:scroll-position}.files-list[data-v-0aebd17f]:has(.files-list__filters:empty){--fixed-block-start-position: 0px}.files-list[data-v-0aebd17f] tbody{will-change:padding;contain:layout paint style;display:flex;flex-direction:column;width:100%;position:relative}.files-list[data-v-0aebd17f] tbody tr{contain:strict}.files-list[data-v-0aebd17f] tbody tr:hover,.files-list[data-v-0aebd17f] tbody tr:focus{background-color:var(--color-background-dark)}.files-list[data-v-0aebd17f] .files-list__before{display:flex;flex-direction:column}.files-list[data-v-0aebd17f] .files-list__selected{padding-inline-end:12px;white-space:nowrap;font-variant-numeric:tabular-nums}.files-list[data-v-0aebd17f] .files-list__table{display:block}.files-list[data-v-0aebd17f] .files-list__table.files-list__table--with-thead-overlay{margin-block-start:calc(-1*var(--row-height))}.files-list[data-v-0aebd17f] .files-list__table--hidden{visibility:hidden;z-index:-1;opacity:0}.files-list[data-v-0aebd17f] .files-list__filters{display:flex;gap:var(--default-grid-baseline);box-sizing:border-box;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-0aebd17f] .files-list__filters:not(:empty){padding-block:calc(var(--default-grid-baseline, 4px)/2)}.files-list[data-v-0aebd17f] .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);flex:0 0 var(--row-height)}.files-list[data-v-0aebd17f] .files-list__thead,.files-list[data-v-0aebd17f] .files-list__tfoot{display:flex;flex-direction:column;width:100%;background-color:var(--color-main-background)}.files-list[data-v-0aebd17f] .files-list__thead{position:sticky;z-index:10;top:var(--fixed-block-start-position)}.files-list[data-v-0aebd17f] .files-list__empty{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%}.files-list[data-v-0aebd17f] tr{position:relative;display:flex;align-items:center;width:100%;border-block-end:1px solid var(--color-border);box-sizing:border-box;user-select:none;height:var(--row-height)}.files-list[data-v-0aebd17f] td,.files-list[data-v-0aebd17f] 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-0aebd17f] td span,.files-list[data-v-0aebd17f] th span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.files-list[data-v-0aebd17f] .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-0aebd17f] .files-list__row-checkbox{justify-content:center}.files-list[data-v-0aebd17f] .files-list__row-checkbox .checkbox-radio-switch{display:flex;justify-content:center;--icon-size: var(--checkbox-size)}.files-list[data-v-0aebd17f] .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-0aebd17f] .files-list__row-checkbox .checkbox-radio-switch .checkbox-radio-switch__icon{margin:0 !important}.files-list[data-v-0aebd17f] .files-list__row:hover,.files-list[data-v-0aebd17f] .files-list__row:focus,.files-list[data-v-0aebd17f] .files-list__row:active,.files-list[data-v-0aebd17f] .files-list__row--active,.files-list[data-v-0aebd17f] .files-list__row--dragover{background-color:var(--color-background-hover);--color-text-maxcontrast: var(--color-main-text)}.files-list[data-v-0aebd17f] .files-list__row:hover>*,.files-list[data-v-0aebd17f] .files-list__row:focus>*,.files-list[data-v-0aebd17f] .files-list__row:active>*,.files-list[data-v-0aebd17f] .files-list__row--active>*,.files-list[data-v-0aebd17f] .files-list__row--dragover>*{--color-border: var(--color-border-dark)}.files-list[data-v-0aebd17f] .files-list__row:hover .favorite-marker-icon svg path,.files-list[data-v-0aebd17f] .files-list__row:focus .favorite-marker-icon svg path,.files-list[data-v-0aebd17f] .files-list__row:active .favorite-marker-icon svg path,.files-list[data-v-0aebd17f] .files-list__row--active .favorite-marker-icon svg path,.files-list[data-v-0aebd17f] .files-list__row--dragover .favorite-marker-icon svg path{stroke:var(--color-background-hover)}.files-list[data-v-0aebd17f] .files-list__row--dragover *{pointer-events:none}.files-list[data-v-0aebd17f] .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-0aebd17f] .files-list__row-icon *{cursor:pointer}.files-list[data-v-0aebd17f] .files-list__row-icon>span{justify-content:flex-start}.files-list[data-v-0aebd17f] .files-list__row-icon>span:not(.files-list__row-icon-favorite):not(.files-list__row-icon-recently-created) svg{width:var(--icon-preview-size);height:var(--icon-preview-size)}.files-list[data-v-0aebd17f] .files-list__row-icon>span.folder-icon,.files-list[data-v-0aebd17f] .files-list__row-icon>span.folder-open-icon{margin:-3px}.files-list[data-v-0aebd17f] .files-list__row-icon>span.folder-icon svg,.files-list[data-v-0aebd17f] .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-0aebd17f] .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-0aebd17f] .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-0aebd17f] .files-list__row-icon-preview{object-fit:contain;object-position:center;height:100%;width:100%}.files-list[data-v-0aebd17f] .files-list__row-icon-preview:not(.files-list__row-icon-preview--loaded){background:var(--color-loading-dark)}.files-list[data-v-0aebd17f] .files-list__row-icon-favorite,.files-list[data-v-0aebd17f] .files-list__row-icon-recently-created{position:absolute;top:0px;inset-inline-end:-10px}.files-list[data-v-0aebd17f] .files-list__row-icon-overlay{position:absolute;max-height:calc(var(--icon-preview-size)*.6);max-width:calc(var(--icon-preview-size)*.6);color:var(--color-primary-element-text);margin-block-start:2px}.files-list[data-v-0aebd17f] .files-list__row-icon-overlay--file{color:var(--color-main-text);background:var(--color-main-background);border-radius:100%}.files-list[data-v-0aebd17f] .files-list__row-name{overflow:hidden;flex:1 1 auto}.files-list[data-v-0aebd17f] .files-list__row-name button.files-list__row-name-link{display:flex;align-items:center;text-align:start;width:100%;height:100%;min-width:0;margin:0;padding:0}.files-list[data-v-0aebd17f] .files-list__row-name button.files-list__row-name-link:focus-visible{outline:none !important}.files-list[data-v-0aebd17f] .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-0aebd17f] .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-0aebd17f] .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-0aebd17f] .files-list__row-name .files-list__row-name-ext{color:var(--color-text-maxcontrast);overflow:visible}.files-list[data-v-0aebd17f] .files-list__row-rename{width:100%;max-width:600px}.files-list[data-v-0aebd17f] .files-list__row-rename input{width:100%;margin-inline-start:-8px;padding:2px 6px;border-width:2px}.files-list[data-v-0aebd17f] .files-list__row-rename input:invalid{border-color:var(--color-border-error);color:var(--color-text-error)}.files-list[data-v-0aebd17f] .files-list__row-actions{width:auto}.files-list[data-v-0aebd17f] .files-list__row-actions~td,.files-list[data-v-0aebd17f] .files-list__row-actions~th{margin:0 var(--cell-margin)}.files-list[data-v-0aebd17f] .files-list__row-actions button .button-vue__text{font-weight:normal}.files-list[data-v-0aebd17f] .files-list__row-action--inline{margin-inline-end:7px}.files-list[data-v-0aebd17f] .files-list__row-mime,.files-list[data-v-0aebd17f] .files-list__row-mtime,.files-list[data-v-0aebd17f] .files-list__row-size{color:var(--color-text-maxcontrast)}.files-list[data-v-0aebd17f] .files-list__row-size{width:calc(var(--row-height)*2);justify-content:flex-end}.files-list[data-v-0aebd17f] .files-list__row-mtime{width:calc(var(--row-height)*2.5)}.files-list[data-v-0aebd17f] .files-list__row-mime{width:calc(var(--row-height)*3.5)}.files-list[data-v-0aebd17f] .files-list__row-column-custom{width:calc(var(--row-height)*2.5)}@media screen and (max-width: 512px){.files-list[data-v-0aebd17f] .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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\",\"sourcesContent\":[\"\\n.files-list {\\n\\t--row-height: 44px;\\n\\t--cell-margin: 14px;\\n\\n\\t--checkbox-padding: calc((var(--row-height) - var(--checkbox-size)) / 2);\\n\\t--checkbox-size: 24px;\\n\\t--clickable-area: var(--default-clickable-area);\\n\\t--icon-preview-size: 24px;\\n\\n\\t--fixed-block-start-position: calc(var(--clickable-area-small) + var(--default-grid-baseline, 4px));\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\toverflow: auto;\\n\\theight: 100%;\\n\\twill-change: scroll-position;\\n\\n\\t&:has(&__filters:empty) {\\n\\t\\t--fixed-block-start-position: 0px;\\n\\t}\\n\\n\\t& :deep() {\\n\\t\\t// Table head, body and footer\\n\\t\\ttbody {\\n\\t\\t\\twill-change: padding;\\n\\t\\t\\tcontain: layout paint style;\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex-direction: column;\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\t// Necessary for virtual scrolling absolute\\n\\t\\t\\tposition: relative;\\n\\n\\t\\t\\t/* Hover effect on tbody lines only */\\n\\t\\t\\ttr {\\n\\t\\t\\t\\tcontain: strict;\\n\\t\\t\\t\\t&:hover,\\n\\t\\t\\t\\t&:focus {\\n\\t\\t\\t\\t\\tbackground-color: var(--color-background-dark);\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// Before table and thead\\n\\t\\t.files-list__before {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex-direction: column;\\n\\t\\t}\\n\\n\\t\\t.files-list__selected {\\n\\t\\t\\tpadding-inline-end: 12px;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\tfont-variant-numeric: tabular-nums;\\n\\t\\t}\\n\\n\\t\\t.files-list__table {\\n\\t\\t\\tdisplay: block;\\n\\n\\t\\t\\t&.files-list__table--with-thead-overlay {\\n\\t\\t\\t\\t// Hide the table header below the overlay\\n\\t\\t\\t\\tmargin-block-start: calc(-1 * var(--row-height));\\n\\t\\t\\t}\\n\\n\\t\\t\\t// Visually hide the table when there are no files\\n\\t\\t\\t&--hidden {\\n\\t\\t\\t\\tvisibility: hidden;\\n\\t\\t\\t\\tz-index: -1;\\n\\t\\t\\t\\topacity: 0;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t.files-list__filters {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tgap: var(--default-grid-baseline);\\n\\t\\t\\tbox-sizing: border-box;\\n\\n\\t\\t\\t// Pinned on top when scrolling above table header\\n\\t\\t\\tposition: sticky;\\n\\t\\t\\ttop: 0;\\n\\t\\t\\t// ensure there is a background to hide the file list on scroll\\n\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\tz-index: 10;\\n\\t\\t\\t// fixed the size\\n\\t\\t\\tpadding-inline: var(--row-height) var(--default-grid-baseline, 4px);\\n\\t\\t\\theight: var(--fixed-block-start-position);\\n\\t\\t\\twidth: 100%;\\n\\n\\t\\t\\t&:not(:empty) {\\n\\t\\t\\t\\tpadding-block: calc(var(--default-grid-baseline, 4px) / 2);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t.files-list__thead-overlay {\\n\\t\\t\\t// Pinned on top when scrolling\\n\\t\\t\\tposition: sticky;\\n\\t\\t\\ttop: var(--fixed-block-start-position);\\n\\t\\t\\t// Save space for a row checkbox\\n\\t\\t\\tmargin-inline-start: var(--row-height);\\n\\t\\t\\t// More than .files-list__thead\\n\\t\\t\\tz-index: 20;\\n\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\n\\n\\t\\t\\t// Reuse row styles\\n\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\tborder-block-end: 1px solid var(--color-border);\\n\\t\\t\\theight: var(--row-height);\\n\\t\\t\\tflex: 0 0 var(--row-height);\\n\\t\\t}\\n\\n\\t\\t.files-list__thead,\\n\\t\\t.files-list__tfoot {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex-direction: column;\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t}\\n\\n\\t\\t// Table header\\n\\t\\t.files-list__thead {\\n\\t\\t\\t// Pinned on top when scrolling\\n\\t\\t\\tposition: sticky;\\n\\t\\t\\tz-index: 10;\\n\\t\\t\\ttop: var(--fixed-block-start-position);\\n\\t\\t}\\n\\n\\t\\t// Empty content\\n\\t\\t.files-list__empty {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex-direction: column;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tjustify-content: center;\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\theight: 100%;\\n\\t\\t}\\n\\n\\t\\ttr {\\n\\t\\t\\tposition: relative;\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\tborder-block-end: 1px solid var(--color-border);\\n\\t\\t\\tbox-sizing: border-box;\\n\\t\\t\\tuser-select: none;\\n\\t\\t\\theight: var(--row-height);\\n\\t\\t}\\n\\n\\t\\ttd, th {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tflex: 0 0 auto;\\n\\t\\t\\tjustify-content: start;\\n\\t\\t\\twidth: var(--row-height);\\n\\t\\t\\theight: var(--row-height);\\n\\t\\t\\tmargin: 0;\\n\\t\\t\\tpadding: 0;\\n\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\t\\tborder: none;\\n\\n\\t\\t\\t// Columns should try to add any text\\n\\t\\t\\t// node wrapped in a span. That should help\\n\\t\\t\\t// with the ellipsis on overflow.\\n\\t\\t\\tspan {\\n\\t\\t\\t\\toverflow: hidden;\\n\\t\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t.files-list__row--failed {\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\tdisplay: block;\\n\\t\\t\\ttop: 0;\\n\\t\\t\\tinset-inline: 0;\\n\\t\\t\\tbottom: 0;\\n\\t\\t\\topacity: .1;\\n\\t\\t\\tz-index: -1;\\n\\t\\t\\tbackground: var(--color-error);\\n\\t\\t}\\n\\n\\t\\t.files-list__row-checkbox {\\n\\t\\t\\tjustify-content: center;\\n\\n\\t\\t\\t.checkbox-radio-switch {\\n\\t\\t\\t\\tdisplay: flex;\\n\\t\\t\\t\\tjustify-content: center;\\n\\n\\t\\t\\t\\t--icon-size: var(--checkbox-size);\\n\\n\\t\\t\\t\\tlabel.checkbox-radio-switch__label {\\n\\t\\t\\t\\t\\twidth: var(--clickable-area);\\n\\t\\t\\t\\t\\theight: var(--clickable-area);\\n\\t\\t\\t\\t\\tmargin: 0;\\n\\t\\t\\t\\t\\tpadding: calc((var(--clickable-area) - var(--checkbox-size)) / 2);\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t.checkbox-radio-switch__icon {\\n\\t\\t\\t\\t\\tmargin: 0 !important;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t.files-list__row {\\n\\t\\t\\t&:hover, &:focus, &:active, &--active, &--dragover {\\n\\t\\t\\t\\t// WCAG AA compliant\\n\\t\\t\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\t\\t\\t// text-maxcontrast have been designed to pass WCAG AA over\\n\\t\\t\\t\\t// a white background, we need to adjust then.\\n\\t\\t\\t\\t--color-text-maxcontrast: var(--color-main-text);\\n\\t\\t\\t\\t> * {\\n\\t\\t\\t\\t\\t--color-border: var(--color-border-dark);\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t// Hover state of the row should also change the favorite markers background\\n\\t\\t\\t\\t.favorite-marker-icon svg path {\\n\\t\\t\\t\\t\\tstroke: var(--color-background-hover);\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t\\t&--dragover * {\\n\\t\\t\\t\\t// Prevent dropping on row children\\n\\t\\t\\t\\tpointer-events: none;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// Entry preview or mime icon\\n\\t\\t.files-list__row-icon {\\n\\t\\t\\tposition: relative;\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\toverflow: visible;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\t// No shrinking or growing allowed\\n\\t\\t\\tflex: 0 0 var(--icon-preview-size);\\n\\t\\t\\tjustify-content: center;\\n\\t\\t\\twidth: var(--icon-preview-size);\\n\\t\\t\\theight: 100%;\\n\\t\\t\\t// Show same padding as the checkbox right padding for visual balance\\n\\t\\t\\tmargin-inline-end: var(--checkbox-padding);\\n\\t\\t\\tcolor: var(--color-primary-element);\\n\\n\\t\\t\\t// Icon is also clickable\\n\\t\\t\\t* {\\n\\t\\t\\t\\tcursor: pointer;\\n\\t\\t\\t}\\n\\n\\t\\t\\t& > span {\\n\\t\\t\\t\\tjustify-content: flex-start;\\n\\n\\t\\t\\t\\t&:not(.files-list__row-icon-favorite):not(.files-list__row-icon-recently-created) svg {\\n\\t\\t\\t\\t\\twidth: var(--icon-preview-size);\\n\\t\\t\\t\\t\\theight: var(--icon-preview-size);\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t// Slightly increase the size of the folder icon\\n\\t\\t\\t\\t&.folder-icon,\\n\\t\\t\\t\\t&.folder-open-icon {\\n\\t\\t\\t\\t\\tmargin: -3px;\\n\\t\\t\\t\\t\\tsvg {\\n\\t\\t\\t\\t\\t\\twidth: calc(var(--icon-preview-size) + 6px);\\n\\t\\t\\t\\t\\t\\theight: calc(var(--icon-preview-size) + 6px);\\n\\t\\t\\t\\t\\t}\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t\\t&-preview-container {\\n\\t\\t\\t\\tposition: relative; // Needed for the blurshash to be positioned correctly\\n\\t\\t\\t\\toverflow: hidden;\\n\\t\\t\\t\\twidth: var(--icon-preview-size);\\n\\t\\t\\t\\theight: var(--icon-preview-size);\\n\\t\\t\\t\\tborder-radius: var(--border-radius);\\n\\t\\t\\t}\\n\\n\\t\\t\\t&-blurhash {\\n\\t\\t\\t\\tposition: absolute;\\n\\t\\t\\t\\tinset-block-start: 0;\\n\\t\\t\\t\\tinset-inline-start: 0;\\n\\t\\t\\t\\theight: 100%;\\n\\t\\t\\t\\twidth: 100%;\\n\\t\\t\\t\\tobject-fit: cover;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&-preview {\\n\\t\\t\\t\\t// Center and contain the preview\\n\\t\\t\\t\\tobject-fit: contain;\\n\\t\\t\\t\\tobject-position: center;\\n\\n\\t\\t\\t\\theight: 100%;\\n\\t\\t\\t\\twidth: 100%;\\n\\n\\t\\t\\t\\t/* Preview not loaded animation effect */\\n\\t\\t\\t\\t&:not(.files-list__row-icon-preview--loaded) {\\n\\t\\t\\t\\t\\tbackground: var(--color-loading-dark);\\n\\t\\t\\t\\t\\t// animation: preview-gradient-fade 1.2s ease-in-out infinite;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t\\t&-favorite,\\n\\t\\t\\t&-recently-created {\\n\\t\\t\\t\\tposition: absolute;\\n\\t\\t\\t\\ttop: 0px;\\n\\t\\t\\t\\tinset-inline-end: -10px;\\n\\t\\t\\t}\\n\\n\\t\\t\\t// File and folder overlay\\n\\t\\t\\t&-overlay {\\n\\t\\t\\t\\tposition: absolute;\\n\\t\\t\\t\\tmax-height: calc(var(--icon-preview-size) * 0.6);\\n\\t\\t\\t\\tmax-width: calc(var(--icon-preview-size) * 0.6);\\n\\t\\t\\t\\tcolor: var(--color-primary-element-text);\\n\\t\\t\\t\\t// better alignment with the folder icon\\n\\t\\t\\t\\tmargin-block-start: 2px;\\n\\n\\t\\t\\t\\t// Improve icon contrast with a background for files\\n\\t\\t\\t\\t&--file {\\n\\t\\t\\t\\t\\tcolor: var(--color-main-text);\\n\\t\\t\\t\\t\\tbackground: var(--color-main-background);\\n\\t\\t\\t\\t\\tborder-radius: 100%;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// Entry link\\n\\t\\t.files-list__row-name {\\n\\t\\t\\t// Prevent link from overflowing\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\t// Take as much space as possible\\n\\t\\t\\tflex: 1 1 auto;\\n\\n\\t\\t\\tbutton.files-list__row-name-link {\\n\\t\\t\\t\\tdisplay: flex;\\n\\t\\t\\t\\talign-items: center;\\n\\t\\t\\t\\ttext-align: start;\\n\\t\\t\\t\\t// Fill cell height and width\\n\\t\\t\\t\\twidth: 100%;\\n\\t\\t\\t\\theight: 100%;\\n\\t\\t\\t\\t// Necessary for flex grow to work\\n\\t\\t\\t\\tmin-width: 0;\\n\\t\\t\\t\\tmargin: 0;\\n\\t\\t\\t\\tpadding: 0;\\n\\n\\t\\t\\t\\t// Already added to the inner text, see rule below\\n\\t\\t\\t\\t&:focus-visible {\\n\\t\\t\\t\\t\\toutline: none !important;\\n\\t\\t\\t\\t}\\n\\n\\t\\t\\t\\t// Keyboard indicator a11y\\n\\t\\t\\t\\t&:focus .files-list__row-name-text {\\n\\t\\t\\t\\t\\toutline: var(--border-width-input-focused) solid var(--color-main-text) !important;\\n\\t\\t\\t\\t\\tborder-radius: var(--border-radius-element);\\n\\t\\t\\t\\t}\\n\\t\\t\\t\\t&:focus:not(:focus-visible) .files-list__row-name-text {\\n\\t\\t\\t\\t\\toutline: none !important;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\n\\t\\t\\t.files-list__row-name-text {\\n\\t\\t\\t\\tcolor: var(--color-main-text);\\n\\t\\t\\t\\t// Make some space for the outline\\n\\t\\t\\t\\tpadding: var(--default-grid-baseline) calc(2 * var(--default-grid-baseline));\\n\\t\\t\\t\\tpadding-inline-start: -10px;\\n\\t\\t\\t\\t// Align two name and ext\\n\\t\\t\\t\\tdisplay: inline-flex;\\n\\t\\t\\t}\\n\\n\\t\\t\\t.files-list__row-name-ext {\\n\\t\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\t\\t\\t// always show the extension\\n\\t\\t\\t\\toverflow: visible;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// Rename form\\n\\t\\t.files-list__row-rename {\\n\\t\\t\\twidth: 100%;\\n\\t\\t\\tmax-width: 600px;\\n\\t\\t\\tinput {\\n\\t\\t\\t\\twidth: 100%;\\n\\t\\t\\t\\t// Align with text, 0 - padding - border\\n\\t\\t\\t\\tmargin-inline-start: -8px;\\n\\t\\t\\t\\tpadding: 2px 6px;\\n\\t\\t\\t\\tborder-width: 2px;\\n\\n\\t\\t\\t\\t&:invalid {\\n\\t\\t\\t\\t\\t// Show red border on invalid input\\n\\t\\t\\t\\t\\tborder-color: var(--color-border-error);\\n\\t\\t\\t\\t\\tcolor: var(--color-text-error);\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t.files-list__row-actions {\\n\\t\\t\\t// take as much space as necessary\\n\\t\\t\\twidth: auto;\\n\\n\\t\\t\\t// Add margin to all cells after the actions\\n\\t\\t\\t& ~ td,\\n\\t\\t\\t& ~ th {\\n\\t\\t\\t\\tmargin: 0 var(--cell-margin);\\n\\t\\t\\t}\\n\\n\\t\\t\\tbutton {\\n\\t\\t\\t\\t.button-vue__text {\\n\\t\\t\\t\\t\\t// Remove bold from default button styling\\n\\t\\t\\t\\t\\tfont-weight: normal;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t.files-list__row-action--inline {\\n\\t\\t\\tmargin-inline-end: 7px;\\n\\t\\t}\\n\\n\\t\\t.files-list__row-mime,\\n\\t\\t.files-list__row-mtime,\\n\\t\\t.files-list__row-size {\\n\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\t}\\n\\n\\t\\t.files-list__row-size {\\n\\t\\t\\twidth: calc(var(--row-height) * 2);\\n\\t\\t\\t// Right align content/text\\n\\t\\t\\tjustify-content: flex-end;\\n\\t\\t}\\n\\n\\t\\t.files-list__row-mtime {\\n\\t\\t\\twidth: calc(var(--row-height) * 2.5);\\n\\t\\t}\\n\\n\\t\\t.files-list__row-mime {\\n\\t\\t\\twidth: calc(var(--row-height) * 3.5);\\n\\t\\t}\\n\\n\\t\\t.files-list__row-column-custom {\\n\\t\\t\\twidth: calc(var(--row-height) * 2.5);\\n\\t\\t}\\n\\t}\\n}\\n\\n@media screen and (max-width: 512px) {\\n\\t.files-list :deep(.files-list__filters) {\\n\\t\\t// Reduce padding on mobile\\n\\t\\tpadding-inline: var(--default-grid-baseline, 4px);\\n\\t}\\n}\\n\\n\"],\"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--grid tbody.files-list__tbody{--item-padding: 16px;--icon-preview-size: 166px;--name-height: var(--default-clickable-area);--mtime-height: calc(var(--font-size-small) + var(--default-grid-baseline));--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}.files-list--grid tbody.files-list__tbody 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)}.files-list--grid tbody.files-list__tbody .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)}.files-list--grid tbody.files-list__tbody .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)}.files-list--grid tbody.files-list__tbody .files-list__row-icon-favorite,.files-list--grid tbody.files-list__tbody .files-list__row-icon-recently-created{position:absolute;top:0;inset-inline-end:0;display:flex;align-items:center;justify-content:center;width:var(--clickable-area);height:var(--clickable-area)}.files-list--grid tbody.files-list__tbody .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}.files-list--grid tbody.files-list__tbody .files-list__row-name span.files-list__row-icon{width:var(--icon-preview-size);height:var(--icon-preview-size)}.files-list--grid tbody.files-list__tbody .files-list__row-name .files-list__row-name-text{margin:0;margin-inline-start:-4px;padding:0px 4px}.files-list--grid tbody.files-list__tbody .files-list__row-mtime{width:var(--icon-preview-size);height:var(--mtime-height);font-size:var(--font-size-small)}.files-list--grid tbody.files-list__tbody .files-list__row-actions{position:absolute;inset-inline-end:calc(var(--clickable-area)/4);inset-block-end:calc(var(--mtime-height)/2);width:var(--clickable-area);height:var(--clickable-area)}@media screen and (max-width: 768px){.files-list--grid tbody.files-list__tbody{--mtime-height: 0px}.files-list--grid tbody.files-list__tbody .files-list__row-actions{inset-block-end:var(--item-padding)}.files-list--grid tbody.files-list__tbody .files-list__row-name-text{padding-inline-end:var(--clickable-area) !important}}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FilesListVirtual.vue\"],\"names\":[],\"mappings\":\"AAEA,0CACC,oBAAA,CACA,0BAAA,CACA,4CAAA,CACA,2EAAA,CACA,qEAAA,CACA,iHAAA,CACA,uBAAA,CACA,YAAA,CACA,yDAAA,CAEA,oBAAA,CACA,kBAAA,CACA,4BAAA,CACA,oBAAA,CAEA,6CACC,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,wBAAA,CACA,WAAA,CACA,wCAAA,CACA,2BAAA,CAID,oEACC,iBAAA,CACA,SAAA,CACA,+BAAA,CACA,8CAAA,CACA,eAAA,CACA,+BAAA,CACA,oCAAA,CACA,qCAAA,CAGA,2GACC,UAAA,CACA,UAAA,CACA,WAAA,CACA,iBAAA,CACA,sBAAA,CACA,wBAAA,CACA,UAAA,CACA,uCAAA,CAKF,0JAEC,iBAAA,CACA,KAAA,CACA,kBAAA,CACA,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,2BAAA,CACA,4BAAA,CAGD,gEACC,YAAA,CACA,qBAAA,CACA,8BAAA,CACA,0DAAA,CAEA,gBAAA,CAEA,0FACC,8BAAA,CACA,+BAAA,CAGD,2FACC,QAAA,CAEA,wBAAA,CACA,eAAA,CAIF,iEACC,8BAAA,CACA,0BAAA,CACA,gCAAA,CAGD,mEACC,iBAAA,CACA,8CAAA,CACA,2CAAA,CACA,2BAAA,CACA,4BAAA,CAIF,qCAEC,0CACC,mBAAA,CAGA,mEACC,mCAAA,CAID,qEACC,mDAAA,CAAA\",\"sourcesContent\":[\"\\n// Grid mode\\n.files-list--grid tbody.files-list__tbody {\\n\\t--item-padding: 16px;\\n\\t--icon-preview-size: 166px;\\n\\t--name-height: var(--default-clickable-area);\\n\\t--mtime-height: calc(var(--font-size-small) + var(--default-grid-baseline));\\n\\t--row-width: calc(var(--icon-preview-size) + var(--item-padding) * 2);\\n\\t--row-height: calc(var(--icon-preview-size) + var(--name-height) + var(--mtime-height) + var(--item-padding) * 2);\\n\\t--checkbox-padding: 0px;\\n\\tdisplay: grid;\\n\\tgrid-template-columns: repeat(auto-fill, var(--row-width));\\n\\n\\talign-content: center;\\n\\talign-items: center;\\n\\tjustify-content: space-around;\\n\\tjustify-items: center;\\n\\n\\ttr {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\twidth: var(--row-width);\\n\\t\\theight: var(--row-height);\\n\\t\\tborder: none;\\n\\t\\tborder-radius: var(--border-radius-large);\\n\\t\\tpadding: var(--item-padding);\\n\\t}\\n\\n\\t// Checkbox in the top left\\n\\t.files-list__row-checkbox {\\n\\t\\tposition: absolute;\\n\\t\\tz-index: 9;\\n\\t\\ttop: calc(var(--item-padding) / 2);\\n\\t\\tinset-inline-start: calc(var(--item-padding) / 2);\\n\\t\\toverflow: hidden;\\n\\t\\t--checkbox-container-size: 44px;\\n\\t\\twidth: var(--checkbox-container-size);\\n\\t\\theight: var(--checkbox-container-size);\\n\\n\\t\\t// Add a background to the checkbox so we do not see the image through it.\\n\\t\\t.checkbox-radio-switch__content::after {\\n\\t\\t\\tcontent: '';\\n\\t\\t\\twidth: 16px;\\n\\t\\t\\theight: 16px;\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\tinset-inline-start: 50%;\\n\\t\\t\\tmargin-inline-start: -8px;\\n\\t\\t\\tz-index: -1;\\n\\t\\t\\tbackground: var(--color-main-background);\\n\\t\\t}\\n\\t}\\n\\n\\t// Icon in the top right\\n\\t.files-list__row-icon-favorite,\\n\\t.files-list__row-icon-recently-created {\\n\\t\\tposition: absolute;\\n\\t\\ttop: 0;\\n\\t\\tinset-inline-end: 0;\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tjustify-content: center;\\n\\t\\twidth: var(--clickable-area);\\n\\t\\theight: var(--clickable-area);\\n\\t}\\n\\n\\t.files-list__row-name {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\twidth: var(--icon-preview-size);\\n\\t\\theight: calc(var(--icon-preview-size) + var(--name-height));\\n\\t\\t// Ensure that the name outline is visible.\\n\\t\\toverflow: visible;\\n\\n\\t\\tspan.files-list__row-icon {\\n\\t\\t\\twidth: var(--icon-preview-size);\\n\\t\\t\\theight: var(--icon-preview-size);\\n\\t\\t}\\n\\n\\t\\t.files-list__row-name-text {\\n\\t\\t\\tmargin: 0;\\n\\t\\t\\t// Ensure that the outline is not too close to the text.\\n\\t\\t\\tmargin-inline-start: -4px;\\n\\t\\t\\tpadding: 0px 4px;\\n\\t\\t}\\n\\t}\\n\\n\\t.files-list__row-mtime {\\n\\t\\twidth: var(--icon-preview-size);\\n\\t\\theight: var(--mtime-height);\\n\\t\\tfont-size: var(--font-size-small);\\n\\t}\\n\\n\\t.files-list__row-actions {\\n\\t\\tposition: absolute;\\n\\t\\tinset-inline-end: calc(var(--clickable-area) / 4);\\n\\t\\tinset-block-end: calc(var(--mtime-height) / 2);\\n\\t\\twidth: var(--clickable-area);\\n\\t\\theight: var(--clickable-area);\\n\\t}\\n}\\n\\n@media screen and (max-width: 768px) {\\n\\t// there is no mtime\\n\\t.files-list--grid tbody.files-list__tbody {\\n\\t\\t--mtime-height: 0px;\\n\\n\\t\\t// so we move the action to the name\\n\\t\\t.files-list__row-actions {\\n\\t\\t\\tinset-block-end: var(--item-padding);\\n\\t\\t}\\n\\n\\t\\t// and we need to keep space on the name for the actions\\n\\t\\t.files-list__row-name-text {\\n\\t\\t\\tpadding-inline-end: var(--clickable-area) !important;\\n\\t\\t}\\n\\t}\\n}\\n\"],\"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-7c2cda32]{--app-navigation-quota-margin: calc((var(--default-clickable-area) - 24px) / 2)}.app-navigation-entry__settings-quota--not-unlimited[data-v-7c2cda32] .app-navigation-entry__name{line-height:1;margin-top:var(--app-navigation-quota-margin)}.app-navigation-entry__settings-quota progress[data-v-7c2cda32]{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\",\"sourcesContent\":[\"\\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\"],\"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-243e0eb8]{display:flex;overflow:hidden;flex-direction:column;max-height:100%;position:relative !important}.files-list__header[data-v-243e0eb8]{display:flex;gap:var(--default-grid-baseline);align-items:center;flex:0 0;max-width:100%;margin-block:var(--app-navigation-padding, 4px);margin-inline:calc(var(--default-clickable-area) + 2*var(--app-navigation-padding, 4px)) var(--app-navigation-padding, 4px)}.files-list__header--public[data-v-243e0eb8]{margin-inline:0 var(--app-navigation-padding, 4px)}.files-list__header>*[data-v-243e0eb8]{flex:0 0}.files-list__header-actions[data-v-243e0eb8]{min-width:fit-content !important}.files-list__header-upload-button--narrow[data-v-243e0eb8]{position:fixed;inset-block-end:calc(1.5*var(--default-grid-baseline));inset-inline-end:calc(1.5*var(--default-grid-baseline))}.files-list__before[data-v-243e0eb8]{display:flex;flex-direction:column;gap:calc(var(--default-grid-baseline)*2);margin-inline:calc(var(--default-clickable-area) + 2*var(--app-navigation-padding))}.files-list__empty-view-wrapper[data-v-243e0eb8]{display:flex;height:100%}.files-list__refresh-icon[data-v-243e0eb8]{flex:0 0 var(--default-clickable-area);width:var(--default-clickable-area);height:var(--default-clickable-area)}.files-list__loading-icon[data-v-243e0eb8]{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,gCAAA,CACA,kBAAA,CAEA,QAAA,CACA,cAAA,CAEA,+CAAA,CACA,2HAAA,CAEA,6CAEC,kDAAA,CAGD,uCAGC,QAAA,CAGD,6CACC,gCAAA,CAIF,2DAEC,cAAA,CACA,sDAAA,CACA,uDAAA,CAGD,qCACC,YAAA,CACA,qBAAA,CACA,wCAAA,CACA,mFAAA,CAGD,iDACC,YAAA,CACA,WAAA,CAGD,2CACC,sCAAA,CACA,mCAAA,CACA,oCAAA,CAGD,2CACC,WAAA\",\"sourcesContent\":[\"\\n:global(.toast-loading-icon) {\\n\\t// Reduce start margin (it was made for text but this is an icon)\\n\\tmargin-inline-start: -4px;\\n\\t// 16px icon + 5px on both sides\\n\\tmin-width: 26px;\\n}\\n\\n.app-content {\\n\\t// Virtual list needs to be full height and is scrollable\\n\\tdisplay: flex;\\n\\toverflow: hidden;\\n\\tflex-direction: column;\\n\\tmax-height: 100%;\\n\\tposition: relative !important;\\n}\\n\\n.files-list {\\n\\t&__header {\\n\\t\\tdisplay: flex;\\n\\t\\tgap: var(--default-grid-baseline);\\n\\t\\talign-items: center;\\n\\t\\t// Do not grow or shrink (vertically)\\n\\t\\tflex: 0 0;\\n\\t\\tmax-width: 100%;\\n\\t\\t// Align with the navigation toggle icon\\n\\t\\tmargin-block: var(--app-navigation-padding, 4px);\\n\\t\\tmargin-inline: calc(var(--default-clickable-area) + 2 * var(--app-navigation-padding, 4px)) var(--app-navigation-padding, 4px);\\n\\n\\t\\t&--public {\\n\\t\\t\\t// There is no navigation toggle on public shares\\n\\t\\t\\tmargin-inline: 0 var(--app-navigation-padding, 4px);\\n\\t\\t}\\n\\n\\t\\t>* {\\n\\t\\t\\t// Do not grow or shrink (horizontally)\\n\\t\\t\\t// Only the breadcrumbs shrinks\\n\\t\\t\\tflex: 0 0;\\n\\t\\t}\\n\\n\\t\\t&-actions {\\n\\t\\t\\tmin-width: fit-content !important;\\n\\t\\t}\\n\\t}\\n\\n\\t&__header-upload-button--narrow {\\n\\t\\t// this is teleported to body on narrow screens\\n\\t\\tposition: fixed;\\n\\t\\tinset-block-end: calc(1.5 * var(--default-grid-baseline));\\n\\t\\tinset-inline-end: calc(1.5 * var(--default-grid-baseline));\\n\\t}\\n\\n\\t&__before {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\tgap: calc(var(--default-grid-baseline) * 2);\\n\\t\\tmargin-inline: calc(var(--default-clickable-area) + 2 * var(--app-navigation-padding));\\n\\t}\\n\\n\\t&__empty-view-wrapper {\\n\\t\\tdisplay: flex;\\n\\t\\theight: 100%;\\n\\t}\\n\\n\\t&__refresh-icon {\\n\\t\\tflex: 0 0 var(--default-clickable-area);\\n\\t\\twidth: var(--default-clickable-area);\\n\\t\\theight: var(--default-clickable-area);\\n\\t}\\n\\n\\t&__loading-icon {\\n\\t\\tmargin: auto;\\n\\t}\\n}\\n\"],\"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-bb94c4f2] .app-navigation-entry.active .button-vue.icon-collapse:not(:hover){color:var(--color-primary-element-text)}.app-navigation>ul.app-navigation__list[data-v-bb94c4f2]{padding-bottom:var(--default-grid-baseline, 4px)}.app-navigation-entry__settings[data-v-bb94c4f2]{height:auto !important;overflow:hidden !important;padding-top:0 !important;flex:0 0 auto}.files-navigation[data-v-bb94c4f2] .app-navigation__content > ul.app-navigation__list{will-change:scroll-position}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/views/FilesNavigation.vue\"],\"names\":[],\"mappings\":\"AAEC,oGACC,uCAAA,CAGD,yDAEC,gDAAA,CAIF,iDACC,sBAAA,CACA,0BAAA,CACA,wBAAA,CAEA,aAAA,CAIA,sFACC,2BAAA\",\"sourcesContent\":[\"\\n.app-navigation {\\n\\t:deep(.app-navigation-entry.active .button-vue.icon-collapse:not(:hover)) {\\n\\t\\tcolor: var(--color-primary-element-text);\\n\\t}\\n\\n\\t> ul.app-navigation__list {\\n\\t\\t// Use flex gap value for more elegant spacing\\n\\t\\tpadding-bottom: var(--default-grid-baseline, 4px);\\n\\t}\\n}\\n\\n.app-navigation-entry__settings {\\n\\theight: auto !important;\\n\\toverflow: hidden !important;\\n\\tpadding-top: 0 !important;\\n\\t// Prevent shrinking or growing\\n\\tflex: 0 0 auto;\\n}\\n\\n.files-navigation {\\n\\t:deep(.app-navigation__content > ul.app-navigation__list) {\\n\\t\\twill-change: scroll-position;\\n\\t}\\n}\\n\"],\"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-sidebar--has-preview[data-v-f91af60e] .app-sidebar-header__figure{background-size:cover}.app-sidebar--has-preview[data-v-f91af60e][data-mimetype=\"text/plain\"] .app-sidebar-header__figure,.app-sidebar--has-preview[data-v-f91af60e][data-mimetype=\"text/markdown\"] .app-sidebar-header__figure{background-size:contain}.app-sidebar--full[data-v-f91af60e]{position:fixed !important;z-index:2025 !important;top:0 !important;height:100% !important}.app-sidebar[data-v-f91af60e] .app-sidebar-header__description{margin:0 16px 4px 16px !important}.app-sidebar .svg-icon[data-v-f91af60e] svg{width:20px;height:20px;fill:currentColor}.sidebar__description[data-v-f91af60e]{display:flex;flex-direction:column;width:100%;gap:8px 0}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/views/FilesSidebar.vue\"],\"names\":[],\"mappings\":\"AAGE,uEACC,qBAAA,CAKA,yMACC,uBAAA,CAKH,oCACC,yBAAA,CACA,uBAAA,CACA,gBAAA,CACA,sBAAA,CAIA,+DACC,iCAAA,CAKD,4CACC,UAAA,CACA,WAAA,CACA,iBAAA,CAKH,uCACE,YAAA,CACA,qBAAA,CACA,UAAA,CACA,SAAA\",\"sourcesContent\":[\"\\n.app-sidebar {\\n\\t&--has-preview:deep {\\n\\t\\t.app-sidebar-header__figure {\\n\\t\\t\\tbackground-size: cover;\\n\\t\\t}\\n\\n\\t\\t&[data-mimetype=\\\"text/plain\\\"],\\n\\t\\t&[data-mimetype=\\\"text/markdown\\\"] {\\n\\t\\t\\t.app-sidebar-header__figure {\\n\\t\\t\\t\\tbackground-size: contain;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&--full {\\n\\t\\tposition: fixed !important;\\n\\t\\tz-index: 2025 !important;\\n\\t\\ttop: 0 !important;\\n\\t\\theight: 100% !important;\\n\\t}\\n\\n\\t:deep {\\n\\t\\t.app-sidebar-header__description {\\n\\t\\t\\tmargin: 0 16px 4px 16px !important;\\n\\t\\t}\\n\\t}\\n\\n\\t.svg-icon {\\n\\t\\t:deep(svg) {\\n\\t\\t\\twidth: 20px;\\n\\t\\t\\theight: 20px;\\n\\t\\t\\tfill: currentColor;\\n\\t\\t}\\n\\t}\\n}\\n\\n.sidebar__description {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\twidth: 100%;\\n\\t\\tgap: 8px 0;\\n\\t}\\n\"],\"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, `\n._fileListFilterChips_yBylg {\n\tdisplay: flex;\n\tgap: var(--default-grid-baseline);\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FileListFilter/FileListFilterChips.vue\"],\"names\":[],\"mappings\":\";AAwCA;CACA,aAAA;CACA,iCAAA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"fileListFilterChips\": `_fileListFilterChips_yBylg`\n};\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, `\n._fileListFilters_dNswU {\n\tdisplay: flex;\n\tflex-direction: row;\n\tgap: var(--default-grid-baseline);\n\tmargin-inline-end: var(--default-grid-baseline);\n\theight: 100%;\n\twidth: 100%;\n}\n._fileListFilters__popoverFilterView_fJWbD {\n\tbox-sizing: border-box;\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: calc(2 * var(--default-grid-baseline));\n\tpadding: calc(var(--default-grid-baseline) / 2);\n\tmin-width: calc(7 * var(--default-clickable-area));\n}\n._fileListFilters__popoverContainer_A30Cl {\n\tbox-sizing: border-box;\n\tpadding: calc(var(--default-grid-baseline) / 2);\n\tmin-width: calc(7 * var(--default-clickable-area));\n}\n._fileListFilters__filter_bCU2H {\n\tdisplay: flex;\n\talign-items: start;\n\tjustify-content: start;\n\tgap: calc(var(--default-grid-baseline, 4px) * 2);\n> * {\n\t\tflex: 0 1 fit-content;\n}\n}\n._fileListFilters__active_ECsmY {\n\tdisplay: flex;\n\tflex-direction: row;\n\tgap: calc(var(--default-grid-baseline, 4px) * 2);\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FileListFilter/FileListFilters.vue\"],\"names\":[],\"mappings\":\";AAkGA;CACA,aAAA;CACA,mBAAA;CACA,iCAAA;CACA,+CAAA;CACA,YAAA;CACA,WAAA;AACA;AAEA;CACA,sBAAA;CACA,aAAA;CACA,sBAAA;CACA,2CAAA;CACA,+CAAA;CACA,kDAAA;AACA;AAEA;CACA,sBAAA;CACA,+CAAA;CACA,kDAAA;AACA;AAEA;CACA,aAAA;CACA,kBAAA;CACA,sBAAA;CACA,gDAAA;AAEA;EACA,qBAAA;AACA;AACA;AAEA;CACA,aAAA;CACA,mBAAA;CACA,gDAAA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"fileListFilters\": `_fileListFilters_dNswU`,\n\t\"fileListFilters__popoverFilterView\": `_fileListFilters__popoverFilterView_fJWbD`,\n\t\"fileListFilters__popoverContainer\": `_fileListFilters__popoverContainer_A30Cl`,\n\t\"fileListFilters__filter\": `_fileListFilters__filter_bCU2H`,\n\t\"fileListFilters__active\": `_fileListFilters__active_ECsmY`\n};\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, `\n._filesNavigationList_MBZVA {\n\theight: 100%; /* Fill all available space for sticky views */\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FilesNavigationList.vue\"],\"names\":[],\"mappings\":\";AAsDA;CACA,YAAA,EAAA,8CAAA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"filesNavigationList\": `_filesNavigationList_MBZVA`\n};\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, `\n._filesSidebarSubname_yXZVi {\n\tdisplay: flex;\n\talign-items: center;\n\tflex-wrap: wrap;\n\tgap: 0 8px;\n}\n._filesSidebarSubname__separator__OQUr {\n\tdisplay: inline-block;\n\tfont-weight: bold !important;\n}\n._filesSidebarSubname__userBubble_XTdWm {\n\tdisplay: inline-flex !important;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/FilesSidebar/FilesSidebarSubname.vue\"],\"names\":[],\"mappings\":\";AAiDA;CACA,aAAA;CACA,mBAAA;CACA,eAAA;CACA,UAAA;AACA;AAEA;CACA,qBAAA;CACA,4BAAA;AACA;AAEA;CACA,+BAAA;AACA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"filesSidebarSubname\": `_filesSidebarSubname_yXZVi`,\n\t\"filesSidebarSubname__separator\": `_filesSidebarSubname__separator__OQUr`,\n\t\"filesSidebarSubname__userBubble\": `_filesSidebarSubname__userBubble_XTdWm`\n};\nexport default ___CSS_LOADER_EXPORT___;\n","import { getCurrentUser, onRequestTokenUpdate, getRequestToken } from \"@nextcloud/auth\";\nimport { generateRemoteUrl } from \"@nextcloud/router\";\nimport { isPublicShare, getSharingToken } from \"@nextcloud/sharing/public\";\nimport { createClient, getPatcher } from \"webdav\";\nimport { P as Permission, s as scopedGlobals, l as logger, c as NodeStatus, a as File, b as Folder } from \"./chunks/folder-29HuacU_.mjs\";\nimport \"@nextcloud/paths\";\n/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nfunction parsePermissions(permString = \"\") {\n let permissions = Permission.NONE;\n if (!permString) {\n return permissions;\n }\n if (permString.includes(\"G\")) {\n permissions |= Permission.READ;\n }\n if (permString.includes(\"W\")) {\n permissions |= Permission.WRITE;\n }\n if (permString.includes(\"CK\")) {\n permissions |= Permission.CREATE;\n }\n if (permString.includes(\"NV\")) {\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}\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};\nfunction registerDavProperty(prop, namespace = { nc: \"http://nextcloud.org/ns\" }) {\n scopedGlobals.davNamespaces ??= { ...defaultDavNamespaces };\n scopedGlobals.davProperties ??= [...defaultDavProperties];\n const namespaces = { ...scopedGlobals.davNamespaces, ...namespace };\n if (scopedGlobals.davProperties.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 scopedGlobals.davProperties.push(prop);\n scopedGlobals.davNamespaces = namespaces;\n return true;\n}\nfunction getDavProperties() {\n scopedGlobals.davProperties ??= [...defaultDavProperties];\n return scopedGlobals.davProperties.map((prop) => `<${prop} />`).join(\" \");\n}\nfunction getDavNameSpaces() {\n scopedGlobals.davNamespaces ??= { ...defaultDavNamespaces };\n return Object.keys(scopedGlobals.davNamespaces).map((ns) => `xmlns:${ns}=\"${scopedGlobals.davNamespaces?.[ns]}\"`).join(\" \");\n}\nfunction getDefaultPropfind() {\n return `\n\t\t\n\t\t\t\n\t\t\t\t${getDavProperties()}\n\t\t\t\n\t\t`;\n}\nfunction getFavoritesReport() {\n return `\n\t\t\n\t\t\t\n\t\t\t\t${getDavProperties()}\n\t\t\t\n\t\t\t\n\t\t\t\t1\n\t\t\t\n\t\t`;\n}\nfunction getRecentSearch(lastModified) {\n return `\n\n\t\n\t\t\n\t\t\t\n\t\t\t\t${getDavProperties()}\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t/files/${getCurrentUser()?.uid}/\n\t\t\t\tinfinity\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\thttpd/unix-directory\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t0\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t${lastModified}\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t\t100\n\t\t\t0\n\t\t\n\t\n`;\n}\nfunction getRootPath() {\n if (isPublicShare()) {\n return `/files/${getSharingToken()}`;\n }\n return `/files/${getCurrentUser()?.uid}`;\n}\nconst defaultRootPath = getRootPath();\nfunction getRemoteURL() {\n const url = generateRemoteUrl(\"dav\");\n if (isPublicShare()) {\n return url.replace(\"remote.php\", \"public.php\");\n }\n return url;\n}\nconst defaultRemoteURL = getRemoteURL();\nfunction getClient(remoteURL = defaultRemoteURL, 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}\nasync function getFavoriteNodes(options = {}) {\n const client = options.client ?? getClient();\n const path = options.path ?? \"/\";\n const davRoot = options.davRoot ?? defaultRootPath;\n const contentsResponse = await client.getDirectoryContents(`${davRoot}${path}`, {\n signal: options.signal,\n details: true,\n data: getFavoritesReport(),\n headers: {\n // see getClient for patched webdav client\n method: \"REPORT\"\n },\n includeSelf: true\n });\n return contentsResponse.data.filter((node) => node.filename !== path).map((result) => resultToNode(result, davRoot));\n}\nfunction resultToNode(node, filesRoot = defaultRootPath, remoteURL = defaultRemoteURL) {\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 = parsePermissions(props?.permissions);\n const owner = String(props?.[\"owner-id\"] || userId);\n const id = props.fileid || 0;\n const mtime = new Date(Date.parse(node.lastmod));\n const crtime = new Date(Date.parse(props.creationdate));\n const nodeData = {\n id,\n source: `${remoteURL}${node.filename}`,\n mtime: !isNaN(mtime.getTime()) && mtime.getTime() !== 0 ? mtime : void 0,\n crtime: !isNaN(crtime.getTime()) && crtime.getTime() !== 0 ? crtime : void 0,\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}\nexport {\n defaultDavNamespaces,\n defaultDavProperties,\n defaultRemoteURL,\n defaultRootPath,\n getClient,\n getDavNameSpaces,\n getDavProperties,\n getDefaultPropfind,\n getFavoriteNodes,\n getFavoritesReport,\n getRecentSearch,\n getRemoteURL,\n getRootPath,\n parsePermissions,\n registerDavProperty,\n resultToNode\n};\n//# sourceMappingURL=dav.mjs.map\n","import '../assets/index-BGmULkk-.css';\nimport { getSharingToken, isPublicShare } from \"@nextcloud/sharing/public\";\nimport { getCurrentUser } from \"@nextcloud/auth\";\nimport { formatFileSize, Folder, davRemoteURL, davRootPath, Permission, FileType, davGetClient, validateFilename, InvalidFilenameError, getUniqueName, getNewFileMenuEntries, NewMenuEntryCategory } from \"@nextcloud/files\";\nimport { basename, encodePath } from \"@nextcloud/paths\";\nimport { normalize } from \"path\";\nimport { getCapabilities } from \"@nextcloud/capabilities\";\nimport axios, { isCancel } from \"@nextcloud/axios\";\nimport PCancelable from \"p-cancelable\";\nimport PQueue from \"p-queue\";\nimport { getGettextBuilder } from \"@nextcloud/l10n/gettext\";\nimport { getBaseUrl, generateRemoteUrl } from \"@nextcloud/router\";\nimport axiosRetry, { exponentialDelay, isNetworkOrIdempotentRequestError } from \"axios-retry\";\nimport { getLoggerBuilder } from \"@nextcloud/logger\";\nimport { TypedEventTarget } from \"typescript-event-target\";\nimport Vue, { defineAsyncComponent, defineComponent } from \"vue\";\nimport { showInfo, showWarning } from \"@nextcloud/dialogs\";\nimport { spawnDialog } from \"@nextcloud/vue/functions/dialog\";\nimport { useHotKey } from \"@nextcloud/vue/dist/Composables/useHotKey.js\";\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\";\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 , 2025\", \"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\\nabu.s3ud, 2024\\nAli , 2025\\n\" }, \"msgstr\": [\"Last-Translator: Ali , 2025\\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} ملف متعارض في {dirname}\", \"{count} ملف متعارض في {dirname}\", \"{count} ملفان متعارضان في {dirname}\", \"{count} ملف متعارض في {dirname}\", \"{count} ملفات متعارضة في {dirname}\", \"{count} ملفات متعارضة في {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"مازال {seconds} ثوانٍ\", \"مازال {seconds} ثوانٍ\", \"مازال {seconds} ثوانٍ\", \"مازال {seconds} ثوانٍ\", \"مازال {seconds} ثوانٍ\", \"مازال {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\": [\"بضع ثوانٍ متبقية\"] }, \"assembling\": { \"msgid\": \"assembling\", \"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\": [\"الإصدار الحالي\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"تعذّرت إعادة تجميع الكتل معاً \"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"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 , 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 , 2023\\n\" }, \"msgstr\": [\"Last-Translator: enolp , 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 , 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 , 2023\\n\" }, \"msgstr\": [\"Last-Translator: Rashad Aliyev , 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\": \"Leandro Navarro , 2025\", \"Language-Team\": \"Catalan (https://app.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:\\nJoas Schilling, 2024\\nv v , 2025\\nLeandro Navarro , 2025\\n\" }, \"msgstr\": [\"Last-Translator: Leandro Navarro , 2025\\nLanguage-Team: Catalan (https://app.transifex.com/nextcloud/teams/64236/ca/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ca\\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}\" és un nom de fitxer o carpeta prohibit.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" és un tipus de fitxer prohibit.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" no és permès dins del nom de fitxer o carpeta.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count}fitxer en conflicte\", \"{count} fitxer en conflicte\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} conflicte de fitxers a {dirname}\", \"{count} conflictes de fitxers a {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} segon restant\", \"{seconds} segons restants\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"Queden {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"queden uns segons\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"assemblatge\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Cancel·lar\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Cancel·lar l'operació sencera\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Cancel·la les pujades\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Continuar\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Crea nou\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"s’està estimant el temps restant\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Existing version\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"No s'han pogut acoblar els trossos\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"No s'ha pogut pujar el fitxer\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": [`Els noms de fitxer no han d'acabar en \"{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 seleccioneu les dues versions, el fitxer entrant tindrà un número afegit al seu nom.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Nom de fitxer no vàlid\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Data de la darrera modificació desconeguda\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Nou\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Nou nom de fitxer\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Nova versió\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"en pausa\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Imatge de vista prèvia\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Canviar el nom\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Seleccioneu totes les caselles de selecció\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Seleccioneu tots els fitxers existents\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Seleccioneu tots el fitxers nous\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Saltar\"] }, \"Skip {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Omet {count} fitxer\", \"Omet {count} fitxers\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"Omet aquest fitxer\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Mida desconeguda\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Pujar\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Puja els fitxers\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Pujar les carpetes\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Pujada des del dispositiu\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"La pujada s'ha cancel·lat\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"S'ha omès la pujada\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": [`S'ha omès la pujada de \"{folder}\"`] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Procés de pujada\"] }, \"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\": [\"Quan es selecciona una carpeta d'entrada, també es sobreescriuran els fitxers en conflicte dins d'ella.\"] }, \"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\": [\"Quan es selecciona una carpeta d'entrada, el contingut s'escriu a la carpeta existent i es realitza una resolució recursiva de conflictes.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Quins fitxers vols 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\": [\"Podeu canviar el nom del fitxer, saltar aquest fitxer o cancel·lar tota l'operació.\"] }, \"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\": [\"Heu de seleccionar almenys una versió de cada fitxer per continuar.\"] } } } } }, { \"locale\": \"cs\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Pavel Borecki , 2025\", \"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 , 2024\\nMartin Hankovec, 2024\\nAppukonrad , 2024\\nPavel Borecki , 2025\\n\" }, \"msgstr\": [\"Last-Translator: Pavel Borecki , 2025\\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\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"zbývá {seconds}\", \"zbývají {seconds}\", \"zbývá {seconds}\", \"zbývají {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\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"sestavování\"] }, \"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\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Shluky se nepodařilo dát dohromady\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Soubor se nepodařilo nahrát\"] }, '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 {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Přeskočit {count} soubor\", \"Přeskočit {count} soubory\", \"Přeskočit {count} souborů\", \"Přeskočit {count} soubory\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"Přeskočit tento soubor\"] }, \"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\": \"Finn Sommer , 2025\", \"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\\nRasmus Rosendahl-Kaa, 2024\\nMartin Bonde , 2025\\nFinn Sommer , 2025\\n\" }, \"msgstr\": [\"Last-Translator: Finn Sommer , 2025\\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\"] }, '\"{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 tilladt i et fil- eller mappenavn.'] }, \"{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\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"{sekunder} sekunder tilbage\", \"{sekunder} sekunder tilbage\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} tilbage\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"et par sekunder tilbage\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"samling\"] }, \"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\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Mislykkedes at samle stumperne sammen\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Kunne ikke uploade filen\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Filnavne 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 vælger begge versioner, vil den indkommende fil have et nummer tilføjet til sit navn.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Ugyldigt filnavn\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Sidste modifikationsdato ukendt\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Ny\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Nyt filnavn\"] }, \"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 {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Spring {count} fil over\", \"Spring {count} fil over\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"Spring denne fil over\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Ukendt størrelse\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Upload\"] }, \"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 has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Upload er blevet sprunget over\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Upload af \"{folder}\" er blevet sprunget over'] }, \"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 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 omdøbe filen, springe denne fil over eller annullere hele handlingen.\"] }, \"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\": \"Martin Wilichowski, 2025\", \"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\\nAndy Scherzinger , 2024\\nMark Ziegler , 2025\\nMario Siegmann , 2025\\nMartin Wilichowski, 2025\\n\" }, \"msgstr\": [\"Last-Translator: Martin Wilichowski, 2025\\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\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} Sekunde verbleibt\", \"{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\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"zusammenfügen\"] }, \"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\": [\"Berechne verbleibende Zeit\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Vorhandene Version\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Die Teile konnten nicht zusammengefügt werden\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Die Datei konnte nicht hochgeladen werden\"] }, '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 {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"{count} Datei überspringen\", \"{count} Dateien überspringen\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"Diese Datei ü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\": \"Martin Wilichowski, 2025\", \"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\\nMark Ziegler , 2025\\nMario Siegmann , 2025\\nMartin Wilichowski, 2025\\n\" }, \"msgstr\": [\"Last-Translator: Martin Wilichowski, 2025\\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\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} Sekunde verbleibt\", \"{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\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"zusammenfügen\"] }, \"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\": [\"Berechne verbleibende Zeit\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Vorhandene Version\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Die Teile konnten nicht zusammengefügt werden\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Die Datei konnte nicht hochgeladen werden\"] }, '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 {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"{count} Datei überspringen\", \"{count} Dateien überspringen\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"Diese Datei ü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\": \"Γιάννος, 2025\", \"Language-Team\": \"Greek (https://app.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:\\nJoas Schilling, 2024\\nEfstathios Iosifidis , 2025\\nΓιάννος, 2025\\n\" }, \"msgstr\": [\"Last-Translator: Γιάννος, 2025\\nLanguage-Team: Greek (https://app.transifex.com/nextcloud/teams/64236/el/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: el\\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}\" είναι απαγορευμένο όνομα αρχείου ή φακέλου.'] }, '\"{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} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} αρχείο σε διένεξη στον φάκελο {dirname}\", \"{count} αρχεία σε διένεξη στον φάκελο {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"Απομένει {seconds} δευτερόλεπτο\", \"Απομένουν {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\": [\"απομένουν λίγα δευτερόλεπτα\"] }, \"assembling\": { \"msgid\": \"assembling\", \"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\": [\"Υπάρχουσα έκδοση\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Αποτυχία συναρμολόγησης των κομματιών\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"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 {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Παράλειψη {count} αρχείου\", \"Παράλειψη {count} αρχείων\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"Παραλείψτε αυτό το αρχείο\"] }, \"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\": \"en_GB\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Andi Chandler , 2025\", \"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 , 2025\\n\" }, \"msgstr\": [\"Last-Translator: Andi Chandler , 2025\\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\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} seconds left\", \"{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\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"assembling\"] }, \"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\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Failed to assemble the chunks together\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Failed to upload the file\"] }, '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 {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Skip {count} file\", \"Skip {count} files\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"Skip this file\"] }, \"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, 2025\", \"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 , 2024\\nJulio C. Ortega, 2025\\n\" }, \"msgstr\": [\"Last-Translator: Julio C. Ortega, 2025\\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\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" es un nombre de archivo o carpeta no permitido.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" es un tipo de archivo no permitido.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" no está permitido dentro del nombre de un archivo o carpeta.'] }, \"{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\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"queda {seconds} segundo\", \"quedan {seconds} segundos\", \"quedan {seconds} segundos\"] }, \"{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\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"ensamblando\"] }, \"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\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Fallo al ensamblar todas las partes juntas\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Fallo al cargar el archivo\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Los nombres de archivo no deben terminar en \"{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 selecciona ambas versionas, el archivo entrante le será agregado un número a su nombre.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"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 filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Nuevo nombre de archivo\"] }, \"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 {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Omitir {count} archivo\", \"Omitir {count} archivos\", \"Omitir {count} archivos\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"Omitir este archivo\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Tamaño desconocido\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Cargar\"] }, \"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 has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"La carga fue omitida\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['La carga de \"{folder}\" ha sido omitida'] }, \"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 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\": [\"Puede o bien, renombrar el archivo, omitirlo, o, cancelar toda la 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 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 , 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 , 2024\\n\" }, \"msgstr\": [\"Last-Translator: Matías Campo Hoet , 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\": \"Priit Jõerüüt , 2025\", \"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:\\nJoas Schilling, 2024\\nPriit Jõerüüt , 2025\\n\" }, \"msgstr\": [\"Last-Translator: Priit Jõerüüt , 2025\\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\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": [\"„{segment}“ on keelatud faili- või kausta nimi.\"] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": [\"„{segment}“ on keelatud failitüüp.\"] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": [\"„{segment}“ pole faili- või kausta nimes lubatud.\"] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} fail on vastuolus\", \"{count} faili on vastuolus\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} fail on vastuolus „{dirname}“ kaustas\", \"{count} faili on vastuolus „{dirname}“ kaustas\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"jäänud {seconds} sekund\", \"jäänud {seconds} sekundit\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"aega jäänud {time} \"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"jäänud mõni sekund\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"koostamisel\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Katkesta\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Katkesta kogu tegevus\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Katkesta üleslaadimine\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Jätka\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Loo uus\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"hinnanguline järelejäänud aeg\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Olemasolev versioon\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Tükkide koostamine üheks tervikuks ei õnnestunud\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Faili üleslaadimine ei õnnestunud\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": [\"Failinime lõpus ei tohi olla „{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\": [\"Kui sa valid mõlemad versioonid, lisatakse kopeeritud faili nimele number.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Vigane failinimi\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Viimase muutmise kuupäev pole teada\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Uus\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Uus failinimi\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Uus versioon\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"pausil\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Vaata pildi eelvaadet\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Muuda nime\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Vali kõik märkeruudud\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Vali kõik olemasolevad failid\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Vali kõik uued failid\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Jäta vahele\"] }, \"Skip {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Jäta vahele {count} fail\", \"Jäta vahele {count} faili\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"Jäta vahele see fail\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Tundmatu suurus\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Laadi üles\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Laadi failid üles\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Laadi kaustad üles\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Laadi üles seadmest\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Üleslaadimine on katkestatud\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Üleslaadimine on vahele jäetud\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": [\"„{folder}“ kausta üleslaadimine on vahele jäetud\"] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Üleslaadimise edenemine\"] }, \"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\": [\"Kui saabuvate failide kaust on valitud, siis seal asuvad vastuoluliste nimedega failid kirjutatakse samuti üle.\"] }, \"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\": [\"Kui saabuvate failide kaust on valitud, siis sisu kirjutatakse olemasolevasse kausta ja käivitatakse rekursiivne vastuolude haldus.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Milliseid faile soovid säilitada?\"] }, \"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\": [\"Sa võid kas faili nime muuta, ta vahele jätta või kogu tegevuse katkestada.\"] }, \"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\": [\"Jätkamiseks pead valima vähemalt ühe versiooni igast failist.\"] } } } } }, { \"locale\": \"eu\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Unai Tolosa Pontesta , 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 , 2022\\n\" }, \"msgstr\": [\"Last-Translator: Unai Tolosa Pontesta , 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\": \"Alireza Rashidi, 2025\", \"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:\\nJoas Schilling, 2024\\nreza reza , 2024\\nAlireza Rashidi, 2025\\n\" }, \"msgstr\": [\"Last-Translator: Alireza Rashidi, 2025\\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\"] }, '\"{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} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} پرونده با {dirname} ناسازگاری داشت\", \"{count} پرونده با {dirname} ناسازگاری داشت\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} ثانیه مانده\", \"{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\": [\"چند ثانیه مانده\"] }, \"assembling\": { \"msgid\": \"assembling\", \"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\": [\"نگارش موجود\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"نتوانست تکه‌های را به سرهم کند\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"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\": \"fi\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Jiri Grönroos , 2025\", \"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\\nthingumy, 2024\\nteemue, 2024\\nJiri Grönroos , 2025\\n\" }, \"msgstr\": [\"Last-Translator: Jiri Grönroos , 2025\\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\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} sekunti jäljellä\", \"{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ä\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"kootaan\"] }, \"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\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Palojen kokoaminen yhteen epäonnistui\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Tiedoston lähetys epäonnistui\"] }, '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\": { \"msgid\": \"Upload\", \"msgstr\": [\"Lähetä\"] }, \"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\": \"Caro Leviia, 2025\", \"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\\nJEEEEEEEEEEEEEEEEEEEEEED, 2024\\nJérôme HERBINET, 2024\\nacazenave, 2024\\nLisa Cintosh, 2025\\nLdm Public , 2025\\nCaro Leviia, 2025\\n\" }, \"msgstr\": [\"Last-Translator: Caro Leviia, 2025\\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\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} seconde restante\", \"{seconds} secondes restantes\", \"{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\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"assemblage\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Annuler\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Annuler toute l'opération\"] }, \"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\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Échec de l'assemblage des morceaux\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Échec de téléversement du fichier\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Les noms des fichiers ne doivent pas terminer 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, un numéro sera ajouté au nom du fichier entrant.\"] }, \"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 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 {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"{count} fichier ignoré\", \"{count} fichiers ignorés\", \"{count} fichiers ignorés\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"Ignorer ce fichier\"] }, \"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, 2025\", \"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, 2025\\n\" }, \"msgstr\": [\"Last-Translator: Aindriú Mac Giolla Eoin, 2025\\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\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} soicind fágtha\", \"{seconds} soicind fágtha\", \"{seconds} soicind fágtha\", \"{seconds} soicind fágtha\", \"{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\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"ag cur le chéile\"] }, \"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 \"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Theip ar na smután a chur le chéile le chéile\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Theip ar uaslódáil an chomhaid\"] }, '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 {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Léim an comhad {count}\", \"Léim thar {count} comhad\", \"Léim thar {count} comhad\", \"Léim thar {count} comhad\", \"Léim thar {count} comhad\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"Seachain an comhad seo\"] }, \"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 , 2025\", \"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 , 2025\\n\" }, \"msgstr\": [\"Last-Translator: Miguel Anxo Bouzada , 2025\\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\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"falta {seconds} segundo\", \"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\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"ensamblando\"] }, \"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\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Produciuse un fallo ao ensamblar os anacos\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Produciuse un fallo ao enviar o ficheiro\"] }, '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 {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Omitir {count} ficheiro\", \"Omitir {count} ficheiros\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"Omitir este ficheiro\"] }, \"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 , 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 , 2024\\n\" }, \"msgstr\": [\"Last-Translator: Gyuris Gellért , 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 , 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æ , 2023\\nEmpty Slot Filler, 2023\\nLinerly , 2023\\n\" }, \"msgstr\": [\"Last-Translator: Linerly , 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 , 2025\", \"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:\\nJoas Schilling, 2024\\nSveinn í Felli , 2025\\n\" }, \"msgstr\": [\"Last-Translator: Sveinn í Felli , 2025\\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\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" er bannað sem heiti á skrá eða möppu.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" er bönnuð skráartegund.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" er ekki leyfilegt innan í heiti á skrá eða möppu.'] }, \"{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\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} sekúnda eftir\", \"{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\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"set saman\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Hætta við\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Hætta við alla aðgerðina\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Hætta við innsendingar\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Halda áfram\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Búa til nýtt\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"áætla tíma sem eftir er\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Fyrirliggjandi útgáfa\"] }, \"Failed assembling the chunks together\": { \"msgid\": \"Failed assembling the chunks together\", \"msgstr\": [\"Mistókst að setja saman bútana\"] }, \"Failed uploading the file\": { \"msgid\": \"Failed uploading the file\", \"msgstr\": [\"Mistókst að senda inn skrána\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Skráaheiti mega ekki enda á \"{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\": [\"Ef þú velur báðar útgáfur, þá mun verða bætt tölustaf aftan við heiti innkomandi skrárinnar.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Ógilt skráarheiti\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Síðasta breytingadagsetning er óþekkt\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Nýtt\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Nýtt skráarheiti\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Ný útgáfa\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"í bið\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Forskoðun myndar\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Endurnefna\"] }, \"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\": { \"msgid\": \"Skip\", \"msgstr\": [\"Sleppa\"] }, \"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\": { \"msgid\": \"Upload\", \"msgstr\": [\"Senda inn\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Senda inn skrár\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Senda inn möppur\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Senda inn frá tæki\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Hætt hefur verið við innsendingu\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Innsendingu hefur verið sleppt\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Innsendingu á \"{folder}\" hefur verið sleppt'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Framvinda innsendingar\"] }, \"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\": [\"Þegar valin er mappa fyrir skrár sem berast, verður einnig skrifað yfir allar skrár í henni sem valda árekstrum.\"] }, \"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\": [\"Þegar valin er mappa fyrir skrár sem berast, verður efnið skrifað inn í fyrirliggjandi möppu og farið í að leysa úr árekstrum.\"] }, \"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 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\": [\"Þú getur annaðhvort endurnefnt skrána, sleppt þessari skrá eða hætt við alla þessa aðgerð.\"] }, \"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\": \"Roberto Resoli, 2025\", \"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:\\nJoas Schilling, 2024\\nFrancesco Sercia, 2024\\nalbanobattistella , 2024\\nLorenzo Taiocchi, 2025\\nesseti kappa, 2025\\nRoberto Resoli, 2025\\n\" }, \"msgstr\": [\"Last-Translator: Roberto Resoli, 2025\\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\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" è un nome di file o cartella proibito.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\"è un tipo di file proibito.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": [`\"{segment}\" non è consentito all'interno di un nome di file o cartella.`] }, \"{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\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} secondo rimanente \", \"{seconds} secondi rimanenti \", \"{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\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"assemblaggio\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Annulla\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Annulla l'intera operazione\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Annulla i caricamenti\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Continua\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Crea nuovo\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"calcolo il tempo rimanente\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Versione esistente\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Impossibile unire i pezzi\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Impossibile caricare il file\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['I nomi dei file non devono terminare 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 selezioni entrambe le versioni, nel nome del file copiato verrà aggiunto un numero \"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Nome file non valido\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Ultima modifica sconosciuta\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Nuovo\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Nuovo nome file\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Nuova versione\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"pausa\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Anteprima immagine\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Rinomina\"] }, \"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\": { \"msgid\": \"Skip\", \"msgstr\": [\"Salta\"] }, \"Skip {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Sata {count} file\", \"Salta {count} file\", \"Salta {count} file\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"Salta questo file\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Dimensione sconosciuta\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Caricamento\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Carica i file\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Carica cartelle\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Carica dal dispositivo\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Caricamento annullato\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Il caricamento è stato saltato\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Il caricamento di \"{folder}\" è stato saltato'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Progresso del caricamento\"] }, \"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 si seleziona una cartella in arrivo, anche tutti i file in conflitto al suo interno verranno sovrascritti.\"] }, \"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 si seleziona una cartella in arrivo, il contenuto viene scritto nella cartella esistente e viene eseguita una risoluzione ricorsiva dei conflitti.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Quali file vuoi mantenere?\"] }, \"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\": [\"È possibile rinominare il file, ignorarlo o annullare l'intera operazione.\"] }, \"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\": \"kojima.imamura, 2025\", \"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\\nTakafumi AKAMATSU, 2024\\ndevi, 2024\\n貴宝, 2025\\nkshimohata, 2025\\nkojima.imamura, 2025\\n\" }, \"msgstr\": [\"Last-Translator: kojima.imamura, 2025\\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\", \"msgid_plural\": \"{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\": [\"残り数秒\"] }, \"assembling\": { \"msgid\": \"assembling\", \"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\": [\"既存バージョン\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"チャンクの組み立てに失敗しました\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"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 {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"{count} 個のファイルをスキップする\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"このファイルをスキップする\"] }, \"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\": \"보헤민, 2025\", \"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\\nshin2012 , 2025\\n이상오, 2025\\n보헤민, 2025\\n\" }, \"msgstr\": [\"Last-Translator: 보헤민, 2025\\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\"] }, '\"{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\", \"msgid_plural\": \"{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\": [\"곧 완료\"] }, \"assembling\": { \"msgid\": \"assembling\", \"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\": [\"현재 버전\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"조각을 취합하는 데 실패\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"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 {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"{count}개 파일 건너뛰기\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"이 파일 건너뛰기\"] }, \"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\": \"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\": \"bone NI, 2025\", \"Language-Team\": \"Lao (https://app.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:\\nbone NI, 2025\\n\" }, \"msgstr\": [\"Last-Translator: bone NI, 2025\\nLanguage-Team: Lao (https://app.transifex.com/nextcloud/teams/64236/lo/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: lo\\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\": [\"ໄຟລ໌ຊ້ຳກັນ {count} ລາຍການ ໃນ {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{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\": [\"ເຫຼືອເວລາອີກບໍ່ດົນ\"] }, \"assembling\": { \"msgid\": \"assembling\", \"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\": [\"ສະບັບທີ່ມີຢູ່ແລ້ວ\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"ການຮວບຮວມສ່ວນຕ່າງໆເຂົ້າກັນບໍ່ສຳເລັດ\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"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 {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"ຂ້າມ {count} ໄຟລ໌\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"ຂ້າມໄຟລ໌ນີ້\"] }, \"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\": \"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\": \"Edgars Andersons, 2025\", \"Language-Team\": \"Latvian (https://app.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:\\nPapuass , 2024\\nArmīns Jeltajevs , 2024\\nEdgars Andersons, 2025\\n\" }, \"msgstr\": [\"Last-Translator: Edgars Andersons, 2025\\nLanguage-Team: Latvian (https://app.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\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" ir aizliegts datnes vai mapes nosaukums.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" ir aizliegts datnes veids.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" ir nav ļauts datnes vai mapes nosaukumā.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} nesaderīgu datņu\", \"{count} nesaderīga datne\", \"{count} nesaderīgas datnes\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} nesaderīgu datņu {dirname}\", \"{count} nesaderīga datne {dirname}\", \"{count} nesaderīgas datnes {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"Atlikušas {seconds} sekundes\", \"Atlikusi {seconds} sekunde\", \"Atlikušas {seconds} sekundes\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"atlicis {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"atlikušas dažas sekundes\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"sakopo\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Atcelt\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Atcelt visu darbību\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Atcelt augšupielādes\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Turpināt\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Izveidot jaunu\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"paredzamais atlikušais laiks\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Esošā versija\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Neizdevās apvienot gabalus\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Neizdevās augšupielādēt datni\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Datnes nosaukumi nedrīkst beigties ar \"{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\": [\"Ja atlasa abas versijas, ienākošās datnes nosaukumam tiks pievienots skaitlis.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Nederīgs datnes nosaukums\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Pēdējais izmainīšanas datums nav zināms\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Jauns\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Jauns datnes nosaukums\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Jauna versija\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"apturēta\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Priekšskatīt attēlu\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Pārdēvēt\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Atlasīt visas izvēles rūtiņas\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Atlasīt visas esošās datnes\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Atlasīt visas jaunās datnes\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Izlaist\"] }, \"Skip {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Izlaist {count} datņu\", \"Izlaist {count} datni\", \"Izlaist {count} datnes\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"Izlaist šo datni\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Nezināms izmērs\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Augšupielādēt\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Augšupielādēt datnes\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Augšupielādēt mapes\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Augšupielādēt no ierīces\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Augšupielāde tika atcelta\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Augšupielāde tika izlaista\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['\"{folder}\" augšupielāde tika izlaista'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Augšupielādes virzība\"] }, \"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\": [\"Kad ir atlasīta ienākošā mape, tiks pārrakstītas arī jebkuras tajā esošās nesaderīgās datnes.\"] }, \"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\": [\"Kad ir atlasīta ienākošā mape, saturs tiks rakstīts esošajā mapē, un tiks veikta rekursīva nesaderību novēršana.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Kuras datnes paturēt?\"] }, \"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\": [\"Datni var vai nu pārdēvēt, vai izlaist vai atcelt visu darbību.\"] }, \"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\": [\"Ir nepieciešams atlasīt vismaz vienu katras datnes versiju, lai turpinātu.\"] } } } } }, { \"locale\": \"mk\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Сашко Тодоров , 2025\", \"Language-Team\": \"Macedonian (https://app.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:\\nJoas Schilling, 2024\\nСашко Тодоров , 2025\\n\" }, \"msgstr\": [\"Last-Translator: Сашко Тодоров , 2025\\nLanguage-Team: Macedonian (https://app.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\"] }, '\"{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} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} конфликт со датотека во {dirname}\", \"{count} конфликти на датотеки во {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"уште {seconds} секунда\", \"уште {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\": [\"уште неколку секунди\"] }, \"assembling\": { \"msgid\": \"assembling\", \"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\": [\"Постоечка верзија\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Неуспешно составување на парчињата заедно\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"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 {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Прескокни {count} датотека\", \"Прескокни {count} датотеки\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"Прескокни ја оваа датотека\"] }, \"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\": \"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\": \"DT Navy, 2024\", \"Language-Team\": \"Malay (Malaysia) (https://app.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:\\nDT Navy, 2024\\n\" }, \"msgstr\": [\"Last-Translator: DT Navy, 2024\\nLanguage-Team: Malay (Malaysia) (https://app.transifex.com/nextcloud/teams/64236/ms_MY/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: ms_MY\\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}\" adalah fail dan nama folder yang dilarang'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" adalah jenis fail yang dilarang'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" adalah tidak dibenarkan dalam nama fail atau folder'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} files bertindih\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} fail bertindih dalam {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} saat tinggal\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} tinggal\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"beberapa saat lagi\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"batal\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Batal keseluruhan operasi\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"batal muat naik\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"teruskan\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Buat baharu\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"jangkaan masa tinggal\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"versi sedia ada\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Nama fail tidak boleh berakhir dengan \"{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\": [\"Jika dua versi dipilih, fail yang masuk akan ditambah bilangan pada namanya.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Nama fail tidak sah\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Tarikh terakhir diubah suai tidak diketahui\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Baru\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Nama fail baharu\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Versi baharu\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"Jeda\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Pratonton gambar\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Menamakan semula\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Pilih semua kotak pilihan\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Pilih semua fail yang wujud\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"pilih semua fail baharu\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Langkau\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Langkau fail {count}\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Saiz tidak diketahui\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Muat naik\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Muat naik fail\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Muat naik folder\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Muat naik dari peranti\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Muat naik telah dibatalkan\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Muat naik telah dilangkau\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Muat naik \"{folder}\" telah dilangkau'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Kemajuan muat naik\"] }, \"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\": [\"Apabila folder masuk dipilih, sebarang fail bertindih akan ditulis semula\"] }, \"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\": [\"Apabila folder masuk dipilih, kandungan ditulis ke dalam folder sedia ada dan penyelesaian konflik rekursif dilakukan.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Fail yang mana ingin disimpan?\"] }, \"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\": [\"And boleh menamakan semula fail, langkau fail tersebut atau membatalkan keseluruhan operasi\"] }, \"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 perlu memilih sekurangnya satu versi setiap fail untuk teruskan\"] } } } } }, { \"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\": \"Stephan Paternotte , 2025\", \"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:\\nJoas Schilling, 2024\\nJoris deLeeuw, 2025\\nStephan Paternotte , 2025\\n\" }, \"msgstr\": [\"Last-Translator: Stephan Paternotte , 2025\\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\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" is een verboden bestands- of mapnaam.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" is een verboden bestandstype.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" is niet toegestaan in een bestand of mapnaam.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} bestandsconflict\", \"{count} bestanden conflicteren\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} bestandsconflict in {dirname}\", \"{count} bestandenconflicten in {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} seconde resterend\", \"{seconds} seconden resterend\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} resterend\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"Nog een paar seconden over\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"samenstellen\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Annuleren\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"De hele bewerking annuleren\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Uploaden annuleren\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Doorgaan\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Nieuw aanmaken\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"resterende tijd schatten\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Bestaande versie\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Kon de stukken niet samenvoegen\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Het uploaden van het bestand is mislukt\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Bestandsnamen mogen niet eindigen met \"{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\": [\"Als je beide versies selecteert, krijgt het binnenkomende bestand een nummer toegevoegd aan de naam.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Ongeldige bestandsnaam\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Laatst gewijzigde datum onbekend\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Nieuw\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Nieuwe bestandsnaam\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Nieuwe versie\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"gepauzeerd\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Voorbeeldweergave\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Hernoemen\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Alle opties selecteren\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Alle bestanden selecteren\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Alle nieuwe bestanden selecteren\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Overslaan\"] }, \"Skip {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"{count} bestand overslaan\", \"{count} bestanden overslaan\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"Dit bestand overslaan\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Onbekende grootte\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Uploaden\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Upload bestanden\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Mappen uploaden\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Uploaden vanaf apparaat\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Upload is geanulleerd\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Upload is overgeslagen\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Upload van \"{folder}\" is overgeslagen'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Uploadvoortgang\"] }, \"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\": [\"Wanneer een inkomende map is geselecteerd, worden alle conflicterende bestanden daarin ook overschreven.\"] }, \"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\": [\"Wanneer een inkomende map is geselecteerd, wordt de inhoud in de bestaande map geschreven en wordt er een recursieve conflictoplossing uitgevoerd.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Welke bestanden wil je behouden?\"] }, \"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\": [\"Je kunt het bestand ofwel hernoemen, dit bestand overslaan of de hele bewerking annuleren.\"] }, \"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\": [\"Je moet minstens één versie van elk bestand selecteren om door te gaan.\"] } } } } }, { \"locale\": \"nn_NO\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Norwegian Nynorsk (Norway) (https://www.transifex.com/nextcloud/teams/64236/nn_NO/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"nn_NO\", \"Plural-Forms\": \"nplurals=2; plural=(n != 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Norwegian Nynorsk (Norway) (https://www.transifex.com/nextcloud/teams/64236/nn_NO/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: nn_NO\\nPlural-Forms: nplurals=2; plural=(n != 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"oc\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Transifex Bot <>, 2022\", \"Language-Team\": \"Occitan (post 1500) (https://www.transifex.com/nextcloud/teams/64236/oc/)\", \"Content-Type\": \"text/plain; charset=UTF-8\", \"Language\": \"oc\", \"Plural-Forms\": \"nplurals=2; plural=(n > 1);\" }, \"translations\": { \"\": { \"\": { \"msgid\": \"\", \"comments\": { \"translator\": \"\\nTranslators:\\nTransifex Bot <>, 2022\\n\" }, \"msgstr\": [\"Last-Translator: Transifex Bot <>, 2022\\nLanguage-Team: Occitan (post 1500) (https://www.transifex.com/nextcloud/teams/64236/oc/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: oc\\nPlural-Forms: nplurals=2; plural=(n > 1);\\n\"] }, \"{estimate} seconds left\": { \"msgid\": \"{estimate} seconds left\", \"msgstr\": [\"\"] }, \"{hours} hours and {minutes} minutes left\": { \"msgid\": \"{hours} hours and {minutes} minutes left\", \"msgstr\": [\"\"] }, \"{minutes} minutes left\": { \"msgid\": \"{minutes} minutes left\", \"msgstr\": [\"\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"\"] }, \"Add\": { \"msgid\": \"Add\", \"msgstr\": [\"\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"\"] } } } } }, { \"locale\": \"pl\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Valdnet, 2025\", \"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 Strebski , 2024\\nValdnet, 2025\\n\" }, \"msgstr\": [\"Last-Translator: Valdnet, 2025\\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\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" to zabroniona nazwa pliku lub katalogu.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" jest zabronionym typem pliku.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['Znak \"{segment}\" nie jest dozwolony w nazwie pliku lub katalogu.'] }, \"{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\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Utwórz nowe\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"Szacowanie pozostałego czasu\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Istniejąca wersja\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Nazwy plików nie mogą kończyć się 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\": [\"Jeśli wybierzesz obie wersje, do nazwy pliku przychodzącego zostanie dodany numer.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Nieprawidłowa nazwa pliku\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Nieznana data ostatniej modyfikacji\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Nowy\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Nowa nazwa pliku\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Nowa wersja\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"Wstrzymane\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Podgląd obrazu\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Zmiana nazwy\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Zaznacz wszystkie pola wyboru\"] }, \"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\": { \"msgid\": \"Skip\", \"msgstr\": [\"Pomiń\"] }, \"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\": { \"msgid\": \"Upload\", \"msgstr\": [\"Wyślij\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Wyślij pliki\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Wyślij katalogi\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Wyślij z urządzenia\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Wysyłanie zostało anulowane\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Wysyłanie zostało pominięte\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Wysyłanie \"{folder}\" zostało pominięte'] }, \"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 katalogu 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 katalogu przychodzącego zawartość jest zapisywana w istniejącym katalogu 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 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\": [\"Możesz zmienić nazwę pliku, pominąć ten plik lub anulować całą operację.\"] }, \"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\": \"F Bausch, 2025\", \"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 , 2024\\nRodrigo Sottomaior Macedo , 2024\\nF Bausch, 2025\\n\" }, \"msgstr\": [\"Last-Translator: F Bausch, 2025\\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\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} segundo restante\", \"{seconds} segundos restantes\", \"{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\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"montando\"] }, \"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\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Falha ao montar os pedaços juntos\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Falha ao fazer o upload do arquivo\"] }, '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\": [\"Selecionar todas as caixas de seleção\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Selecionar todos os arquivos existentes\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Selecionar todos os novos arquivos\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Pular\"] }, \"Skip {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Pular {count} arquivo\", \"Pular {count} de arquivos\", \"Pular {count} arquivos\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"Pular este arquivo\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Tamanho desconhecido\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Fazer upload\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Fazer upload de arquivos\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Fazer upload de pastas\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Fazer upload 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 pulado'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Progresso de upload\"] }, \"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 recebida é selecionada, todos os arquivos conflitantes 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 recebida é 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\": \"artur25 , 2025\", \"Language-Team\": \"Portuguese (Portugal) (https://app.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:\\nJoas Schilling, 2024\\nguilherme ferreira, 2025\\nartur25 , 2025\\n\" }, \"msgstr\": [\"Last-Translator: artur25 , 2025\\nLanguage-Team: Portuguese (Portugal) (https://app.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\"] }, '\"{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 ficheiro 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 num nome de ficheiro ou pasta.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"Conflito em {count} ficheiro\", \"Conflito em {count} ficheiros\", \"Conflito em {count} ficheiros\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} conflito de ficheiro em {dirname}\", \"{count} conflitos de ficheiro em {dirname}\", \"{count} conflitos de ficheiro em {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"Falta {seconds} segundo\", \"Faltam {seconds} segundos\", \"Faltam {seconds} segundos\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"faltam {time}\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"faltam uns segundos\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"montagem\"] }, \"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 envios\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Continuar\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Criar novo\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"tempo em falta estimado\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Versão existente\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Falha ao juntar os fragmentos\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Falha ao carregar o ficheiro\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Os nomes de ficheiro não podem terminar em \"{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 selecionar ambas as versões, será adicionado um número ao nome do ficheiro recebido.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Nome de ficheiro 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 ficheiro\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Nova versão\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"pausado\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Pré-visualizar imagem\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Renomear\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Selecionar todas as caixas de verificação\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Selecionar todos os ficheiros existentes\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Selecionar todos os ficheiros novos\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Ignorar\"] }, \"Skip {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Ignorar {count} ficheiro\", \"Ignorar {count} ficheiros\", \"Ignorar {count} ficheiros\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"Ignorar este ficheiro\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Tamanho desconhecido\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Carregar\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Enviar ficheiros\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Carregar pastas\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Carregar a partir do dispositivo\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"O carregamento foi cancelado\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"O carregamento foi ignorado\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['O carregamento da pasta \"{folder}\" foi ignorado'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Progresso do carregamento\"] }, \"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\": [\"Ao selecionar uma pasta recebida, quaisquer ficheiros em conflito no seu interior 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\": [\"Ao selecionar uma pasta recebida, o conteúdo é escrito na pasta existente e é efetuada uma resolução de conflitos recursiva.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Quais ficheiros pretende 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\": [\"Pode renomear o ficheiro, ignorá-lo 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\": [\"Precisa de selecionar pelo menos uma versão de cada ficheiro para continuar.\"] } } } } }, { \"locale\": \"ro\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"Mădălin Vasiliu , 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 , 2022\\n\" }, \"msgstr\": [\"Last-Translator: Mădălin Vasiliu , 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\": \"Igor Orlov, 2025\", \"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\\nВлад, 2024\\nAlex , 2024\\nRoman Stepanov, 2024\\nMaksim Sukharev, 2024\\nАлександр, 2025\\nIgor Orlov, 2025\\n\" }, \"msgstr\": [\"Last-Translator: Igor Orlov, 2025\\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\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"осталась {seconds} секунда\", \"осталось {seconds} секунды\", \"осталось {seconds} секунд\", \"осталось {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\": [\"осталось несколько секунд\"] }, \"assembling\": { \"msgid\": \"assembling\", \"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\": [\"Текущая версия\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Не удалось собрать части вместе\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"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 {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Пропустить {count} файл\", \"Пропустить {count} файла\", \"Пропустить {count} файлов\", \"Пропустить {count} файлов\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"Пропустить этот файл\"] }, \"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\": \"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\": \"Anton Krajcik , 2025\", \"Language-Team\": \"Slovak (Slovakia) (https://app.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:\\nJozef Gaal , 2024\\nLinker Linker , 2024\\nAnton Krajcik , 2025\\n\" }, \"msgstr\": [\"Last-Translator: Anton Krajcik , 2025\\nLanguage-Team: Slovak (Slovakia) (https://app.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\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": [\"„{segment}“ je zakázaný názov súboru alebo priečinka.\"] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" je zákazaný typ súboru.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}“ je zakázané v názve súboru alebo adresára.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} súbor má konflikt\", \"{count} súbory majú konflikt\", \"{count} súborov má konflikt\", \"{count} súborov má konflikt\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count} súborový konflikt v {dirname}\", \"{count} súborové konflikty v {dirname}\", \"{count} súborových konfliktov v {dirname}\", \"{count} súborových konfliktov v {dirname}\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} sekunda zostáva\", \"{seconds} sekúnd zostáva\", \"{seconds} sekúnd zostáva\", \"{seconds} sekundy zostávajú\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} zostáva\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"zostáva niekoľko sekúnd\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"zhromažďovanie\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Zrušiť\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Zrušiť celú operáciu\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Zrušiť nahrávanie\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Pokračovať\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Vytvoriť nové\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"odhadovanie zostávajúceho času\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Existujúca verzia\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Nepodarilo sa dať časti dohromady.\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Nepodarilo sa nahrať súbor\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Názvy súborov nesmú končiť znakom \"{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\": [\"Ak vyberiete obe verzie, k názvu prichádzajúceho súboru sa pridá číslo.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Neplatný názov súboru\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Dátum poslednej úpravy neznámy\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Nový\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Nový názov súboru\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Nová verzia\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"pozastavené\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Náhľad obrázka\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Premenovať\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Označiť všetky výberové políčka\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Vybrať všetky existujúce súbory\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Vybrať všetky nové súbory\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Preskočiť\"] }, \"Skip {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Preskočiť {count} súbor\", \"Preskočiť {count} súborov\", \"Preskočiť {count} súborov\", \"Preskočiť {count} súbory\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"Preskočiť tento súbor\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Neznáma veľkosť\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Nahrať\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Nahrať súbory\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Nahrať priečinky\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Nahrať zo zariadenia\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Nahrávanie bolo zrušené\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Nahrávanie bolo preskočené\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Nahrávanie \"{folder}\" bolo preskočené'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Priebeh nahrávania\"] }, \"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\": [\"Keď je vybraný prichádzajúci priečinok, prepíšu sa aj všetky konfliktné súbory v ňom.\"] }, \"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 výbere prichádzajúceho priečinka sa obsah zapíše do existujúceho priečinka a vykoná sa rekurzívne riešenie konfliktov.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Ktoré súbory chcete ponechať?\"] }, \"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\": [\"Súbor môžete premenovať, preskočiť alebo zrušiť celú operáciu.\"] }, \"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\": [\"Ak chcete pokračovať, musíte vybrať aspoň jednu verziu každého súboru.\"] } } } } }, { \"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č , 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\": \"Иван Пешић, 2025\", \"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Иван Пешић, 2025\\n\" }, \"msgstr\": [\"Last-Translator: Иван Пешић, 2025\\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\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"преостало је {seconds} секунда\", \"преостало је {seconds} секунде\", \"преостало је {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\": [\"преостало је неколико секунди\"] }, \"assembling\": { \"msgid\": \"assembling\", \"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\": [\"Постојећа верзија\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Није успело састављање делова\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"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 {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Прескочи {count} фајл\", \"Прескочи {count} фајла\", \"Прескочи {count} фајлова\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"Прескочи овај фајл\"] }, \"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, 2025\", \"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, 2025\\n\" }, \"msgstr\": [\"Last-Translator: Magnus Höglund, 2025\\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\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} sekunder kvar\", \"{seconds} sekunder kvar\"] }, \"{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\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"Sammanställer\"] }, \"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\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Misslyckades med att sammanställa delarna\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Kunde inte ladda upp filen\"] }, '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 {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Hoppa över {count} fil\", \"Hoppa över {count} filer\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"Hoppa över denna fil\"] }, \"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 , 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 , 2022\\n\" }, \"msgstr\": [\"Last-Translator: Phongpanot Phairat , 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 , 2025\", \"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 , 2025\\n\" }, \"msgstr\": [\"Last-Translator: Kaya Zeren , 2025\\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\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} saniye kaldı\", \"{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ı\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"birleştiriliyor\"] }, \"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\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Parçalar birleştirilemedi\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Dosya yüklenemedi\"] }, '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 {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"{count} dosyayı atla\", \"{count} dosyayı atla\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"Bu 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, 2025\", \"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, 2025\\n\" }, \"msgstr\": [\"Last-Translator: O St, 2025\\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\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} секунда залишилася\", \"{seconds} секунди залишилося\", \"{seconds} секунд залишилося\", \"{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\": [\"залишилося кілька секунд\"] }, \"assembling\": { \"msgid\": \"assembling\", \"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\": [\"Присутня версія\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Не вдалося зібрати частинки докупи\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"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 {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Пропустити {count} файл\", \"Пропустити {count} файли\", \"Пропустити {count} файлів\", \"Пропустити {count} файлів\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"Пропустити цей файл\"] }, \"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\": \"Khurshid Ibatov , 2025\", \"Language-Team\": \"Uzbek (https://app.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:\\nKhurshid Ibatov , 2025\\n\" }, \"msgstr\": [\"Last-Translator: Khurshid Ibatov , 2025\\nLanguage-Team: Uzbek (https://app.transifex.com/nextcloud/teams/64236/uz/)\\nContent-Type: text/plain; charset=UTF-8\\nLanguage: uz\\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}\" taqiqlangan fayl yoki papka nomidir.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" taqiqlangan fayl turi hisoblanadi.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" fayl yoki papka nomi ichida ruxsat berilmaydi.'] }, \"{count} file conflict\": { \"msgid\": \"{count} file conflict\", \"msgid_plural\": \"{count} files conflict\", \"msgstr\": [\"{count} fayllar ziddiyati\"] }, \"{count} file conflict in {dirname}\": { \"msgid\": \"{count} file conflict in {dirname}\", \"msgid_plural\": \"{count} file conflicts in {dirname}\", \"msgstr\": [\"{count}fayl ziddiyatlari {dirname} da\"] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} soniya qoldi\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} qoldi\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"bir necha soniya qoldi\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"yig'ish\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Bekor qilish\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Butun operatsiyani bekor qiling\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Yuklashni bekor qilish\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Davom eting\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Yangi yaratish\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"qolgan vaqtni hisoblash\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Mavjud versiya\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Bo'laklarni birlashtirib bo'lmadi\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Fayl yuklanmadi\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Fayl nomlari bilan tugamasligi kerak \"{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\": [\"Agar siz ikkala versiyani tanlasangiz, kiruvchi fayl nomiga qo'shilgan raqamga ega bo'ladi.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Fayl nomi noto‘g‘ri\"] }, \"Last modified date unknown\": { \"msgid\": \"Last modified date unknown\", \"msgstr\": [\"Oxirgi tahrirlangan sana noma'lum\"] }, \"New\": { \"msgid\": \"New\", \"msgstr\": [\"Yangi\"] }, \"New filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Yangi nom faylga\"] }, \"New version\": { \"msgid\": \"New version\", \"msgstr\": [\"Yangi versiya\"] }, \"paused\": { \"msgid\": \"paused\", \"msgstr\": [\"tanaffus\"] }, \"Preview image\": { \"msgid\": \"Preview image\", \"msgstr\": [\"Rasmni oldindan ko'rish\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Qayta nomlash\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Barcha katakchalarni belgilang\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Barcha mavjud fayllarni tanlang\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Barcha yangi fayllarni tanlang\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Oʻtkazib yuborish\"] }, \"Skip {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Oʻtkazib yuborish {count} fayllarini\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"Oʻtkazib yuborish ushbu faylni\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Noma'lum o'lcham\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Yuklash\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Fayllarni yuklash\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Jildlarni yuklash\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Qurilmadan yuklash\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Yuklash bekor qilindi\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Yuklash oʻtkazib yuborildi\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": [' \"{folder}\" ni yuklash bekor qilindi'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Yuklash jarayoni\"] }, \"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\": [\"Kiruvchi jild tanlanganda, undagi har qanday ziddiyatli fayllar ham ustiga yoziladi.\"] }, \"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\": [\"Kiruvchi jild tanlanganda, kontent mavjud jildga yoziladi va nizolarni rekursiv hal qilish amalga oshiriladi.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Qaysi fayllarni saqlamoqchisiz?\"] }, \"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\": [\"Siz fayl nomini o'zgartirishingiz, ushbu faylni o'tkazib yuborishingiz yoki butun operatsiyani bekor qilishingiz mumkin.\"] }, \"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\": [\"Davom etish uchun har bir faylning kamida bitta versiyasini tanlashingiz kerak.\"] } } } } }, { \"locale\": \"vi\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"nhatCreA, 2025\", \"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:\\nJoas Schilling, 2024\\nnhatCreA, 2025\\n\" }, \"msgstr\": [\"Last-Translator: nhatCreA, 2025\\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\"] }, '\"{segment}\" is a forbidden file or folder name.': { \"msgid\": '\"{segment}\" is a forbidden file or folder name.', \"msgstr\": ['\"{segment}\" là tên thư mục bị cấm đặt.'] }, '\"{segment}\" is a forbidden file type.': { \"msgid\": '\"{segment}\" is a forbidden file type.', \"msgstr\": ['\"{segment}\" là loại tệp bị cấm.'] }, '\"{segment}\" is not allowed inside a file or folder name.': { \"msgid\": '\"{segment}\" is not allowed inside a file or folder name.', \"msgstr\": ['\"{segment}\" không được phép đặt trong tên tệp hoặc thư mục.'] }, \"{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 ở thư mục \"{dirname}\"'] }, \"{seconds} seconds left\": { \"msgid\": \"{seconds} seconds left\", \"msgid_plural\": \"{seconds} seconds left\", \"msgstr\": [\"{seconds} giây trước\"] }, \"{time} left\": { \"msgid\": \"{time} left\", \"comments\": { \"extracted\": \"TRANSLATORS time has the format 00:00:00\" }, \"msgstr\": [\"{time} trước\"] }, \"a few seconds left\": { \"msgid\": \"a few seconds left\", \"msgstr\": [\"vài giây trước\"] }, \"assembling\": { \"msgid\": \"assembling\", \"msgstr\": [\"đang cấu trúc\"] }, \"Cancel\": { \"msgid\": \"Cancel\", \"msgstr\": [\"Huỷ\"] }, \"Cancel the entire operation\": { \"msgid\": \"Cancel the entire operation\", \"msgstr\": [\"Huỷ toàn bộ thao tác\"] }, \"Cancel uploads\": { \"msgid\": \"Cancel uploads\", \"msgstr\": [\"Huỷ tải lên\"] }, \"Continue\": { \"msgid\": \"Continue\", \"msgstr\": [\"Tiếp Tục\"] }, \"Create new\": { \"msgid\": \"Create new\", \"msgstr\": [\"Tạo mới\"] }, \"estimating time left\": { \"msgid\": \"estimating time left\", \"msgstr\": [\"ước tính thời gian còn lại\"] }, \"Existing version\": { \"msgid\": \"Existing version\", \"msgstr\": [\"Phiên bản hiện tại\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"Không thể assemble các chunks lại với nhau\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"msgstr\": [\"Tải lên tệp tin thất bại\"] }, 'Filenames must not end with \"{segment}\".': { \"msgid\": 'Filenames must not end with \"{segment}\".', \"msgstr\": ['Tên tập tin không được kết thúc bằng \"{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\": [\"Nếu bạn chọn cả hai, tệp tin đến sẽ có thêm một chữ số vào tên.\"] }, \"Invalid filename\": { \"msgid\": \"Invalid filename\", \"msgstr\": [\"Tên tệp tin không hợp lệ\"] }, \"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 filename\": { \"msgid\": \"New filename\", \"msgstr\": [\"Tên tệp tin 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\"] }, \"Rename\": { \"msgid\": \"Rename\", \"msgstr\": [\"Đổi tên\"] }, \"Select all checkboxes\": { \"msgid\": \"Select all checkboxes\", \"msgstr\": [\"Chọn tất cả\"] }, \"Select all existing files\": { \"msgid\": \"Select all existing files\", \"msgstr\": [\"Chọn tất cả các tập tin đang tồn tại\"] }, \"Select all new files\": { \"msgid\": \"Select all new files\", \"msgstr\": [\"Chọn tất cả các tập tin mới\"] }, \"Skip\": { \"msgid\": \"Skip\", \"msgstr\": [\"Bỏ qua\"] }, \"Skip {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"Bỏ qua {count} tệp\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"Bỏ qua tệp này\"] }, \"Unknown size\": { \"msgid\": \"Unknown size\", \"msgstr\": [\"Không rõ dung lượng\"] }, \"Upload\": { \"msgid\": \"Upload\", \"msgstr\": [\"Tải Lên\"] }, \"Upload files\": { \"msgid\": \"Upload files\", \"msgstr\": [\"Tải lên tệp tin\"] }, \"Upload folders\": { \"msgid\": \"Upload folders\", \"msgstr\": [\"Tải lên thư mục\"] }, \"Upload from device\": { \"msgid\": \"Upload from device\", \"msgstr\": [\"Tải lên từ thiết bị\"] }, \"Upload has been cancelled\": { \"msgid\": \"Upload has been cancelled\", \"msgstr\": [\"Tải lên đã bị huỷ\"] }, \"Upload has been skipped\": { \"msgid\": \"Upload has been skipped\", \"msgstr\": [\"Tải lên đã bỏ qua\"] }, 'Upload of \"{folder}\" has been skipped': { \"msgid\": 'Upload of \"{folder}\" has been skipped', \"msgstr\": ['Tải lên \"{folder}\" đã bị bỏ qua'] }, \"Upload progress\": { \"msgid\": \"Upload progress\", \"msgstr\": [\"Tiến trình tải lê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\": [\"Khi bạn chọn một thư mục để đưa vào, bất kỳ tệp nào trong đó gây xung đột cũng sẽ bị ghi đè.\"] }, \"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\": [\"Khi chọn một thư mục để đưa vào, nội dung sẽ được ghi vào thư mục hiện có, và hệ thống sẽ tự động giải quyết các xung đột một cách chi tiết và cẩn thận.\"] }, \"Which files do you want to keep?\": { \"msgid\": \"Which files do you want to keep?\", \"msgstr\": [\"Bạn muốn giữ tệp nào?\"] }, \"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\": [\"Bạn có thể đổi tên tệp, bỏ qua tệp này, hoặc hủy toàn bộ thao tác.\"] }, \"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 cho mỗi tệp để tiếp tục.\"] } } } } }, { \"locale\": \"zh_CN\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"DWXXX, 2025\", \"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\\nDWXXX, 2025\\n\" }, \"msgstr\": [\"Last-Translator: DWXXX, 2025\\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\", \"msgid_plural\": \"{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\": [\"还剩几秒\"] }, \"assembling\": { \"msgid\": \"assembling\", \"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\": [\"服务端版本\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"组合区块失败\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"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 {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"跳过 {count} 文件\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"跳过此文件\"] }, \"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, 2025\", \"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, 2025\\n\" }, \"msgstr\": [\"Last-Translator: Café Tango, 2025\\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\"] }, '\"{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\", \"msgid_plural\": \"{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\": [\"還剩幾秒\"] }, \"assembling\": { \"msgid\": \"assembling\", \"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\": [\"既有版本\"] }, \"Failed to assemble the chunks together\": { \"msgid\": \"Failed to assemble the chunks together\", \"msgstr\": [\"無法組裝這些部分\"] }, \"Failed to upload the file\": { \"msgid\": \"Failed to upload the file\", \"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 {count} file\": { \"msgid\": \"Skip {count} file\", \"msgid_plural\": \"Skip {count} files\", \"msgstr\": [\"略過 {count} 個檔案\"] }, \"Skip this file\": { \"msgid\": \"Skip this file\", \"msgstr\": [\"略過這個檔案\"] }, \"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_TW\", \"json\": { \"charset\": \"utf-8\", \"headers\": { \"Last-Translator\": \"黃柏諺 , 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黃柏諺 , 2024\\n\" }, \"msgstr\": [\"Last-Translator: 黃柏諺 , 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);\n/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nclass UploadCancelledError extends Error {\n constructor(cause) {\n super(t(\"Upload has been cancelled\"), { cause });\n }\n}\nconst logger = getLoggerBuilder().setApp(\"@nextcloud/upload\").detectUser().build();\naxiosRetry(axios, { retries: 0 });\nasync function uploadData(url, uploadData2, uploadOptions) {\n const options = {\n headers: {},\n onUploadProgress: () => {\n },\n onUploadRetry: () => {\n },\n retries: 5,\n ...uploadOptions\n };\n let data;\n if (uploadData2 instanceof Blob) {\n data = uploadData2;\n } else {\n data = await uploadData2();\n }\n if (options.destinationFile) {\n options.headers.Destination = options.destinationFile;\n }\n if (!options.headers[\"Content-Type\"]) {\n options.headers[\"Content-Type\"] = \"application/octet-stream\";\n }\n return await axios.request({\n method: \"PUT\",\n url,\n data,\n signal: options.signal,\n onUploadProgress: options.onUploadProgress,\n headers: options.headers,\n \"axios-retry\": {\n retries: options.retries,\n retryDelay: (retryCount, error) => exponentialDelay(retryCount, error, 1e3),\n retryCondition(error) {\n if (error.status === 507) {\n return false;\n }\n if (error.status === 423) {\n return true;\n }\n return isNetworkOrIdempotentRequestError(error);\n },\n onRetry: options.onUploadRetry\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, isPublic = false, customHeaders = {}) {\n let chunksWorkspace;\n if (isPublic) {\n chunksWorkspace = `${getBaseUrl()}/public.php/dav/uploads/${getSharingToken()}`;\n } else {\n chunksWorkspace = generateRemoteUrl(`dav/uploads/${getCurrentUser()?.uid}`);\n }\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 = customHeaders;\n if (destinationFile) {\n headers.Destination = destinationFile;\n }\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 logger.debug(\"Created temporary upload workspace\", { url });\n return url;\n};\n/*!\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\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 = /* @__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 || {});\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}\n/*!\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\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) {\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 }\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 /**\n * Add multiple children at once\n * @param files The files to add\n */\n async addChildren(files) {\n for (const file of files) {\n await this.addChild(file);\n }\n }\n /**\n * Add a child to the directory.\n * If it is a nested child the parents will be created if not already exist.\n * @param file The child to add\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 const child = new Directory(`${rootPath}${file.name}`);\n await child.addChildren(entries);\n this._children.set(file.name, child);\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 await this._children.get(base).addChild(file);\n } else {\n const child = new Directory(`${rootPath}${base}`);\n await child.addChild(file);\n this._children.set(base, child);\n }\n }\n }\n }\n}\n/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nvar EtaStatus = /* @__PURE__ */ ((EtaStatus2) => {\n EtaStatus2[EtaStatus2[\"Idle\"] = 0] = \"Idle\";\n EtaStatus2[EtaStatus2[\"Paused\"] = 1] = \"Paused\";\n EtaStatus2[EtaStatus2[\"Running\"] = 2] = \"Running\";\n return EtaStatus2;\n})(EtaStatus || {});\nclass Eta extends TypedEventTarget {\n /** Bytes done */\n _done = 0;\n /** Total bytes to do */\n _total = 0;\n /** Current progress (cached) as interval [0,1] */\n _progress = 0;\n /** Status of the ETA */\n _status = 0;\n /** Time of the last update */\n _startTime = -1;\n /** Total elapsed time for current ETA */\n _elapsedTime = 0;\n /** Current speed in bytes per second */\n _speed = -1;\n /** Expected duration to finish in seconds */\n _eta = Infinity;\n /**\n * Cutoff time for the low pass filter of the ETA.\n * A higher value will consider more history information for calculation,\n * and thus suppress spikes of the speed,\n * but will make the overall resposiveness slower.\n */\n _cutoffTime = 2.5;\n constructor(options = {}) {\n super();\n if (options.start) {\n this.resume();\n }\n if (options.total) {\n this.update(0, options.total);\n }\n this._cutoffTime = options.cutoffTime ?? 2.5;\n }\n /**\n * Add more transferred bytes.\n * @param done Additional bytes done.\n */\n add(done) {\n this.update(this._done + done);\n }\n /**\n * Update the transmission state.\n *\n * @param done The new value of transferred bytes.\n * @param total Optionally also update the total bytes we expect.\n */\n update(done, total) {\n if (this.status !== 2) {\n return;\n }\n if (total && total > 0) {\n this._total = total;\n }\n const deltaDone = done - this._done;\n const deltaTime = (Date.now() - this._startTime) / 1e3;\n this._startTime = Date.now();\n this._elapsedTime += deltaTime;\n this._done = done;\n this._progress = this._done / this._total;\n const historyNeeded = this._cutoffTime + deltaTime;\n if (this._elapsedTime > historyNeeded) {\n const alpha = deltaTime / (deltaTime + 1 / this._cutoffTime);\n const filtered = this._done - deltaDone + (1 - alpha) * deltaDone;\n this._speed = Math.round(filtered / this._elapsedTime);\n } else if (this._speed === -1 && this._elapsedTime > deltaTime) {\n const remaining = this._total - done;\n const eta = remaining / (done / this._elapsedTime);\n if (this._eta !== Infinity || eta <= 2 * this._cutoffTime) {\n this._eta = eta;\n }\n }\n if (this._speed > 0) {\n this._eta = Math.round((this._total - this._done) / this._speed);\n }\n this.dispatchTypedEvent(\"update\", new CustomEvent(\"update\", { cancelable: false }));\n }\n reset() {\n this._done = 0;\n this._total = 0;\n this._progress = 0;\n this._elapsedTime = 0;\n this._eta = Infinity;\n this._speed = -1;\n this._startTime = -1;\n this._status = 0;\n this.dispatchTypedEvent(\"reset\", new CustomEvent(\"reset\"));\n }\n /**\n * Pause the ETA calculation.\n */\n pause() {\n if (this._status === 2) {\n this._status = 1;\n this._elapsedTime += (Date.now() - this._startTime) / 1e3;\n this.dispatchTypedEvent(\"pause\", new CustomEvent(\"pause\"));\n }\n }\n /**\n * Resume the ETA calculation.\n */\n resume() {\n if (this._status !== 2) {\n this._startTime = Date.now();\n this._status = 2;\n this.dispatchTypedEvent(\"resume\", new CustomEvent(\"resume\"));\n }\n }\n /**\n * Status of the Eta (paused, active, idle).\n */\n get status() {\n return this._status;\n }\n /**\n * Progress (percent done)\n */\n get progress() {\n return Math.round(this._progress * 1e4) / 100;\n }\n /**\n * Estimated time in seconds.\n */\n get time() {\n return this._eta;\n }\n /**\n * Human readable version of the estimated time.\n */\n get timeReadable() {\n if (this._eta === Infinity) {\n return t(\"estimating time left\");\n } else if (this._eta < 10) {\n return t(\"a few seconds left\");\n } else if (this._eta < 60) {\n return n(\"{seconds} seconds left\", \"{seconds} seconds left\", this._eta, { seconds: this._eta });\n }\n const hours = String(Math.floor(this._eta / 3600)).padStart(2, \"0\");\n const minutes = String(Math.floor(this._eta % 3600 / 60)).padStart(2, \"0\");\n const seconds = String(this._eta % 60).padStart(2, \"0\");\n return t(\"{time} left\", { time: `${hours}:${minutes}:${seconds}` });\n }\n /**\n * Transfer speed in bytes per second.\n * Returns `-1` if not yet estimated.\n */\n get speed() {\n return this._speed;\n }\n /**\n * Get the speed in human readable format using file sizes like 10KB/s.\n * Returns the empty string if not yet estimated.\n */\n get speedReadable() {\n return this._speed > 0 ? `${formatFileSize(this._speed, true)}∕s` : \"\";\n }\n}\nvar UploaderStatus = /* @__PURE__ */ ((UploaderStatus2) => {\n UploaderStatus2[UploaderStatus2[\"IDLE\"] = 0] = \"IDLE\";\n UploaderStatus2[UploaderStatus2[\"UPLOADING\"] = 1] = \"UPLOADING\";\n UploaderStatus2[UploaderStatus2[\"PAUSED\"] = 2] = \"PAUSED\";\n return UploaderStatus2;\n})(UploaderStatus || {});\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({\n // Maximum number of concurrent uploads\n // @ts-expect-error TS2339 Object has no defined properties\n concurrency: getCapabilities().files?.chunked_upload?.max_parallel_count ?? 5\n });\n _queueSize = 0;\n _queueProgress = 0;\n _queueStatus = 0;\n _eta = new Eta();\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 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._eta.reset();\n if (this._uploadQueue.length === 0 && this._jobQueue.size === 0) {\n return;\n }\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 logger.debug(\"Uploader state reset\");\n }\n /**\n * Pause any ongoing upload(s)\n */\n pause() {\n this._eta.pause();\n this._jobQueue.pause();\n this._queueStatus = 2;\n this.updateStats();\n logger.debug(\"Uploader paused\");\n }\n /**\n * Resume any pending upload(s)\n */\n start() {\n this._eta.resume();\n this._jobQueue.start();\n this._queueStatus = 1;\n this.updateStats();\n logger.debug(\"Uploader resumed\");\n }\n /**\n * Get the estimation for the uploading time.\n */\n get eta() {\n return this._eta;\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._eta.update(uploaded, size);\n this._queueSize = size;\n this._queueProgress = uploaded;\n if (this._queueStatus !== 2) {\n const pending = this._uploadQueue.find(({ status }) => [Status.INITIALIZED, Status.UPLOADING, Status.ASSEMBLING].includes(status));\n if (this._jobQueue.size > 0 || pending) {\n this._queueStatus = 1;\n } else {\n this.eta.reset();\n this._queueStatus = 0;\n }\n }\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} 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 if (!callback) {\n callback = async (files2) => files2;\n }\n return new PCancelable(async (resolve, reject, onCancel) => {\n const rootFolder = new Directory(\"\");\n await rootFolder.addChildren(files);\n const target = `${this.root.replace(/\\/$/, \"\")}/${destination.replace(/^\\//, \"\")}`;\n const upload2 = new Upload(target, false, 0, rootFolder);\n upload2.status = Status.UPLOADING;\n this._uploadQueue.push(upload2);\n logger.debug(\"Starting new batch upload\", { target });\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.FINISHED;\n resolve(uploads);\n } catch (error) {\n if (isCancel(error) || error instanceof UploadCancelledError) {\n logger.info(\"Upload cancelled by user\", { error });\n upload2.status = Status.CANCELLED;\n reject(new UploadCancelledError(error));\n } else {\n logger.error(\"Error in batch upload\", { error });\n upload2.status = Status.FAILED;\n reject(error);\n }\n } finally {\n this._uploadQueue.splice(this._uploadQueue.indexOf(upload2), 1);\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.UPLOADING;\n try {\n await client.createDirectory(folderPath, { signal: abort.signal });\n resolve(currentUpload);\n } catch (error) {\n if (isCancel(error) || error instanceof UploadCancelledError) {\n currentUpload.status = Status.CANCELLED;\n reject(new UploadCancelledError(error));\n } else if (error && typeof error === \"object\" && \"status\" in error && error.status === 405) {\n logger.debug(\"Directory already exists, writing into it\", { directory: directory.name });\n currentUpload.status = Status.FINISHED;\n resolve(currentUpload);\n } else {\n currentUpload.status = Status.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 logger.debug(\"Upload canceled by user\", { directory });\n reject(new UploadCancelledError(\"Conflict resolution cancelled by user\"));\n return;\n } else if (selectedForUpload.length === 0 && directory.children.length > 0) {\n logger.debug(\"Skipping directory, as all files were skipped by user\", { directory });\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 logger.debug(\"Start directory upload\", { directory });\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 this.eta.resume();\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 supportsPublicChunking = getCapabilities().dav?.public_shares_chunking ?? false;\n const maxChunkSize = getMaxChunksSize(\"size\" in file ? file.size : void 0);\n const disabledChunkUpload = this._isPublic && !supportsPublicChunking || 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, this._isPublic, this._customHeaders);\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 request2 = () => {\n let chunkBytes = 0;\n return uploadData(\n `${tempUrl}/${chunk + 1}`,\n blob,\n {\n signal: upload2.signal,\n destinationFile: encodedDestinationFile,\n retries,\n onUploadProgress: ({ bytes }) => {\n const progressBytes = bytes * 0.9;\n chunkBytes += progressBytes;\n upload2.uploaded += progressBytes;\n this.updateStats();\n },\n onUploadRetry: () => {\n upload2.uploaded -= chunkBytes;\n chunkBytes = 0;\n this.updateStats();\n },\n headers: {\n ...this._customHeaders,\n ...this._mtimeHeader(file),\n \"OC-Total-Length\": file.size,\n \"Content-Type\": \"application/octet-stream\"\n }\n }\n ).then(() => {\n upload2.uploaded += bufferEnd - bufferStart - chunkBytes;\n this.updateStats();\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.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.FAILED;\n }\n throw error;\n });\n };\n chunksQueue.push(this._jobQueue.add(request2));\n }\n const request = async () => {\n try {\n await Promise.all(chunksQueue);\n upload2.status = Status.ASSEMBLING;\n this.updateStats();\n upload2.response = await axios.request({\n method: \"MOVE\",\n url: `${tempUrl}/.file`,\n headers: {\n ...this._customHeaders,\n ...this._mtimeHeader(file),\n \"OC-Total-Length\": file.size,\n Destination: encodedDestinationFile\n }\n });\n upload2.status = Status.FINISHED;\n this.updateStats();\n logger.debug(`Successfully uploaded ${file.name}`, { file, upload: upload2 });\n resolve(upload2);\n } catch (error) {\n if (isCancel(error) || error instanceof UploadCancelledError) {\n upload2.status = Status.CANCELLED;\n reject(new UploadCancelledError(error));\n } else {\n upload2.status = Status.FAILED;\n reject(t(\"Failed to assemble the chunks together\"));\n }\n axios.request({\n method: \"DELETE\",\n url: `${tempUrl}`\n });\n } finally {\n this._notifyAll(upload2);\n }\n };\n this._jobQueue.add(request);\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 {\n signal: upload2.signal,\n onUploadProgress: ({ bytes }) => {\n upload2.uploaded += bytes * 0.9;\n this.updateStats();\n },\n onUploadRetry: () => {\n upload2.uploaded = 0;\n this.updateStats();\n },\n headers: {\n ...this._customHeaders,\n ...this._mtimeHeader(file),\n \"Content-Type\": file.type\n }\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) || error instanceof UploadCancelledError) {\n upload2.status = Status.CANCELLED;\n reject(new UploadCancelledError(error));\n return;\n }\n if (error?.response) {\n upload2.response = error.response;\n }\n upload2.status = Status.FAILED;\n logger.error(`Failed uploading ${file.name}`, { error, file, upload: upload2 });\n reject(t(\"Failed to upload the file\"));\n }\n this._notifyAll(upload2);\n };\n this._jobQueue.add(request);\n this.updateStats();\n }\n this._jobQueue.onIdle().then(() => this.reset());\n return upload2;\n });\n return promise;\n }\n /**\n * Create modification time headers if valid value is available.\n * It can be invalid on Android devices if SD cards with NTFS / FAT are used,\n * as those files might use the NT epoch for time so the value will be negative.\n *\n * @param file The file to upload\n */\n _mtimeHeader(file) {\n const mtime = Math.floor(file.lastModified / 1e3);\n if (mtime > 0) {\n return { \"X-OC-Mtime\": mtime };\n }\n return {};\n }\n}\n/*!\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\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}\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}\n/*!\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nasync function openConflictPicker(dirname, conflicts, content, options) {\n const ConflictPicker = defineAsyncComponent(() => import(\"./ConflictPicker-DuPiUBHl.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 showInvalidFilenameDialog(error) {\n const InvalidFilenameDialog = defineAsyncComponent(() => import(\"./InvalidFilenameDialog-BM2VDeLo.mjs\"));\n const { promise, reject, resolve } = Promise.withResolvers();\n spawnDialog(\n InvalidFilenameDialog,\n {\n error,\n validateFilename\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 * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nfunction uploadConflictHandler(contentsCallback) {\n return async (nodes, path) => {\n try {\n const content = await contentsCallback(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 = [\n ...nodes.filter((node) => !conflicts.includes(node)),\n ...selected,\n ...renamed\n ];\n }\n const filesToUpload = [];\n for (const file of nodes) {\n try {\n 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 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}\nfunction normalizeComponent(scriptExports, render6, staticRenderFns, functionalTemplate, injectStyles, scopeId, moduleIdentifier, shadowMode) {\n var options = typeof scriptExports === \"function\" ? scriptExports.options : scriptExports;\n if (render6) {\n options.render = render6;\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$4 = {\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$4 = 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$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 IconCancel = __component__$4.exports;\nconst _sfc_main$3 = {\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$3 = 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$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 IconFolderUpload = __component__$3.exports;\nconst _sfc_main$2 = {\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$2 = 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$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 IconPlus = __component__$2.exports;\nconst _sfc_main$1 = {\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$1 = 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$1 = [];\nvar __component__$1 = /* @__PURE__ */ normalizeComponent(\n _sfc_main$1,\n _sfc_render$1,\n _sfc_staticRenderFns$1,\n false,\n null,\n null\n);\nconst IconUpload = __component__$1.exports;\nconst _sfc_main = defineComponent({\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 */\n noMenu: {\n type: Boolean,\n default: false\n },\n /**\n * Allow to disable the button label\n */\n noLabel: {\n type: Boolean,\n default: false\n },\n /**\n * Make the \"New\"-button primary color.\n */\n primary: {\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 newFileMenuEntries: [],\n openedMenu: false,\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 queue() {\n return this.uploadManager.queue;\n },\n hasFailure() {\n return this.queue.some((upload2) => upload2.status === Status.FAILED);\n },\n isAssembling() {\n return this.queue.some((upload2) => upload2.status === Status.ASSEMBLING);\n },\n isUploading() {\n return this.queue.some((upload2) => upload2.status !== Status.CANCELLED);\n },\n isOnlyAssembling() {\n return this.isAssembling && this.queue.every((upload2) => (\n // ignore empty uploads or meta uploads\n upload2.size === 0 || upload2.status === Status.ASSEMBLING || upload2.status === Status.FINISHED\n ));\n },\n isPaused() {\n return this.uploadManager.info?.status === UploaderStatus.PAUSED;\n },\n buttonLabel() {\n return this.noMenu ? t(\"Upload\") : t(\"New\");\n },\n haveMenu() {\n return !((this.noMenu || this.newFileMenuEntries.length === 0) && !this.canUploadFolders);\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 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 useHotKey(\"u\", this.onKeyDown, {\n stop: true,\n prevent: true,\n shift: true\n });\n useHotKey(\"Escape\", this.onKeyDown, {\n stop: true,\n prevent: true\n });\n logger.debug(\"UploadPicker initialised\");\n },\n methods: {\n etaTimeAndSpeed() {\n const speed = this.uploadManager.eta.speedReadable;\n if (speed) {\n return `${this.uploadManager.eta.timeReadable} (${speed})`;\n }\n return this.uploadManager.eta.timeReadable;\n },\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 * Start uploading\n */\n async onPick() {\n const input = this.$refs.input;\n const files = input.files ? Array.from(input.files) : [];\n try {\n await this.uploadManager.batchUpload(\"\", files, uploadConflictHandler(this.getContent));\n } catch (error) {\n logger.debug(\"Error while uploading\", { error });\n } finally {\n this.resetForm();\n }\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 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.FAILED) {\n this.$emit(\"failed\", upload2);\n } else {\n this.$emit(\"uploaded\", upload2);\n }\n },\n onKeyDown(event) {\n if (event.key === \"u\") {\n if (this.haveMenu) {\n this.openedMenu = true;\n return;\n }\n this.onTriggerPick();\n }\n if (event.key === \"Escape\" && this.openedMenu) {\n this.openedMenu = false;\n }\n }\n }\n});\nvar _sfc_render = function render5() {\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.haveMenu ? _c(\"NcButton\", { attrs: { \"aria-label\": _vm.buttonLabel, \"disabled\": _vm.disabled, \"data-cy-upload-picker-add\": \"\", \"data-cy-upload-picker-menu-entry\": \"upload-file\", \"type\": _vm.primary ? \"primary\" : \"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 }, !_vm.isUploading ? { key: \"default\", fn: function() {\n return [_vm._v(\" \" + _vm._s(_vm.buttonLabel) + \" \")];\n }, proxy: true } : null], null, true) }) : _c(\"NcActions\", { attrs: { \"aria-label\": _vm.buttonLabel, \"menu-name\": _vm.noLabel ? void 0 : _vm.buttonLabel, \"open\": _vm.openedMenu, \"type\": _vm.primary ? \"primary\" : \"secondary\" }, on: { \"update:open\": function($event) {\n _vm.openedMenu = $event;\n } }, 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\", { attrs: { \"size\": 20 } })];\n }, proxy: true }], null, false, 931184598) }, [_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, \"data-cy-upload-picker-progress\": \"\", \"error\": _vm.hasFailure, \"value\": _vm.uploadManager.eta.progress, \"size\": \"medium\" } }), _c(\"p\", { attrs: { \"id\": _vm.progressTimeId, \"data-cy-upload-picker-progress-label\": \"\" } }, [_vm.isPaused ? _c(\"span\", [_vm._v(\" \" + _vm._s(_vm.t(\"paused\")) + \" \")]) : _vm.isOnlyAssembling ? _c(\"span\", [_vm._v(\" \" + _vm._s(_vm.t(\"assembling\")) + \" \")]) : _c(\"span\", { attrs: { \"title\": _vm.etaTimeAndSpeed() } }, [_vm._v(\" \" + _vm._s(_vm.uploadManager.eta.timeReadable) + \" \"), _vm.uploadManager.eta.speedReadable && _vm.uploadManager.eta.time >= 60 ? _c(\"span\", [_vm._v(\" (\" + _vm._s(_vm.uploadManager.eta.speedReadable) + \") \")]) : _vm._e()])])], 1), _vm.isUploading && !_vm.isOnlyAssembling ? _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 \"a66c1264\"\n);\nconst UploadPicker = __component__.exports;\nexport {\n EtaStatus as E,\n Status as S,\n Upload as U,\n isFileSystemFileEntry as a,\n n as b,\n Uploader as c,\n UploaderStatus as d,\n getConflicts as e,\n uploadConflictHandler as f,\n getUploader as g,\n hasConflict as h,\n isFileSystemEntry as i,\n UploadPicker as j,\n logger as l,\n normalizeComponent as n,\n openConflictPicker as o,\n t,\n upload as u\n};\n//# sourceMappingURL=index-DPkUyJ8g.mjs.map\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=\" + {\"1035\":\"da08d310d18692ca4e27\",\"1140\":\"490e17ed9c8948d5a9e8\",\"1764\":\"3654558a3474ec02b609\",\"2221\":\"428c2ff62c4b8b3c97fc\",\"2457\":\"ce6348bfa704a5bf56fb\",\"4254\":\"b5640c947edf1efaaefc\",\"4271\":\"101cdb0f1357424796fd\",\"4723\":\"934c36402dc782526ac6\",\"5448\":\"71cfe268d6f1213c4735\",\"5862\":\"580b9c2e231a9169a12f\",\"6015\":\"ebcb6885c1fc8c461988\",\"6798\":\"1a6cf42d93801a926a3d\",\"7471\":\"b4ac70873a3ab192efd0\",\"7859\":\"740587c0c8c350dad157\",\"7910\":\"de857920f8beb5205bbc\",\"8815\":\"9a5c507c75429c9c04e4\",\"9281\":\"29ef7f217a0c6b239922\",\"9906\":\"7304d0da95152b604642\"}[chunkId] + \"\";\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 (globalThis.importScripts) scriptUrl = globalThis.location + \"\";\nvar document = globalThis.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(/^blob:/, \"\").replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = (typeof document !== 'undefined' && 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\t7471: 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, moreModules, runtime] = data;\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 = globalThis[\"webpackChunknextcloud_ui_legacy\"] = globalThis[\"webpackChunknextcloud_ui_legacy\"] || [];\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__(29051)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","script","name","props","to","type","String","required","where","default","disabled","Boolean","data","nodes","waiting","observer","parent","watch","value","this$1","this","disable","$nextTick","teardownObserver","bootObserver","move","mounted","Array","from","$el","childNodes","maybeMove","beforeDestroy","getComponentChildrenNode","computed","classes","methods","document","querySelector","prepend","getFragment","appendChild","fragment","createDocumentFragment","forEach","node","onMutations","mutations","shouldMove","i","length","mutation","filteredAddedNodes","addedNodes","filter","includes","removedNodes","MutationObserver","observe","body","childList","subtree","attributes","characterData","childObserver","find","target","parentNode","removeChild","disconnect","$vnode","componentOptions","children","map","elm","normalizeComponent","template","style","scopeId","isFunctionalTemplate","moduleIdentifier","shadowMode","createInjector","createInjectorSSR","createInjectorShadow","hook","options","render","staticRenderFns","_compiled","functional","_scopeId","context","ssrContext","__VUE_SSR_CONTEXT__","call","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","originalRender","h","existing","beforeCreate","concat","HEAD","isOldIE","navigator","test","userAgent","toLowerCase","id","css","group","media","styles","ids","Set","has","code","source","sources","btoa","unescape","encodeURIComponent","JSON","stringify","element","createElement","setAttribute","undefined","head","getElementsByTagName","push","styleSheet","cssText","join","index","size","textNode","createTextNode","insertBefore","addStyle","__vue_script__","__vue_render__","_vm","_h","$createElement","_self","_c","class","_t","_withStripped","__vue_component__","inject","install","Vue","installed","component","GlobalVue","window","use","emits","title","fillColor","Number","_b","staticClass","attrs","on","$event","$emit","$attrs","_v","_s","_e","width","ref","isWide","isMedium","isNarrow","ResizeObserver","contentBoxSize","inlineSize","contentRect","updateObserver","el","unobserve","useFileListWidth","onMounted","readonly","allViews","shallowRef","visibleViews","view","hidden","initialized","useViews","navigation","getNavigation","addEventListener","views","useVisibleViews","queue","getQueue","PQueue","concurrency","MoveCopyAction","loadState","Permission","NONE","HintException","Error","Directory","File","constructor","contents","super","_defineProperty","_contents","_computeDirectorySize","lastModified","Date","now","_computeDirectoryMtime","directory","reduce","acc","file","entry","async","traverseTree","isFile","Promise","resolve","reject","logger","debug","entries","dirReader","createReader","getEntries","readEntries","results","error","readDirectory","all","flat","createDirectoryIfNotExists","path","destination","davUrl","defaultRemoteURL","defaultRootPath","davRoot","root","davClient","getClient","exists","createDirectory","recursive","stat","details","getDefaultPropfind","emit","resultToNode","resolveConflict","files","conflicts","basename","uploads","selected","renamed","openConflictPicker","showInfo","t","info","warn","showWarning","dataTransferToFileTree","items","item","kind","getAsEntry","webkitGetAsEntry","warned","fileTree","DataTransferItem","getAsFile","showError","onDropExternalFiles","uploader","getUploader","hasConflict","uploadDirectoryContents","relativePath","upload","pause","start","errors","allSettled","result","status","showSuccess","onDropInternalFiles","isCopy","promises","fromAsync","method","overwrite","FileType","Folder","MOVE","some","dirname","startsWith","nameMapping","Map","otherNodes","getContents","getConflicts","nodesToRename","content","n","c","skipped","usedNames","newName","getUniqueName","ignoreFileExtension","set","actionFinished","mode","text","count","toast","showLoading","hideToast","createLoadingNotification","NodeStatus","LOADING","client","currentPath","destinationPath","get","COPY","copyFile","moveFile","isAxiosError","response","parser","DOMParser","message","parseFromString","textContent","handleCopyMoveNodesTo","useDragAndDropStore","defineStore","state","dragging","actions","selection","reset","useSelectionStore","lastSelection","lastSelectedIndex","setLastIndex","useUploaderStore","args","store","defineComponent","components","NcActionButton","NcBreadcrumbs","NcBreadcrumb","NcIconSvgWrapper","setup","activeStore","useActiveStore","filesStore","useFilesStore","pathsStore","usePathsStore","draggingStore","selectionStore","uploaderStore","isMenuOpen","activeFolder","isSharingEnabled","getCapabilities","files_sharing","isPublic","isPublicShare","canShare","permissions","SHARE","openSharingSidebar","getSidebar","open","mdiAccountPlus","mdiChevronDown","mdiChevronUp","mdiReload","dirs","split","replace","sections","dir","getFileSourceFromPath","getNodeFromSource","exact","getDirDisplayName","getTo","disableDrop","isUploadInProgress","wrapUploadProgressBar","viewIcon","activeView","icon","selectedFiles","draggingFiles","getNode","getPath","displayname","$route","params","query","fileid","onDragOver","event","dataTransfer","ctrlKey","dropEffect","onDrop","preventDefault","controller","AbortController","signal","folder","canDrop","CREATE","button","titleForSection","section","ariaForSection","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","_setupProxy","scopedSlots","_u","key","fn","proxy","_l","nativeOn","TrayArrowDownIcon","currentFolder","Object","dragover","canUpload","isQuotaExceeded","cantUploadLabel","resetDragOver","debounce","mainContent","getElementById","onDragLeave","onContentDrop","beforeUnmount","removeEventListener","isForeignFile","types","currentTarget","contains","relatedTarget","clear","stopPropagation","lastUpload","findLast","UploadStatus","FAILED","webkitRelativePath","headers","$router","directives","rawName","expression","isFileListFilterWithUi","useFiltersStore","chips","filters","activeChips","values","sortedFilters","sort","a","b","order","filtersWithUI","addFilter","onFilterUpdateChips","onFilterUpdate","detail","registry","getFilesRegistry","initialFilters","getFileListFilters","filterId","findIndex","splice","removeFilter","subscribe","onViewChanged","initialize","_defineComponent","__name","__props","filterStore","visualFilters","hasActiveFilters","selectedFilter","boundary","__sfc","menuTriggerId","mdiArrowLeft","mdiFilterVariant","NcButton","NcPopover","_setup","$style","fileListFilters","iconSvgInline","displayName","fileListFilters__popoverContainer","tagName","tag","domProps","fileListFilters__popoverFilterView","Function","updateRootElement","currentView","replaceChildren","openedSubmenu","enabledSubmenuActions","enabledFileActions","record","action","isValidMenu","onBackToMenuClick","menuAction","$refs","focus","executeAction","currentNode","activeNode","_children","enabled","activeAction","success","exec","ArrowLeftIcon","CustomElementRender","NcActions","NcActionSeparator","NcLoadingIcon","mixins","actionsMixins","opened","gridMode","isActive","isLoading","actionContext","enabledInlineActions","inline","enabledRenderActions","renderInline","enabledMenuActions","DefaultType","HIDDEN","self","topActionsIds","renderedNonDestructiveActions","destructive","renderedDestructiveActions","openedMenu","getBoundariesElement","created","useHotKey","onKeyDown","stop","prevent","actionDisplayName","isLoadingAction","onActionClick","onMenuClose","onMenuClosed","refInFor","NcCheckboxRadioSwitch","keyboardStore","altKey","metaKey","shiftKey","onEvent","_initialized","useKeyboardStore","isSelected","ariaLabel","loadingLabel","onToggleSelect","ctrl","shift","onSelectionChange","newSelectedIndex","isAlreadySelected","Math","min","end","max","filesToSelect","slice","resetSelection","indexOf","_k","keyCode","apply","arguments","useRenamingStore","renamingNode","newNodeName","isRenaming","$reset","rename","oldName","trim","userConfig","useUserConfigStore","show_dialog_file_extension","oldExtension","extname","newExtension","promise","withResolvers","spawnDialog","defineAsyncComponent","showFileExtensionDialog","show_hidden","filename","showHiddenFileDialog","oldEncodedSource","encodedSource","axios","url","Destination","Overwrite","fetchNode","oldSource","cause","getFilenameValidity","escape","validateFilename","InvalidFilenameError","reason","InvalidFilenameErrorReason","Character","char","segment","ReservedName","Extension","match","extension","NcTextField","renamingStore","userConfigStore","defaultFileAction","isRenamingSmallScreen","renameLabel","linkTo","is","tabindex","immediate","handler","renaming","startRenaming","input","renameInput","validity","checkIfNodeExists","setCustomValidity","reportValidity","sourceName","setSelectionRange","dispatchEvent","Event","stopRenaming","onRename","renameForm","checkValidity","nameContainer","model","callback","$$v","show_files_extensions","StarSvg","mdiPlus","usePreviewImage","toValue","fallback","mime","previewUrl","generateUrl","URL","location","origin","href","crop","sizeX","sizeY","token","getSharingToken","searchParams","toString","etag","mtime","getTime","AccountGroupIcon","AccountPlusIcon","CollectivesIcon","FavoriteIcon","FileIcon","FolderIcon","FolderOpenIcon","KeyIcon","LinkIcon","NetworkIcon","TagIcon","RecentlyCreatedIcon","toRef","crop_image_previews","backgroundFailed","backgroundLoaded","isFavorite","favorite","isRecentlyCreated","crtime","oneDayAgo","setDate","getDate","isRecentView","fileOverlay","PlayCircleIcon","folderOverlay","shareTypes","ShareType","Link","Email","hasBlurhash","canvas","drawBlurhash","previewImg","src","onBackgroundLoad","onBackgroundError","height","pixels","decode","ctx","getContext","imageData","createImageData","putImageData","_m","useFileActions","getFileActions","useRouteParameters","route","useRoute","fileId","parseInt","isNaN","openFile","openfile","toLocaleLowerCase","openDetails","opendetails","useActionsMenuStore","available","sidebar","hotkey","description","getSummaryFor","fileCount","folderCount","summary","fileSummary","folderSummary","hiddenSummary","extend","FileMultipleIcon","isSingleNode","isSingleFolder","totalSize","total","formatFileSize","update","preview","cloneNode","Preview","DragAndDropPreview","directive","vOnClickOutside","NcFile","Node","isMtimeAvailable","compact","provide","uniqueId","str","hash","charCodeAt","hashCode","currentRouteFileId","isFailedSource","canDrag","UPDATE","every","actionsMenuStore","mtimeOpacity","maxOpacityTime","timeDiff","opacityTime","color","round","newSource","resetState","closest","removeProperty","onRightClick","getBoundingClientRect","setProperty","clientX","left","clientY","top","isMoreThanOneSelected","execDefaultAction","metaKeyPressed","READ","downloadAttribute","parse","scope","isDownloadable","openDetailsIfAvailable","sidebarAction","onDragStart","clearData","image","$mount","$on","$off","getDragAndDropPreview","setDragImage","onDragEnd","relative","batchUpload","conflict","cachedContents","getNodesByPath","FileEntryActions","FileEntryCheckbox","FileEntryName","FileEntryPreview","NcDateTime","FileEntryMixin","isMimeAvailable","isSizeAvailable","rowListeners","dragstart","contextmenu","dragleave","dragend","drop","columns","OC","MimeTypeList","names","baseType","ext","toUpperCase","sizeOpacity","pow","triggerDefaultAction","_g","column","inheritAttrs","r","_sfc_main","ariaLabelClose","actionsContainer","validator","iconPath","iconSvg","noClose","variant","slots","realVariant","canClose","hasActions","hasIcon","mdiClose","_sfc_render","_sfc_staticRenderFns","NcChip","exports","NcAvatar","fileListFilterChips","chip","onclick","user","searchStore","useSearchStore","getPinia","isVisible","onClick","header","queueUpdate","initialRender","mount","then","catch","destroyed","updated","classForColumn","FILE_LIST_HEAD_FIRST_BATCH_ACTION_ID","selectedNodes","boundariesElement","inlineActions","loading","execBatch","childrenActionsIds","menuActions","areSomeNodesLoading","firstActionId","at","firstButton","actionsMenu","onFirstButtonFocusOut","selectionSources","$set","failedSources","e","FILES_LIST_HEADER_SELECT_ALL_CHECKBOX_ID","translate","idx","initialViewConfig","useViewConfigStore","viewConfigs","getCurrentUser","put","viewId","onUpdate","getConfig","viewid","setSortingBy","toggleSortingDirection","sorting_direction","mapState","sortingMode","sorting_mode","defaultSortKey","isAscSorting","sortingDirection","toggleSortBy","MenuDown","MenuUp","filesSortingMixin","FilesListTableHeaderButton","selectAllBind","label","checked","isAllSelected","indeterminate","isSomeSelected","isNoneSelected","onToggleAll","selectAllCheckbox","onSelectAllCheckboxFocusOut","ariaSortForMode","firstBatchActionButton","dataComponent","dataKey","dataSources","extraProps","scrollToIndex","caption","fileListWidth","beforeHeight","footerHeight","headerHeight","tableHeight","resizeObserver","isReady","bufferItems","columnCount","itemHeight","itemWidth","visibleRows","floor","rowCount","startIndex","firstColumnIndex","shownItems","renderedItems","oldItemsKeys","$_recycledPool","unusedKeys","keys","pop","random","substr","totalRowCount","ceil","tbodyStyle","rowsAbove","rowsBelow","paddingBlock","minHeight","scrollTo","oldColumnCount","updateHeightVariables","onScroll","before","footer","lastVisibleIndex","totalRows","clampedIndex","scrollTop","indexToScrollPos","_onScrollHandle","requestAnimationFrame","scrollPosToIndex","scrollPos","topScroll","clientHeight","theadHeight","thead","filterHeight","$scopedSlots","sorted","FileListFilterChips","FileListFilterToSearch","FilesListHeader","FilesListTableFooter","FilesListTableHeader","VirtualList","FilesListTableHeaderActions","View","show_mime_column","getFileListHeaders","FileEntry","FileEntryGrid","cantUpload","defaultCaption","isEmpty","handleOpenQueries","unselectFile","handleOpenFile","openSidebarForFile","scrollToFile","defaultAction","useEnabledFileActions","OCP","Files","Router","goToRoute","tableElement","table","tableTop","tableBottom","grid_view","setActiveNode","nextIndex","nextNode","useSidebarStore","activeTab","isOpen","hasContext","currentContext","currentActions","getActions","currentTabs","getTabs","tabId","setActiveTab","newTabs","close","tabs","getSidebarTabs","tab","getSidebarActions","_router","afterEach","defaultView","default_view","quota","BreadCrumbs","DragAndDropNotice","FileListFilters","FilesListVirtual","ListViewIcon","NcAppContent","NcEmptyContent","Teleport","UploadPicker","ViewGridIcon","IconAlertCircleOutline","IconReload","filtersStore","viewConfigStore","enableGridView","forbiddenCharacters","dirContents","enabledFileListActions","getFileListActions","useEnabledFileListActions","stopWatching","nextTick","loadingAction","dirContentsFiltered","getContent","normalizedPath","normalize","pageHeading","dirContentsSorted","customColumn","reverse","sortNodes","sortFavoritesFirst","sort_favorites_first","sortFoldersFirst","sort_folders_first","sortingOrder","aa","bb","isEmptyDir","isRefreshing","toPreviousDir","gridViewButtonLabel","showCustomEmptyView","emptyView","debouncedFetchContent","useThrottleFn","fetchContent","show","customEmptyView","newView","oldView","newDir","oldDir","filesListVirtual","filterDirContent","onUpdatedNode","onUpdateSearch","unmounted","unsubscribe","once","abort","updateNodes","setRoot","service","addPath","fatal","isWebDAVClientError","humanizeWebDAVError","onUpload","onUploadFail","CANCELLED","doc","toggleGridView","execFileListAction","emptyTitle","emptyCaption","Intl","Collator","getLanguage","getCanonicalLocale","numeric","usage","collator","level","viewConfig","isExpanded","expanded","childViews","v","isDescendant","parentView","sortedChildViews","compare","hasChildViews","navigationRoute","childViewsLoaded","loadChildViews","maxLevel","onExpandCollapse","NcAppNavigationItem","sticky","childView","rootViews","sortViews","NcAppNavigationList","FilesNavigationListItem","filesNavigationList","remove","useRouter","beforeResolve","next","VIEW_ID","onUnmounted","onBeforeNavigation","isSearchView","searchLabel","mdiMagnify","mdiSearchWeb","NcAppNavigationSearch","throttle","delay","timeoutID","_ref","_ref$noTrailing","noTrailing","_ref$noLeading","noLeading","_ref$debounceMode","debounceMode","cancelled","lastExec","clearExistingTimeout","clearTimeout","wrapper","_len","arguments_","_key","elapsed","setTimeout","cancel","_ref2$upcomingOnly","upcomingOnly","ChartPie","NcProgressBar","loadingStorageStats","storageStats","storageStatsTitle","usedQuotaByte","used","quotaByte","storageStatsTooltip","beforeMount","throttleUpdateStorageStats","free","showStorageFullWarning","debounceUpdateStorageStats","_ref$atBegin","atBegin","updateStorageStats","slot","NcAppSettingsSection","NcFormBox","NcFormBoxSwitch","mdiAccountOutline","mdiFolderOutline","NcRadioGroup","NcRadioGroupButton","folder_tree","setting","onBeforeMount","onBeforeUnmount","apiSettings","OCA","Settings","settings","localeCompare","FilesAppSettingsLegacyApiEntry","actionHotkeys","hotkeyToString","parts","alt","NcAppSettingsShortcutsSection","NcHotkey","NcHotkeyList","show_dialog_deletion","webDavUrl","generateRemoteUrl","uid","webDavDocsUrl","appPasswordUrl","isTwoFactorEnabled","NcFormBoxButton","NcFormBoxCopyButton","showKeyboardShortcuts","scrollIntoView","behavior","NcAppSettingsDialog","FilesAppSettingsAppearance","FilesAppSettingsGeneral","FilesAppSettingsLegacyApi","FilesAppSettingsShortcuts","FilesAppSettingsWarnings","FilesAppSettingsWebDav","settingsOpened","currentViewId","watchEffect","setActive","NcAppNavigation","IconCog","FilesNavigationList","FilesNavigationSearch","NavigationQuota","FilesAppSettings","isFavourited","mdiStar","NcUserBubble","filesSidebarSubname","filesSidebarSubname__separator","owner","filesSidebarSubname__userBubble","N","Symbol","toStringTag","initializedTabs","active","onInit","customElements","whenDefined","NcAppSidebarTab","background","Image","onload","onClosed","onOpened","onToggle","NcAppSidebar","FilesSidebarSubname","FilesSidebarTab","router","old","new","useHotKeys","NcContent","FilesList","FilesNavigation","FilesSidebar","originalPush","prototype","ignoreDuplicateNavigation","originalReplace","isNavigationFailure","NavigationFailureType","duplicated","redirected","base","linkActiveClass","routes","redirect","stringifyQuery","queryString","onError","aborted","parentIntercept","fromDir","toDir","fromSource","currentRoute","parentFolder","RouterService","goTo","__webpack_nonce__","getCSPNonce","assign","PiniaVuePlugin","_settings","register","Setting","_classPrivateFieldInitSpec","_name","_options","_classPrivateFieldSet","_classPrivateFieldGet","FilesApp","pinia","getRootPath","propfindPayload","contentsResponse","getDirectoryContents","includeSelf","defaultGetContents","getDirectoryByPath","rootPath","searchNodes","getLocalSearch","search","getDavNameSpaces","getDavProperties","getBaseUrl","dummyFolder","getRemoteURL","onDeletedNode","onChangedView","roots","getNodes","getNodesById","getRoot","newNodes","deleteNodes","fromEntries","ourNode","_nc_files_pinia","createPinia","paths","getters","payload","deletePath","delete","onCreatedNode","addNodeToParentChildren","deleteNodeFromParentChildren","onMovedNode","oldPath","oldNode","parentSource","updateSearch","current","updateRouter","isSearch","initialUserConfig","getLoggerBuilder","setApp","detectUser","build","___CSS_LOADER_EXPORT___","module","defaultDavProperties","defaultDavNamespaces","d","nc","oc","ocs","s","davProperties","prop","davNamespaces","ns","getRecentSearch","remoteURL","setHeaders","requesttoken","patch","headers2","fetch","getFavoriteNodes","filesRoot","userId","permString","P","WRITE","DELETE","parsePermissions","lastmod","creationdate","nodeData","getcontentlength","hasPreview","gtBuilder","detectLocale","addTranslation","locale","json","gt","ngettext","bind","gettext","UploadCancelledError","uploadData","uploadData2","uploadOptions","onUploadProgress","onUploadRetry","retries","Blob","destinationFile","request","retryDelay","retryCount","retryCondition","onRetry","getChunk","getMaxChunksSize","fileSize","maxChunkSize","appConfig","max_chunk_size","minimumChunkSize","Status","Status2","Upload","_source","_file","_isChunked","_chunks","_size","_uploaded","_startTime","_status","_controller","_response","chunked","chunks","isChunked","startTime","uploaded","isFileSystemFileEntry","o","FileSystemFileEntry","isFileSystemEntry","FileSystemEntry","_originalName","_path","sum","latest","originalName","getChild","addChildren","addChild","FileSystemDirectoryEntry","reader","child","filePath","relPath","Eta","_done","_total","_progress","_elapsedTime","_speed","_eta","Infinity","_cutoffTime","resume","cutoffTime","done","deltaDone","deltaTime","historyNeeded","alpha","filtered","eta","dispatchTypedEvent","CustomEvent","cancelable","progress","time","timeReadable","seconds","hours","padStart","minutes","speed","speedReadable","UploaderStatus","UploaderStatus2","Uploader","_destinationFolder","_isPublic","_customHeaders","_uploadQueue","_jobQueue","chunked_upload","max_parallel_count","_queueSize","_queueProgress","_queueStatus","_notifiers","destinationFolder","ALL","maxChunksSize","customHeaders","structuredClone","setCustomHeader","deleteCustomerHeader","updateStats","upload2","partialSum","pending","INITIALIZED","UPLOADING","ASSEMBLING","addNotifier","notifier","_notifyAll","files2","onCancel","rootFolder","uploadDirectory","FINISHED","folderPath","currentUpload","selectedForUpload","directories","fileHandle","encodedDestinationFile","resolve2","supportsPublicChunking","dav","public_shares_chunking","disabledChunkUpload","blob","bytes","_mtimeHeader","tempUrl","chunksWorkspace","initChunkWorkspace","chunksQueue","chunk","bufferStart","bufferEnd","request2","chunkBytes","progressBytes","onIdle","forceRecreate","_nc_uploader","contentNames","ConflictPicker","picker","recursiveUpload","submit","$destroy","showInvalidFilenameDialog","InvalidFilenameDialog","rest","skip","scriptExports","render6","functionalTemplate","injectStyles","IconCancel","IconFolderUpload","IconPlus","IconUpload","NcActionCaption","accept","multiple","noMenu","noLabel","primary","allowFolders","progressTimeId","newFileMenuEntries","uploadManager","menuEntriesUpload","category","UploadFromDevice","menuEntriesNew","CreateNew","menuEntriesOther","Other","canUploadFolders","hasFailure","isAssembling","isUploading","isOnlyAssembling","isPaused","PAUSED","buttonLabel","haveMenu","setDestination","onUploadCompletion","etaTimeAndSpeed","onTriggerPick","uploadFolders","webkitdirectory","click","isArray","onPick","contentsCallback","filesToUpload","defineProperty","resetForm","form","iconClass","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","m","O","chunkIds","priority","notFulfilled","fulfilled","j","getter","__esModule","definition","enumerable","f","chunkId","u","obj","hasOwnProperty","l","needAttach","scripts","getAttribute","charset","onScriptComplete","prev","onerror","timeout","doneFns","nmd","scriptUrl","globalThis","importScripts","currentScript","p","baseURI","installedChunks","installedChunkData","errorType","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/settings-users-3239.js b/dist/settings-users-3239.js index 9e541049d4a..921e21cbaa0 100644 --- a/dist/settings-users-3239.js +++ b/dist/settings-users-3239.js @@ -1,2 +1,2 @@ -(globalThis.webpackChunknextcloud_ui_legacy=globalThis.webpackChunknextcloud_ui_legacy||[]).push([[3239,7471],{19978(t,e,s){"use strict";s.d(e,{N_:()=>o});var n=s(19051),a=s(63814),i=s(36117);function r(t){return{id:t.id,name:t.displayname,usercount:t.usercount,disabled:t.disabled,canAdd:t.canAdd,canRemove:t.canRemove}}function o({search:t,offset:e,limit:s}){const o=new AbortController;return new i.CancelablePromise(async(i,l,c)=>{c(()=>o.abort());try{const{data:l}=await n.Ay.get((0,a.KT)("/cloud/groups/details?search={search}&offset={offset}&limit={limit}",{search:t,offset:e,limit:s}),{signal:o.signal});i((l.ocs?.data?.groups??[]).map(r))}catch(t){l(t)}})}},34954(t,e,s){"use strict";s.d(e,{HK:()=>r,MY:()=>i,SA:()=>a});var n=s(53334);const a={id:"none",label:(0,n.Tl)("settings","Unlimited")},i={id:"default",label:(0,n.Tl)("settings","Default quota")};function r(t){const e=Object.keys(t);return 1===e.length&&"id"===e.at(0)}},89984(t,e,s){"use strict";s.d(e,{A:()=>o});var n=s(71354),a=s.n(n),i=s(76314),r=s.n(i)()(a());r.push([t.id,".modal__header[data-v-30743619]{margin:0}.modal__content[data-v-30743619]{display:flex;flex-direction:column;align-items:center;padding:20px;gap:4px 0}.modal__button-row[data-v-30743619]{display:flex;width:100%;justify-content:space-between}","",{version:3,sources:["webpack://./apps/settings/src/components/GroupListItem.vue"],names:[],mappings:"AAEC,gCACC,QAAA,CAGD,iCACC,YAAA,CACA,qBAAA,CACA,kBAAA,CACA,YAAA,CACA,SAAA,CAGD,oCACC,YAAA,CACA,UAAA,CACA,6BAAA",sourcesContent:["\n.modal {\n\t&__header {\n\t\tmargin: 0;\n\t}\n\n\t&__content {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\talign-items: center;\n\t\tpadding: 20px;\n\t\tgap: 4px 0;\n\t}\n\n\t&__button-row {\n\t\tdisplay: flex;\n\t\twidth: 100%;\n\t\tjustify-content: space-between;\n\t}\n}\n"],sourceRoot:""}]);const o=r},79545(t,e,s){"use strict";s.d(e,{A:()=>o});var n=s(71354),a=s.n(n),i=s(76314),r=s.n(i)()(a());r.push([t.id,".empty[data-v-a01beafc] .icon-vue{width:64px;height:64px}.empty[data-v-a01beafc] .icon-vue svg{max-width:64px;max-height:64px}","",{version:3,sources:["webpack://./apps/settings/src/components/UserList.vue"],names:[],mappings:"AAKE,kCACC,UAAA,CACA,WAAA,CAEA,sCACC,cAAA,CACA,eAAA",sourcesContent:["\n@use './Users/shared/styles.scss' as *;\n\n.empty {\n\t:deep {\n\t\t.icon-vue {\n\t\t\twidth: 64px;\n\t\t\theight: 64px;\n\n\t\t\tsvg {\n\t\t\t\tmax-width: 64px;\n\t\t\t\tmax-height: 64px;\n\t\t\t}\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const o=r},77739(t,e,s){"use strict";s.d(e,{A:()=>o});var n=s(71354),a=s.n(n),i=s(76314),r=s.n(i)()(a());r.push([t.id,".edit-dialog[data-v-2a263a52] .dialog__actions{margin-block-start:calc(var(--default-grid-baseline, 4px)*3)}","",{version:3,sources:["webpack://./apps/settings/src/components/Users/EditUserDialog.vue"],names:[],mappings:"AAEC,+CACC,4DAAA",sourcesContent:["\n.edit-dialog {\n\t:deep(.dialog__actions) {\n\t\tmargin-block-start: calc(var(--default-grid-baseline, 4px) * 3);\n\t}\n}\n"],sourceRoot:""}]);const o=r},16696(t,e,s){"use strict";s.d(e,{A:()=>o});var n=s(71354),a=s.n(n),i=s(76314),r=s.n(i)()(a());r.push([t.id,".dialog[data-v-32af3da3] .dialog__actions{margin-block-start:calc(var(--default-grid-baseline, 4px)*3)}","",{version:3,sources:["webpack://./apps/settings/src/components/Users/NewUserDialog.vue"],names:[],mappings:"AAEC,0CACC,4DAAA",sourcesContent:["\n.dialog {\n\t:deep(.dialog__actions) {\n\t\tmargin-block-start: calc(var(--default-grid-baseline, 4px) * 3);\n\t}\n}\n"],sourceRoot:""}]);const o=r},42568(t,e,s){"use strict";s.d(e,{A:()=>o});var n=s(71354),a=s.n(n),i=s(76314),r=s.n(i)()(a());r.push([t.id,".user-form-fields[data-v-0d9243e9]{display:flex;flex-direction:column;align-items:center;gap:calc(var(--default-grid-baseline, 4px)*2) 0}.user-form-fields__item[data-v-0d9243e9]{width:100%}.user-form-fields__item[data-v-0d9243e9]:not(:focus):not(:active){border-color:var(--color-border-dark)}.user-form-fields__static[data-v-0d9243e9]{display:flex;flex-direction:column;justify-content:center;min-height:var(--default-clickable-area, 44px);padding:var(--border-width-input-focused, 2px);padding-inline:calc(var(--border-radius-element, 8px) + var(--border-width-input-focused, 2px));margin-left:18px}.user-form-fields__static-label[data-v-0d9243e9]{font-size:var(--font-size-small, 13px);font-weight:500;line-height:1.5;color:var(--color-text-maxcontrast)}.user-form-fields__static-value[data-v-0d9243e9]{font-size:var(--default-font-size, 14px);line-height:1.5;color:var(--color-main-text)}.user-form-fields__hint[data-v-0d9243e9]{color:var(--color-text-maxcontrast);margin-block-start:calc(var(--default-grid-baseline, 4px)*2);align-self:flex-start}.user-form-fields[data-v-0d9243e9] .user-form__item{width:100%}.user-form-fields[data-v-0d9243e9] .user-form__select{width:100%}.user-form-fields__error-summary[data-v-0d9243e9]{width:100%;margin-block-start:calc(var(--default-grid-baseline, 4px)*2);color:var(--color-error);font-size:var(--default-font-size, 14px)}.user-form-fields__error-summary p[data-v-0d9243e9]{margin-block:calc(var(--default-grid-baseline, 4px)/2)}","",{version:3,sources:["webpack://./apps/settings/src/components/Users/UserFormFields.vue"],names:[],mappings:"AACA,mCACC,YAAA,CACA,qBAAA,CACA,kBAAA,CACA,+CAAA,CAEA,yCACC,UAAA,CAEA,kEACC,qCAAA,CAIF,2CACC,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,8CAAA,CACA,8CAAA,CACA,+FAAA,CAIA,gBAAA,CAEA,iDACC,sCAAA,CACA,eAAA,CACA,eAAA,CACA,mCAAA,CAGD,iDACC,wCAAA,CACA,eAAA,CACA,4BAAA,CAIF,yCACC,mCAAA,CACA,4DAAA,CACA,qBAAA,CAID,oDACC,UAAA,CAGD,sDACC,UAAA,CAGD,kDACC,UAAA,CACA,4DAAA,CACA,wBAAA,CACA,wCAAA,CAEA,oDACC,sDAAA",sourcesContent:["\n.user-form-fields {\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n\tgap: calc(var(--default-grid-baseline, 4px) * 2) 0;\n\n\t&__item {\n\t\twidth: 100%;\n\n\t\t&:not(:focus):not(:active) {\n\t\t\tborder-color: var(--color-border-dark);\n\t\t}\n\t}\n\n\t&__static {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tjustify-content: center;\n\t\tmin-height: var(--default-clickable-area, 44px);\n\t\tpadding: var(--border-width-input-focused, 2px);\n\t\tpadding-inline: calc(var(--border-radius-element, 8px) + var(--border-width-input-focused, 2px));\n\n\t\t// Manually align static value with inputs below until we have a static field in component lib.\n\t\t// See: https://github.com/nextcloud/server/issues/53862#issuecomment-4212613996\n\t\tmargin-left: 18px;\n\n\t\t&-label {\n\t\t\tfont-size: var(--font-size-small, 13px);\n\t\t\tfont-weight: 500;\n\t\t\tline-height: 1.5;\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t}\n\n\t\t&-value {\n\t\t\tfont-size: var(--default-font-size, 14px);\n\t\t\tline-height: 1.5;\n\t\t\tcolor: var(--color-main-text);\n\t\t}\n\t}\n\n\t&__hint {\n\t\tcolor: var(--color-text-maxcontrast);\n\t\tmargin-block-start: calc(var(--default-grid-baseline, 4px) * 2);\n\t\talign-self: flex-start;\n\t}\n\n\t// Reach into sub-component root elements to apply consistent sizing\n\t:deep(.user-form__item) {\n\t\twidth: 100%;\n\t}\n\n\t:deep(.user-form__select) {\n\t\twidth: 100%;\n\t}\n\n\t&__error-summary {\n\t\twidth: 100%;\n\t\tmargin-block-start: calc(var(--default-grid-baseline, 4px) * 2);\n\t\tcolor: var(--color-error);\n\t\tfont-size: var(--default-font-size, 14px);\n\n\t\tp {\n\t\t\tmargin-block: calc(var(--default-grid-baseline, 4px) / 2);\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const o=r},13033(t,e,s){"use strict";s.d(e,{A:()=>o});var n=s(71354),a=s.n(n),i=s(76314),r=s.n(i)()(a());r.push([t.id,".user-form-groups[data-v-4041cacf]{display:flex;flex-direction:column;gap:calc(var(--default-grid-baseline, 4px)*2) 0;width:100%}.user-form__item[data-v-4041cacf]{width:100%}.user-form__select[data-v-4041cacf]{width:100%}","",{version:3,sources:["webpack://./apps/settings/src/components/Users/UserFormGroups.vue"],names:[],mappings:"AACA,mCACC,YAAA,CACA,qBAAA,CACA,+CAAA,CACA,UAAA,CAGD,kCACC,UAAA,CAGD,oCACC,UAAA",sourcesContent:["\n.user-form-groups {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: calc(var(--default-grid-baseline, 4px) * 2) 0;\n\twidth: 100%;\n}\n\n.user-form__item {\n\twidth: 100%;\n}\n\n.user-form__select {\n\twidth: 100%;\n}\n"],sourceRoot:""}]);const o=r},16898(t,e,s){"use strict";s.d(e,{A:()=>o});var n=s(71354),a=s.n(n),i=s(76314),r=s.n(i)()(a());r.push([t.id,".footer[data-v-4ff6ba29]{position:relative;display:flex;min-width:100%;width:fit-content;height:var(--row-height);background-color:var(--color-main-background)}.footer__cell[data-v-4ff6ba29]{display:flex;flex-direction:column;justify-content:center;padding:0 var(--cell-padding);min-width:var(--cell-width);width:var(--cell-width);color:var(--color-main-text)}.footer__cell strong[data-v-4ff6ba29],.footer__cell span[data-v-4ff6ba29],.footer__cell label[data-v-4ff6ba29]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;overflow-wrap:anywhere}@media(min-width: 670px){.footer__cell--avatar[data-v-4ff6ba29],.footer__cell--displayname[data-v-4ff6ba29]{position:sticky;z-index:var(--sticky-column-z-index);background-color:var(--color-main-background)}.footer__cell--avatar[data-v-4ff6ba29]{inset-inline-start:0}.footer__cell--displayname[data-v-4ff6ba29]{inset-inline-start:var(--avatar-cell-width);border-inline-end:1px solid var(--color-border)}}.footer__cell--username[data-v-4ff6ba29]{padding-inline-start:calc(var(--default-grid-baseline)*3)}.footer__cell--avatar[data-v-4ff6ba29]{min-width:var(--avatar-cell-width);width:var(--avatar-cell-width);align-items:center;padding:0;user-select:none}.footer__cell--multiline span[data-v-4ff6ba29]{line-height:1.3em;white-space:unset}@supports(-webkit-line-clamp: 2){.footer__cell--multiline span[data-v-4ff6ba29]{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.footer__cell--large[data-v-4ff6ba29]{min-width:var(--cell-width-large);width:var(--cell-width-large)}.footer__cell--groups[data-v-4ff6ba29]{min-width:var(--cell-width-groups);width:var(--cell-width-groups)}.footer__cell--obfuscated[data-v-4ff6ba29]{min-width:400px;width:400px}.footer__cell--fill[data-v-4ff6ba29]{min-width:var(--cell-width-large);width:100%}.footer__cell--actions[data-v-4ff6ba29]{position:sticky;inset-inline-end:0;z-index:var(--sticky-column-z-index);display:flex;flex-direction:row;align-items:center;min-width:110px;width:110px;background-color:var(--color-main-background);border-inline-start:1px solid var(--color-border)}.footer__subtitle[data-v-4ff6ba29]{color:var(--color-text-maxcontrast)}.footer__cell[data-v-4ff6ba29]{position:sticky;color:var(--color-text-maxcontrast)}.footer__cell--loading[data-v-4ff6ba29]{inset-inline-start:0;min-width:var(--avatar-cell-width);width:var(--avatar-cell-width);align-items:center;padding:0}.footer__cell--count[data-v-4ff6ba29]{inset-inline-start:var(--avatar-cell-width);min-width:var(--cell-width);width:var(--cell-width)}","",{version:3,sources:["webpack://./apps/settings/src/components/Users/UserListFooter.vue","webpack://./apps/settings/src/components/Users/shared/styles.scss"],names:[],mappings:"AAGA,yBCGC,iBAAA,CACA,YAAA,CACA,cAAA,CACA,iBAAA,CACA,wBAAA,CACA,6CAAA,CAIA,+BACC,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,6BAAA,CACA,2BAAA,CACA,uBAAA,CACA,4BAAA,CAEA,+GAGC,eAAA,CACA,sBAAA,CACA,kBAAA,CACA,sBAAA,CAGD,yBACC,mFAEC,eAAA,CACA,oCAAA,CACA,6CAAA,CAGD,uCACC,oBAAA,CAGD,4CACC,2CAAA,CACA,+CAAA,CAAA,CAIF,yCACC,yDAAA,CAGD,uCACC,kCAAA,CACA,8BAAA,CACA,kBAAA,CACA,SAAA,CACA,gBAAA,CAIA,+CACC,iBAAA,CACA,iBAAA,CAEA,iCAJD,+CAKE,mBAAA,CACA,oBAAA,CACA,2BAAA,CAAA,CAKH,sCACC,iCAAA,CACA,6BAAA,CAGD,uCACC,kCAAA,CACA,8BAAA,CAGD,2CACC,eAAA,CACA,WAAA,CAID,qCACC,iCAAA,CACA,UAAA,CAGD,wCACC,eAAA,CACA,kBAAA,CACA,oCAAA,CACA,YAAA,CACA,kBAAA,CACA,kBAAA,CACA,eAAA,CACA,WAAA,CACA,6CAAA,CACA,iDAAA,CAIF,mCACC,mCAAA,CDzGD,+BACC,eAAA,CACA,mCAAA,CAEA,wCACC,oBAAA,CACA,kCAAA,CACA,8BAAA,CACA,kBAAA,CACA,SAAA,CAGD,sCACC,2CAAA,CACA,2BAAA,CACA,uBAAA",sourcesContent:["\n@use './shared/styles.scss';\n\n.footer {\n\t@include styles.row;\n\t@include styles.cell;\n\n\t&__cell {\n\t\tposition: sticky;\n\t\tcolor: var(--color-text-maxcontrast);\n\n\t\t&--loading {\n\t\t\tinset-inline-start: 0;\n\t\t\tmin-width: var(--avatar-cell-width);\n\t\t\twidth: var(--avatar-cell-width);\n\t\t\talign-items: center;\n\t\t\tpadding: 0;\n\t\t}\n\n\t\t&--count {\n\t\t\tinset-inline-start: var(--avatar-cell-width);\n\t\t\tmin-width: var(--cell-width);\n\t\t\twidth: var(--cell-width);\n\t\t}\n\t}\n}\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n@mixin row {\n\tposition: relative;\n\tdisplay: flex;\n\tmin-width: 100%;\n\twidth: fit-content;\n\theight: var(--row-height);\n\tbackground-color: var(--color-main-background);\n}\n\n@mixin cell {\n\t&__cell {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tjustify-content: center;\n\t\tpadding: 0 var(--cell-padding);\n\t\tmin-width: var(--cell-width);\n\t\twidth: var(--cell-width);\n\t\tcolor: var(--color-main-text);\n\n\t\tstrong,\n\t\tspan,\n\t\tlabel {\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t\twhite-space: nowrap;\n\t\t\toverflow-wrap: anywhere;\n\t\t}\n\n\t\t@media (min-width: 670px) { /* Show one &--large column between stickied columns */\n\t\t\t&--avatar,\n\t\t\t&--displayname {\n\t\t\t\tposition: sticky;\n\t\t\t\tz-index: var(--sticky-column-z-index);\n\t\t\t\tbackground-color: var(--color-main-background);\n\t\t\t}\n\n\t\t\t&--avatar {\n\t\t\t\tinset-inline-start: 0;\n\t\t\t}\n\n\t\t\t&--displayname {\n\t\t\t\tinset-inline-start: var(--avatar-cell-width);\n\t\t\t\tborder-inline-end: 1px solid var(--color-border);\n\t\t\t}\n\t\t}\n\n\t\t&--username {\n\t\t\tpadding-inline-start: calc(var(--default-grid-baseline) * 3);\n\t\t}\n\n\t\t&--avatar {\n\t\t\tmin-width: var(--avatar-cell-width);\n\t\t\twidth: var(--avatar-cell-width);\n\t\t\talign-items: center;\n\t\t\tpadding: 0;\n\t\t\tuser-select: none;\n\t\t}\n\n\t\t&--multiline {\n\t\t\tspan {\n\t\t\t\tline-height: 1.3em;\n\t\t\t\twhite-space: unset;\n\n\t\t\t\t@supports (-webkit-line-clamp: 2) {\n\t\t\t\t\tdisplay: -webkit-box;\n\t\t\t\t\t-webkit-line-clamp: 2;\n\t\t\t\t\t-webkit-box-orient: vertical;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t&--large {\n\t\t\tmin-width: var(--cell-width-large);\n\t\t\twidth: var(--cell-width-large);\n\t\t}\n\n\t\t&--groups {\n\t\t\tmin-width: var(--cell-width-groups);\n\t\t\twidth: var(--cell-width-groups);\n\t\t}\n\n\t\t&--obfuscated {\n\t\t\tmin-width: 400px;\n\t\t\twidth: 400px;\n\t\t}\n\n\t\t// Fill remaining row space with cell\n\t\t&--fill {\n\t\t\tmin-width: var(--cell-width-large);\n\t\t\twidth: 100%;\n\t\t}\n\n\t\t&--actions {\n\t\t\tposition: sticky;\n\t\t\tinset-inline-end: 0;\n\t\t\tz-index: var(--sticky-column-z-index);\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: row;\n\t\t\talign-items: center;\n\t\t\tmin-width: 110px;\n\t\t\twidth: 110px;\n\t\t\tbackground-color: var(--color-main-background);\n\t\t\tborder-inline-start: 1px solid var(--color-border);\n\t\t}\n\t}\n\n\t&__subtitle {\n\t\tcolor: var(--color-text-maxcontrast);\n\t}\n}\n"],sourceRoot:""}]);const o=r},80665(t,e,s){"use strict";s.d(e,{A:()=>o});var n=s(71354),a=s.n(n),i=s(76314),r=s.n(i)()(a());r.push([t.id,".header[data-v-53c64244]{border-bottom:1px solid var(--color-border);position:relative;display:flex;min-width:100%;width:fit-content;height:var(--row-height);background-color:var(--color-main-background)}.header__cell[data-v-53c64244]{display:flex;flex-direction:column;justify-content:center;padding:0 var(--cell-padding);min-width:var(--cell-width);width:var(--cell-width);color:var(--color-main-text)}.header__cell strong[data-v-53c64244],.header__cell span[data-v-53c64244],.header__cell label[data-v-53c64244]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;overflow-wrap:anywhere}@media(min-width: 670px){.header__cell--avatar[data-v-53c64244],.header__cell--displayname[data-v-53c64244]{position:sticky;z-index:var(--sticky-column-z-index);background-color:var(--color-main-background)}.header__cell--avatar[data-v-53c64244]{inset-inline-start:0}.header__cell--displayname[data-v-53c64244]{inset-inline-start:var(--avatar-cell-width);border-inline-end:1px solid var(--color-border)}}.header__cell--username[data-v-53c64244]{padding-inline-start:calc(var(--default-grid-baseline)*3)}.header__cell--avatar[data-v-53c64244]{min-width:var(--avatar-cell-width);width:var(--avatar-cell-width);align-items:center;padding:0;user-select:none}.header__cell--multiline span[data-v-53c64244]{line-height:1.3em;white-space:unset}@supports(-webkit-line-clamp: 2){.header__cell--multiline span[data-v-53c64244]{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.header__cell--large[data-v-53c64244]{min-width:var(--cell-width-large);width:var(--cell-width-large)}.header__cell--groups[data-v-53c64244]{min-width:var(--cell-width-groups);width:var(--cell-width-groups)}.header__cell--obfuscated[data-v-53c64244]{min-width:400px;width:400px}.header__cell--fill[data-v-53c64244]{min-width:var(--cell-width-large);width:100%}.header__cell--actions[data-v-53c64244]{position:sticky;inset-inline-end:0;z-index:var(--sticky-column-z-index);display:flex;flex-direction:row;align-items:center;min-width:110px;width:110px;background-color:var(--color-main-background);border-inline-start:1px solid var(--color-border)}.header__subtitle[data-v-53c64244]{color:var(--color-text-maxcontrast)}","",{version:3,sources:["webpack://./apps/settings/src/components/Users/UserListHeader.vue","webpack://./apps/settings/src/components/Users/shared/styles.scss"],names:[],mappings:"AAGA,yBACC,2CAAA,CCEA,iBAAA,CACA,YAAA,CACA,cAAA,CACA,iBAAA,CACA,wBAAA,CACA,6CAAA,CAIA,+BACC,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,6BAAA,CACA,2BAAA,CACA,uBAAA,CACA,4BAAA,CAEA,+GAGC,eAAA,CACA,sBAAA,CACA,kBAAA,CACA,sBAAA,CAGD,yBACC,mFAEC,eAAA,CACA,oCAAA,CACA,6CAAA,CAGD,uCACC,oBAAA,CAGD,4CACC,2CAAA,CACA,+CAAA,CAAA,CAIF,yCACC,yDAAA,CAGD,uCACC,kCAAA,CACA,8BAAA,CACA,kBAAA,CACA,SAAA,CACA,gBAAA,CAIA,+CACC,iBAAA,CACA,iBAAA,CAEA,iCAJD,+CAKE,mBAAA,CACA,oBAAA,CACA,2BAAA,CAAA,CAKH,sCACC,iCAAA,CACA,6BAAA,CAGD,uCACC,kCAAA,CACA,8BAAA,CAGD,2CACC,eAAA,CACA,WAAA,CAID,qCACC,iCAAA,CACA,UAAA,CAGD,wCACC,eAAA,CACA,kBAAA,CACA,oCAAA,CACA,YAAA,CACA,kBAAA,CACA,kBAAA,CACA,eAAA,CACA,WAAA,CACA,6CAAA,CACA,iDAAA,CAIF,mCACC,mCAAA",sourcesContent:["\n@use './shared/styles.scss';\n\n.header {\n\tborder-bottom: 1px solid var(--color-border);\n\n\t@include styles.row;\n\t@include styles.cell;\n}\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n@mixin row {\n\tposition: relative;\n\tdisplay: flex;\n\tmin-width: 100%;\n\twidth: fit-content;\n\theight: var(--row-height);\n\tbackground-color: var(--color-main-background);\n}\n\n@mixin cell {\n\t&__cell {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tjustify-content: center;\n\t\tpadding: 0 var(--cell-padding);\n\t\tmin-width: var(--cell-width);\n\t\twidth: var(--cell-width);\n\t\tcolor: var(--color-main-text);\n\n\t\tstrong,\n\t\tspan,\n\t\tlabel {\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t\twhite-space: nowrap;\n\t\t\toverflow-wrap: anywhere;\n\t\t}\n\n\t\t@media (min-width: 670px) { /* Show one &--large column between stickied columns */\n\t\t\t&--avatar,\n\t\t\t&--displayname {\n\t\t\t\tposition: sticky;\n\t\t\t\tz-index: var(--sticky-column-z-index);\n\t\t\t\tbackground-color: var(--color-main-background);\n\t\t\t}\n\n\t\t\t&--avatar {\n\t\t\t\tinset-inline-start: 0;\n\t\t\t}\n\n\t\t\t&--displayname {\n\t\t\t\tinset-inline-start: var(--avatar-cell-width);\n\t\t\t\tborder-inline-end: 1px solid var(--color-border);\n\t\t\t}\n\t\t}\n\n\t\t&--username {\n\t\t\tpadding-inline-start: calc(var(--default-grid-baseline) * 3);\n\t\t}\n\n\t\t&--avatar {\n\t\t\tmin-width: var(--avatar-cell-width);\n\t\t\twidth: var(--avatar-cell-width);\n\t\t\talign-items: center;\n\t\t\tpadding: 0;\n\t\t\tuser-select: none;\n\t\t}\n\n\t\t&--multiline {\n\t\t\tspan {\n\t\t\t\tline-height: 1.3em;\n\t\t\t\twhite-space: unset;\n\n\t\t\t\t@supports (-webkit-line-clamp: 2) {\n\t\t\t\t\tdisplay: -webkit-box;\n\t\t\t\t\t-webkit-line-clamp: 2;\n\t\t\t\t\t-webkit-box-orient: vertical;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t&--large {\n\t\t\tmin-width: var(--cell-width-large);\n\t\t\twidth: var(--cell-width-large);\n\t\t}\n\n\t\t&--groups {\n\t\t\tmin-width: var(--cell-width-groups);\n\t\t\twidth: var(--cell-width-groups);\n\t\t}\n\n\t\t&--obfuscated {\n\t\t\tmin-width: 400px;\n\t\t\twidth: 400px;\n\t\t}\n\n\t\t// Fill remaining row space with cell\n\t\t&--fill {\n\t\t\tmin-width: var(--cell-width-large);\n\t\t\twidth: 100%;\n\t\t}\n\n\t\t&--actions {\n\t\t\tposition: sticky;\n\t\t\tinset-inline-end: 0;\n\t\t\tz-index: var(--sticky-column-z-index);\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: row;\n\t\t\talign-items: center;\n\t\t\tmin-width: 110px;\n\t\t\twidth: 110px;\n\t\t\tbackground-color: var(--color-main-background);\n\t\t\tborder-inline-start: 1px solid var(--color-border);\n\t\t}\n\t}\n\n\t&__subtitle {\n\t\tcolor: var(--color-text-maxcontrast);\n\t}\n}\n"],sourceRoot:""}]);const o=r},19334(t,e,s){"use strict";s.d(e,{A:()=>o});var n=s(71354),a=s.n(n),i=s(76314),r=s.n(i)()(a());r.push([t.id,".user-list__row[data-v-32716952]{position:relative;display:flex;min-width:100%;width:fit-content;height:var(--row-height);background-color:var(--color-main-background)}.user-list__row[data-v-32716952]:hover{background-color:var(--color-background-hover)}.user-list__row:hover .row__cell[data-v-32716952]:not(.row__cell--actions){background-color:var(--color-background-hover)}.row__cell[data-v-32716952]{display:flex;flex-direction:column;justify-content:center;padding:0 var(--cell-padding);min-width:var(--cell-width);width:var(--cell-width);color:var(--color-main-text)}.row__cell strong[data-v-32716952],.row__cell span[data-v-32716952],.row__cell label[data-v-32716952]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;overflow-wrap:anywhere}@media(min-width: 670px){.row__cell--avatar[data-v-32716952],.row__cell--displayname[data-v-32716952]{position:sticky;z-index:var(--sticky-column-z-index);background-color:var(--color-main-background)}.row__cell--avatar[data-v-32716952]{inset-inline-start:0}.row__cell--displayname[data-v-32716952]{inset-inline-start:var(--avatar-cell-width);border-inline-end:1px solid var(--color-border)}}.row__cell--username[data-v-32716952]{padding-inline-start:calc(var(--default-grid-baseline)*3)}.row__cell--avatar[data-v-32716952]{min-width:var(--avatar-cell-width);width:var(--avatar-cell-width);align-items:center;padding:0;user-select:none}.row__cell--multiline span[data-v-32716952]{line-height:1.3em;white-space:unset}@supports(-webkit-line-clamp: 2){.row__cell--multiline span[data-v-32716952]{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.row__cell--large[data-v-32716952]{min-width:var(--cell-width-large);width:var(--cell-width-large)}.row__cell--groups[data-v-32716952]{min-width:var(--cell-width-groups);width:var(--cell-width-groups)}.row__cell--obfuscated[data-v-32716952]{min-width:400px;width:400px}.row__cell--fill[data-v-32716952]{min-width:var(--cell-width-large);width:100%}.row__cell--actions[data-v-32716952]{position:sticky;inset-inline-end:0;z-index:var(--sticky-column-z-index);display:flex;flex-direction:row;align-items:center;min-width:110px;width:110px;background-color:var(--color-main-background);border-inline-start:1px solid var(--color-border)}.row__subtitle[data-v-32716952]{color:var(--color-text-maxcontrast)}.row__cell[data-v-32716952]{border-bottom:1px solid var(--color-border)}.row__progress[data-v-32716952]{margin-top:4px}.row__progress--warn[data-v-32716952]::-moz-progress-bar{background:var(--color-warning) !important}.row__progress--warn[data-v-32716952]::-webkit-progress-value{background:var(--color-warning) !important}","",{version:3,sources:["webpack://./apps/settings/src/components/Users/UserRow.vue","webpack://./apps/settings/src/components/Users/shared/styles.scss"],names:[],mappings:"AAGA,iCCGC,iBAAA,CACA,YAAA,CACA,cAAA,CACA,iBAAA,CACA,wBAAA,CACA,6CAAA,CDLA,uCACC,8CAAA,CAEA,2EACC,8CAAA,CCKF,4BACC,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,6BAAA,CACA,2BAAA,CACA,uBAAA,CACA,4BAAA,CAEA,sGAGC,eAAA,CACA,sBAAA,CACA,kBAAA,CACA,sBAAA,CAGD,yBACC,6EAEC,eAAA,CACA,oCAAA,CACA,6CAAA,CAGD,oCACC,oBAAA,CAGD,yCACC,2CAAA,CACA,+CAAA,CAAA,CAIF,sCACC,yDAAA,CAGD,oCACC,kCAAA,CACA,8BAAA,CACA,kBAAA,CACA,SAAA,CACA,gBAAA,CAIA,4CACC,iBAAA,CACA,iBAAA,CAEA,iCAJD,4CAKE,mBAAA,CACA,oBAAA,CACA,2BAAA,CAAA,CAKH,mCACC,iCAAA,CACA,6BAAA,CAGD,oCACC,kCAAA,CACA,8BAAA,CAGD,wCACC,eAAA,CACA,WAAA,CAID,kCACC,iCAAA,CACA,UAAA,CAGD,qCACC,eAAA,CACA,kBAAA,CACA,oCAAA,CACA,YAAA,CACA,kBAAA,CACA,kBAAA,CACA,eAAA,CACA,WAAA,CACA,6CAAA,CACA,iDAAA,CAIF,gCACC,mCAAA,CD9FD,4BACC,2CAAA,CAGD,gCACC,cAAA,CAGC,yDACC,0CAAA,CAED,8DACC,0CAAA",sourcesContent:["\n@use './shared/styles.scss';\n\n.user-list__row {\n\t@include styles.row;\n\n\t&:hover {\n\t\tbackground-color: var(--color-background-hover);\n\n\t\t.row__cell:not(.row__cell--actions) {\n\t\t\tbackground-color: var(--color-background-hover);\n\t\t}\n\t}\n}\n\n.row {\n\t@include styles.cell;\n\n\t&__cell {\n\t\tborder-bottom: 1px solid var(--color-border);\n\t}\n\n\t&__progress {\n\t\tmargin-top: 4px;\n\n\t\t&--warn {\n\t\t\t&::-moz-progress-bar {\n\t\t\t\tbackground: var(--color-warning) !important;\n\t\t\t}\n\t\t\t&::-webkit-progress-value {\n\t\t\t\tbackground: var(--color-warning) !important;\n\t\t\t}\n\t\t}\n\t}\n}\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n@mixin row {\n\tposition: relative;\n\tdisplay: flex;\n\tmin-width: 100%;\n\twidth: fit-content;\n\theight: var(--row-height);\n\tbackground-color: var(--color-main-background);\n}\n\n@mixin cell {\n\t&__cell {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tjustify-content: center;\n\t\tpadding: 0 var(--cell-padding);\n\t\tmin-width: var(--cell-width);\n\t\twidth: var(--cell-width);\n\t\tcolor: var(--color-main-text);\n\n\t\tstrong,\n\t\tspan,\n\t\tlabel {\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t\twhite-space: nowrap;\n\t\t\toverflow-wrap: anywhere;\n\t\t}\n\n\t\t@media (min-width: 670px) { /* Show one &--large column between stickied columns */\n\t\t\t&--avatar,\n\t\t\t&--displayname {\n\t\t\t\tposition: sticky;\n\t\t\t\tz-index: var(--sticky-column-z-index);\n\t\t\t\tbackground-color: var(--color-main-background);\n\t\t\t}\n\n\t\t\t&--avatar {\n\t\t\t\tinset-inline-start: 0;\n\t\t\t}\n\n\t\t\t&--displayname {\n\t\t\t\tinset-inline-start: var(--avatar-cell-width);\n\t\t\t\tborder-inline-end: 1px solid var(--color-border);\n\t\t\t}\n\t\t}\n\n\t\t&--username {\n\t\t\tpadding-inline-start: calc(var(--default-grid-baseline) * 3);\n\t\t}\n\n\t\t&--avatar {\n\t\t\tmin-width: var(--avatar-cell-width);\n\t\t\twidth: var(--avatar-cell-width);\n\t\t\talign-items: center;\n\t\t\tpadding: 0;\n\t\t\tuser-select: none;\n\t\t}\n\n\t\t&--multiline {\n\t\t\tspan {\n\t\t\t\tline-height: 1.3em;\n\t\t\t\twhite-space: unset;\n\n\t\t\t\t@supports (-webkit-line-clamp: 2) {\n\t\t\t\t\tdisplay: -webkit-box;\n\t\t\t\t\t-webkit-line-clamp: 2;\n\t\t\t\t\t-webkit-box-orient: vertical;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t&--large {\n\t\t\tmin-width: var(--cell-width-large);\n\t\t\twidth: var(--cell-width-large);\n\t\t}\n\n\t\t&--groups {\n\t\t\tmin-width: var(--cell-width-groups);\n\t\t\twidth: var(--cell-width-groups);\n\t\t}\n\n\t\t&--obfuscated {\n\t\t\tmin-width: 400px;\n\t\t\twidth: 400px;\n\t\t}\n\n\t\t// Fill remaining row space with cell\n\t\t&--fill {\n\t\t\tmin-width: var(--cell-width-large);\n\t\t\twidth: 100%;\n\t\t}\n\n\t\t&--actions {\n\t\t\tposition: sticky;\n\t\t\tinset-inline-end: 0;\n\t\t\tz-index: var(--sticky-column-z-index);\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: row;\n\t\t\talign-items: center;\n\t\t\tmin-width: 110px;\n\t\t\twidth: 110px;\n\t\t\tbackground-color: var(--color-main-background);\n\t\t\tborder-inline-start: 1px solid var(--color-border);\n\t\t}\n\t}\n\n\t&__subtitle {\n\t\tcolor: var(--color-text-maxcontrast);\n\t}\n}\n"],sourceRoot:""}]);const o=r},82300(t,e,s){"use strict";s.d(e,{A:()=>o});var n=s(71354),a=s.n(n),i=s(76314),r=s.n(i)()(a());r.push([t.id,".dialog__note[data-v-649c1de8]{font-weight:normal}fieldset[data-v-649c1de8]{font-weight:bold}","",{version:3,sources:["webpack://./apps/settings/src/components/Users/UserSettingsDialog.vue"],names:[],mappings:"AAEC,+BACC,kBAAA,CAIF,0BACC,gBAAA",sourcesContent:["\n.dialog {\n\t&__note {\n\t\tfont-weight: normal;\n\t}\n}\n\nfieldset {\n\tfont-weight: bold;\n}\n"],sourceRoot:""}]);const o=r},49808(t,e,s){"use strict";s.d(e,{A:()=>o});var n=s(71354),a=s.n(n),i=s(76314),r=s.n(i)()(a());r.push([t.id,".user-list[data-v-65d37ac4]{--avatar-cell-width: 48px;--cell-padding: 7px;--cell-width: 200px;--cell-width-large: 300px;--cell-width-groups: 380px;--cell-min-width: calc(var(--cell-width) - (2 * var(--cell-padding)));--sticky-column-z-index: calc(var(--vs-dropdown-z-index) + 1);display:block;overflow:auto;height:100%;will-change:scroll-position}.user-list__header[data-v-65d37ac4],.user-list__footer[data-v-65d37ac4]{position:sticky;display:block}.user-list__header[data-v-65d37ac4]{top:0;z-index:calc(var(--sticky-column-z-index) + 1)}.user-list__footer[data-v-65d37ac4]{inset-inline-start:0}.user-list__body[data-v-65d37ac4]{display:flex;flex-direction:column;width:100%}","",{version:3,sources:["webpack://./apps/settings/src/components/Users/VirtualList.vue"],names:[],mappings:"AACA,4BACC,yBAAA,CACA,mBAAA,CACA,mBAAA,CACA,yBAAA,CACA,0BAAA,CACA,qEAAA,CACA,6DAAA,CAGA,aAAA,CACA,aAAA,CACA,WAAA,CACA,2BAAA,CAEA,wEAEC,eAAA,CAEA,aAAA,CAGD,oCACC,KAAA,CACA,8CAAA,CAGD,oCACC,oBAAA,CAGD,kCACC,YAAA,CACA,qBAAA,CACA,UAAA",sourcesContent:["\n.user-list {\n\t--avatar-cell-width: 48px;\n\t--cell-padding: 7px;\n\t--cell-width: 200px;\n\t--cell-width-large: 300px;\n\t--cell-width-groups: 380px;\n\t--cell-min-width: calc(var(--cell-width) - (2 * var(--cell-padding)));\n\t--sticky-column-z-index: calc(var(--vs-dropdown-z-index) + 1); // Keep the sticky column on top of the select dropdown\n\n\t// Necessary for virtual scroll optimized rendering\n\tdisplay: block;\n\toverflow: auto;\n\theight: 100%;\n\twill-change: scroll-position;\n\n\t&__header,\n\t&__footer {\n\t\tposition: sticky;\n\t\t// Fix sticky positioning in Firefox\n\t\tdisplay: block;\n\t}\n\n\t&__header {\n\t\ttop: 0;\n\t\tz-index: calc(var(--sticky-column-z-index) + 1);\n\t}\n\n\t&__footer {\n\t\tinset-inline-start: 0;\n\t}\n\n\t&__body {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\twidth: 100%;\n\t}\n}\n"],sourceRoot:""}]);const o=r},17130(t,e,s){"use strict";s.d(e,{A:()=>o});var n=s(71354),a=s.n(n),i=s(76314),r=s.n(i)()(a());r.push([t.id,".app-content[data-v-6c72a095]{display:flex;overflow:hidden;flex-direction:column;max-height:100%}","",{version:3,sources:["webpack://./apps/settings/src/views/UserManagement.vue"],names:[],mappings:"AACA,8BAEC,YAAA,CACA,eAAA,CACA,qBAAA,CACA,eAAA",sourcesContent:["\n.app-content {\n\t// Virtual list needs to be full height and is scrollable\n\tdisplay: flex;\n\toverflow: hidden;\n\tflex-direction: column;\n\tmax-height: 100%;\n}\n"],sourceRoot:""}]);const o=r},48500(t,e,s){"use strict";s.d(e,{A:()=>o});var n=s(71354),a=s.n(n),i=s(76314),r=s.n(i)()(a());r.push([t.id,".account-management__navigation[data-v-0567bb0c] .app-navigation__body{will-change:scroll-position}.account-management__search[data-v-0567bb0c]{padding-block:var(--default-grid-baseline, 4px);padding-inline:var(--app-navigation-padding, 8px)}.account-management__system-list[data-v-0567bb0c]{height:auto !important;overflow:visible !important}.account-management__group-list[data-v-0567bb0c]{height:100% !important}.account-management__settings-toggle[data-v-0567bb0c]{margin-bottom:12px}","",{version:3,sources:["webpack://./apps/settings/src/views/UserManagementNavigation.vue"],names:[],mappings:"AAGE,uEACC,2BAAA,CAGF,6CACC,+CAAA,CACA,iDAAA,CAGD,kDACC,sBAAA,CACA,2BAAA,CAGD,iDACC,sBAAA,CAGD,sDACC,kBAAA",sourcesContent:["\n.account-management {\n\t&__navigation {\n\t\t:deep(.app-navigation__body) {\n\t\t\twill-change: scroll-position;\n\t\t}\n\t}\n\t&__search {\n\t\tpadding-block: var(--default-grid-baseline, 4px);\n\t\tpadding-inline: var(--app-navigation-padding, 8px);\n\t}\n\n\t&__system-list {\n\t\theight: auto !important;\n\t\toverflow: visible !important;\n\t}\n\n\t&__group-list {\n\t\theight: 100% !important;\n\t}\n\n\t&__settings-toggle {\n\t\tmargin-bottom: 12px;\n\t}\n}\n"],sourceRoot:""}]);const o=r},62691(e,s,n){"use strict";n.r(s),n.d(s,{default:()=>Os});var a=n(61338),i=n(53334),r=n(85471),o=n(18195),l=n(9165),c=n(85168),d=n(54914),u=n(42507),A=n(6695),p=n(88289),g=n(77690),h=n(74095),m=n(94219),C=n(16044),f=n(82182),v=n(67607),_=n(21106),w=n(19978);const b={name:"UserFormGroups",components:{NcSelect:v.default},inject:["formData"],data:()=>({creatingGroup:!1,promise:null}),computed:{settings(){return this.$store.getters.getServerData},availableGroups(){return(this.settings.isAdmin||this.settings.isDelegatedAdmin?this.$store.getters.getSortedGroups:this.$store.getters.getSubAdminGroups).filter(({id:t})=>"__nc_internal_recent"!==t&&"disabled"!==t)},availableSubAdminGroups(){return this.availableGroups.filter(({id:t})=>"admin"!==t)},groupsLabel(){return this.settings.isAdmin||this.settings.isDelegatedAdmin?t("settings","Member of the following groups"):t("settings","Member of the following groups (required)")}},methods:{async searchGroups(e,s){if(this.settings.isAdmin||this.settings.isDelegatedAdmin){this.promise&&this.promise.cancel(),s(!0);try{this.promise=(0,w.N_)({search:e,offset:0,limit:25});const t=await this.promise;for(const e of t)this.$store.commit("addGroup",e)}catch(e){_.A.error(t("settings","Failed to search groups"),{error:e})}this.promise=null,s(!1)}},async createGroup({name:e}){this.creatingGroup=!0;try{await this.$store.dispatch("addGroup",e),this.formData.groups.push({id:e,name:e})}catch(e){_.A.error(t("settings","Failed to create group"),{error:e})}this.creatingGroup=!1}}};var y=n(85072),x=n.n(y),N=n(97825),k=n.n(N),S=n(77659),G=n.n(S),D=n(55056),U=n.n(D),L=n(10540),B=n.n(L),I=n(41113),O=n.n(I),q=n(13033),E={};E.styleTagTransform=O(),E.setAttributes=U(),E.insert=G().bind(null,"head"),E.domAPI=k(),E.insertStyleElement=B(),x()(q.A,E),q.A&&q.A.locals&&q.A.locals;var F=n(14486);const T=(0,F.A)(b,function(){var t=this,e=t._self._c;return e("div",{staticClass:"user-form-groups"},[e("div",{staticClass:"user-form__item"},[e("NcSelect",{staticClass:"user-form__select",attrs:{"data-test":"groups","input-label":t.groupsLabel,placeholder:t.t("settings","Set account groups"),disabled:t.creatingGroup,options:t.availableGroups,label:"name","keep-open":"",multiple:!0,taggable:t.settings.isAdmin||t.settings.isDelegatedAdmin,required:!t.settings.isAdmin&&!t.settings.isDelegatedAdmin,"create-option":t=>({id:t,name:t,isCreating:!0})},on:{search:t.searchGroups,"option:created":t.createGroup},model:{value:t.formData.groups,callback:function(e){t.$set(t.formData,"groups",e)},expression:"formData.groups"}})],1),t._v(" "),t.settings.isAdmin||t.settings.isDelegatedAdmin?e("div",{staticClass:"user-form__item"},[e("NcSelect",{staticClass:"user-form__select",attrs:{"input-label":t.t("settings","Admin of the following groups"),placeholder:t.t("settings","Set account as admin for …"),disabled:t.creatingGroup,options:t.availableSubAdminGroups,"keep-open":"",multiple:!0,label:"name"},on:{search:t.searchGroups},model:{value:t.formData.subadminGroups,callback:function(e){t.$set(t.formData,"subadminGroups",e)},expression:"formData.subadminGroups"}})],1):t._e()])},[],!1,null,"4041cacf",null).exports;var M=n(35810),$=n(34954);function z(t,e){if(!t.language||""===t.language)return{code:"",name:""};return[...e?.commonLanguages??[],...e?.otherLanguages??[]].find(e=>e.code===t.language)||{code:t.language,name:t.language}}const P={name:"UserFormLanguage",components:{NcSelect:v.default},inject:["formData"],computed:{showConfig(){return this.$store.getters.getShowConfig},languages(){const{commonLanguages:e,otherLanguages:s}=this.$store.getters.getServerData.languages;return[{name:t("settings","Common languages"),languages:e},...e,{name:t("settings","Other languages"),languages:s},...s]}},methods:{languageFilterBy:function(t,e,s){return t.languages?t.languages.some(({name:t})=>t.toLocaleLowerCase().includes(s.toLocaleLowerCase())):(e||"").toLocaleLowerCase().includes(s.toLocaleLowerCase())}}},R=(0,F.A)(P,function(){var t=this,e=t._self._c;return t.showConfig.showLanguages?e("div",{staticClass:"user-form__item"},[e("NcSelect",{staticClass:"user-form__select",attrs:{"input-label":t.t("settings","Language"),placeholder:t.t("settings","Set default language"),clearable:!1,selectable:t=>!t.languages,"filter-by":t.languageFilterBy,options:t.languages,label:"name"},model:{value:t.formData.language,callback:function(e){t.$set(t.formData,"language",e)},expression:"formData.language"}})],1):t._e()},[],!1,null,null,null).exports;var H=n(9773);const W={name:"UserFormManager",components:{NcSelectUsers:H.N},inject:["formData"],data:()=>({possibleManagers:[],loading:!1}),computed:{managerModel(){const t=this.formData.manager;return t?{id:"object"==typeof t?t.id:t,displayName:"object"==typeof t?t.displayname??t.id:t}:null},managerOptions(){return this.possibleManagers.map(t=>({id:t.id,displayName:t.displayname??t.id,subname:t.email??""}))}},mounted(){this.searchUserManager("")},methods:{onManagerChange(t){this.formData.manager=t?{id:t.id,displayname:t.displayName}:""},async searchUserManager(t){this.loading=!0;try{const e=await this.$store.dispatch("searchUsers",{offset:0,limit:10,search:t}),s=e?.data?Object.values(e.data.ocs.data.users):[];this.possibleManagers=s}catch(t){_.A.error("Failed to search user managers",{error:t})}finally{this.loading=!1}}}},Q=(0,F.A)(W,function(){var t=this,e=t._self._c;return e("div",{staticClass:"user-form__item user-form__managers"},[e("NcSelectUsers",{staticClass:"user-form__select",attrs:{modelValue:t.managerModel,"input-label":t.t("settings","Manager"),placeholder:t.t("settings","Search for a manager…"),options:t.managerOptions,loading:t.loading},on:{"update:modelValue":t.onManagerChange,search:t.searchUserManager}})],1)},[],!1,null,null,null).exports,j={name:"UserFormQuota",components:{NcSelect:v.default},inject:["formData"],props:{quotaOptions:{type:Array,required:!0}},methods:{validateQuota(t){return function(t,e){const s=(0,M.lT)(t,!0);if(null!==s&&s>=0){const t=(0,M.v7)(s);return{id:t,label:t}}return e}(t,this.quotaOptions[0])}}},V=(0,F.A)(j,function(){var t=this,e=t._self._c;return e("div",{staticClass:"user-form__item"},[e("NcSelect",{staticClass:"user-form__select",attrs:{"input-label":t.t("settings","Quota"),placeholder:t.t("settings","Set account quota"),options:t.quotaOptions,clearable:!1,taggable:!0,"create-option":t.validateQuota},model:{value:t.formData.quota,callback:function(e){t.$set(t.formData,"quota",e)},expression:"formData.quota"}})],1)},[],!1,null,null,null).exports,K={name:"UserFormFields",components:{NcPasswordField:C.A,NcTextField:f.A,UserFormGroups:T,UserFormLanguage:R,UserFormManager:Q,UserFormQuota:V},inject:["formData"],props:{quotaOptions:{type:Array,required:!0},fieldConfig:{type:Object,default:()=>({})},errors:{type:Object,default:()=>({})}},computed:{minPasswordLength(){return this.$store.getters.getPasswordPolicyMinLength},unhandledErrors(){const t=new Set(["displayName","password","email"]);return Object.fromEntries(Object.entries(this.errors).filter(([e])=>!t.has(e)))}},methods:{focusField(t){this.$refs[t]?.focus?.()}}};var Y=n(42568),X={};X.styleTagTransform=O(),X.setAttributes=U(),X.insert=G().bind(null,"head"),X.domAPI=k(),X.insertStyleElement=B(),x()(Y.A,X),Y.A&&Y.A.locals&&Y.A.locals;const J=(0,F.A)(K,function(){var t=this,e=t._self._c;return e("div",{staticClass:"user-form-fields"},[t.fieldConfig.username?.show&&t.fieldConfig.username?.disabled?e("div",{staticClass:"user-form-fields__item user-form-fields__static",attrs:{"data-test":"username"}},[e("span",{staticClass:"user-form-fields__static-label"},[t._v("\n\t\t\t"+t._s(t.fieldConfig.username?.label)+"\n\t\t")]),t._v(" "),e("span",{staticClass:"user-form-fields__static-value"},[t._v("\n\t\t\t"+t._s(t.formData.username)+"\n\t\t")])]):t.fieldConfig.username?.show?e("NcTextField",{ref:"username",staticClass:"user-form-fields__item",attrs:{"data-test":"username",label:t.fieldConfig.username?.label,autocapitalize:"none",autocomplete:"off",spellcheck:"false",pattern:"[a-zA-Z0-9 _\\.@\\-']+",required:t.fieldConfig.username?.required},model:{value:t.formData.username,callback:function(e){t.$set(t.formData,"username",e)},expression:"formData.username"}}):t._e(),t._v(" "),e("NcTextField",{staticClass:"user-form-fields__item",attrs:{"data-test":"displayName",label:t.t("settings","Display name"),error:!!t.errors.displayName,"helper-text":t.errors.displayName,autocapitalize:"none",autocomplete:"off",spellcheck:"false"},model:{value:t.formData.displayName,callback:function(e){t.$set(t.formData,"displayName",e)},expression:"formData.displayName"}}),t._v(" "),t.fieldConfig.showPasswordEmailHint?e("span",{staticClass:"user-form-fields__hint",attrs:{id:"password-email-hint"}},[t._v("\n\t\t"+t._s(t.t("settings","Either password or email is required"))+"\n\t")]):t._e(),t._v(" "),!1!==t.fieldConfig.password?.show?e("NcPasswordField",{ref:"password",staticClass:"user-form-fields__item",attrs:{"data-test":"password",minlength:t.minPasswordLength,maxlength:469,"aria-describedby":t.fieldConfig.showPasswordEmailHint?"password-email-hint":void 0,label:t.fieldConfig.password?.label,error:!!t.errors.password,"helper-text":t.errors.password,autocapitalize:"none",autocomplete:"new-password",spellcheck:"false",required:t.fieldConfig.password?.required},model:{value:t.formData.password,callback:function(e){t.$set(t.formData,"password",e)},expression:"formData.password"}}):t._e(),t._v(" "),e("NcTextField",{staticClass:"user-form-fields__item",attrs:{"data-test":"email",type:"email","aria-describedby":t.fieldConfig.showPasswordEmailHint?"password-email-hint":void 0,label:t.fieldConfig.email?.label||t.t("settings","Email"),error:!!t.errors.email,"helper-text":t.errors.email,autocapitalize:"none",autocomplete:"off",spellcheck:"false",required:t.fieldConfig.email?.required},model:{value:t.formData.email,callback:function(e){t.$set(t.formData,"email",e)},expression:"formData.email"}}),t._v(" "),e("UserFormGroups"),t._v(" "),e("UserFormQuota",{attrs:{"quota-options":t.quotaOptions}}),t._v(" "),e("UserFormLanguage"),t._v(" "),e("UserFormManager"),t._v(" "),Object.keys(t.unhandledErrors).length>0?e("div",{staticClass:"user-form-fields__error-summary",attrs:{"aria-live":"polite",role:"status"}},t._l(t.unhandledErrors,function(s,n){return e("p",{key:n},[t._v("\n\t\t\t"+t._s(n)+": "+t._s(s)+"\n\t\t")])}),0):t._e()],1)},[],!1,null,"0d9243e9",null).exports,Z={name:"EditUserDialog",components:{NcButton:h.A,NcDialog:m.A,UserFormFields:J},provide(){return{formData:this.editedUser}},props:{user:{type:Object,required:!0},quotaOptions:{type:Array,required:!0}},emits:["closing"],data(){const t=this.$store.getters.getGroups,e=this.$store.getters.getServerData.languages,s=function(t,e,s,n){const a=t.groups.map(t=>e.find(e=>e.id===t)).filter(Boolean),i=(t.subadmin??[]).map(t=>e.find(e=>e.id===t)).filter(Boolean);let r;if(t.quota?.quota>=0){const e=(0,M.v7)(t.quota.quota);r=s.find(t=>t.id===e)??{id:e,label:e}}else r="default"===t.quota?.quota?s[0]:$.SA;return{username:t.id,displayName:t.displayname??"",password:"",email:t.email??"",groups:a,subadminGroups:i,quota:r,language:z(t,n),manager:t.manager??""}}(this.user,t,this.quotaOptions,e);return{initialData:structuredClone(s),editedUser:s,saving:!1,fieldErrors:{}}},computed:{settings(){return this.$store.getters.getServerData},fieldConfig(){return{username:{show:!0,disabled:!0,label:t("settings","Account name")},password:{show:this.settings.canChangePassword&&this.user.backendCapabilities.setPassword,label:t("settings","New password")}}}},methods:{async save(){this.fieldErrors={};const e=function(t,e){const s={};e.displayName!==t.displayName&&(s.displayName=e.displayName),""!==e.password&&(s.password=e.password),e.email!==t.email&&(s.email=e.email),e.quota.id!==t.quota.id&&(s.quota=e.quota.id),e.language.code!==t.language.code&&(s.language=e.language.code);const n="object"==typeof e.manager?e.manager.id??"":e.manager;n!==("object"==typeof t.manager?t.manager.id??"":t.manager)&&(s.manager=n);const a=e.groups.map(t=>t.id).sort(),i=t.groups.map(t=>t.id).sort();JSON.stringify(a)!==JSON.stringify(i)&&(s.groups=a);const r=e.subadminGroups.map(t=>t.id).sort(),o=t.subadminGroups.map(t=>t.id).sort();return JSON.stringify(r)!==JSON.stringify(o)&&(s.subadminGroups=r),s}(this.initialData,this.editedUser);if(0!==Object.keys(e).length){this.saving=!0;try{await(0,g.C5)(),await this.$store.dispatch("editUserMultiField",{userid:this.user.id,payload:e}),(0,c.Te)(t("settings","Account updated")),this.$emit("closing")}catch(e){const s=e.response?.data?.ocs?.data?.errors;s&&"object"==typeof s?this.fieldErrors=s:(_.A.error("Failed to update account",{error:e}),(0,c.Qg)(t("settings","Failed to update account")))}finally{this.saving=!1}}else this.$emit("closing")}}};var tt=n(77739),et={};et.styleTagTransform=O(),et.setAttributes=U(),et.insert=G().bind(null,"head"),et.domAPI=k(),et.insertStyleElement=B(),x()(tt.A,et),tt.A&&tt.A.locals&&tt.A.locals;var st=(0,F.A)(Z,function(){var t=this,e=t._self._c;return e("NcDialog",{staticClass:"edit-dialog",attrs:{size:"small",name:t.t("settings","Edit account"),outTransition:""},on:{closing:function(e){return t.$emit("closing")}},scopedSlots:t._u([{key:"actions",fn:function(){return[e("NcButton",{staticClass:"edit-dialog__submit",attrs:{"data-test":"submit",form:"edit-user-form",variant:"primary",type:"submit",disabled:t.saving}},[t._v("\n\t\t\t"+t._s(t.saving?t.t("settings","Saving …"):t.t("settings","Save"))+"\n\t\t")])]},proxy:!0}])},[e("form",{staticClass:"edit-dialog__form",attrs:{id:"edit-user-form","data-test":"form",disabled:t.saving},on:{submit:function(e){return e.preventDefault(),t.save.apply(null,arguments)}}},[e("UserFormFields",{attrs:{fieldConfig:t.fieldConfig,errors:t.fieldErrors,quotaOptions:t.quotaOptions}})],1)])},[],!1,null,"2a263a52",null);const nt=st.exports,at={name:"NewUserDialog",components:{NcButton:h.A,NcDialog:m.A,UserFormFields:J},provide(){return{formData:this.newUser}},props:{loading:{type:Object,required:!0},newUser:{type:Object,required:!0},quotaOptions:{type:Array,required:!0}},emits:["closing"],computed:{settings(){return this.$store.getters.getServerData},usernameLabel(){return this.settings.newUserGenerateUserID?t("settings","Account name will be autogenerated"):t("settings","Account name (required)")},fieldConfig(){return{username:{show:!0,label:this.usernameLabel,disabled:this.settings.newUserGenerateUserID,required:!0},password:{label:""===this.newUser.email?t("settings","Password (required)"):t("settings","Password"),required:""===this.newUser.email},email:{label:""===this.newUser.password||this.settings.newUserRequireEmail?t("settings","Email (required)"):t("settings","Email"),required:""===this.newUser.password||this.settings.newUserRequireEmail},showPasswordEmailHint:!this.settings.newUserRequireEmail}}},mounted(){this.$refs.fields?.focusField("username")},methods:{async createUser(){this.loading.all=!0;try{await this.$store.dispatch("addUser",{userid:this.newUser.username,password:this.newUser.password,displayName:this.newUser.displayName,email:this.newUser.email,groups:this.newUser.groups.map(({id:t})=>t),subadmin:this.newUser.subadminGroups.map(({id:t})=>t),quota:this.newUser.quota.id,language:this.newUser.language.code,manager:this.newUser.manager.id}),this.$emit("closing")}catch(t){if(this.loading.all=!1,t.response?.data?.ocs?.meta){const e=t.response.data.ocs.meta.statuscode;102===e?this.$refs.fields?.focusField("username"):107===e&&this.$refs.fields?.focusField("password")}}}}};var it=n(16696),rt={};rt.styleTagTransform=O(),rt.setAttributes=U(),rt.insert=G().bind(null,"head"),rt.domAPI=k(),rt.insertStyleElement=B(),x()(it.A,rt),it.A&&it.A.locals&&it.A.locals;var ot=(0,F.A)(at,function(){var t=this,e=t._self._c;return e("NcDialog",t._g({staticClass:"dialog",attrs:{size:"small",name:t.t("settings","New account"),"out-transition":""},scopedSlots:t._u([{key:"actions",fn:function(){return[e("NcButton",{staticClass:"dialog__submit",attrs:{"data-test":"submit",form:"new-user-form",variant:"primary",type:"submit"}},[t._v("\n\t\t\t"+t._s(t.t("settings","Add new account"))+"\n\t\t")])]},proxy:!0}])},t.$listeners),[e("form",{staticClass:"dialog__form",attrs:{id:"new-user-form","data-test":"form",disabled:t.loading.all},on:{submit:function(e){return e.preventDefault(),t.createUser.apply(null,arguments)}}},[e("UserFormFields",{ref:"fields",attrs:{"field-config":t.fieldConfig,"quota-options":t.quotaOptions}})],1)])},[],!1,null,"32af3da3",null);const lt=ot.exports,ct=r.Ay.extend({name:"UserListFooter",components:{NcLoadingIcon:p.A},props:{loading:{type:Boolean,required:!0},filteredUsers:{type:Array,required:!0}},computed:{userCount(){return this.loading?this.n("settings","{userCount} account …","{userCount} accounts …",this.filteredUsers.length,{userCount:this.filteredUsers.length}):this.n("settings","{userCount} account","{userCount} accounts",this.filteredUsers.length,{userCount:this.filteredUsers.length})}},methods:{t:i.Tl,n:i.zw}});var dt=n(16898),ut={};ut.styleTagTransform=O(),ut.setAttributes=U(),ut.insert=G().bind(null,"head"),ut.domAPI=k(),ut.insertStyleElement=B(),x()(dt.A,ut),dt.A&&dt.A.locals&&dt.A.locals;const At=(0,F.A)(ct,function(){var t=this,e=t._self._c;return t._self._setupProxy,e("tr",{staticClass:"footer"},[e("th",{attrs:{scope:"row"}},[e("span",{staticClass:"hidden-visually"},[t._v(t._s(t.t("settings","Total rows summary")))])]),t._v(" "),e("td",{staticClass:"footer__cell footer__cell--loading"},[t.loading?e("NcLoadingIcon",{attrs:{title:t.t("settings","Loading accounts …"),size:32}}):t._e()],1),t._v(" "),e("td",{staticClass:"footer__cell footer__cell--count footer__cell--multiline"},[e("span",{attrs:{"aria-describedby":"user-count-desc"}},[t._v(t._s(t.userCount))]),t._v(" "),e("span",{staticClass:"hidden-visually",attrs:{id:"user-count-desc"}},[t._v("\n\t\t\t"+t._s(t.t("settings","Scroll to load more rows"))+"\n\t\t")])])])},[],!1,null,"4ff6ba29",null).exports,pt=r.Ay.extend({name:"UserListHeader",computed:{showConfig(){return this.$store.getters.getShowConfig},settings(){return this.$store.getters.getServerData}},methods:{t:i.Tl}});var gt=n(80665),ht={};ht.styleTagTransform=O(),ht.setAttributes=U(),ht.insert=G().bind(null,"head"),ht.domAPI=k(),ht.insertStyleElement=B(),x()(gt.A,ht),gt.A&>.A.locals&>.A.locals;const mt=(0,F.A)(pt,function(){var t=this,e=t._self._c;return t._self._setupProxy,e("tr",{staticClass:"header"},[e("th",{staticClass:"header__cell header__cell--avatar",attrs:{"data-cy-user-list-header-avatar":"",scope:"col"}},[e("span",{staticClass:"hidden-visually"},[t._v("\n\t\t\t"+t._s(t.t("settings","Avatar"))+"\n\t\t")])]),t._v(" "),e("th",{staticClass:"header__cell header__cell--displayname",attrs:{"data-cy-user-list-header-displayname":"",scope:"col"}},[e("strong",[t._v("\n\t\t\t"+t._s(t.t("settings","Display name"))+"\n\t\t")])]),t._v(" "),e("th",{staticClass:"header__cell header__cell--username",attrs:{"data-cy-user-list-header-username":"",scope:"col"}},[e("span",[t._v("\n\t\t\t"+t._s(t.t("settings","Account name"))+"\n\t\t")])]),t._v(" "),e("th",{staticClass:"header__cell",attrs:{"data-cy-user-list-header-email":"",scope:"col"}},[e("span",[t._v(t._s(t.t("settings","Email")))])]),t._v(" "),e("th",{staticClass:"header__cell header__cell--groups",attrs:{"data-cy-user-list-header-groups":"",scope:"col"}},[e("span",[t._v(t._s(t.t("settings","Groups")))])]),t._v(" "),t.settings.isAdmin||t.settings.isDelegatedAdmin?e("th",{staticClass:"header__cell header__cell--large",attrs:{"data-cy-user-list-header-subadmins":"",scope:"col"}},[e("span",[t._v(t._s(t.t("settings","Group admin for")))])]):t._e(),t._v(" "),e("th",{staticClass:"header__cell",attrs:{"data-cy-user-list-header-quota":"",scope:"col"}},[e("span",[t._v(t._s(t.t("settings","Quota")))])]),t._v(" "),t.showConfig.showLanguages?e("th",{staticClass:"header__cell header__cell--large",attrs:{"data-cy-user-list-header-languages":"",scope:"col"}},[e("span",[t._v(t._s(t.t("settings","Language")))])]):t._e(),t._v(" "),t.showConfig.showUserBackend||t.showConfig.showStoragePath?e("th",{staticClass:"header__cell header__cell--large",attrs:{"data-cy-user-list-header-storage-location":"",scope:"col"}},[t.showConfig.showUserBackend?e("span",[t._v("\n\t\t\t"+t._s(t.t("settings","Account backend"))+"\n\t\t")]):t._e(),t._v(" "),t.showConfig.showStoragePath?e("span",{staticClass:"header__subtitle"},[t._v("\n\t\t\t"+t._s(t.t("settings","Storage location"))+"\n\t\t")]):t._e()]):t._e(),t._v(" "),t.showConfig.showFirstLogin?e("th",{staticClass:"header__cell",attrs:{"data-cy-user-list-header-first-login":"",scope:"col"}},[e("span",[t._v(t._s(t.t("settings","First login")))])]):t._e(),t._v(" "),t.showConfig.showLastLogin?e("th",{staticClass:"header__cell",attrs:{"data-cy-user-list-header-last-login":"",scope:"col"}},[e("span",[t._v(t._s(t.t("settings","Last login")))])]):t._e(),t._v(" "),e("th",{staticClass:"header__cell header__cell--large header__cell--fill",attrs:{"data-cy-user-list-header-manager":"",scope:"col"}},[e("span",[t._v(t._s(t.t("settings","Manager")))])]),t._v(" "),e("th",{staticClass:"header__cell header__cell--actions",attrs:{"data-cy-user-list-header-actions":"",scope:"col"}},[e("span",{staticClass:"hidden-visually"},[t._v("\n\t\t\t"+t._s(t.t("settings","Account actions"))+"\n\t\t")])])])},[],!1,null,"53c64244",null).exports;var Ct=n(21777),ft=n(41944),vt=n(95101),_t=n(20005),wt=n(57505),bt=n(24764);const yt=(0,r.pM)({components:{NcActionButton:wt.A,NcActions:bt.A,NcIconSvgWrapper:A.A},props:{actions:{type:Array,required:!0},disabled:{type:Boolean,required:!0},user:{type:Object,required:!0}},setup:()=>({SvgPencil:''}),computed:{enabledActions(){return this.actions.filter(t=>"function"!=typeof t.enabled||t.enabled(this.user))}},methods:{isSvg:_t.A}}),xt=(0,F.A)(yt,function(){var t=this,e=t._self._c;return t._self._setupProxy,e("NcActions",{attrs:{"aria-label":t.t("settings","Toggle account actions menu"),disabled:t.disabled,inline:1}},[e("NcActionButton",{attrs:{"data-cy-user-list-action-edit":"",disabled:t.disabled},on:{click:function(e){return t.$emit("update:edit",!0)}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("NcIconSvgWrapper",{attrs:{svg:t.SvgPencil,"aria-hidden":"true"}})]},proxy:!0}])},[t._v("\n\t\t"+t._s(t.t("settings","Edit"))+"\n\t\t")]),t._v(" "),t._l(t.enabledActions,function({action:s,icon:n,text:a},i){return e("NcActionButton",{key:i,attrs:{disabled:t.disabled,"aria-label":a,icon:n,"close-after-click":""},on:{click:e=>s(e,{...t.user})},scopedSlots:t._u([t.isSvg(n)?{key:"icon",fn:function(){return[e("NcIconSvgWrapper",{attrs:{svg:n,"aria-hidden":"true"}})]},proxy:!0}:null],null,!0)},[t._v("\n\t\t"+t._s(a)+"\n\t\t")])})],2)},[],!1,null,null,null).exports;var Nt=n(950),kt=n(74715),St=n(61744),Gt=n(78928),Dt=n(86162),Ut=n(57908),Lt=n(64426),Bt=n(59915),It=n(56587),Ot=n(15502),qt=n(71711),Et=n(25878),Ft=n(75017),Tt=n(47611),Mt=n(10363),$t=n(32999),zt=n(48283),Pt=n(54048),Rt=n(8976),Ht=n(27345),Wt=n(86226),Qt=n(49833),jt=n(37024),Vt=n(62306),Kt=n(542),Yt=n(31744),Xt=n(93651),Jt=n(15807),Zt=n(35056),te=n(50017),ee=n(60258),se=n(51122),ne=n(66865),ae=n(17067),ie=n(2302),re=n(52631),oe=n(87450),le=n(24426),ce=n(20948),de=n(69075),ue=n(17671),Ae=n(8852),pe=n(50299),ge=n(90429),he=n(64569),me=n(29982),Ce=n(44025),fe=n(35048),ve=n(48198),_e=n(96573),we=n(20959),be=n(83194),ye=n(91849),xe=n(31241),Ne=n(85646),ke=n(71565),Se=n(11264),Ge=n(17848),De=n(99925),Ue=n(66768),Le=n(16704),Be=n(40020),Ie=n(51550),Oe=n(91624),qe=n(6670),Ee=n(48191),Fe=n(21541),Te=n(56570),Me=n(77128),$e=n(83947),ze=n(371),Pe=n(3274),Re=n(71912),He=n(35290),We=n(1938),Qe=n(1357),je=n(17370),Ve=n(36079),Ke=n(69674),Ye=(n(19051),n(64789),n(52781),n(3168),n(39156)),Xe=n(53160),Je=n(14762),Ze=n(71639),ts=n(72223),es=n(27971),ss=n(25514),ns=n(6330),as=n(88381),is=n(8256),rs=n(64289),os=n(37356),ls=n(8818),cs=n(23610),ds=n(55581),us=(n(94205),n(95462),n(23020),n(53429),n(23739),n(39160),n(29928),n(64660),n(18547),n(42892)),As=n(69885),ps=(n(59656),n(75105),n(92471),n(16406),n(2508));Nt.N,kt.N,St.A,Gt.N,Dt.N,Ut.A,Lt.N,Bt.A,Ot.A,qt.A,Et.N,It.N,Ft.N,Tt.A,Mt.A,$t.N,zt.N,Pt.A,Rt.N,Ht.A,Wt.N,Qt.N,jt.N,Vt.N,Kt.A,Yt.N,Xt.N,Jt.N,Jt.N,Zt.N,te.N,ee.A,se.N,ne.A,ae.N,Ke.N,ie.N,re.N,oe.N,le.N,ce.N,de.N,ue.N,Ae.N,pe.N,ge.N,he.N,me.N,Ce.N,fe.default,ve.A,_e.N,we.N,be.A,ye.N,u.A,xe.N,Ne.N,ke.N,Se.N,Ge.N,De.N,Ue.A,Le.N,Be.N,Ie.N,Oe.N,qe.N,Ee.N,Fe.N,Te.N,Me.N,p.A,Ve.N,$e.A,ze.A,Pe.N,Re.N,He.N,We.N,Qe.N,je.N,Ke.a,Ye.N,Ze.N,Xe.N,ts.N,H.N,es.N,ss.N,ns.N,as.N,Je.N,is.N,rs.N,os.N,ls.N,cs.A,Symbol.toStringTag,us.A,As.A,ps.yw,Symbol.toStringTag;const gs={props:{user:{type:Object,required:!0},settings:{type:Object,default:()=>({})},languages:{type:Array,required:!0},externalActions:{type:Array,default:()=>[]}},setup(t){const{formattedFullTime:e}=(0,ds.m7)(1e3*t.user.firstLoginTimestamp,{relativeTime:!1,format:{timeStyle:"short",dateStyle:"short"}});return{formattedFullTime:e}},computed:{usedQuota(){let t=this.user.quota.quota;return t=t>0?Math.min(100,Math.round(this.user.quota.used/t*100)):95*(1-1/(this.user.quota.used/(10*Math.pow(2,30))+1)),isNaN(t)?0:t},userLanguage(){const t=this.languages[0].languages.concat(this.languages[1].languages).find(t=>t.code===this.user.language);return"object"!=typeof t&&""!==this.user.language?{code:this.user.language,name:this.user.language}:""!==this.user.language&&t},userFirstLogin(){return this.user.firstLoginTimestamp>0?this.formattedFullTime:this.user.firstLoginTimestamp<0?t("settings","Unknown"):t("settings","Never")},userLastLoginTooltip(){return this.user.lastLoginTimestamp>0?OC.Util.formatDate(1e3*this.user.lastLoginTimestamp):""},userLastLogin(){return this.user.lastLoginTimestamp>0?OC.Util.relativeModifiedDate(1e3*this.user.lastLoginTimestamp):t("settings","Never")}}},hs=window.OC.theme.productName,ms={name:"UserRow",components:{NcAvatar:ft.A,NcLoadingIcon:p.A,NcProgressBar:vt.A,UserRowActions:xt},mixins:[gs],props:{user:{type:Object,required:!0},visible:{type:Boolean,required:!0},users:{type:Array,required:!0},quotaOptions:{type:Array,required:!0},languages:{type:Array,required:!0},settings:{type:Object,required:!0},externalActions:{type:Array,default:()=>[]},onEditUser:{type:Function,default:null}},data:()=>({rand:Math.random().toString(36).substring(2),loading:{all:!1,delete:!1,disable:!1,wipe:!1}}),computed:{isObfuscated(){return(0,$.HK)(this.user)},showConfig(){return this.$store.getters.getShowConfig},isLoadingUser(){return this.loading.delete||this.loading.disable||this.loading.wipe},isLoadingField(){return this.loading.delete||this.loading.disable||this.loading.all},uniqueId(){return encodeURIComponent(this.user.id+this.rand)},userGroupsLabels(){const t=this.$store.getters.getGroups;return this.user.groups.map(e=>{const s=t.find(t=>t.id===e);return s?.name??e}).join(", ")},userSubAdminGroupsLabels(){const t=this.$store.getters.getGroups;return(this.user.subadmin??[]).map(e=>{const s=t.find(t=>t.id===e);return s?.name??e}).join(", ")},usedSpace(){return this.user.quota?.used?t("settings","{size} used",{size:(0,M.v7)(this.user.quota?.used)}):t("settings","{size} used",{size:(0,M.v7)(0)})},canEdit(){return(0,Ct.HW)().uid!==this.user.id||this.settings.isAdmin||this.settings.isDelegatedAdmin},userQuota(){let e=this.user.quota?.quota;return"default"===e&&(e=this.settings.defaultQuota,"none"!==e&&(e=(0,M.lT)(e,!0))),"none"===e||-3===e?t("settings","Unlimited"):e>=0?(0,M.v7)(e):(0,M.v7)(0)},userActions(){const e=[{icon:"icon-delete",text:t("settings","Delete account"),action:this.deleteUser},{icon:"icon-delete",text:t("settings","Disconnect all devices and delete local data"),action:this.wipeUserDevices},{icon:this.user.enabled?"icon-close":"icon-add",text:this.user.enabled?t("settings","Disable account"):t("settings","Enable account"),action:this.enableDisableUser}];return null!==this.user.email&&""!==this.user.email&&e.push({icon:"icon-mail",text:t("settings","Resend welcome email"),action:this.sendWelcomeMail}),e.concat(this.externalActions)}},methods:{toggleEdit(){this.onEditUser&&this.onEditUser(this.user)},async wipeUserDevices(){const e=this.user.id;await(0,g.C5)(),OC.dialogs.confirmDestructive(t("settings","In case of lost device or exiting the organization, this can remotely wipe the {productName} data from all devices associated with {userid}. Only works if the devices are connected to the internet.",{userid:e,productName:hs}),t("settings","Remote wipe of devices"),{type:OC.dialogs.YES_NO_BUTTONS,confirm:t("settings","Wipe {userid}'s devices",{userid:e}),confirmClasses:"error",cancel:t("settings","Cancel")},s=>{s&&(this.loading.wipe=!0,this.loading.all=!0,this.$store.dispatch("wipeUserDevices",e).then(()=>(0,c.Te)(t("settings","Wiped {userid}'s devices",{userid:e})),{timeout:2e3}).finally(()=>{this.loading.wipe=!1,this.loading.all=!1}))},!0)},async deleteUser(){const e=this.user.id;await(0,g.C5)(),OC.dialogs.confirmDestructive(t("settings","Fully delete {userid}'s account including all their personal files, app data, etc.",{userid:e}),t("settings","Account deletion"),{type:OC.dialogs.YES_NO_BUTTONS,confirm:t("settings","Delete {userid}'s account",{userid:e}),confirmClasses:"error",cancel:t("settings","Cancel")},t=>{if(t)return this.loading.delete=!0,this.loading.all=!0,this.$store.dispatch("deleteUser",e).then(()=>{this.loading.delete=!1,this.loading.all=!1})},!0)},enableDisableUser(){this.loading.delete=!0,this.loading.all=!0;const t=this.user.id,e=!this.user.enabled;return this.$store.dispatch("enableDisableUser",{userid:t,enabled:e}).then(()=>{this.loading.delete=!1,this.loading.all=!1})},sendWelcomeMail(){this.loading.all=!0,this.$store.dispatch("sendWelcomeMail",this.user.id).then(()=>(0,c.Te)(t("settings","Welcome mail sent!"),{timeout:2e3})).finally(()=>{this.loading.all=!1})}}};var Cs=n(19334),fs={};fs.styleTagTransform=O(),fs.setAttributes=U(),fs.insert=G().bind(null,"head"),fs.domAPI=k(),fs.insertStyleElement=B(),x()(Cs.A,fs),Cs.A&&Cs.A.locals&&Cs.A.locals;const vs=(0,F.A)(ms,function(){var t=this,e=t._self._c;return e("tr",{staticClass:"user-list__row",attrs:{"data-cy-user-row":t.user.id}},[e("td",{staticClass:"row__cell row__cell--avatar",attrs:{"data-cy-user-list-cell-avatar":""}},[t.isLoadingUser?e("NcLoadingIcon",{attrs:{name:t.t("settings","Loading account …"),size:32}}):t.visible?e("NcAvatar",{attrs:{"disable-menu":"","hide-status":"",user:t.user.id}}):t._e()],1),t._v(" "),e("td",{staticClass:"row__cell row__cell--displayname",attrs:{"data-cy-user-list-cell-displayname":""}},[t.isObfuscated?t._e():e("strong",{attrs:{title:t.user.displayname?.length>20?t.user.displayname:null}},[t._v("\n\t\t\t"+t._s(t.user.displayname)+"\n\t\t")])]),t._v(" "),e("td",{staticClass:"row__cell row__cell--username",attrs:{"data-cy-user-list-cell-username":""}},[e("span",{staticClass:"row__subtitle"},[t._v(t._s(t.user.id))])]),t._v(" "),e("td",{staticClass:"row__cell",attrs:{"data-cy-user-list-cell-email":""}},[t.isObfuscated?t._e():e("span",{attrs:{title:t.user.email?.length>20?t.user.email:null}},[t._v("\n\t\t\t"+t._s(t.user.email)+"\n\t\t")])]),t._v(" "),e("td",{staticClass:"row__cell row__cell--groups row__cell--multiline",attrs:{"data-cy-user-list-cell-groups":""}},[t.isObfuscated?t._e():e("span",{attrs:{title:t.userGroupsLabels?.length>40?t.userGroupsLabels:null}},[t._v("\n\t\t\t"+t._s(t.userGroupsLabels)+"\n\t\t")])]),t._v(" "),t.settings.isAdmin||t.settings.isDelegatedAdmin?e("td",{staticClass:"row__cell row__cell--large row__cell--multiline",attrs:{"data-cy-user-list-cell-subadmins":""}},[t.isObfuscated?t._e():e("span",{attrs:{title:t.userSubAdminGroupsLabels?.length>40?t.userSubAdminGroupsLabels:null}},[t._v("\n\t\t\t"+t._s(t.userSubAdminGroupsLabels)+"\n\t\t")])]):t._e(),t._v(" "),e("td",{staticClass:"row__cell",attrs:{"data-cy-user-list-cell-quota":""}},[t.isObfuscated?t._e():[e("span",{attrs:{id:"quota-progress"+t.uniqueId}},[t._v(t._s(t.userQuota)+" ("+t._s(t.usedSpace)+")")]),t._v(" "),e("NcProgressBar",{staticClass:"row__progress",class:{"row__progress--warn":t.usedQuota>80},attrs:{"aria-labelledby":"quota-progress"+t.uniqueId,value:t.usedQuota}})]],2),t._v(" "),t.showConfig.showLanguages?e("td",{staticClass:"row__cell row__cell--large",attrs:{"data-cy-user-list-cell-language":""}},[t.isObfuscated?t._e():e("span",[t._v("\n\t\t\t"+t._s(t.userLanguage.name)+"\n\t\t")])]):t._e(),t._v(" "),t.showConfig.showUserBackend||t.showConfig.showStoragePath?e("td",{staticClass:"row__cell row__cell--large",attrs:{"data-cy-user-list-cell-storage-location":""}},[t.isObfuscated?t._e():[t.showConfig.showUserBackend?e("span",[t._v(t._s(t.user.backend))]):t._e(),t._v(" "),t.showConfig.showStoragePath?e("span",{staticClass:"row__subtitle",attrs:{title:t.user.storageLocation}},[t._v("\n\t\t\t\t"+t._s(t.user.storageLocation)+"\n\t\t\t")]):t._e()]],2):t._e(),t._v(" "),t.showConfig.showFirstLogin?e("td",{staticClass:"row__cell",attrs:{"data-cy-user-list-cell-first-login":""}},[t.isObfuscated?t._e():e("span",[t._v(t._s(t.userFirstLogin))])]):t._e(),t._v(" "),t.showConfig.showLastLogin?e("td",{staticClass:"row__cell",attrs:{title:t.userLastLoginTooltip,"data-cy-user-list-cell-last-login":""}},[t.isObfuscated?t._e():e("span",[t._v(t._s(t.userLastLogin))])]):t._e(),t._v(" "),e("td",{staticClass:"row__cell row__cell--large row__cell--fill",attrs:{"data-cy-user-list-cell-manager":""}},[t.isObfuscated?t._e():e("span",[t._v("\n\t\t\t"+t._s(t.user.manager)+"\n\t\t")])]),t._v(" "),e("td",{staticClass:"row__cell row__cell--actions",attrs:{"data-cy-user-list-cell-actions":""}},[t.visible&&!t.isObfuscated&&t.canEdit&&!t.loading.all?e("UserRowActions",{attrs:{actions:t.userActions,disabled:t.isLoadingField,user:t.user},on:{"update:edit":t.toggleEdit}}):t._e()],1)])},[],!1,null,"32716952",null).exports;var _s=n(57579),ws=n(46855);r.Ay.directive("elementVisibility",_s.Zx);const bs=r.Ay.extend({name:"VirtualList",props:{dataComponent:{type:[Object,Function],required:!0},dataKey:{type:String,required:!0},dataSources:{type:Array,required:!0},itemHeight:{type:Number,required:!0},extraProps:{type:Object,default:()=>({})}},data:()=>({bufferItems:3,index:0,headerHeight:0,tableHeight:0,resizeObserver:null}),computed:{startIndex(){return Math.max(0,this.index-3)},shownItems(){return Math.ceil((this.tableHeight-this.headerHeight)/this.itemHeight)+6},renderedItems(){return this.dataSources.slice(this.startIndex,this.startIndex+this.shownItems)},tbodyStyle(){const t=this.startIndex+this.shownItems>this.dataSources.length,e=this.dataSources.length-this.startIndex-this.shownItems,s=Math.min(this.dataSources.length-this.startIndex,e);return{paddingTop:this.startIndex*this.itemHeight+"px",paddingBottom:t?0:s*this.itemHeight+"px"}}},mounted(){const t=this.$el,e=this.$refs?.tfoot,s=this.$refs?.thead;this.resizeObserver=new ResizeObserver((0,ws.A)(()=>{this.headerHeight=s?.clientHeight??0,this.tableHeight=t?.clientHeight??0,_.A.debug("VirtualList resizeObserver updated"),this.onScroll()},100)),this.resizeObserver.observe(t),this.resizeObserver.observe(e),this.resizeObserver.observe(s),this.$el.addEventListener("scroll",this.onScroll)},beforeDestroy(){this.resizeObserver&&this.resizeObserver.disconnect()},methods:{handleFooterVisibility(t){t&&this.$emit("scroll-end")},onScroll(){this.index=Math.max(0,Math.round(this.$el.scrollTop/this.itemHeight))}}});var ys=n(49808),xs={};xs.styleTagTransform=O(),xs.setAttributes=U(),xs.insert=G().bind(null,"head"),xs.domAPI=k(),xs.insertStyleElement=B(),x()(ys.A,xs),ys.A&&ys.A.locals&&ys.A.locals;const Ns=(0,F.A)(bs,function(){var t=this,e=t._self._c;return t._self._setupProxy,e("table",{staticClass:"user-list"},[t._t("before"),t._v(" "),e("thead",{ref:"thead",staticClass:"user-list__header",attrs:{role:"rowgroup"}},[t._t("header")],2),t._v(" "),e("tbody",{staticClass:"user-list__body",style:t.tbodyStyle},t._l(t.renderedItems,function(s,n){return e(t.dataComponent,t._b({key:s[t.dataKey],tag:"component",attrs:{user:s,visible:(n>=t.bufferItems||t.index<=t.bufferItems)&&n[]}},setup:()=>({mdiAccountGroupOutline:l.dgQ,rowHeight:55,UserRow:vs}),data:()=>({loading:{all:!1,groups:!1,users:!1},newUser:{...ks},editingUser:null,isInitialLoad:!0}),computed:{searchQuery(){return this.$store.getters.getSearchQuery},showConfig(){return this.$store.getters.getShowConfig},settings(){return this.$store.getters.getServerData},style(){return{"--row-height":`${this.rowHeight}px`}},users(){return this.$store.getters.getUsers},filteredUsers(){return"disabled"===this.selectedGroup?this.users.filter(t=>!1===t.enabled):this.users.filter(t=>!1!==t.enabled)},groups(){return this.$store.getters.getSortedGroups.filter(t=>"__nc_internal_recent"!==t.id&&"disabled"!==t.id)},quotaOptions(){const t=this.settings.quotaPreset.reduce((t,e)=>t.concat({id:e,label:e}),[]);return this.settings.allowUnlimitedQuota&&t.unshift($.SA),t.unshift($.MY),t},usersOffset(){return this.$store.getters.getUsersOffset},usersLimit(){return this.$store.getters.getUsersLimit},disabledUsersOffset(){return this.$store.getters.getDisabledUsersOffset},disabledUsersLimit(){return this.$store.getters.getDisabledUsersLimit},usersCount(){return this.users.length},languages(){return[{label:t("settings","Common languages"),languages:this.settings.languages.commonLanguages},{label:t("settings","Other languages"),languages:this.settings.languages.otherLanguages}]}},watch:{async searchQuery(){this.$store.commit("resetUsers"),await this.loadUsers()},async selectedGroup(t){this.isInitialLoad=!0,await this.redirectIfDisabled(),this.$store.commit("resetUsers"),await this.loadUsers(),this.setNewUserDefaultGroup(t)},filteredUsers(t){_.A.debug(`${t.length} filtered user(s)`)}},async created(){await this.loadUsers()},async mounted(){this.settings.canChangePassword||OC.Notification.showTemporary(t("settings","Password change is disabled because the master key is disabled")),this.initForm(),await this.redirectIfDisabled()},methods:{openEditDialog(t){this.editingUser=t},async handleScrollEnd(){await this.loadUsers()},async loadUsers(){this.loading.users=!0;try{"disabled"===this.selectedGroup?await this.$store.dispatch("getDisabledUsers",{offset:this.disabledUsersOffset,limit:this.disabledUsersLimit,search:this.searchQuery}):"__nc_internal_recent"===this.selectedGroup?await this.$store.dispatch("getRecentUsers",{offset:this.usersOffset,limit:this.usersLimit,search:this.searchQuery}):await this.$store.dispatch("getUsers",{offset:this.usersOffset,limit:this.usersLimit,group:this.selectedGroup,search:this.searchQuery}),_.A.debug(`${this.users.length} total user(s) loaded`)}catch(t){_.A.error("Failed to load accounts",{error:t}),(0,c.Qg)("Failed to load accounts")}this.loading.users=!1,this.isInitialLoad=!1},closeDialog(){this.$store.dispatch("setShowConfig",{key:"showNewUserForm",value:!1}),this.resetForm()},resetForm(){Object.assign(this.newUser,{...ks,groups:[],subadminGroups:[]}),this.newUser.groups.splice(0),this.newUser.subadminGroups.splice(0),this.initForm()},initForm(){this.settings.defaultLanguage&&(this.newUser.language.code=this.settings.defaultLanguage),this.setNewUserDefaultGroup(this.selectedGroup),this.loading.all=!1},setNewUserDefaultGroup(t){if(!t&&!this.settings.isAdmin&&!this.settings.isDelegatedAdmin){const t=this.$store.getters.getSubAdminGroups;return void(1===t.length&&(this.newUser.groups=[...t]))}if(t){const e=this.groups.find(e=>e.id===t);if(e)return void(this.newUser.groups=[e])}this.newUser.groups=[]},async redirectIfDisabled(){const t=this.$store.getters.getGroups;"disabled"===this.selectedGroup&&t.findIndex(t=>"disabled"===t.id&&0===t.usercount)>-1&&(this.$router.push({name:"users"}),await this.loadUsers())}}};var Gs=n(79545),Ds={};Ds.styleTagTransform=O(),Ds.setAttributes=U(),Ds.insert=G().bind(null,"head"),Ds.domAPI=k(),Ds.insertStyleElement=B(),x()(Gs.A,Ds),Gs.A&&Gs.A.locals&&Gs.A.locals;const Us=(0,F.A)(Ss,function(){var t=this,e=t._self._c;return e("Fragment",[t.showConfig.showNewUserForm?e("NewUserDialog",{attrs:{loading:t.loading,"new-user":t.newUser,"quota-options":t.quotaOptions},on:{closing:t.closeDialog}}):t._e(),t._v(" "),t.editingUser?e("EditUserDialog",{attrs:{user:t.editingUser,"quota-options":t.quotaOptions},on:{closing:function(e){t.editingUser=null}}}):t._e(),t._v(" "),0===t.filteredUsers.length?e("NcEmptyContent",{staticClass:"empty",attrs:{name:t.isInitialLoad&&t.loading.users?null:t.t("settings","No accounts")},scopedSlots:t._u([{key:"icon",fn:function(){return[t.isInitialLoad&&t.loading.users?e("NcLoadingIcon",{attrs:{name:t.t("settings","Loading accounts …"),size:64}}):e("NcIconSvgWrapper",{attrs:{path:t.mdiAccountGroupOutline,size:64}})]},proxy:!0}],null,!1,1085698719)}):e("VirtualList",{style:t.style,attrs:{"data-component":t.UserRow,"data-sources":t.filteredUsers,"data-key":"id","data-cy-user-list":"","item-height":t.rowHeight,"extra-props":{users:t.users,settings:t.settings,quotaOptions:t.quotaOptions,languages:t.languages,externalActions:t.externalActions,onEditUser:t.openEditDialog}},on:{"scroll-end":t.handleScrollEnd},scopedSlots:t._u([{key:"before",fn:function(){return[e("caption",{staticClass:"hidden-visually"},[t._v("\n\t\t\t\t"+t._s(t.t("settings","List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list."))+"\n\t\t\t")])]},proxy:!0},{key:"header",fn:function(){return[e("UserListHeader")]},proxy:!0},{key:"footer",fn:function(){return[e("UserListFooter",{attrs:{loading:t.loading.users,"filtered-users":t.filteredUsers}})]},proxy:!0}])})],1)},[],!1,null,"a01beafc",null).exports,Ls=(0,r.pM)({name:"UserManagement",components:{NcAppContent:o.A,UserList:Us},data:()=>({externalActions:[]}),computed:{pageHeading(){return null===this.selectedGroupDecoded?(0,i.Tl)("settings","All accounts"):{admin:(0,i.Tl)("settings","Admins"),disabled:(0,i.Tl)("settings","Disabled accounts")}[this.selectedGroupDecoded]??(0,i.Tl)("settings","Account group: {group}",{group:this.selectedGroupDecoded})},selectedGroup(){return this.$route.params.selectedGroup},selectedGroupDecoded(){return this.selectedGroup?decodeURIComponent(this.selectedGroup):null}},beforeMount(){this.$store.dispatch("getPasswordPolicyMinLength")},created(){window.OCA=window.OCA??{},window.OCA.Settings=window.OCA.Settings??{},window.OCA.Settings.UserList=window.OCA.Settings.UserList??{},window.OCA.Settings.UserList.registerAction=this.registerAction,(0,a.Ic)("settings:user-management:loaded")},methods:{t:i.Tl,registerAction(t,e,s,n){return this.externalActions.push({icon:t,text:e,action:s,enabled:n}),this.externalActions}}});var Bs=n(17130),Is={};Is.styleTagTransform=O(),Is.setAttributes=U(),Is.insert=G().bind(null,"head"),Is.domAPI=k(),Is.insertStyleElement=B(),x()(Bs.A,Is),Bs.A&&Bs.A.locals&&Bs.A.locals;const Os=(0,F.A)(Ls,function(){var t=this,e=t._self._c;return t._self._setupProxy,e("NcAppContent",{attrs:{"page-heading":t.pageHeading}},[e("UserList",{attrs:{"selected-group":t.selectedGroupDecoded,"external-actions":t.externalActions}})],1)},[],!1,null,"6c72a095",null).exports},21299(e,s,n){"use strict";n.r(s),n.d(s,{default:()=>bt});var a=n(85471),i=n(9165),r=n(53334),o=n(94205),l=n(46855),c=n(24387),d=n(42530),u=n(52439),A=n(27345),p=n(86226),g=n(74095),h=n(85947),m=n(6695),C=n(16879),f=n(85168),v=n(97786),_=n(54914),w=n(44131),b=n(71711),y=n(48283),x=n(88289),N=n(57505),k=n(83947),S=n(371),G=n(31922),D=n(16502);const U={name:"TrashCanOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}};var L=n(14486);const B=(0,L.A)(U,function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon trash-can-outline-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M9,3V4H4V6H5V19A2,2 0 0,0 7,21H17A2,2 0 0,0 19,19V6H20V4H15V3H9M7,6H17V19H7V6M9,8V17H11V8H9M13,8V17H15V8H13Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])},[],!1,null,null,null).exports,I={name:"GroupListItem",components:{AccountGroup:G.A,Delete:B,Fragment:_.F,NcActionButton:N.A,NcActionInput:w.A,NcAppNavigationItem:u.A,NcButton:g.A,NcCounterBubble:h.A,NcModal:k.A,NcNoteCard:S.A,Pencil:D.A},props:{active:{type:Boolean,required:!0},count:{type:Number,default:null},id:{type:String,required:!0},name:{type:String,required:!0}},data:()=>({loadingRenameGroup:!1,openGroupMenu:!1,showRemoveGroupModal:!1}),computed:{settings(){return this.$store.getters.getServerData}},methods:{handleGroupMenuOpen(){this.openGroupMenu=!0},async renameGroup(t){if(""===t.trim())return;const e=this.$refs.displayNameInput.$el.querySelector('input[type="text"]').value;if(""!==e.trim())try{this.openGroupMenu=!1,this.loadingRenameGroup=!0,await this.$store.dispatch("renameGroup",{groupid:t.trim(),displayName:e.trim()}),this.loadingRenameGroup=!1}catch{this.openGroupMenu=!0,this.loadingRenameGroup=!1}},async removeGroup(){try{await this.$store.dispatch("removeGroup",this.id),this.showRemoveGroupModal=!1}catch{(0,f.Qg)(t("settings",'Failed to delete group "{group}"',{group:this.name}))}}}};var O=n(85072),q=n.n(O),E=n(97825),F=n.n(E),T=n(77659),M=n.n(T),$=n(55056),z=n.n($),P=n(10540),R=n.n(P),H=n(41113),W=n.n(H),Q=n(89984),j={};j.styleTagTransform=W(),j.setAttributes=z(),j.insert=M().bind(null,"head"),j.domAPI=F(),j.insertStyleElement=R(),q()(Q.A,j),Q.A&&Q.A.locals&&Q.A.locals;const V=(0,L.A)(I,function(){var t=this,e=t._self._c;return e("Fragment",[t.showRemoveGroupModal?e("NcModal",{on:{close:function(e){t.showRemoveGroupModal=!1}}},[e("div",{staticClass:"modal__content"},[e("h2",{staticClass:"modal__header"},[t._v("\n\t\t\t\t"+t._s(t.t("settings","Please confirm the group removal"))+"\n\t\t\t")]),t._v(" "),e("NcNoteCard",{attrs:{type:"warning","show-alert":""}},[t._v("\n\t\t\t\t"+t._s(t.t("settings",'You are about to delete the group "{group}". The accounts will NOT be deleted.',{group:t.name}))+"\n\t\t\t")]),t._v(" "),e("div",{staticClass:"modal__button-row"},[e("NcButton",{attrs:{variant:"secondary"},on:{click:function(e){t.showRemoveGroupModal=!1}}},[t._v("\n\t\t\t\t\t"+t._s(t.t("settings","Cancel"))+"\n\t\t\t\t")]),t._v(" "),e("NcButton",{attrs:{variant:"primary"},on:{click:t.removeGroup}},[t._v("\n\t\t\t\t\t"+t._s(t.t("settings","Confirm"))+"\n\t\t\t\t")])],1)],1)]):t._e(),t._v(" "),e("NcAppNavigationItem",{key:t.id,ref:"listItem",attrs:{exact:!0,name:t.name,to:{name:"group",params:{selectedGroup:encodeURIComponent(t.id)}},loading:t.loadingRenameGroup,"menu-open":t.openGroupMenu},on:{"update:menuOpen":t.handleGroupMenuOpen},scopedSlots:t._u([{key:"icon",fn:function(){return[e("AccountGroup",{attrs:{size:20}})]},proxy:!0},{key:"counter",fn:function(){return[t.count?e("NcCounterBubble",{attrs:{type:t.active?"highlighted":void 0}},[t._v("\n\t\t\t\t"+t._s(t.count)+"\n\t\t\t")]):t._e()]},proxy:!0},{key:"actions",fn:function(){return["admin"!==t.id&&"disabled"!==t.id&&(t.settings.isAdmin||t.settings.isDelegatedAdmin)?e("NcActionInput",{ref:"displayNameInput",attrs:{"trailing-button-label":t.t("settings","Submit"),type:"text","model-value":t.name,label:t.t("settings","Rename group")},on:{submit:function(e){return t.renameGroup(t.id)}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("Pencil",{attrs:{size:20}})]},proxy:!0}],null,!1,580569589)}):t._e(),t._v(" "),"admin"!==t.id&&"disabled"!==t.id&&(t.settings.isAdmin||t.settings.isDelegatedAdmin)?e("NcActionButton",{on:{click:function(e){t.showRemoveGroupModal=!0}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("Delete",{attrs:{size:20}})]},proxy:!0}],null,!1,2705356561)},[t._v("\n\t\t\t\t"+t._s(t.t("settings","Delete group"))+"\n\t\t\t")]):t._e()]},proxy:!0}])})],1)},[],!1,null,"30743619",null).exports;function K(t){return void 0===t?null:{id:t.id,title:t.name,usercount:t.usercount??0,count:Math.max(0,(t.usercount??0)-(t.disabled??0))}}function Y(t){const e=(0,a.EW)(()=>t.value.filter(t=>"disabled"!==t.id&&"__nc_internal_recent"!==t.id&&"admin"!==t.id).map(t=>K(t)).filter(t=>null!==t)),s=(0,a.EW)(()=>K(t.value.find(t=>"admin"===t.id))),n=(0,a.EW)(()=>K(t.value.find(t=>"disabled"===t.id)));return{adminGroup:s,recentGroup:(0,a.EW)(()=>K(t.value.find(t=>"__nc_internal_recent"===t.id))),disabledGroup:n,userGroups:e}}var X=n(21106),J=n(19978),Z=n(36347);const tt=(0,a.pM)({__name:"AppNavigationGroupList",setup(t){const e=(0,Z.P)(),s=(0,c.lq)(),n=(0,c.rd)();(0,a.KC)(async()=>{await q()});const o=(0,a.EW)(()=>s.params?.selectedGroup),l=(0,a.EW)(()=>o.value?decodeURIComponent(o.value):null),d=(0,a.EW)(()=>e.getters.getServerData),u=(0,a.EW)(()=>d.value.isAdmin||d.value.isDelegatedAdmin),p=(0,a.EW)(()=>u.value?e.getters.getSortedGroups:e.getters.getSubAdminGroups),{userGroups:g}=Y(p),h=(0,a.KR)(!1),C=(0,a.KR)(!1),N=(0,a.KR)(!1),k=(0,a.KR)(""),S=(0,a.KR)(!1),G=(0,a.KR)(0),D=(0,a.EW)(()=>e.getters.getSearchQuery),U=(0,a.EW)(()=>{if(u.value)return g.value;const t=D.value.toLowerCase();return g.value.filter(e=>-1!==e.id.toLowerCase().search(t)||-1!==e.title.toLowerCase().search(t))}),L=(0,a.KR)([]),B=(0,a.EW)(()=>L.value.findLast(t=>t?.$vnode?.key===g.value?.at(-1)?.id)?.$refs?.listItem?.$el),I=(0,v.ITo)(B);(0,a.wB)(I,async()=>{I.value&&await q()}),(0,a.wB)(D,async()=>{e.commit("resetGroups"),G.value=0,await q()});const O=(0,a.KR)();async function q(){if(u.value){O.value&&O.value.cancel(),S.value=!0;try{O.value=(0,J.N_)({search:D.value,offset:G.value,limit:25});const t=await O.value;t.length>0&&(G.value+=25);for(const s of t)e.commit("addGroup",s)}catch(t){X.A.error((0,r.t)("settings","Failed to load groups"),{error:t})}O.value=void 0,S.value=!1}}return{__sfc:!0,store:e,route:s,router:n,selectedGroup:o,selectedGroupDecoded:l,settings:d,isAdminOrDelegatedAdmin:u,groups:p,userGroups:g,isAddGroupOpen:h,loadingAddGroup:C,hasAddGroupError:N,newGroupName:k,loadingGroups:S,offset:G,groupsSearchQuery:D,filteredGroups:U,groupListItems:L,lastGroupListItem:B,isLastGroupVisible:I,promise:O,loadGroups:q,createGroup:async function(){N.value=!1;const t=k.value.trim();if(""!==t){h.value=!1,C.value=!0;try{await e.dispatch("addGroup",t),await n.push({name:"group",params:{selectedGroup:encodeURIComponent(t)}});const s=L.value.findLast(e=>e?.$vnode?.key===t);s?.$refs?.listItem?.$el?.scrollIntoView({behavior:"smooth",block:"nearest"}),k.value=""}catch{(0,f.Qg)((0,r.t)("settings","Failed to create group"))}C.value=!1}else N.value=!0},mdiAccountGroupOutline:i.dgQ,mdiPlus:i.biz,t:r.t,Fragment:_.F,NcActionInput:w.A,NcActionText:b.A,NcAppNavigationCaption:y.N,NcAppNavigationList:A.A,NcIconSvgWrapper:m.A,NcLoadingIcon:x.A,GroupListItem:V}}}),et=(0,L.A)(tt,function(){var t=this,e=t._self._c,s=t._self._setupProxy;return e(s.Fragment,[e(s.NcAppNavigationCaption,{attrs:{name:s.t("settings","Groups"),disabled:s.loadingAddGroup,"aria-label":s.loadingAddGroup?s.t("settings","Creating group…"):s.t("settings","Create group"),"force-menu":"","is-heading":"",open:s.isAddGroupOpen},on:{"update:open":function(t){s.isAddGroupOpen=t}},scopedSlots:t._u([s.isAdminOrDelegatedAdmin?{key:"actionsTriggerIcon",fn:function(){return[s.loadingAddGroup?e(s.NcLoadingIcon):e(s.NcIconSvgWrapper,{attrs:{path:s.mdiPlus}})]},proxy:!0}:null,s.isAdminOrDelegatedAdmin?{key:"actions",fn:function(){return[e(s.NcActionText,{scopedSlots:t._u([{key:"icon",fn:function(){return[e(s.NcIconSvgWrapper,{attrs:{path:s.mdiAccountGroupOutline}})]},proxy:!0}],null,!1,4071362859)},[t._v("\n\t\t\t\t"+t._s(s.t("settings","Create group"))+"\n\t\t\t")]),t._v(" "),e(s.NcActionInput,{attrs:{label:s.t("settings","Group name"),"data-cy-users-settings-new-group-name":"","label-outside":!1,disabled:s.loadingAddGroup,error:s.hasAddGroupError,"helper-text":s.hasAddGroupError?s.t("settings","Please enter a valid group name"):""},on:{submit:s.createGroup},model:{value:s.newGroupName,callback:function(t){s.newGroupName=t},expression:"newGroupName"}})]},proxy:!0}:null],null,!0)}),t._v(" "),e("p",{staticClass:"hidden-visually",attrs:{id:"group-list-desc"}},[t._v("\n\t\t"+t._s(s.t("settings","List of groups. This list is not fully populated for performance reasons. The groups will be loaded as you navigate or search through the list."))+"\n\t")]),t._v(" "),e(s.NcAppNavigationList,{staticClass:"account-management__group-list",attrs:{"aria-describedby":"group-list-desc","data-cy-users-settings-navigation-groups":"custom"}},[t._l(s.filteredGroups,function(t){return e(s.GroupListItem,{key:t.id,ref:"groupListItems",refInFor:!0,attrs:{id:t.id,active:s.selectedGroupDecoded===t.id,name:t.title,count:t.count}})}),t._v(" "),s.loadingGroups?e("div",{attrs:{role:"note"}},[e(s.NcLoadingIcon,{attrs:{name:s.t("settings","Loading groups…")}})],1):t._e()],2)],1)},[],!1,null,null,null).exports;var st=n(19051),nt=n(35810),at=n(63814),it=n(31744),rt=n(93651),ot=n(15807),lt=n(32073),ct=n(91624),dt=n(6670),ut=n(67607),At=n(54162),pt=n(34954);const gt={name:"UserSettingsDialog",components:{NcAppSettingsDialog:it.N,NcAppSettingsSection:rt.N,NcAppSettingsShortcutsSection:ot.N,NcCheckboxRadioSwitch:lt.A,NcHotkey:ct.N,NcHotkeyList:dt.N,NcNoteCard:S.A,NcSelect:ut.default},props:{open:{type:Boolean,required:!0}},emits:["update:open"],setup(t,{emit:e}){(0,o.C)("?",async()=>{e("update:open",!0),await(0,a.dY)(),document.getElementById("settings-section_keyboard-shortcuts")?.scrollIntoView({behavior:"smooth",inline:"nearest"})},{stop:!0,prevent:!0})},data:()=>({selectedQuota:!1,loadingSendMail:!1}),computed:{groupSorting:{get(){return this.$store.getters.getGroupSorting===At.q.GroupName?"name":"member-count"},set(t){this.$store.commit("setGroupSorting","name"===t?At.q.GroupName:At.q.UserCount)}},isGroupSortingEnforced(){return this.$store.getters.getServerData.forceSortGroupByName},isModalOpen:{get(){return this.open},set(t){this.$emit("update:open",t)}},showConfig(){return this.$store.getters.getShowConfig},settings(){return this.$store.getters.getServerData},showLanguages:{get(){return this.showConfig.showLanguages},set(t){this.setShowConfig("showLanguages",t)}},showFirstLogin:{get(){return this.showConfig.showFirstLogin},set(t){this.setShowConfig("showFirstLogin",t)}},showLastLogin:{get(){return this.showConfig.showLastLogin},set(t){this.setShowConfig("showLastLogin",t)}},showUserBackend:{get(){return this.showConfig.showUserBackend},set(t){this.setShowConfig("showUserBackend",t)}},showStoragePath:{get(){return this.showConfig.showStoragePath},set(t){this.setShowConfig("showStoragePath",t)}},quotaOptions(){const t=this.settings.quotaPreset.reduce((t,e)=>t.concat({id:e,label:e}),[]);return this.settings.allowUnlimitedQuota&&t.unshift(pt.SA),t},defaultQuota:{get(){return!1!==this.selectedQuota?this.selectedQuota:this.settings.defaultQuota!==pt.SA.id&&OC.Util.computerFileSize(this.settings.defaultQuota)>=0?{id:this.settings.defaultQuota,label:this.settings.defaultQuota}:pt.SA},set(t){this.selectedQuota=t}},sendWelcomeMail:{get(){return this.settings.newUserSendEmail},async set(t){try{this.loadingSendMail=!0,this.$store.commit("setServerData",{...this.settings,newUserSendEmail:t}),await st.Ay.post((0,at.Jv)("/settings/users/preferences/newUser.sendEmail"),{value:t?"yes":"no"})}catch(t){X.A.error("Could not update newUser.sendEmail preference",{error:t})}finally{this.loadingSendMail=!1}}}},methods:{filterQuotas(t,e,s){const n=s.toLocaleLowerCase().replaceAll(/\s/g,"");return(e||"").toLocaleLowerCase().replaceAll(/\s/g,"").indexOf(n)>-1},setShowConfig(t,e){this.$store.dispatch("setShowConfig",{key:t,value:e})},validateQuota(t){"object"==typeof t&&(t=t?.id||t.label);const e=(0,nt.lT)(t,!0);return null===e?pt.SA:{id:t=(0,nt.v7)(e),label:t}},setDefaultQuota(t="none"){"none"===t&&(t=pt.SA),this.$store.dispatch("setAppConfig",{app:"files",key:"default_quota",value:t.id?t.id:t}).then(()=>{"object"!=typeof t&&(t={id:t,label:t}),this.defaultQuota=t})}}};var ht=n(82300),mt={};mt.styleTagTransform=W(),mt.setAttributes=z(),mt.insert=M().bind(null,"head"),mt.domAPI=F(),mt.insertStyleElement=R(),q()(ht.A,mt),ht.A&&ht.A.locals&&ht.A.locals;const Ct=(0,L.A)(gt,function(){var t=this,e=t._self._c;return e("NcAppSettingsDialog",{attrs:{open:t.isModalOpen,"show-navigation":!0,name:t.t("settings","Account management settings")},on:{"update:open":function(e){t.isModalOpen=e}}},[e("NcAppSettingsSection",{attrs:{id:"visibility-settings",name:t.t("settings","Visibility")}},[e("NcCheckboxRadioSwitch",{attrs:{type:"switch","data-test":"showLanguages"},model:{value:t.showLanguages,callback:function(e){t.showLanguages=e},expression:"showLanguages"}},[t._v("\n\t\t\t"+t._s(t.t("settings","Show language"))+"\n\t\t")]),t._v(" "),e("NcCheckboxRadioSwitch",{attrs:{type:"switch","data-test":"showUserBackend"},model:{value:t.showUserBackend,callback:function(e){t.showUserBackend=e},expression:"showUserBackend"}},[t._v("\n\t\t\t"+t._s(t.t("settings","Show account backend"))+"\n\t\t")]),t._v(" "),e("NcCheckboxRadioSwitch",{attrs:{type:"switch","data-test":"showStoragePath"},model:{value:t.showStoragePath,callback:function(e){t.showStoragePath=e},expression:"showStoragePath"}},[t._v("\n\t\t\t"+t._s(t.t("settings","Show storage path"))+"\n\t\t")]),t._v(" "),e("NcCheckboxRadioSwitch",{attrs:{type:"switch","data-test":"showFirstLogin"},model:{value:t.showFirstLogin,callback:function(e){t.showFirstLogin=e},expression:"showFirstLogin"}},[t._v("\n\t\t\t"+t._s(t.t("settings","Show first login"))+"\n\t\t")]),t._v(" "),e("NcCheckboxRadioSwitch",{attrs:{type:"switch","data-test":"showLastLogin"},model:{value:t.showLastLogin,callback:function(e){t.showLastLogin=e},expression:"showLastLogin"}},[t._v("\n\t\t\t"+t._s(t.t("settings","Show last login"))+"\n\t\t")])],1),t._v(" "),e("NcAppSettingsSection",{attrs:{id:"groups-sorting",name:t.t("settings","Sorting")}},[t.isGroupSortingEnforced?e("NcNoteCard",{attrs:{type:"warning"}},[t._v("\n\t\t\t"+t._s(t.t("settings","The system config enforces sorting the groups by name. This also disables showing the member count."))+"\n\t\t")]):t._e(),t._v(" "),e("fieldset",[e("legend",[t._v(t._s(t.t("settings","Group list sorting")))]),t._v(" "),e("NcNoteCard",{staticClass:"dialog__note",attrs:{type:"info",text:t.t("settings","Sorting only applies to the currently loaded groups for performance reasons. Groups will be loaded as you navigate or search through the list.")}}),t._v(" "),e("NcCheckboxRadioSwitch",{attrs:{type:"radio","data-test":"sortGroupsByMemberCount",disabled:t.isGroupSortingEnforced,name:"group-sorting-mode",value:"member-count"},model:{value:t.groupSorting,callback:function(e){t.groupSorting=e},expression:"groupSorting"}},[t._v("\n\t\t\t\t"+t._s(t.t("settings","By member count"))+"\n\t\t\t")]),t._v(" "),e("NcCheckboxRadioSwitch",{attrs:{type:"radio","data-test":"sortGroupsByName",disabled:t.isGroupSortingEnforced,name:"group-sorting-mode",value:"name"},model:{value:t.groupSorting,callback:function(e){t.groupSorting=e},expression:"groupSorting"}},[t._v("\n\t\t\t\t"+t._s(t.t("settings","By name"))+"\n\t\t\t")])],1)],1),t._v(" "),e("NcAppSettingsSection",{attrs:{id:"email-settings",name:t.t("settings","Send email")}},[e("NcCheckboxRadioSwitch",{attrs:{type:"switch","data-test":"sendWelcomeMail",disabled:t.loadingSendMail},model:{value:t.sendWelcomeMail,callback:function(e){t.sendWelcomeMail=e},expression:"sendWelcomeMail"}},[t._v("\n\t\t\t"+t._s(t.t("settings","Send welcome email to new accounts"))+"\n\t\t")])],1),t._v(" "),e("NcAppSettingsSection",{attrs:{id:"default-settings",name:t.t("settings","Defaults")}},[e("NcSelect",{attrs:{clearable:!1,"create-option":t.validateQuota,"filter-by":t.filterQuotas,"input-label":t.t("settings","Default quota"),options:t.quotaOptions,placement:"top",placeholder:t.t("settings","Select default quota"),taggable:""},on:{"option:selected":t.setDefaultQuota},model:{value:t.defaultQuota,callback:function(e){t.defaultQuota=e},expression:"defaultQuota"}})],1),t._v(" "),e("NcAppSettingsShortcutsSection",[e("NcHotkeyList",{attrs:{label:t.t("settings","Search")}},[e("NcHotkey",{attrs:{label:t.t("settings","Focus search"),hotkey:"Control F"}})],1),t._v(" "),e("NcHotkeyList",{attrs:{label:t.t("settings","Help")}},[e("NcHotkey",{attrs:{label:t.t("settings","Show those shortcuts"),hotkey:"?"}})],1)],1)],1)},[],!1,null,"649c1de8",null).exports,ft=(0,a.pM)({__name:"UserManagementNavigation",setup(t){const e=(0,c.lq)(),s=(0,Z.P)(),n=(0,a.KR)(),f=(0,a.KR)(""),v=(0,l.A)(t=>{s.commit("setSearchQuery",t)},300);(0,a.wB)(f,t=>v(t)),(0,a.xo)(()=>v.clear()),(0,o.C)("f",()=>n.value?.focus(),{ctrl:!0,stop:!0,prevent:!0});const _=(0,a.KR)(!1),w=(0,a.EW)(()=>e.params?.selectedGroup),b=(0,a.EW)(()=>w.value?decodeURIComponent(w.value):null),y=(0,a.EW)(()=>s.getters.getUserCount),x=(0,a.EW)(()=>s.getters.getSortedGroups),{adminGroup:N,recentGroup:k,disabledGroup:S}=Y(x),G=(0,a.EW)(()=>s.getters.getServerData),D=(0,a.EW)(()=>G.value.isAdmin||G.value.isDelegatedAdmin);return{__sfc:!0,route:e,store:s,searchField:n,searchInput:f,commitSearch:v,clearSearch:function(){v.clear(),f.value="",s.commit("setSearchQuery","")},isDialogOpen:_,selectedGroup:w,selectedGroupDecoded:b,userCount:y,groups:x,adminGroup:N,recentGroup:k,disabledGroup:S,settings:G,isAdminOrDelegatedAdmin:D,showNewUserMenu:function(){s.dispatch("setShowConfig",{key:"showNewUserForm",value:!0})},mdiAccountOffOutline:i.Zfz,mdiAccountOutline:i.EzL,mdiClose:i.hyP,mdiCogOutline:i.ED,mdiHistory:i.LP2,mdiMagnify:i.U4M,mdiPlus:i.biz,mdiShieldAccountOutline:i.J0H,t:r.Tl,NcAppNavigation:d.A,NcAppNavigationItem:u.A,NcAppNavigationList:A.A,NcAppNavigationNew:p.N,NcButton:g.A,NcCounterBubble:h.A,NcIconSvgWrapper:m.A,NcInputField:C.A,AppNavigationGroupList:et,UserSettingsDialog:Ct}}});var vt=n(48500),_t={};_t.styleTagTransform=W(),_t.setAttributes=z(),_t.insert=M().bind(null,"head"),_t.domAPI=F(),_t.insertStyleElement=R(),q()(vt.A,_t),vt.A&&vt.A.locals&&vt.A.locals;var wt=(0,L.A)(ft,function(){var t=this,e=t._self._c,s=t._self._setupProxy;return e(s.NcAppNavigation,{staticClass:"account-management__navigation",attrs:{"aria-label":s.t("settings","Account management")},scopedSlots:t._u([{key:"footer",fn:function(){return[e(s.NcButton,{staticClass:"account-management__settings-toggle",attrs:{variant:"tertiary"},on:{click:function(t){s.isDialogOpen=!0}},scopedSlots:t._u([{key:"icon",fn:function(){return[e(s.NcIconSvgWrapper,{attrs:{path:s.mdiCogOutline}})]},proxy:!0}])},[t._v("\n\t\t\t"+t._s(s.t("settings","Account management settings"))+"\n\t\t")]),t._v(" "),e(s.UserSettingsDialog,{attrs:{open:s.isDialogOpen},on:{"update:open":function(t){s.isDialogOpen=t}}})]},proxy:!0}])},[e(s.NcAppNavigationNew,{attrs:{"button-id":"new-user-button",text:s.t("settings","New account")},on:{click:s.showNewUserMenu,keyup:[function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:s.showNewUserMenu.apply(null,arguments)},function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"space",32,e.key,[" ","Spacebar"])?null:s.showNewUserMenu.apply(null,arguments)}]},scopedSlots:t._u([{key:"icon",fn:function(){return[e(s.NcIconSvgWrapper,{attrs:{path:s.mdiPlus}})]},proxy:!0}])}),t._v(" "),e("div",{staticClass:"account-management__search",attrs:{role:"search","aria-label":s.t("settings","Search accounts and groups")}},[e(s.NcInputField,{ref:"searchField",attrs:{label:s.t("settings","Search accounts and groups…"),"show-trailing-button":""!==s.searchInput,trailingButtonLabel:s.t("settings","Clear search")},on:{"trailing-button-click":s.clearSearch},scopedSlots:t._u([{key:"icon",fn:function(){return[e(s.NcIconSvgWrapper,{attrs:{path:s.mdiMagnify}})]},proxy:!0},{key:"trailing-button-icon",fn:function(){return[e(s.NcIconSvgWrapper,{attrs:{path:s.mdiClose}})]},proxy:!0}]),model:{value:s.searchInput,callback:function(t){s.searchInput=t},expression:"searchInput"}})],1),t._v(" "),e(s.NcAppNavigationList,{staticClass:"account-management__system-list",attrs:{"data-cy-users-settings-navigation-groups":"system"}},[e(s.NcAppNavigationItem,{attrs:{id:"everyone",exact:!0,name:s.t("settings","All accounts"),to:{name:"users"}},scopedSlots:t._u([{key:"icon",fn:function(){return[e(s.NcIconSvgWrapper,{attrs:{path:s.mdiAccountOutline}})]},proxy:!0},{key:"counter",fn:function(){return[s.userCount?e(s.NcCounterBubble,{attrs:{type:s.selectedGroupDecoded?void 0:"highlighted"}},[t._v("\n\t\t\t\t\t"+t._s(s.userCount)+"\n\t\t\t\t")]):t._e()]},proxy:!0}])}),t._v(" "),s.settings.isAdmin?e(s.NcAppNavigationItem,{attrs:{id:"admin",exact:!0,name:s.t("settings","Admins"),to:{name:"group",params:{selectedGroup:"admin"}}},scopedSlots:t._u([{key:"icon",fn:function(){return[e(s.NcIconSvgWrapper,{attrs:{path:s.mdiShieldAccountOutline}})]},proxy:!0},{key:"counter",fn:function(){return[s.adminGroup&&s.adminGroup.count>0?e(s.NcCounterBubble,{attrs:{type:"admin"===s.selectedGroupDecoded?"highlighted":void 0}},[t._v("\n\t\t\t\t\t"+t._s(s.adminGroup.count)+"\n\t\t\t\t")]):t._e()]},proxy:!0}],null,!1,3779933833)}):t._e(),t._v(" "),s.isAdminOrDelegatedAdmin?e(s.NcAppNavigationItem,{attrs:{id:"recent",exact:!0,name:s.t("settings","Recently active"),to:{name:"group",params:{selectedGroup:"__nc_internal_recent"}}},scopedSlots:t._u([{key:"icon",fn:function(){return[e(s.NcIconSvgWrapper,{attrs:{path:s.mdiHistory}})]},proxy:!0},{key:"counter",fn:function(){return[s.recentGroup?.usercount?e(s.NcCounterBubble,{attrs:{type:"__nc_internal_recent"===s.selectedGroupDecoded?"highlighted":void 0}},[t._v("\n\t\t\t\t\t"+t._s(s.recentGroup.usercount)+"\n\t\t\t\t")]):t._e()]},proxy:!0}],null,!1,2299424282)}):t._e(),t._v(" "),s.disabledGroup&&(s.disabledGroup.usercount>0||-1===s.disabledGroup.usercount)?e(s.NcAppNavigationItem,{attrs:{id:"disabled",exact:!0,name:s.t("settings","Disabled accounts"),to:{name:"group",params:{selectedGroup:"disabled"}}},scopedSlots:t._u([{key:"icon",fn:function(){return[e(s.NcIconSvgWrapper,{attrs:{path:s.mdiAccountOffOutline}})]},proxy:!0},s.disabledGroup.usercount>0?{key:"counter",fn:function(){return[e(s.NcCounterBubble,{attrs:{type:"disabled"===s.selectedGroupDecoded?"highlighted":void 0}},[t._v("\n\t\t\t\t\t"+t._s(s.disabledGroup.usercount)+"\n\t\t\t\t")])]},proxy:!0}:null],null,!0)}):t._e()],1),t._v(" "),e(s.AppNavigationGroupList)],1)},[],!1,null,"0567bb0c",null);const bt=wt.exports},27518(t){"use strict";t.exports="data:image/svg+xml,%3c%21--%20-%20SPDX-FileCopyrightText:%202020%20Google%20Inc.%20-%20SPDX-License-Identifier:%20Apache-2.0%20--%3e%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M15.4%2016.6L10.8%2012l4.6-4.6L14%206l-6%206%206%206%201.4-1.4z%27/%3e%3c/svg%3e"},27514(t){"use strict";t.exports="data:image/svg+xml,%3c%21--%20-%20SPDX-FileCopyrightText:%202020%20Google%20Inc.%20-%20SPDX-License-Identifier:%20Apache-2.0%20--%3e%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M18.4%207.4L17%206l-6%206%206%206%201.4-1.4-4.6-4.6%204.6-4.6m-6%200L11%206l-6%206%206%206%201.4-1.4L7.8%2012l4.6-4.6z%27/%3e%3c/svg%3e"},79722(t){"use strict";t.exports="data:image/svg+xml,%3c%21--%20-%20SPDX-FileCopyrightText:%202020%20Google%20Inc.%20-%20SPDX-License-Identifier:%20Apache-2.0%20--%3e%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M5.6%207.4L7%206l6%206-6%206-1.4-1.4%204.6-4.6-4.6-4.6m6%200L13%206l6%206-6%206-1.4-1.4%204.6-4.6-4.6-4.6z%27/%3e%3c/svg%3e"},64505(t){"use strict";t.exports="data:image/svg+xml,%3c%21--%20-%20SPDX-FileCopyrightText:%202020%20Google%20Inc.%20-%20SPDX-License-Identifier:%20Apache-2.0%20--%3e%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M8.6%2016.6l4.6-4.6-4.6-4.6L10%206l6%206-6%206-1.4-1.4z%27/%3e%3c/svg%3e"},63779(){},77199(){},85947(t,e,s){"use strict";s.d(e,{A:()=>n.N});var n=s(90429)}}]); -//# sourceMappingURL=settings-users-3239.js.map?v=03614376e6f20a249e06 \ No newline at end of file +(globalThis.webpackChunknextcloud_ui_legacy=globalThis.webpackChunknextcloud_ui_legacy||[]).push([[3239,7471],{19978(t,e,s){"use strict";s.d(e,{N_:()=>o});var n=s(19051),a=s(63814),i=s(36117);function r(t){return{id:t.id,name:t.displayname,usercount:t.usercount,disabled:t.disabled,canAdd:t.canAdd,canRemove:t.canRemove}}function o({search:t,offset:e,limit:s}){const o=new AbortController;return new i.CancelablePromise(async(i,l,c)=>{c(()=>o.abort());try{const{data:l}=await n.Ay.get((0,a.KT)("/cloud/groups/details?search={search}&offset={offset}&limit={limit}",{search:t,offset:e,limit:s}),{signal:o.signal});i((l.ocs?.data?.groups??[]).map(r))}catch(t){l(t)}})}},34954(t,e,s){"use strict";s.d(e,{HK:()=>r,MY:()=>i,SA:()=>a});var n=s(53334);const a={id:"none",label:(0,n.Tl)("settings","Unlimited")},i={id:"default",label:(0,n.Tl)("settings","Default quota")};function r(t){const e=Object.keys(t);return 1===e.length&&"id"===e.at(0)}},89984(t,e,s){"use strict";s.d(e,{A:()=>o});var n=s(71354),a=s.n(n),i=s(76314),r=s.n(i)()(a());r.push([t.id,".modal__header[data-v-30743619]{margin:0}.modal__content[data-v-30743619]{display:flex;flex-direction:column;align-items:center;padding:20px;gap:4px 0}.modal__button-row[data-v-30743619]{display:flex;width:100%;justify-content:space-between}","",{version:3,sources:["webpack://./apps/settings/src/components/GroupListItem.vue"],names:[],mappings:"AAEC,gCACC,QAAA,CAGD,iCACC,YAAA,CACA,qBAAA,CACA,kBAAA,CACA,YAAA,CACA,SAAA,CAGD,oCACC,YAAA,CACA,UAAA,CACA,6BAAA",sourcesContent:["\n.modal {\n\t&__header {\n\t\tmargin: 0;\n\t}\n\n\t&__content {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\talign-items: center;\n\t\tpadding: 20px;\n\t\tgap: 4px 0;\n\t}\n\n\t&__button-row {\n\t\tdisplay: flex;\n\t\twidth: 100%;\n\t\tjustify-content: space-between;\n\t}\n}\n"],sourceRoot:""}]);const o=r},96562(t,e,s){"use strict";s.d(e,{A:()=>o});var n=s(71354),a=s.n(n),i=s(76314),r=s.n(i)()(a());r.push([t.id,".empty[data-v-989d7232] .icon-vue{width:64px;height:64px}.empty[data-v-989d7232] .icon-vue svg{max-width:64px;max-height:64px}","",{version:3,sources:["webpack://./apps/settings/src/components/UserList.vue"],names:[],mappings:"AAKE,kCACC,UAAA,CACA,WAAA,CAEA,sCACC,cAAA,CACA,eAAA",sourcesContent:["\n@use './Users/shared/styles.scss' as *;\n\n.empty {\n\t:deep {\n\t\t.icon-vue {\n\t\t\twidth: 64px;\n\t\t\theight: 64px;\n\n\t\t\tsvg {\n\t\t\t\tmax-width: 64px;\n\t\t\t\tmax-height: 64px;\n\t\t\t}\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const o=r},77739(t,e,s){"use strict";s.d(e,{A:()=>o});var n=s(71354),a=s.n(n),i=s(76314),r=s.n(i)()(a());r.push([t.id,".edit-dialog[data-v-2a263a52] .dialog__actions{margin-block-start:calc(var(--default-grid-baseline, 4px)*3)}","",{version:3,sources:["webpack://./apps/settings/src/components/Users/EditUserDialog.vue"],names:[],mappings:"AAEC,+CACC,4DAAA",sourcesContent:["\n.edit-dialog {\n\t:deep(.dialog__actions) {\n\t\tmargin-block-start: calc(var(--default-grid-baseline, 4px) * 3);\n\t}\n}\n"],sourceRoot:""}]);const o=r},16696(t,e,s){"use strict";s.d(e,{A:()=>o});var n=s(71354),a=s.n(n),i=s(76314),r=s.n(i)()(a());r.push([t.id,".dialog[data-v-32af3da3] .dialog__actions{margin-block-start:calc(var(--default-grid-baseline, 4px)*3)}","",{version:3,sources:["webpack://./apps/settings/src/components/Users/NewUserDialog.vue"],names:[],mappings:"AAEC,0CACC,4DAAA",sourcesContent:["\n.dialog {\n\t:deep(.dialog__actions) {\n\t\tmargin-block-start: calc(var(--default-grid-baseline, 4px) * 3);\n\t}\n}\n"],sourceRoot:""}]);const o=r},42568(t,e,s){"use strict";s.d(e,{A:()=>o});var n=s(71354),a=s.n(n),i=s(76314),r=s.n(i)()(a());r.push([t.id,".user-form-fields[data-v-0d9243e9]{display:flex;flex-direction:column;align-items:center;gap:calc(var(--default-grid-baseline, 4px)*2) 0}.user-form-fields__item[data-v-0d9243e9]{width:100%}.user-form-fields__item[data-v-0d9243e9]:not(:focus):not(:active){border-color:var(--color-border-dark)}.user-form-fields__static[data-v-0d9243e9]{display:flex;flex-direction:column;justify-content:center;min-height:var(--default-clickable-area, 44px);padding:var(--border-width-input-focused, 2px);padding-inline:calc(var(--border-radius-element, 8px) + var(--border-width-input-focused, 2px));margin-left:18px}.user-form-fields__static-label[data-v-0d9243e9]{font-size:var(--font-size-small, 13px);font-weight:500;line-height:1.5;color:var(--color-text-maxcontrast)}.user-form-fields__static-value[data-v-0d9243e9]{font-size:var(--default-font-size, 14px);line-height:1.5;color:var(--color-main-text)}.user-form-fields__hint[data-v-0d9243e9]{color:var(--color-text-maxcontrast);margin-block-start:calc(var(--default-grid-baseline, 4px)*2);align-self:flex-start}.user-form-fields[data-v-0d9243e9] .user-form__item{width:100%}.user-form-fields[data-v-0d9243e9] .user-form__select{width:100%}.user-form-fields__error-summary[data-v-0d9243e9]{width:100%;margin-block-start:calc(var(--default-grid-baseline, 4px)*2);color:var(--color-error);font-size:var(--default-font-size, 14px)}.user-form-fields__error-summary p[data-v-0d9243e9]{margin-block:calc(var(--default-grid-baseline, 4px)/2)}","",{version:3,sources:["webpack://./apps/settings/src/components/Users/UserFormFields.vue"],names:[],mappings:"AACA,mCACC,YAAA,CACA,qBAAA,CACA,kBAAA,CACA,+CAAA,CAEA,yCACC,UAAA,CAEA,kEACC,qCAAA,CAIF,2CACC,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,8CAAA,CACA,8CAAA,CACA,+FAAA,CAIA,gBAAA,CAEA,iDACC,sCAAA,CACA,eAAA,CACA,eAAA,CACA,mCAAA,CAGD,iDACC,wCAAA,CACA,eAAA,CACA,4BAAA,CAIF,yCACC,mCAAA,CACA,4DAAA,CACA,qBAAA,CAID,oDACC,UAAA,CAGD,sDACC,UAAA,CAGD,kDACC,UAAA,CACA,4DAAA,CACA,wBAAA,CACA,wCAAA,CAEA,oDACC,sDAAA",sourcesContent:["\n.user-form-fields {\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n\tgap: calc(var(--default-grid-baseline, 4px) * 2) 0;\n\n\t&__item {\n\t\twidth: 100%;\n\n\t\t&:not(:focus):not(:active) {\n\t\t\tborder-color: var(--color-border-dark);\n\t\t}\n\t}\n\n\t&__static {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tjustify-content: center;\n\t\tmin-height: var(--default-clickable-area, 44px);\n\t\tpadding: var(--border-width-input-focused, 2px);\n\t\tpadding-inline: calc(var(--border-radius-element, 8px) + var(--border-width-input-focused, 2px));\n\n\t\t// Manually align static value with inputs below until we have a static field in component lib.\n\t\t// See: https://github.com/nextcloud/server/issues/53862#issuecomment-4212613996\n\t\tmargin-left: 18px;\n\n\t\t&-label {\n\t\t\tfont-size: var(--font-size-small, 13px);\n\t\t\tfont-weight: 500;\n\t\t\tline-height: 1.5;\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t}\n\n\t\t&-value {\n\t\t\tfont-size: var(--default-font-size, 14px);\n\t\t\tline-height: 1.5;\n\t\t\tcolor: var(--color-main-text);\n\t\t}\n\t}\n\n\t&__hint {\n\t\tcolor: var(--color-text-maxcontrast);\n\t\tmargin-block-start: calc(var(--default-grid-baseline, 4px) * 2);\n\t\talign-self: flex-start;\n\t}\n\n\t// Reach into sub-component root elements to apply consistent sizing\n\t:deep(.user-form__item) {\n\t\twidth: 100%;\n\t}\n\n\t:deep(.user-form__select) {\n\t\twidth: 100%;\n\t}\n\n\t&__error-summary {\n\t\twidth: 100%;\n\t\tmargin-block-start: calc(var(--default-grid-baseline, 4px) * 2);\n\t\tcolor: var(--color-error);\n\t\tfont-size: var(--default-font-size, 14px);\n\n\t\tp {\n\t\t\tmargin-block: calc(var(--default-grid-baseline, 4px) / 2);\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const o=r},13033(t,e,s){"use strict";s.d(e,{A:()=>o});var n=s(71354),a=s.n(n),i=s(76314),r=s.n(i)()(a());r.push([t.id,".user-form-groups[data-v-4041cacf]{display:flex;flex-direction:column;gap:calc(var(--default-grid-baseline, 4px)*2) 0;width:100%}.user-form__item[data-v-4041cacf]{width:100%}.user-form__select[data-v-4041cacf]{width:100%}","",{version:3,sources:["webpack://./apps/settings/src/components/Users/UserFormGroups.vue"],names:[],mappings:"AACA,mCACC,YAAA,CACA,qBAAA,CACA,+CAAA,CACA,UAAA,CAGD,kCACC,UAAA,CAGD,oCACC,UAAA",sourcesContent:["\n.user-form-groups {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: calc(var(--default-grid-baseline, 4px) * 2) 0;\n\twidth: 100%;\n}\n\n.user-form__item {\n\twidth: 100%;\n}\n\n.user-form__select {\n\twidth: 100%;\n}\n"],sourceRoot:""}]);const o=r},16898(t,e,s){"use strict";s.d(e,{A:()=>o});var n=s(71354),a=s.n(n),i=s(76314),r=s.n(i)()(a());r.push([t.id,".footer[data-v-4ff6ba29]{position:relative;display:flex;min-width:100%;width:fit-content;height:var(--row-height);background-color:var(--color-main-background)}.footer__cell[data-v-4ff6ba29]{display:flex;flex-direction:column;justify-content:center;padding:0 var(--cell-padding);min-width:var(--cell-width);width:var(--cell-width);color:var(--color-main-text)}.footer__cell strong[data-v-4ff6ba29],.footer__cell span[data-v-4ff6ba29],.footer__cell label[data-v-4ff6ba29]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;overflow-wrap:anywhere}@media(min-width: 670px){.footer__cell--avatar[data-v-4ff6ba29],.footer__cell--displayname[data-v-4ff6ba29]{position:sticky;z-index:var(--sticky-column-z-index);background-color:var(--color-main-background)}.footer__cell--avatar[data-v-4ff6ba29]{inset-inline-start:0}.footer__cell--displayname[data-v-4ff6ba29]{inset-inline-start:var(--avatar-cell-width);border-inline-end:1px solid var(--color-border)}}.footer__cell--username[data-v-4ff6ba29]{padding-inline-start:calc(var(--default-grid-baseline)*3)}.footer__cell--avatar[data-v-4ff6ba29]{min-width:var(--avatar-cell-width);width:var(--avatar-cell-width);align-items:center;padding:0;user-select:none}.footer__cell--multiline span[data-v-4ff6ba29]{line-height:1.3em;white-space:unset}@supports(-webkit-line-clamp: 2){.footer__cell--multiline span[data-v-4ff6ba29]{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.footer__cell--large[data-v-4ff6ba29]{min-width:var(--cell-width-large);width:var(--cell-width-large)}.footer__cell--groups[data-v-4ff6ba29]{min-width:var(--cell-width-groups);width:var(--cell-width-groups)}.footer__cell--obfuscated[data-v-4ff6ba29]{min-width:400px;width:400px}.footer__cell--fill[data-v-4ff6ba29]{min-width:var(--cell-width-large);width:100%}.footer__cell--actions[data-v-4ff6ba29]{position:sticky;inset-inline-end:0;z-index:var(--sticky-column-z-index);display:flex;flex-direction:row;align-items:center;min-width:110px;width:110px;background-color:var(--color-main-background);border-inline-start:1px solid var(--color-border)}.footer__subtitle[data-v-4ff6ba29]{color:var(--color-text-maxcontrast)}.footer__cell[data-v-4ff6ba29]{position:sticky;color:var(--color-text-maxcontrast)}.footer__cell--loading[data-v-4ff6ba29]{inset-inline-start:0;min-width:var(--avatar-cell-width);width:var(--avatar-cell-width);align-items:center;padding:0}.footer__cell--count[data-v-4ff6ba29]{inset-inline-start:var(--avatar-cell-width);min-width:var(--cell-width);width:var(--cell-width)}","",{version:3,sources:["webpack://./apps/settings/src/components/Users/UserListFooter.vue","webpack://./apps/settings/src/components/Users/shared/styles.scss"],names:[],mappings:"AAGA,yBCGC,iBAAA,CACA,YAAA,CACA,cAAA,CACA,iBAAA,CACA,wBAAA,CACA,6CAAA,CAIA,+BACC,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,6BAAA,CACA,2BAAA,CACA,uBAAA,CACA,4BAAA,CAEA,+GAGC,eAAA,CACA,sBAAA,CACA,kBAAA,CACA,sBAAA,CAGD,yBACC,mFAEC,eAAA,CACA,oCAAA,CACA,6CAAA,CAGD,uCACC,oBAAA,CAGD,4CACC,2CAAA,CACA,+CAAA,CAAA,CAIF,yCACC,yDAAA,CAGD,uCACC,kCAAA,CACA,8BAAA,CACA,kBAAA,CACA,SAAA,CACA,gBAAA,CAIA,+CACC,iBAAA,CACA,iBAAA,CAEA,iCAJD,+CAKE,mBAAA,CACA,oBAAA,CACA,2BAAA,CAAA,CAKH,sCACC,iCAAA,CACA,6BAAA,CAGD,uCACC,kCAAA,CACA,8BAAA,CAGD,2CACC,eAAA,CACA,WAAA,CAID,qCACC,iCAAA,CACA,UAAA,CAGD,wCACC,eAAA,CACA,kBAAA,CACA,oCAAA,CACA,YAAA,CACA,kBAAA,CACA,kBAAA,CACA,eAAA,CACA,WAAA,CACA,6CAAA,CACA,iDAAA,CAIF,mCACC,mCAAA,CDzGD,+BACC,eAAA,CACA,mCAAA,CAEA,wCACC,oBAAA,CACA,kCAAA,CACA,8BAAA,CACA,kBAAA,CACA,SAAA,CAGD,sCACC,2CAAA,CACA,2BAAA,CACA,uBAAA",sourcesContent:["\n@use './shared/styles.scss';\n\n.footer {\n\t@include styles.row;\n\t@include styles.cell;\n\n\t&__cell {\n\t\tposition: sticky;\n\t\tcolor: var(--color-text-maxcontrast);\n\n\t\t&--loading {\n\t\t\tinset-inline-start: 0;\n\t\t\tmin-width: var(--avatar-cell-width);\n\t\t\twidth: var(--avatar-cell-width);\n\t\t\talign-items: center;\n\t\t\tpadding: 0;\n\t\t}\n\n\t\t&--count {\n\t\t\tinset-inline-start: var(--avatar-cell-width);\n\t\t\tmin-width: var(--cell-width);\n\t\t\twidth: var(--cell-width);\n\t\t}\n\t}\n}\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n@mixin row {\n\tposition: relative;\n\tdisplay: flex;\n\tmin-width: 100%;\n\twidth: fit-content;\n\theight: var(--row-height);\n\tbackground-color: var(--color-main-background);\n}\n\n@mixin cell {\n\t&__cell {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tjustify-content: center;\n\t\tpadding: 0 var(--cell-padding);\n\t\tmin-width: var(--cell-width);\n\t\twidth: var(--cell-width);\n\t\tcolor: var(--color-main-text);\n\n\t\tstrong,\n\t\tspan,\n\t\tlabel {\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t\twhite-space: nowrap;\n\t\t\toverflow-wrap: anywhere;\n\t\t}\n\n\t\t@media (min-width: 670px) { /* Show one &--large column between stickied columns */\n\t\t\t&--avatar,\n\t\t\t&--displayname {\n\t\t\t\tposition: sticky;\n\t\t\t\tz-index: var(--sticky-column-z-index);\n\t\t\t\tbackground-color: var(--color-main-background);\n\t\t\t}\n\n\t\t\t&--avatar {\n\t\t\t\tinset-inline-start: 0;\n\t\t\t}\n\n\t\t\t&--displayname {\n\t\t\t\tinset-inline-start: var(--avatar-cell-width);\n\t\t\t\tborder-inline-end: 1px solid var(--color-border);\n\t\t\t}\n\t\t}\n\n\t\t&--username {\n\t\t\tpadding-inline-start: calc(var(--default-grid-baseline) * 3);\n\t\t}\n\n\t\t&--avatar {\n\t\t\tmin-width: var(--avatar-cell-width);\n\t\t\twidth: var(--avatar-cell-width);\n\t\t\talign-items: center;\n\t\t\tpadding: 0;\n\t\t\tuser-select: none;\n\t\t}\n\n\t\t&--multiline {\n\t\t\tspan {\n\t\t\t\tline-height: 1.3em;\n\t\t\t\twhite-space: unset;\n\n\t\t\t\t@supports (-webkit-line-clamp: 2) {\n\t\t\t\t\tdisplay: -webkit-box;\n\t\t\t\t\t-webkit-line-clamp: 2;\n\t\t\t\t\t-webkit-box-orient: vertical;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t&--large {\n\t\t\tmin-width: var(--cell-width-large);\n\t\t\twidth: var(--cell-width-large);\n\t\t}\n\n\t\t&--groups {\n\t\t\tmin-width: var(--cell-width-groups);\n\t\t\twidth: var(--cell-width-groups);\n\t\t}\n\n\t\t&--obfuscated {\n\t\t\tmin-width: 400px;\n\t\t\twidth: 400px;\n\t\t}\n\n\t\t// Fill remaining row space with cell\n\t\t&--fill {\n\t\t\tmin-width: var(--cell-width-large);\n\t\t\twidth: 100%;\n\t\t}\n\n\t\t&--actions {\n\t\t\tposition: sticky;\n\t\t\tinset-inline-end: 0;\n\t\t\tz-index: var(--sticky-column-z-index);\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: row;\n\t\t\talign-items: center;\n\t\t\tmin-width: 110px;\n\t\t\twidth: 110px;\n\t\t\tbackground-color: var(--color-main-background);\n\t\t\tborder-inline-start: 1px solid var(--color-border);\n\t\t}\n\t}\n\n\t&__subtitle {\n\t\tcolor: var(--color-text-maxcontrast);\n\t}\n}\n"],sourceRoot:""}]);const o=r},80665(t,e,s){"use strict";s.d(e,{A:()=>o});var n=s(71354),a=s.n(n),i=s(76314),r=s.n(i)()(a());r.push([t.id,".header[data-v-53c64244]{border-bottom:1px solid var(--color-border);position:relative;display:flex;min-width:100%;width:fit-content;height:var(--row-height);background-color:var(--color-main-background)}.header__cell[data-v-53c64244]{display:flex;flex-direction:column;justify-content:center;padding:0 var(--cell-padding);min-width:var(--cell-width);width:var(--cell-width);color:var(--color-main-text)}.header__cell strong[data-v-53c64244],.header__cell span[data-v-53c64244],.header__cell label[data-v-53c64244]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;overflow-wrap:anywhere}@media(min-width: 670px){.header__cell--avatar[data-v-53c64244],.header__cell--displayname[data-v-53c64244]{position:sticky;z-index:var(--sticky-column-z-index);background-color:var(--color-main-background)}.header__cell--avatar[data-v-53c64244]{inset-inline-start:0}.header__cell--displayname[data-v-53c64244]{inset-inline-start:var(--avatar-cell-width);border-inline-end:1px solid var(--color-border)}}.header__cell--username[data-v-53c64244]{padding-inline-start:calc(var(--default-grid-baseline)*3)}.header__cell--avatar[data-v-53c64244]{min-width:var(--avatar-cell-width);width:var(--avatar-cell-width);align-items:center;padding:0;user-select:none}.header__cell--multiline span[data-v-53c64244]{line-height:1.3em;white-space:unset}@supports(-webkit-line-clamp: 2){.header__cell--multiline span[data-v-53c64244]{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.header__cell--large[data-v-53c64244]{min-width:var(--cell-width-large);width:var(--cell-width-large)}.header__cell--groups[data-v-53c64244]{min-width:var(--cell-width-groups);width:var(--cell-width-groups)}.header__cell--obfuscated[data-v-53c64244]{min-width:400px;width:400px}.header__cell--fill[data-v-53c64244]{min-width:var(--cell-width-large);width:100%}.header__cell--actions[data-v-53c64244]{position:sticky;inset-inline-end:0;z-index:var(--sticky-column-z-index);display:flex;flex-direction:row;align-items:center;min-width:110px;width:110px;background-color:var(--color-main-background);border-inline-start:1px solid var(--color-border)}.header__subtitle[data-v-53c64244]{color:var(--color-text-maxcontrast)}","",{version:3,sources:["webpack://./apps/settings/src/components/Users/UserListHeader.vue","webpack://./apps/settings/src/components/Users/shared/styles.scss"],names:[],mappings:"AAGA,yBACC,2CAAA,CCEA,iBAAA,CACA,YAAA,CACA,cAAA,CACA,iBAAA,CACA,wBAAA,CACA,6CAAA,CAIA,+BACC,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,6BAAA,CACA,2BAAA,CACA,uBAAA,CACA,4BAAA,CAEA,+GAGC,eAAA,CACA,sBAAA,CACA,kBAAA,CACA,sBAAA,CAGD,yBACC,mFAEC,eAAA,CACA,oCAAA,CACA,6CAAA,CAGD,uCACC,oBAAA,CAGD,4CACC,2CAAA,CACA,+CAAA,CAAA,CAIF,yCACC,yDAAA,CAGD,uCACC,kCAAA,CACA,8BAAA,CACA,kBAAA,CACA,SAAA,CACA,gBAAA,CAIA,+CACC,iBAAA,CACA,iBAAA,CAEA,iCAJD,+CAKE,mBAAA,CACA,oBAAA,CACA,2BAAA,CAAA,CAKH,sCACC,iCAAA,CACA,6BAAA,CAGD,uCACC,kCAAA,CACA,8BAAA,CAGD,2CACC,eAAA,CACA,WAAA,CAID,qCACC,iCAAA,CACA,UAAA,CAGD,wCACC,eAAA,CACA,kBAAA,CACA,oCAAA,CACA,YAAA,CACA,kBAAA,CACA,kBAAA,CACA,eAAA,CACA,WAAA,CACA,6CAAA,CACA,iDAAA,CAIF,mCACC,mCAAA",sourcesContent:["\n@use './shared/styles.scss';\n\n.header {\n\tborder-bottom: 1px solid var(--color-border);\n\n\t@include styles.row;\n\t@include styles.cell;\n}\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n@mixin row {\n\tposition: relative;\n\tdisplay: flex;\n\tmin-width: 100%;\n\twidth: fit-content;\n\theight: var(--row-height);\n\tbackground-color: var(--color-main-background);\n}\n\n@mixin cell {\n\t&__cell {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tjustify-content: center;\n\t\tpadding: 0 var(--cell-padding);\n\t\tmin-width: var(--cell-width);\n\t\twidth: var(--cell-width);\n\t\tcolor: var(--color-main-text);\n\n\t\tstrong,\n\t\tspan,\n\t\tlabel {\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t\twhite-space: nowrap;\n\t\t\toverflow-wrap: anywhere;\n\t\t}\n\n\t\t@media (min-width: 670px) { /* Show one &--large column between stickied columns */\n\t\t\t&--avatar,\n\t\t\t&--displayname {\n\t\t\t\tposition: sticky;\n\t\t\t\tz-index: var(--sticky-column-z-index);\n\t\t\t\tbackground-color: var(--color-main-background);\n\t\t\t}\n\n\t\t\t&--avatar {\n\t\t\t\tinset-inline-start: 0;\n\t\t\t}\n\n\t\t\t&--displayname {\n\t\t\t\tinset-inline-start: var(--avatar-cell-width);\n\t\t\t\tborder-inline-end: 1px solid var(--color-border);\n\t\t\t}\n\t\t}\n\n\t\t&--username {\n\t\t\tpadding-inline-start: calc(var(--default-grid-baseline) * 3);\n\t\t}\n\n\t\t&--avatar {\n\t\t\tmin-width: var(--avatar-cell-width);\n\t\t\twidth: var(--avatar-cell-width);\n\t\t\talign-items: center;\n\t\t\tpadding: 0;\n\t\t\tuser-select: none;\n\t\t}\n\n\t\t&--multiline {\n\t\t\tspan {\n\t\t\t\tline-height: 1.3em;\n\t\t\t\twhite-space: unset;\n\n\t\t\t\t@supports (-webkit-line-clamp: 2) {\n\t\t\t\t\tdisplay: -webkit-box;\n\t\t\t\t\t-webkit-line-clamp: 2;\n\t\t\t\t\t-webkit-box-orient: vertical;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t&--large {\n\t\t\tmin-width: var(--cell-width-large);\n\t\t\twidth: var(--cell-width-large);\n\t\t}\n\n\t\t&--groups {\n\t\t\tmin-width: var(--cell-width-groups);\n\t\t\twidth: var(--cell-width-groups);\n\t\t}\n\n\t\t&--obfuscated {\n\t\t\tmin-width: 400px;\n\t\t\twidth: 400px;\n\t\t}\n\n\t\t// Fill remaining row space with cell\n\t\t&--fill {\n\t\t\tmin-width: var(--cell-width-large);\n\t\t\twidth: 100%;\n\t\t}\n\n\t\t&--actions {\n\t\t\tposition: sticky;\n\t\t\tinset-inline-end: 0;\n\t\t\tz-index: var(--sticky-column-z-index);\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: row;\n\t\t\talign-items: center;\n\t\t\tmin-width: 110px;\n\t\t\twidth: 110px;\n\t\t\tbackground-color: var(--color-main-background);\n\t\t\tborder-inline-start: 1px solid var(--color-border);\n\t\t}\n\t}\n\n\t&__subtitle {\n\t\tcolor: var(--color-text-maxcontrast);\n\t}\n}\n"],sourceRoot:""}]);const o=r},87910(t,e,s){"use strict";s.d(e,{A:()=>o});var n=s(71354),a=s.n(n),i=s(76314),r=s.n(i)()(a());r.push([t.id,".user-list__row[data-v-78b3749c]{position:relative;display:flex;min-width:100%;width:fit-content;height:var(--row-height);background-color:var(--color-main-background)}.user-list__row[data-v-78b3749c]:hover{background-color:var(--color-background-hover)}.user-list__row:hover .row__cell[data-v-78b3749c]:not(.row__cell--actions){background-color:var(--color-background-hover)}.row__cell[data-v-78b3749c]{display:flex;flex-direction:column;justify-content:center;padding:0 var(--cell-padding);min-width:var(--cell-width);width:var(--cell-width);color:var(--color-main-text)}.row__cell strong[data-v-78b3749c],.row__cell span[data-v-78b3749c],.row__cell label[data-v-78b3749c]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;overflow-wrap:anywhere}@media(min-width: 670px){.row__cell--avatar[data-v-78b3749c],.row__cell--displayname[data-v-78b3749c]{position:sticky;z-index:var(--sticky-column-z-index);background-color:var(--color-main-background)}.row__cell--avatar[data-v-78b3749c]{inset-inline-start:0}.row__cell--displayname[data-v-78b3749c]{inset-inline-start:var(--avatar-cell-width);border-inline-end:1px solid var(--color-border)}}.row__cell--username[data-v-78b3749c]{padding-inline-start:calc(var(--default-grid-baseline)*3)}.row__cell--avatar[data-v-78b3749c]{min-width:var(--avatar-cell-width);width:var(--avatar-cell-width);align-items:center;padding:0;user-select:none}.row__cell--multiline span[data-v-78b3749c]{line-height:1.3em;white-space:unset}@supports(-webkit-line-clamp: 2){.row__cell--multiline span[data-v-78b3749c]{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.row__cell--large[data-v-78b3749c]{min-width:var(--cell-width-large);width:var(--cell-width-large)}.row__cell--groups[data-v-78b3749c]{min-width:var(--cell-width-groups);width:var(--cell-width-groups)}.row__cell--obfuscated[data-v-78b3749c]{min-width:400px;width:400px}.row__cell--fill[data-v-78b3749c]{min-width:var(--cell-width-large);width:100%}.row__cell--actions[data-v-78b3749c]{position:sticky;inset-inline-end:0;z-index:var(--sticky-column-z-index);display:flex;flex-direction:row;align-items:center;min-width:110px;width:110px;background-color:var(--color-main-background);border-inline-start:1px solid var(--color-border)}.row__subtitle[data-v-78b3749c]{color:var(--color-text-maxcontrast)}.row__cell[data-v-78b3749c]{border-bottom:1px solid var(--color-border)}.row__progress[data-v-78b3749c]{margin-top:4px}.row__progress--warn[data-v-78b3749c]::-moz-progress-bar{background:var(--color-warning) !important}.row__progress--warn[data-v-78b3749c]::-webkit-progress-value{background:var(--color-warning) !important}","",{version:3,sources:["webpack://./apps/settings/src/components/Users/UserRow.vue","webpack://./apps/settings/src/components/Users/shared/styles.scss"],names:[],mappings:"AAGA,iCCGC,iBAAA,CACA,YAAA,CACA,cAAA,CACA,iBAAA,CACA,wBAAA,CACA,6CAAA,CDLA,uCACC,8CAAA,CAEA,2EACC,8CAAA,CCKF,4BACC,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,6BAAA,CACA,2BAAA,CACA,uBAAA,CACA,4BAAA,CAEA,sGAGC,eAAA,CACA,sBAAA,CACA,kBAAA,CACA,sBAAA,CAGD,yBACC,6EAEC,eAAA,CACA,oCAAA,CACA,6CAAA,CAGD,oCACC,oBAAA,CAGD,yCACC,2CAAA,CACA,+CAAA,CAAA,CAIF,sCACC,yDAAA,CAGD,oCACC,kCAAA,CACA,8BAAA,CACA,kBAAA,CACA,SAAA,CACA,gBAAA,CAIA,4CACC,iBAAA,CACA,iBAAA,CAEA,iCAJD,4CAKE,mBAAA,CACA,oBAAA,CACA,2BAAA,CAAA,CAKH,mCACC,iCAAA,CACA,6BAAA,CAGD,oCACC,kCAAA,CACA,8BAAA,CAGD,wCACC,eAAA,CACA,WAAA,CAID,kCACC,iCAAA,CACA,UAAA,CAGD,qCACC,eAAA,CACA,kBAAA,CACA,oCAAA,CACA,YAAA,CACA,kBAAA,CACA,kBAAA,CACA,eAAA,CACA,WAAA,CACA,6CAAA,CACA,iDAAA,CAIF,gCACC,mCAAA,CD9FD,4BACC,2CAAA,CAGD,gCACC,cAAA,CAGC,yDACC,0CAAA,CAED,8DACC,0CAAA",sourcesContent:["\n@use './shared/styles.scss';\n\n.user-list__row {\n\t@include styles.row;\n\n\t&:hover {\n\t\tbackground-color: var(--color-background-hover);\n\n\t\t.row__cell:not(.row__cell--actions) {\n\t\t\tbackground-color: var(--color-background-hover);\n\t\t}\n\t}\n}\n\n.row {\n\t@include styles.cell;\n\n\t&__cell {\n\t\tborder-bottom: 1px solid var(--color-border);\n\t}\n\n\t&__progress {\n\t\tmargin-top: 4px;\n\n\t\t&--warn {\n\t\t\t&::-moz-progress-bar {\n\t\t\t\tbackground: var(--color-warning) !important;\n\t\t\t}\n\t\t\t&::-webkit-progress-value {\n\t\t\t\tbackground: var(--color-warning) !important;\n\t\t\t}\n\t\t}\n\t}\n}\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n@mixin row {\n\tposition: relative;\n\tdisplay: flex;\n\tmin-width: 100%;\n\twidth: fit-content;\n\theight: var(--row-height);\n\tbackground-color: var(--color-main-background);\n}\n\n@mixin cell {\n\t&__cell {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tjustify-content: center;\n\t\tpadding: 0 var(--cell-padding);\n\t\tmin-width: var(--cell-width);\n\t\twidth: var(--cell-width);\n\t\tcolor: var(--color-main-text);\n\n\t\tstrong,\n\t\tspan,\n\t\tlabel {\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t\twhite-space: nowrap;\n\t\t\toverflow-wrap: anywhere;\n\t\t}\n\n\t\t@media (min-width: 670px) { /* Show one &--large column between stickied columns */\n\t\t\t&--avatar,\n\t\t\t&--displayname {\n\t\t\t\tposition: sticky;\n\t\t\t\tz-index: var(--sticky-column-z-index);\n\t\t\t\tbackground-color: var(--color-main-background);\n\t\t\t}\n\n\t\t\t&--avatar {\n\t\t\t\tinset-inline-start: 0;\n\t\t\t}\n\n\t\t\t&--displayname {\n\t\t\t\tinset-inline-start: var(--avatar-cell-width);\n\t\t\t\tborder-inline-end: 1px solid var(--color-border);\n\t\t\t}\n\t\t}\n\n\t\t&--username {\n\t\t\tpadding-inline-start: calc(var(--default-grid-baseline) * 3);\n\t\t}\n\n\t\t&--avatar {\n\t\t\tmin-width: var(--avatar-cell-width);\n\t\t\twidth: var(--avatar-cell-width);\n\t\t\talign-items: center;\n\t\t\tpadding: 0;\n\t\t\tuser-select: none;\n\t\t}\n\n\t\t&--multiline {\n\t\t\tspan {\n\t\t\t\tline-height: 1.3em;\n\t\t\t\twhite-space: unset;\n\n\t\t\t\t@supports (-webkit-line-clamp: 2) {\n\t\t\t\t\tdisplay: -webkit-box;\n\t\t\t\t\t-webkit-line-clamp: 2;\n\t\t\t\t\t-webkit-box-orient: vertical;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t&--large {\n\t\t\tmin-width: var(--cell-width-large);\n\t\t\twidth: var(--cell-width-large);\n\t\t}\n\n\t\t&--groups {\n\t\t\tmin-width: var(--cell-width-groups);\n\t\t\twidth: var(--cell-width-groups);\n\t\t}\n\n\t\t&--obfuscated {\n\t\t\tmin-width: 400px;\n\t\t\twidth: 400px;\n\t\t}\n\n\t\t// Fill remaining row space with cell\n\t\t&--fill {\n\t\t\tmin-width: var(--cell-width-large);\n\t\t\twidth: 100%;\n\t\t}\n\n\t\t&--actions {\n\t\t\tposition: sticky;\n\t\t\tinset-inline-end: 0;\n\t\t\tz-index: var(--sticky-column-z-index);\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: row;\n\t\t\talign-items: center;\n\t\t\tmin-width: 110px;\n\t\t\twidth: 110px;\n\t\t\tbackground-color: var(--color-main-background);\n\t\t\tborder-inline-start: 1px solid var(--color-border);\n\t\t}\n\t}\n\n\t&__subtitle {\n\t\tcolor: var(--color-text-maxcontrast);\n\t}\n}\n"],sourceRoot:""}]);const o=r},82300(t,e,s){"use strict";s.d(e,{A:()=>o});var n=s(71354),a=s.n(n),i=s(76314),r=s.n(i)()(a());r.push([t.id,".dialog__note[data-v-649c1de8]{font-weight:normal}fieldset[data-v-649c1de8]{font-weight:bold}","",{version:3,sources:["webpack://./apps/settings/src/components/Users/UserSettingsDialog.vue"],names:[],mappings:"AAEC,+BACC,kBAAA,CAIF,0BACC,gBAAA",sourcesContent:["\n.dialog {\n\t&__note {\n\t\tfont-weight: normal;\n\t}\n}\n\nfieldset {\n\tfont-weight: bold;\n}\n"],sourceRoot:""}]);const o=r},49808(t,e,s){"use strict";s.d(e,{A:()=>o});var n=s(71354),a=s.n(n),i=s(76314),r=s.n(i)()(a());r.push([t.id,".user-list[data-v-65d37ac4]{--avatar-cell-width: 48px;--cell-padding: 7px;--cell-width: 200px;--cell-width-large: 300px;--cell-width-groups: 380px;--cell-min-width: calc(var(--cell-width) - (2 * var(--cell-padding)));--sticky-column-z-index: calc(var(--vs-dropdown-z-index) + 1);display:block;overflow:auto;height:100%;will-change:scroll-position}.user-list__header[data-v-65d37ac4],.user-list__footer[data-v-65d37ac4]{position:sticky;display:block}.user-list__header[data-v-65d37ac4]{top:0;z-index:calc(var(--sticky-column-z-index) + 1)}.user-list__footer[data-v-65d37ac4]{inset-inline-start:0}.user-list__body[data-v-65d37ac4]{display:flex;flex-direction:column;width:100%}","",{version:3,sources:["webpack://./apps/settings/src/components/Users/VirtualList.vue"],names:[],mappings:"AACA,4BACC,yBAAA,CACA,mBAAA,CACA,mBAAA,CACA,yBAAA,CACA,0BAAA,CACA,qEAAA,CACA,6DAAA,CAGA,aAAA,CACA,aAAA,CACA,WAAA,CACA,2BAAA,CAEA,wEAEC,eAAA,CAEA,aAAA,CAGD,oCACC,KAAA,CACA,8CAAA,CAGD,oCACC,oBAAA,CAGD,kCACC,YAAA,CACA,qBAAA,CACA,UAAA",sourcesContent:["\n.user-list {\n\t--avatar-cell-width: 48px;\n\t--cell-padding: 7px;\n\t--cell-width: 200px;\n\t--cell-width-large: 300px;\n\t--cell-width-groups: 380px;\n\t--cell-min-width: calc(var(--cell-width) - (2 * var(--cell-padding)));\n\t--sticky-column-z-index: calc(var(--vs-dropdown-z-index) + 1); // Keep the sticky column on top of the select dropdown\n\n\t// Necessary for virtual scroll optimized rendering\n\tdisplay: block;\n\toverflow: auto;\n\theight: 100%;\n\twill-change: scroll-position;\n\n\t&__header,\n\t&__footer {\n\t\tposition: sticky;\n\t\t// Fix sticky positioning in Firefox\n\t\tdisplay: block;\n\t}\n\n\t&__header {\n\t\ttop: 0;\n\t\tz-index: calc(var(--sticky-column-z-index) + 1);\n\t}\n\n\t&__footer {\n\t\tinset-inline-start: 0;\n\t}\n\n\t&__body {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\twidth: 100%;\n\t}\n}\n"],sourceRoot:""}]);const o=r},17130(t,e,s){"use strict";s.d(e,{A:()=>o});var n=s(71354),a=s.n(n),i=s(76314),r=s.n(i)()(a());r.push([t.id,".app-content[data-v-6c72a095]{display:flex;overflow:hidden;flex-direction:column;max-height:100%}","",{version:3,sources:["webpack://./apps/settings/src/views/UserManagement.vue"],names:[],mappings:"AACA,8BAEC,YAAA,CACA,eAAA,CACA,qBAAA,CACA,eAAA",sourcesContent:["\n.app-content {\n\t// Virtual list needs to be full height and is scrollable\n\tdisplay: flex;\n\toverflow: hidden;\n\tflex-direction: column;\n\tmax-height: 100%;\n}\n"],sourceRoot:""}]);const o=r},48500(t,e,s){"use strict";s.d(e,{A:()=>o});var n=s(71354),a=s.n(n),i=s(76314),r=s.n(i)()(a());r.push([t.id,".account-management__navigation[data-v-0567bb0c] .app-navigation__body{will-change:scroll-position}.account-management__search[data-v-0567bb0c]{padding-block:var(--default-grid-baseline, 4px);padding-inline:var(--app-navigation-padding, 8px)}.account-management__system-list[data-v-0567bb0c]{height:auto !important;overflow:visible !important}.account-management__group-list[data-v-0567bb0c]{height:100% !important}.account-management__settings-toggle[data-v-0567bb0c]{margin-bottom:12px}","",{version:3,sources:["webpack://./apps/settings/src/views/UserManagementNavigation.vue"],names:[],mappings:"AAGE,uEACC,2BAAA,CAGF,6CACC,+CAAA,CACA,iDAAA,CAGD,kDACC,sBAAA,CACA,2BAAA,CAGD,iDACC,sBAAA,CAGD,sDACC,kBAAA",sourcesContent:["\n.account-management {\n\t&__navigation {\n\t\t:deep(.app-navigation__body) {\n\t\t\twill-change: scroll-position;\n\t\t}\n\t}\n\t&__search {\n\t\tpadding-block: var(--default-grid-baseline, 4px);\n\t\tpadding-inline: var(--app-navigation-padding, 8px);\n\t}\n\n\t&__system-list {\n\t\theight: auto !important;\n\t\toverflow: visible !important;\n\t}\n\n\t&__group-list {\n\t\theight: 100% !important;\n\t}\n\n\t&__settings-toggle {\n\t\tmargin-bottom: 12px;\n\t}\n}\n"],sourceRoot:""}]);const o=r},99913(e,s,n){"use strict";n.r(s),n.d(s,{default:()=>Is});var a=n(61338),i=n(53334),r=n(85471),o=n(18195),l=n(9165),c=n(85168),d=n(54914),u=n(42507),A=n(6695),p=n(88289),g=n(77690),h=n(74095),m=n(94219),C=n(16044),f=n(82182),v=n(67607),_=n(21106),w=n(19978);const b={name:"UserFormGroups",components:{NcSelect:v.default},inject:["formData"],data:()=>({creatingGroup:!1,promise:null}),computed:{settings(){return this.$store.getters.getServerData},availableGroups(){return(this.settings.isAdmin||this.settings.isDelegatedAdmin?this.$store.getters.getSortedGroups:this.$store.getters.getSubAdminGroups).filter(({id:t})=>"__nc_internal_recent"!==t&&"disabled"!==t)},availableSubAdminGroups(){return this.availableGroups.filter(({id:t})=>"admin"!==t)},groupsLabel(){return this.settings.isAdmin||this.settings.isDelegatedAdmin?t("settings","Member of the following groups"):t("settings","Member of the following groups (required)")}},methods:{async searchGroups(e,s){if(this.settings.isAdmin||this.settings.isDelegatedAdmin){this.promise&&this.promise.cancel(),s(!0);try{this.promise=(0,w.N_)({search:e,offset:0,limit:25});const t=await this.promise;for(const e of t)this.$store.commit("addGroup",e)}catch(e){_.A.error(t("settings","Failed to search groups"),{error:e})}this.promise=null,s(!1)}},async createGroup({name:e}){this.creatingGroup=!0;try{await this.$store.dispatch("addGroup",e),this.formData.groups.push({id:e,name:e})}catch(e){_.A.error(t("settings","Failed to create group"),{error:e})}this.creatingGroup=!1}}};var y=n(85072),x=n.n(y),N=n(97825),k=n.n(N),S=n(77659),G=n.n(S),D=n(55056),U=n.n(D),L=n(10540),B=n.n(L),I=n(41113),O=n.n(I),q=n(13033),E={};E.styleTagTransform=O(),E.setAttributes=U(),E.insert=G().bind(null,"head"),E.domAPI=k(),E.insertStyleElement=B(),x()(q.A,E),q.A&&q.A.locals&&q.A.locals;var F=n(14486);const T=(0,F.A)(b,function(){var t=this,e=t._self._c;return e("div",{staticClass:"user-form-groups"},[e("div",{staticClass:"user-form__item"},[e("NcSelect",{staticClass:"user-form__select",attrs:{"data-test":"groups","input-label":t.groupsLabel,placeholder:t.t("settings","Set account groups"),disabled:t.creatingGroup,options:t.availableGroups,label:"name","keep-open":"",multiple:!0,taggable:t.settings.isAdmin||t.settings.isDelegatedAdmin,required:!t.settings.isAdmin&&!t.settings.isDelegatedAdmin,"create-option":t=>({id:t,name:t,isCreating:!0})},on:{search:t.searchGroups,"option:created":t.createGroup},model:{value:t.formData.groups,callback:function(e){t.$set(t.formData,"groups",e)},expression:"formData.groups"}})],1),t._v(" "),t.settings.isAdmin||t.settings.isDelegatedAdmin?e("div",{staticClass:"user-form__item"},[e("NcSelect",{staticClass:"user-form__select",attrs:{"input-label":t.t("settings","Admin of the following groups"),placeholder:t.t("settings","Set account as admin for …"),disabled:t.creatingGroup,options:t.availableSubAdminGroups,"keep-open":"",multiple:!0,label:"name"},on:{search:t.searchGroups},model:{value:t.formData.subadminGroups,callback:function(e){t.$set(t.formData,"subadminGroups",e)},expression:"formData.subadminGroups"}})],1):t._e()])},[],!1,null,"4041cacf",null).exports;var M=n(35810),$=n(34954);function z(t,e){if(!t.language||""===t.language)return{code:"",name:""};return[...e?.commonLanguages??[],...e?.otherLanguages??[]].find(e=>e.code===t.language)||{code:t.language,name:t.language}}const P={name:"UserFormLanguage",components:{NcSelect:v.default},inject:["formData"],computed:{showConfig(){return this.$store.getters.getShowConfig},languages(){const{commonLanguages:e,otherLanguages:s}=this.$store.getters.getServerData.languages;return[{name:t("settings","Common languages"),languages:e},...e,{name:t("settings","Other languages"),languages:s},...s]}},methods:{languageFilterBy:function(t,e,s){return t.languages?t.languages.some(({name:t})=>t.toLocaleLowerCase().includes(s.toLocaleLowerCase())):(e||"").toLocaleLowerCase().includes(s.toLocaleLowerCase())}}},R=(0,F.A)(P,function(){var t=this,e=t._self._c;return t.showConfig.showLanguages?e("div",{staticClass:"user-form__item"},[e("NcSelect",{staticClass:"user-form__select",attrs:{"input-label":t.t("settings","Language"),placeholder:t.t("settings","Set default language"),clearable:!1,selectable:t=>!t.languages,"filter-by":t.languageFilterBy,options:t.languages,label:"name"},model:{value:t.formData.language,callback:function(e){t.$set(t.formData,"language",e)},expression:"formData.language"}})],1):t._e()},[],!1,null,null,null).exports;var H=n(9773);const W={name:"UserFormManager",components:{NcSelectUsers:H.N},inject:["formData"],data:()=>({possibleManagers:[],loading:!1}),computed:{managerModel(){const t=this.formData.manager;return t?{id:"object"==typeof t?t.id:t,displayName:"object"==typeof t?t.displayname??t.id:t}:null},managerOptions(){return this.possibleManagers.map(t=>({id:t.id,displayName:t.displayname??t.id,subname:t.email??""}))}},mounted(){this.searchUserManager("")},methods:{onManagerChange(t){this.formData.manager=t?{id:t.id,displayname:t.displayName}:""},async searchUserManager(t){this.loading=!0;try{const e=await this.$store.dispatch("searchUsers",{offset:0,limit:10,search:t}),s=e?.data?Object.values(e.data.ocs.data.users):[];this.possibleManagers=s}catch(t){_.A.error("Failed to search user managers",{error:t})}finally{this.loading=!1}}}},Q=(0,F.A)(W,function(){var t=this,e=t._self._c;return e("div",{staticClass:"user-form__item user-form__managers"},[e("NcSelectUsers",{staticClass:"user-form__select",attrs:{modelValue:t.managerModel,"input-label":t.t("settings","Manager"),placeholder:t.t("settings","Search for a manager…"),options:t.managerOptions,loading:t.loading},on:{"update:modelValue":t.onManagerChange,search:t.searchUserManager}})],1)},[],!1,null,null,null).exports,j={name:"UserFormQuota",components:{NcSelect:v.default},inject:["formData"],props:{quotaOptions:{type:Array,required:!0}},methods:{validateQuota(t){return function(t,e){const s=(0,M.lT)(t,!0);if(null!==s&&s>=0){const t=(0,M.v7)(s);return{id:t,label:t}}return e}(t,this.quotaOptions[0])}}},V=(0,F.A)(j,function(){var t=this,e=t._self._c;return e("div",{staticClass:"user-form__item"},[e("NcSelect",{staticClass:"user-form__select",attrs:{"input-label":t.t("settings","Quota"),placeholder:t.t("settings","Set account quota"),options:t.quotaOptions,clearable:!1,taggable:!0,"create-option":t.validateQuota},model:{value:t.formData.quota,callback:function(e){t.$set(t.formData,"quota",e)},expression:"formData.quota"}})],1)},[],!1,null,null,null).exports,K={name:"UserFormFields",components:{NcPasswordField:C.A,NcTextField:f.A,UserFormGroups:T,UserFormLanguage:R,UserFormManager:Q,UserFormQuota:V},inject:["formData"],props:{quotaOptions:{type:Array,required:!0},fieldConfig:{type:Object,default:()=>({})},errors:{type:Object,default:()=>({})}},computed:{minPasswordLength(){return this.$store.getters.getPasswordPolicyMinLength},unhandledErrors(){const t=new Set(["displayName","password","email"]);return Object.fromEntries(Object.entries(this.errors).filter(([e])=>!t.has(e)))}},methods:{focusField(t){this.$refs[t]?.focus?.()}}};var Y=n(42568),X={};X.styleTagTransform=O(),X.setAttributes=U(),X.insert=G().bind(null,"head"),X.domAPI=k(),X.insertStyleElement=B(),x()(Y.A,X),Y.A&&Y.A.locals&&Y.A.locals;const J=(0,F.A)(K,function(){var t=this,e=t._self._c;return e("div",{staticClass:"user-form-fields"},[t.fieldConfig.username?.show&&t.fieldConfig.username?.disabled?e("div",{staticClass:"user-form-fields__item user-form-fields__static",attrs:{"data-test":"username"}},[e("span",{staticClass:"user-form-fields__static-label"},[t._v("\n\t\t\t"+t._s(t.fieldConfig.username?.label)+"\n\t\t")]),t._v(" "),e("span",{staticClass:"user-form-fields__static-value"},[t._v("\n\t\t\t"+t._s(t.formData.username)+"\n\t\t")])]):t.fieldConfig.username?.show?e("NcTextField",{ref:"username",staticClass:"user-form-fields__item",attrs:{"data-test":"username",label:t.fieldConfig.username?.label,autocapitalize:"none",autocomplete:"off",spellcheck:"false",pattern:"[a-zA-Z0-9 _\\.@\\-']+",required:t.fieldConfig.username?.required},model:{value:t.formData.username,callback:function(e){t.$set(t.formData,"username",e)},expression:"formData.username"}}):t._e(),t._v(" "),e("NcTextField",{staticClass:"user-form-fields__item",attrs:{"data-test":"displayName",label:t.t("settings","Display name"),error:!!t.errors.displayName,"helper-text":t.errors.displayName,autocapitalize:"none",autocomplete:"off",spellcheck:"false"},model:{value:t.formData.displayName,callback:function(e){t.$set(t.formData,"displayName",e)},expression:"formData.displayName"}}),t._v(" "),t.fieldConfig.showPasswordEmailHint?e("span",{staticClass:"user-form-fields__hint",attrs:{id:"password-email-hint"}},[t._v("\n\t\t"+t._s(t.t("settings","Either password or email is required"))+"\n\t")]):t._e(),t._v(" "),!1!==t.fieldConfig.password?.show?e("NcPasswordField",{ref:"password",staticClass:"user-form-fields__item",attrs:{"data-test":"password",minlength:t.minPasswordLength,maxlength:469,"aria-describedby":t.fieldConfig.showPasswordEmailHint?"password-email-hint":void 0,label:t.fieldConfig.password?.label,error:!!t.errors.password,"helper-text":t.errors.password,autocapitalize:"none",autocomplete:"new-password",spellcheck:"false",required:t.fieldConfig.password?.required},model:{value:t.formData.password,callback:function(e){t.$set(t.formData,"password",e)},expression:"formData.password"}}):t._e(),t._v(" "),e("NcTextField",{staticClass:"user-form-fields__item",attrs:{"data-test":"email",type:"email","aria-describedby":t.fieldConfig.showPasswordEmailHint?"password-email-hint":void 0,label:t.fieldConfig.email?.label||t.t("settings","Email"),error:!!t.errors.email,"helper-text":t.errors.email,autocapitalize:"none",autocomplete:"off",spellcheck:"false",required:t.fieldConfig.email?.required},model:{value:t.formData.email,callback:function(e){t.$set(t.formData,"email",e)},expression:"formData.email"}}),t._v(" "),e("UserFormGroups"),t._v(" "),e("UserFormQuota",{attrs:{"quota-options":t.quotaOptions}}),t._v(" "),e("UserFormLanguage"),t._v(" "),e("UserFormManager"),t._v(" "),Object.keys(t.unhandledErrors).length>0?e("div",{staticClass:"user-form-fields__error-summary",attrs:{"aria-live":"polite",role:"status"}},t._l(t.unhandledErrors,function(s,n){return e("p",{key:n},[t._v("\n\t\t\t"+t._s(n)+": "+t._s(s)+"\n\t\t")])}),0):t._e()],1)},[],!1,null,"0d9243e9",null).exports,Z={name:"EditUserDialog",components:{NcButton:h.A,NcDialog:m.A,UserFormFields:J},provide(){return{formData:this.editedUser}},props:{user:{type:Object,required:!0},quotaOptions:{type:Array,required:!0}},emits:["closing"],data(){const t=this.$store.getters.getGroups,e=this.$store.getters.getServerData.languages,s=function(t,e,s,n){const a=t.groups.map(t=>e.find(e=>e.id===t)).filter(Boolean),i=(t.subadmin??[]).map(t=>e.find(e=>e.id===t)).filter(Boolean);let r;if(t.quota?.quota>=0){const e=(0,M.v7)(t.quota.quota);r=s.find(t=>t.id===e)??{id:e,label:e}}else r="default"===t.quota?.quota?s[0]:$.SA;return{username:t.id,displayName:t.displayname??"",password:"",email:t.email??"",groups:a,subadminGroups:i,quota:r,language:z(t,n),manager:t.manager??""}}(this.user,t,this.quotaOptions,e);return{initialData:structuredClone(s),editedUser:s,saving:!1,fieldErrors:{}}},computed:{settings(){return this.$store.getters.getServerData},fieldConfig(){return{username:{show:!0,disabled:!0,label:t("settings","Account name")},password:{show:this.settings.canChangePassword&&this.user.backendCapabilities.setPassword,label:t("settings","New password")}}}},methods:{async save(){this.fieldErrors={};const e=function(t,e){const s={};e.displayName!==t.displayName&&(s.displayName=e.displayName),""!==e.password&&(s.password=e.password),e.email!==t.email&&(s.email=e.email),e.quota.id!==t.quota.id&&(s.quota=e.quota.id),e.language.code!==t.language.code&&(s.language=e.language.code);const n="object"==typeof e.manager?e.manager.id??"":e.manager;n!==("object"==typeof t.manager?t.manager.id??"":t.manager)&&(s.manager=n);const a=e.groups.map(t=>t.id).sort(),i=t.groups.map(t=>t.id).sort();JSON.stringify(a)!==JSON.stringify(i)&&(s.groups=a);const r=e.subadminGroups.map(t=>t.id).sort(),o=t.subadminGroups.map(t=>t.id).sort();return JSON.stringify(r)!==JSON.stringify(o)&&(s.subadminGroups=r),s}(this.initialData,this.editedUser);if(0!==Object.keys(e).length){this.saving=!0;try{await(0,g.C5)(),await this.$store.dispatch("editUserMultiField",{userid:this.user.id,payload:e}),(0,c.Te)(t("settings","Account updated")),this.$emit("closing")}catch(e){const s=e.response?.data?.ocs?.data?.errors;s&&"object"==typeof s?this.fieldErrors=s:(_.A.error("Failed to update account",{error:e}),(0,c.Qg)(t("settings","Failed to update account")))}finally{this.saving=!1}}else this.$emit("closing")}}};var tt=n(77739),et={};et.styleTagTransform=O(),et.setAttributes=U(),et.insert=G().bind(null,"head"),et.domAPI=k(),et.insertStyleElement=B(),x()(tt.A,et),tt.A&&tt.A.locals&&tt.A.locals;var st=(0,F.A)(Z,function(){var t=this,e=t._self._c;return e("NcDialog",{staticClass:"edit-dialog",attrs:{size:"small",name:t.t("settings","Edit account"),outTransition:""},on:{closing:function(e){return t.$emit("closing")}},scopedSlots:t._u([{key:"actions",fn:function(){return[e("NcButton",{staticClass:"edit-dialog__submit",attrs:{"data-test":"submit",form:"edit-user-form",variant:"primary",type:"submit",disabled:t.saving}},[t._v("\n\t\t\t"+t._s(t.saving?t.t("settings","Saving …"):t.t("settings","Save"))+"\n\t\t")])]},proxy:!0}])},[e("form",{staticClass:"edit-dialog__form",attrs:{id:"edit-user-form","data-test":"form",disabled:t.saving},on:{submit:function(e){return e.preventDefault(),t.save.apply(null,arguments)}}},[e("UserFormFields",{attrs:{fieldConfig:t.fieldConfig,errors:t.fieldErrors,quotaOptions:t.quotaOptions}})],1)])},[],!1,null,"2a263a52",null);const nt=st.exports,at={name:"NewUserDialog",components:{NcButton:h.A,NcDialog:m.A,UserFormFields:J},provide(){return{formData:this.newUser}},props:{loading:{type:Object,required:!0},newUser:{type:Object,required:!0},quotaOptions:{type:Array,required:!0}},emits:["closing"],computed:{settings(){return this.$store.getters.getServerData},usernameLabel(){return this.settings.newUserGenerateUserID?t("settings","Account name will be autogenerated"):t("settings","Account name (required)")},fieldConfig(){return{username:{show:!0,label:this.usernameLabel,disabled:this.settings.newUserGenerateUserID,required:!0},password:{label:""===this.newUser.email?t("settings","Password (required)"):t("settings","Password"),required:""===this.newUser.email},email:{label:""===this.newUser.password||this.settings.newUserRequireEmail?t("settings","Email (required)"):t("settings","Email"),required:""===this.newUser.password||this.settings.newUserRequireEmail},showPasswordEmailHint:!this.settings.newUserRequireEmail}}},mounted(){this.$refs.fields?.focusField("username")},methods:{async createUser(){this.loading.all=!0;try{await this.$store.dispatch("addUser",{userid:this.newUser.username,password:this.newUser.password,displayName:this.newUser.displayName,email:this.newUser.email,groups:this.newUser.groups.map(({id:t})=>t),subadmin:this.newUser.subadminGroups.map(({id:t})=>t),quota:this.newUser.quota.id,language:this.newUser.language.code,manager:this.newUser.manager.id}),this.$emit("closing")}catch(t){if(this.loading.all=!1,t.response?.data?.ocs?.meta){const e=t.response.data.ocs.meta.statuscode;102===e?this.$refs.fields?.focusField("username"):107===e&&this.$refs.fields?.focusField("password")}}}}};var it=n(16696),rt={};rt.styleTagTransform=O(),rt.setAttributes=U(),rt.insert=G().bind(null,"head"),rt.domAPI=k(),rt.insertStyleElement=B(),x()(it.A,rt),it.A&&it.A.locals&&it.A.locals;var ot=(0,F.A)(at,function(){var t=this,e=t._self._c;return e("NcDialog",t._g({staticClass:"dialog",attrs:{size:"small",name:t.t("settings","New account"),"out-transition":""},scopedSlots:t._u([{key:"actions",fn:function(){return[e("NcButton",{staticClass:"dialog__submit",attrs:{"data-test":"submit",form:"new-user-form",variant:"primary",type:"submit"}},[t._v("\n\t\t\t"+t._s(t.t("settings","Add new account"))+"\n\t\t")])]},proxy:!0}])},t.$listeners),[e("form",{staticClass:"dialog__form",attrs:{id:"new-user-form","data-test":"form",disabled:t.loading.all},on:{submit:function(e){return e.preventDefault(),t.createUser.apply(null,arguments)}}},[e("UserFormFields",{ref:"fields",attrs:{"field-config":t.fieldConfig,"quota-options":t.quotaOptions}})],1)])},[],!1,null,"32af3da3",null);const lt=ot.exports,ct=r.Ay.extend({name:"UserListFooter",components:{NcLoadingIcon:p.A},props:{loading:{type:Boolean,required:!0},filteredUsers:{type:Array,required:!0}},computed:{userCount(){return this.loading?this.n("settings","{userCount} account …","{userCount} accounts …",this.filteredUsers.length,{userCount:this.filteredUsers.length}):this.n("settings","{userCount} account","{userCount} accounts",this.filteredUsers.length,{userCount:this.filteredUsers.length})}},methods:{t:i.Tl,n:i.zw}});var dt=n(16898),ut={};ut.styleTagTransform=O(),ut.setAttributes=U(),ut.insert=G().bind(null,"head"),ut.domAPI=k(),ut.insertStyleElement=B(),x()(dt.A,ut),dt.A&&dt.A.locals&&dt.A.locals;const At=(0,F.A)(ct,function(){var t=this,e=t._self._c;return t._self._setupProxy,e("tr",{staticClass:"footer"},[e("th",{attrs:{scope:"row"}},[e("span",{staticClass:"hidden-visually"},[t._v(t._s(t.t("settings","Total rows summary")))])]),t._v(" "),e("td",{staticClass:"footer__cell footer__cell--loading"},[t.loading?e("NcLoadingIcon",{attrs:{title:t.t("settings","Loading accounts …"),size:32}}):t._e()],1),t._v(" "),e("td",{staticClass:"footer__cell footer__cell--count footer__cell--multiline"},[e("span",{attrs:{"aria-describedby":"user-count-desc"}},[t._v(t._s(t.userCount))]),t._v(" "),e("span",{staticClass:"hidden-visually",attrs:{id:"user-count-desc"}},[t._v("\n\t\t\t"+t._s(t.t("settings","Scroll to load more rows"))+"\n\t\t")])])])},[],!1,null,"4ff6ba29",null).exports,pt=r.Ay.extend({name:"UserListHeader",computed:{showConfig(){return this.$store.getters.getShowConfig},settings(){return this.$store.getters.getServerData}},methods:{t:i.Tl}});var gt=n(80665),ht={};ht.styleTagTransform=O(),ht.setAttributes=U(),ht.insert=G().bind(null,"head"),ht.domAPI=k(),ht.insertStyleElement=B(),x()(gt.A,ht),gt.A&>.A.locals&>.A.locals;const mt=(0,F.A)(pt,function(){var t=this,e=t._self._c;return t._self._setupProxy,e("tr",{staticClass:"header"},[e("th",{staticClass:"header__cell header__cell--avatar",attrs:{"data-cy-user-list-header-avatar":"",scope:"col"}},[e("span",{staticClass:"hidden-visually"},[t._v("\n\t\t\t"+t._s(t.t("settings","Avatar"))+"\n\t\t")])]),t._v(" "),e("th",{staticClass:"header__cell header__cell--displayname",attrs:{"data-cy-user-list-header-displayname":"",scope:"col"}},[e("strong",[t._v("\n\t\t\t"+t._s(t.t("settings","Display name"))+"\n\t\t")])]),t._v(" "),e("th",{staticClass:"header__cell header__cell--username",attrs:{"data-cy-user-list-header-username":"",scope:"col"}},[e("span",[t._v("\n\t\t\t"+t._s(t.t("settings","Account name"))+"\n\t\t")])]),t._v(" "),e("th",{staticClass:"header__cell",attrs:{"data-cy-user-list-header-email":"",scope:"col"}},[e("span",[t._v(t._s(t.t("settings","Email")))])]),t._v(" "),e("th",{staticClass:"header__cell header__cell--groups",attrs:{"data-cy-user-list-header-groups":"",scope:"col"}},[e("span",[t._v(t._s(t.t("settings","Groups")))])]),t._v(" "),t.settings.isAdmin||t.settings.isDelegatedAdmin?e("th",{staticClass:"header__cell header__cell--large",attrs:{"data-cy-user-list-header-subadmins":"",scope:"col"}},[e("span",[t._v(t._s(t.t("settings","Group admin for")))])]):t._e(),t._v(" "),e("th",{staticClass:"header__cell",attrs:{"data-cy-user-list-header-quota":"",scope:"col"}},[e("span",[t._v(t._s(t.t("settings","Quota")))])]),t._v(" "),t.showConfig.showLanguages?e("th",{staticClass:"header__cell header__cell--large",attrs:{"data-cy-user-list-header-languages":"",scope:"col"}},[e("span",[t._v(t._s(t.t("settings","Language")))])]):t._e(),t._v(" "),t.showConfig.showUserBackend||t.showConfig.showStoragePath?e("th",{staticClass:"header__cell header__cell--large",attrs:{"data-cy-user-list-header-storage-location":"",scope:"col"}},[t.showConfig.showUserBackend?e("span",[t._v("\n\t\t\t"+t._s(t.t("settings","Account backend"))+"\n\t\t")]):t._e(),t._v(" "),t.showConfig.showStoragePath?e("span",{staticClass:"header__subtitle"},[t._v("\n\t\t\t"+t._s(t.t("settings","Storage location"))+"\n\t\t")]):t._e()]):t._e(),t._v(" "),t.showConfig.showFirstLogin?e("th",{staticClass:"header__cell",attrs:{"data-cy-user-list-header-first-login":"",scope:"col"}},[e("span",[t._v(t._s(t.t("settings","First login")))])]):t._e(),t._v(" "),t.showConfig.showLastLogin?e("th",{staticClass:"header__cell",attrs:{"data-cy-user-list-header-last-login":"",scope:"col"}},[e("span",[t._v(t._s(t.t("settings","Last login")))])]):t._e(),t._v(" "),e("th",{staticClass:"header__cell header__cell--large header__cell--fill",attrs:{"data-cy-user-list-header-manager":"",scope:"col"}},[e("span",[t._v(t._s(t.t("settings","Manager")))])]),t._v(" "),e("th",{staticClass:"header__cell header__cell--actions",attrs:{"data-cy-user-list-header-actions":"",scope:"col"}},[e("span",{staticClass:"hidden-visually"},[t._v("\n\t\t\t"+t._s(t.t("settings","Account actions"))+"\n\t\t")])])])},[],!1,null,"53c64244",null).exports;var Ct=n(21777),ft=n(950),vt=n(74715),_t=n(61744),wt=n(78928),bt=n(86162),yt=n(57908),xt=n(64426),Nt=n(59915),kt=n(56587),St=n(15502),Gt=n(71711),Dt=n(25878),Ut=n(75017),Lt=n(47611),Bt=n(10363),It=n(32999),Ot=n(48283),qt=n(54048),Et=n(8976),Ft=n(27345),Tt=n(86226),Mt=n(49833),$t=n(37024),zt=n(62306),Pt=n(542),Rt=n(31744),Ht=n(93651),Wt=n(15807),Qt=n(35056),jt=n(50017),Vt=n(60258),Kt=n(51122),Yt=n(66865),Xt=n(17067),Jt=n(2302),Zt=n(52631),te=n(87450),ee=n(24426),se=n(20948),ne=n(69075),ae=n(17671),ie=n(8852),re=n(50299),oe=n(90429),le=n(64569),ce=n(29982),de=n(44025),ue=n(35048),Ae=n(48198),pe=n(96573),ge=n(20959),he=n(83194),me=n(91849),Ce=n(31241),fe=n(85646),ve=n(71565),_e=n(11264),we=n(17848),be=n(99925),ye=n(66768),xe=n(16704),Ne=n(40020),ke=n(51550),Se=n(91624),Ge=n(6670),De=n(48191),Ue=n(21541),Le=n(56570),Be=n(77128),Ie=n(83947),Oe=n(371),qe=n(3274),Ee=n(71912),Fe=n(35290),Te=n(1938),Me=n(1357),$e=n(17370),ze=n(36079),Pe=n(69674),Re=(n(19051),n(64789),n(52781),n(3168),n(39156)),He=n(53160),We=n(14762),Qe=n(71639),je=n(72223),Ve=n(27971),Ke=n(25514),Ye=n(6330),Xe=n(88381),Je=n(8256),Ze=n(64289),ts=n(37356),es=n(8818),ss=n(23610),ns=n(55581),as=(n(94205),n(95462),n(23020),n(53429),n(23739),n(39160),n(29928),n(64660),n(18547),n(42892)),is=n(69885),rs=(n(59656),n(75105),n(92471),n(16406),n(2508));ft.N,vt.N,_t.A,wt.N,bt.N,yt.A,xt.N,Nt.A,St.A,Gt.A,Dt.N,kt.N,Ut.N,Lt.A,Bt.A,It.N,Ot.N,qt.A,Et.N,Ft.A,Tt.N,Mt.N,$t.N,zt.N,Pt.A,Rt.N,Ht.N,Wt.N,Wt.N,Qt.N,jt.N,Vt.A,Kt.N,Yt.A,Xt.N,Pe.N,Jt.N,Zt.N,te.N,ee.N,se.N,ne.N,ae.N,ie.N,re.N,oe.N,le.N,ce.N,de.N,ue.default,Ae.A,pe.N,ge.N,he.A,me.N,u.A,Ce.N,fe.N,ve.N,_e.N,we.N,be.N,ye.A,xe.N,Ne.N,ke.N,Se.N,Ge.N,De.N,Ue.N,Le.N,Be.N,p.A,ze.N,Ie.A,Oe.A,qe.N,Ee.N,Fe.N,Te.N,Me.N,$e.N,Pe.a,Re.N,Qe.N,He.N,je.N,H.N,Ve.N,Ke.N,Ye.N,Xe.N,We.N,Je.N,Ze.N,ts.N,es.N,ss.A,Symbol.toStringTag,as.A,is.A,rs.yw,Symbol.toStringTag;var os=n(41944),ls=n(95101),cs=n(20005),ds=n(57505),us=n(24764);const As=(0,r.pM)({components:{NcActionButton:ds.A,NcActions:us.A,NcIconSvgWrapper:A.A},props:{actions:{type:Array,required:!0},disabled:{type:Boolean,required:!0},user:{type:Object,required:!0}},setup:()=>({SvgPencil:''}),computed:{enabledActions(){return this.actions.filter(t=>"function"!=typeof t.enabled||t.enabled(this.user))}},methods:{isSvg:cs.A}}),ps=(0,F.A)(As,function(){var t=this,e=t._self._c;return t._self._setupProxy,e("NcActions",{attrs:{"aria-label":t.t("settings","Toggle account actions menu"),disabled:t.disabled,inline:1}},[e("NcActionButton",{attrs:{"data-cy-user-list-action-edit":"",disabled:t.disabled},on:{click:function(e){return t.$emit("update:edit",!0)}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("NcIconSvgWrapper",{attrs:{svg:t.SvgPencil,"aria-hidden":"true"}})]},proxy:!0}])},[t._v("\n\t\t"+t._s(t.t("settings","Edit"))+"\n\t\t")]),t._v(" "),t._l(t.enabledActions,function({action:s,icon:n,text:a},i){return e("NcActionButton",{key:i,attrs:{disabled:t.disabled,"aria-label":a,icon:n,"close-after-click":""},on:{click:e=>s(e,{...t.user})},scopedSlots:t._u([t.isSvg(n)?{key:"icon",fn:function(){return[e("NcIconSvgWrapper",{attrs:{svg:n,"aria-hidden":"true"}})]},proxy:!0}:null],null,!0)},[t._v("\n\t\t"+t._s(a)+"\n\t\t")])})],2)},[],!1,null,null,null).exports,gs=window.OC.theme.productName,hs={name:"UserRow",components:{NcAvatar:os.A,NcLoadingIcon:p.A,NcProgressBar:ls.A,UserRowActions:ps},props:{user:{type:Object,required:!0},visible:{type:Boolean,required:!0},users:{type:Array,required:!0},quotaOptions:{type:Array,required:!0},languages:{type:Array,required:!0},settings:{type:Object,required:!0},externalActions:{type:Array,default:()=>[]},onEditUser:{type:Function,default:null}},setup(t){const{formattedFullTime:e}=(0,ns.m7)(1e3*t.user.firstLoginTimestamp,{relativeTime:!1,format:{timeStyle:"short",dateStyle:"short"}});return{formattedFullTime:e}},data:()=>({rand:Math.random().toString(36).substring(2),loading:{all:!1,delete:!1,disable:!1,wipe:!1}}),computed:{isObfuscated(){return(0,$.HK)(this.user)},usedQuota(){let t=this.user.quota.quota;return t=t>0?Math.min(100,Math.round(this.user.quota.used/t*100)):95*(1-1/(this.user.quota.used/(10*Math.pow(2,30))+1)),isNaN(t)?0:t},userLanguage(){const t=this.languages[0].languages.concat(this.languages[1].languages).find(t=>t.code===this.user.language);return"object"!=typeof t&&""!==this.user.language?{code:this.user.language,name:this.user.language}:""!==this.user.language&&t},userFirstLogin(){return this.user.firstLoginTimestamp>0?this.formattedFullTime:this.user.firstLoginTimestamp<0?t("settings","Unknown"):t("settings","Never")},userLastLoginTooltip(){return this.user.lastLoginTimestamp>0?OC.Util.formatDate(1e3*this.user.lastLoginTimestamp):""},userLastLogin(){return this.user.lastLoginTimestamp>0?OC.Util.relativeModifiedDate(1e3*this.user.lastLoginTimestamp):t("settings","Never")},showConfig(){return this.$store.getters.getShowConfig},isLoadingUser(){return this.loading.delete||this.loading.disable||this.loading.wipe},isLoadingField(){return this.loading.delete||this.loading.disable||this.loading.all},uniqueId(){return encodeURIComponent(this.user.id+this.rand)},userGroupsLabels(){const t=this.$store.getters.getGroups;return this.user.groups.map(e=>{const s=t.find(t=>t.id===e);return s?.name??e}).join(", ")},userSubAdminGroupsLabels(){const t=this.$store.getters.getGroups;return(this.user.subadmin??[]).map(e=>{const s=t.find(t=>t.id===e);return s?.name??e}).join(", ")},usedSpace(){return this.user.quota?.used?t("settings","{size} used",{size:(0,M.v7)(this.user.quota?.used)}):t("settings","{size} used",{size:(0,M.v7)(0)})},canEdit(){return(0,Ct.HW)().uid!==this.user.id||this.settings.isAdmin||this.settings.isDelegatedAdmin},userQuota(){let e=this.user.quota?.quota;return"default"===e&&(e=this.settings.defaultQuota,"none"!==e&&(e=(0,M.lT)(e,!0))),"none"===e||-3===e?t("settings","Unlimited"):e>=0?(0,M.v7)(e):(0,M.v7)(0)},userActions(){const e=[{icon:"icon-delete",text:t("settings","Delete account"),action:this.deleteUser},{icon:"icon-delete",text:t("settings","Disconnect all devices and delete local data"),action:this.wipeUserDevices},{icon:this.user.enabled?"icon-close":"icon-add",text:this.user.enabled?t("settings","Disable account"):t("settings","Enable account"),action:this.enableDisableUser}];return null!==this.user.email&&""!==this.user.email&&e.push({icon:"icon-mail",text:t("settings","Resend welcome email"),action:this.sendWelcomeMail}),e.concat(this.externalActions)}},methods:{toggleEdit(){this.onEditUser&&this.onEditUser(this.user)},async wipeUserDevices(){const e=this.user.id;await(0,g.C5)(),OC.dialogs.confirmDestructive(t("settings","In case of lost device or exiting the organization, this can remotely wipe the {productName} data from all devices associated with {userid}. Only works if the devices are connected to the internet.",{userid:e,productName:gs}),t("settings","Remote wipe of devices"),{type:OC.dialogs.YES_NO_BUTTONS,confirm:t("settings","Wipe {userid}'s devices",{userid:e}),confirmClasses:"error",cancel:t("settings","Cancel")},s=>{s&&(this.loading.wipe=!0,this.loading.all=!0,this.$store.dispatch("wipeUserDevices",e).then(()=>(0,c.Te)(t("settings","Wiped {userid}'s devices",{userid:e})),{timeout:2e3}).finally(()=>{this.loading.wipe=!1,this.loading.all=!1}))},!0)},async deleteUser(){const e=this.user.id;await(0,g.C5)(),OC.dialogs.confirmDestructive(t("settings","Fully delete {userid}'s account including all their personal files, app data, etc.",{userid:e}),t("settings","Account deletion"),{type:OC.dialogs.YES_NO_BUTTONS,confirm:t("settings","Delete {userid}'s account",{userid:e}),confirmClasses:"error",cancel:t("settings","Cancel")},t=>{if(t)return this.loading.delete=!0,this.loading.all=!0,this.$store.dispatch("deleteUser",e).then(()=>{this.loading.delete=!1,this.loading.all=!1})},!0)},enableDisableUser(){this.loading.delete=!0,this.loading.all=!0;const t=this.user.id,e=!this.user.enabled;return this.$store.dispatch("enableDisableUser",{userid:t,enabled:e}).then(()=>{this.loading.delete=!1,this.loading.all=!1})},sendWelcomeMail(){this.loading.all=!0,this.$store.dispatch("sendWelcomeMail",this.user.id).then(()=>(0,c.Te)(t("settings","Welcome mail sent!"),{timeout:2e3})).finally(()=>{this.loading.all=!1})}}};var ms=n(87910),Cs={};Cs.styleTagTransform=O(),Cs.setAttributes=U(),Cs.insert=G().bind(null,"head"),Cs.domAPI=k(),Cs.insertStyleElement=B(),x()(ms.A,Cs),ms.A&&ms.A.locals&&ms.A.locals;const fs=(0,F.A)(hs,function(){var t=this,e=t._self._c;return e("tr",{staticClass:"user-list__row",attrs:{"data-cy-user-row":t.user.id}},[e("td",{staticClass:"row__cell row__cell--avatar",attrs:{"data-cy-user-list-cell-avatar":""}},[t.isLoadingUser?e("NcLoadingIcon",{attrs:{name:t.t("settings","Loading account …"),size:32}}):t.visible?e("NcAvatar",{attrs:{"disable-menu":"","hide-status":"",user:t.user.id}}):t._e()],1),t._v(" "),e("td",{staticClass:"row__cell row__cell--displayname",attrs:{"data-cy-user-list-cell-displayname":""}},[t.isObfuscated?t._e():e("strong",{attrs:{title:t.user.displayname?.length>20?t.user.displayname:null}},[t._v("\n\t\t\t"+t._s(t.user.displayname)+"\n\t\t")])]),t._v(" "),e("td",{staticClass:"row__cell row__cell--username",attrs:{"data-cy-user-list-cell-username":""}},[e("span",{staticClass:"row__subtitle"},[t._v(t._s(t.user.id))])]),t._v(" "),e("td",{staticClass:"row__cell",attrs:{"data-cy-user-list-cell-email":""}},[t.isObfuscated?t._e():e("span",{attrs:{title:t.user.email?.length>20?t.user.email:null}},[t._v("\n\t\t\t"+t._s(t.user.email)+"\n\t\t")])]),t._v(" "),e("td",{staticClass:"row__cell row__cell--groups row__cell--multiline",attrs:{"data-cy-user-list-cell-groups":""}},[t.isObfuscated?t._e():e("span",{attrs:{title:t.userGroupsLabels?.length>40?t.userGroupsLabels:null}},[t._v("\n\t\t\t"+t._s(t.userGroupsLabels)+"\n\t\t")])]),t._v(" "),t.settings.isAdmin||t.settings.isDelegatedAdmin?e("td",{staticClass:"row__cell row__cell--large row__cell--multiline",attrs:{"data-cy-user-list-cell-subadmins":""}},[t.isObfuscated?t._e():e("span",{attrs:{title:t.userSubAdminGroupsLabels?.length>40?t.userSubAdminGroupsLabels:null}},[t._v("\n\t\t\t"+t._s(t.userSubAdminGroupsLabels)+"\n\t\t")])]):t._e(),t._v(" "),e("td",{staticClass:"row__cell",attrs:{"data-cy-user-list-cell-quota":""}},[t.isObfuscated?t._e():[e("span",{attrs:{id:"quota-progress"+t.uniqueId}},[t._v(t._s(t.userQuota)+" ("+t._s(t.usedSpace)+")")]),t._v(" "),e("NcProgressBar",{staticClass:"row__progress",class:{"row__progress--warn":t.usedQuota>80},attrs:{"aria-labelledby":"quota-progress"+t.uniqueId,value:t.usedQuota}})]],2),t._v(" "),t.showConfig.showLanguages?e("td",{staticClass:"row__cell row__cell--large",attrs:{"data-cy-user-list-cell-language":""}},[t.isObfuscated?t._e():e("span",[t._v("\n\t\t\t"+t._s(t.userLanguage.name)+"\n\t\t")])]):t._e(),t._v(" "),t.showConfig.showUserBackend||t.showConfig.showStoragePath?e("td",{staticClass:"row__cell row__cell--large",attrs:{"data-cy-user-list-cell-storage-location":""}},[t.isObfuscated?t._e():[t.showConfig.showUserBackend?e("span",[t._v(t._s(t.user.backend))]):t._e(),t._v(" "),t.showConfig.showStoragePath?e("span",{staticClass:"row__subtitle",attrs:{title:t.user.storageLocation}},[t._v("\n\t\t\t\t"+t._s(t.user.storageLocation)+"\n\t\t\t")]):t._e()]],2):t._e(),t._v(" "),t.showConfig.showFirstLogin?e("td",{staticClass:"row__cell",attrs:{"data-cy-user-list-cell-first-login":""}},[t.isObfuscated?t._e():e("span",[t._v(t._s(t.userFirstLogin))])]):t._e(),t._v(" "),t.showConfig.showLastLogin?e("td",{staticClass:"row__cell",attrs:{title:t.userLastLoginTooltip,"data-cy-user-list-cell-last-login":""}},[t.isObfuscated?t._e():e("span",[t._v(t._s(t.userLastLogin))])]):t._e(),t._v(" "),e("td",{staticClass:"row__cell row__cell--large row__cell--fill",attrs:{"data-cy-user-list-cell-manager":""}},[t.isObfuscated?t._e():e("span",[t._v("\n\t\t\t"+t._s(t.user.manager)+"\n\t\t")])]),t._v(" "),e("td",{staticClass:"row__cell row__cell--actions",attrs:{"data-cy-user-list-cell-actions":""}},[t.visible&&!t.isObfuscated&&t.canEdit&&!t.loading.all?e("UserRowActions",{attrs:{actions:t.userActions,disabled:t.isLoadingField,user:t.user},on:{"update:edit":t.toggleEdit}}):t._e()],1)])},[],!1,null,"78b3749c",null).exports;var vs=n(57579),_s=n(46855);r.Ay.directive("elementVisibility",vs.Zx);const ws=r.Ay.extend({name:"VirtualList",props:{dataComponent:{type:[Object,Function],required:!0},dataKey:{type:String,required:!0},dataSources:{type:Array,required:!0},itemHeight:{type:Number,required:!0},extraProps:{type:Object,default:()=>({})}},data:()=>({bufferItems:3,index:0,headerHeight:0,tableHeight:0,resizeObserver:null}),computed:{startIndex(){return Math.max(0,this.index-3)},shownItems(){return Math.ceil((this.tableHeight-this.headerHeight)/this.itemHeight)+6},renderedItems(){return this.dataSources.slice(this.startIndex,this.startIndex+this.shownItems)},tbodyStyle(){const t=this.startIndex+this.shownItems>this.dataSources.length,e=this.dataSources.length-this.startIndex-this.shownItems,s=Math.min(this.dataSources.length-this.startIndex,e);return{paddingTop:this.startIndex*this.itemHeight+"px",paddingBottom:t?0:s*this.itemHeight+"px"}}},mounted(){const t=this.$el,e=this.$refs?.tfoot,s=this.$refs?.thead;this.resizeObserver=new ResizeObserver((0,_s.A)(()=>{this.headerHeight=s?.clientHeight??0,this.tableHeight=t?.clientHeight??0,_.A.debug("VirtualList resizeObserver updated"),this.onScroll()},100)),this.resizeObserver.observe(t),this.resizeObserver.observe(e),this.resizeObserver.observe(s),this.$el.addEventListener("scroll",this.onScroll)},beforeDestroy(){this.resizeObserver&&this.resizeObserver.disconnect()},methods:{handleFooterVisibility(t){t&&this.$emit("scroll-end")},onScroll(){this.index=Math.max(0,Math.round(this.$el.scrollTop/this.itemHeight))}}});var bs=n(49808),ys={};ys.styleTagTransform=O(),ys.setAttributes=U(),ys.insert=G().bind(null,"head"),ys.domAPI=k(),ys.insertStyleElement=B(),x()(bs.A,ys),bs.A&&bs.A.locals&&bs.A.locals;const xs=(0,F.A)(ws,function(){var t=this,e=t._self._c;return t._self._setupProxy,e("table",{staticClass:"user-list"},[t._t("before"),t._v(" "),e("thead",{ref:"thead",staticClass:"user-list__header",attrs:{role:"rowgroup"}},[t._t("header")],2),t._v(" "),e("tbody",{staticClass:"user-list__body",style:t.tbodyStyle},t._l(t.renderedItems,function(s,n){return e(t.dataComponent,t._b({key:s[t.dataKey],tag:"component",attrs:{user:s,visible:(n>=t.bufferItems||t.index<=t.bufferItems)&&n[]}},setup:()=>({mdiAccountGroupOutline:l.dgQ,rowHeight:55,UserRow:fs}),data:()=>({loading:{all:!1,groups:!1,users:!1},newUser:{...Ns},editingUser:null,isInitialLoad:!0}),computed:{searchQuery(){return this.$store.getters.getSearchQuery},showConfig(){return this.$store.getters.getShowConfig},settings(){return this.$store.getters.getServerData},style(){return{"--row-height":`${this.rowHeight}px`}},users(){return this.$store.getters.getUsers},filteredUsers(){return"disabled"===this.selectedGroup?this.users.filter(t=>!1===t.enabled):this.users.filter(t=>!1!==t.enabled)},groups(){return this.$store.getters.getSortedGroups.filter(t=>"__nc_internal_recent"!==t.id&&"disabled"!==t.id)},quotaOptions(){const t=this.settings.quotaPreset.reduce((t,e)=>t.concat({id:e,label:e}),[]);return this.settings.allowUnlimitedQuota&&t.unshift($.SA),t.unshift($.MY),t},usersOffset(){return this.$store.getters.getUsersOffset},usersLimit(){return this.$store.getters.getUsersLimit},disabledUsersOffset(){return this.$store.getters.getDisabledUsersOffset},disabledUsersLimit(){return this.$store.getters.getDisabledUsersLimit},usersCount(){return this.users.length},languages(){return[{label:t("settings","Common languages"),languages:this.settings.languages.commonLanguages},{label:t("settings","Other languages"),languages:this.settings.languages.otherLanguages}]}},watch:{async searchQuery(){this.$store.commit("resetUsers"),await this.loadUsers()},async selectedGroup(t){this.isInitialLoad=!0,await this.redirectIfDisabled(),this.$store.commit("resetUsers"),await this.loadUsers(),this.setNewUserDefaultGroup(t)},filteredUsers(t){_.A.debug(`${t.length} filtered user(s)`)}},async created(){await this.loadUsers()},async mounted(){this.settings.canChangePassword||OC.Notification.showTemporary(t("settings","Password change is disabled because the master key is disabled")),this.initForm(),await this.redirectIfDisabled()},methods:{openEditDialog(t){this.editingUser=t},async handleScrollEnd(){await this.loadUsers()},async loadUsers(){this.loading.users=!0;try{"disabled"===this.selectedGroup?await this.$store.dispatch("getDisabledUsers",{offset:this.disabledUsersOffset,limit:this.disabledUsersLimit,search:this.searchQuery}):"__nc_internal_recent"===this.selectedGroup?await this.$store.dispatch("getRecentUsers",{offset:this.usersOffset,limit:this.usersLimit,search:this.searchQuery}):await this.$store.dispatch("getUsers",{offset:this.usersOffset,limit:this.usersLimit,group:this.selectedGroup,search:this.searchQuery}),_.A.debug(`${this.users.length} total user(s) loaded`)}catch(t){_.A.error("Failed to load accounts",{error:t}),(0,c.Qg)("Failed to load accounts")}this.loading.users=!1,this.isInitialLoad=!1},closeDialog(){this.$store.dispatch("setShowConfig",{key:"showNewUserForm",value:!1}),this.resetForm()},resetForm(){Object.assign(this.newUser,{...Ns,groups:[],subadminGroups:[]}),this.newUser.groups.splice(0),this.newUser.subadminGroups.splice(0),this.initForm()},initForm(){this.settings.defaultLanguage&&(this.newUser.language.code=this.settings.defaultLanguage),this.setNewUserDefaultGroup(this.selectedGroup),this.loading.all=!1},setNewUserDefaultGroup(t){if(!t&&!this.settings.isAdmin&&!this.settings.isDelegatedAdmin){const t=this.$store.getters.getSubAdminGroups;return void(1===t.length&&(this.newUser.groups=[...t]))}if(t){const e=this.groups.find(e=>e.id===t);if(e)return void(this.newUser.groups=[e])}this.newUser.groups=[]},async redirectIfDisabled(){const t=this.$store.getters.getGroups;"disabled"===this.selectedGroup&&t.findIndex(t=>"disabled"===t.id&&0===t.usercount)>-1&&(this.$router.push({name:"users"}),await this.loadUsers())}}};var Ss=n(96562),Gs={};Gs.styleTagTransform=O(),Gs.setAttributes=U(),Gs.insert=G().bind(null,"head"),Gs.domAPI=k(),Gs.insertStyleElement=B(),x()(Ss.A,Gs),Ss.A&&Ss.A.locals&&Ss.A.locals;const Ds=(0,F.A)(ks,function(){var t=this,e=t._self._c;return e("Fragment",[t.showConfig.showNewUserForm?e("NewUserDialog",{attrs:{loading:t.loading,"new-user":t.newUser,"quota-options":t.quotaOptions},on:{closing:t.closeDialog}}):t._e(),t._v(" "),t.editingUser?e("EditUserDialog",{attrs:{user:t.editingUser,"quota-options":t.quotaOptions},on:{closing:function(e){t.editingUser=null}}}):t._e(),t._v(" "),0===t.filteredUsers.length?e("NcEmptyContent",{staticClass:"empty",attrs:{name:t.isInitialLoad&&t.loading.users?null:t.t("settings","No accounts")},scopedSlots:t._u([{key:"icon",fn:function(){return[t.isInitialLoad&&t.loading.users?e("NcLoadingIcon",{attrs:{name:t.t("settings","Loading accounts …"),size:64}}):e("NcIconSvgWrapper",{attrs:{path:t.mdiAccountGroupOutline,size:64}})]},proxy:!0}],null,!1,1085698719)}):e("VirtualList",{style:t.style,attrs:{"data-component":t.UserRow,"data-sources":t.filteredUsers,"data-key":"id","data-cy-user-list":"","item-height":t.rowHeight,"extra-props":{users:t.users,settings:t.settings,quotaOptions:t.quotaOptions,languages:t.languages,externalActions:t.externalActions,onEditUser:t.openEditDialog}},on:{"scroll-end":t.handleScrollEnd},scopedSlots:t._u([{key:"before",fn:function(){return[e("caption",{staticClass:"hidden-visually"},[t._v("\n\t\t\t\t"+t._s(t.t("settings","List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list."))+"\n\t\t\t")])]},proxy:!0},{key:"header",fn:function(){return[e("UserListHeader")]},proxy:!0},{key:"footer",fn:function(){return[e("UserListFooter",{attrs:{loading:t.loading.users,"filtered-users":t.filteredUsers}})]},proxy:!0}])})],1)},[],!1,null,"989d7232",null).exports,Us=(0,r.pM)({name:"UserManagement",components:{NcAppContent:o.A,UserList:Ds},data:()=>({externalActions:[]}),computed:{pageHeading(){return null===this.selectedGroupDecoded?(0,i.Tl)("settings","All accounts"):{admin:(0,i.Tl)("settings","Admins"),disabled:(0,i.Tl)("settings","Disabled accounts")}[this.selectedGroupDecoded]??(0,i.Tl)("settings","Account group: {group}",{group:this.selectedGroupDecoded})},selectedGroup(){return this.$route.params.selectedGroup},selectedGroupDecoded(){return this.selectedGroup?decodeURIComponent(this.selectedGroup):null}},beforeMount(){this.$store.dispatch("getPasswordPolicyMinLength")},created(){window.OCA=window.OCA??{},window.OCA.Settings=window.OCA.Settings??{},window.OCA.Settings.UserList=window.OCA.Settings.UserList??{},window.OCA.Settings.UserList.registerAction=this.registerAction,(0,a.Ic)("settings:user-management:loaded")},methods:{t:i.Tl,registerAction(t,e,s,n){return this.externalActions.push({icon:t,text:e,action:s,enabled:n}),this.externalActions}}});var Ls=n(17130),Bs={};Bs.styleTagTransform=O(),Bs.setAttributes=U(),Bs.insert=G().bind(null,"head"),Bs.domAPI=k(),Bs.insertStyleElement=B(),x()(Ls.A,Bs),Ls.A&&Ls.A.locals&&Ls.A.locals;const Is=(0,F.A)(Us,function(){var t=this,e=t._self._c;return t._self._setupProxy,e("NcAppContent",{attrs:{"page-heading":t.pageHeading}},[e("UserList",{attrs:{"selected-group":t.selectedGroupDecoded,"external-actions":t.externalActions}})],1)},[],!1,null,"6c72a095",null).exports},21299(e,s,n){"use strict";n.r(s),n.d(s,{default:()=>bt});var a=n(85471),i=n(9165),r=n(53334),o=n(94205),l=n(46855),c=n(24387),d=n(42530),u=n(52439),A=n(27345),p=n(86226),g=n(74095),h=n(85947),m=n(6695),C=n(16879),f=n(85168),v=n(97786),_=n(54914),w=n(44131),b=n(71711),y=n(48283),x=n(88289),N=n(57505),k=n(83947),S=n(371),G=n(31922),D=n(16502);const U={name:"TrashCanOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}};var L=n(14486);const B=(0,L.A)(U,function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon trash-can-outline-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M9,3V4H4V6H5V19A2,2 0 0,0 7,21H17A2,2 0 0,0 19,19V6H20V4H15V3H9M7,6H17V19H7V6M9,8V17H11V8H9M13,8V17H15V8H13Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])},[],!1,null,null,null).exports,I={name:"GroupListItem",components:{AccountGroup:G.A,Delete:B,Fragment:_.F,NcActionButton:N.A,NcActionInput:w.A,NcAppNavigationItem:u.A,NcButton:g.A,NcCounterBubble:h.A,NcModal:k.A,NcNoteCard:S.A,Pencil:D.A},props:{active:{type:Boolean,required:!0},count:{type:Number,default:null},id:{type:String,required:!0},name:{type:String,required:!0}},data:()=>({loadingRenameGroup:!1,openGroupMenu:!1,showRemoveGroupModal:!1}),computed:{settings(){return this.$store.getters.getServerData}},methods:{handleGroupMenuOpen(){this.openGroupMenu=!0},async renameGroup(t){if(""===t.trim())return;const e=this.$refs.displayNameInput.$el.querySelector('input[type="text"]').value;if(""!==e.trim())try{this.openGroupMenu=!1,this.loadingRenameGroup=!0,await this.$store.dispatch("renameGroup",{groupid:t.trim(),displayName:e.trim()}),this.loadingRenameGroup=!1}catch{this.openGroupMenu=!0,this.loadingRenameGroup=!1}},async removeGroup(){try{await this.$store.dispatch("removeGroup",this.id),this.showRemoveGroupModal=!1}catch{(0,f.Qg)(t("settings",'Failed to delete group "{group}"',{group:this.name}))}}}};var O=n(85072),q=n.n(O),E=n(97825),F=n.n(E),T=n(77659),M=n.n(T),$=n(55056),z=n.n($),P=n(10540),R=n.n(P),H=n(41113),W=n.n(H),Q=n(89984),j={};j.styleTagTransform=W(),j.setAttributes=z(),j.insert=M().bind(null,"head"),j.domAPI=F(),j.insertStyleElement=R(),q()(Q.A,j),Q.A&&Q.A.locals&&Q.A.locals;const V=(0,L.A)(I,function(){var t=this,e=t._self._c;return e("Fragment",[t.showRemoveGroupModal?e("NcModal",{on:{close:function(e){t.showRemoveGroupModal=!1}}},[e("div",{staticClass:"modal__content"},[e("h2",{staticClass:"modal__header"},[t._v("\n\t\t\t\t"+t._s(t.t("settings","Please confirm the group removal"))+"\n\t\t\t")]),t._v(" "),e("NcNoteCard",{attrs:{type:"warning","show-alert":""}},[t._v("\n\t\t\t\t"+t._s(t.t("settings",'You are about to delete the group "{group}". The accounts will NOT be deleted.',{group:t.name}))+"\n\t\t\t")]),t._v(" "),e("div",{staticClass:"modal__button-row"},[e("NcButton",{attrs:{variant:"secondary"},on:{click:function(e){t.showRemoveGroupModal=!1}}},[t._v("\n\t\t\t\t\t"+t._s(t.t("settings","Cancel"))+"\n\t\t\t\t")]),t._v(" "),e("NcButton",{attrs:{variant:"primary"},on:{click:t.removeGroup}},[t._v("\n\t\t\t\t\t"+t._s(t.t("settings","Confirm"))+"\n\t\t\t\t")])],1)],1)]):t._e(),t._v(" "),e("NcAppNavigationItem",{key:t.id,ref:"listItem",attrs:{exact:!0,name:t.name,to:{name:"group",params:{selectedGroup:encodeURIComponent(t.id)}},loading:t.loadingRenameGroup,"menu-open":t.openGroupMenu},on:{"update:menuOpen":t.handleGroupMenuOpen},scopedSlots:t._u([{key:"icon",fn:function(){return[e("AccountGroup",{attrs:{size:20}})]},proxy:!0},{key:"counter",fn:function(){return[t.count?e("NcCounterBubble",{attrs:{type:t.active?"highlighted":void 0}},[t._v("\n\t\t\t\t"+t._s(t.count)+"\n\t\t\t")]):t._e()]},proxy:!0},{key:"actions",fn:function(){return["admin"!==t.id&&"disabled"!==t.id&&(t.settings.isAdmin||t.settings.isDelegatedAdmin)?e("NcActionInput",{ref:"displayNameInput",attrs:{"trailing-button-label":t.t("settings","Submit"),type:"text","model-value":t.name,label:t.t("settings","Rename group")},on:{submit:function(e){return t.renameGroup(t.id)}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("Pencil",{attrs:{size:20}})]},proxy:!0}],null,!1,580569589)}):t._e(),t._v(" "),"admin"!==t.id&&"disabled"!==t.id&&(t.settings.isAdmin||t.settings.isDelegatedAdmin)?e("NcActionButton",{on:{click:function(e){t.showRemoveGroupModal=!0}},scopedSlots:t._u([{key:"icon",fn:function(){return[e("Delete",{attrs:{size:20}})]},proxy:!0}],null,!1,2705356561)},[t._v("\n\t\t\t\t"+t._s(t.t("settings","Delete group"))+"\n\t\t\t")]):t._e()]},proxy:!0}])})],1)},[],!1,null,"30743619",null).exports;function K(t){return void 0===t?null:{id:t.id,title:t.name,usercount:t.usercount??0,count:Math.max(0,(t.usercount??0)-(t.disabled??0))}}function Y(t){const e=(0,a.EW)(()=>t.value.filter(t=>"disabled"!==t.id&&"__nc_internal_recent"!==t.id&&"admin"!==t.id).map(t=>K(t)).filter(t=>null!==t)),s=(0,a.EW)(()=>K(t.value.find(t=>"admin"===t.id))),n=(0,a.EW)(()=>K(t.value.find(t=>"disabled"===t.id)));return{adminGroup:s,recentGroup:(0,a.EW)(()=>K(t.value.find(t=>"__nc_internal_recent"===t.id))),disabledGroup:n,userGroups:e}}var X=n(21106),J=n(19978),Z=n(36347);const tt=(0,a.pM)({__name:"AppNavigationGroupList",setup(t){const e=(0,Z.P)(),s=(0,c.lq)(),n=(0,c.rd)();(0,a.KC)(async()=>{await q()});const o=(0,a.EW)(()=>s.params?.selectedGroup),l=(0,a.EW)(()=>o.value?decodeURIComponent(o.value):null),d=(0,a.EW)(()=>e.getters.getServerData),u=(0,a.EW)(()=>d.value.isAdmin||d.value.isDelegatedAdmin),p=(0,a.EW)(()=>u.value?e.getters.getSortedGroups:e.getters.getSubAdminGroups),{userGroups:g}=Y(p),h=(0,a.KR)(!1),C=(0,a.KR)(!1),N=(0,a.KR)(!1),k=(0,a.KR)(""),S=(0,a.KR)(!1),G=(0,a.KR)(0),D=(0,a.EW)(()=>e.getters.getSearchQuery),U=(0,a.EW)(()=>{if(u.value)return g.value;const t=D.value.toLowerCase();return g.value.filter(e=>-1!==e.id.toLowerCase().search(t)||-1!==e.title.toLowerCase().search(t))}),L=(0,a.KR)([]),B=(0,a.EW)(()=>L.value.findLast(t=>t?.$vnode?.key===g.value?.at(-1)?.id)?.$refs?.listItem?.$el),I=(0,v.ITo)(B);(0,a.wB)(I,async()=>{I.value&&await q()}),(0,a.wB)(D,async()=>{e.commit("resetGroups"),G.value=0,await q()});const O=(0,a.KR)();async function q(){if(u.value){O.value&&O.value.cancel(),S.value=!0;try{O.value=(0,J.N_)({search:D.value,offset:G.value,limit:25});const t=await O.value;t.length>0&&(G.value+=25);for(const s of t)e.commit("addGroup",s)}catch(t){X.A.error((0,r.t)("settings","Failed to load groups"),{error:t})}O.value=void 0,S.value=!1}}return{__sfc:!0,store:e,route:s,router:n,selectedGroup:o,selectedGroupDecoded:l,settings:d,isAdminOrDelegatedAdmin:u,groups:p,userGroups:g,isAddGroupOpen:h,loadingAddGroup:C,hasAddGroupError:N,newGroupName:k,loadingGroups:S,offset:G,groupsSearchQuery:D,filteredGroups:U,groupListItems:L,lastGroupListItem:B,isLastGroupVisible:I,promise:O,loadGroups:q,createGroup:async function(){N.value=!1;const t=k.value.trim();if(""!==t){h.value=!1,C.value=!0;try{await e.dispatch("addGroup",t),await n.push({name:"group",params:{selectedGroup:encodeURIComponent(t)}});const s=L.value.findLast(e=>e?.$vnode?.key===t);s?.$refs?.listItem?.$el?.scrollIntoView({behavior:"smooth",block:"nearest"}),k.value=""}catch{(0,f.Qg)((0,r.t)("settings","Failed to create group"))}C.value=!1}else N.value=!0},mdiAccountGroupOutline:i.dgQ,mdiPlus:i.biz,t:r.t,Fragment:_.F,NcActionInput:w.A,NcActionText:b.A,NcAppNavigationCaption:y.N,NcAppNavigationList:A.A,NcIconSvgWrapper:m.A,NcLoadingIcon:x.A,GroupListItem:V}}}),et=(0,L.A)(tt,function(){var t=this,e=t._self._c,s=t._self._setupProxy;return e(s.Fragment,[e(s.NcAppNavigationCaption,{attrs:{name:s.t("settings","Groups"),disabled:s.loadingAddGroup,"aria-label":s.loadingAddGroup?s.t("settings","Creating group…"):s.t("settings","Create group"),"force-menu":"","is-heading":"",open:s.isAddGroupOpen},on:{"update:open":function(t){s.isAddGroupOpen=t}},scopedSlots:t._u([s.isAdminOrDelegatedAdmin?{key:"actionsTriggerIcon",fn:function(){return[s.loadingAddGroup?e(s.NcLoadingIcon):e(s.NcIconSvgWrapper,{attrs:{path:s.mdiPlus}})]},proxy:!0}:null,s.isAdminOrDelegatedAdmin?{key:"actions",fn:function(){return[e(s.NcActionText,{scopedSlots:t._u([{key:"icon",fn:function(){return[e(s.NcIconSvgWrapper,{attrs:{path:s.mdiAccountGroupOutline}})]},proxy:!0}],null,!1,4071362859)},[t._v("\n\t\t\t\t"+t._s(s.t("settings","Create group"))+"\n\t\t\t")]),t._v(" "),e(s.NcActionInput,{attrs:{label:s.t("settings","Group name"),"data-cy-users-settings-new-group-name":"","label-outside":!1,disabled:s.loadingAddGroup,error:s.hasAddGroupError,"helper-text":s.hasAddGroupError?s.t("settings","Please enter a valid group name"):""},on:{submit:s.createGroup},model:{value:s.newGroupName,callback:function(t){s.newGroupName=t},expression:"newGroupName"}})]},proxy:!0}:null],null,!0)}),t._v(" "),e("p",{staticClass:"hidden-visually",attrs:{id:"group-list-desc"}},[t._v("\n\t\t"+t._s(s.t("settings","List of groups. This list is not fully populated for performance reasons. The groups will be loaded as you navigate or search through the list."))+"\n\t")]),t._v(" "),e(s.NcAppNavigationList,{staticClass:"account-management__group-list",attrs:{"aria-describedby":"group-list-desc","data-cy-users-settings-navigation-groups":"custom"}},[t._l(s.filteredGroups,function(t){return e(s.GroupListItem,{key:t.id,ref:"groupListItems",refInFor:!0,attrs:{id:t.id,active:s.selectedGroupDecoded===t.id,name:t.title,count:t.count}})}),t._v(" "),s.loadingGroups?e("div",{attrs:{role:"note"}},[e(s.NcLoadingIcon,{attrs:{name:s.t("settings","Loading groups…")}})],1):t._e()],2)],1)},[],!1,null,null,null).exports;var st=n(19051),nt=n(35810),at=n(63814),it=n(31744),rt=n(93651),ot=n(15807),lt=n(32073),ct=n(91624),dt=n(6670),ut=n(67607),At=n(54162),pt=n(34954);const gt={name:"UserSettingsDialog",components:{NcAppSettingsDialog:it.N,NcAppSettingsSection:rt.N,NcAppSettingsShortcutsSection:ot.N,NcCheckboxRadioSwitch:lt.A,NcHotkey:ct.N,NcHotkeyList:dt.N,NcNoteCard:S.A,NcSelect:ut.default},props:{open:{type:Boolean,required:!0}},emits:["update:open"],setup(t,{emit:e}){(0,o.C)("?",async()=>{e("update:open",!0),await(0,a.dY)(),document.getElementById("settings-section_keyboard-shortcuts")?.scrollIntoView({behavior:"smooth",inline:"nearest"})},{stop:!0,prevent:!0})},data:()=>({selectedQuota:!1,loadingSendMail:!1}),computed:{groupSorting:{get(){return this.$store.getters.getGroupSorting===At.q.GroupName?"name":"member-count"},set(t){this.$store.commit("setGroupSorting","name"===t?At.q.GroupName:At.q.UserCount)}},isGroupSortingEnforced(){return this.$store.getters.getServerData.forceSortGroupByName},isModalOpen:{get(){return this.open},set(t){this.$emit("update:open",t)}},showConfig(){return this.$store.getters.getShowConfig},settings(){return this.$store.getters.getServerData},showLanguages:{get(){return this.showConfig.showLanguages},set(t){this.setShowConfig("showLanguages",t)}},showFirstLogin:{get(){return this.showConfig.showFirstLogin},set(t){this.setShowConfig("showFirstLogin",t)}},showLastLogin:{get(){return this.showConfig.showLastLogin},set(t){this.setShowConfig("showLastLogin",t)}},showUserBackend:{get(){return this.showConfig.showUserBackend},set(t){this.setShowConfig("showUserBackend",t)}},showStoragePath:{get(){return this.showConfig.showStoragePath},set(t){this.setShowConfig("showStoragePath",t)}},quotaOptions(){const t=this.settings.quotaPreset.reduce((t,e)=>t.concat({id:e,label:e}),[]);return this.settings.allowUnlimitedQuota&&t.unshift(pt.SA),t},defaultQuota:{get(){return!1!==this.selectedQuota?this.selectedQuota:this.settings.defaultQuota!==pt.SA.id&&OC.Util.computerFileSize(this.settings.defaultQuota)>=0?{id:this.settings.defaultQuota,label:this.settings.defaultQuota}:pt.SA},set(t){this.selectedQuota=t}},sendWelcomeMail:{get(){return this.settings.newUserSendEmail},async set(t){try{this.loadingSendMail=!0,this.$store.commit("setServerData",{...this.settings,newUserSendEmail:t}),await st.Ay.post((0,at.Jv)("/settings/users/preferences/newUser.sendEmail"),{value:t?"yes":"no"})}catch(t){X.A.error("Could not update newUser.sendEmail preference",{error:t})}finally{this.loadingSendMail=!1}}}},methods:{filterQuotas(t,e,s){const n=s.toLocaleLowerCase().replaceAll(/\s/g,"");return(e||"").toLocaleLowerCase().replaceAll(/\s/g,"").indexOf(n)>-1},setShowConfig(t,e){this.$store.dispatch("setShowConfig",{key:t,value:e})},validateQuota(t){"object"==typeof t&&(t=t?.id||t.label);const e=(0,nt.lT)(t,!0);return null===e?pt.SA:{id:t=(0,nt.v7)(e),label:t}},setDefaultQuota(t="none"){"none"===t&&(t=pt.SA),this.$store.dispatch("setAppConfig",{app:"files",key:"default_quota",value:t.id?t.id:t}).then(()=>{"object"!=typeof t&&(t={id:t,label:t}),this.defaultQuota=t})}}};var ht=n(82300),mt={};mt.styleTagTransform=W(),mt.setAttributes=z(),mt.insert=M().bind(null,"head"),mt.domAPI=F(),mt.insertStyleElement=R(),q()(ht.A,mt),ht.A&&ht.A.locals&&ht.A.locals;const Ct=(0,L.A)(gt,function(){var t=this,e=t._self._c;return e("NcAppSettingsDialog",{attrs:{open:t.isModalOpen,"show-navigation":!0,name:t.t("settings","Account management settings")},on:{"update:open":function(e){t.isModalOpen=e}}},[e("NcAppSettingsSection",{attrs:{id:"visibility-settings",name:t.t("settings","Visibility")}},[e("NcCheckboxRadioSwitch",{attrs:{type:"switch","data-test":"showLanguages"},model:{value:t.showLanguages,callback:function(e){t.showLanguages=e},expression:"showLanguages"}},[t._v("\n\t\t\t"+t._s(t.t("settings","Show language"))+"\n\t\t")]),t._v(" "),e("NcCheckboxRadioSwitch",{attrs:{type:"switch","data-test":"showUserBackend"},model:{value:t.showUserBackend,callback:function(e){t.showUserBackend=e},expression:"showUserBackend"}},[t._v("\n\t\t\t"+t._s(t.t("settings","Show account backend"))+"\n\t\t")]),t._v(" "),e("NcCheckboxRadioSwitch",{attrs:{type:"switch","data-test":"showStoragePath"},model:{value:t.showStoragePath,callback:function(e){t.showStoragePath=e},expression:"showStoragePath"}},[t._v("\n\t\t\t"+t._s(t.t("settings","Show storage path"))+"\n\t\t")]),t._v(" "),e("NcCheckboxRadioSwitch",{attrs:{type:"switch","data-test":"showFirstLogin"},model:{value:t.showFirstLogin,callback:function(e){t.showFirstLogin=e},expression:"showFirstLogin"}},[t._v("\n\t\t\t"+t._s(t.t("settings","Show first login"))+"\n\t\t")]),t._v(" "),e("NcCheckboxRadioSwitch",{attrs:{type:"switch","data-test":"showLastLogin"},model:{value:t.showLastLogin,callback:function(e){t.showLastLogin=e},expression:"showLastLogin"}},[t._v("\n\t\t\t"+t._s(t.t("settings","Show last login"))+"\n\t\t")])],1),t._v(" "),e("NcAppSettingsSection",{attrs:{id:"groups-sorting",name:t.t("settings","Sorting")}},[t.isGroupSortingEnforced?e("NcNoteCard",{attrs:{type:"warning"}},[t._v("\n\t\t\t"+t._s(t.t("settings","The system config enforces sorting the groups by name. This also disables showing the member count."))+"\n\t\t")]):t._e(),t._v(" "),e("fieldset",[e("legend",[t._v(t._s(t.t("settings","Group list sorting")))]),t._v(" "),e("NcNoteCard",{staticClass:"dialog__note",attrs:{type:"info",text:t.t("settings","Sorting only applies to the currently loaded groups for performance reasons. Groups will be loaded as you navigate or search through the list.")}}),t._v(" "),e("NcCheckboxRadioSwitch",{attrs:{type:"radio","data-test":"sortGroupsByMemberCount",disabled:t.isGroupSortingEnforced,name:"group-sorting-mode",value:"member-count"},model:{value:t.groupSorting,callback:function(e){t.groupSorting=e},expression:"groupSorting"}},[t._v("\n\t\t\t\t"+t._s(t.t("settings","By member count"))+"\n\t\t\t")]),t._v(" "),e("NcCheckboxRadioSwitch",{attrs:{type:"radio","data-test":"sortGroupsByName",disabled:t.isGroupSortingEnforced,name:"group-sorting-mode",value:"name"},model:{value:t.groupSorting,callback:function(e){t.groupSorting=e},expression:"groupSorting"}},[t._v("\n\t\t\t\t"+t._s(t.t("settings","By name"))+"\n\t\t\t")])],1)],1),t._v(" "),e("NcAppSettingsSection",{attrs:{id:"email-settings",name:t.t("settings","Send email")}},[e("NcCheckboxRadioSwitch",{attrs:{type:"switch","data-test":"sendWelcomeMail",disabled:t.loadingSendMail},model:{value:t.sendWelcomeMail,callback:function(e){t.sendWelcomeMail=e},expression:"sendWelcomeMail"}},[t._v("\n\t\t\t"+t._s(t.t("settings","Send welcome email to new accounts"))+"\n\t\t")])],1),t._v(" "),e("NcAppSettingsSection",{attrs:{id:"default-settings",name:t.t("settings","Defaults")}},[e("NcSelect",{attrs:{clearable:!1,"create-option":t.validateQuota,"filter-by":t.filterQuotas,"input-label":t.t("settings","Default quota"),options:t.quotaOptions,placement:"top",placeholder:t.t("settings","Select default quota"),taggable:""},on:{"option:selected":t.setDefaultQuota},model:{value:t.defaultQuota,callback:function(e){t.defaultQuota=e},expression:"defaultQuota"}})],1),t._v(" "),e("NcAppSettingsShortcutsSection",[e("NcHotkeyList",{attrs:{label:t.t("settings","Search")}},[e("NcHotkey",{attrs:{label:t.t("settings","Focus search"),hotkey:"Control F"}})],1),t._v(" "),e("NcHotkeyList",{attrs:{label:t.t("settings","Help")}},[e("NcHotkey",{attrs:{label:t.t("settings","Show those shortcuts"),hotkey:"?"}})],1)],1)],1)},[],!1,null,"649c1de8",null).exports,ft=(0,a.pM)({__name:"UserManagementNavigation",setup(t){const e=(0,c.lq)(),s=(0,Z.P)(),n=(0,a.KR)(),f=(0,a.KR)(""),v=(0,l.A)(t=>{s.commit("setSearchQuery",t)},300);(0,a.wB)(f,t=>v(t)),(0,a.xo)(()=>v.clear()),(0,o.C)("f",()=>n.value?.focus(),{ctrl:!0,stop:!0,prevent:!0});const _=(0,a.KR)(!1),w=(0,a.EW)(()=>e.params?.selectedGroup),b=(0,a.EW)(()=>w.value?decodeURIComponent(w.value):null),y=(0,a.EW)(()=>s.getters.getUserCount),x=(0,a.EW)(()=>s.getters.getSortedGroups),{adminGroup:N,recentGroup:k,disabledGroup:S}=Y(x),G=(0,a.EW)(()=>s.getters.getServerData),D=(0,a.EW)(()=>G.value.isAdmin||G.value.isDelegatedAdmin);return{__sfc:!0,route:e,store:s,searchField:n,searchInput:f,commitSearch:v,clearSearch:function(){v.clear(),f.value="",s.commit("setSearchQuery","")},isDialogOpen:_,selectedGroup:w,selectedGroupDecoded:b,userCount:y,groups:x,adminGroup:N,recentGroup:k,disabledGroup:S,settings:G,isAdminOrDelegatedAdmin:D,showNewUserMenu:function(){s.dispatch("setShowConfig",{key:"showNewUserForm",value:!0})},mdiAccountOffOutline:i.Zfz,mdiAccountOutline:i.EzL,mdiClose:i.hyP,mdiCogOutline:i.ED,mdiHistory:i.LP2,mdiMagnify:i.U4M,mdiPlus:i.biz,mdiShieldAccountOutline:i.J0H,t:r.Tl,NcAppNavigation:d.A,NcAppNavigationItem:u.A,NcAppNavigationList:A.A,NcAppNavigationNew:p.N,NcButton:g.A,NcCounterBubble:h.A,NcIconSvgWrapper:m.A,NcInputField:C.A,AppNavigationGroupList:et,UserSettingsDialog:Ct}}});var vt=n(48500),_t={};_t.styleTagTransform=W(),_t.setAttributes=z(),_t.insert=M().bind(null,"head"),_t.domAPI=F(),_t.insertStyleElement=R(),q()(vt.A,_t),vt.A&&vt.A.locals&&vt.A.locals;var wt=(0,L.A)(ft,function(){var t=this,e=t._self._c,s=t._self._setupProxy;return e(s.NcAppNavigation,{staticClass:"account-management__navigation",attrs:{"aria-label":s.t("settings","Account management")},scopedSlots:t._u([{key:"footer",fn:function(){return[e(s.NcButton,{staticClass:"account-management__settings-toggle",attrs:{variant:"tertiary"},on:{click:function(t){s.isDialogOpen=!0}},scopedSlots:t._u([{key:"icon",fn:function(){return[e(s.NcIconSvgWrapper,{attrs:{path:s.mdiCogOutline}})]},proxy:!0}])},[t._v("\n\t\t\t"+t._s(s.t("settings","Account management settings"))+"\n\t\t")]),t._v(" "),e(s.UserSettingsDialog,{attrs:{open:s.isDialogOpen},on:{"update:open":function(t){s.isDialogOpen=t}}})]},proxy:!0}])},[e(s.NcAppNavigationNew,{attrs:{"button-id":"new-user-button",text:s.t("settings","New account")},on:{click:s.showNewUserMenu,keyup:[function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:s.showNewUserMenu.apply(null,arguments)},function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"space",32,e.key,[" ","Spacebar"])?null:s.showNewUserMenu.apply(null,arguments)}]},scopedSlots:t._u([{key:"icon",fn:function(){return[e(s.NcIconSvgWrapper,{attrs:{path:s.mdiPlus}})]},proxy:!0}])}),t._v(" "),e("div",{staticClass:"account-management__search",attrs:{role:"search","aria-label":s.t("settings","Search accounts and groups")}},[e(s.NcInputField,{ref:"searchField",attrs:{label:s.t("settings","Search accounts and groups…"),"show-trailing-button":""!==s.searchInput,trailingButtonLabel:s.t("settings","Clear search")},on:{"trailing-button-click":s.clearSearch},scopedSlots:t._u([{key:"icon",fn:function(){return[e(s.NcIconSvgWrapper,{attrs:{path:s.mdiMagnify}})]},proxy:!0},{key:"trailing-button-icon",fn:function(){return[e(s.NcIconSvgWrapper,{attrs:{path:s.mdiClose}})]},proxy:!0}]),model:{value:s.searchInput,callback:function(t){s.searchInput=t},expression:"searchInput"}})],1),t._v(" "),e(s.NcAppNavigationList,{staticClass:"account-management__system-list",attrs:{"data-cy-users-settings-navigation-groups":"system"}},[e(s.NcAppNavigationItem,{attrs:{id:"everyone",exact:!0,name:s.t("settings","All accounts"),to:{name:"users"}},scopedSlots:t._u([{key:"icon",fn:function(){return[e(s.NcIconSvgWrapper,{attrs:{path:s.mdiAccountOutline}})]},proxy:!0},{key:"counter",fn:function(){return[s.userCount?e(s.NcCounterBubble,{attrs:{type:s.selectedGroupDecoded?void 0:"highlighted"}},[t._v("\n\t\t\t\t\t"+t._s(s.userCount)+"\n\t\t\t\t")]):t._e()]},proxy:!0}])}),t._v(" "),s.settings.isAdmin?e(s.NcAppNavigationItem,{attrs:{id:"admin",exact:!0,name:s.t("settings","Admins"),to:{name:"group",params:{selectedGroup:"admin"}}},scopedSlots:t._u([{key:"icon",fn:function(){return[e(s.NcIconSvgWrapper,{attrs:{path:s.mdiShieldAccountOutline}})]},proxy:!0},{key:"counter",fn:function(){return[s.adminGroup&&s.adminGroup.count>0?e(s.NcCounterBubble,{attrs:{type:"admin"===s.selectedGroupDecoded?"highlighted":void 0}},[t._v("\n\t\t\t\t\t"+t._s(s.adminGroup.count)+"\n\t\t\t\t")]):t._e()]},proxy:!0}],null,!1,3779933833)}):t._e(),t._v(" "),s.isAdminOrDelegatedAdmin?e(s.NcAppNavigationItem,{attrs:{id:"recent",exact:!0,name:s.t("settings","Recently active"),to:{name:"group",params:{selectedGroup:"__nc_internal_recent"}}},scopedSlots:t._u([{key:"icon",fn:function(){return[e(s.NcIconSvgWrapper,{attrs:{path:s.mdiHistory}})]},proxy:!0},{key:"counter",fn:function(){return[s.recentGroup?.usercount?e(s.NcCounterBubble,{attrs:{type:"__nc_internal_recent"===s.selectedGroupDecoded?"highlighted":void 0}},[t._v("\n\t\t\t\t\t"+t._s(s.recentGroup.usercount)+"\n\t\t\t\t")]):t._e()]},proxy:!0}],null,!1,2299424282)}):t._e(),t._v(" "),s.disabledGroup&&(s.disabledGroup.usercount>0||-1===s.disabledGroup.usercount)?e(s.NcAppNavigationItem,{attrs:{id:"disabled",exact:!0,name:s.t("settings","Disabled accounts"),to:{name:"group",params:{selectedGroup:"disabled"}}},scopedSlots:t._u([{key:"icon",fn:function(){return[e(s.NcIconSvgWrapper,{attrs:{path:s.mdiAccountOffOutline}})]},proxy:!0},s.disabledGroup.usercount>0?{key:"counter",fn:function(){return[e(s.NcCounterBubble,{attrs:{type:"disabled"===s.selectedGroupDecoded?"highlighted":void 0}},[t._v("\n\t\t\t\t\t"+t._s(s.disabledGroup.usercount)+"\n\t\t\t\t")])]},proxy:!0}:null],null,!0)}):t._e()],1),t._v(" "),e(s.AppNavigationGroupList)],1)},[],!1,null,"0567bb0c",null);const bt=wt.exports},27518(t){"use strict";t.exports="data:image/svg+xml,%3c%21--%20-%20SPDX-FileCopyrightText:%202020%20Google%20Inc.%20-%20SPDX-License-Identifier:%20Apache-2.0%20--%3e%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M15.4%2016.6L10.8%2012l4.6-4.6L14%206l-6%206%206%206%201.4-1.4z%27/%3e%3c/svg%3e"},27514(t){"use strict";t.exports="data:image/svg+xml,%3c%21--%20-%20SPDX-FileCopyrightText:%202020%20Google%20Inc.%20-%20SPDX-License-Identifier:%20Apache-2.0%20--%3e%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M18.4%207.4L17%206l-6%206%206%206%201.4-1.4-4.6-4.6%204.6-4.6m-6%200L11%206l-6%206%206%206%201.4-1.4L7.8%2012l4.6-4.6z%27/%3e%3c/svg%3e"},79722(t){"use strict";t.exports="data:image/svg+xml,%3c%21--%20-%20SPDX-FileCopyrightText:%202020%20Google%20Inc.%20-%20SPDX-License-Identifier:%20Apache-2.0%20--%3e%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M5.6%207.4L7%206l6%206-6%206-1.4-1.4%204.6-4.6-4.6-4.6m6%200L13%206l6%206-6%206-1.4-1.4%204.6-4.6-4.6-4.6z%27/%3e%3c/svg%3e"},64505(t){"use strict";t.exports="data:image/svg+xml,%3c%21--%20-%20SPDX-FileCopyrightText:%202020%20Google%20Inc.%20-%20SPDX-License-Identifier:%20Apache-2.0%20--%3e%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M8.6%2016.6l4.6-4.6-4.6-4.6L10%206l6%206-6%206-1.4-1.4z%27/%3e%3c/svg%3e"},63779(){},77199(){},85947(t,e,s){"use strict";s.d(e,{A:()=>n.N});var n=s(90429)}}]); +//# sourceMappingURL=settings-users-3239.js.map?v=77047d0d8c6ee70900f0 \ No newline at end of file diff --git a/dist/settings-users-3239.js.map b/dist/settings-users-3239.js.map index 77b704c2a2c..8d0e2d70622 100644 --- a/dist/settings-users-3239.js.map +++ b/dist/settings-users-3239.js.map @@ -1 +1 @@ -{"version":3,"file":"settings-users-3239.js?v=03614376e6f20a249e06","mappings":"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K/K,EAAI3C,QAAS+K,YAAYpI,EAAIqI,GAAG,CAAErI,EAAI2K,MAAMC,GAAO,CAAC9F,IAAI,OAAOwD,GAAG,WAAW,MAAO,CAACpI,EAAG,mBAAmB,CAACG,MAAM,CAAC,IAAMuK,EAAK,cAAc,UAAU,EAAErC,OAAM,GAAM,MAAM,MAAK,IAAO,CAACvI,EAAIc,GAAG,SAASd,EAAIqF,GAAGwF,GAAM,WAAW,IAAI,EAC/hC,EACsB,IESpB,EACA,KACA,KACA,M,qyCCuHc,KACK,KACJ,KACC,KACH,KACD,KACC,KACC,KACG,KACL,KACQ,KACX,KACG,KACO,KACH,KACD,KACO,KACG,KACN,KACA,KACD,KACI,KACD,KACE,KACF,KACF,KACC,KACW,GAAAG,EACF,KACjB,KACM,KACH,KACE,KACC,KACH,KACK,KACZ,KACE,KACE,KACC,KACL,KACa,KACL,KACH,KACJ,KACM,KACE,KACI,KACX,KACM,WACM,KACd,KACM,KACI,KACL,KACC,IACF,KACH,KACM,KACI,KACJ,KACJ,KACG,KACA,KACF,KACD,KACH,KACI,KACI,KACJ,KACF,KACI,KACD,IACE,KACR,KACG,KACK,KACN,KACI,KACD,KACM,KACK,KACF,KACX,KACW,KACb,KACI,KACC,IACM,KACF,KACI,KACX,KACC,KACI,KACC,KACJ,KACI,KACR,KACPC,OAAOC,YAGD,KACE,KACA,MACRD,OAAOC,YA1GV,MC5HA,IACC/H,MAAO,CACN9F,KAAM,CACLgG,KAAM9F,OACNgG,UAAU,GAEXpF,SAAU,CACTkF,KAAM9F,OACN8G,QAASA,KAAA,CAAS,IAEnB1C,UAAW,CACV0B,KAAMC,MACNC,UAAU,GAEX4H,gBAAiB,CAChB9H,KAAMC,MACNe,QAASA,IAAM,KAGjBiG,KAAAA,CAAMnH,GACL,MAAM,kBAAEiI,IAAsBC,EAAAA,GAAAA,IAAmD,IAAjClI,EAAM9F,KAAKiO,oBAA4B,CACtFC,cAAc,EACdC,OAAQ,CACPC,UAAW,QACXC,UAAW,WAGb,MAAO,CACNN,oBAEF,EACAlN,SAAU,CACTyN,SAAAA,GACC,IAAI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","sources":["webpack:///nextcloud/apps/settings/src/service/groups.ts","webpack:///nextcloud/apps/settings/src/utils/userUtils.ts","webpack:///nextcloud/apps/settings/src/components/GroupListItem.vue?vue&type=style&index=0&id=30743619&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/components/UserList.vue?vue&type=style&index=0&id=a01beafc&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/components/Users/EditUserDialog.vue?vue&type=style&index=0&id=2a263a52&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/components/Users/NewUserDialog.vue?vue&type=style&index=0&id=32af3da3&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/components/Users/UserFormFields.vue?vue&type=style&index=0&id=0d9243e9&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/components/Users/UserFormGroups.vue?vue&type=style&index=0&id=4041cacf&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/components/Users/UserListFooter.vue?vue&type=style&index=0&id=4ff6ba29&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/components/Users/UserListHeader.vue?vue&type=style&index=0&id=53c64244&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/components/Users/UserRow.vue?vue&type=style&index=0&id=32716952&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/components/Users/UserSettingsDialog.vue?vue&type=style&index=0&id=649c1de8&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/settings/src/components/Users/VirtualList.vue?vue&type=style&index=0&id=65d37ac4&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/views/UserManagement.vue?vue&type=style&index=0&id=6c72a095&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/views/UserManagementNavigation.vue?vue&type=style&index=0&id=0567bb0c&prod&scoped=true&lang=scss","webpack://nextcloud/./apps/settings/src/views/UserManagement.vue?4b28","webpack:///nextcloud/apps/settings/src/components/Users/UserFormGroups.vue","webpack:///nextcloud/apps/settings/src/components/Users/UserFormGroups.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/Users/UserFormGroups.vue?4e7e","webpack://nextcloud/./apps/settings/src/components/Users/UserFormGroups.vue?bacc","webpack://nextcloud/./apps/settings/src/components/Users/UserFormGroups.vue?5fa2","webpack://nextcloud/./apps/settings/src/components/Users/UserFormLanguage.vue?3d52","webpack:///nextcloud/apps/settings/src/components/Users/userFormUtils.ts","webpack:///nextcloud/apps/settings/src/components/Users/UserFormLanguage.vue","webpack:///nextcloud/apps/settings/src/components/Users/UserFormLanguage.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/Users/UserFormLanguage.vue?1b13","webpack://nextcloud/./apps/settings/src/components/Users/UserFormManager.vue?f6b6","webpack:///nextcloud/apps/settings/src/components/Users/UserFormManager.vue","webpack:///nextcloud/apps/settings/src/components/Users/UserFormManager.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/Users/UserFormManager.vue?de46","webpack:///nextcloud/apps/settings/src/components/Users/UserFormQuota.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/settings/src/components/Users/UserFormQuota.vue","webpack://nextcloud/./apps/settings/src/components/Users/UserFormQuota.vue?dd83","webpack://nextcloud/./apps/settings/src/components/Users/UserFormQuota.vue?4349","webpack:///nextcloud/apps/settings/src/components/Users/UserFormFields.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/settings/src/components/Users/UserFormFields.vue","webpack://nextcloud/./apps/settings/src/components/Users/UserFormFields.vue?bc57","webpack://nextcloud/./apps/settings/src/components/Users/UserFormFields.vue?9ff7","webpack://nextcloud/./apps/settings/src/components/Users/UserFormFields.vue?99fc","webpack:///nextcloud/apps/settings/src/components/Users/EditUserDialog.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/settings/src/components/Users/EditUserDialog.vue","webpack://nextcloud/./apps/settings/src/components/Users/EditUserDialog.vue?14eb","webpack://nextcloud/./apps/settings/src/components/Users/EditUserDialog.vue?d404","webpack://nextcloud/./apps/settings/src/components/Users/EditUserDialog.vue?2166","webpack:///nextcloud/apps/settings/src/components/Users/NewUserDialog.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/settings/src/components/Users/NewUserDialog.vue","webpack://nextcloud/./apps/settings/src/components/Users/NewUserDialog.vue?a8f3","webpack://nextcloud/./apps/settings/src/components/Users/NewUserDialog.vue?64c6","webpack://nextcloud/./apps/settings/src/components/Users/NewUserDialog.vue?dc2d","webpack:///nextcloud/apps/settings/src/components/Users/UserListFooter.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/settings/src/components/Users/UserListFooter.vue","webpack://nextcloud/./apps/settings/src/components/Users/UserListFooter.vue?3c47","webpack://nextcloud/./apps/settings/src/components/Users/UserListFooter.vue?b843","webpack:///nextcloud/apps/settings/src/components/Users/UserListHeader.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/settings/src/components/Users/UserListHeader.vue","webpack://nextcloud/./apps/settings/src/components/Users/UserListHeader.vue?5b6f","webpack://nextcloud/./apps/settings/src/components/Users/UserListHeader.vue?758a","webpack://nextcloud/./apps/settings/src/components/Users/UserRow.vue?5434","webpack:///nextcloud/apps/settings/src/components/Users/UserRowActions.vue","webpack:///nextcloud/apps/settings/src/components/Users/UserRowActions.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/settings/src/components/Users/UserRowActions.vue?3c2a","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/index.mjs","webpack:///nextcloud/apps/settings/src/mixins/UserRowMixin.js","webpack:///nextcloud/apps/settings/src/components/Users/UserRow.vue","webpack:///nextcloud/apps/settings/src/components/Users/UserRow.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/Users/UserRow.vue?06b8","webpack://nextcloud/./apps/settings/src/components/Users/UserRow.vue?eb6e","webpack:///nextcloud/apps/settings/src/components/Users/VirtualList.vue","webpack:///nextcloud/apps/settings/src/components/Users/VirtualList.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/settings/src/components/Users/VirtualList.vue?b8dd","webpack://nextcloud/./apps/settings/src/components/Users/VirtualList.vue?1915","webpack:///nextcloud/apps/settings/src/components/UserList.vue","webpack:///nextcloud/apps/settings/src/components/UserList.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/UserList.vue?be52","webpack://nextcloud/./apps/settings/src/components/UserList.vue?02a4","webpack://nextcloud/./apps/settings/src/components/UserList.vue?c96e","webpack:///nextcloud/apps/settings/src/views/UserManagement.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/settings/src/views/UserManagement.vue","webpack://nextcloud/./apps/settings/src/views/UserManagement.vue?8dc2","webpack://nextcloud/./apps/settings/src/views/UserManagement.vue?fd5a","webpack:///nextcloud/apps/settings/src/views/UserManagementNavigation.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/TrashCanOutline.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/TrashCanOutline.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/TrashCanOutline.vue?ad44","webpack:///nextcloud/node_modules/vue-material-design-icons/TrashCanOutline.vue?vue&type=template&id=3daa0f14","webpack:///nextcloud/apps/settings/src/components/GroupListItem.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/settings/src/components/GroupListItem.vue","webpack://nextcloud/./apps/settings/src/components/GroupListItem.vue?c571","webpack://nextcloud/./apps/settings/src/components/GroupListItem.vue?7b19","webpack://nextcloud/./apps/settings/src/components/GroupListItem.vue?9f48","webpack:///nextcloud/apps/settings/src/composables/useGroupsNavigation.ts","webpack:///nextcloud/apps/settings/src/components/AppNavigationGroupList.vue","webpack:///nextcloud/apps/settings/src/components/AppNavigationGroupList.vue?vue&type=script&setup=true&lang=ts","webpack://nextcloud/./apps/settings/src/components/AppNavigationGroupList.vue?c74f","webpack://nextcloud/./apps/settings/src/components/Users/UserSettingsDialog.vue?824e","webpack:///nextcloud/apps/settings/src/components/Users/UserSettingsDialog.vue","webpack:///nextcloud/apps/settings/src/components/Users/UserSettingsDialog.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/Users/UserSettingsDialog.vue?5a5e","webpack://nextcloud/./apps/settings/src/components/Users/UserSettingsDialog.vue?f361","webpack:///nextcloud/apps/settings/src/views/UserManagementNavigation.vue?vue&type=script&setup=true&lang=ts","webpack://nextcloud/./apps/settings/src/views/UserManagementNavigation.vue?a5e5","webpack://nextcloud/./apps/settings/src/views/UserManagementNavigation.vue?28b6"],"sourcesContent":["/**\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport axios from '@nextcloud/axios';\nimport { generateOcsUrl } from '@nextcloud/router';\nimport { CancelablePromise } from 'cancelable-promise';\n/**\n *\n * @param group\n */\nfunction formatGroup(group) {\n return {\n id: group.id,\n name: group.displayname,\n usercount: group.usercount,\n disabled: group.disabled,\n canAdd: group.canAdd,\n canRemove: group.canRemove,\n };\n}\n/**\n * Search groups\n *\n * @param options Options\n * @param options.search Search query\n * @param options.offset Offset\n * @param options.limit Limit\n */\nexport function searchGroups({ search, offset, limit }) {\n const controller = new AbortController();\n return new CancelablePromise(async (resolve, reject, onCancel) => {\n onCancel(() => controller.abort());\n try {\n const { data } = await axios.get(generateOcsUrl('/cloud/groups/details?search={search}&offset={offset}&limit={limit}', { search, offset, limit }), {\n signal: controller.signal,\n });\n const groups = data.ocs?.data?.groups ?? [];\n const formattedGroups = groups.map(formatGroup);\n resolve(formattedGroups);\n }\n catch (error) {\n reject(error);\n }\n });\n}\n/**\n * Load user groups\n *\n * @param options Options\n * @param options.userId User id\n */\nexport async function loadUserGroups({ userId }) {\n const url = generateOcsUrl('/cloud/users/{userId}/groups/details', { userId });\n const { data } = await axios.get(url);\n const groups = data.ocs?.data?.groups ?? [];\n const formattedGroups = groups.map(formatGroup);\n return formattedGroups;\n}\n/**\n * Load user subadmin groups\n *\n * @param options Options\n * @param options.userId User id\n */\nexport async function loadUserSubAdminGroups({ userId }) {\n const url = generateOcsUrl('/cloud/users/{userId}/subadmins/details', { userId });\n const { data } = await axios.get(url);\n const groups = data.ocs?.data?.groups ?? [];\n const formattedGroups = groups.map(formatGroup);\n return formattedGroups;\n}\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { translate as t } from '@nextcloud/l10n';\nexport const unlimitedQuota = {\n id: 'none',\n label: t('settings', 'Unlimited'),\n};\nexport const defaultQuota = {\n id: 'default',\n label: t('settings', 'Default quota'),\n};\n/**\n * Return `true` if the logged in user does not have permissions to view the\n * data of `user`\n *\n * @param user The user to check\n * @param user.id Id of the user\n */\nexport function isObfuscated(user) {\n const keys = Object.keys(user);\n return keys.length === 1 && keys.at(0) === 'id';\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, `.modal__header[data-v-30743619]{margin:0}.modal__content[data-v-30743619]{display:flex;flex-direction:column;align-items:center;padding:20px;gap:4px 0}.modal__button-row[data-v-30743619]{display:flex;width:100%;justify-content:space-between}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/GroupListItem.vue\"],\"names\":[],\"mappings\":\"AAEC,gCACC,QAAA,CAGD,iCACC,YAAA,CACA,qBAAA,CACA,kBAAA,CACA,YAAA,CACA,SAAA,CAGD,oCACC,YAAA,CACA,UAAA,CACA,6BAAA\",\"sourcesContent\":[\"\\n.modal {\\n\\t&__header {\\n\\t\\tmargin: 0;\\n\\t}\\n\\n\\t&__content {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\talign-items: center;\\n\\t\\tpadding: 20px;\\n\\t\\tgap: 4px 0;\\n\\t}\\n\\n\\t&__button-row {\\n\\t\\tdisplay: flex;\\n\\t\\twidth: 100%;\\n\\t\\tjustify-content: space-between;\\n\\t}\\n}\\n\"],\"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, `.empty[data-v-a01beafc] .icon-vue{width:64px;height:64px}.empty[data-v-a01beafc] .icon-vue svg{max-width:64px;max-height:64px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/UserList.vue\"],\"names\":[],\"mappings\":\"AAKE,kCACC,UAAA,CACA,WAAA,CAEA,sCACC,cAAA,CACA,eAAA\",\"sourcesContent\":[\"\\n@use './Users/shared/styles.scss' as *;\\n\\n.empty {\\n\\t:deep {\\n\\t\\t.icon-vue {\\n\\t\\t\\twidth: 64px;\\n\\t\\t\\theight: 64px;\\n\\n\\t\\t\\tsvg {\\n\\t\\t\\t\\tmax-width: 64px;\\n\\t\\t\\t\\tmax-height: 64px;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\"],\"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, `.edit-dialog[data-v-2a263a52] .dialog__actions{margin-block-start:calc(var(--default-grid-baseline, 4px)*3)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/Users/EditUserDialog.vue\"],\"names\":[],\"mappings\":\"AAEC,+CACC,4DAAA\",\"sourcesContent\":[\"\\n.edit-dialog {\\n\\t:deep(.dialog__actions) {\\n\\t\\tmargin-block-start: calc(var(--default-grid-baseline, 4px) * 3);\\n\\t}\\n}\\n\"],\"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, `.dialog[data-v-32af3da3] .dialog__actions{margin-block-start:calc(var(--default-grid-baseline, 4px)*3)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/Users/NewUserDialog.vue\"],\"names\":[],\"mappings\":\"AAEC,0CACC,4DAAA\",\"sourcesContent\":[\"\\n.dialog {\\n\\t:deep(.dialog__actions) {\\n\\t\\tmargin-block-start: calc(var(--default-grid-baseline, 4px) * 3);\\n\\t}\\n}\\n\"],\"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, `.user-form-fields[data-v-0d9243e9]{display:flex;flex-direction:column;align-items:center;gap:calc(var(--default-grid-baseline, 4px)*2) 0}.user-form-fields__item[data-v-0d9243e9]{width:100%}.user-form-fields__item[data-v-0d9243e9]:not(:focus):not(:active){border-color:var(--color-border-dark)}.user-form-fields__static[data-v-0d9243e9]{display:flex;flex-direction:column;justify-content:center;min-height:var(--default-clickable-area, 44px);padding:var(--border-width-input-focused, 2px);padding-inline:calc(var(--border-radius-element, 8px) + var(--border-width-input-focused, 2px));margin-left:18px}.user-form-fields__static-label[data-v-0d9243e9]{font-size:var(--font-size-small, 13px);font-weight:500;line-height:1.5;color:var(--color-text-maxcontrast)}.user-form-fields__static-value[data-v-0d9243e9]{font-size:var(--default-font-size, 14px);line-height:1.5;color:var(--color-main-text)}.user-form-fields__hint[data-v-0d9243e9]{color:var(--color-text-maxcontrast);margin-block-start:calc(var(--default-grid-baseline, 4px)*2);align-self:flex-start}.user-form-fields[data-v-0d9243e9] .user-form__item{width:100%}.user-form-fields[data-v-0d9243e9] .user-form__select{width:100%}.user-form-fields__error-summary[data-v-0d9243e9]{width:100%;margin-block-start:calc(var(--default-grid-baseline, 4px)*2);color:var(--color-error);font-size:var(--default-font-size, 14px)}.user-form-fields__error-summary p[data-v-0d9243e9]{margin-block:calc(var(--default-grid-baseline, 4px)/2)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/Users/UserFormFields.vue\"],\"names\":[],\"mappings\":\"AACA,mCACC,YAAA,CACA,qBAAA,CACA,kBAAA,CACA,+CAAA,CAEA,yCACC,UAAA,CAEA,kEACC,qCAAA,CAIF,2CACC,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,8CAAA,CACA,8CAAA,CACA,+FAAA,CAIA,gBAAA,CAEA,iDACC,sCAAA,CACA,eAAA,CACA,eAAA,CACA,mCAAA,CAGD,iDACC,wCAAA,CACA,eAAA,CACA,4BAAA,CAIF,yCACC,mCAAA,CACA,4DAAA,CACA,qBAAA,CAID,oDACC,UAAA,CAGD,sDACC,UAAA,CAGD,kDACC,UAAA,CACA,4DAAA,CACA,wBAAA,CACA,wCAAA,CAEA,oDACC,sDAAA\",\"sourcesContent\":[\"\\n.user-form-fields {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\talign-items: center;\\n\\tgap: calc(var(--default-grid-baseline, 4px) * 2) 0;\\n\\n\\t&__item {\\n\\t\\twidth: 100%;\\n\\n\\t\\t&:not(:focus):not(:active) {\\n\\t\\t\\tborder-color: var(--color-border-dark);\\n\\t\\t}\\n\\t}\\n\\n\\t&__static {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\tjustify-content: center;\\n\\t\\tmin-height: var(--default-clickable-area, 44px);\\n\\t\\tpadding: var(--border-width-input-focused, 2px);\\n\\t\\tpadding-inline: calc(var(--border-radius-element, 8px) + var(--border-width-input-focused, 2px));\\n\\n\\t\\t// Manually align static value with inputs below until we have a static field in component lib.\\n\\t\\t// See: https://github.com/nextcloud/server/issues/53862#issuecomment-4212613996\\n\\t\\tmargin-left: 18px;\\n\\n\\t\\t&-label {\\n\\t\\t\\tfont-size: var(--font-size-small, 13px);\\n\\t\\t\\tfont-weight: 500;\\n\\t\\t\\tline-height: 1.5;\\n\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\t}\\n\\n\\t\\t&-value {\\n\\t\\t\\tfont-size: var(--default-font-size, 14px);\\n\\t\\t\\tline-height: 1.5;\\n\\t\\t\\tcolor: var(--color-main-text);\\n\\t\\t}\\n\\t}\\n\\n\\t&__hint {\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\tmargin-block-start: calc(var(--default-grid-baseline, 4px) * 2);\\n\\t\\talign-self: flex-start;\\n\\t}\\n\\n\\t// Reach into sub-component root elements to apply consistent sizing\\n\\t:deep(.user-form__item) {\\n\\t\\twidth: 100%;\\n\\t}\\n\\n\\t:deep(.user-form__select) {\\n\\t\\twidth: 100%;\\n\\t}\\n\\n\\t&__error-summary {\\n\\t\\twidth: 100%;\\n\\t\\tmargin-block-start: calc(var(--default-grid-baseline, 4px) * 2);\\n\\t\\tcolor: var(--color-error);\\n\\t\\tfont-size: var(--default-font-size, 14px);\\n\\n\\t\\tp {\\n\\t\\t\\tmargin-block: calc(var(--default-grid-baseline, 4px) / 2);\\n\\t\\t}\\n\\t}\\n}\\n\"],\"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, `.user-form-groups[data-v-4041cacf]{display:flex;flex-direction:column;gap:calc(var(--default-grid-baseline, 4px)*2) 0;width:100%}.user-form__item[data-v-4041cacf]{width:100%}.user-form__select[data-v-4041cacf]{width:100%}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/Users/UserFormGroups.vue\"],\"names\":[],\"mappings\":\"AACA,mCACC,YAAA,CACA,qBAAA,CACA,+CAAA,CACA,UAAA,CAGD,kCACC,UAAA,CAGD,oCACC,UAAA\",\"sourcesContent\":[\"\\n.user-form-groups {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\tgap: calc(var(--default-grid-baseline, 4px) * 2) 0;\\n\\twidth: 100%;\\n}\\n\\n.user-form__item {\\n\\twidth: 100%;\\n}\\n\\n.user-form__select {\\n\\twidth: 100%;\\n}\\n\"],\"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, `.footer[data-v-4ff6ba29]{position:relative;display:flex;min-width:100%;width:fit-content;height:var(--row-height);background-color:var(--color-main-background)}.footer__cell[data-v-4ff6ba29]{display:flex;flex-direction:column;justify-content:center;padding:0 var(--cell-padding);min-width:var(--cell-width);width:var(--cell-width);color:var(--color-main-text)}.footer__cell strong[data-v-4ff6ba29],.footer__cell span[data-v-4ff6ba29],.footer__cell label[data-v-4ff6ba29]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;overflow-wrap:anywhere}@media(min-width: 670px){.footer__cell--avatar[data-v-4ff6ba29],.footer__cell--displayname[data-v-4ff6ba29]{position:sticky;z-index:var(--sticky-column-z-index);background-color:var(--color-main-background)}.footer__cell--avatar[data-v-4ff6ba29]{inset-inline-start:0}.footer__cell--displayname[data-v-4ff6ba29]{inset-inline-start:var(--avatar-cell-width);border-inline-end:1px solid var(--color-border)}}.footer__cell--username[data-v-4ff6ba29]{padding-inline-start:calc(var(--default-grid-baseline)*3)}.footer__cell--avatar[data-v-4ff6ba29]{min-width:var(--avatar-cell-width);width:var(--avatar-cell-width);align-items:center;padding:0;user-select:none}.footer__cell--multiline span[data-v-4ff6ba29]{line-height:1.3em;white-space:unset}@supports(-webkit-line-clamp: 2){.footer__cell--multiline span[data-v-4ff6ba29]{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.footer__cell--large[data-v-4ff6ba29]{min-width:var(--cell-width-large);width:var(--cell-width-large)}.footer__cell--groups[data-v-4ff6ba29]{min-width:var(--cell-width-groups);width:var(--cell-width-groups)}.footer__cell--obfuscated[data-v-4ff6ba29]{min-width:400px;width:400px}.footer__cell--fill[data-v-4ff6ba29]{min-width:var(--cell-width-large);width:100%}.footer__cell--actions[data-v-4ff6ba29]{position:sticky;inset-inline-end:0;z-index:var(--sticky-column-z-index);display:flex;flex-direction:row;align-items:center;min-width:110px;width:110px;background-color:var(--color-main-background);border-inline-start:1px solid var(--color-border)}.footer__subtitle[data-v-4ff6ba29]{color:var(--color-text-maxcontrast)}.footer__cell[data-v-4ff6ba29]{position:sticky;color:var(--color-text-maxcontrast)}.footer__cell--loading[data-v-4ff6ba29]{inset-inline-start:0;min-width:var(--avatar-cell-width);width:var(--avatar-cell-width);align-items:center;padding:0}.footer__cell--count[data-v-4ff6ba29]{inset-inline-start:var(--avatar-cell-width);min-width:var(--cell-width);width:var(--cell-width)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/Users/UserListFooter.vue\",\"webpack://./apps/settings/src/components/Users/shared/styles.scss\"],\"names\":[],\"mappings\":\"AAGA,yBCGC,iBAAA,CACA,YAAA,CACA,cAAA,CACA,iBAAA,CACA,wBAAA,CACA,6CAAA,CAIA,+BACC,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,6BAAA,CACA,2BAAA,CACA,uBAAA,CACA,4BAAA,CAEA,+GAGC,eAAA,CACA,sBAAA,CACA,kBAAA,CACA,sBAAA,CAGD,yBACC,mFAEC,eAAA,CACA,oCAAA,CACA,6CAAA,CAGD,uCACC,oBAAA,CAGD,4CACC,2CAAA,CACA,+CAAA,CAAA,CAIF,yCACC,yDAAA,CAGD,uCACC,kCAAA,CACA,8BAAA,CACA,kBAAA,CACA,SAAA,CACA,gBAAA,CAIA,+CACC,iBAAA,CACA,iBAAA,CAEA,iCAJD,+CAKE,mBAAA,CACA,oBAAA,CACA,2BAAA,CAAA,CAKH,sCACC,iCAAA,CACA,6BAAA,CAGD,uCACC,kCAAA,CACA,8BAAA,CAGD,2CACC,eAAA,CACA,WAAA,CAID,qCACC,iCAAA,CACA,UAAA,CAGD,wCACC,eAAA,CACA,kBAAA,CACA,oCAAA,CACA,YAAA,CACA,kBAAA,CACA,kBAAA,CACA,eAAA,CACA,WAAA,CACA,6CAAA,CACA,iDAAA,CAIF,mCACC,mCAAA,CDzGD,+BACC,eAAA,CACA,mCAAA,CAEA,wCACC,oBAAA,CACA,kCAAA,CACA,8BAAA,CACA,kBAAA,CACA,SAAA,CAGD,sCACC,2CAAA,CACA,2BAAA,CACA,uBAAA\",\"sourcesContent\":[\"\\n@use './shared/styles.scss';\\n\\n.footer {\\n\\t@include styles.row;\\n\\t@include styles.cell;\\n\\n\\t&__cell {\\n\\t\\tposition: sticky;\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\n\\t\\t&--loading {\\n\\t\\t\\tinset-inline-start: 0;\\n\\t\\t\\tmin-width: var(--avatar-cell-width);\\n\\t\\t\\twidth: var(--avatar-cell-width);\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tpadding: 0;\\n\\t\\t}\\n\\n\\t\\t&--count {\\n\\t\\t\\tinset-inline-start: var(--avatar-cell-width);\\n\\t\\t\\tmin-width: var(--cell-width);\\n\\t\\t\\twidth: var(--cell-width);\\n\\t\\t}\\n\\t}\\n}\\n\",\"/**\\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n\\n@mixin row {\\n\\tposition: relative;\\n\\tdisplay: flex;\\n\\tmin-width: 100%;\\n\\twidth: fit-content;\\n\\theight: var(--row-height);\\n\\tbackground-color: var(--color-main-background);\\n}\\n\\n@mixin cell {\\n\\t&__cell {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\tjustify-content: center;\\n\\t\\tpadding: 0 var(--cell-padding);\\n\\t\\tmin-width: var(--cell-width);\\n\\t\\twidth: var(--cell-width);\\n\\t\\tcolor: var(--color-main-text);\\n\\n\\t\\tstrong,\\n\\t\\tspan,\\n\\t\\tlabel {\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\toverflow-wrap: anywhere;\\n\\t\\t}\\n\\n\\t\\t@media (min-width: 670px) { /* Show one &--large column between stickied columns */\\n\\t\\t\\t&--avatar,\\n\\t\\t\\t&--displayname {\\n\\t\\t\\t\\tposition: sticky;\\n\\t\\t\\t\\tz-index: var(--sticky-column-z-index);\\n\\t\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\t}\\n\\n\\t\\t\\t&--avatar {\\n\\t\\t\\t\\tinset-inline-start: 0;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&--displayname {\\n\\t\\t\\t\\tinset-inline-start: var(--avatar-cell-width);\\n\\t\\t\\t\\tborder-inline-end: 1px solid var(--color-border);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&--username {\\n\\t\\t\\tpadding-inline-start: calc(var(--default-grid-baseline) * 3);\\n\\t\\t}\\n\\n\\t\\t&--avatar {\\n\\t\\t\\tmin-width: var(--avatar-cell-width);\\n\\t\\t\\twidth: var(--avatar-cell-width);\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tpadding: 0;\\n\\t\\t\\tuser-select: none;\\n\\t\\t}\\n\\n\\t\\t&--multiline {\\n\\t\\t\\tspan {\\n\\t\\t\\t\\tline-height: 1.3em;\\n\\t\\t\\t\\twhite-space: unset;\\n\\n\\t\\t\\t\\t@supports (-webkit-line-clamp: 2) {\\n\\t\\t\\t\\t\\tdisplay: -webkit-box;\\n\\t\\t\\t\\t\\t-webkit-line-clamp: 2;\\n\\t\\t\\t\\t\\t-webkit-box-orient: vertical;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&--large {\\n\\t\\t\\tmin-width: var(--cell-width-large);\\n\\t\\t\\twidth: var(--cell-width-large);\\n\\t\\t}\\n\\n\\t\\t&--groups {\\n\\t\\t\\tmin-width: var(--cell-width-groups);\\n\\t\\t\\twidth: var(--cell-width-groups);\\n\\t\\t}\\n\\n\\t\\t&--obfuscated {\\n\\t\\t\\tmin-width: 400px;\\n\\t\\t\\twidth: 400px;\\n\\t\\t}\\n\\n\\t\\t// Fill remaining row space with cell\\n\\t\\t&--fill {\\n\\t\\t\\tmin-width: var(--cell-width-large);\\n\\t\\t\\twidth: 100%;\\n\\t\\t}\\n\\n\\t\\t&--actions {\\n\\t\\t\\tposition: sticky;\\n\\t\\t\\tinset-inline-end: 0;\\n\\t\\t\\tz-index: var(--sticky-column-z-index);\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex-direction: row;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tmin-width: 110px;\\n\\t\\t\\twidth: 110px;\\n\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\tborder-inline-start: 1px solid var(--color-border);\\n\\t\\t}\\n\\t}\\n\\n\\t&__subtitle {\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t}\\n}\\n\"],\"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, `.header[data-v-53c64244]{border-bottom:1px solid var(--color-border);position:relative;display:flex;min-width:100%;width:fit-content;height:var(--row-height);background-color:var(--color-main-background)}.header__cell[data-v-53c64244]{display:flex;flex-direction:column;justify-content:center;padding:0 var(--cell-padding);min-width:var(--cell-width);width:var(--cell-width);color:var(--color-main-text)}.header__cell strong[data-v-53c64244],.header__cell span[data-v-53c64244],.header__cell label[data-v-53c64244]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;overflow-wrap:anywhere}@media(min-width: 670px){.header__cell--avatar[data-v-53c64244],.header__cell--displayname[data-v-53c64244]{position:sticky;z-index:var(--sticky-column-z-index);background-color:var(--color-main-background)}.header__cell--avatar[data-v-53c64244]{inset-inline-start:0}.header__cell--displayname[data-v-53c64244]{inset-inline-start:var(--avatar-cell-width);border-inline-end:1px solid var(--color-border)}}.header__cell--username[data-v-53c64244]{padding-inline-start:calc(var(--default-grid-baseline)*3)}.header__cell--avatar[data-v-53c64244]{min-width:var(--avatar-cell-width);width:var(--avatar-cell-width);align-items:center;padding:0;user-select:none}.header__cell--multiline span[data-v-53c64244]{line-height:1.3em;white-space:unset}@supports(-webkit-line-clamp: 2){.header__cell--multiline span[data-v-53c64244]{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.header__cell--large[data-v-53c64244]{min-width:var(--cell-width-large);width:var(--cell-width-large)}.header__cell--groups[data-v-53c64244]{min-width:var(--cell-width-groups);width:var(--cell-width-groups)}.header__cell--obfuscated[data-v-53c64244]{min-width:400px;width:400px}.header__cell--fill[data-v-53c64244]{min-width:var(--cell-width-large);width:100%}.header__cell--actions[data-v-53c64244]{position:sticky;inset-inline-end:0;z-index:var(--sticky-column-z-index);display:flex;flex-direction:row;align-items:center;min-width:110px;width:110px;background-color:var(--color-main-background);border-inline-start:1px solid var(--color-border)}.header__subtitle[data-v-53c64244]{color:var(--color-text-maxcontrast)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/Users/UserListHeader.vue\",\"webpack://./apps/settings/src/components/Users/shared/styles.scss\"],\"names\":[],\"mappings\":\"AAGA,yBACC,2CAAA,CCEA,iBAAA,CACA,YAAA,CACA,cAAA,CACA,iBAAA,CACA,wBAAA,CACA,6CAAA,CAIA,+BACC,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,6BAAA,CACA,2BAAA,CACA,uBAAA,CACA,4BAAA,CAEA,+GAGC,eAAA,CACA,sBAAA,CACA,kBAAA,CACA,sBAAA,CAGD,yBACC,mFAEC,eAAA,CACA,oCAAA,CACA,6CAAA,CAGD,uCACC,oBAAA,CAGD,4CACC,2CAAA,CACA,+CAAA,CAAA,CAIF,yCACC,yDAAA,CAGD,uCACC,kCAAA,CACA,8BAAA,CACA,kBAAA,CACA,SAAA,CACA,gBAAA,CAIA,+CACC,iBAAA,CACA,iBAAA,CAEA,iCAJD,+CAKE,mBAAA,CACA,oBAAA,CACA,2BAAA,CAAA,CAKH,sCACC,iCAAA,CACA,6BAAA,CAGD,uCACC,kCAAA,CACA,8BAAA,CAGD,2CACC,eAAA,CACA,WAAA,CAID,qCACC,iCAAA,CACA,UAAA,CAGD,wCACC,eAAA,CACA,kBAAA,CACA,oCAAA,CACA,YAAA,CACA,kBAAA,CACA,kBAAA,CACA,eAAA,CACA,WAAA,CACA,6CAAA,CACA,iDAAA,CAIF,mCACC,mCAAA\",\"sourcesContent\":[\"\\n@use './shared/styles.scss';\\n\\n.header {\\n\\tborder-bottom: 1px solid var(--color-border);\\n\\n\\t@include styles.row;\\n\\t@include styles.cell;\\n}\\n\",\"/**\\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n\\n@mixin row {\\n\\tposition: relative;\\n\\tdisplay: flex;\\n\\tmin-width: 100%;\\n\\twidth: fit-content;\\n\\theight: var(--row-height);\\n\\tbackground-color: var(--color-main-background);\\n}\\n\\n@mixin cell {\\n\\t&__cell {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\tjustify-content: center;\\n\\t\\tpadding: 0 var(--cell-padding);\\n\\t\\tmin-width: var(--cell-width);\\n\\t\\twidth: var(--cell-width);\\n\\t\\tcolor: var(--color-main-text);\\n\\n\\t\\tstrong,\\n\\t\\tspan,\\n\\t\\tlabel {\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\toverflow-wrap: anywhere;\\n\\t\\t}\\n\\n\\t\\t@media (min-width: 670px) { /* Show one &--large column between stickied columns */\\n\\t\\t\\t&--avatar,\\n\\t\\t\\t&--displayname {\\n\\t\\t\\t\\tposition: sticky;\\n\\t\\t\\t\\tz-index: var(--sticky-column-z-index);\\n\\t\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\t}\\n\\n\\t\\t\\t&--avatar {\\n\\t\\t\\t\\tinset-inline-start: 0;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&--displayname {\\n\\t\\t\\t\\tinset-inline-start: var(--avatar-cell-width);\\n\\t\\t\\t\\tborder-inline-end: 1px solid var(--color-border);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&--username {\\n\\t\\t\\tpadding-inline-start: calc(var(--default-grid-baseline) * 3);\\n\\t\\t}\\n\\n\\t\\t&--avatar {\\n\\t\\t\\tmin-width: var(--avatar-cell-width);\\n\\t\\t\\twidth: var(--avatar-cell-width);\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tpadding: 0;\\n\\t\\t\\tuser-select: none;\\n\\t\\t}\\n\\n\\t\\t&--multiline {\\n\\t\\t\\tspan {\\n\\t\\t\\t\\tline-height: 1.3em;\\n\\t\\t\\t\\twhite-space: unset;\\n\\n\\t\\t\\t\\t@supports (-webkit-line-clamp: 2) {\\n\\t\\t\\t\\t\\tdisplay: -webkit-box;\\n\\t\\t\\t\\t\\t-webkit-line-clamp: 2;\\n\\t\\t\\t\\t\\t-webkit-box-orient: vertical;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&--large {\\n\\t\\t\\tmin-width: var(--cell-width-large);\\n\\t\\t\\twidth: var(--cell-width-large);\\n\\t\\t}\\n\\n\\t\\t&--groups {\\n\\t\\t\\tmin-width: var(--cell-width-groups);\\n\\t\\t\\twidth: var(--cell-width-groups);\\n\\t\\t}\\n\\n\\t\\t&--obfuscated {\\n\\t\\t\\tmin-width: 400px;\\n\\t\\t\\twidth: 400px;\\n\\t\\t}\\n\\n\\t\\t// Fill remaining row space with cell\\n\\t\\t&--fill {\\n\\t\\t\\tmin-width: var(--cell-width-large);\\n\\t\\t\\twidth: 100%;\\n\\t\\t}\\n\\n\\t\\t&--actions {\\n\\t\\t\\tposition: sticky;\\n\\t\\t\\tinset-inline-end: 0;\\n\\t\\t\\tz-index: var(--sticky-column-z-index);\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex-direction: row;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tmin-width: 110px;\\n\\t\\t\\twidth: 110px;\\n\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\tborder-inline-start: 1px solid var(--color-border);\\n\\t\\t}\\n\\t}\\n\\n\\t&__subtitle {\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t}\\n}\\n\"],\"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, `.user-list__row[data-v-32716952]{position:relative;display:flex;min-width:100%;width:fit-content;height:var(--row-height);background-color:var(--color-main-background)}.user-list__row[data-v-32716952]:hover{background-color:var(--color-background-hover)}.user-list__row:hover .row__cell[data-v-32716952]:not(.row__cell--actions){background-color:var(--color-background-hover)}.row__cell[data-v-32716952]{display:flex;flex-direction:column;justify-content:center;padding:0 var(--cell-padding);min-width:var(--cell-width);width:var(--cell-width);color:var(--color-main-text)}.row__cell strong[data-v-32716952],.row__cell span[data-v-32716952],.row__cell label[data-v-32716952]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;overflow-wrap:anywhere}@media(min-width: 670px){.row__cell--avatar[data-v-32716952],.row__cell--displayname[data-v-32716952]{position:sticky;z-index:var(--sticky-column-z-index);background-color:var(--color-main-background)}.row__cell--avatar[data-v-32716952]{inset-inline-start:0}.row__cell--displayname[data-v-32716952]{inset-inline-start:var(--avatar-cell-width);border-inline-end:1px solid var(--color-border)}}.row__cell--username[data-v-32716952]{padding-inline-start:calc(var(--default-grid-baseline)*3)}.row__cell--avatar[data-v-32716952]{min-width:var(--avatar-cell-width);width:var(--avatar-cell-width);align-items:center;padding:0;user-select:none}.row__cell--multiline span[data-v-32716952]{line-height:1.3em;white-space:unset}@supports(-webkit-line-clamp: 2){.row__cell--multiline span[data-v-32716952]{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.row__cell--large[data-v-32716952]{min-width:var(--cell-width-large);width:var(--cell-width-large)}.row__cell--groups[data-v-32716952]{min-width:var(--cell-width-groups);width:var(--cell-width-groups)}.row__cell--obfuscated[data-v-32716952]{min-width:400px;width:400px}.row__cell--fill[data-v-32716952]{min-width:var(--cell-width-large);width:100%}.row__cell--actions[data-v-32716952]{position:sticky;inset-inline-end:0;z-index:var(--sticky-column-z-index);display:flex;flex-direction:row;align-items:center;min-width:110px;width:110px;background-color:var(--color-main-background);border-inline-start:1px solid var(--color-border)}.row__subtitle[data-v-32716952]{color:var(--color-text-maxcontrast)}.row__cell[data-v-32716952]{border-bottom:1px solid var(--color-border)}.row__progress[data-v-32716952]{margin-top:4px}.row__progress--warn[data-v-32716952]::-moz-progress-bar{background:var(--color-warning) !important}.row__progress--warn[data-v-32716952]::-webkit-progress-value{background:var(--color-warning) !important}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/Users/UserRow.vue\",\"webpack://./apps/settings/src/components/Users/shared/styles.scss\"],\"names\":[],\"mappings\":\"AAGA,iCCGC,iBAAA,CACA,YAAA,CACA,cAAA,CACA,iBAAA,CACA,wBAAA,CACA,6CAAA,CDLA,uCACC,8CAAA,CAEA,2EACC,8CAAA,CCKF,4BACC,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,6BAAA,CACA,2BAAA,CACA,uBAAA,CACA,4BAAA,CAEA,sGAGC,eAAA,CACA,sBAAA,CACA,kBAAA,CACA,sBAAA,CAGD,yBACC,6EAEC,eAAA,CACA,oCAAA,CACA,6CAAA,CAGD,oCACC,oBAAA,CAGD,yCACC,2CAAA,CACA,+CAAA,CAAA,CAIF,sCACC,yDAAA,CAGD,oCACC,kCAAA,CACA,8BAAA,CACA,kBAAA,CACA,SAAA,CACA,gBAAA,CAIA,4CACC,iBAAA,CACA,iBAAA,CAEA,iCAJD,4CAKE,mBAAA,CACA,oBAAA,CACA,2BAAA,CAAA,CAKH,mCACC,iCAAA,CACA,6BAAA,CAGD,oCACC,kCAAA,CACA,8BAAA,CAGD,wCACC,eAAA,CACA,WAAA,CAID,kCACC,iCAAA,CACA,UAAA,CAGD,qCACC,eAAA,CACA,kBAAA,CACA,oCAAA,CACA,YAAA,CACA,kBAAA,CACA,kBAAA,CACA,eAAA,CACA,WAAA,CACA,6CAAA,CACA,iDAAA,CAIF,gCACC,mCAAA,CD9FD,4BACC,2CAAA,CAGD,gCACC,cAAA,CAGC,yDACC,0CAAA,CAED,8DACC,0CAAA\",\"sourcesContent\":[\"\\n@use './shared/styles.scss';\\n\\n.user-list__row {\\n\\t@include styles.row;\\n\\n\\t&:hover {\\n\\t\\tbackground-color: var(--color-background-hover);\\n\\n\\t\\t.row__cell:not(.row__cell--actions) {\\n\\t\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\t}\\n\\t}\\n}\\n\\n.row {\\n\\t@include styles.cell;\\n\\n\\t&__cell {\\n\\t\\tborder-bottom: 1px solid var(--color-border);\\n\\t}\\n\\n\\t&__progress {\\n\\t\\tmargin-top: 4px;\\n\\n\\t\\t&--warn {\\n\\t\\t\\t&::-moz-progress-bar {\\n\\t\\t\\t\\tbackground: var(--color-warning) !important;\\n\\t\\t\\t}\\n\\t\\t\\t&::-webkit-progress-value {\\n\\t\\t\\t\\tbackground: var(--color-warning) !important;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"/**\\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n\\n@mixin row {\\n\\tposition: relative;\\n\\tdisplay: flex;\\n\\tmin-width: 100%;\\n\\twidth: fit-content;\\n\\theight: var(--row-height);\\n\\tbackground-color: var(--color-main-background);\\n}\\n\\n@mixin cell {\\n\\t&__cell {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\tjustify-content: center;\\n\\t\\tpadding: 0 var(--cell-padding);\\n\\t\\tmin-width: var(--cell-width);\\n\\t\\twidth: var(--cell-width);\\n\\t\\tcolor: var(--color-main-text);\\n\\n\\t\\tstrong,\\n\\t\\tspan,\\n\\t\\tlabel {\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\toverflow-wrap: anywhere;\\n\\t\\t}\\n\\n\\t\\t@media (min-width: 670px) { /* Show one &--large column between stickied columns */\\n\\t\\t\\t&--avatar,\\n\\t\\t\\t&--displayname {\\n\\t\\t\\t\\tposition: sticky;\\n\\t\\t\\t\\tz-index: var(--sticky-column-z-index);\\n\\t\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\t}\\n\\n\\t\\t\\t&--avatar {\\n\\t\\t\\t\\tinset-inline-start: 0;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&--displayname {\\n\\t\\t\\t\\tinset-inline-start: var(--avatar-cell-width);\\n\\t\\t\\t\\tborder-inline-end: 1px solid var(--color-border);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&--username {\\n\\t\\t\\tpadding-inline-start: calc(var(--default-grid-baseline) * 3);\\n\\t\\t}\\n\\n\\t\\t&--avatar {\\n\\t\\t\\tmin-width: var(--avatar-cell-width);\\n\\t\\t\\twidth: var(--avatar-cell-width);\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tpadding: 0;\\n\\t\\t\\tuser-select: none;\\n\\t\\t}\\n\\n\\t\\t&--multiline {\\n\\t\\t\\tspan {\\n\\t\\t\\t\\tline-height: 1.3em;\\n\\t\\t\\t\\twhite-space: unset;\\n\\n\\t\\t\\t\\t@supports (-webkit-line-clamp: 2) {\\n\\t\\t\\t\\t\\tdisplay: -webkit-box;\\n\\t\\t\\t\\t\\t-webkit-line-clamp: 2;\\n\\t\\t\\t\\t\\t-webkit-box-orient: vertical;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&--large {\\n\\t\\t\\tmin-width: var(--cell-width-large);\\n\\t\\t\\twidth: var(--cell-width-large);\\n\\t\\t}\\n\\n\\t\\t&--groups {\\n\\t\\t\\tmin-width: var(--cell-width-groups);\\n\\t\\t\\twidth: var(--cell-width-groups);\\n\\t\\t}\\n\\n\\t\\t&--obfuscated {\\n\\t\\t\\tmin-width: 400px;\\n\\t\\t\\twidth: 400px;\\n\\t\\t}\\n\\n\\t\\t// Fill remaining row space with cell\\n\\t\\t&--fill {\\n\\t\\t\\tmin-width: var(--cell-width-large);\\n\\t\\t\\twidth: 100%;\\n\\t\\t}\\n\\n\\t\\t&--actions {\\n\\t\\t\\tposition: sticky;\\n\\t\\t\\tinset-inline-end: 0;\\n\\t\\t\\tz-index: var(--sticky-column-z-index);\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex-direction: row;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tmin-width: 110px;\\n\\t\\t\\twidth: 110px;\\n\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\tborder-inline-start: 1px solid var(--color-border);\\n\\t\\t}\\n\\t}\\n\\n\\t&__subtitle {\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t}\\n}\\n\"],\"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, `.dialog__note[data-v-649c1de8]{font-weight:normal}fieldset[data-v-649c1de8]{font-weight:bold}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/Users/UserSettingsDialog.vue\"],\"names\":[],\"mappings\":\"AAEC,+BACC,kBAAA,CAIF,0BACC,gBAAA\",\"sourcesContent\":[\"\\n.dialog {\\n\\t&__note {\\n\\t\\tfont-weight: normal;\\n\\t}\\n}\\n\\nfieldset {\\n\\tfont-weight: bold;\\n}\\n\"],\"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, `.user-list[data-v-65d37ac4]{--avatar-cell-width: 48px;--cell-padding: 7px;--cell-width: 200px;--cell-width-large: 300px;--cell-width-groups: 380px;--cell-min-width: calc(var(--cell-width) - (2 * var(--cell-padding)));--sticky-column-z-index: calc(var(--vs-dropdown-z-index) + 1);display:block;overflow:auto;height:100%;will-change:scroll-position}.user-list__header[data-v-65d37ac4],.user-list__footer[data-v-65d37ac4]{position:sticky;display:block}.user-list__header[data-v-65d37ac4]{top:0;z-index:calc(var(--sticky-column-z-index) + 1)}.user-list__footer[data-v-65d37ac4]{inset-inline-start:0}.user-list__body[data-v-65d37ac4]{display:flex;flex-direction:column;width:100%}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/Users/VirtualList.vue\"],\"names\":[],\"mappings\":\"AACA,4BACC,yBAAA,CACA,mBAAA,CACA,mBAAA,CACA,yBAAA,CACA,0BAAA,CACA,qEAAA,CACA,6DAAA,CAGA,aAAA,CACA,aAAA,CACA,WAAA,CACA,2BAAA,CAEA,wEAEC,eAAA,CAEA,aAAA,CAGD,oCACC,KAAA,CACA,8CAAA,CAGD,oCACC,oBAAA,CAGD,kCACC,YAAA,CACA,qBAAA,CACA,UAAA\",\"sourcesContent\":[\"\\n.user-list {\\n\\t--avatar-cell-width: 48px;\\n\\t--cell-padding: 7px;\\n\\t--cell-width: 200px;\\n\\t--cell-width-large: 300px;\\n\\t--cell-width-groups: 380px;\\n\\t--cell-min-width: calc(var(--cell-width) - (2 * var(--cell-padding)));\\n\\t--sticky-column-z-index: calc(var(--vs-dropdown-z-index) + 1); // Keep the sticky column on top of the select dropdown\\n\\n\\t// Necessary for virtual scroll optimized rendering\\n\\tdisplay: block;\\n\\toverflow: auto;\\n\\theight: 100%;\\n\\twill-change: scroll-position;\\n\\n\\t&__header,\\n\\t&__footer {\\n\\t\\tposition: sticky;\\n\\t\\t// Fix sticky positioning in Firefox\\n\\t\\tdisplay: block;\\n\\t}\\n\\n\\t&__header {\\n\\t\\ttop: 0;\\n\\t\\tz-index: calc(var(--sticky-column-z-index) + 1);\\n\\t}\\n\\n\\t&__footer {\\n\\t\\tinset-inline-start: 0;\\n\\t}\\n\\n\\t&__body {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\twidth: 100%;\\n\\t}\\n}\\n\"],\"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-content[data-v-6c72a095]{display:flex;overflow:hidden;flex-direction:column;max-height:100%}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/views/UserManagement.vue\"],\"names\":[],\"mappings\":\"AACA,8BAEC,YAAA,CACA,eAAA,CACA,qBAAA,CACA,eAAA\",\"sourcesContent\":[\"\\n.app-content {\\n\\t// Virtual list needs to be full height and is scrollable\\n\\tdisplay: flex;\\n\\toverflow: hidden;\\n\\tflex-direction: column;\\n\\tmax-height: 100%;\\n}\\n\"],\"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, `.account-management__navigation[data-v-0567bb0c] .app-navigation__body{will-change:scroll-position}.account-management__search[data-v-0567bb0c]{padding-block:var(--default-grid-baseline, 4px);padding-inline:var(--app-navigation-padding, 8px)}.account-management__system-list[data-v-0567bb0c]{height:auto !important;overflow:visible !important}.account-management__group-list[data-v-0567bb0c]{height:100% !important}.account-management__settings-toggle[data-v-0567bb0c]{margin-bottom:12px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/views/UserManagementNavigation.vue\"],\"names\":[],\"mappings\":\"AAGE,uEACC,2BAAA,CAGF,6CACC,+CAAA,CACA,iDAAA,CAGD,kDACC,sBAAA,CACA,2BAAA,CAGD,iDACC,sBAAA,CAGD,sDACC,kBAAA\",\"sourcesContent\":[\"\\n.account-management {\\n\\t&__navigation {\\n\\t\\t:deep(.app-navigation__body) {\\n\\t\\t\\twill-change: scroll-position;\\n\\t\\t}\\n\\t}\\n\\t&__search {\\n\\t\\tpadding-block: var(--default-grid-baseline, 4px);\\n\\t\\tpadding-inline: var(--app-navigation-padding, 8px);\\n\\t}\\n\\n\\t&__system-list {\\n\\t\\theight: auto !important;\\n\\t\\toverflow: visible !important;\\n\\t}\\n\\n\\t&__group-list {\\n\\t\\theight: 100% !important;\\n\\t}\\n\\n\\t&__settings-toggle {\\n\\t\\tmargin-bottom: 12px;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcAppContent',{attrs:{\"page-heading\":_vm.pageHeading}},[_c('UserList',{attrs:{\"selected-group\":_vm.selectedGroupDecoded,\"external-actions\":_vm.externalActions}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserFormGroups.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!./UserFormGroups.vue?vue&type=script&lang=js\"","\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!./UserFormGroups.vue?vue&type=style&index=0&id=4041cacf&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!./UserFormGroups.vue?vue&type=style&index=0&id=4041cacf&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserFormGroups.vue?vue&type=template&id=4041cacf&scoped=true\"\nimport script from \"./UserFormGroups.vue?vue&type=script&lang=js\"\nexport * from \"./UserFormGroups.vue?vue&type=script&lang=js\"\nimport style0 from \"./UserFormGroups.vue?vue&type=style&index=0&id=4041cacf&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 \"4041cacf\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"user-form-groups\"},[_c('div',{staticClass:\"user-form__item\"},[_c('NcSelect',{staticClass:\"user-form__select\",attrs:{\"data-test\":\"groups\",\"input-label\":_vm.groupsLabel,\"placeholder\":_vm.t('settings', 'Set account groups'),\"disabled\":_vm.creatingGroup,\"options\":_vm.availableGroups,\"label\":\"name\",\"keep-open\":\"\",\"multiple\":true,\"taggable\":_vm.settings.isAdmin || _vm.settings.isDelegatedAdmin,\"required\":!_vm.settings.isAdmin && !_vm.settings.isDelegatedAdmin,\"create-option\":(value) => ({ id: value, name: value, isCreating: true })},on:{\"search\":_vm.searchGroups,\"option:created\":_vm.createGroup},model:{value:(_vm.formData.groups),callback:function ($$v) {_vm.$set(_vm.formData, \"groups\", $$v)},expression:\"formData.groups\"}})],1),_vm._v(\" \"),(_vm.settings.isAdmin || _vm.settings.isDelegatedAdmin)?_c('div',{staticClass:\"user-form__item\"},[_c('NcSelect',{staticClass:\"user-form__select\",attrs:{\"input-label\":_vm.t('settings', 'Admin of the following groups'),\"placeholder\":_vm.t('settings', 'Set account as admin for …'),\"disabled\":_vm.creatingGroup,\"options\":_vm.availableSubAdminGroups,\"keep-open\":\"\",\"multiple\":true,\"label\":\"name\"},on:{\"search\":_vm.searchGroups},model:{value:(_vm.formData.subadminGroups),callback:function ($$v) {_vm.$set(_vm.formData, \"subadminGroups\", $$v)},expression:\"formData.subadminGroups\"}})],1):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.showConfig.showLanguages)?_c('div',{staticClass:\"user-form__item\"},[_c('NcSelect',{staticClass:\"user-form__select\",attrs:{\"input-label\":_vm.t('settings', 'Language'),\"placeholder\":_vm.t('settings', 'Set default language'),\"clearable\":false,\"selectable\":option => !option.languages,\"filter-by\":_vm.languageFilterBy,\"options\":_vm.languages,\"label\":\"name\"},model:{value:(_vm.formData.language),callback:function ($$v) {_vm.$set(_vm.formData, \"language\", $$v)},expression:\"formData.language\"}})],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { formatFileSize, parseFileSize } from '@nextcloud/files';\nimport { unlimitedQuota } from '../../utils/userUtils.ts';\n/**\n * Resolves the user's language code to a { code, name } object.\n *\n * @param user The user store object\n * @param serverLanguages Server language configuration\n * @return Language object with code and name\n */\nexport function resolveLanguage(user, serverLanguages) {\n if (!user.language || user.language === '') {\n return { code: '', name: '' };\n }\n const allLangs = [\n ...(serverLanguages?.commonLanguages ?? []),\n ...(serverLanguages?.otherLanguages ?? []),\n ];\n const match = allLangs.find((lang) => lang.code === user.language);\n if (match) {\n return match;\n }\n return { code: user.language, name: user.language };\n}\n/**\n * Maps a user store object to the flat, API-aligned shape used by the form.\n * Keeps a clean separation between the store model (e.g. `user.displayname`,\n * `user.quota.quota`) and the form model (e.g. `displayName`, `quota`).\n *\n * @param user The user store object\n * @param allGroups All available groups from the store\n * @param quotaOptions Quota preset options\n * @param serverLanguages Server language configuration\n * @return Form-ready data object\n */\nexport function userToFormData(user, allGroups, quotaOptions, serverLanguages) {\n const groups = user.groups\n .map((id) => allGroups.find((g) => g.id === id))\n .filter(Boolean);\n const subadminGroups = (user.subadmin ?? [])\n .map((id) => allGroups.find((g) => g.id === id))\n .filter(Boolean);\n let quota;\n if (user.quota?.quota >= 0) {\n const label = formatFileSize(user.quota.quota);\n quota = quotaOptions.find((q) => q.id === label) ?? { id: label, label };\n }\n else if (user.quota?.quota === 'default') {\n quota = quotaOptions[0];\n }\n else {\n quota = unlimitedQuota;\n }\n return {\n username: user.id,\n displayName: user.displayname ?? '',\n password: '',\n email: user.email ?? '',\n groups,\n subadminGroups,\n quota,\n language: resolveLanguage(user, serverLanguages),\n manager: user.manager ?? '',\n };\n}\n/**\n * Generic shallow diff between initial and current form data.\n * Returns only fields that changed, with API-ready values.\n *\n * @param initial Snapshot of form data at mount time\n * @param current Current form data state\n * @return Changed fields with API-ready values\n */\nexport function diffPayload(initial, current) {\n const payload = {};\n if (current.displayName !== initial.displayName) {\n payload.displayName = current.displayName;\n }\n if (current.password !== '') {\n payload.password = current.password;\n }\n if (current.email !== initial.email) {\n payload.email = current.email;\n }\n if (current.quota.id !== initial.quota.id) {\n payload.quota = current.quota.id;\n }\n if (current.language.code !== initial.language.code) {\n payload.language = current.language.code;\n }\n const currentManagerId = typeof current.manager === 'object' ? (current.manager.id ?? '') : current.manager;\n const initialManagerId = typeof initial.manager === 'object' ? (initial.manager.id ?? '') : initial.manager;\n if (currentManagerId !== initialManagerId) {\n payload.manager = currentManagerId;\n }\n const currentGroupIds = current.groups.map((g) => g.id).sort();\n const initialGroupIds = initial.groups.map((g) => g.id).sort();\n if (JSON.stringify(currentGroupIds) !== JSON.stringify(initialGroupIds)) {\n payload.groups = currentGroupIds;\n }\n const currentSubadminIds = current.subadminGroups.map((g) => g.id).sort();\n const initialSubadminIds = initial.subadminGroups.map((g) => g.id).sort();\n if (JSON.stringify(currentSubadminIds) !== JSON.stringify(initialSubadminIds)) {\n payload.subadminGroups = currentSubadminIds;\n }\n return payload;\n}\n/**\n * Parses and normalizes a user-entered quota string into a quota option.\n * Returns the fallback option if the input is invalid.\n *\n * @param quota Raw quota string entered by the user (e.g. \"4 MB\")\n * @param fallback Fallback option when input is invalid\n * @param fallback.id Fallback option identifier\n * @param fallback.label Fallback option display label\n * @return Normalized quota option with id and label\n */\nexport function validateQuota(quota, fallback) {\n const parsed = parseFileSize(quota, true);\n if (parsed !== null && parsed >= 0) {\n const label = formatFileSize(parsed);\n return { id: label, label };\n }\n return fallback;\n}\n/**\n * Filter function for the language NcSelect. Handles grouped options\n * (section headers with nested languages) and plain language entries.\n *\n * @param option The select option being filtered\n * @param option.languages Nested languages for group headers\n * @param label The option's display label\n * @param search The user's search string\n * @return Whether the option matches the search\n */\nexport function languageFilterBy(option, label, search) {\n if (option.languages) {\n return option.languages.some(({ name }) => name.toLocaleLowerCase().includes(search.toLocaleLowerCase()));\n }\n return (label || '').toLocaleLowerCase().includes(search.toLocaleLowerCase());\n}\n","\n\n\n\n\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserFormLanguage.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!./UserFormLanguage.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./UserFormLanguage.vue?vue&type=template&id=41ac58dd\"\nimport script from \"./UserFormLanguage.vue?vue&type=script&lang=js\"\nexport * from \"./UserFormLanguage.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',{staticClass:\"user-form__item user-form__managers\"},[_c('NcSelectUsers',{staticClass:\"user-form__select\",attrs:{\"modelValue\":_vm.managerModel,\"input-label\":_vm.t('settings', 'Manager'),\"placeholder\":_vm.t('settings', 'Search for a manager…'),\"options\":_vm.managerOptions,\"loading\":_vm.loading},on:{\"update:modelValue\":_vm.onManagerChange,\"search\":_vm.searchUserManager}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserFormManager.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!./UserFormManager.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./UserFormManager.vue?vue&type=template&id=7584b1b9\"\nimport script from \"./UserFormManager.vue?vue&type=script&lang=js\"\nexport * from \"./UserFormManager.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","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserFormQuota.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!./UserFormQuota.vue?vue&type=script&lang=js\"","\n\n\n\n\n","import { render, staticRenderFns } from \"./UserFormQuota.vue?vue&type=template&id=d14c331a\"\nimport script from \"./UserFormQuota.vue?vue&type=script&lang=js\"\nexport * from \"./UserFormQuota.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',{staticClass:\"user-form__item\"},[_c('NcSelect',{staticClass:\"user-form__select\",attrs:{\"input-label\":_vm.t('settings', 'Quota'),\"placeholder\":_vm.t('settings', 'Set account quota'),\"options\":_vm.quotaOptions,\"clearable\":false,\"taggable\":true,\"create-option\":_vm.validateQuota},model:{value:(_vm.formData.quota),callback:function ($$v) {_vm.$set(_vm.formData, \"quota\", $$v)},expression:\"formData.quota\"}})],1)\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!./UserFormFields.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!./UserFormFields.vue?vue&type=script&lang=js\"","\n\n\n\n\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!./UserFormFields.vue?vue&type=style&index=0&id=0d9243e9&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!./UserFormFields.vue?vue&type=style&index=0&id=0d9243e9&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserFormFields.vue?vue&type=template&id=0d9243e9&scoped=true\"\nimport script from \"./UserFormFields.vue?vue&type=script&lang=js\"\nexport * from \"./UserFormFields.vue?vue&type=script&lang=js\"\nimport style0 from \"./UserFormFields.vue?vue&type=style&index=0&id=0d9243e9&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 \"0d9243e9\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"user-form-fields\"},[(_vm.fieldConfig.username?.show && _vm.fieldConfig.username?.disabled)?_c('div',{staticClass:\"user-form-fields__item user-form-fields__static\",attrs:{\"data-test\":\"username\"}},[_c('span',{staticClass:\"user-form-fields__static-label\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.fieldConfig.username?.label)+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('span',{staticClass:\"user-form-fields__static-value\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.formData.username)+\"\\n\\t\\t\")])]):(_vm.fieldConfig.username?.show)?_c('NcTextField',{ref:\"username\",staticClass:\"user-form-fields__item\",attrs:{\"data-test\":\"username\",\"label\":_vm.fieldConfig.username?.label,\"autocapitalize\":\"none\",\"autocomplete\":\"off\",\"spellcheck\":\"false\",\"pattern\":\"[a-zA-Z0-9 _\\\\.@\\\\-']+\",\"required\":_vm.fieldConfig.username?.required},model:{value:(_vm.formData.username),callback:function ($$v) {_vm.$set(_vm.formData, \"username\", $$v)},expression:\"formData.username\"}}):_vm._e(),_vm._v(\" \"),_c('NcTextField',{staticClass:\"user-form-fields__item\",attrs:{\"data-test\":\"displayName\",\"label\":_vm.t('settings', 'Display name'),\"error\":!!_vm.errors.displayName,\"helper-text\":_vm.errors.displayName,\"autocapitalize\":\"none\",\"autocomplete\":\"off\",\"spellcheck\":\"false\"},model:{value:(_vm.formData.displayName),callback:function ($$v) {_vm.$set(_vm.formData, \"displayName\", $$v)},expression:\"formData.displayName\"}}),_vm._v(\" \"),(_vm.fieldConfig.showPasswordEmailHint)?_c('span',{staticClass:\"user-form-fields__hint\",attrs:{\"id\":\"password-email-hint\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('settings', 'Either password or email is required'))+\"\\n\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.fieldConfig.password?.show !== false)?_c('NcPasswordField',{ref:\"password\",staticClass:\"user-form-fields__item\",attrs:{\"data-test\":\"password\",\"minlength\":_vm.minPasswordLength,\"maxlength\":469,\"aria-describedby\":_vm.fieldConfig.showPasswordEmailHint ? 'password-email-hint' : undefined,\"label\":_vm.fieldConfig.password?.label,\"error\":!!_vm.errors.password,\"helper-text\":_vm.errors.password,\"autocapitalize\":\"none\",\"autocomplete\":\"new-password\",\"spellcheck\":\"false\",\"required\":_vm.fieldConfig.password?.required},model:{value:(_vm.formData.password),callback:function ($$v) {_vm.$set(_vm.formData, \"password\", $$v)},expression:\"formData.password\"}}):_vm._e(),_vm._v(\" \"),_c('NcTextField',{staticClass:\"user-form-fields__item\",attrs:{\"data-test\":\"email\",\"type\":\"email\",\"aria-describedby\":_vm.fieldConfig.showPasswordEmailHint ? 'password-email-hint' : undefined,\"label\":_vm.fieldConfig.email?.label || _vm.t('settings', 'Email'),\"error\":!!_vm.errors.email,\"helper-text\":_vm.errors.email,\"autocapitalize\":\"none\",\"autocomplete\":\"off\",\"spellcheck\":\"false\",\"required\":_vm.fieldConfig.email?.required},model:{value:(_vm.formData.email),callback:function ($$v) {_vm.$set(_vm.formData, \"email\", $$v)},expression:\"formData.email\"}}),_vm._v(\" \"),_c('UserFormGroups'),_vm._v(\" \"),_c('UserFormQuota',{attrs:{\"quota-options\":_vm.quotaOptions}}),_vm._v(\" \"),_c('UserFormLanguage'),_vm._v(\" \"),_c('UserFormManager'),_vm._v(\" \"),(Object.keys(_vm.unhandledErrors).length > 0)?_c('div',{staticClass:\"user-form-fields__error-summary\",attrs:{\"aria-live\":\"polite\",\"role\":\"status\"}},_vm._l((_vm.unhandledErrors),function(message,field){return _c('p',{key:field},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(field)+\": \"+_vm._s(message)+\"\\n\\t\\t\")])}),0):_vm._e()],1)\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!./EditUserDialog.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!./EditUserDialog.vue?vue&type=script&lang=js\"","\n\n\n\n\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!./EditUserDialog.vue?vue&type=style&index=0&id=2a263a52&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!./EditUserDialog.vue?vue&type=style&index=0&id=2a263a52&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./EditUserDialog.vue?vue&type=template&id=2a263a52&scoped=true\"\nimport script from \"./EditUserDialog.vue?vue&type=script&lang=js\"\nexport * from \"./EditUserDialog.vue?vue&type=script&lang=js\"\nimport style0 from \"./EditUserDialog.vue?vue&type=style&index=0&id=2a263a52&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 \"2a263a52\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcDialog',{staticClass:\"edit-dialog\",attrs:{\"size\":\"small\",\"name\":_vm.t('settings', 'Edit account'),\"outTransition\":\"\"},on:{\"closing\":function($event){return _vm.$emit('closing')}},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('NcButton',{staticClass:\"edit-dialog__submit\",attrs:{\"data-test\":\"submit\",\"form\":\"edit-user-form\",\"variant\":\"primary\",\"type\":\"submit\",\"disabled\":_vm.saving}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.saving ? _vm.t('settings', 'Saving\\u00A0…') : _vm.t('settings', 'Save'))+\"\\n\\t\\t\")])]},proxy:true}])},[_c('form',{staticClass:\"edit-dialog__form\",attrs:{\"id\":\"edit-user-form\",\"data-test\":\"form\",\"disabled\":_vm.saving},on:{\"submit\":function($event){$event.preventDefault();return _vm.save.apply(null, arguments)}}},[_c('UserFormFields',{attrs:{\"fieldConfig\":_vm.fieldConfig,\"errors\":_vm.fieldErrors,\"quotaOptions\":_vm.quotaOptions}})],1)])\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!./NewUserDialog.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!./NewUserDialog.vue?vue&type=script&lang=js\"","\n\n\n\n\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!./NewUserDialog.vue?vue&type=style&index=0&id=32af3da3&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!./NewUserDialog.vue?vue&type=style&index=0&id=32af3da3&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./NewUserDialog.vue?vue&type=template&id=32af3da3&scoped=true\"\nimport script from \"./NewUserDialog.vue?vue&type=script&lang=js\"\nexport * from \"./NewUserDialog.vue?vue&type=script&lang=js\"\nimport style0 from \"./NewUserDialog.vue?vue&type=style&index=0&id=32af3da3&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 \"32af3da3\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcDialog',_vm._g({staticClass:\"dialog\",attrs:{\"size\":\"small\",\"name\":_vm.t('settings', 'New account'),\"out-transition\":\"\"},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('NcButton',{staticClass:\"dialog__submit\",attrs:{\"data-test\":\"submit\",\"form\":\"new-user-form\",\"variant\":\"primary\",\"type\":\"submit\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Add new account'))+\"\\n\\t\\t\")])]},proxy:true}])},_vm.$listeners),[_c('form',{staticClass:\"dialog__form\",attrs:{\"id\":\"new-user-form\",\"data-test\":\"form\",\"disabled\":_vm.loading.all},on:{\"submit\":function($event){$event.preventDefault();return _vm.createUser.apply(null, arguments)}}},[_c('UserFormFields',{ref:\"fields\",attrs:{\"field-config\":_vm.fieldConfig,\"quota-options\":_vm.quotaOptions}})],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-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserListFooter.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-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserListFooter.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:\"footer\"},[_c('th',{attrs:{\"scope\":\"row\"}},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('settings', 'Total rows summary')))])]),_vm._v(\" \"),_c('td',{staticClass:\"footer__cell footer__cell--loading\"},[(_vm.loading)?_c('NcLoadingIcon',{attrs:{\"title\":_vm.t('settings', 'Loading accounts …'),\"size\":32}}):_vm._e()],1),_vm._v(\" \"),_c('td',{staticClass:\"footer__cell footer__cell--count footer__cell--multiline\"},[_c('span',{attrs:{\"aria-describedby\":\"user-count-desc\"}},[_vm._v(_vm._s(_vm.userCount))]),_vm._v(\" \"),_c('span',{staticClass:\"hidden-visually\",attrs:{\"id\":\"user-count-desc\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Scroll to load more rows'))+\"\\n\\t\\t\")])])])\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!./UserListFooter.vue?vue&type=style&index=0&id=4ff6ba29&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!./UserListFooter.vue?vue&type=style&index=0&id=4ff6ba29&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserListFooter.vue?vue&type=template&id=4ff6ba29&scoped=true\"\nimport script from \"./UserListFooter.vue?vue&type=script&lang=ts\"\nexport * from \"./UserListFooter.vue?vue&type=script&lang=ts\"\nimport style0 from \"./UserListFooter.vue?vue&type=style&index=0&id=4ff6ba29&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 \"4ff6ba29\",\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-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserListHeader.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-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserListHeader.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:\"header\"},[_c('th',{staticClass:\"header__cell header__cell--avatar\",attrs:{\"data-cy-user-list-header-avatar\":\"\",\"scope\":\"col\"}},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Avatar'))+\"\\n\\t\\t\")])]),_vm._v(\" \"),_c('th',{staticClass:\"header__cell header__cell--displayname\",attrs:{\"data-cy-user-list-header-displayname\":\"\",\"scope\":\"col\"}},[_c('strong',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Display name'))+\"\\n\\t\\t\")])]),_vm._v(\" \"),_c('th',{staticClass:\"header__cell header__cell--username\",attrs:{\"data-cy-user-list-header-username\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Account name'))+\"\\n\\t\\t\")])]),_vm._v(\" \"),_c('th',{staticClass:\"header__cell\",attrs:{\"data-cy-user-list-header-email\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(_vm._s(_vm.t('settings', 'Email')))])]),_vm._v(\" \"),_c('th',{staticClass:\"header__cell header__cell--groups\",attrs:{\"data-cy-user-list-header-groups\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(_vm._s(_vm.t('settings', 'Groups')))])]),_vm._v(\" \"),(_vm.settings.isAdmin || _vm.settings.isDelegatedAdmin)?_c('th',{staticClass:\"header__cell header__cell--large\",attrs:{\"data-cy-user-list-header-subadmins\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(_vm._s(_vm.t('settings', 'Group admin for')))])]):_vm._e(),_vm._v(\" \"),_c('th',{staticClass:\"header__cell\",attrs:{\"data-cy-user-list-header-quota\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(_vm._s(_vm.t('settings', 'Quota')))])]),_vm._v(\" \"),(_vm.showConfig.showLanguages)?_c('th',{staticClass:\"header__cell header__cell--large\",attrs:{\"data-cy-user-list-header-languages\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(_vm._s(_vm.t('settings', 'Language')))])]):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showUserBackend || _vm.showConfig.showStoragePath)?_c('th',{staticClass:\"header__cell header__cell--large\",attrs:{\"data-cy-user-list-header-storage-location\":\"\",\"scope\":\"col\"}},[(_vm.showConfig.showUserBackend)?_c('span',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Account backend'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showStoragePath)?_c('span',{staticClass:\"header__subtitle\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Storage location'))+\"\\n\\t\\t\")]):_vm._e()]):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showFirstLogin)?_c('th',{staticClass:\"header__cell\",attrs:{\"data-cy-user-list-header-first-login\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(_vm._s(_vm.t('settings', 'First login')))])]):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showLastLogin)?_c('th',{staticClass:\"header__cell\",attrs:{\"data-cy-user-list-header-last-login\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(_vm._s(_vm.t('settings', 'Last login')))])]):_vm._e(),_vm._v(\" \"),_c('th',{staticClass:\"header__cell header__cell--large header__cell--fill\",attrs:{\"data-cy-user-list-header-manager\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(_vm._s(_vm.t('settings', 'Manager')))])]),_vm._v(\" \"),_c('th',{staticClass:\"header__cell header__cell--actions\",attrs:{\"data-cy-user-list-header-actions\":\"\",\"scope\":\"col\"}},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Account actions'))+\"\\n\\t\\t\")])])])\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!./UserListHeader.vue?vue&type=style&index=0&id=53c64244&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!./UserListHeader.vue?vue&type=style&index=0&id=53c64244&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserListHeader.vue?vue&type=template&id=53c64244&scoped=true\"\nimport script from \"./UserListHeader.vue?vue&type=script&lang=ts\"\nexport * from \"./UserListHeader.vue?vue&type=script&lang=ts\"\nimport style0 from \"./UserListHeader.vue?vue&type=style&index=0&id=53c64244&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 \"53c64244\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('tr',{staticClass:\"user-list__row\",attrs:{\"data-cy-user-row\":_vm.user.id}},[_c('td',{staticClass:\"row__cell row__cell--avatar\",attrs:{\"data-cy-user-list-cell-avatar\":\"\"}},[(_vm.isLoadingUser)?_c('NcLoadingIcon',{attrs:{\"name\":_vm.t('settings', 'Loading account …'),\"size\":32}}):(_vm.visible)?_c('NcAvatar',{attrs:{\"disable-menu\":\"\",\"hide-status\":\"\",\"user\":_vm.user.id}}):_vm._e()],1),_vm._v(\" \"),_c('td',{staticClass:\"row__cell row__cell--displayname\",attrs:{\"data-cy-user-list-cell-displayname\":\"\"}},[(!_vm.isObfuscated)?_c('strong',{attrs:{\"title\":_vm.user.displayname?.length > 20 ? _vm.user.displayname : null}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.user.displayname)+\"\\n\\t\\t\")]):_vm._e()]),_vm._v(\" \"),_c('td',{staticClass:\"row__cell row__cell--username\",attrs:{\"data-cy-user-list-cell-username\":\"\"}},[_c('span',{staticClass:\"row__subtitle\"},[_vm._v(_vm._s(_vm.user.id))])]),_vm._v(\" \"),_c('td',{staticClass:\"row__cell\",attrs:{\"data-cy-user-list-cell-email\":\"\"}},[(!_vm.isObfuscated)?_c('span',{attrs:{\"title\":_vm.user.email?.length > 20 ? _vm.user.email : null}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.user.email)+\"\\n\\t\\t\")]):_vm._e()]),_vm._v(\" \"),_c('td',{staticClass:\"row__cell row__cell--groups row__cell--multiline\",attrs:{\"data-cy-user-list-cell-groups\":\"\"}},[(!_vm.isObfuscated)?_c('span',{attrs:{\"title\":_vm.userGroupsLabels?.length > 40 ? _vm.userGroupsLabels : null}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.userGroupsLabels)+\"\\n\\t\\t\")]):_vm._e()]),_vm._v(\" \"),(_vm.settings.isAdmin || _vm.settings.isDelegatedAdmin)?_c('td',{staticClass:\"row__cell row__cell--large row__cell--multiline\",attrs:{\"data-cy-user-list-cell-subadmins\":\"\"}},[(!_vm.isObfuscated)?_c('span',{attrs:{\"title\":_vm.userSubAdminGroupsLabels?.length > 40 ? _vm.userSubAdminGroupsLabels : null}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.userSubAdminGroupsLabels)+\"\\n\\t\\t\")]):_vm._e()]):_vm._e(),_vm._v(\" \"),_c('td',{staticClass:\"row__cell\",attrs:{\"data-cy-user-list-cell-quota\":\"\"}},[(!_vm.isObfuscated)?[_c('span',{attrs:{\"id\":'quota-progress' + _vm.uniqueId}},[_vm._v(_vm._s(_vm.userQuota)+\" (\"+_vm._s(_vm.usedSpace)+\")\")]),_vm._v(\" \"),_c('NcProgressBar',{staticClass:\"row__progress\",class:{\n\t\t\t\t\t'row__progress--warn': _vm.usedQuota > 80,\n\t\t\t\t},attrs:{\"aria-labelledby\":'quota-progress' + _vm.uniqueId,\"value\":_vm.usedQuota}})]:_vm._e()],2),_vm._v(\" \"),(_vm.showConfig.showLanguages)?_c('td',{staticClass:\"row__cell row__cell--large\",attrs:{\"data-cy-user-list-cell-language\":\"\"}},[(!_vm.isObfuscated)?_c('span',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.userLanguage.name)+\"\\n\\t\\t\")]):_vm._e()]):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showUserBackend || _vm.showConfig.showStoragePath)?_c('td',{staticClass:\"row__cell row__cell--large\",attrs:{\"data-cy-user-list-cell-storage-location\":\"\"}},[(!_vm.isObfuscated)?[(_vm.showConfig.showUserBackend)?_c('span',[_vm._v(_vm._s(_vm.user.backend))]):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showStoragePath)?_c('span',{staticClass:\"row__subtitle\",attrs:{\"title\":_vm.user.storageLocation}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.user.storageLocation)+\"\\n\\t\\t\\t\")]):_vm._e()]:_vm._e()],2):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showFirstLogin)?_c('td',{staticClass:\"row__cell\",attrs:{\"data-cy-user-list-cell-first-login\":\"\"}},[(!_vm.isObfuscated)?_c('span',[_vm._v(_vm._s(_vm.userFirstLogin))]):_vm._e()]):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showLastLogin)?_c('td',{staticClass:\"row__cell\",attrs:{\"title\":_vm.userLastLoginTooltip,\"data-cy-user-list-cell-last-login\":\"\"}},[(!_vm.isObfuscated)?_c('span',[_vm._v(_vm._s(_vm.userLastLogin))]):_vm._e()]):_vm._e(),_vm._v(\" \"),_c('td',{staticClass:\"row__cell row__cell--large row__cell--fill\",attrs:{\"data-cy-user-list-cell-manager\":\"\"}},[(!_vm.isObfuscated)?_c('span',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.user.manager)+\"\\n\\t\\t\")]):_vm._e()]),_vm._v(\" \"),_c('td',{staticClass:\"row__cell row__cell--actions\",attrs:{\"data-cy-user-list-cell-actions\":\"\"}},[(_vm.visible && !_vm.isObfuscated && _vm.canEdit && !_vm.loading.all)?_c('UserRowActions',{attrs:{\"actions\":_vm.userActions,\"disabled\":_vm.isLoadingField,\"user\":_vm.user},on:{\"update:edit\":_vm.toggleEdit}}):_vm._e()],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcActions',{attrs:{\"aria-label\":_vm.t('settings', 'Toggle account actions menu'),\"disabled\":_vm.disabled,\"inline\":1}},[_c('NcActionButton',{attrs:{\"data-cy-user-list-action-edit\":\"\",\"disabled\":_vm.disabled},on:{\"click\":function($event){return _vm.$emit('update:edit', true)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"svg\":_vm.SvgPencil,\"aria-hidden\":\"true\"}})]},proxy:true}])},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('settings', 'Edit'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_vm._l((_vm.enabledActions),function({ action, icon, text },index){return _c('NcActionButton',{key:index,attrs:{\"disabled\":_vm.disabled,\"aria-label\":text,\"icon\":icon,\"close-after-click\":\"\"},on:{\"click\":(event) => action(event, { ..._vm.user })},scopedSlots:_vm._u([(_vm.isSvg(icon))?{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"svg\":icon,\"aria-hidden\":\"true\"}})]},proxy:true}:null],null,true)},[_vm._v(\"\\n\\t\\t\"+_vm._s(text)+\"\\n\\t\\t\")])})],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-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserRowActions.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-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserRowActions.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./UserRowActions.vue?vue&type=template&id=a72dfc28\"\nimport script from \"./UserRowActions.vue?vue&type=script&lang=ts\"\nexport * from \"./UserRowActions.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 { N as NcActionButton } from \"./chunks/NcActionButton-1gSJfFUC.mjs\";\nimport { N as NcActionButtonGroup } from \"./chunks/NcActionButtonGroup-eZxqibUd.mjs\";\nimport NcActionCaption from \"./Components/NcActionCaption.mjs\";\nimport { N as NcActionCheckbox } from \"./chunks/NcActionCheckbox-23CmleUh.mjs\";\nimport { N as NcActionInput } from \"./chunks/NcActionInput-UPwE2Dky.mjs\";\nimport NcActionLink from \"./Components/NcActionLink.mjs\";\nimport { N as NcActionRadio } from \"./chunks/NcActionRadio-Dd3CsuiD.mjs\";\nimport NcActionRouter from \"./Components/NcActionRouter.mjs\";\nimport { N as NcActions } from \"./chunks/NcActions-BcLis_nr.mjs\";\nimport NcActionSeparator from \"./Components/NcActionSeparator.mjs\";\nimport NcActionText from \"./Components/NcActionText.mjs\";\nimport { N as NcActionTextEditable } from \"./chunks/NcActionTextEditable-CIsAP-pp.mjs\";\nimport { N as NcAppContent } from \"./chunks/NcAppContent-CeVqX0gV.mjs\";\nimport NcAppContentDetails from \"./Components/NcAppContentDetails.mjs\";\nimport NcAppContentList from \"./Components/NcAppContentList.mjs\";\nimport { N as NcAppNavigation } from \"./chunks/NcAppNavigation-BfzJA6cb.mjs\";\nimport { N as NcAppNavigationCaption } from \"./chunks/NcAppNavigationCaption-3YHrxAYS.mjs\";\nimport NcAppNavigationIconBullet from \"./Components/NcAppNavigationIconBullet.mjs\";\nimport { N as NcAppNavigationItem } from \"./chunks/NcAppNavigationItem-D30ztZfZ.mjs\";\nimport NcAppNavigationList from \"./Components/NcAppNavigationList.mjs\";\nimport { N as NcAppNavigationNew } from \"./chunks/NcAppNavigationNew-Ce_TheyK.mjs\";\nimport { N as NcAppNavigationNewItem } from \"./chunks/NcAppNavigationNewItem-BskLwwWH.mjs\";\nimport { N as NcAppNavigationSearch } from \"./chunks/NcAppNavigationSearch-CkcBGG0H.mjs\";\nimport { N as NcAppNavigationSettings } from \"./chunks/NcAppNavigationSettings-BjyBA5Mj.mjs\";\nimport NcAppNavigationSpacer from \"./Components/NcAppNavigationSpacer.mjs\";\nimport { N as NcAppSettingsDialog } from \"./chunks/NcAppSettingsDialog-vBeCGFqk.mjs\";\nimport { N as NcAppSettingsSection } from \"./chunks/NcAppSettingsSection-BjQllLEA.mjs\";\nimport { N as NcAppSettingsShortcutsSection } from \"./chunks/NcAppSettingsShortcutsSection-DblUBaWP.mjs\";\nimport { N as NcAppSidebar } from \"./chunks/NcAppSidebar-Cx0PlofZ.mjs\";\nimport { N as NcAppSidebarHeader } from \"./chunks/NcAppSidebarHeader-CBE4tNYb.mjs\";\nimport NcAppSidebarTab from \"./Components/NcAppSidebarTab.mjs\";\nimport { N as NcAssistantButton } from \"./chunks/NcAssistantButton-D1Miejvu.mjs\";\nimport NcAssistantContent from \"./Components/NcAssistantContent.mjs\";\nimport { N as NcAssistantIcon } from \"./chunks/NcAssistantIcon-DCx6AaSW.mjs\";\nimport { N as NcAvatar } from \"./chunks/NcAvatar-DC2fiCH-.mjs\";\nimport { u } from \"./chunks/NcAvatar-DC2fiCH-.mjs\";\nimport { N as NcBlurHash } from \"./chunks/NcBlurHash-KSj0HXbX.mjs\";\nimport { N as NcBreadcrumb } from \"./chunks/NcBreadcrumb-VwnF27KB.mjs\";\nimport { N as NcBreadcrumbs } from \"./chunks/NcBreadcrumbs-CpXJ-OQ1.mjs\";\nimport { N as NcButton } from \"./chunks/NcButton-BaZAY-tN.mjs\";\nimport { N as NcCheckboxRadioSwitch } from \"./chunks/NcCheckboxRadioSwitch-DJmw98x9.mjs\";\nimport { N as NcCollectionList } from \"./chunks/NcCollectionList-U0EoWgeN.mjs\";\nimport { N as NcColorPicker } from \"./chunks/NcColorPicker-BfApfazi.mjs\";\nimport { N as NcContent } from \"./chunks/NcContent-DFOsZ6pm.mjs\";\nimport { N as NcCounterBubble } from \"./chunks/NcCounterBubble-oxV8oMlX.mjs\";\nimport { N as NcDashboardWidget } from \"./chunks/NcDashboardWidget-Cp3DMHz7.mjs\";\nimport { N as NcDashboardWidgetItem } from \"./chunks/NcDashboardWidgetItem-BCjppWNJ.mjs\";\nimport { N as NcDateTime } from \"./chunks/NcDateTime-enXYuwj8.mjs\";\nimport NcDateTimePicker from \"./Components/NcDateTimePicker.mjs\";\nimport NcDateTimePickerNative from \"./Components/NcDateTimePickerNative.mjs\";\nimport { N as NcDialog } from \"./chunks/NcDialog-CDFWleNp.mjs\";\nimport { N as NcDialogButton } from \"./chunks/NcDialogButton-tB5RGMME.mjs\";\nimport NcEllipsisedOption from \"./Components/NcEllipsisedOption.mjs\";\nimport { N as NcEmojiPicker } from \"./chunks/NcEmojiPicker-Cw593Jp6.mjs\";\nimport NcEmptyContent from \"./Components/NcEmptyContent.mjs\";\nimport { N as NcFilePicker } from \"./chunks/NcFilePicker-CDHKrfPj.mjs\";\nimport { N as NcFormBox } from \"./chunks/NcFormBox-DtoCXLMx.mjs\";\nimport { N as NcFormBoxButton } from \"./chunks/NcFormBoxButton-BQi11xQX.mjs\";\nimport { N as NcFormBoxCopyButton } from \"./chunks/NcFormBoxCopyButton-BkunQ3me.mjs\";\nimport { N as NcFormBoxSwitch } from \"./chunks/NcFormBoxSwitch-E6sxPL4n.mjs\";\nimport { N as NcFormGroup } from \"./chunks/NcFormGroup-DblLoFMf.mjs\";\nimport NcGuestContent from \"./Components/NcGuestContent.mjs\";\nimport { N as NcHeaderButton } from \"./chunks/NcHeaderButton-BI15lyn_.mjs\";\nimport { N as NcHeaderMenu } from \"./chunks/NcHeaderMenu-B2gYavD4.mjs\";\nimport { N as NcHighlight } from \"./chunks/index-CxTT94_h.mjs\";\nimport { N as NcHotkey } from \"./chunks/NcHotkey-CLLtt9LG.mjs\";\nimport { N as NcHotkeyList } from \"./chunks/NcHotkeyList-Co7MBL5U.mjs\";\nimport { N as NcIconSvgWrapper } from \"./chunks/NcIconSvgWrapper-Bui9PhAS.mjs\";\nimport { N as NcInputField } from \"./chunks/NcInputField-Cfm1bJR4.mjs\";\nimport { N as NcListItem } from \"./chunks/NcListItem-RKTfRg06.mjs\";\nimport { N as NcListItemIcon } from \"./chunks/NcListItemIcon-D49wESTI.mjs\";\nimport NcLoadingIcon from \"./Components/NcLoadingIcon.mjs\";\nimport NcModal from \"./Components/NcModal.mjs\";\nimport NcNoteCard from \"./Components/NcNoteCard.mjs\";\nimport { N as NcPasswordField } from \"./chunks/NcPasswordField-lE4m20vf.mjs\";\nimport { N as NcPopover } from \"./chunks/NcPopover-UAg26Qdd.mjs\";\nimport { N as NcProgressBar } from \"./chunks/NcProgressBar-D7zYeXBH.mjs\";\nimport { N as NcRadioGroup } from \"./chunks/NcRadioGroup-BbBX9X2J.mjs\";\nimport { N as NcRadioGroupButton } from \"./chunks/NcRadioGroupButton-BkxlxjIA.mjs\";\nimport { N as NcRelatedResourcesPanel } from \"./chunks/NcRelatedResourcesPanel-C2sLodV8.mjs\";\nimport { N as NcMentionBubble } from \"./chunks/index-TmAR7I2T.mjs\";\nimport { r } from \"./chunks/index-TmAR7I2T.mjs\";\nimport { N as NcAutoCompleteResult, a as NcRichContenteditable } from \"./chunks/NcRichContenteditable-SA1zbfkk.mjs\";\nimport \"@nextcloud/auth\";\nimport \"@nextcloud/axios\";\nimport \"@nextcloud/router\";\nimport \"@nextcloud/sharing/public\";\nimport \"@vueuse/core\";\nimport \"vue\";\nimport \"vue-router\";\nimport { a, g, b, c, s, d } from \"./chunks/referencePickerModal-DD_GM6xV.mjs\";\nimport { N, h, c as c2, i, e, r as r2, f, a as a2 } from \"./chunks/customPickerElements-DLFtgReB.mjs\";\nimport \"unist-builder\";\nimport \"unist-util-visit\";\nimport \"./chunks/logger-D3RVzcfQ.mjs\";\nimport { N as NcRichText } from \"./chunks/NcRichText-rNfwY_Oc.mjs\";\nimport { N as NcSelect } from \"./chunks/NcSelect-CbWXsDdZ.mjs\";\nimport { N as NcTextField } from \"./chunks/NcTextField-DZHP0Dfw.mjs\";\nimport \"@nextcloud/event-bus\";\nimport { N as NcSavingIndicatorIcon } from \"./chunks/NcSavingIndicatorIcon-U7AIamCl.mjs\";\nimport { N as NcSelectTags } from \"./chunks/NcSelectTags-CqVn5iU9.mjs\";\nimport { N as NcSelectUsers } from \"./chunks/NcSelectUsers-DGnn4yBW.mjs\";\nimport { N as NcSettingsInputText } from \"./chunks/NcSettingsInputText-BwnkZzWL.mjs\";\nimport { N as NcSettingsSection } from \"./chunks/NcSettingsSection-Dz_b9rcq.mjs\";\nimport { N as NcSettingsSelectGroup } from \"./chunks/NcSettingsSelectGroup-BaSHNm1x.mjs\";\nimport { N as NcTextArea } from \"./chunks/NcTextArea-fGUiK7p2.mjs\";\nimport { N as NcThemeProvider } from \"./chunks/NcThemeProvider-BA_zMjAf.mjs\";\nimport { N as NcTimezonePicker } from \"./chunks/NcTimezonePicker-w7XtRhLb.mjs\";\nimport { N as NcUserBubble } from \"./chunks/NcUserBubble-CIOqCO9S.mjs\";\nimport { N as NcUserStatusIcon } from \"./chunks/NcUserStatusIcon-Cq1RnTfF.mjs\";\nimport NcVNodes from \"./Components/NcVNodes.mjs\";\nimport { useFormatDateTime, useFormatRelativeTime, useFormatTime } from \"./Composables/useFormatDateTime.mjs\";\nimport { useHotKey } from \"./Composables/useHotKey.mjs\";\nimport { useIsDarkTheme, useIsDarkThemeElement } from \"./Composables/useIsDarkTheme.mjs\";\nimport { isFullscreenState, useIsFullscreen } from \"./Composables/useIsFullscreen.mjs\";\nimport { MOBILE_BREAKPOINT, MOBILE_SMALL_BREAKPOINT, isMobileState, useIsMobile, useIsSmallMobile } from \"./Composables/useIsMobile.mjs\";\nimport { isA11yActivation } from \"./Functions/a11y.mjs\";\nimport { getEnabledContactsMenuActions, registerContactsMenuAction } from \"./Functions/contactsMenu.mjs\";\nimport { spawnDialog } from \"./Functions/dialog.mjs\";\nimport { E, a as a3, e as e2, g as g2, s as s2 } from \"./chunks/emoji-BgZdRy3v.mjs\";\nimport { checkIfDarkTheme, isDarkTheme } from \"./Functions/isDarkTheme.mjs\";\nimport { preloadImage } from \"./Functions/preloadImage.mjs\";\nimport { usernameToColor } from \"./Functions/usernameToColor.mjs\";\nimport directive from \"./Directives/Focus.mjs\";\nimport directive$1 from \"./Directives/Linkify.mjs\";\nimport \"./Directives/Tooltip.mjs\";\nimport { default as default2 } from \"./Mixins/clickOutsideOptions.mjs\";\nimport { default as default3 } from \"./Mixins/isFullscreen.mjs\";\nimport { default as default4 } from \"./Mixins/isMobile.mjs\";\nimport { VTooltip } from \"floating-vue\";\nimport { VTooltip as VTooltip2 } from \"floating-vue\";\nconst NcComponents = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n NcActionButton,\n NcActionButtonGroup,\n NcActionCaption,\n NcActionCheckbox,\n NcActionInput,\n NcActionLink,\n NcActionRadio,\n NcActionRouter,\n NcActionSeparator,\n NcActionText,\n NcActionTextEditable,\n NcActions,\n NcAppContent,\n NcAppContentDetails,\n NcAppContentList,\n NcAppNavigation,\n NcAppNavigationCaption,\n NcAppNavigationIconBullet,\n NcAppNavigationItem,\n NcAppNavigationList,\n NcAppNavigationNew,\n NcAppNavigationNewItem,\n NcAppNavigationSearch,\n NcAppNavigationSettings,\n NcAppNavigationSpacer,\n NcAppSettingsDialog,\n NcAppSettingsSection,\n NcAppSettingsSectionShortcuts: NcAppSettingsShortcutsSection,\n NcAppSettingsShortcutsSection,\n NcAppSidebar,\n NcAppSidebarHeader,\n NcAppSidebarTab,\n NcAssistantButton,\n NcAssistantContent,\n NcAssistantIcon,\n NcAutoCompleteResult,\n NcAvatar,\n NcBlurHash,\n NcBreadcrumb,\n NcBreadcrumbs,\n NcButton,\n NcCheckboxRadioSwitch,\n NcCollectionList,\n NcColorPicker,\n NcContent,\n NcCounterBubble,\n NcDashboardWidget,\n NcDashboardWidgetItem,\n NcDateTime,\n NcDateTimePicker,\n NcDateTimePickerNative,\n NcDialog,\n NcDialogButton,\n NcEllipsisedOption,\n NcEmojiPicker,\n NcEmptyContent,\n NcFilePicker,\n NcFormBox,\n NcFormBoxButton,\n NcFormBoxCopyButton,\n NcFormBoxSwitch,\n NcFormGroup,\n NcGuestContent,\n NcHeaderButton,\n NcHeaderMenu,\n NcHighlight,\n NcHotkey,\n NcHotkeyList,\n NcIconSvgWrapper,\n NcInputField,\n NcListItem,\n NcListItemIcon,\n NcLoadingIcon,\n NcMentionBubble,\n NcModal,\n NcNoteCard,\n NcPasswordField,\n NcPopover,\n NcProgressBar,\n NcRadioGroup,\n NcRadioGroupButton,\n NcRelatedResourcesPanel,\n NcRichContenteditable,\n NcRichText,\n NcSavingIndicatorIcon,\n NcSelect,\n NcSelectTags,\n NcSelectUsers,\n NcSettingsInputText,\n NcSettingsSection,\n NcSettingsSelectGroup,\n NcTextArea,\n NcTextField,\n NcThemeProvider,\n NcTimezonePicker,\n NcUserBubble,\n NcUserStatusIcon,\n NcVNodes\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst NcDirectives = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n Focus: directive,\n Linkify: directive$1,\n Tooltip: VTooltip\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst NextcloudVuePlugin = {\n install(Vue) {\n Object.entries(NcComponents).forEach(([name, component]) => {\n Vue.component(component.name || name, component);\n });\n Object.entries(NcDirectives).forEach(([name, directive2]) => {\n Vue.directive(name, directive2);\n });\n }\n};\nexport {\n E as EmojiSkinTone,\n directive as Focus,\n directive$1 as Linkify,\n MOBILE_BREAKPOINT,\n MOBILE_SMALL_BREAKPOINT,\n NcActionButton,\n NcActionButtonGroup,\n NcActionCaption,\n NcActionCheckbox,\n NcActionInput,\n NcActionLink,\n NcActionRadio,\n NcActionRouter,\n NcActionSeparator,\n NcActionText,\n NcActionTextEditable,\n NcActions,\n NcAppContent,\n NcAppContentDetails,\n NcAppContentList,\n NcAppNavigation,\n NcAppNavigationCaption,\n NcAppNavigationIconBullet,\n NcAppNavigationItem,\n NcAppNavigationList,\n NcAppNavigationNew,\n NcAppNavigationNewItem,\n NcAppNavigationSearch,\n NcAppNavigationSettings,\n NcAppNavigationSpacer,\n NcAppSettingsDialog,\n NcAppSettingsSection,\n NcAppSettingsShortcutsSection as NcAppSettingsSectionShortcuts,\n NcAppSettingsShortcutsSection,\n NcAppSidebar,\n NcAppSidebarHeader,\n NcAppSidebarTab,\n NcAssistantButton,\n NcAssistantContent,\n NcAssistantIcon,\n NcAutoCompleteResult,\n NcAvatar,\n NcBlurHash,\n NcBreadcrumb,\n NcBreadcrumbs,\n NcButton,\n NcCheckboxRadioSwitch,\n NcCollectionList,\n NcColorPicker,\n NcContent,\n NcCounterBubble,\n N as NcCustomPickerRenderResult,\n NcDashboardWidget,\n NcDashboardWidgetItem,\n NcDateTime,\n NcDateTimePicker,\n NcDateTimePickerNative,\n NcDialog,\n NcDialogButton,\n NcEllipsisedOption,\n NcEmojiPicker,\n NcEmptyContent,\n NcFilePicker,\n NcFormBox,\n NcFormBoxButton,\n NcFormBoxCopyButton,\n NcFormBoxSwitch,\n NcFormGroup,\n NcGuestContent,\n NcHeaderButton,\n NcHeaderMenu,\n NcHighlight,\n NcHotkey,\n NcHotkeyList,\n NcIconSvgWrapper,\n NcInputField,\n NcListItem,\n NcListItemIcon,\n NcLoadingIcon,\n NcMentionBubble,\n NcModal,\n NcNoteCard,\n NcPasswordField,\n NcPopover,\n NcProgressBar,\n NcRadioGroup,\n NcRadioGroupButton,\n NcRelatedResourcesPanel,\n NcRichContenteditable,\n NcRichText,\n NcSavingIndicatorIcon,\n NcSelect,\n NcSelectTags,\n NcSelectUsers,\n NcSettingsInputText,\n NcSettingsSection,\n NcSettingsSelectGroup,\n NcTextArea,\n NcTextField,\n NcThemeProvider,\n NcTimezonePicker,\n NcUserBubble,\n NcUserStatusIcon,\n NcVNodes,\n NextcloudVuePlugin,\n VTooltip2 as Tooltip,\n a as anyLinkProviderId,\n checkIfDarkTheme,\n default2 as clickOutsideOptions,\n a3 as emojiAddRecent,\n e2 as emojiSearch,\n g2 as getCurrentSkinTone,\n getEnabledContactsMenuActions,\n g as getLinkWithPicker,\n b as getProvider,\n c as getProviders,\n h as hasInteractiveView,\n isA11yActivation,\n c2 as isCustomPickerElementRegistered,\n isDarkTheme,\n default3 as isFullscreen,\n isFullscreenState,\n default4 as isMobile,\n isMobileState,\n i as isWidgetRegistered,\n preloadImage,\n registerContactsMenuAction,\n e as registerCustomPickerElement,\n r2 as registerWidget,\n f as renderCustomPickerElement,\n a2 as renderWidget,\n r as richEditor,\n s as searchProvider,\n s2 as setCurrentSkinTone,\n d as sortProviders,\n spawnDialog,\n useFormatDateTime,\n useFormatRelativeTime,\n useFormatTime,\n useHotKey,\n useIsDarkTheme,\n useIsDarkThemeElement,\n useIsFullscreen,\n useIsMobile,\n useIsSmallMobile,\n u as userStatus,\n usernameToColor\n};\n//# sourceMappingURL=index.mjs.map\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { useFormatDateTime } from '@nextcloud/vue'\n\nexport default {\n\tprops: {\n\t\tuser: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t\tsettings: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => ({}),\n\t\t},\n\t\tlanguages: {\n\t\t\ttype: Array,\n\t\t\trequired: true,\n\t\t},\n\t\texternalActions: {\n\t\t\ttype: Array,\n\t\t\tdefault: () => [],\n\t\t},\n\t},\n\tsetup(props) {\n\t\tconst { formattedFullTime } = useFormatDateTime(props.user.firstLoginTimestamp * 1000, {\n\t\t\trelativeTime: false,\n\t\t\tformat: {\n\t\t\t\ttimeStyle: 'short',\n\t\t\t\tdateStyle: 'short',\n\t\t\t},\n\t\t})\n\t\treturn {\n\t\t\tformattedFullTime,\n\t\t}\n\t},\n\tcomputed: {\n\t\tusedQuota() {\n\t\t\tlet quota = this.user.quota.quota\n\t\t\tif (quota > 0) {\n\t\t\t\tquota = Math.min(100, Math.round(this.user.quota.used / quota * 100))\n\t\t\t} else {\n\t\t\t\tconst usedInGB = this.user.quota.used / (10 * Math.pow(2, 30))\n\t\t\t\t// asymptotic curve approaching 50% at 10GB to visualize used space with infinite quota\n\t\t\t\tquota = 95 * (1 - (1 / (usedInGB + 1)))\n\t\t\t}\n\t\t\treturn isNaN(quota) ? 0 : quota\n\t\t},\n\n\t\t/* LANGUAGE */\n\t\tuserLanguage() {\n\t\t\tconst availableLanguages = this.languages[0].languages.concat(this.languages[1].languages)\n\t\t\tconst userLang = availableLanguages.find((lang) => lang.code === this.user.language)\n\t\t\tif (typeof userLang !== 'object' && this.user.language !== '') {\n\t\t\t\treturn {\n\t\t\t\t\tcode: this.user.language,\n\t\t\t\t\tname: this.user.language,\n\t\t\t\t}\n\t\t\t} else if (this.user.language === '') {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\treturn userLang\n\t\t},\n\n\t\tuserFirstLogin() {\n\t\t\tif (this.user.firstLoginTimestamp > 0) {\n\t\t\t\treturn this.formattedFullTime\n\t\t\t}\n\t\t\tif (this.user.firstLoginTimestamp < 0) {\n\t\t\t\treturn t('settings', 'Unknown')\n\t\t\t}\n\t\t\treturn t('settings', 'Never')\n\t\t},\n\n\t\t/* LAST LOGIN */\n\t\tuserLastLoginTooltip() {\n\t\t\tif (this.user.lastLoginTimestamp > 0) {\n\t\t\t\treturn OC.Util.formatDate(this.user.lastLoginTimestamp * 1000)\n\t\t\t}\n\t\t\treturn ''\n\t\t},\n\t\tuserLastLogin() {\n\t\t\tif (this.user.lastLoginTimestamp > 0) {\n\t\t\t\treturn OC.Util.relativeModifiedDate(this.user.lastLoginTimestamp * 1000)\n\t\t\t}\n\t\t\treturn t('settings', 'Never')\n\t\t},\n\t},\n}\n","\n\n\n\n\n\n\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserRow.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!./UserRow.vue?vue&type=script&lang=js\"","\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!./UserRow.vue?vue&type=style&index=0&id=32716952&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!./UserRow.vue?vue&type=style&index=0&id=32716952&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserRow.vue?vue&type=template&id=32716952&scoped=true\"\nimport script from \"./UserRow.vue?vue&type=script&lang=js\"\nexport * from \"./UserRow.vue?vue&type=script&lang=js\"\nimport style0 from \"./UserRow.vue?vue&type=style&index=0&id=32716952&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 \"32716952\",\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('table',{staticClass:\"user-list\"},[_vm._t(\"before\"),_vm._v(\" \"),_c('thead',{ref:\"thead\",staticClass:\"user-list__header\",attrs:{\"role\":\"rowgroup\"}},[_vm._t(\"header\")],2),_vm._v(\" \"),_c('tbody',{staticClass:\"user-list__body\",style:(_vm.tbodyStyle)},_vm._l((_vm.renderedItems),function(item,i){return _c(_vm.dataComponent,_vm._b({key:item[_vm.dataKey],tag:\"component\",attrs:{\"user\":item,\"visible\":(i >= _vm.bufferItems || _vm.index <= _vm.bufferItems) && (i < _vm.shownItems - _vm.bufferItems)}},'component',_vm.extraProps,false))}),1),_vm._v(\" \"),_c('tfoot',{directives:[{name:\"element-visibility\",rawName:\"v-element-visibility\",value:(_vm.handleFooterVisibility),expression:\"handleFooterVisibility\"}],ref:\"tfoot\",staticClass:\"user-list__footer\",attrs:{\"role\":\"rowgroup\"}},[_vm._t(\"footer\")],2)],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-6.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-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VirtualList.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!./VirtualList.vue?vue&type=style&index=0&id=65d37ac4&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!./VirtualList.vue?vue&type=style&index=0&id=65d37ac4&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./VirtualList.vue?vue&type=template&id=65d37ac4&scoped=true\"\nimport script from \"./VirtualList.vue?vue&type=script&lang=ts\"\nexport * from \"./VirtualList.vue?vue&type=script&lang=ts\"\nimport style0 from \"./VirtualList.vue?vue&type=style&index=0&id=65d37ac4&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 \"65d37ac4\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserList.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!./UserList.vue?vue&type=script&lang=js\"","\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!./UserList.vue?vue&type=style&index=0&id=a01beafc&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!./UserList.vue?vue&type=style&index=0&id=a01beafc&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserList.vue?vue&type=template&id=a01beafc&scoped=true\"\nimport script from \"./UserList.vue?vue&type=script&lang=js\"\nexport * from \"./UserList.vue?vue&type=script&lang=js\"\nimport style0 from \"./UserList.vue?vue&type=style&index=0&id=a01beafc&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 \"a01beafc\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('Fragment',[(_vm.showConfig.showNewUserForm)?_c('NewUserDialog',{attrs:{\"loading\":_vm.loading,\"new-user\":_vm.newUser,\"quota-options\":_vm.quotaOptions},on:{\"closing\":_vm.closeDialog}}):_vm._e(),_vm._v(\" \"),(_vm.editingUser)?_c('EditUserDialog',{attrs:{\"user\":_vm.editingUser,\"quota-options\":_vm.quotaOptions},on:{\"closing\":function($event){_vm.editingUser = null}}}):_vm._e(),_vm._v(\" \"),(_vm.filteredUsers.length === 0)?_c('NcEmptyContent',{staticClass:\"empty\",attrs:{\"name\":_vm.isInitialLoad && _vm.loading.users ? null : _vm.t('settings', 'No accounts')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.isInitialLoad && _vm.loading.users)?_c('NcLoadingIcon',{attrs:{\"name\":_vm.t('settings', 'Loading accounts …'),\"size\":64}}):_c('NcIconSvgWrapper',{attrs:{\"path\":_vm.mdiAccountGroupOutline,\"size\":64}})]},proxy:true}],null,false,1085698719)}):_c('VirtualList',{style:(_vm.style),attrs:{\"data-component\":_vm.UserRow,\"data-sources\":_vm.filteredUsers,\"data-key\":\"id\",\"data-cy-user-list\":\"\",\"item-height\":_vm.rowHeight,\"extra-props\":{\n\t\t\tusers: _vm.users,\n\t\t\tsettings: _vm.settings,\n\t\t\tquotaOptions: _vm.quotaOptions,\n\t\t\tlanguages: _vm.languages,\n\t\t\texternalActions: _vm.externalActions,\n\t\t\tonEditUser: _vm.openEditDialog,\n\t\t}},on:{\"scroll-end\":_vm.handleScrollEnd},scopedSlots:_vm._u([{key:\"before\",fn:function(){return [_c('caption',{staticClass:\"hidden-visually\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list.'))+\"\\n\\t\\t\\t\")])]},proxy:true},{key:\"header\",fn:function(){return [_c('UserListHeader')]},proxy:true},{key:\"footer\",fn:function(){return [_c('UserListFooter',{attrs:{\"loading\":_vm.loading.users,\"filtered-users\":_vm.filteredUsers}})]},proxy:true}])})],1)\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!./UserManagement.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!./UserManagement.vue?vue&type=script&lang=js\"","\n\n\n\n\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!./UserManagement.vue?vue&type=style&index=0&id=6c72a095&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!./UserManagement.vue?vue&type=style&index=0&id=6c72a095&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserManagement.vue?vue&type=template&id=6c72a095&scoped=true\"\nimport script from \"./UserManagement.vue?vue&type=script&lang=js\"\nexport * from \"./UserManagement.vue?vue&type=script&lang=js\"\nimport style0 from \"./UserManagement.vue?vue&type=style&index=0&id=6c72a095&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 \"6c72a095\",\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(_setup.NcAppNavigation,{staticClass:\"account-management__navigation\",attrs:{\"aria-label\":_setup.t('settings', 'Account management')},scopedSlots:_vm._u([{key:\"footer\",fn:function(){return [_c(_setup.NcButton,{staticClass:\"account-management__settings-toggle\",attrs:{\"variant\":\"tertiary\"},on:{\"click\":function($event){_setup.isDialogOpen = true}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiCogOutline}})]},proxy:true}])},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_setup.t('settings', 'Account management settings'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c(_setup.UserSettingsDialog,{attrs:{\"open\":_setup.isDialogOpen},on:{\"update:open\":function($event){_setup.isDialogOpen=$event}}})]},proxy:true}])},[_c(_setup.NcAppNavigationNew,{attrs:{\"button-id\":\"new-user-button\",\"text\":_setup.t('settings', 'New account')},on:{\"click\":_setup.showNewUserMenu,\"keyup\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _setup.showNewUserMenu.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"space\",32,$event.key,[\" \",\"Spacebar\"]))return null;return _setup.showNewUserMenu.apply(null, arguments)}]},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiPlus}})]},proxy:true}])}),_vm._v(\" \"),_c('div',{staticClass:\"account-management__search\",attrs:{\"role\":\"search\",\"aria-label\":_setup.t('settings', 'Search accounts and groups')}},[_c(_setup.NcInputField,{ref:\"searchField\",attrs:{\"label\":_setup.t('settings', 'Search accounts and groups…'),\"show-trailing-button\":_setup.searchInput !== '',\"trailingButtonLabel\":_setup.t('settings', 'Clear search')},on:{\"trailing-button-click\":_setup.clearSearch},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiMagnify}})]},proxy:true},{key:\"trailing-button-icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiClose}})]},proxy:true}]),model:{value:(_setup.searchInput),callback:function ($$v) {_setup.searchInput=$$v},expression:\"searchInput\"}})],1),_vm._v(\" \"),_c(_setup.NcAppNavigationList,{staticClass:\"account-management__system-list\",attrs:{\"data-cy-users-settings-navigation-groups\":\"system\"}},[_c(_setup.NcAppNavigationItem,{attrs:{\"id\":\"everyone\",\"exact\":true,\"name\":_setup.t('settings', 'All accounts'),\"to\":{ name: 'users' }},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiAccountOutline}})]},proxy:true},{key:\"counter\",fn:function(){return [(_setup.userCount)?_c(_setup.NcCounterBubble,{attrs:{\"type\":!_setup.selectedGroupDecoded ? 'highlighted' : undefined}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_setup.userCount)+\"\\n\\t\\t\\t\\t\")]):_vm._e()]},proxy:true}])}),_vm._v(\" \"),(_setup.settings.isAdmin)?_c(_setup.NcAppNavigationItem,{attrs:{\"id\":\"admin\",\"exact\":true,\"name\":_setup.t('settings', 'Admins'),\"to\":{ name: 'group', params: { selectedGroup: 'admin' } }},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiShieldAccountOutline}})]},proxy:true},{key:\"counter\",fn:function(){return [(_setup.adminGroup && _setup.adminGroup.count > 0)?_c(_setup.NcCounterBubble,{attrs:{\"type\":_setup.selectedGroupDecoded === 'admin' ? 'highlighted' : undefined}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_setup.adminGroup.count)+\"\\n\\t\\t\\t\\t\")]):_vm._e()]},proxy:true}],null,false,3779933833)}):_vm._e(),_vm._v(\" \"),(_setup.isAdminOrDelegatedAdmin)?_c(_setup.NcAppNavigationItem,{attrs:{\"id\":\"recent\",\"exact\":true,\"name\":_setup.t('settings', 'Recently active'),\"to\":{ name: 'group', params: { selectedGroup: '__nc_internal_recent' } }},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiHistory}})]},proxy:true},{key:\"counter\",fn:function(){return [(_setup.recentGroup?.usercount)?_c(_setup.NcCounterBubble,{attrs:{\"type\":_setup.selectedGroupDecoded === '__nc_internal_recent' ? 'highlighted' : undefined}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_setup.recentGroup.usercount)+\"\\n\\t\\t\\t\\t\")]):_vm._e()]},proxy:true}],null,false,2299424282)}):_vm._e(),_vm._v(\" \"),(_setup.disabledGroup && (_setup.disabledGroup.usercount > 0 || _setup.disabledGroup.usercount === -1))?_c(_setup.NcAppNavigationItem,{attrs:{\"id\":\"disabled\",\"exact\":true,\"name\":_setup.t('settings', 'Disabled accounts'),\"to\":{ name: 'group', params: { selectedGroup: 'disabled' } }},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiAccountOffOutline}})]},proxy:true},(_setup.disabledGroup.usercount > 0)?{key:\"counter\",fn:function(){return [_c(_setup.NcCounterBubble,{attrs:{\"type\":_setup.selectedGroupDecoded === 'disabled' ? 'highlighted' : undefined}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_setup.disabledGroup.usercount)+\"\\n\\t\\t\\t\\t\")])]},proxy:true}:null],null,true)}):_vm._e()],1),_vm._v(\" \"),_c(_setup.AppNavigationGroupList)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./TrashCanOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./TrashCanOutline.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./TrashCanOutline.vue?vue&type=template&id=3daa0f14\"\nimport script from \"./TrashCanOutline.vue?vue&type=script&lang=js\"\nexport * from \"./TrashCanOutline.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 trash-can-outline-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\":\"M9,3V4H4V6H5V19A2,2 0 0,0 7,21H17A2,2 0 0,0 19,19V6H20V4H15V3H9M7,6H17V19H7V6M9,8V17H11V8H9M13,8V17H15V8H13Z\"}},[(_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!./GroupListItem.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!./GroupListItem.vue?vue&type=script&lang=js\"","\n\n\n\n\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!./GroupListItem.vue?vue&type=style&index=0&id=30743619&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!./GroupListItem.vue?vue&type=style&index=0&id=30743619&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./GroupListItem.vue?vue&type=template&id=30743619&scoped=true\"\nimport script from \"./GroupListItem.vue?vue&type=script&lang=js\"\nexport * from \"./GroupListItem.vue?vue&type=script&lang=js\"\nimport style0 from \"./GroupListItem.vue?vue&type=style&index=0&id=30743619&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 \"30743619\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('Fragment',[(_vm.showRemoveGroupModal)?_c('NcModal',{on:{\"close\":function($event){_vm.showRemoveGroupModal = false}}},[_c('div',{staticClass:\"modal__content\"},[_c('h2',{staticClass:\"modal__header\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Please confirm the group removal'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('NcNoteCard',{attrs:{\"type\":\"warning\",\"show-alert\":\"\"}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'You are about to delete the group \"{group}\". The accounts will NOT be deleted.', { group: _vm.name }))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('div',{staticClass:\"modal__button-row\"},[_c('NcButton',{attrs:{\"variant\":\"secondary\"},on:{\"click\":function($event){_vm.showRemoveGroupModal = false}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Cancel'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcButton',{attrs:{\"variant\":\"primary\"},on:{\"click\":_vm.removeGroup}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Confirm'))+\"\\n\\t\\t\\t\\t\")])],1)],1)]):_vm._e(),_vm._v(\" \"),_c('NcAppNavigationItem',{key:_vm.id,ref:\"listItem\",attrs:{\"exact\":true,\"name\":_vm.name,\"to\":{ name: 'group', params: { selectedGroup: encodeURIComponent(_vm.id) } },\"loading\":_vm.loadingRenameGroup,\"menu-open\":_vm.openGroupMenu},on:{\"update:menuOpen\":_vm.handleGroupMenuOpen},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('AccountGroup',{attrs:{\"size\":20}})]},proxy:true},{key:\"counter\",fn:function(){return [(_vm.count)?_c('NcCounterBubble',{attrs:{\"type\":_vm.active ? 'highlighted' : undefined}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.count)+\"\\n\\t\\t\\t\")]):_vm._e()]},proxy:true},{key:\"actions\",fn:function(){return [(_vm.id !== 'admin' && _vm.id !== 'disabled' && (_vm.settings.isAdmin || _vm.settings.isDelegatedAdmin))?_c('NcActionInput',{ref:\"displayNameInput\",attrs:{\"trailing-button-label\":_vm.t('settings', 'Submit'),\"type\":\"text\",\"model-value\":_vm.name,\"label\":_vm.t('settings', 'Rename group')},on:{\"submit\":function($event){return _vm.renameGroup(_vm.id)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Pencil',{attrs:{\"size\":20}})]},proxy:true}],null,false,580569589)}):_vm._e(),_vm._v(\" \"),(_vm.id !== 'admin' && _vm.id !== 'disabled' && (_vm.settings.isAdmin || _vm.settings.isDelegatedAdmin))?_c('NcActionButton',{on:{\"click\":function($event){_vm.showRemoveGroupModal = true}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Delete',{attrs:{\"size\":20}})]},proxy:true}],null,false,2705356561)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Delete group'))+\"\\n\\t\\t\\t\")]):_vm._e()]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { computed } from 'vue';\n/**\n * Format a group to a menu entry\n *\n * @param group the group\n */\nfunction formatGroupMenu(group) {\n if (typeof group === 'undefined') {\n return null;\n }\n return {\n id: group.id,\n title: group.name,\n usercount: group.usercount ?? 0,\n count: Math.max(0, (group.usercount ?? 0) - (group.disabled ?? 0)),\n };\n}\n/**\n *\n * @param groups\n */\nexport function useFormatGroups(groups) {\n /**\n * All non-disabled non-admin groups\n */\n const userGroups = computed(() => {\n const formatted = groups.value\n // filter out disabled and admin\n .filter((group) => group.id !== 'disabled' && group.id !== '__nc_internal_recent' && group.id !== 'admin')\n // format group\n .map((group) => formatGroupMenu(group))\n // remove invalid\n .filter((group) => group !== null);\n return formatted;\n });\n /**\n * The admin group if found otherwise null\n */\n const adminGroup = computed(() => formatGroupMenu(groups.value.find((group) => group.id === 'admin')));\n /**\n * The group of disabled users\n */\n const disabledGroup = computed(() => formatGroupMenu(groups.value.find((group) => group.id === 'disabled')));\n /**\n * The group of recent users\n */\n const recentGroup = computed(() => formatGroupMenu(groups.value.find((group) => group.id === '__nc_internal_recent')));\n return { adminGroup, recentGroup, disabledGroup, userGroups };\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c(_setup.Fragment,[_c(_setup.NcAppNavigationCaption,{attrs:{\"name\":_setup.t('settings', 'Groups'),\"disabled\":_setup.loadingAddGroup,\"aria-label\":_setup.loadingAddGroup ? _setup.t('settings', 'Creating group…') : _setup.t('settings', 'Create group'),\"force-menu\":\"\",\"is-heading\":\"\",\"open\":_setup.isAddGroupOpen},on:{\"update:open\":function($event){_setup.isAddGroupOpen=$event}},scopedSlots:_vm._u([(_setup.isAdminOrDelegatedAdmin)?{key:\"actionsTriggerIcon\",fn:function(){return [(_setup.loadingAddGroup)?_c(_setup.NcLoadingIcon):_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiPlus}})]},proxy:true}:null,(_setup.isAdminOrDelegatedAdmin)?{key:\"actions\",fn:function(){return [_c(_setup.NcActionText,{scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiAccountGroupOutline}})]},proxy:true}],null,false,4071362859)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_setup.t('settings', 'Create group'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c(_setup.NcActionInput,{attrs:{\"label\":_setup.t('settings', 'Group name'),\"data-cy-users-settings-new-group-name\":\"\",\"label-outside\":false,\"disabled\":_setup.loadingAddGroup,\"error\":_setup.hasAddGroupError,\"helper-text\":_setup.hasAddGroupError ? _setup.t('settings', 'Please enter a valid group name') : ''},on:{\"submit\":_setup.createGroup},model:{value:(_setup.newGroupName),callback:function ($$v) {_setup.newGroupName=$$v},expression:\"newGroupName\"}})]},proxy:true}:null],null,true)}),_vm._v(\" \"),_c('p',{staticClass:\"hidden-visually\",attrs:{\"id\":\"group-list-desc\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_setup.t('settings', 'List of groups. This list is not fully populated for performance reasons. The groups will be loaded as you navigate or search through the list.'))+\"\\n\\t\")]),_vm._v(\" \"),_c(_setup.NcAppNavigationList,{staticClass:\"account-management__group-list\",attrs:{\"aria-describedby\":\"group-list-desc\",\"data-cy-users-settings-navigation-groups\":\"custom\"}},[_vm._l((_setup.filteredGroups),function(group){return _c(_setup.GroupListItem,{key:group.id,ref:\"groupListItems\",refInFor:true,attrs:{\"id\":group.id,\"active\":_setup.selectedGroupDecoded === group.id,\"name\":group.title,\"count\":group.count}})}),_vm._v(\" \"),(_setup.loadingGroups)?_c('div',{attrs:{\"role\":\"note\"}},[_c(_setup.NcLoadingIcon,{attrs:{\"name\":_setup.t('settings', 'Loading groups…')}})],1):_vm._e()],2)],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-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppNavigationGroupList.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-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppNavigationGroupList.vue?vue&type=script&setup=true&lang=ts\"","import { render, staticRenderFns } from \"./AppNavigationGroupList.vue?vue&type=template&id=00284738\"\nimport script from \"./AppNavigationGroupList.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AppNavigationGroupList.vue?vue&type=script&setup=true&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;return _c('NcAppSettingsDialog',{attrs:{\"open\":_vm.isModalOpen,\"show-navigation\":true,\"name\":_vm.t('settings', 'Account management settings')},on:{\"update:open\":function($event){_vm.isModalOpen=$event}}},[_c('NcAppSettingsSection',{attrs:{\"id\":\"visibility-settings\",\"name\":_vm.t('settings', 'Visibility')}},[_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"data-test\":\"showLanguages\"},model:{value:(_vm.showLanguages),callback:function ($$v) {_vm.showLanguages=$$v},expression:\"showLanguages\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Show language'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"data-test\":\"showUserBackend\"},model:{value:(_vm.showUserBackend),callback:function ($$v) {_vm.showUserBackend=$$v},expression:\"showUserBackend\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Show account backend'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"data-test\":\"showStoragePath\"},model:{value:(_vm.showStoragePath),callback:function ($$v) {_vm.showStoragePath=$$v},expression:\"showStoragePath\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Show storage path'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"data-test\":\"showFirstLogin\"},model:{value:(_vm.showFirstLogin),callback:function ($$v) {_vm.showFirstLogin=$$v},expression:\"showFirstLogin\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Show first login'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"data-test\":\"showLastLogin\"},model:{value:(_vm.showLastLogin),callback:function ($$v) {_vm.showLastLogin=$$v},expression:\"showLastLogin\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Show last login'))+\"\\n\\t\\t\")])],1),_vm._v(\" \"),_c('NcAppSettingsSection',{attrs:{\"id\":\"groups-sorting\",\"name\":_vm.t('settings', 'Sorting')}},[(_vm.isGroupSortingEnforced)?_c('NcNoteCard',{attrs:{\"type\":\"warning\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'The system config enforces sorting the groups by name. This also disables showing the member count.'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('fieldset',[_c('legend',[_vm._v(_vm._s(_vm.t('settings', 'Group list sorting')))]),_vm._v(\" \"),_c('NcNoteCard',{staticClass:\"dialog__note\",attrs:{\"type\":\"info\",\"text\":_vm.t('settings', 'Sorting only applies to the currently loaded groups for performance reasons. Groups will be loaded as you navigate or search through the list.')}}),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"radio\",\"data-test\":\"sortGroupsByMemberCount\",\"disabled\":_vm.isGroupSortingEnforced,\"name\":\"group-sorting-mode\",\"value\":\"member-count\"},model:{value:(_vm.groupSorting),callback:function ($$v) {_vm.groupSorting=$$v},expression:\"groupSorting\"}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'By member count'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"radio\",\"data-test\":\"sortGroupsByName\",\"disabled\":_vm.isGroupSortingEnforced,\"name\":\"group-sorting-mode\",\"value\":\"name\"},model:{value:(_vm.groupSorting),callback:function ($$v) {_vm.groupSorting=$$v},expression:\"groupSorting\"}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'By name'))+\"\\n\\t\\t\\t\")])],1)],1),_vm._v(\" \"),_c('NcAppSettingsSection',{attrs:{\"id\":\"email-settings\",\"name\":_vm.t('settings', 'Send email')}},[_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"data-test\":\"sendWelcomeMail\",\"disabled\":_vm.loadingSendMail},model:{value:(_vm.sendWelcomeMail),callback:function ($$v) {_vm.sendWelcomeMail=$$v},expression:\"sendWelcomeMail\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Send welcome email to new accounts'))+\"\\n\\t\\t\")])],1),_vm._v(\" \"),_c('NcAppSettingsSection',{attrs:{\"id\":\"default-settings\",\"name\":_vm.t('settings', 'Defaults')}},[_c('NcSelect',{attrs:{\"clearable\":false,\"create-option\":_vm.validateQuota,\"filter-by\":_vm.filterQuotas,\"input-label\":_vm.t('settings', 'Default quota'),\"options\":_vm.quotaOptions,\"placement\":\"top\",\"placeholder\":_vm.t('settings', 'Select default quota'),\"taggable\":\"\"},on:{\"option:selected\":_vm.setDefaultQuota},model:{value:(_vm.defaultQuota),callback:function ($$v) {_vm.defaultQuota=$$v},expression:\"defaultQuota\"}})],1),_vm._v(\" \"),_c('NcAppSettingsShortcutsSection',[_c('NcHotkeyList',{attrs:{\"label\":_vm.t('settings', 'Search')}},[_c('NcHotkey',{attrs:{\"label\":_vm.t('settings', 'Focus search'),\"hotkey\":\"Control F\"}})],1),_vm._v(\" \"),_c('NcHotkeyList',{attrs:{\"label\":_vm.t('settings', 'Help')}},[_c('NcHotkey',{attrs:{\"label\":_vm.t('settings', 'Show those shortcuts'),\"hotkey\":\"?\"}})],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserSettingsDialog.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!./UserSettingsDialog.vue?vue&type=script&lang=js\"","\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!./UserSettingsDialog.vue?vue&type=style&index=0&id=649c1de8&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!./UserSettingsDialog.vue?vue&type=style&index=0&id=649c1de8&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserSettingsDialog.vue?vue&type=template&id=649c1de8&scoped=true\"\nimport script from \"./UserSettingsDialog.vue?vue&type=script&lang=js\"\nexport * from \"./UserSettingsDialog.vue?vue&type=script&lang=js\"\nimport style0 from \"./UserSettingsDialog.vue?vue&type=style&index=0&id=649c1de8&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 \"649c1de8\",\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-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserManagementNavigation.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-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserManagementNavigation.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!./UserManagementNavigation.vue?vue&type=style&index=0&id=0567bb0c&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!./UserManagementNavigation.vue?vue&type=style&index=0&id=0567bb0c&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserManagementNavigation.vue?vue&type=template&id=0567bb0c&scoped=true\"\nimport script from \"./UserManagementNavigation.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserManagementNavigation.vue?vue&type=script&setup=true&lang=ts\"\nimport style0 from \"./UserManagementNavigation.vue?vue&type=style&index=0&id=0567bb0c&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 \"0567bb0c\",\n null\n \n)\n\nexport default component.exports"],"names":["formatGroup","group","id","name","displayname","usercount","disabled","canAdd","canRemove","searchGroups","search","offset","limit","controller","AbortController","CancelablePromise","async","resolve","reject","onCancel","abort","data","axios","get","generateOcsUrl","signal","ocs","groups","map","error","unlimitedQuota","label","t","defaultQuota","isObfuscated","user","keys","Object","length","at","___CSS_LOADER_EXPORT___","push","module","components","NcSelect","inject","creatingGroup","promise","computed","settings","$store","getters","getServerData","availableGroups","isAdmin","isDelegatedAdmin","getSortedGroups","getSubAdminGroups","filter","availableSubAdminGroups","groupsLabel","methods","query","toggleLoading","cancel","commit","logger","createGroup","gid","dispatch","formData","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","_vm","this","_c","_self","staticClass","attrs","value","isCreating","on","model","callback","$$v","$set","expression","_v","subadminGroups","_e","resolveLanguage","serverLanguages","language","code","commonLanguages","otherLanguages","find","lang","showConfig","getShowConfig","languages","languageFilterBy","option","some","toLocaleLowerCase","includes","showLanguages","NcSelectUsers","possibleManagers","loading","managerModel","m","manager","displayName","managerOptions","u","subname","email","mounted","searchUserManager","onManagerChange","response","users","values","props","quotaOptions","type","Array","required","validateQuota","quota","fallback","parsed","parseFileSize","formatFileSize","NcPasswordField","NcTextField","UserFormGroups","UserFormLanguage","UserFormManager","UserFormQuota","fieldConfig","default","errors","minPasswordLength","getPasswordPolicyMinLength","unhandledErrors","handled","Set","fromEntries","entries","key","has","focusField","$refs","focus","username","show","_s","ref","showPasswordEmailHint","password","undefined","_l","message","field","NcButton","NcDialog","UserFormFields","provide","editedUser","emits","allGroups","getGroups","g","Boolean","subadmin","q","userToFormData","initialData","structuredClone","saving","fieldErrors","canChangePassword","backendCapabilities","setPassword","save","payload","initial","current","currentManagerId","currentGroupIds","sort","initialGroupIds","JSON","stringify","currentSubadminIds","initialSubadminIds","diffPayload","confirmPassword","userid","showSuccess","$emit","showError","$event","scopedSlots","_u","fn","proxy","preventDefault","apply","arguments","newUser","usernameLabel","newUserGenerateUserID","newUserRequireEmail","fields","createUser","all","meta","statuscode","_g","$listeners","Vue","extend","NcLoadingIcon","filteredUsers","userCount","n","_setupProxy","showUserBackend","showStoragePath","showFirstLogin","showLastLogin","defineComponent","NcActionButton","NcActions","NcIconSvgWrapper","actions","setup","SvgPencil","enabledActions","action","enabled","isSvg","icon","text","index","event","N","Symbol","toStringTag","externalActions","formattedFullTime","useFormatDateTime","firstLoginTimestamp","relativeTime","format","timeStyle","dateStyle","usedQuota","Math","min","round","used","pow","isNaN","userLanguage","userLang","concat","userFirstLogin","userLastLoginTooltip","lastLoginTimestamp","OC","Util","formatDate","userLastLogin","relativeModifiedDate","productName","window","theme","NcAvatar","NcProgressBar","UserRowActions","mixins","UserRowMixin","visible","onEditUser","Function","rand","random","toString","substring","delete","disable","wipe","isLoadingUser","isLoadingField","uniqueId","encodeURIComponent","userGroupsLabels","join","userSubAdminGroupsLabels","usedSpace","size","canEdit","getCurrentUser","uid","userQuota","userActions","deleteUser","wipeUserDevices","enableDisableUser","sendWelcomeMail","toggleEdit","dialogs","confirmDestructive","YES_NO_BUTTONS","confirm","confirmClasses","result","then","timeout","finally","class","backend","storageLocation","directive","vElementVisibility","dataComponent","dataKey","String","dataSources","itemHeight","Number","extraProps","bufferItems","headerHeight","tableHeight","resizeObserver","startIndex","max","shownItems","ceil","renderedItems","slice","tbodyStyle","isOverScrolled","lastIndex","hiddenAfterItems","paddingTop","paddingBottom","root","$el","tfoot","thead","ResizeObserver","debounce","clientHeight","debug","onScroll","observe","addEventListener","beforeDestroy","disconnect","handleFooterVisibility","scrollTop","_t","style","item","i","_b","tag","directives","rawName","freeze","EditUserDialog","Fragment","NcEmptyContent","NewUserDialog","UserListFooter","UserListHeader","VirtualList","selectedGroup","mdiAccountGroupOutline","rowHeight","UserRow","editingUser","isInitialLoad","searchQuery","getSearchQuery","getUsers","quotaPreset","reduce","acc","cur","allowUnlimitedQuota","unshift","usersOffset","getUsersOffset","usersLimit","getUsersLimit","disabledUsersOffset","getDisabledUsersOffset","disabledUsersLimit","getDisabledUsersLimit","usersCount","watch","loadUsers","val","redirectIfDisabled","setNewUserDefaultGroup","created","Notification","showTemporary","initForm","openEditDialog","handleScrollEnd","closeDialog","resetForm","assign","splice","defaultLanguage","currentGroup","findIndex","$router","showNewUserForm","NcAppContent","UserList","pageHeading","selectedGroupDecoded","admin","$route","params","decodeURIComponent","beforeMount","OCA","Settings","registerAction","emit","title","fillColor","$attrs","AccountGroup","Delete","NcActionInput","NcAppNavigationItem","NcCounterBubble","NcModal","NcNoteCard","Pencil","active","count","loadingRenameGroup","openGroupMenu","showRemoveGroupModal","handleGroupMenuOpen","renameGroup","trim","displayNameInput","querySelector","groupid","removeGroup","formatGroupMenu","useFormatGroups","userGroups","adminGroup","disabledGroup","recentGroup","_defineComponent","__name","__props","store","useStore","route","useRoute","router","useRouter","onBeforeMount","loadGroups","isAdminOrDelegatedAdmin","isAddGroupOpen","loadingAddGroup","hasAddGroupError","newGroupName","loadingGroups","groupsSearchQuery","filteredGroups","toLowerCase","groupListItems","lastGroupListItem","findLast","component","$vnode","listItem","isLastGroupVisible","useElementVisibility","__sfc","groupId","newGroupListItem","scrollIntoView","behavior","block","mdiPlus","NcActionText","NcAppNavigationCaption","NcAppNavigationList","GroupListItem","_setup","refInFor","NcAppSettingsDialog","NcAppSettingsSection","NcAppSettingsShortcutsSection","NcCheckboxRadioSwitch","NcHotkey","NcHotkeyList","open","_","useHotKey","nextTick","document","getElementById","inline","stop","prevent","selectedQuota","loadingSendMail","groupSorting","getGroupSorting","GroupSorting","GroupName","set","sorting","UserCount","isGroupSortingEnforced","forceSortGroupByName","isModalOpen","status","setShowConfig","computerFileSize","newUserSendEmail","post","generateUrl","filterQuotas","searchValue","replaceAll","indexOf","validQuota","setDefaultQuota","app","searchField","searchInput","commitSearch","onBeforeUnmount","clear","ctrl","isDialogOpen","getUserCount","clearSearch","showNewUserMenu","mdiAccountOffOutline","mdiAccountOutline","mdiClose","mdiCogOutline","mdiHistory","mdiMagnify","mdiShieldAccountOutline","NcAppNavigation","NcAppNavigationNew","NcInputField","AppNavigationGroupList","UserSettingsDialog","_k","keyCode"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"settings-users-3239.js?v=77047d0d8c6ee70900f0","mappings":"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,EAAI9C,EAAE,WAAY,oBAAoB,eACvpG,EACsB,IEUpB,EACA,KACA,WACA,M,QCfF,I,qyCCqIgB,KACK,KACJ,KACC,KACH,KACD,KACC,KACC,KACG,KACL,KACQ,KACX,KACG,KACO,KACH,KACD,KACO,KACG,KACN,KACA,KACD,KACI,KACD,KACE,KACF,KACF,KACC,KACW,GAAA+M,EACF,KACjB,KACM,KACH,KACE,KACC,KACH,KACK,KACZ,KACE,KACE,KACC,KACL,KACa,KACL,KACH,KACJ,KACM,KACE,KACI,KACX,KACM,WACM,KACd,KACM,KACI,KACL,KACC,IACF,KACH,KACM,KACI,KACJ,KACJ,KACG,KACA,KACF,KACD,KACH,KACI,KACI,KACJ,KACF,KACI,KACD,IACE,KACR,KACG,KACK,KACN,KACI,KACD,KACM,KACK,KACF,KACX,KACW,KACb,KACI,KACC,IACM,KACF,KACI,KACX,KACC,KACI,KACC,KACJ,KACI,KACR,KACPC,OAAOC,YAGD,KACE,KACA,MACRD,OAAOC,Y,gECvOV,MCNuQ,IDMxPC,EAAAA,EAAAA,IAAgB,CAC3BvM,WAAY,CACRwM,eAAc,KACdC,UAAS,KACTC,iBAAgBA,EAAAA,GAEpBpH,MAAO,CACHqH,QAAS,CACLnH,KAAMC,MACNC,UAAU,GAEd/H,SAAU,CACN6H,KAAMiD,QACN/C,UAAU,GAEdlG,KAAM,CACFgG,KAAM9F,OACNgG,UAAU,IAGlBkH,MAAKA,KACM,CAAEC,U,8UAEbxM,SAAU,CACNyM,cAAAA,GACI,OAAO,KAAKH,QAAQ5L,OAAQgM,GAAqC,mBAAnBA,EAAOC,SAAyBD,EAAOC,QAAQ,KAAKxN,MACtG,GAEJ0B,QAAS,CACL+L,MAAKA,GAAAA,KEjBb,IAXgB,OACd,GFRW,WAAkB,IAAI9K,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAgC,OAAtBF,EAAIG,MAAMyJ,YAAmB1J,EAAG,YAAY,CAACG,MAAM,CAAC,aAAaL,EAAI9C,EAAE,WAAY,+BAA+B,SAAW8C,EAAIxE,SAAS,OAAS,IAAI,CAAC0E,EAAG,iBAAiB,CA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","sources":["webpack:///nextcloud/apps/settings/src/service/groups.ts","webpack:///nextcloud/apps/settings/src/utils/userUtils.ts","webpack:///nextcloud/apps/settings/src/components/GroupListItem.vue?vue&type=style&index=0&id=30743619&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/components/UserList.vue?vue&type=style&index=0&id=989d7232&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/components/Users/EditUserDialog.vue?vue&type=style&index=0&id=2a263a52&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/components/Users/NewUserDialog.vue?vue&type=style&index=0&id=32af3da3&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/components/Users/UserFormFields.vue?vue&type=style&index=0&id=0d9243e9&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/components/Users/UserFormGroups.vue?vue&type=style&index=0&id=4041cacf&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/components/Users/UserListFooter.vue?vue&type=style&index=0&id=4ff6ba29&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/components/Users/UserListHeader.vue?vue&type=style&index=0&id=53c64244&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/components/Users/UserRow.vue?vue&type=style&index=0&id=78b3749c&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/components/Users/UserSettingsDialog.vue?vue&type=style&index=0&id=649c1de8&prod&scoped=true&lang=scss","webpack:///nextcloud/apps/settings/src/components/Users/VirtualList.vue?vue&type=style&index=0&id=65d37ac4&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/views/UserManagement.vue?vue&type=style&index=0&id=6c72a095&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/settings/src/views/UserManagementNavigation.vue?vue&type=style&index=0&id=0567bb0c&prod&scoped=true&lang=scss","webpack://nextcloud/./apps/settings/src/views/UserManagement.vue?4b28","webpack:///nextcloud/apps/settings/src/components/Users/UserFormGroups.vue","webpack:///nextcloud/apps/settings/src/components/Users/UserFormGroups.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/Users/UserFormGroups.vue?4e7e","webpack://nextcloud/./apps/settings/src/components/Users/UserFormGroups.vue?bacc","webpack://nextcloud/./apps/settings/src/components/Users/UserFormGroups.vue?5fa2","webpack://nextcloud/./apps/settings/src/components/Users/UserFormLanguage.vue?3d52","webpack:///nextcloud/apps/settings/src/components/Users/userFormUtils.ts","webpack:///nextcloud/apps/settings/src/components/Users/UserFormLanguage.vue","webpack:///nextcloud/apps/settings/src/components/Users/UserFormLanguage.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/Users/UserFormLanguage.vue?1b13","webpack://nextcloud/./apps/settings/src/components/Users/UserFormManager.vue?f6b6","webpack:///nextcloud/apps/settings/src/components/Users/UserFormManager.vue","webpack:///nextcloud/apps/settings/src/components/Users/UserFormManager.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/Users/UserFormManager.vue?de46","webpack:///nextcloud/apps/settings/src/components/Users/UserFormQuota.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/settings/src/components/Users/UserFormQuota.vue","webpack://nextcloud/./apps/settings/src/components/Users/UserFormQuota.vue?dd83","webpack://nextcloud/./apps/settings/src/components/Users/UserFormQuota.vue?4349","webpack:///nextcloud/apps/settings/src/components/Users/UserFormFields.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/settings/src/components/Users/UserFormFields.vue","webpack://nextcloud/./apps/settings/src/components/Users/UserFormFields.vue?bc57","webpack://nextcloud/./apps/settings/src/components/Users/UserFormFields.vue?9ff7","webpack://nextcloud/./apps/settings/src/components/Users/UserFormFields.vue?99fc","webpack:///nextcloud/apps/settings/src/components/Users/EditUserDialog.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/settings/src/components/Users/EditUserDialog.vue","webpack://nextcloud/./apps/settings/src/components/Users/EditUserDialog.vue?14eb","webpack://nextcloud/./apps/settings/src/components/Users/EditUserDialog.vue?d404","webpack://nextcloud/./apps/settings/src/components/Users/EditUserDialog.vue?2166","webpack:///nextcloud/apps/settings/src/components/Users/NewUserDialog.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/settings/src/components/Users/NewUserDialog.vue","webpack://nextcloud/./apps/settings/src/components/Users/NewUserDialog.vue?a8f3","webpack://nextcloud/./apps/settings/src/components/Users/NewUserDialog.vue?64c6","webpack://nextcloud/./apps/settings/src/components/Users/NewUserDialog.vue?dc2d","webpack:///nextcloud/apps/settings/src/components/Users/UserListFooter.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/settings/src/components/Users/UserListFooter.vue","webpack://nextcloud/./apps/settings/src/components/Users/UserListFooter.vue?3c47","webpack://nextcloud/./apps/settings/src/components/Users/UserListFooter.vue?b843","webpack:///nextcloud/apps/settings/src/components/Users/UserListHeader.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/settings/src/components/Users/UserListHeader.vue","webpack://nextcloud/./apps/settings/src/components/Users/UserListHeader.vue?5b6f","webpack://nextcloud/./apps/settings/src/components/Users/UserListHeader.vue?758a","webpack://nextcloud/./apps/settings/src/components/Users/UserRow.vue?5434","webpack:///nextcloud/node_modules/@nextcloud/vue/dist/index.mjs","webpack:///nextcloud/apps/settings/src/components/Users/UserRowActions.vue","webpack:///nextcloud/apps/settings/src/components/Users/UserRowActions.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/settings/src/components/Users/UserRowActions.vue?3c2a","webpack:///nextcloud/apps/settings/src/components/Users/UserRow.vue","webpack:///nextcloud/apps/settings/src/components/Users/UserRow.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/Users/UserRow.vue?7959","webpack://nextcloud/./apps/settings/src/components/Users/UserRow.vue?eb6e","webpack:///nextcloud/apps/settings/src/components/Users/VirtualList.vue","webpack:///nextcloud/apps/settings/src/components/Users/VirtualList.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/settings/src/components/Users/VirtualList.vue?b8dd","webpack://nextcloud/./apps/settings/src/components/Users/VirtualList.vue?1915","webpack:///nextcloud/apps/settings/src/components/UserList.vue","webpack:///nextcloud/apps/settings/src/components/UserList.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/UserList.vue?10a2","webpack://nextcloud/./apps/settings/src/components/UserList.vue?02a4","webpack://nextcloud/./apps/settings/src/components/UserList.vue?c96e","webpack:///nextcloud/apps/settings/src/views/UserManagement.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/settings/src/views/UserManagement.vue","webpack://nextcloud/./apps/settings/src/views/UserManagement.vue?8dc2","webpack://nextcloud/./apps/settings/src/views/UserManagement.vue?fd5a","webpack:///nextcloud/apps/settings/src/views/UserManagementNavigation.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/TrashCanOutline.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/TrashCanOutline.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/TrashCanOutline.vue?ad44","webpack:///nextcloud/node_modules/vue-material-design-icons/TrashCanOutline.vue?vue&type=template&id=3daa0f14","webpack:///nextcloud/apps/settings/src/components/GroupListItem.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/settings/src/components/GroupListItem.vue","webpack://nextcloud/./apps/settings/src/components/GroupListItem.vue?c571","webpack://nextcloud/./apps/settings/src/components/GroupListItem.vue?7b19","webpack://nextcloud/./apps/settings/src/components/GroupListItem.vue?9f48","webpack:///nextcloud/apps/settings/src/composables/useGroupsNavigation.ts","webpack:///nextcloud/apps/settings/src/components/AppNavigationGroupList.vue","webpack:///nextcloud/apps/settings/src/components/AppNavigationGroupList.vue?vue&type=script&setup=true&lang=ts","webpack://nextcloud/./apps/settings/src/components/AppNavigationGroupList.vue?c74f","webpack://nextcloud/./apps/settings/src/components/Users/UserSettingsDialog.vue?824e","webpack:///nextcloud/apps/settings/src/components/Users/UserSettingsDialog.vue","webpack:///nextcloud/apps/settings/src/components/Users/UserSettingsDialog.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/settings/src/components/Users/UserSettingsDialog.vue?5a5e","webpack://nextcloud/./apps/settings/src/components/Users/UserSettingsDialog.vue?f361","webpack:///nextcloud/apps/settings/src/views/UserManagementNavigation.vue?vue&type=script&setup=true&lang=ts","webpack://nextcloud/./apps/settings/src/views/UserManagementNavigation.vue?a5e5","webpack://nextcloud/./apps/settings/src/views/UserManagementNavigation.vue?28b6"],"sourcesContent":["/**\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport axios from '@nextcloud/axios';\nimport { generateOcsUrl } from '@nextcloud/router';\nimport { CancelablePromise } from 'cancelable-promise';\n/**\n *\n * @param group\n */\nfunction formatGroup(group) {\n return {\n id: group.id,\n name: group.displayname,\n usercount: group.usercount,\n disabled: group.disabled,\n canAdd: group.canAdd,\n canRemove: group.canRemove,\n };\n}\n/**\n * Search groups\n *\n * @param options Options\n * @param options.search Search query\n * @param options.offset Offset\n * @param options.limit Limit\n */\nexport function searchGroups({ search, offset, limit }) {\n const controller = new AbortController();\n return new CancelablePromise(async (resolve, reject, onCancel) => {\n onCancel(() => controller.abort());\n try {\n const { data } = await axios.get(generateOcsUrl('/cloud/groups/details?search={search}&offset={offset}&limit={limit}', { search, offset, limit }), {\n signal: controller.signal,\n });\n const groups = data.ocs?.data?.groups ?? [];\n const formattedGroups = groups.map(formatGroup);\n resolve(formattedGroups);\n }\n catch (error) {\n reject(error);\n }\n });\n}\n/**\n * Load user groups\n *\n * @param options Options\n * @param options.userId User id\n */\nexport async function loadUserGroups({ userId }) {\n const url = generateOcsUrl('/cloud/users/{userId}/groups/details', { userId });\n const { data } = await axios.get(url);\n const groups = data.ocs?.data?.groups ?? [];\n const formattedGroups = groups.map(formatGroup);\n return formattedGroups;\n}\n/**\n * Load user subadmin groups\n *\n * @param options Options\n * @param options.userId User id\n */\nexport async function loadUserSubAdminGroups({ userId }) {\n const url = generateOcsUrl('/cloud/users/{userId}/subadmins/details', { userId });\n const { data } = await axios.get(url);\n const groups = data.ocs?.data?.groups ?? [];\n const formattedGroups = groups.map(formatGroup);\n return formattedGroups;\n}\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { translate as t } from '@nextcloud/l10n';\nexport const unlimitedQuota = {\n id: 'none',\n label: t('settings', 'Unlimited'),\n};\nexport const defaultQuota = {\n id: 'default',\n label: t('settings', 'Default quota'),\n};\n/**\n * Return `true` if the logged in user does not have permissions to view the\n * data of `user`\n *\n * @param user The user to check\n * @param user.id Id of the user\n */\nexport function isObfuscated(user) {\n const keys = Object.keys(user);\n return keys.length === 1 && keys.at(0) === 'id';\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, `.modal__header[data-v-30743619]{margin:0}.modal__content[data-v-30743619]{display:flex;flex-direction:column;align-items:center;padding:20px;gap:4px 0}.modal__button-row[data-v-30743619]{display:flex;width:100%;justify-content:space-between}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/GroupListItem.vue\"],\"names\":[],\"mappings\":\"AAEC,gCACC,QAAA,CAGD,iCACC,YAAA,CACA,qBAAA,CACA,kBAAA,CACA,YAAA,CACA,SAAA,CAGD,oCACC,YAAA,CACA,UAAA,CACA,6BAAA\",\"sourcesContent\":[\"\\n.modal {\\n\\t&__header {\\n\\t\\tmargin: 0;\\n\\t}\\n\\n\\t&__content {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\talign-items: center;\\n\\t\\tpadding: 20px;\\n\\t\\tgap: 4px 0;\\n\\t}\\n\\n\\t&__button-row {\\n\\t\\tdisplay: flex;\\n\\t\\twidth: 100%;\\n\\t\\tjustify-content: space-between;\\n\\t}\\n}\\n\"],\"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, `.empty[data-v-989d7232] .icon-vue{width:64px;height:64px}.empty[data-v-989d7232] .icon-vue svg{max-width:64px;max-height:64px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/UserList.vue\"],\"names\":[],\"mappings\":\"AAKE,kCACC,UAAA,CACA,WAAA,CAEA,sCACC,cAAA,CACA,eAAA\",\"sourcesContent\":[\"\\n@use './Users/shared/styles.scss' as *;\\n\\n.empty {\\n\\t:deep {\\n\\t\\t.icon-vue {\\n\\t\\t\\twidth: 64px;\\n\\t\\t\\theight: 64px;\\n\\n\\t\\t\\tsvg {\\n\\t\\t\\t\\tmax-width: 64px;\\n\\t\\t\\t\\tmax-height: 64px;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\"],\"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, `.edit-dialog[data-v-2a263a52] .dialog__actions{margin-block-start:calc(var(--default-grid-baseline, 4px)*3)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/Users/EditUserDialog.vue\"],\"names\":[],\"mappings\":\"AAEC,+CACC,4DAAA\",\"sourcesContent\":[\"\\n.edit-dialog {\\n\\t:deep(.dialog__actions) {\\n\\t\\tmargin-block-start: calc(var(--default-grid-baseline, 4px) * 3);\\n\\t}\\n}\\n\"],\"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, `.dialog[data-v-32af3da3] .dialog__actions{margin-block-start:calc(var(--default-grid-baseline, 4px)*3)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/Users/NewUserDialog.vue\"],\"names\":[],\"mappings\":\"AAEC,0CACC,4DAAA\",\"sourcesContent\":[\"\\n.dialog {\\n\\t:deep(.dialog__actions) {\\n\\t\\tmargin-block-start: calc(var(--default-grid-baseline, 4px) * 3);\\n\\t}\\n}\\n\"],\"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, `.user-form-fields[data-v-0d9243e9]{display:flex;flex-direction:column;align-items:center;gap:calc(var(--default-grid-baseline, 4px)*2) 0}.user-form-fields__item[data-v-0d9243e9]{width:100%}.user-form-fields__item[data-v-0d9243e9]:not(:focus):not(:active){border-color:var(--color-border-dark)}.user-form-fields__static[data-v-0d9243e9]{display:flex;flex-direction:column;justify-content:center;min-height:var(--default-clickable-area, 44px);padding:var(--border-width-input-focused, 2px);padding-inline:calc(var(--border-radius-element, 8px) + var(--border-width-input-focused, 2px));margin-left:18px}.user-form-fields__static-label[data-v-0d9243e9]{font-size:var(--font-size-small, 13px);font-weight:500;line-height:1.5;color:var(--color-text-maxcontrast)}.user-form-fields__static-value[data-v-0d9243e9]{font-size:var(--default-font-size, 14px);line-height:1.5;color:var(--color-main-text)}.user-form-fields__hint[data-v-0d9243e9]{color:var(--color-text-maxcontrast);margin-block-start:calc(var(--default-grid-baseline, 4px)*2);align-self:flex-start}.user-form-fields[data-v-0d9243e9] .user-form__item{width:100%}.user-form-fields[data-v-0d9243e9] .user-form__select{width:100%}.user-form-fields__error-summary[data-v-0d9243e9]{width:100%;margin-block-start:calc(var(--default-grid-baseline, 4px)*2);color:var(--color-error);font-size:var(--default-font-size, 14px)}.user-form-fields__error-summary p[data-v-0d9243e9]{margin-block:calc(var(--default-grid-baseline, 4px)/2)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/Users/UserFormFields.vue\"],\"names\":[],\"mappings\":\"AACA,mCACC,YAAA,CACA,qBAAA,CACA,kBAAA,CACA,+CAAA,CAEA,yCACC,UAAA,CAEA,kEACC,qCAAA,CAIF,2CACC,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,8CAAA,CACA,8CAAA,CACA,+FAAA,CAIA,gBAAA,CAEA,iDACC,sCAAA,CACA,eAAA,CACA,eAAA,CACA,mCAAA,CAGD,iDACC,wCAAA,CACA,eAAA,CACA,4BAAA,CAIF,yCACC,mCAAA,CACA,4DAAA,CACA,qBAAA,CAID,oDACC,UAAA,CAGD,sDACC,UAAA,CAGD,kDACC,UAAA,CACA,4DAAA,CACA,wBAAA,CACA,wCAAA,CAEA,oDACC,sDAAA\",\"sourcesContent\":[\"\\n.user-form-fields {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\talign-items: center;\\n\\tgap: calc(var(--default-grid-baseline, 4px) * 2) 0;\\n\\n\\t&__item {\\n\\t\\twidth: 100%;\\n\\n\\t\\t&:not(:focus):not(:active) {\\n\\t\\t\\tborder-color: var(--color-border-dark);\\n\\t\\t}\\n\\t}\\n\\n\\t&__static {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\tjustify-content: center;\\n\\t\\tmin-height: var(--default-clickable-area, 44px);\\n\\t\\tpadding: var(--border-width-input-focused, 2px);\\n\\t\\tpadding-inline: calc(var(--border-radius-element, 8px) + var(--border-width-input-focused, 2px));\\n\\n\\t\\t// Manually align static value with inputs below until we have a static field in component lib.\\n\\t\\t// See: https://github.com/nextcloud/server/issues/53862#issuecomment-4212613996\\n\\t\\tmargin-left: 18px;\\n\\n\\t\\t&-label {\\n\\t\\t\\tfont-size: var(--font-size-small, 13px);\\n\\t\\t\\tfont-weight: 500;\\n\\t\\t\\tline-height: 1.5;\\n\\t\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\t}\\n\\n\\t\\t&-value {\\n\\t\\t\\tfont-size: var(--default-font-size, 14px);\\n\\t\\t\\tline-height: 1.5;\\n\\t\\t\\tcolor: var(--color-main-text);\\n\\t\\t}\\n\\t}\\n\\n\\t&__hint {\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\tmargin-block-start: calc(var(--default-grid-baseline, 4px) * 2);\\n\\t\\talign-self: flex-start;\\n\\t}\\n\\n\\t// Reach into sub-component root elements to apply consistent sizing\\n\\t:deep(.user-form__item) {\\n\\t\\twidth: 100%;\\n\\t}\\n\\n\\t:deep(.user-form__select) {\\n\\t\\twidth: 100%;\\n\\t}\\n\\n\\t&__error-summary {\\n\\t\\twidth: 100%;\\n\\t\\tmargin-block-start: calc(var(--default-grid-baseline, 4px) * 2);\\n\\t\\tcolor: var(--color-error);\\n\\t\\tfont-size: var(--default-font-size, 14px);\\n\\n\\t\\tp {\\n\\t\\t\\tmargin-block: calc(var(--default-grid-baseline, 4px) / 2);\\n\\t\\t}\\n\\t}\\n}\\n\"],\"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, `.user-form-groups[data-v-4041cacf]{display:flex;flex-direction:column;gap:calc(var(--default-grid-baseline, 4px)*2) 0;width:100%}.user-form__item[data-v-4041cacf]{width:100%}.user-form__select[data-v-4041cacf]{width:100%}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/Users/UserFormGroups.vue\"],\"names\":[],\"mappings\":\"AACA,mCACC,YAAA,CACA,qBAAA,CACA,+CAAA,CACA,UAAA,CAGD,kCACC,UAAA,CAGD,oCACC,UAAA\",\"sourcesContent\":[\"\\n.user-form-groups {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\tgap: calc(var(--default-grid-baseline, 4px) * 2) 0;\\n\\twidth: 100%;\\n}\\n\\n.user-form__item {\\n\\twidth: 100%;\\n}\\n\\n.user-form__select {\\n\\twidth: 100%;\\n}\\n\"],\"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, `.footer[data-v-4ff6ba29]{position:relative;display:flex;min-width:100%;width:fit-content;height:var(--row-height);background-color:var(--color-main-background)}.footer__cell[data-v-4ff6ba29]{display:flex;flex-direction:column;justify-content:center;padding:0 var(--cell-padding);min-width:var(--cell-width);width:var(--cell-width);color:var(--color-main-text)}.footer__cell strong[data-v-4ff6ba29],.footer__cell span[data-v-4ff6ba29],.footer__cell label[data-v-4ff6ba29]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;overflow-wrap:anywhere}@media(min-width: 670px){.footer__cell--avatar[data-v-4ff6ba29],.footer__cell--displayname[data-v-4ff6ba29]{position:sticky;z-index:var(--sticky-column-z-index);background-color:var(--color-main-background)}.footer__cell--avatar[data-v-4ff6ba29]{inset-inline-start:0}.footer__cell--displayname[data-v-4ff6ba29]{inset-inline-start:var(--avatar-cell-width);border-inline-end:1px solid var(--color-border)}}.footer__cell--username[data-v-4ff6ba29]{padding-inline-start:calc(var(--default-grid-baseline)*3)}.footer__cell--avatar[data-v-4ff6ba29]{min-width:var(--avatar-cell-width);width:var(--avatar-cell-width);align-items:center;padding:0;user-select:none}.footer__cell--multiline span[data-v-4ff6ba29]{line-height:1.3em;white-space:unset}@supports(-webkit-line-clamp: 2){.footer__cell--multiline span[data-v-4ff6ba29]{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.footer__cell--large[data-v-4ff6ba29]{min-width:var(--cell-width-large);width:var(--cell-width-large)}.footer__cell--groups[data-v-4ff6ba29]{min-width:var(--cell-width-groups);width:var(--cell-width-groups)}.footer__cell--obfuscated[data-v-4ff6ba29]{min-width:400px;width:400px}.footer__cell--fill[data-v-4ff6ba29]{min-width:var(--cell-width-large);width:100%}.footer__cell--actions[data-v-4ff6ba29]{position:sticky;inset-inline-end:0;z-index:var(--sticky-column-z-index);display:flex;flex-direction:row;align-items:center;min-width:110px;width:110px;background-color:var(--color-main-background);border-inline-start:1px solid var(--color-border)}.footer__subtitle[data-v-4ff6ba29]{color:var(--color-text-maxcontrast)}.footer__cell[data-v-4ff6ba29]{position:sticky;color:var(--color-text-maxcontrast)}.footer__cell--loading[data-v-4ff6ba29]{inset-inline-start:0;min-width:var(--avatar-cell-width);width:var(--avatar-cell-width);align-items:center;padding:0}.footer__cell--count[data-v-4ff6ba29]{inset-inline-start:var(--avatar-cell-width);min-width:var(--cell-width);width:var(--cell-width)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/Users/UserListFooter.vue\",\"webpack://./apps/settings/src/components/Users/shared/styles.scss\"],\"names\":[],\"mappings\":\"AAGA,yBCGC,iBAAA,CACA,YAAA,CACA,cAAA,CACA,iBAAA,CACA,wBAAA,CACA,6CAAA,CAIA,+BACC,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,6BAAA,CACA,2BAAA,CACA,uBAAA,CACA,4BAAA,CAEA,+GAGC,eAAA,CACA,sBAAA,CACA,kBAAA,CACA,sBAAA,CAGD,yBACC,mFAEC,eAAA,CACA,oCAAA,CACA,6CAAA,CAGD,uCACC,oBAAA,CAGD,4CACC,2CAAA,CACA,+CAAA,CAAA,CAIF,yCACC,yDAAA,CAGD,uCACC,kCAAA,CACA,8BAAA,CACA,kBAAA,CACA,SAAA,CACA,gBAAA,CAIA,+CACC,iBAAA,CACA,iBAAA,CAEA,iCAJD,+CAKE,mBAAA,CACA,oBAAA,CACA,2BAAA,CAAA,CAKH,sCACC,iCAAA,CACA,6BAAA,CAGD,uCACC,kCAAA,CACA,8BAAA,CAGD,2CACC,eAAA,CACA,WAAA,CAID,qCACC,iCAAA,CACA,UAAA,CAGD,wCACC,eAAA,CACA,kBAAA,CACA,oCAAA,CACA,YAAA,CACA,kBAAA,CACA,kBAAA,CACA,eAAA,CACA,WAAA,CACA,6CAAA,CACA,iDAAA,CAIF,mCACC,mCAAA,CDzGD,+BACC,eAAA,CACA,mCAAA,CAEA,wCACC,oBAAA,CACA,kCAAA,CACA,8BAAA,CACA,kBAAA,CACA,SAAA,CAGD,sCACC,2CAAA,CACA,2BAAA,CACA,uBAAA\",\"sourcesContent\":[\"\\n@use './shared/styles.scss';\\n\\n.footer {\\n\\t@include styles.row;\\n\\t@include styles.cell;\\n\\n\\t&__cell {\\n\\t\\tposition: sticky;\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\n\\t\\t&--loading {\\n\\t\\t\\tinset-inline-start: 0;\\n\\t\\t\\tmin-width: var(--avatar-cell-width);\\n\\t\\t\\twidth: var(--avatar-cell-width);\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tpadding: 0;\\n\\t\\t}\\n\\n\\t\\t&--count {\\n\\t\\t\\tinset-inline-start: var(--avatar-cell-width);\\n\\t\\t\\tmin-width: var(--cell-width);\\n\\t\\t\\twidth: var(--cell-width);\\n\\t\\t}\\n\\t}\\n}\\n\",\"/**\\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n\\n@mixin row {\\n\\tposition: relative;\\n\\tdisplay: flex;\\n\\tmin-width: 100%;\\n\\twidth: fit-content;\\n\\theight: var(--row-height);\\n\\tbackground-color: var(--color-main-background);\\n}\\n\\n@mixin cell {\\n\\t&__cell {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\tjustify-content: center;\\n\\t\\tpadding: 0 var(--cell-padding);\\n\\t\\tmin-width: var(--cell-width);\\n\\t\\twidth: var(--cell-width);\\n\\t\\tcolor: var(--color-main-text);\\n\\n\\t\\tstrong,\\n\\t\\tspan,\\n\\t\\tlabel {\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\toverflow-wrap: anywhere;\\n\\t\\t}\\n\\n\\t\\t@media (min-width: 670px) { /* Show one &--large column between stickied columns */\\n\\t\\t\\t&--avatar,\\n\\t\\t\\t&--displayname {\\n\\t\\t\\t\\tposition: sticky;\\n\\t\\t\\t\\tz-index: var(--sticky-column-z-index);\\n\\t\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\t}\\n\\n\\t\\t\\t&--avatar {\\n\\t\\t\\t\\tinset-inline-start: 0;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&--displayname {\\n\\t\\t\\t\\tinset-inline-start: var(--avatar-cell-width);\\n\\t\\t\\t\\tborder-inline-end: 1px solid var(--color-border);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&--username {\\n\\t\\t\\tpadding-inline-start: calc(var(--default-grid-baseline) * 3);\\n\\t\\t}\\n\\n\\t\\t&--avatar {\\n\\t\\t\\tmin-width: var(--avatar-cell-width);\\n\\t\\t\\twidth: var(--avatar-cell-width);\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tpadding: 0;\\n\\t\\t\\tuser-select: none;\\n\\t\\t}\\n\\n\\t\\t&--multiline {\\n\\t\\t\\tspan {\\n\\t\\t\\t\\tline-height: 1.3em;\\n\\t\\t\\t\\twhite-space: unset;\\n\\n\\t\\t\\t\\t@supports (-webkit-line-clamp: 2) {\\n\\t\\t\\t\\t\\tdisplay: -webkit-box;\\n\\t\\t\\t\\t\\t-webkit-line-clamp: 2;\\n\\t\\t\\t\\t\\t-webkit-box-orient: vertical;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&--large {\\n\\t\\t\\tmin-width: var(--cell-width-large);\\n\\t\\t\\twidth: var(--cell-width-large);\\n\\t\\t}\\n\\n\\t\\t&--groups {\\n\\t\\t\\tmin-width: var(--cell-width-groups);\\n\\t\\t\\twidth: var(--cell-width-groups);\\n\\t\\t}\\n\\n\\t\\t&--obfuscated {\\n\\t\\t\\tmin-width: 400px;\\n\\t\\t\\twidth: 400px;\\n\\t\\t}\\n\\n\\t\\t// Fill remaining row space with cell\\n\\t\\t&--fill {\\n\\t\\t\\tmin-width: var(--cell-width-large);\\n\\t\\t\\twidth: 100%;\\n\\t\\t}\\n\\n\\t\\t&--actions {\\n\\t\\t\\tposition: sticky;\\n\\t\\t\\tinset-inline-end: 0;\\n\\t\\t\\tz-index: var(--sticky-column-z-index);\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex-direction: row;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tmin-width: 110px;\\n\\t\\t\\twidth: 110px;\\n\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\tborder-inline-start: 1px solid var(--color-border);\\n\\t\\t}\\n\\t}\\n\\n\\t&__subtitle {\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t}\\n}\\n\"],\"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, `.header[data-v-53c64244]{border-bottom:1px solid var(--color-border);position:relative;display:flex;min-width:100%;width:fit-content;height:var(--row-height);background-color:var(--color-main-background)}.header__cell[data-v-53c64244]{display:flex;flex-direction:column;justify-content:center;padding:0 var(--cell-padding);min-width:var(--cell-width);width:var(--cell-width);color:var(--color-main-text)}.header__cell strong[data-v-53c64244],.header__cell span[data-v-53c64244],.header__cell label[data-v-53c64244]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;overflow-wrap:anywhere}@media(min-width: 670px){.header__cell--avatar[data-v-53c64244],.header__cell--displayname[data-v-53c64244]{position:sticky;z-index:var(--sticky-column-z-index);background-color:var(--color-main-background)}.header__cell--avatar[data-v-53c64244]{inset-inline-start:0}.header__cell--displayname[data-v-53c64244]{inset-inline-start:var(--avatar-cell-width);border-inline-end:1px solid var(--color-border)}}.header__cell--username[data-v-53c64244]{padding-inline-start:calc(var(--default-grid-baseline)*3)}.header__cell--avatar[data-v-53c64244]{min-width:var(--avatar-cell-width);width:var(--avatar-cell-width);align-items:center;padding:0;user-select:none}.header__cell--multiline span[data-v-53c64244]{line-height:1.3em;white-space:unset}@supports(-webkit-line-clamp: 2){.header__cell--multiline span[data-v-53c64244]{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.header__cell--large[data-v-53c64244]{min-width:var(--cell-width-large);width:var(--cell-width-large)}.header__cell--groups[data-v-53c64244]{min-width:var(--cell-width-groups);width:var(--cell-width-groups)}.header__cell--obfuscated[data-v-53c64244]{min-width:400px;width:400px}.header__cell--fill[data-v-53c64244]{min-width:var(--cell-width-large);width:100%}.header__cell--actions[data-v-53c64244]{position:sticky;inset-inline-end:0;z-index:var(--sticky-column-z-index);display:flex;flex-direction:row;align-items:center;min-width:110px;width:110px;background-color:var(--color-main-background);border-inline-start:1px solid var(--color-border)}.header__subtitle[data-v-53c64244]{color:var(--color-text-maxcontrast)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/Users/UserListHeader.vue\",\"webpack://./apps/settings/src/components/Users/shared/styles.scss\"],\"names\":[],\"mappings\":\"AAGA,yBACC,2CAAA,CCEA,iBAAA,CACA,YAAA,CACA,cAAA,CACA,iBAAA,CACA,wBAAA,CACA,6CAAA,CAIA,+BACC,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,6BAAA,CACA,2BAAA,CACA,uBAAA,CACA,4BAAA,CAEA,+GAGC,eAAA,CACA,sBAAA,CACA,kBAAA,CACA,sBAAA,CAGD,yBACC,mFAEC,eAAA,CACA,oCAAA,CACA,6CAAA,CAGD,uCACC,oBAAA,CAGD,4CACC,2CAAA,CACA,+CAAA,CAAA,CAIF,yCACC,yDAAA,CAGD,uCACC,kCAAA,CACA,8BAAA,CACA,kBAAA,CACA,SAAA,CACA,gBAAA,CAIA,+CACC,iBAAA,CACA,iBAAA,CAEA,iCAJD,+CAKE,mBAAA,CACA,oBAAA,CACA,2BAAA,CAAA,CAKH,sCACC,iCAAA,CACA,6BAAA,CAGD,uCACC,kCAAA,CACA,8BAAA,CAGD,2CACC,eAAA,CACA,WAAA,CAID,qCACC,iCAAA,CACA,UAAA,CAGD,wCACC,eAAA,CACA,kBAAA,CACA,oCAAA,CACA,YAAA,CACA,kBAAA,CACA,kBAAA,CACA,eAAA,CACA,WAAA,CACA,6CAAA,CACA,iDAAA,CAIF,mCACC,mCAAA\",\"sourcesContent\":[\"\\n@use './shared/styles.scss';\\n\\n.header {\\n\\tborder-bottom: 1px solid var(--color-border);\\n\\n\\t@include styles.row;\\n\\t@include styles.cell;\\n}\\n\",\"/**\\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n\\n@mixin row {\\n\\tposition: relative;\\n\\tdisplay: flex;\\n\\tmin-width: 100%;\\n\\twidth: fit-content;\\n\\theight: var(--row-height);\\n\\tbackground-color: var(--color-main-background);\\n}\\n\\n@mixin cell {\\n\\t&__cell {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\tjustify-content: center;\\n\\t\\tpadding: 0 var(--cell-padding);\\n\\t\\tmin-width: var(--cell-width);\\n\\t\\twidth: var(--cell-width);\\n\\t\\tcolor: var(--color-main-text);\\n\\n\\t\\tstrong,\\n\\t\\tspan,\\n\\t\\tlabel {\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\toverflow-wrap: anywhere;\\n\\t\\t}\\n\\n\\t\\t@media (min-width: 670px) { /* Show one &--large column between stickied columns */\\n\\t\\t\\t&--avatar,\\n\\t\\t\\t&--displayname {\\n\\t\\t\\t\\tposition: sticky;\\n\\t\\t\\t\\tz-index: var(--sticky-column-z-index);\\n\\t\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\t}\\n\\n\\t\\t\\t&--avatar {\\n\\t\\t\\t\\tinset-inline-start: 0;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&--displayname {\\n\\t\\t\\t\\tinset-inline-start: var(--avatar-cell-width);\\n\\t\\t\\t\\tborder-inline-end: 1px solid var(--color-border);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&--username {\\n\\t\\t\\tpadding-inline-start: calc(var(--default-grid-baseline) * 3);\\n\\t\\t}\\n\\n\\t\\t&--avatar {\\n\\t\\t\\tmin-width: var(--avatar-cell-width);\\n\\t\\t\\twidth: var(--avatar-cell-width);\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tpadding: 0;\\n\\t\\t\\tuser-select: none;\\n\\t\\t}\\n\\n\\t\\t&--multiline {\\n\\t\\t\\tspan {\\n\\t\\t\\t\\tline-height: 1.3em;\\n\\t\\t\\t\\twhite-space: unset;\\n\\n\\t\\t\\t\\t@supports (-webkit-line-clamp: 2) {\\n\\t\\t\\t\\t\\tdisplay: -webkit-box;\\n\\t\\t\\t\\t\\t-webkit-line-clamp: 2;\\n\\t\\t\\t\\t\\t-webkit-box-orient: vertical;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&--large {\\n\\t\\t\\tmin-width: var(--cell-width-large);\\n\\t\\t\\twidth: var(--cell-width-large);\\n\\t\\t}\\n\\n\\t\\t&--groups {\\n\\t\\t\\tmin-width: var(--cell-width-groups);\\n\\t\\t\\twidth: var(--cell-width-groups);\\n\\t\\t}\\n\\n\\t\\t&--obfuscated {\\n\\t\\t\\tmin-width: 400px;\\n\\t\\t\\twidth: 400px;\\n\\t\\t}\\n\\n\\t\\t// Fill remaining row space with cell\\n\\t\\t&--fill {\\n\\t\\t\\tmin-width: var(--cell-width-large);\\n\\t\\t\\twidth: 100%;\\n\\t\\t}\\n\\n\\t\\t&--actions {\\n\\t\\t\\tposition: sticky;\\n\\t\\t\\tinset-inline-end: 0;\\n\\t\\t\\tz-index: var(--sticky-column-z-index);\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex-direction: row;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tmin-width: 110px;\\n\\t\\t\\twidth: 110px;\\n\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\tborder-inline-start: 1px solid var(--color-border);\\n\\t\\t}\\n\\t}\\n\\n\\t&__subtitle {\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t}\\n}\\n\"],\"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, `.user-list__row[data-v-78b3749c]{position:relative;display:flex;min-width:100%;width:fit-content;height:var(--row-height);background-color:var(--color-main-background)}.user-list__row[data-v-78b3749c]:hover{background-color:var(--color-background-hover)}.user-list__row:hover .row__cell[data-v-78b3749c]:not(.row__cell--actions){background-color:var(--color-background-hover)}.row__cell[data-v-78b3749c]{display:flex;flex-direction:column;justify-content:center;padding:0 var(--cell-padding);min-width:var(--cell-width);width:var(--cell-width);color:var(--color-main-text)}.row__cell strong[data-v-78b3749c],.row__cell span[data-v-78b3749c],.row__cell label[data-v-78b3749c]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;overflow-wrap:anywhere}@media(min-width: 670px){.row__cell--avatar[data-v-78b3749c],.row__cell--displayname[data-v-78b3749c]{position:sticky;z-index:var(--sticky-column-z-index);background-color:var(--color-main-background)}.row__cell--avatar[data-v-78b3749c]{inset-inline-start:0}.row__cell--displayname[data-v-78b3749c]{inset-inline-start:var(--avatar-cell-width);border-inline-end:1px solid var(--color-border)}}.row__cell--username[data-v-78b3749c]{padding-inline-start:calc(var(--default-grid-baseline)*3)}.row__cell--avatar[data-v-78b3749c]{min-width:var(--avatar-cell-width);width:var(--avatar-cell-width);align-items:center;padding:0;user-select:none}.row__cell--multiline span[data-v-78b3749c]{line-height:1.3em;white-space:unset}@supports(-webkit-line-clamp: 2){.row__cell--multiline span[data-v-78b3749c]{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}.row__cell--large[data-v-78b3749c]{min-width:var(--cell-width-large);width:var(--cell-width-large)}.row__cell--groups[data-v-78b3749c]{min-width:var(--cell-width-groups);width:var(--cell-width-groups)}.row__cell--obfuscated[data-v-78b3749c]{min-width:400px;width:400px}.row__cell--fill[data-v-78b3749c]{min-width:var(--cell-width-large);width:100%}.row__cell--actions[data-v-78b3749c]{position:sticky;inset-inline-end:0;z-index:var(--sticky-column-z-index);display:flex;flex-direction:row;align-items:center;min-width:110px;width:110px;background-color:var(--color-main-background);border-inline-start:1px solid var(--color-border)}.row__subtitle[data-v-78b3749c]{color:var(--color-text-maxcontrast)}.row__cell[data-v-78b3749c]{border-bottom:1px solid var(--color-border)}.row__progress[data-v-78b3749c]{margin-top:4px}.row__progress--warn[data-v-78b3749c]::-moz-progress-bar{background:var(--color-warning) !important}.row__progress--warn[data-v-78b3749c]::-webkit-progress-value{background:var(--color-warning) !important}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/Users/UserRow.vue\",\"webpack://./apps/settings/src/components/Users/shared/styles.scss\"],\"names\":[],\"mappings\":\"AAGA,iCCGC,iBAAA,CACA,YAAA,CACA,cAAA,CACA,iBAAA,CACA,wBAAA,CACA,6CAAA,CDLA,uCACC,8CAAA,CAEA,2EACC,8CAAA,CCKF,4BACC,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,6BAAA,CACA,2BAAA,CACA,uBAAA,CACA,4BAAA,CAEA,sGAGC,eAAA,CACA,sBAAA,CACA,kBAAA,CACA,sBAAA,CAGD,yBACC,6EAEC,eAAA,CACA,oCAAA,CACA,6CAAA,CAGD,oCACC,oBAAA,CAGD,yCACC,2CAAA,CACA,+CAAA,CAAA,CAIF,sCACC,yDAAA,CAGD,oCACC,kCAAA,CACA,8BAAA,CACA,kBAAA,CACA,SAAA,CACA,gBAAA,CAIA,4CACC,iBAAA,CACA,iBAAA,CAEA,iCAJD,4CAKE,mBAAA,CACA,oBAAA,CACA,2BAAA,CAAA,CAKH,mCACC,iCAAA,CACA,6BAAA,CAGD,oCACC,kCAAA,CACA,8BAAA,CAGD,wCACC,eAAA,CACA,WAAA,CAID,kCACC,iCAAA,CACA,UAAA,CAGD,qCACC,eAAA,CACA,kBAAA,CACA,oCAAA,CACA,YAAA,CACA,kBAAA,CACA,kBAAA,CACA,eAAA,CACA,WAAA,CACA,6CAAA,CACA,iDAAA,CAIF,gCACC,mCAAA,CD9FD,4BACC,2CAAA,CAGD,gCACC,cAAA,CAGC,yDACC,0CAAA,CAED,8DACC,0CAAA\",\"sourcesContent\":[\"\\n@use './shared/styles.scss';\\n\\n.user-list__row {\\n\\t@include styles.row;\\n\\n\\t&:hover {\\n\\t\\tbackground-color: var(--color-background-hover);\\n\\n\\t\\t.row__cell:not(.row__cell--actions) {\\n\\t\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\t}\\n\\t}\\n}\\n\\n.row {\\n\\t@include styles.cell;\\n\\n\\t&__cell {\\n\\t\\tborder-bottom: 1px solid var(--color-border);\\n\\t}\\n\\n\\t&__progress {\\n\\t\\tmargin-top: 4px;\\n\\n\\t\\t&--warn {\\n\\t\\t\\t&::-moz-progress-bar {\\n\\t\\t\\t\\tbackground: var(--color-warning) !important;\\n\\t\\t\\t}\\n\\t\\t\\t&::-webkit-progress-value {\\n\\t\\t\\t\\tbackground: var(--color-warning) !important;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\",\"/**\\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\\n * SPDX-License-Identifier: AGPL-3.0-or-later\\n */\\n\\n@mixin row {\\n\\tposition: relative;\\n\\tdisplay: flex;\\n\\tmin-width: 100%;\\n\\twidth: fit-content;\\n\\theight: var(--row-height);\\n\\tbackground-color: var(--color-main-background);\\n}\\n\\n@mixin cell {\\n\\t&__cell {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\tjustify-content: center;\\n\\t\\tpadding: 0 var(--cell-padding);\\n\\t\\tmin-width: var(--cell-width);\\n\\t\\twidth: var(--cell-width);\\n\\t\\tcolor: var(--color-main-text);\\n\\n\\t\\tstrong,\\n\\t\\tspan,\\n\\t\\tlabel {\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\toverflow-wrap: anywhere;\\n\\t\\t}\\n\\n\\t\\t@media (min-width: 670px) { /* Show one &--large column between stickied columns */\\n\\t\\t\\t&--avatar,\\n\\t\\t\\t&--displayname {\\n\\t\\t\\t\\tposition: sticky;\\n\\t\\t\\t\\tz-index: var(--sticky-column-z-index);\\n\\t\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\t}\\n\\n\\t\\t\\t&--avatar {\\n\\t\\t\\t\\tinset-inline-start: 0;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&--displayname {\\n\\t\\t\\t\\tinset-inline-start: var(--avatar-cell-width);\\n\\t\\t\\t\\tborder-inline-end: 1px solid var(--color-border);\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&--username {\\n\\t\\t\\tpadding-inline-start: calc(var(--default-grid-baseline) * 3);\\n\\t\\t}\\n\\n\\t\\t&--avatar {\\n\\t\\t\\tmin-width: var(--avatar-cell-width);\\n\\t\\t\\twidth: var(--avatar-cell-width);\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tpadding: 0;\\n\\t\\t\\tuser-select: none;\\n\\t\\t}\\n\\n\\t\\t&--multiline {\\n\\t\\t\\tspan {\\n\\t\\t\\t\\tline-height: 1.3em;\\n\\t\\t\\t\\twhite-space: unset;\\n\\n\\t\\t\\t\\t@supports (-webkit-line-clamp: 2) {\\n\\t\\t\\t\\t\\tdisplay: -webkit-box;\\n\\t\\t\\t\\t\\t-webkit-line-clamp: 2;\\n\\t\\t\\t\\t\\t-webkit-box-orient: vertical;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&--large {\\n\\t\\t\\tmin-width: var(--cell-width-large);\\n\\t\\t\\twidth: var(--cell-width-large);\\n\\t\\t}\\n\\n\\t\\t&--groups {\\n\\t\\t\\tmin-width: var(--cell-width-groups);\\n\\t\\t\\twidth: var(--cell-width-groups);\\n\\t\\t}\\n\\n\\t\\t&--obfuscated {\\n\\t\\t\\tmin-width: 400px;\\n\\t\\t\\twidth: 400px;\\n\\t\\t}\\n\\n\\t\\t// Fill remaining row space with cell\\n\\t\\t&--fill {\\n\\t\\t\\tmin-width: var(--cell-width-large);\\n\\t\\t\\twidth: 100%;\\n\\t\\t}\\n\\n\\t\\t&--actions {\\n\\t\\t\\tposition: sticky;\\n\\t\\t\\tinset-inline-end: 0;\\n\\t\\t\\tz-index: var(--sticky-column-z-index);\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tflex-direction: row;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tmin-width: 110px;\\n\\t\\t\\twidth: 110px;\\n\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\tborder-inline-start: 1px solid var(--color-border);\\n\\t\\t}\\n\\t}\\n\\n\\t&__subtitle {\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t}\\n}\\n\"],\"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, `.dialog__note[data-v-649c1de8]{font-weight:normal}fieldset[data-v-649c1de8]{font-weight:bold}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/Users/UserSettingsDialog.vue\"],\"names\":[],\"mappings\":\"AAEC,+BACC,kBAAA,CAIF,0BACC,gBAAA\",\"sourcesContent\":[\"\\n.dialog {\\n\\t&__note {\\n\\t\\tfont-weight: normal;\\n\\t}\\n}\\n\\nfieldset {\\n\\tfont-weight: bold;\\n}\\n\"],\"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, `.user-list[data-v-65d37ac4]{--avatar-cell-width: 48px;--cell-padding: 7px;--cell-width: 200px;--cell-width-large: 300px;--cell-width-groups: 380px;--cell-min-width: calc(var(--cell-width) - (2 * var(--cell-padding)));--sticky-column-z-index: calc(var(--vs-dropdown-z-index) + 1);display:block;overflow:auto;height:100%;will-change:scroll-position}.user-list__header[data-v-65d37ac4],.user-list__footer[data-v-65d37ac4]{position:sticky;display:block}.user-list__header[data-v-65d37ac4]{top:0;z-index:calc(var(--sticky-column-z-index) + 1)}.user-list__footer[data-v-65d37ac4]{inset-inline-start:0}.user-list__body[data-v-65d37ac4]{display:flex;flex-direction:column;width:100%}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/components/Users/VirtualList.vue\"],\"names\":[],\"mappings\":\"AACA,4BACC,yBAAA,CACA,mBAAA,CACA,mBAAA,CACA,yBAAA,CACA,0BAAA,CACA,qEAAA,CACA,6DAAA,CAGA,aAAA,CACA,aAAA,CACA,WAAA,CACA,2BAAA,CAEA,wEAEC,eAAA,CAEA,aAAA,CAGD,oCACC,KAAA,CACA,8CAAA,CAGD,oCACC,oBAAA,CAGD,kCACC,YAAA,CACA,qBAAA,CACA,UAAA\",\"sourcesContent\":[\"\\n.user-list {\\n\\t--avatar-cell-width: 48px;\\n\\t--cell-padding: 7px;\\n\\t--cell-width: 200px;\\n\\t--cell-width-large: 300px;\\n\\t--cell-width-groups: 380px;\\n\\t--cell-min-width: calc(var(--cell-width) - (2 * var(--cell-padding)));\\n\\t--sticky-column-z-index: calc(var(--vs-dropdown-z-index) + 1); // Keep the sticky column on top of the select dropdown\\n\\n\\t// Necessary for virtual scroll optimized rendering\\n\\tdisplay: block;\\n\\toverflow: auto;\\n\\theight: 100%;\\n\\twill-change: scroll-position;\\n\\n\\t&__header,\\n\\t&__footer {\\n\\t\\tposition: sticky;\\n\\t\\t// Fix sticky positioning in Firefox\\n\\t\\tdisplay: block;\\n\\t}\\n\\n\\t&__header {\\n\\t\\ttop: 0;\\n\\t\\tz-index: calc(var(--sticky-column-z-index) + 1);\\n\\t}\\n\\n\\t&__footer {\\n\\t\\tinset-inline-start: 0;\\n\\t}\\n\\n\\t&__body {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\twidth: 100%;\\n\\t}\\n}\\n\"],\"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-content[data-v-6c72a095]{display:flex;overflow:hidden;flex-direction:column;max-height:100%}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/views/UserManagement.vue\"],\"names\":[],\"mappings\":\"AACA,8BAEC,YAAA,CACA,eAAA,CACA,qBAAA,CACA,eAAA\",\"sourcesContent\":[\"\\n.app-content {\\n\\t// Virtual list needs to be full height and is scrollable\\n\\tdisplay: flex;\\n\\toverflow: hidden;\\n\\tflex-direction: column;\\n\\tmax-height: 100%;\\n}\\n\"],\"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, `.account-management__navigation[data-v-0567bb0c] .app-navigation__body{will-change:scroll-position}.account-management__search[data-v-0567bb0c]{padding-block:var(--default-grid-baseline, 4px);padding-inline:var(--app-navigation-padding, 8px)}.account-management__system-list[data-v-0567bb0c]{height:auto !important;overflow:visible !important}.account-management__group-list[data-v-0567bb0c]{height:100% !important}.account-management__settings-toggle[data-v-0567bb0c]{margin-bottom:12px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/settings/src/views/UserManagementNavigation.vue\"],\"names\":[],\"mappings\":\"AAGE,uEACC,2BAAA,CAGF,6CACC,+CAAA,CACA,iDAAA,CAGD,kDACC,sBAAA,CACA,2BAAA,CAGD,iDACC,sBAAA,CAGD,sDACC,kBAAA\",\"sourcesContent\":[\"\\n.account-management {\\n\\t&__navigation {\\n\\t\\t:deep(.app-navigation__body) {\\n\\t\\t\\twill-change: scroll-position;\\n\\t\\t}\\n\\t}\\n\\t&__search {\\n\\t\\tpadding-block: var(--default-grid-baseline, 4px);\\n\\t\\tpadding-inline: var(--app-navigation-padding, 8px);\\n\\t}\\n\\n\\t&__system-list {\\n\\t\\theight: auto !important;\\n\\t\\toverflow: visible !important;\\n\\t}\\n\\n\\t&__group-list {\\n\\t\\theight: 100% !important;\\n\\t}\\n\\n\\t&__settings-toggle {\\n\\t\\tmargin-bottom: 12px;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcAppContent',{attrs:{\"page-heading\":_vm.pageHeading}},[_c('UserList',{attrs:{\"selected-group\":_vm.selectedGroupDecoded,\"external-actions\":_vm.externalActions}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserFormGroups.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!./UserFormGroups.vue?vue&type=script&lang=js\"","\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!./UserFormGroups.vue?vue&type=style&index=0&id=4041cacf&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!./UserFormGroups.vue?vue&type=style&index=0&id=4041cacf&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserFormGroups.vue?vue&type=template&id=4041cacf&scoped=true\"\nimport script from \"./UserFormGroups.vue?vue&type=script&lang=js\"\nexport * from \"./UserFormGroups.vue?vue&type=script&lang=js\"\nimport style0 from \"./UserFormGroups.vue?vue&type=style&index=0&id=4041cacf&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 \"4041cacf\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"user-form-groups\"},[_c('div',{staticClass:\"user-form__item\"},[_c('NcSelect',{staticClass:\"user-form__select\",attrs:{\"data-test\":\"groups\",\"input-label\":_vm.groupsLabel,\"placeholder\":_vm.t('settings', 'Set account groups'),\"disabled\":_vm.creatingGroup,\"options\":_vm.availableGroups,\"label\":\"name\",\"keep-open\":\"\",\"multiple\":true,\"taggable\":_vm.settings.isAdmin || _vm.settings.isDelegatedAdmin,\"required\":!_vm.settings.isAdmin && !_vm.settings.isDelegatedAdmin,\"create-option\":(value) => ({ id: value, name: value, isCreating: true })},on:{\"search\":_vm.searchGroups,\"option:created\":_vm.createGroup},model:{value:(_vm.formData.groups),callback:function ($$v) {_vm.$set(_vm.formData, \"groups\", $$v)},expression:\"formData.groups\"}})],1),_vm._v(\" \"),(_vm.settings.isAdmin || _vm.settings.isDelegatedAdmin)?_c('div',{staticClass:\"user-form__item\"},[_c('NcSelect',{staticClass:\"user-form__select\",attrs:{\"input-label\":_vm.t('settings', 'Admin of the following groups'),\"placeholder\":_vm.t('settings', 'Set account as admin for …'),\"disabled\":_vm.creatingGroup,\"options\":_vm.availableSubAdminGroups,\"keep-open\":\"\",\"multiple\":true,\"label\":\"name\"},on:{\"search\":_vm.searchGroups},model:{value:(_vm.formData.subadminGroups),callback:function ($$v) {_vm.$set(_vm.formData, \"subadminGroups\", $$v)},expression:\"formData.subadminGroups\"}})],1):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.showConfig.showLanguages)?_c('div',{staticClass:\"user-form__item\"},[_c('NcSelect',{staticClass:\"user-form__select\",attrs:{\"input-label\":_vm.t('settings', 'Language'),\"placeholder\":_vm.t('settings', 'Set default language'),\"clearable\":false,\"selectable\":option => !option.languages,\"filter-by\":_vm.languageFilterBy,\"options\":_vm.languages,\"label\":\"name\"},model:{value:(_vm.formData.language),callback:function ($$v) {_vm.$set(_vm.formData, \"language\", $$v)},expression:\"formData.language\"}})],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { formatFileSize, parseFileSize } from '@nextcloud/files';\nimport { unlimitedQuota } from '../../utils/userUtils.ts';\n/**\n * Resolves the user's language code to a { code, name } object.\n *\n * @param user The user store object\n * @param serverLanguages Server language configuration\n * @return Language object with code and name\n */\nexport function resolveLanguage(user, serverLanguages) {\n if (!user.language || user.language === '') {\n return { code: '', name: '' };\n }\n const allLangs = [\n ...(serverLanguages?.commonLanguages ?? []),\n ...(serverLanguages?.otherLanguages ?? []),\n ];\n const match = allLangs.find((lang) => lang.code === user.language);\n if (match) {\n return match;\n }\n return { code: user.language, name: user.language };\n}\n/**\n * Maps a user store object to the flat, API-aligned shape used by the form.\n * Keeps a clean separation between the store model (e.g. `user.displayname`,\n * `user.quota.quota`) and the form model (e.g. `displayName`, `quota`).\n *\n * @param user The user store object\n * @param allGroups All available groups from the store\n * @param quotaOptions Quota preset options\n * @param serverLanguages Server language configuration\n * @return Form-ready data object\n */\nexport function userToFormData(user, allGroups, quotaOptions, serverLanguages) {\n const groups = user.groups\n .map((id) => allGroups.find((g) => g.id === id))\n .filter(Boolean);\n const subadminGroups = (user.subadmin ?? [])\n .map((id) => allGroups.find((g) => g.id === id))\n .filter(Boolean);\n let quota;\n if (user.quota?.quota >= 0) {\n const label = formatFileSize(user.quota.quota);\n quota = quotaOptions.find((q) => q.id === label) ?? { id: label, label };\n }\n else if (user.quota?.quota === 'default') {\n quota = quotaOptions[0];\n }\n else {\n quota = unlimitedQuota;\n }\n return {\n username: user.id,\n displayName: user.displayname ?? '',\n password: '',\n email: user.email ?? '',\n groups,\n subadminGroups,\n quota,\n language: resolveLanguage(user, serverLanguages),\n manager: user.manager ?? '',\n };\n}\n/**\n * Generic shallow diff between initial and current form data.\n * Returns only fields that changed, with API-ready values.\n *\n * @param initial Snapshot of form data at mount time\n * @param current Current form data state\n * @return Changed fields with API-ready values\n */\nexport function diffPayload(initial, current) {\n const payload = {};\n if (current.displayName !== initial.displayName) {\n payload.displayName = current.displayName;\n }\n if (current.password !== '') {\n payload.password = current.password;\n }\n if (current.email !== initial.email) {\n payload.email = current.email;\n }\n if (current.quota.id !== initial.quota.id) {\n payload.quota = current.quota.id;\n }\n if (current.language.code !== initial.language.code) {\n payload.language = current.language.code;\n }\n const currentManagerId = typeof current.manager === 'object' ? (current.manager.id ?? '') : current.manager;\n const initialManagerId = typeof initial.manager === 'object' ? (initial.manager.id ?? '') : initial.manager;\n if (currentManagerId !== initialManagerId) {\n payload.manager = currentManagerId;\n }\n const currentGroupIds = current.groups.map((g) => g.id).sort();\n const initialGroupIds = initial.groups.map((g) => g.id).sort();\n if (JSON.stringify(currentGroupIds) !== JSON.stringify(initialGroupIds)) {\n payload.groups = currentGroupIds;\n }\n const currentSubadminIds = current.subadminGroups.map((g) => g.id).sort();\n const initialSubadminIds = initial.subadminGroups.map((g) => g.id).sort();\n if (JSON.stringify(currentSubadminIds) !== JSON.stringify(initialSubadminIds)) {\n payload.subadminGroups = currentSubadminIds;\n }\n return payload;\n}\n/**\n * Parses and normalizes a user-entered quota string into a quota option.\n * Returns the fallback option if the input is invalid.\n *\n * @param quota Raw quota string entered by the user (e.g. \"4 MB\")\n * @param fallback Fallback option when input is invalid\n * @param fallback.id Fallback option identifier\n * @param fallback.label Fallback option display label\n * @return Normalized quota option with id and label\n */\nexport function validateQuota(quota, fallback) {\n const parsed = parseFileSize(quota, true);\n if (parsed !== null && parsed >= 0) {\n const label = formatFileSize(parsed);\n return { id: label, label };\n }\n return fallback;\n}\n/**\n * Filter function for the language NcSelect. Handles grouped options\n * (section headers with nested languages) and plain language entries.\n *\n * @param option The select option being filtered\n * @param option.languages Nested languages for group headers\n * @param label The option's display label\n * @param search The user's search string\n * @return Whether the option matches the search\n */\nexport function languageFilterBy(option, label, search) {\n if (option.languages) {\n return option.languages.some(({ name }) => name.toLocaleLowerCase().includes(search.toLocaleLowerCase()));\n }\n return (label || '').toLocaleLowerCase().includes(search.toLocaleLowerCase());\n}\n","\n\n\n\n\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserFormLanguage.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!./UserFormLanguage.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./UserFormLanguage.vue?vue&type=template&id=41ac58dd\"\nimport script from \"./UserFormLanguage.vue?vue&type=script&lang=js\"\nexport * from \"./UserFormLanguage.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',{staticClass:\"user-form__item user-form__managers\"},[_c('NcSelectUsers',{staticClass:\"user-form__select\",attrs:{\"modelValue\":_vm.managerModel,\"input-label\":_vm.t('settings', 'Manager'),\"placeholder\":_vm.t('settings', 'Search for a manager…'),\"options\":_vm.managerOptions,\"loading\":_vm.loading},on:{\"update:modelValue\":_vm.onManagerChange,\"search\":_vm.searchUserManager}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserFormManager.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!./UserFormManager.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./UserFormManager.vue?vue&type=template&id=7584b1b9\"\nimport script from \"./UserFormManager.vue?vue&type=script&lang=js\"\nexport * from \"./UserFormManager.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","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserFormQuota.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!./UserFormQuota.vue?vue&type=script&lang=js\"","\n\n\n\n\n","import { render, staticRenderFns } from \"./UserFormQuota.vue?vue&type=template&id=d14c331a\"\nimport script from \"./UserFormQuota.vue?vue&type=script&lang=js\"\nexport * from \"./UserFormQuota.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',{staticClass:\"user-form__item\"},[_c('NcSelect',{staticClass:\"user-form__select\",attrs:{\"input-label\":_vm.t('settings', 'Quota'),\"placeholder\":_vm.t('settings', 'Set account quota'),\"options\":_vm.quotaOptions,\"clearable\":false,\"taggable\":true,\"create-option\":_vm.validateQuota},model:{value:(_vm.formData.quota),callback:function ($$v) {_vm.$set(_vm.formData, \"quota\", $$v)},expression:\"formData.quota\"}})],1)\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!./UserFormFields.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!./UserFormFields.vue?vue&type=script&lang=js\"","\n\n\n\n\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!./UserFormFields.vue?vue&type=style&index=0&id=0d9243e9&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!./UserFormFields.vue?vue&type=style&index=0&id=0d9243e9&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserFormFields.vue?vue&type=template&id=0d9243e9&scoped=true\"\nimport script from \"./UserFormFields.vue?vue&type=script&lang=js\"\nexport * from \"./UserFormFields.vue?vue&type=script&lang=js\"\nimport style0 from \"./UserFormFields.vue?vue&type=style&index=0&id=0d9243e9&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 \"0d9243e9\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"user-form-fields\"},[(_vm.fieldConfig.username?.show && _vm.fieldConfig.username?.disabled)?_c('div',{staticClass:\"user-form-fields__item user-form-fields__static\",attrs:{\"data-test\":\"username\"}},[_c('span',{staticClass:\"user-form-fields__static-label\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.fieldConfig.username?.label)+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('span',{staticClass:\"user-form-fields__static-value\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.formData.username)+\"\\n\\t\\t\")])]):(_vm.fieldConfig.username?.show)?_c('NcTextField',{ref:\"username\",staticClass:\"user-form-fields__item\",attrs:{\"data-test\":\"username\",\"label\":_vm.fieldConfig.username?.label,\"autocapitalize\":\"none\",\"autocomplete\":\"off\",\"spellcheck\":\"false\",\"pattern\":\"[a-zA-Z0-9 _\\\\.@\\\\-']+\",\"required\":_vm.fieldConfig.username?.required},model:{value:(_vm.formData.username),callback:function ($$v) {_vm.$set(_vm.formData, \"username\", $$v)},expression:\"formData.username\"}}):_vm._e(),_vm._v(\" \"),_c('NcTextField',{staticClass:\"user-form-fields__item\",attrs:{\"data-test\":\"displayName\",\"label\":_vm.t('settings', 'Display name'),\"error\":!!_vm.errors.displayName,\"helper-text\":_vm.errors.displayName,\"autocapitalize\":\"none\",\"autocomplete\":\"off\",\"spellcheck\":\"false\"},model:{value:(_vm.formData.displayName),callback:function ($$v) {_vm.$set(_vm.formData, \"displayName\", $$v)},expression:\"formData.displayName\"}}),_vm._v(\" \"),(_vm.fieldConfig.showPasswordEmailHint)?_c('span',{staticClass:\"user-form-fields__hint\",attrs:{\"id\":\"password-email-hint\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('settings', 'Either password or email is required'))+\"\\n\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.fieldConfig.password?.show !== false)?_c('NcPasswordField',{ref:\"password\",staticClass:\"user-form-fields__item\",attrs:{\"data-test\":\"password\",\"minlength\":_vm.minPasswordLength,\"maxlength\":469,\"aria-describedby\":_vm.fieldConfig.showPasswordEmailHint ? 'password-email-hint' : undefined,\"label\":_vm.fieldConfig.password?.label,\"error\":!!_vm.errors.password,\"helper-text\":_vm.errors.password,\"autocapitalize\":\"none\",\"autocomplete\":\"new-password\",\"spellcheck\":\"false\",\"required\":_vm.fieldConfig.password?.required},model:{value:(_vm.formData.password),callback:function ($$v) {_vm.$set(_vm.formData, \"password\", $$v)},expression:\"formData.password\"}}):_vm._e(),_vm._v(\" \"),_c('NcTextField',{staticClass:\"user-form-fields__item\",attrs:{\"data-test\":\"email\",\"type\":\"email\",\"aria-describedby\":_vm.fieldConfig.showPasswordEmailHint ? 'password-email-hint' : undefined,\"label\":_vm.fieldConfig.email?.label || _vm.t('settings', 'Email'),\"error\":!!_vm.errors.email,\"helper-text\":_vm.errors.email,\"autocapitalize\":\"none\",\"autocomplete\":\"off\",\"spellcheck\":\"false\",\"required\":_vm.fieldConfig.email?.required},model:{value:(_vm.formData.email),callback:function ($$v) {_vm.$set(_vm.formData, \"email\", $$v)},expression:\"formData.email\"}}),_vm._v(\" \"),_c('UserFormGroups'),_vm._v(\" \"),_c('UserFormQuota',{attrs:{\"quota-options\":_vm.quotaOptions}}),_vm._v(\" \"),_c('UserFormLanguage'),_vm._v(\" \"),_c('UserFormManager'),_vm._v(\" \"),(Object.keys(_vm.unhandledErrors).length > 0)?_c('div',{staticClass:\"user-form-fields__error-summary\",attrs:{\"aria-live\":\"polite\",\"role\":\"status\"}},_vm._l((_vm.unhandledErrors),function(message,field){return _c('p',{key:field},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(field)+\": \"+_vm._s(message)+\"\\n\\t\\t\")])}),0):_vm._e()],1)\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!./EditUserDialog.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!./EditUserDialog.vue?vue&type=script&lang=js\"","\n\n\n\n\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!./EditUserDialog.vue?vue&type=style&index=0&id=2a263a52&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!./EditUserDialog.vue?vue&type=style&index=0&id=2a263a52&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./EditUserDialog.vue?vue&type=template&id=2a263a52&scoped=true\"\nimport script from \"./EditUserDialog.vue?vue&type=script&lang=js\"\nexport * from \"./EditUserDialog.vue?vue&type=script&lang=js\"\nimport style0 from \"./EditUserDialog.vue?vue&type=style&index=0&id=2a263a52&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 \"2a263a52\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcDialog',{staticClass:\"edit-dialog\",attrs:{\"size\":\"small\",\"name\":_vm.t('settings', 'Edit account'),\"outTransition\":\"\"},on:{\"closing\":function($event){return _vm.$emit('closing')}},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('NcButton',{staticClass:\"edit-dialog__submit\",attrs:{\"data-test\":\"submit\",\"form\":\"edit-user-form\",\"variant\":\"primary\",\"type\":\"submit\",\"disabled\":_vm.saving}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.saving ? _vm.t('settings', 'Saving\\u00A0…') : _vm.t('settings', 'Save'))+\"\\n\\t\\t\")])]},proxy:true}])},[_c('form',{staticClass:\"edit-dialog__form\",attrs:{\"id\":\"edit-user-form\",\"data-test\":\"form\",\"disabled\":_vm.saving},on:{\"submit\":function($event){$event.preventDefault();return _vm.save.apply(null, arguments)}}},[_c('UserFormFields',{attrs:{\"fieldConfig\":_vm.fieldConfig,\"errors\":_vm.fieldErrors,\"quotaOptions\":_vm.quotaOptions}})],1)])\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!./NewUserDialog.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!./NewUserDialog.vue?vue&type=script&lang=js\"","\n\n\n\n\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!./NewUserDialog.vue?vue&type=style&index=0&id=32af3da3&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!./NewUserDialog.vue?vue&type=style&index=0&id=32af3da3&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./NewUserDialog.vue?vue&type=template&id=32af3da3&scoped=true\"\nimport script from \"./NewUserDialog.vue?vue&type=script&lang=js\"\nexport * from \"./NewUserDialog.vue?vue&type=script&lang=js\"\nimport style0 from \"./NewUserDialog.vue?vue&type=style&index=0&id=32af3da3&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 \"32af3da3\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcDialog',_vm._g({staticClass:\"dialog\",attrs:{\"size\":\"small\",\"name\":_vm.t('settings', 'New account'),\"out-transition\":\"\"},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('NcButton',{staticClass:\"dialog__submit\",attrs:{\"data-test\":\"submit\",\"form\":\"new-user-form\",\"variant\":\"primary\",\"type\":\"submit\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Add new account'))+\"\\n\\t\\t\")])]},proxy:true}])},_vm.$listeners),[_c('form',{staticClass:\"dialog__form\",attrs:{\"id\":\"new-user-form\",\"data-test\":\"form\",\"disabled\":_vm.loading.all},on:{\"submit\":function($event){$event.preventDefault();return _vm.createUser.apply(null, arguments)}}},[_c('UserFormFields',{ref:\"fields\",attrs:{\"field-config\":_vm.fieldConfig,\"quota-options\":_vm.quotaOptions}})],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-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserListFooter.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-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserListFooter.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:\"footer\"},[_c('th',{attrs:{\"scope\":\"row\"}},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(_vm._s(_vm.t('settings', 'Total rows summary')))])]),_vm._v(\" \"),_c('td',{staticClass:\"footer__cell footer__cell--loading\"},[(_vm.loading)?_c('NcLoadingIcon',{attrs:{\"title\":_vm.t('settings', 'Loading accounts …'),\"size\":32}}):_vm._e()],1),_vm._v(\" \"),_c('td',{staticClass:\"footer__cell footer__cell--count footer__cell--multiline\"},[_c('span',{attrs:{\"aria-describedby\":\"user-count-desc\"}},[_vm._v(_vm._s(_vm.userCount))]),_vm._v(\" \"),_c('span',{staticClass:\"hidden-visually\",attrs:{\"id\":\"user-count-desc\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Scroll to load more rows'))+\"\\n\\t\\t\")])])])\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!./UserListFooter.vue?vue&type=style&index=0&id=4ff6ba29&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!./UserListFooter.vue?vue&type=style&index=0&id=4ff6ba29&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserListFooter.vue?vue&type=template&id=4ff6ba29&scoped=true\"\nimport script from \"./UserListFooter.vue?vue&type=script&lang=ts\"\nexport * from \"./UserListFooter.vue?vue&type=script&lang=ts\"\nimport style0 from \"./UserListFooter.vue?vue&type=style&index=0&id=4ff6ba29&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 \"4ff6ba29\",\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-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserListHeader.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-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserListHeader.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:\"header\"},[_c('th',{staticClass:\"header__cell header__cell--avatar\",attrs:{\"data-cy-user-list-header-avatar\":\"\",\"scope\":\"col\"}},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Avatar'))+\"\\n\\t\\t\")])]),_vm._v(\" \"),_c('th',{staticClass:\"header__cell header__cell--displayname\",attrs:{\"data-cy-user-list-header-displayname\":\"\",\"scope\":\"col\"}},[_c('strong',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Display name'))+\"\\n\\t\\t\")])]),_vm._v(\" \"),_c('th',{staticClass:\"header__cell header__cell--username\",attrs:{\"data-cy-user-list-header-username\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Account name'))+\"\\n\\t\\t\")])]),_vm._v(\" \"),_c('th',{staticClass:\"header__cell\",attrs:{\"data-cy-user-list-header-email\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(_vm._s(_vm.t('settings', 'Email')))])]),_vm._v(\" \"),_c('th',{staticClass:\"header__cell header__cell--groups\",attrs:{\"data-cy-user-list-header-groups\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(_vm._s(_vm.t('settings', 'Groups')))])]),_vm._v(\" \"),(_vm.settings.isAdmin || _vm.settings.isDelegatedAdmin)?_c('th',{staticClass:\"header__cell header__cell--large\",attrs:{\"data-cy-user-list-header-subadmins\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(_vm._s(_vm.t('settings', 'Group admin for')))])]):_vm._e(),_vm._v(\" \"),_c('th',{staticClass:\"header__cell\",attrs:{\"data-cy-user-list-header-quota\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(_vm._s(_vm.t('settings', 'Quota')))])]),_vm._v(\" \"),(_vm.showConfig.showLanguages)?_c('th',{staticClass:\"header__cell header__cell--large\",attrs:{\"data-cy-user-list-header-languages\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(_vm._s(_vm.t('settings', 'Language')))])]):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showUserBackend || _vm.showConfig.showStoragePath)?_c('th',{staticClass:\"header__cell header__cell--large\",attrs:{\"data-cy-user-list-header-storage-location\":\"\",\"scope\":\"col\"}},[(_vm.showConfig.showUserBackend)?_c('span',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Account backend'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showStoragePath)?_c('span',{staticClass:\"header__subtitle\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Storage location'))+\"\\n\\t\\t\")]):_vm._e()]):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showFirstLogin)?_c('th',{staticClass:\"header__cell\",attrs:{\"data-cy-user-list-header-first-login\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(_vm._s(_vm.t('settings', 'First login')))])]):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showLastLogin)?_c('th',{staticClass:\"header__cell\",attrs:{\"data-cy-user-list-header-last-login\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(_vm._s(_vm.t('settings', 'Last login')))])]):_vm._e(),_vm._v(\" \"),_c('th',{staticClass:\"header__cell header__cell--large header__cell--fill\",attrs:{\"data-cy-user-list-header-manager\":\"\",\"scope\":\"col\"}},[_c('span',[_vm._v(_vm._s(_vm.t('settings', 'Manager')))])]),_vm._v(\" \"),_c('th',{staticClass:\"header__cell header__cell--actions\",attrs:{\"data-cy-user-list-header-actions\":\"\",\"scope\":\"col\"}},[_c('span',{staticClass:\"hidden-visually\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Account actions'))+\"\\n\\t\\t\")])])])\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!./UserListHeader.vue?vue&type=style&index=0&id=53c64244&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!./UserListHeader.vue?vue&type=style&index=0&id=53c64244&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserListHeader.vue?vue&type=template&id=53c64244&scoped=true\"\nimport script from \"./UserListHeader.vue?vue&type=script&lang=ts\"\nexport * from \"./UserListHeader.vue?vue&type=script&lang=ts\"\nimport style0 from \"./UserListHeader.vue?vue&type=style&index=0&id=53c64244&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 \"53c64244\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('tr',{staticClass:\"user-list__row\",attrs:{\"data-cy-user-row\":_vm.user.id}},[_c('td',{staticClass:\"row__cell row__cell--avatar\",attrs:{\"data-cy-user-list-cell-avatar\":\"\"}},[(_vm.isLoadingUser)?_c('NcLoadingIcon',{attrs:{\"name\":_vm.t('settings', 'Loading account …'),\"size\":32}}):(_vm.visible)?_c('NcAvatar',{attrs:{\"disable-menu\":\"\",\"hide-status\":\"\",\"user\":_vm.user.id}}):_vm._e()],1),_vm._v(\" \"),_c('td',{staticClass:\"row__cell row__cell--displayname\",attrs:{\"data-cy-user-list-cell-displayname\":\"\"}},[(!_vm.isObfuscated)?_c('strong',{attrs:{\"title\":_vm.user.displayname?.length > 20 ? _vm.user.displayname : null}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.user.displayname)+\"\\n\\t\\t\")]):_vm._e()]),_vm._v(\" \"),_c('td',{staticClass:\"row__cell row__cell--username\",attrs:{\"data-cy-user-list-cell-username\":\"\"}},[_c('span',{staticClass:\"row__subtitle\"},[_vm._v(_vm._s(_vm.user.id))])]),_vm._v(\" \"),_c('td',{staticClass:\"row__cell\",attrs:{\"data-cy-user-list-cell-email\":\"\"}},[(!_vm.isObfuscated)?_c('span',{attrs:{\"title\":_vm.user.email?.length > 20 ? _vm.user.email : null}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.user.email)+\"\\n\\t\\t\")]):_vm._e()]),_vm._v(\" \"),_c('td',{staticClass:\"row__cell row__cell--groups row__cell--multiline\",attrs:{\"data-cy-user-list-cell-groups\":\"\"}},[(!_vm.isObfuscated)?_c('span',{attrs:{\"title\":_vm.userGroupsLabels?.length > 40 ? _vm.userGroupsLabels : null}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.userGroupsLabels)+\"\\n\\t\\t\")]):_vm._e()]),_vm._v(\" \"),(_vm.settings.isAdmin || _vm.settings.isDelegatedAdmin)?_c('td',{staticClass:\"row__cell row__cell--large row__cell--multiline\",attrs:{\"data-cy-user-list-cell-subadmins\":\"\"}},[(!_vm.isObfuscated)?_c('span',{attrs:{\"title\":_vm.userSubAdminGroupsLabels?.length > 40 ? _vm.userSubAdminGroupsLabels : null}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.userSubAdminGroupsLabels)+\"\\n\\t\\t\")]):_vm._e()]):_vm._e(),_vm._v(\" \"),_c('td',{staticClass:\"row__cell\",attrs:{\"data-cy-user-list-cell-quota\":\"\"}},[(!_vm.isObfuscated)?[_c('span',{attrs:{\"id\":'quota-progress' + _vm.uniqueId}},[_vm._v(_vm._s(_vm.userQuota)+\" (\"+_vm._s(_vm.usedSpace)+\")\")]),_vm._v(\" \"),_c('NcProgressBar',{staticClass:\"row__progress\",class:{\n\t\t\t\t\t'row__progress--warn': _vm.usedQuota > 80,\n\t\t\t\t},attrs:{\"aria-labelledby\":'quota-progress' + _vm.uniqueId,\"value\":_vm.usedQuota}})]:_vm._e()],2),_vm._v(\" \"),(_vm.showConfig.showLanguages)?_c('td',{staticClass:\"row__cell row__cell--large\",attrs:{\"data-cy-user-list-cell-language\":\"\"}},[(!_vm.isObfuscated)?_c('span',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.userLanguage.name)+\"\\n\\t\\t\")]):_vm._e()]):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showUserBackend || _vm.showConfig.showStoragePath)?_c('td',{staticClass:\"row__cell row__cell--large\",attrs:{\"data-cy-user-list-cell-storage-location\":\"\"}},[(!_vm.isObfuscated)?[(_vm.showConfig.showUserBackend)?_c('span',[_vm._v(_vm._s(_vm.user.backend))]):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showStoragePath)?_c('span',{staticClass:\"row__subtitle\",attrs:{\"title\":_vm.user.storageLocation}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.user.storageLocation)+\"\\n\\t\\t\\t\")]):_vm._e()]:_vm._e()],2):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showFirstLogin)?_c('td',{staticClass:\"row__cell\",attrs:{\"data-cy-user-list-cell-first-login\":\"\"}},[(!_vm.isObfuscated)?_c('span',[_vm._v(_vm._s(_vm.userFirstLogin))]):_vm._e()]):_vm._e(),_vm._v(\" \"),(_vm.showConfig.showLastLogin)?_c('td',{staticClass:\"row__cell\",attrs:{\"title\":_vm.userLastLoginTooltip,\"data-cy-user-list-cell-last-login\":\"\"}},[(!_vm.isObfuscated)?_c('span',[_vm._v(_vm._s(_vm.userLastLogin))]):_vm._e()]):_vm._e(),_vm._v(\" \"),_c('td',{staticClass:\"row__cell row__cell--large row__cell--fill\",attrs:{\"data-cy-user-list-cell-manager\":\"\"}},[(!_vm.isObfuscated)?_c('span',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.user.manager)+\"\\n\\t\\t\")]):_vm._e()]),_vm._v(\" \"),_c('td',{staticClass:\"row__cell row__cell--actions\",attrs:{\"data-cy-user-list-cell-actions\":\"\"}},[(_vm.visible && !_vm.isObfuscated && _vm.canEdit && !_vm.loading.all)?_c('UserRowActions',{attrs:{\"actions\":_vm.userActions,\"disabled\":_vm.isLoadingField,\"user\":_vm.user},on:{\"update:edit\":_vm.toggleEdit}}):_vm._e()],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { N as NcActionButton } from \"./chunks/NcActionButton-1gSJfFUC.mjs\";\nimport { N as NcActionButtonGroup } from \"./chunks/NcActionButtonGroup-eZxqibUd.mjs\";\nimport NcActionCaption from \"./Components/NcActionCaption.mjs\";\nimport { N as NcActionCheckbox } from \"./chunks/NcActionCheckbox-23CmleUh.mjs\";\nimport { N as NcActionInput } from \"./chunks/NcActionInput-UPwE2Dky.mjs\";\nimport NcActionLink from \"./Components/NcActionLink.mjs\";\nimport { N as NcActionRadio } from \"./chunks/NcActionRadio-Dd3CsuiD.mjs\";\nimport NcActionRouter from \"./Components/NcActionRouter.mjs\";\nimport { N as NcActions } from \"./chunks/NcActions-BcLis_nr.mjs\";\nimport NcActionSeparator from \"./Components/NcActionSeparator.mjs\";\nimport NcActionText from \"./Components/NcActionText.mjs\";\nimport { N as NcActionTextEditable } from \"./chunks/NcActionTextEditable-CIsAP-pp.mjs\";\nimport { N as NcAppContent } from \"./chunks/NcAppContent-CeVqX0gV.mjs\";\nimport NcAppContentDetails from \"./Components/NcAppContentDetails.mjs\";\nimport NcAppContentList from \"./Components/NcAppContentList.mjs\";\nimport { N as NcAppNavigation } from \"./chunks/NcAppNavigation-BfzJA6cb.mjs\";\nimport { N as NcAppNavigationCaption } from \"./chunks/NcAppNavigationCaption-3YHrxAYS.mjs\";\nimport NcAppNavigationIconBullet from \"./Components/NcAppNavigationIconBullet.mjs\";\nimport { N as NcAppNavigationItem } from \"./chunks/NcAppNavigationItem-D30ztZfZ.mjs\";\nimport NcAppNavigationList from \"./Components/NcAppNavigationList.mjs\";\nimport { N as NcAppNavigationNew } from \"./chunks/NcAppNavigationNew-Ce_TheyK.mjs\";\nimport { N as NcAppNavigationNewItem } from \"./chunks/NcAppNavigationNewItem-BskLwwWH.mjs\";\nimport { N as NcAppNavigationSearch } from \"./chunks/NcAppNavigationSearch-CkcBGG0H.mjs\";\nimport { N as NcAppNavigationSettings } from \"./chunks/NcAppNavigationSettings-BjyBA5Mj.mjs\";\nimport NcAppNavigationSpacer from \"./Components/NcAppNavigationSpacer.mjs\";\nimport { N as NcAppSettingsDialog } from \"./chunks/NcAppSettingsDialog-vBeCGFqk.mjs\";\nimport { N as NcAppSettingsSection } from \"./chunks/NcAppSettingsSection-BjQllLEA.mjs\";\nimport { N as NcAppSettingsShortcutsSection } from \"./chunks/NcAppSettingsShortcutsSection-DblUBaWP.mjs\";\nimport { N as NcAppSidebar } from \"./chunks/NcAppSidebar-Cx0PlofZ.mjs\";\nimport { N as NcAppSidebarHeader } from \"./chunks/NcAppSidebarHeader-CBE4tNYb.mjs\";\nimport NcAppSidebarTab from \"./Components/NcAppSidebarTab.mjs\";\nimport { N as NcAssistantButton } from \"./chunks/NcAssistantButton-D1Miejvu.mjs\";\nimport NcAssistantContent from \"./Components/NcAssistantContent.mjs\";\nimport { N as NcAssistantIcon } from \"./chunks/NcAssistantIcon-DCx6AaSW.mjs\";\nimport { N as NcAvatar } from \"./chunks/NcAvatar-DC2fiCH-.mjs\";\nimport { u } from \"./chunks/NcAvatar-DC2fiCH-.mjs\";\nimport { N as NcBlurHash } from \"./chunks/NcBlurHash-KSj0HXbX.mjs\";\nimport { N as NcBreadcrumb } from \"./chunks/NcBreadcrumb-VwnF27KB.mjs\";\nimport { N as NcBreadcrumbs } from \"./chunks/NcBreadcrumbs-CpXJ-OQ1.mjs\";\nimport { N as NcButton } from \"./chunks/NcButton-BaZAY-tN.mjs\";\nimport { N as NcCheckboxRadioSwitch } from \"./chunks/NcCheckboxRadioSwitch-DJmw98x9.mjs\";\nimport { N as NcCollectionList } from \"./chunks/NcCollectionList-U0EoWgeN.mjs\";\nimport { N as NcColorPicker } from \"./chunks/NcColorPicker-BfApfazi.mjs\";\nimport { N as NcContent } from \"./chunks/NcContent-DFOsZ6pm.mjs\";\nimport { N as NcCounterBubble } from \"./chunks/NcCounterBubble-oxV8oMlX.mjs\";\nimport { N as NcDashboardWidget } from \"./chunks/NcDashboardWidget-Cp3DMHz7.mjs\";\nimport { N as NcDashboardWidgetItem } from \"./chunks/NcDashboardWidgetItem-BCjppWNJ.mjs\";\nimport { N as NcDateTime } from \"./chunks/NcDateTime-enXYuwj8.mjs\";\nimport NcDateTimePicker from \"./Components/NcDateTimePicker.mjs\";\nimport NcDateTimePickerNative from \"./Components/NcDateTimePickerNative.mjs\";\nimport { N as NcDialog } from \"./chunks/NcDialog-CDFWleNp.mjs\";\nimport { N as NcDialogButton } from \"./chunks/NcDialogButton-tB5RGMME.mjs\";\nimport NcEllipsisedOption from \"./Components/NcEllipsisedOption.mjs\";\nimport { N as NcEmojiPicker } from \"./chunks/NcEmojiPicker-Cw593Jp6.mjs\";\nimport NcEmptyContent from \"./Components/NcEmptyContent.mjs\";\nimport { N as NcFilePicker } from \"./chunks/NcFilePicker-CDHKrfPj.mjs\";\nimport { N as NcFormBox } from \"./chunks/NcFormBox-DtoCXLMx.mjs\";\nimport { N as NcFormBoxButton } from \"./chunks/NcFormBoxButton-BQi11xQX.mjs\";\nimport { N as NcFormBoxCopyButton } from \"./chunks/NcFormBoxCopyButton-BkunQ3me.mjs\";\nimport { N as NcFormBoxSwitch } from \"./chunks/NcFormBoxSwitch-E6sxPL4n.mjs\";\nimport { N as NcFormGroup } from \"./chunks/NcFormGroup-DblLoFMf.mjs\";\nimport NcGuestContent from \"./Components/NcGuestContent.mjs\";\nimport { N as NcHeaderButton } from \"./chunks/NcHeaderButton-BI15lyn_.mjs\";\nimport { N as NcHeaderMenu } from \"./chunks/NcHeaderMenu-B2gYavD4.mjs\";\nimport { N as NcHighlight } from \"./chunks/index-CxTT94_h.mjs\";\nimport { N as NcHotkey } from \"./chunks/NcHotkey-CLLtt9LG.mjs\";\nimport { N as NcHotkeyList } from \"./chunks/NcHotkeyList-Co7MBL5U.mjs\";\nimport { N as NcIconSvgWrapper } from \"./chunks/NcIconSvgWrapper-Bui9PhAS.mjs\";\nimport { N as NcInputField } from \"./chunks/NcInputField-Cfm1bJR4.mjs\";\nimport { N as NcListItem } from \"./chunks/NcListItem-RKTfRg06.mjs\";\nimport { N as NcListItemIcon } from \"./chunks/NcListItemIcon-D49wESTI.mjs\";\nimport NcLoadingIcon from \"./Components/NcLoadingIcon.mjs\";\nimport NcModal from \"./Components/NcModal.mjs\";\nimport NcNoteCard from \"./Components/NcNoteCard.mjs\";\nimport { N as NcPasswordField } from \"./chunks/NcPasswordField-lE4m20vf.mjs\";\nimport { N as NcPopover } from \"./chunks/NcPopover-UAg26Qdd.mjs\";\nimport { N as NcProgressBar } from \"./chunks/NcProgressBar-D7zYeXBH.mjs\";\nimport { N as NcRadioGroup } from \"./chunks/NcRadioGroup-BbBX9X2J.mjs\";\nimport { N as NcRadioGroupButton } from \"./chunks/NcRadioGroupButton-BkxlxjIA.mjs\";\nimport { N as NcRelatedResourcesPanel } from \"./chunks/NcRelatedResourcesPanel-C2sLodV8.mjs\";\nimport { N as NcMentionBubble } from \"./chunks/index-TmAR7I2T.mjs\";\nimport { r } from \"./chunks/index-TmAR7I2T.mjs\";\nimport { N as NcAutoCompleteResult, a as NcRichContenteditable } from \"./chunks/NcRichContenteditable-SA1zbfkk.mjs\";\nimport \"@nextcloud/auth\";\nimport \"@nextcloud/axios\";\nimport \"@nextcloud/router\";\nimport \"@nextcloud/sharing/public\";\nimport \"@vueuse/core\";\nimport \"vue\";\nimport \"vue-router\";\nimport { a, g, b, c, s, d } from \"./chunks/referencePickerModal-DD_GM6xV.mjs\";\nimport { N, h, c as c2, i, e, r as r2, f, a as a2 } from \"./chunks/customPickerElements-DLFtgReB.mjs\";\nimport \"unist-builder\";\nimport \"unist-util-visit\";\nimport \"./chunks/logger-D3RVzcfQ.mjs\";\nimport { N as NcRichText } from \"./chunks/NcRichText-rNfwY_Oc.mjs\";\nimport { N as NcSelect } from \"./chunks/NcSelect-CbWXsDdZ.mjs\";\nimport { N as NcTextField } from \"./chunks/NcTextField-DZHP0Dfw.mjs\";\nimport \"@nextcloud/event-bus\";\nimport { N as NcSavingIndicatorIcon } from \"./chunks/NcSavingIndicatorIcon-U7AIamCl.mjs\";\nimport { N as NcSelectTags } from \"./chunks/NcSelectTags-CqVn5iU9.mjs\";\nimport { N as NcSelectUsers } from \"./chunks/NcSelectUsers-DGnn4yBW.mjs\";\nimport { N as NcSettingsInputText } from \"./chunks/NcSettingsInputText-BwnkZzWL.mjs\";\nimport { N as NcSettingsSection } from \"./chunks/NcSettingsSection-Dz_b9rcq.mjs\";\nimport { N as NcSettingsSelectGroup } from \"./chunks/NcSettingsSelectGroup-BaSHNm1x.mjs\";\nimport { N as NcTextArea } from \"./chunks/NcTextArea-fGUiK7p2.mjs\";\nimport { N as NcThemeProvider } from \"./chunks/NcThemeProvider-BA_zMjAf.mjs\";\nimport { N as NcTimezonePicker } from \"./chunks/NcTimezonePicker-w7XtRhLb.mjs\";\nimport { N as NcUserBubble } from \"./chunks/NcUserBubble-CIOqCO9S.mjs\";\nimport { N as NcUserStatusIcon } from \"./chunks/NcUserStatusIcon-Cq1RnTfF.mjs\";\nimport NcVNodes from \"./Components/NcVNodes.mjs\";\nimport { useFormatDateTime, useFormatRelativeTime, useFormatTime } from \"./Composables/useFormatDateTime.mjs\";\nimport { useHotKey } from \"./Composables/useHotKey.mjs\";\nimport { useIsDarkTheme, useIsDarkThemeElement } from \"./Composables/useIsDarkTheme.mjs\";\nimport { isFullscreenState, useIsFullscreen } from \"./Composables/useIsFullscreen.mjs\";\nimport { MOBILE_BREAKPOINT, MOBILE_SMALL_BREAKPOINT, isMobileState, useIsMobile, useIsSmallMobile } from \"./Composables/useIsMobile.mjs\";\nimport { isA11yActivation } from \"./Functions/a11y.mjs\";\nimport { getEnabledContactsMenuActions, registerContactsMenuAction } from \"./Functions/contactsMenu.mjs\";\nimport { spawnDialog } from \"./Functions/dialog.mjs\";\nimport { E, a as a3, e as e2, g as g2, s as s2 } from \"./chunks/emoji-BgZdRy3v.mjs\";\nimport { checkIfDarkTheme, isDarkTheme } from \"./Functions/isDarkTheme.mjs\";\nimport { preloadImage } from \"./Functions/preloadImage.mjs\";\nimport { usernameToColor } from \"./Functions/usernameToColor.mjs\";\nimport directive from \"./Directives/Focus.mjs\";\nimport directive$1 from \"./Directives/Linkify.mjs\";\nimport \"./Directives/Tooltip.mjs\";\nimport { default as default2 } from \"./Mixins/clickOutsideOptions.mjs\";\nimport { default as default3 } from \"./Mixins/isFullscreen.mjs\";\nimport { default as default4 } from \"./Mixins/isMobile.mjs\";\nimport { VTooltip } from \"floating-vue\";\nimport { VTooltip as VTooltip2 } from \"floating-vue\";\nconst NcComponents = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n NcActionButton,\n NcActionButtonGroup,\n NcActionCaption,\n NcActionCheckbox,\n NcActionInput,\n NcActionLink,\n NcActionRadio,\n NcActionRouter,\n NcActionSeparator,\n NcActionText,\n NcActionTextEditable,\n NcActions,\n NcAppContent,\n NcAppContentDetails,\n NcAppContentList,\n NcAppNavigation,\n NcAppNavigationCaption,\n NcAppNavigationIconBullet,\n NcAppNavigationItem,\n NcAppNavigationList,\n NcAppNavigationNew,\n NcAppNavigationNewItem,\n NcAppNavigationSearch,\n NcAppNavigationSettings,\n NcAppNavigationSpacer,\n NcAppSettingsDialog,\n NcAppSettingsSection,\n NcAppSettingsSectionShortcuts: NcAppSettingsShortcutsSection,\n NcAppSettingsShortcutsSection,\n NcAppSidebar,\n NcAppSidebarHeader,\n NcAppSidebarTab,\n NcAssistantButton,\n NcAssistantContent,\n NcAssistantIcon,\n NcAutoCompleteResult,\n NcAvatar,\n NcBlurHash,\n NcBreadcrumb,\n NcBreadcrumbs,\n NcButton,\n NcCheckboxRadioSwitch,\n NcCollectionList,\n NcColorPicker,\n NcContent,\n NcCounterBubble,\n NcDashboardWidget,\n NcDashboardWidgetItem,\n NcDateTime,\n NcDateTimePicker,\n NcDateTimePickerNative,\n NcDialog,\n NcDialogButton,\n NcEllipsisedOption,\n NcEmojiPicker,\n NcEmptyContent,\n NcFilePicker,\n NcFormBox,\n NcFormBoxButton,\n NcFormBoxCopyButton,\n NcFormBoxSwitch,\n NcFormGroup,\n NcGuestContent,\n NcHeaderButton,\n NcHeaderMenu,\n NcHighlight,\n NcHotkey,\n NcHotkeyList,\n NcIconSvgWrapper,\n NcInputField,\n NcListItem,\n NcListItemIcon,\n NcLoadingIcon,\n NcMentionBubble,\n NcModal,\n NcNoteCard,\n NcPasswordField,\n NcPopover,\n NcProgressBar,\n NcRadioGroup,\n NcRadioGroupButton,\n NcRelatedResourcesPanel,\n NcRichContenteditable,\n NcRichText,\n NcSavingIndicatorIcon,\n NcSelect,\n NcSelectTags,\n NcSelectUsers,\n NcSettingsInputText,\n NcSettingsSection,\n NcSettingsSelectGroup,\n NcTextArea,\n NcTextField,\n NcThemeProvider,\n NcTimezonePicker,\n NcUserBubble,\n NcUserStatusIcon,\n NcVNodes\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst NcDirectives = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n Focus: directive,\n Linkify: directive$1,\n Tooltip: VTooltip\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst NextcloudVuePlugin = {\n install(Vue) {\n Object.entries(NcComponents).forEach(([name, component]) => {\n Vue.component(component.name || name, component);\n });\n Object.entries(NcDirectives).forEach(([name, directive2]) => {\n Vue.directive(name, directive2);\n });\n }\n};\nexport {\n E as EmojiSkinTone,\n directive as Focus,\n directive$1 as Linkify,\n MOBILE_BREAKPOINT,\n MOBILE_SMALL_BREAKPOINT,\n NcActionButton,\n NcActionButtonGroup,\n NcActionCaption,\n NcActionCheckbox,\n NcActionInput,\n NcActionLink,\n NcActionRadio,\n NcActionRouter,\n NcActionSeparator,\n NcActionText,\n NcActionTextEditable,\n NcActions,\n NcAppContent,\n NcAppContentDetails,\n NcAppContentList,\n NcAppNavigation,\n NcAppNavigationCaption,\n NcAppNavigationIconBullet,\n NcAppNavigationItem,\n NcAppNavigationList,\n NcAppNavigationNew,\n NcAppNavigationNewItem,\n NcAppNavigationSearch,\n NcAppNavigationSettings,\n NcAppNavigationSpacer,\n NcAppSettingsDialog,\n NcAppSettingsSection,\n NcAppSettingsShortcutsSection as NcAppSettingsSectionShortcuts,\n NcAppSettingsShortcutsSection,\n NcAppSidebar,\n NcAppSidebarHeader,\n NcAppSidebarTab,\n NcAssistantButton,\n NcAssistantContent,\n NcAssistantIcon,\n NcAutoCompleteResult,\n NcAvatar,\n NcBlurHash,\n NcBreadcrumb,\n NcBreadcrumbs,\n NcButton,\n NcCheckboxRadioSwitch,\n NcCollectionList,\n NcColorPicker,\n NcContent,\n NcCounterBubble,\n N as NcCustomPickerRenderResult,\n NcDashboardWidget,\n NcDashboardWidgetItem,\n NcDateTime,\n NcDateTimePicker,\n NcDateTimePickerNative,\n NcDialog,\n NcDialogButton,\n NcEllipsisedOption,\n NcEmojiPicker,\n NcEmptyContent,\n NcFilePicker,\n NcFormBox,\n NcFormBoxButton,\n NcFormBoxCopyButton,\n NcFormBoxSwitch,\n NcFormGroup,\n NcGuestContent,\n NcHeaderButton,\n NcHeaderMenu,\n NcHighlight,\n NcHotkey,\n NcHotkeyList,\n NcIconSvgWrapper,\n NcInputField,\n NcListItem,\n NcListItemIcon,\n NcLoadingIcon,\n NcMentionBubble,\n NcModal,\n NcNoteCard,\n NcPasswordField,\n NcPopover,\n NcProgressBar,\n NcRadioGroup,\n NcRadioGroupButton,\n NcRelatedResourcesPanel,\n NcRichContenteditable,\n NcRichText,\n NcSavingIndicatorIcon,\n NcSelect,\n NcSelectTags,\n NcSelectUsers,\n NcSettingsInputText,\n NcSettingsSection,\n NcSettingsSelectGroup,\n NcTextArea,\n NcTextField,\n NcThemeProvider,\n NcTimezonePicker,\n NcUserBubble,\n NcUserStatusIcon,\n NcVNodes,\n NextcloudVuePlugin,\n VTooltip2 as Tooltip,\n a as anyLinkProviderId,\n checkIfDarkTheme,\n default2 as clickOutsideOptions,\n a3 as emojiAddRecent,\n e2 as emojiSearch,\n g2 as getCurrentSkinTone,\n getEnabledContactsMenuActions,\n g as getLinkWithPicker,\n b as getProvider,\n c as getProviders,\n h as hasInteractiveView,\n isA11yActivation,\n c2 as isCustomPickerElementRegistered,\n isDarkTheme,\n default3 as isFullscreen,\n isFullscreenState,\n default4 as isMobile,\n isMobileState,\n i as isWidgetRegistered,\n preloadImage,\n registerContactsMenuAction,\n e as registerCustomPickerElement,\n r2 as registerWidget,\n f as renderCustomPickerElement,\n a2 as renderWidget,\n r as richEditor,\n s as searchProvider,\n s2 as setCurrentSkinTone,\n d as sortProviders,\n spawnDialog,\n useFormatDateTime,\n useFormatRelativeTime,\n useFormatTime,\n useHotKey,\n useIsDarkTheme,\n useIsDarkThemeElement,\n useIsFullscreen,\n useIsMobile,\n useIsSmallMobile,\n u as userStatus,\n usernameToColor\n};\n//# sourceMappingURL=index.mjs.map\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcActions',{attrs:{\"aria-label\":_vm.t('settings', 'Toggle account actions menu'),\"disabled\":_vm.disabled,\"inline\":1}},[_c('NcActionButton',{attrs:{\"data-cy-user-list-action-edit\":\"\",\"disabled\":_vm.disabled},on:{\"click\":function($event){return _vm.$emit('update:edit', true)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"svg\":_vm.SvgPencil,\"aria-hidden\":\"true\"}})]},proxy:true}])},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('settings', 'Edit'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_vm._l((_vm.enabledActions),function({ action, icon, text },index){return _c('NcActionButton',{key:index,attrs:{\"disabled\":_vm.disabled,\"aria-label\":text,\"icon\":icon,\"close-after-click\":\"\"},on:{\"click\":(event) => action(event, { ..._vm.user })},scopedSlots:_vm._u([(_vm.isSvg(icon))?{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"svg\":icon,\"aria-hidden\":\"true\"}})]},proxy:true}:null],null,true)},[_vm._v(\"\\n\\t\\t\"+_vm._s(text)+\"\\n\\t\\t\")])})],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-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserRowActions.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-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserRowActions.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./UserRowActions.vue?vue&type=template&id=a72dfc28\"\nimport script from \"./UserRowActions.vue?vue&type=script&lang=ts\"\nexport * from \"./UserRowActions.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\n\n\n\n\n\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserRow.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!./UserRow.vue?vue&type=script&lang=js\"","\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!./UserRow.vue?vue&type=style&index=0&id=78b3749c&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!./UserRow.vue?vue&type=style&index=0&id=78b3749c&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserRow.vue?vue&type=template&id=78b3749c&scoped=true\"\nimport script from \"./UserRow.vue?vue&type=script&lang=js\"\nexport * from \"./UserRow.vue?vue&type=script&lang=js\"\nimport style0 from \"./UserRow.vue?vue&type=style&index=0&id=78b3749c&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 \"78b3749c\",\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('table',{staticClass:\"user-list\"},[_vm._t(\"before\"),_vm._v(\" \"),_c('thead',{ref:\"thead\",staticClass:\"user-list__header\",attrs:{\"role\":\"rowgroup\"}},[_vm._t(\"header\")],2),_vm._v(\" \"),_c('tbody',{staticClass:\"user-list__body\",style:(_vm.tbodyStyle)},_vm._l((_vm.renderedItems),function(item,i){return _c(_vm.dataComponent,_vm._b({key:item[_vm.dataKey],tag:\"component\",attrs:{\"user\":item,\"visible\":(i >= _vm.bufferItems || _vm.index <= _vm.bufferItems) && (i < _vm.shownItems - _vm.bufferItems)}},'component',_vm.extraProps,false))}),1),_vm._v(\" \"),_c('tfoot',{directives:[{name:\"element-visibility\",rawName:\"v-element-visibility\",value:(_vm.handleFooterVisibility),expression:\"handleFooterVisibility\"}],ref:\"tfoot\",staticClass:\"user-list__footer\",attrs:{\"role\":\"rowgroup\"}},[_vm._t(\"footer\")],2)],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-6.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-6.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VirtualList.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!./VirtualList.vue?vue&type=style&index=0&id=65d37ac4&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!./VirtualList.vue?vue&type=style&index=0&id=65d37ac4&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./VirtualList.vue?vue&type=template&id=65d37ac4&scoped=true\"\nimport script from \"./VirtualList.vue?vue&type=script&lang=ts\"\nexport * from \"./VirtualList.vue?vue&type=script&lang=ts\"\nimport style0 from \"./VirtualList.vue?vue&type=style&index=0&id=65d37ac4&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 \"65d37ac4\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserList.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!./UserList.vue?vue&type=script&lang=js\"","\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!./UserList.vue?vue&type=style&index=0&id=989d7232&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!./UserList.vue?vue&type=style&index=0&id=989d7232&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserList.vue?vue&type=template&id=989d7232&scoped=true\"\nimport script from \"./UserList.vue?vue&type=script&lang=js\"\nexport * from \"./UserList.vue?vue&type=script&lang=js\"\nimport style0 from \"./UserList.vue?vue&type=style&index=0&id=989d7232&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 \"989d7232\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('Fragment',[(_vm.showConfig.showNewUserForm)?_c('NewUserDialog',{attrs:{\"loading\":_vm.loading,\"new-user\":_vm.newUser,\"quota-options\":_vm.quotaOptions},on:{\"closing\":_vm.closeDialog}}):_vm._e(),_vm._v(\" \"),(_vm.editingUser)?_c('EditUserDialog',{attrs:{\"user\":_vm.editingUser,\"quota-options\":_vm.quotaOptions},on:{\"closing\":function($event){_vm.editingUser = null}}}):_vm._e(),_vm._v(\" \"),(_vm.filteredUsers.length === 0)?_c('NcEmptyContent',{staticClass:\"empty\",attrs:{\"name\":_vm.isInitialLoad && _vm.loading.users ? null : _vm.t('settings', 'No accounts')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.isInitialLoad && _vm.loading.users)?_c('NcLoadingIcon',{attrs:{\"name\":_vm.t('settings', 'Loading accounts …'),\"size\":64}}):_c('NcIconSvgWrapper',{attrs:{\"path\":_vm.mdiAccountGroupOutline,\"size\":64}})]},proxy:true}],null,false,1085698719)}):_c('VirtualList',{style:(_vm.style),attrs:{\"data-component\":_vm.UserRow,\"data-sources\":_vm.filteredUsers,\"data-key\":\"id\",\"data-cy-user-list\":\"\",\"item-height\":_vm.rowHeight,\"extra-props\":{\n\t\t\tusers: _vm.users,\n\t\t\tsettings: _vm.settings,\n\t\t\tquotaOptions: _vm.quotaOptions,\n\t\t\tlanguages: _vm.languages,\n\t\t\texternalActions: _vm.externalActions,\n\t\t\tonEditUser: _vm.openEditDialog,\n\t\t}},on:{\"scroll-end\":_vm.handleScrollEnd},scopedSlots:_vm._u([{key:\"before\",fn:function(){return [_c('caption',{staticClass:\"hidden-visually\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'List of accounts. This list is not fully rendered for performance reasons. The accounts will be rendered as you navigate through the list.'))+\"\\n\\t\\t\\t\")])]},proxy:true},{key:\"header\",fn:function(){return [_c('UserListHeader')]},proxy:true},{key:\"footer\",fn:function(){return [_c('UserListFooter',{attrs:{\"loading\":_vm.loading.users,\"filtered-users\":_vm.filteredUsers}})]},proxy:true}])})],1)\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!./UserManagement.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!./UserManagement.vue?vue&type=script&lang=js\"","\n\n\n\n\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!./UserManagement.vue?vue&type=style&index=0&id=6c72a095&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!./UserManagement.vue?vue&type=style&index=0&id=6c72a095&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserManagement.vue?vue&type=template&id=6c72a095&scoped=true\"\nimport script from \"./UserManagement.vue?vue&type=script&lang=js\"\nexport * from \"./UserManagement.vue?vue&type=script&lang=js\"\nimport style0 from \"./UserManagement.vue?vue&type=style&index=0&id=6c72a095&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 \"6c72a095\",\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(_setup.NcAppNavigation,{staticClass:\"account-management__navigation\",attrs:{\"aria-label\":_setup.t('settings', 'Account management')},scopedSlots:_vm._u([{key:\"footer\",fn:function(){return [_c(_setup.NcButton,{staticClass:\"account-management__settings-toggle\",attrs:{\"variant\":\"tertiary\"},on:{\"click\":function($event){_setup.isDialogOpen = true}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiCogOutline}})]},proxy:true}])},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_setup.t('settings', 'Account management settings'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c(_setup.UserSettingsDialog,{attrs:{\"open\":_setup.isDialogOpen},on:{\"update:open\":function($event){_setup.isDialogOpen=$event}}})]},proxy:true}])},[_c(_setup.NcAppNavigationNew,{attrs:{\"button-id\":\"new-user-button\",\"text\":_setup.t('settings', 'New account')},on:{\"click\":_setup.showNewUserMenu,\"keyup\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _setup.showNewUserMenu.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"space\",32,$event.key,[\" \",\"Spacebar\"]))return null;return _setup.showNewUserMenu.apply(null, arguments)}]},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiPlus}})]},proxy:true}])}),_vm._v(\" \"),_c('div',{staticClass:\"account-management__search\",attrs:{\"role\":\"search\",\"aria-label\":_setup.t('settings', 'Search accounts and groups')}},[_c(_setup.NcInputField,{ref:\"searchField\",attrs:{\"label\":_setup.t('settings', 'Search accounts and groups…'),\"show-trailing-button\":_setup.searchInput !== '',\"trailingButtonLabel\":_setup.t('settings', 'Clear search')},on:{\"trailing-button-click\":_setup.clearSearch},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiMagnify}})]},proxy:true},{key:\"trailing-button-icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiClose}})]},proxy:true}]),model:{value:(_setup.searchInput),callback:function ($$v) {_setup.searchInput=$$v},expression:\"searchInput\"}})],1),_vm._v(\" \"),_c(_setup.NcAppNavigationList,{staticClass:\"account-management__system-list\",attrs:{\"data-cy-users-settings-navigation-groups\":\"system\"}},[_c(_setup.NcAppNavigationItem,{attrs:{\"id\":\"everyone\",\"exact\":true,\"name\":_setup.t('settings', 'All accounts'),\"to\":{ name: 'users' }},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiAccountOutline}})]},proxy:true},{key:\"counter\",fn:function(){return [(_setup.userCount)?_c(_setup.NcCounterBubble,{attrs:{\"type\":!_setup.selectedGroupDecoded ? 'highlighted' : undefined}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_setup.userCount)+\"\\n\\t\\t\\t\\t\")]):_vm._e()]},proxy:true}])}),_vm._v(\" \"),(_setup.settings.isAdmin)?_c(_setup.NcAppNavigationItem,{attrs:{\"id\":\"admin\",\"exact\":true,\"name\":_setup.t('settings', 'Admins'),\"to\":{ name: 'group', params: { selectedGroup: 'admin' } }},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiShieldAccountOutline}})]},proxy:true},{key:\"counter\",fn:function(){return [(_setup.adminGroup && _setup.adminGroup.count > 0)?_c(_setup.NcCounterBubble,{attrs:{\"type\":_setup.selectedGroupDecoded === 'admin' ? 'highlighted' : undefined}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_setup.adminGroup.count)+\"\\n\\t\\t\\t\\t\")]):_vm._e()]},proxy:true}],null,false,3779933833)}):_vm._e(),_vm._v(\" \"),(_setup.isAdminOrDelegatedAdmin)?_c(_setup.NcAppNavigationItem,{attrs:{\"id\":\"recent\",\"exact\":true,\"name\":_setup.t('settings', 'Recently active'),\"to\":{ name: 'group', params: { selectedGroup: '__nc_internal_recent' } }},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiHistory}})]},proxy:true},{key:\"counter\",fn:function(){return [(_setup.recentGroup?.usercount)?_c(_setup.NcCounterBubble,{attrs:{\"type\":_setup.selectedGroupDecoded === '__nc_internal_recent' ? 'highlighted' : undefined}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_setup.recentGroup.usercount)+\"\\n\\t\\t\\t\\t\")]):_vm._e()]},proxy:true}],null,false,2299424282)}):_vm._e(),_vm._v(\" \"),(_setup.disabledGroup && (_setup.disabledGroup.usercount > 0 || _setup.disabledGroup.usercount === -1))?_c(_setup.NcAppNavigationItem,{attrs:{\"id\":\"disabled\",\"exact\":true,\"name\":_setup.t('settings', 'Disabled accounts'),\"to\":{ name: 'group', params: { selectedGroup: 'disabled' } }},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiAccountOffOutline}})]},proxy:true},(_setup.disabledGroup.usercount > 0)?{key:\"counter\",fn:function(){return [_c(_setup.NcCounterBubble,{attrs:{\"type\":_setup.selectedGroupDecoded === 'disabled' ? 'highlighted' : undefined}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_setup.disabledGroup.usercount)+\"\\n\\t\\t\\t\\t\")])]},proxy:true}:null],null,true)}):_vm._e()],1),_vm._v(\" \"),_c(_setup.AppNavigationGroupList)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./TrashCanOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./TrashCanOutline.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./TrashCanOutline.vue?vue&type=template&id=3daa0f14\"\nimport script from \"./TrashCanOutline.vue?vue&type=script&lang=js\"\nexport * from \"./TrashCanOutline.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 trash-can-outline-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\":\"M9,3V4H4V6H5V19A2,2 0 0,0 7,21H17A2,2 0 0,0 19,19V6H20V4H15V3H9M7,6H17V19H7V6M9,8V17H11V8H9M13,8V17H15V8H13Z\"}},[(_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!./GroupListItem.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!./GroupListItem.vue?vue&type=script&lang=js\"","\n\n\n\n\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!./GroupListItem.vue?vue&type=style&index=0&id=30743619&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!./GroupListItem.vue?vue&type=style&index=0&id=30743619&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./GroupListItem.vue?vue&type=template&id=30743619&scoped=true\"\nimport script from \"./GroupListItem.vue?vue&type=script&lang=js\"\nexport * from \"./GroupListItem.vue?vue&type=script&lang=js\"\nimport style0 from \"./GroupListItem.vue?vue&type=style&index=0&id=30743619&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 \"30743619\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('Fragment',[(_vm.showRemoveGroupModal)?_c('NcModal',{on:{\"close\":function($event){_vm.showRemoveGroupModal = false}}},[_c('div',{staticClass:\"modal__content\"},[_c('h2',{staticClass:\"modal__header\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Please confirm the group removal'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('NcNoteCard',{attrs:{\"type\":\"warning\",\"show-alert\":\"\"}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'You are about to delete the group \"{group}\". The accounts will NOT be deleted.', { group: _vm.name }))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('div',{staticClass:\"modal__button-row\"},[_c('NcButton',{attrs:{\"variant\":\"secondary\"},on:{\"click\":function($event){_vm.showRemoveGroupModal = false}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Cancel'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcButton',{attrs:{\"variant\":\"primary\"},on:{\"click\":_vm.removeGroup}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Confirm'))+\"\\n\\t\\t\\t\\t\")])],1)],1)]):_vm._e(),_vm._v(\" \"),_c('NcAppNavigationItem',{key:_vm.id,ref:\"listItem\",attrs:{\"exact\":true,\"name\":_vm.name,\"to\":{ name: 'group', params: { selectedGroup: encodeURIComponent(_vm.id) } },\"loading\":_vm.loadingRenameGroup,\"menu-open\":_vm.openGroupMenu},on:{\"update:menuOpen\":_vm.handleGroupMenuOpen},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('AccountGroup',{attrs:{\"size\":20}})]},proxy:true},{key:\"counter\",fn:function(){return [(_vm.count)?_c('NcCounterBubble',{attrs:{\"type\":_vm.active ? 'highlighted' : undefined}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.count)+\"\\n\\t\\t\\t\")]):_vm._e()]},proxy:true},{key:\"actions\",fn:function(){return [(_vm.id !== 'admin' && _vm.id !== 'disabled' && (_vm.settings.isAdmin || _vm.settings.isDelegatedAdmin))?_c('NcActionInput',{ref:\"displayNameInput\",attrs:{\"trailing-button-label\":_vm.t('settings', 'Submit'),\"type\":\"text\",\"model-value\":_vm.name,\"label\":_vm.t('settings', 'Rename group')},on:{\"submit\":function($event){return _vm.renameGroup(_vm.id)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Pencil',{attrs:{\"size\":20}})]},proxy:true}],null,false,580569589)}):_vm._e(),_vm._v(\" \"),(_vm.id !== 'admin' && _vm.id !== 'disabled' && (_vm.settings.isAdmin || _vm.settings.isDelegatedAdmin))?_c('NcActionButton',{on:{\"click\":function($event){_vm.showRemoveGroupModal = true}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Delete',{attrs:{\"size\":20}})]},proxy:true}],null,false,2705356561)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Delete group'))+\"\\n\\t\\t\\t\")]):_vm._e()]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { computed } from 'vue';\n/**\n * Format a group to a menu entry\n *\n * @param group the group\n */\nfunction formatGroupMenu(group) {\n if (typeof group === 'undefined') {\n return null;\n }\n return {\n id: group.id,\n title: group.name,\n usercount: group.usercount ?? 0,\n count: Math.max(0, (group.usercount ?? 0) - (group.disabled ?? 0)),\n };\n}\n/**\n *\n * @param groups\n */\nexport function useFormatGroups(groups) {\n /**\n * All non-disabled non-admin groups\n */\n const userGroups = computed(() => {\n const formatted = groups.value\n // filter out disabled and admin\n .filter((group) => group.id !== 'disabled' && group.id !== '__nc_internal_recent' && group.id !== 'admin')\n // format group\n .map((group) => formatGroupMenu(group))\n // remove invalid\n .filter((group) => group !== null);\n return formatted;\n });\n /**\n * The admin group if found otherwise null\n */\n const adminGroup = computed(() => formatGroupMenu(groups.value.find((group) => group.id === 'admin')));\n /**\n * The group of disabled users\n */\n const disabledGroup = computed(() => formatGroupMenu(groups.value.find((group) => group.id === 'disabled')));\n /**\n * The group of recent users\n */\n const recentGroup = computed(() => formatGroupMenu(groups.value.find((group) => group.id === '__nc_internal_recent')));\n return { adminGroup, recentGroup, disabledGroup, userGroups };\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c(_setup.Fragment,[_c(_setup.NcAppNavigationCaption,{attrs:{\"name\":_setup.t('settings', 'Groups'),\"disabled\":_setup.loadingAddGroup,\"aria-label\":_setup.loadingAddGroup ? _setup.t('settings', 'Creating group…') : _setup.t('settings', 'Create group'),\"force-menu\":\"\",\"is-heading\":\"\",\"open\":_setup.isAddGroupOpen},on:{\"update:open\":function($event){_setup.isAddGroupOpen=$event}},scopedSlots:_vm._u([(_setup.isAdminOrDelegatedAdmin)?{key:\"actionsTriggerIcon\",fn:function(){return [(_setup.loadingAddGroup)?_c(_setup.NcLoadingIcon):_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiPlus}})]},proxy:true}:null,(_setup.isAdminOrDelegatedAdmin)?{key:\"actions\",fn:function(){return [_c(_setup.NcActionText,{scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c(_setup.NcIconSvgWrapper,{attrs:{\"path\":_setup.mdiAccountGroupOutline}})]},proxy:true}],null,false,4071362859)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_setup.t('settings', 'Create group'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c(_setup.NcActionInput,{attrs:{\"label\":_setup.t('settings', 'Group name'),\"data-cy-users-settings-new-group-name\":\"\",\"label-outside\":false,\"disabled\":_setup.loadingAddGroup,\"error\":_setup.hasAddGroupError,\"helper-text\":_setup.hasAddGroupError ? _setup.t('settings', 'Please enter a valid group name') : ''},on:{\"submit\":_setup.createGroup},model:{value:(_setup.newGroupName),callback:function ($$v) {_setup.newGroupName=$$v},expression:\"newGroupName\"}})]},proxy:true}:null],null,true)}),_vm._v(\" \"),_c('p',{staticClass:\"hidden-visually\",attrs:{\"id\":\"group-list-desc\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_setup.t('settings', 'List of groups. This list is not fully populated for performance reasons. The groups will be loaded as you navigate or search through the list.'))+\"\\n\\t\")]),_vm._v(\" \"),_c(_setup.NcAppNavigationList,{staticClass:\"account-management__group-list\",attrs:{\"aria-describedby\":\"group-list-desc\",\"data-cy-users-settings-navigation-groups\":\"custom\"}},[_vm._l((_setup.filteredGroups),function(group){return _c(_setup.GroupListItem,{key:group.id,ref:\"groupListItems\",refInFor:true,attrs:{\"id\":group.id,\"active\":_setup.selectedGroupDecoded === group.id,\"name\":group.title,\"count\":group.count}})}),_vm._v(\" \"),(_setup.loadingGroups)?_c('div',{attrs:{\"role\":\"note\"}},[_c(_setup.NcLoadingIcon,{attrs:{\"name\":_setup.t('settings', 'Loading groups…')}})],1):_vm._e()],2)],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-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppNavigationGroupList.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-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppNavigationGroupList.vue?vue&type=script&setup=true&lang=ts\"","import { render, staticRenderFns } from \"./AppNavigationGroupList.vue?vue&type=template&id=00284738\"\nimport script from \"./AppNavigationGroupList.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AppNavigationGroupList.vue?vue&type=script&setup=true&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;return _c('NcAppSettingsDialog',{attrs:{\"open\":_vm.isModalOpen,\"show-navigation\":true,\"name\":_vm.t('settings', 'Account management settings')},on:{\"update:open\":function($event){_vm.isModalOpen=$event}}},[_c('NcAppSettingsSection',{attrs:{\"id\":\"visibility-settings\",\"name\":_vm.t('settings', 'Visibility')}},[_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"data-test\":\"showLanguages\"},model:{value:(_vm.showLanguages),callback:function ($$v) {_vm.showLanguages=$$v},expression:\"showLanguages\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Show language'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"data-test\":\"showUserBackend\"},model:{value:(_vm.showUserBackend),callback:function ($$v) {_vm.showUserBackend=$$v},expression:\"showUserBackend\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Show account backend'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"data-test\":\"showStoragePath\"},model:{value:(_vm.showStoragePath),callback:function ($$v) {_vm.showStoragePath=$$v},expression:\"showStoragePath\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Show storage path'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"data-test\":\"showFirstLogin\"},model:{value:(_vm.showFirstLogin),callback:function ($$v) {_vm.showFirstLogin=$$v},expression:\"showFirstLogin\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Show first login'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"data-test\":\"showLastLogin\"},model:{value:(_vm.showLastLogin),callback:function ($$v) {_vm.showLastLogin=$$v},expression:\"showLastLogin\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Show last login'))+\"\\n\\t\\t\")])],1),_vm._v(\" \"),_c('NcAppSettingsSection',{attrs:{\"id\":\"groups-sorting\",\"name\":_vm.t('settings', 'Sorting')}},[(_vm.isGroupSortingEnforced)?_c('NcNoteCard',{attrs:{\"type\":\"warning\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'The system config enforces sorting the groups by name. This also disables showing the member count.'))+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('fieldset',[_c('legend',[_vm._v(_vm._s(_vm.t('settings', 'Group list sorting')))]),_vm._v(\" \"),_c('NcNoteCard',{staticClass:\"dialog__note\",attrs:{\"type\":\"info\",\"text\":_vm.t('settings', 'Sorting only applies to the currently loaded groups for performance reasons. Groups will be loaded as you navigate or search through the list.')}}),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"radio\",\"data-test\":\"sortGroupsByMemberCount\",\"disabled\":_vm.isGroupSortingEnforced,\"name\":\"group-sorting-mode\",\"value\":\"member-count\"},model:{value:(_vm.groupSorting),callback:function ($$v) {_vm.groupSorting=$$v},expression:\"groupSorting\"}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'By member count'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"radio\",\"data-test\":\"sortGroupsByName\",\"disabled\":_vm.isGroupSortingEnforced,\"name\":\"group-sorting-mode\",\"value\":\"name\"},model:{value:(_vm.groupSorting),callback:function ($$v) {_vm.groupSorting=$$v},expression:\"groupSorting\"}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('settings', 'By name'))+\"\\n\\t\\t\\t\")])],1)],1),_vm._v(\" \"),_c('NcAppSettingsSection',{attrs:{\"id\":\"email-settings\",\"name\":_vm.t('settings', 'Send email')}},[_c('NcCheckboxRadioSwitch',{attrs:{\"type\":\"switch\",\"data-test\":\"sendWelcomeMail\",\"disabled\":_vm.loadingSendMail},model:{value:(_vm.sendWelcomeMail),callback:function ($$v) {_vm.sendWelcomeMail=$$v},expression:\"sendWelcomeMail\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('settings', 'Send welcome email to new accounts'))+\"\\n\\t\\t\")])],1),_vm._v(\" \"),_c('NcAppSettingsSection',{attrs:{\"id\":\"default-settings\",\"name\":_vm.t('settings', 'Defaults')}},[_c('NcSelect',{attrs:{\"clearable\":false,\"create-option\":_vm.validateQuota,\"filter-by\":_vm.filterQuotas,\"input-label\":_vm.t('settings', 'Default quota'),\"options\":_vm.quotaOptions,\"placement\":\"top\",\"placeholder\":_vm.t('settings', 'Select default quota'),\"taggable\":\"\"},on:{\"option:selected\":_vm.setDefaultQuota},model:{value:(_vm.defaultQuota),callback:function ($$v) {_vm.defaultQuota=$$v},expression:\"defaultQuota\"}})],1),_vm._v(\" \"),_c('NcAppSettingsShortcutsSection',[_c('NcHotkeyList',{attrs:{\"label\":_vm.t('settings', 'Search')}},[_c('NcHotkey',{attrs:{\"label\":_vm.t('settings', 'Focus search'),\"hotkey\":\"Control F\"}})],1),_vm._v(\" \"),_c('NcHotkeyList',{attrs:{\"label\":_vm.t('settings', 'Help')}},[_c('NcHotkey',{attrs:{\"label\":_vm.t('settings', 'Show those shortcuts'),\"hotkey\":\"?\"}})],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserSettingsDialog.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!./UserSettingsDialog.vue?vue&type=script&lang=js\"","\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!./UserSettingsDialog.vue?vue&type=style&index=0&id=649c1de8&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!./UserSettingsDialog.vue?vue&type=style&index=0&id=649c1de8&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserSettingsDialog.vue?vue&type=template&id=649c1de8&scoped=true\"\nimport script from \"./UserSettingsDialog.vue?vue&type=script&lang=js\"\nexport * from \"./UserSettingsDialog.vue?vue&type=script&lang=js\"\nimport style0 from \"./UserSettingsDialog.vue?vue&type=style&index=0&id=649c1de8&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 \"649c1de8\",\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-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserManagementNavigation.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-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserManagementNavigation.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!./UserManagementNavigation.vue?vue&type=style&index=0&id=0567bb0c&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!./UserManagementNavigation.vue?vue&type=style&index=0&id=0567bb0c&prod&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UserManagementNavigation.vue?vue&type=template&id=0567bb0c&scoped=true\"\nimport script from \"./UserManagementNavigation.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserManagementNavigation.vue?vue&type=script&setup=true&lang=ts\"\nimport style0 from \"./UserManagementNavigation.vue?vue&type=style&index=0&id=0567bb0c&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 \"0567bb0c\",\n null\n \n)\n\nexport default component.exports"],"names":["formatGroup","group","id","name","displayname","usercount","disabled","canAdd","canRemove","searchGroups","search","offset","limit","controller","AbortController","CancelablePromise","async","resolve","reject","onCancel","abort","data","axios","get","generateOcsUrl","signal","ocs","groups","map","error","unlimitedQuota","label","t","defaultQuota","isObfuscated","user","keys","Object","length","at","___CSS_LOADER_EXPORT___","push","module","components","NcSelect","inject","creatingGroup","promise","computed","settings","$store","getters","getServerData","availableGroups","isAdmin","isDelegatedAdmin","getSortedGroups","getSubAdminGroups","filter","availableSubAdminGroups","groupsLabel","methods","query","toggleLoading","cancel","commit","logger","createGroup","gid","dispatch","formData","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","_vm","this","_c","_self","staticClass","attrs","value","isCreating","on","model","callback","$$v","$set","expression","_v","subadminGroups","_e","resolveLanguage","serverLanguages","language","code","commonLanguages","otherLanguages","find","lang","showConfig","getShowConfig","languages","languageFilterBy","option","some","toLocaleLowerCase","includes","showLanguages","NcSelectUsers","possibleManagers","loading","managerModel","m","manager","displayName","managerOptions","u","subname","email","mounted","searchUserManager","onManagerChange","response","users","values","props","quotaOptions","type","Array","required","validateQuota","quota","fallback","parsed","parseFileSize","formatFileSize","NcPasswordField","NcTextField","UserFormGroups","UserFormLanguage","UserFormManager","UserFormQuota","fieldConfig","default","errors","minPasswordLength","getPasswordPolicyMinLength","unhandledErrors","handled","Set","fromEntries","entries","key","has","focusField","$refs","focus","username","show","_s","ref","showPasswordEmailHint","password","undefined","_l","message","field","NcButton","NcDialog","UserFormFields","provide","editedUser","emits","allGroups","getGroups","g","Boolean","subadmin","q","userToFormData","initialData","structuredClone","saving","fieldErrors","canChangePassword","backendCapabilities","setPassword","save","payload","initial","current","currentManagerId","currentGroupIds","sort","initialGroupIds","JSON","stringify","currentSubadminIds","initialSubadminIds","diffPayload","confirmPassword","userid","showSuccess","$emit","showError","$event","scopedSlots","_u","fn","proxy","preventDefault","apply","arguments","newUser","usernameLabel","newUserGenerateUserID","newUserRequireEmail","fields","createUser","all","meta","statuscode","_g","$listeners","Vue","extend","NcLoadingIcon","filteredUsers","userCount","n","_setupProxy","showUserBackend","showStoragePath","showFirstLogin","showLastLogin","N","Symbol","toStringTag","defineComponent","NcActionButton","NcActions","NcIconSvgWrapper","actions","setup","SvgPencil","enabledActions","action","enabled","isSvg","icon","text","index","event","productName","window","OC","theme","NcAvatar","NcProgressBar","UserRowActions","visible","externalActions","onEditUser","Function","formattedFullTime","useFormatDateTime","firstLoginTimestamp","relativeTime","format","timeStyle","dateStyle","rand","Math","random","toString","substring","delete","disable","wipe","usedQuota","min","round","used","pow","isNaN","userLanguage","userLang","concat","userFirstLogin","userLastLoginTooltip","lastLoginTimestamp","Util","formatDate","userLastLogin","relativeModifiedDate","isLoadingUser","isLoadingField","uniqueId","encodeURIComponent","userGroupsLabels","join","userSubAdminGroupsLabels","usedSpace","size","canEdit","getCurrentUser","uid","userQuota","userActions","deleteUser","wipeUserDevices","enableDisableUser","sendWelcomeMail","toggleEdit","dialogs","confirmDestructive","YES_NO_BUTTONS","confirm","confirmClasses","result","then","timeout","finally","class","backend","storageLocation","directive","vElementVisibility","dataComponent","dataKey","String","dataSources","itemHeight","Number","extraProps","bufferItems","headerHeight","tableHeight","resizeObserver","startIndex","max","shownItems","ceil","renderedItems","slice","tbodyStyle","isOverScrolled","lastIndex","hiddenAfterItems","paddingTop","paddingBottom","root","$el","tfoot","thead","ResizeObserver","debounce","clientHeight","debug","onScroll","observe","addEventListener","beforeDestroy","disconnect","handleFooterVisibility","scrollTop","_t","style","item","i","_b","tag","directives","rawName","freeze","EditUserDialog","Fragment","NcEmptyContent","NewUserDialog","UserListFooter","UserListHeader","VirtualList","selectedGroup","mdiAccountGroupOutline","rowHeight","UserRow","editingUser","isInitialLoad","searchQuery","getSearchQuery","getUsers","quotaPreset","reduce","acc","cur","allowUnlimitedQuota","unshift","usersOffset","getUsersOffset","usersLimit","getUsersLimit","disabledUsersOffset","getDisabledUsersOffset","disabledUsersLimit","getDisabledUsersLimit","usersCount","watch","loadUsers","val","redirectIfDisabled","setNewUserDefaultGroup","created","Notification","showTemporary","initForm","openEditDialog","handleScrollEnd","closeDialog","resetForm","assign","splice","defaultLanguage","currentGroup","findIndex","$router","showNewUserForm","NcAppContent","UserList","pageHeading","selectedGroupDecoded","admin","$route","params","decodeURIComponent","beforeMount","OCA","Settings","registerAction","emit","title","fillColor","$attrs","AccountGroup","Delete","NcActionInput","NcAppNavigationItem","NcCounterBubble","NcModal","NcNoteCard","Pencil","active","count","loadingRenameGroup","openGroupMenu","showRemoveGroupModal","handleGroupMenuOpen","renameGroup","trim","displayNameInput","querySelector","groupid","removeGroup","formatGroupMenu","useFormatGroups","userGroups","adminGroup","disabledGroup","recentGroup","_defineComponent","__name","__props","store","useStore","route","useRoute","router","useRouter","onBeforeMount","loadGroups","isAdminOrDelegatedAdmin","isAddGroupOpen","loadingAddGroup","hasAddGroupError","newGroupName","loadingGroups","groupsSearchQuery","filteredGroups","toLowerCase","groupListItems","lastGroupListItem","findLast","component","$vnode","listItem","isLastGroupVisible","useElementVisibility","__sfc","groupId","newGroupListItem","scrollIntoView","behavior","block","mdiPlus","NcActionText","NcAppNavigationCaption","NcAppNavigationList","GroupListItem","_setup","refInFor","NcAppSettingsDialog","NcAppSettingsSection","NcAppSettingsShortcutsSection","NcCheckboxRadioSwitch","NcHotkey","NcHotkeyList","open","_","useHotKey","nextTick","document","getElementById","inline","stop","prevent","selectedQuota","loadingSendMail","groupSorting","getGroupSorting","GroupSorting","GroupName","set","sorting","UserCount","isGroupSortingEnforced","forceSortGroupByName","isModalOpen","status","setShowConfig","computerFileSize","newUserSendEmail","post","generateUrl","filterQuotas","searchValue","replaceAll","indexOf","validQuota","setDefaultQuota","app","searchField","searchInput","commitSearch","onBeforeUnmount","clear","ctrl","isDialogOpen","getUserCount","clearSearch","showNewUserMenu","mdiAccountOffOutline","mdiAccountOutline","mdiClose","mdiCogOutline","mdiHistory","mdiMagnify","mdiShieldAccountOutline","NcAppNavigation","NcAppNavigationNew","NcInputField","AppNavigationGroupList","UserSettingsDialog","_k","keyCode"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/settings-vue-settings-apps-users-management.js b/dist/settings-vue-settings-apps-users-management.js index ab939ec1bf5..41c23a81d08 100644 --- a/dist/settings-vue-settings-apps-users-management.js +++ b/dist/settings-vue-settings-apps-users-management.js @@ -1,2 +1,2 @@ -(()=>{var e,o,i,n={6028(e,t,o){"use strict";o.d(t,{A:()=>s});var i=o(19051),n=o(77690);function r(e){return e.replace(/\/$/,"")}const s={requireAdmin:()=>(0,n.C5)(),get:(e,t)=>i.Ay.get(r(e),t),post:(e,t,o)=>i.Ay.post(r(e),t,o),patch:(e,t)=>i.Ay.patch(r(e),t),put:(e,t)=>i.Ay.put(r(e),t),delete:(e,t)=>i.Ay.delete(r(e),{params:t})}},36347(e,o,i){"use strict";i.d(o,{P:()=>j});var n=i(85168),r=i(95353),s=i(21106),a=i(19051),c=i(81222),u=i(77690),d=i(63814),p=i(85471),l=i(6028);const f={apps:[],bundles:(0,c.C)("settings","appstoreBundles",[]),categories:[],updateCount:(0,c.C)("settings","appstoreUpdateCount",0),loading:{},gettingCategoriesPromise:null,appApiEnabled:(0,c.C)("settings","appApiEnabled",!1)},h={APPS_API_FAILURE(e,o){(0,n.Qg)(t("settings","An error occurred during the request. Unable to proceed.")+"
"+o.error.response.data.data.message,{isHTML:!0}),s.A.error("An error occurred during the request. Unable to proceed.",{state:e,error:o})},initCategories(e,{categories:t,updateCount:o}){e.categories=t,e.updateCount=o},updateCategories(e,t){e.gettingCategoriesPromise=t},setUpdateCount(e,t){e.updateCount=t},addCategory(e,t){e.categories.push(t)},appendCategories(e,t){e.categories=t},setAllApps(e,t){e.apps=t},setError(e,{appId:t,error:o}){Array.isArray(t)||(t=[t]),t.forEach(t=>{e.apps.find(e=>e.id===t).error=o})},clearError(e,{appId:t}){e.apps.find(e=>e.id===t).error=null},enableApp(e,{appId:t,groups:o}){const i=e.apps.find(e=>e.id===t);i.active=!0,p.Ay.set(i,"groups",[...o]),"app_api"===i.id&&(e.appApiEnabled=!0)},setInstallState(e,{appId:t,canInstall:o}){const i=e.apps.find(e=>e.id===t);i&&(i.canInstall=!0===o)},disableApp(e,t){const o=e.apps.find(e=>e.id===t);o.active=!1,o.groups=[],o.removable&&(o.canUnInstall=!0),"app_api"===o.id&&(e.appApiEnabled=!1)},uninstallApp(e,t){e.apps.find(e=>e.id===t).active=!1,e.apps.find(e=>e.id===t).groups=[],e.apps.find(e=>e.id===t).needsDownload=!0,e.apps.find(e=>e.id===t).installed=!1,e.apps.find(e=>e.id===t).canUnInstall=!1,e.apps.find(e=>e.id===t).canInstall=!0,"app_api"===t&&(e.appApiEnabled=!1)},updateApp(e,t){const o=e.apps.find(e=>e.id===t),i=o.update;o.update=null,o.version=i,e.updateCount--},resetApps(e){e.apps=[]},reset(e){e.apps=[],e.categories=[],e.updateCount=0},startLoading(e,t){Array.isArray(t)?t.forEach(t=>{p.Ay.set(e.loading,t,!0)}):p.Ay.set(e.loading,t,!0)},stopLoading(e,t){Array.isArray(t)?t.forEach(t=>{p.Ay.set(e.loading,t,!1)}):p.Ay.set(e.loading,t,!1)}},m={enableApp(e,{appId:o,groups:i}){let r;r=Array.isArray(o)?o:[o],e.commit("startLoading",r),e.commit("startLoading","install");const s={};return r.forEach(t=>{const o=e.state.apps.find(e=>e.id===t);o&&(s[t]={active:o.active,groups:[...o.groups||[]]},e.commit("enableApp",{appId:t,groups:i}))}),l.A.post((0,d.Jv)("settings/apps/enable"),{appIds:r,groups:i},{confirmPassword:u.mH.Strict}).then(i=>(e.commit("stopLoading",r),e.commit("stopLoading","install"),a.Ay.get((0,d.Jv)("apps/files/")).then(()=>{i.data.update_required&&((0,n.cf)(t("settings","The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds."),{onClick:()=>window.location.reload(),close:!1}),setTimeout(function(){location.reload()},5e3))}).catch(()=>{Array.isArray(o)||((0,n.Qg)(t("settings","Error: This app cannot be enabled because it makes the server unstable")),e.commit("setError",{appId:r,error:t("settings","Error: This app cannot be enabled because it makes the server unstable")}),e.dispatch("disableApp",{appId:o}))}))).catch(t=>{e.commit("stopLoading",r),e.commit("stopLoading","install"),r.forEach(t=>{s[t]&&(e.commit("enableApp",{appId:t,groups:s[t].groups}),s[t].active||e.commit("disableApp",t))});const i=t.response?.data?.data?.message;i&&(e.commit("setError",{appId:r,error:i}),e.commit("APPS_API_FAILURE",{appId:o,error:t}))})},forceEnableApp(e,{appId:t}){let o;return o=Array.isArray(t)?t:[t],l.A.requireAdmin().then(()=>(e.commit("startLoading",o),e.commit("startLoading","install"),l.A.post((0,d.Jv)("settings/apps/force"),{appId:t}).then(()=>{e.commit("setInstallState",{appId:t,canInstall:!0})}).catch(i=>{e.commit("stopLoading",o),e.commit("stopLoading","install"),e.commit("setError",{appId:o,error:i.response.data.data.message}),e.commit("APPS_API_FAILURE",{appId:t,error:i})}).finally(()=>{e.commit("stopLoading",o),e.commit("stopLoading","install")}))).catch(o=>e.commit("API_FAILURE",{appId:t,error:o}))},disableApp(e,{appId:t}){let o;return o=Array.isArray(t)?t:[t],l.A.requireAdmin().then(()=>(e.commit("startLoading",o),l.A.post((0,d.Jv)("settings/apps/disable"),{appIds:o}).then(()=>(e.commit("stopLoading",o),o.forEach(t=>{e.commit("disableApp",t)}),!0)).catch(i=>{e.commit("stopLoading",o),e.commit("APPS_API_FAILURE",{appId:t,error:i})}))).catch(o=>e.commit("API_FAILURE",{appId:t,error:o}))},uninstallApp:(e,{appId:t})=>l.A.requireAdmin().then(()=>(e.commit("startLoading",t),l.A.get((0,d.Jv)(`settings/apps/uninstall/${t}`)).then(()=>(e.commit("stopLoading",t),e.commit("uninstallApp",t),!0)).catch(o=>{e.commit("stopLoading",t),e.commit("APPS_API_FAILURE",{appId:t,error:o})}))).catch(o=>e.commit("API_FAILURE",{appId:t,error:o})),updateApp:(e,{appId:t})=>l.A.requireAdmin().then(()=>(e.commit("startLoading",t),e.commit("startLoading","install"),l.A.get((0,d.Jv)(`settings/apps/update/${t}`)).then(()=>(e.commit("stopLoading","install"),e.commit("stopLoading",t),e.commit("updateApp",t),!0)).catch(o=>{e.commit("stopLoading",t),e.commit("stopLoading","install"),e.commit("APPS_API_FAILURE",{appId:t,error:o})}))).catch(o=>e.commit("API_FAILURE",{appId:t,error:o})),getAllApps:e=>(e.commit("startLoading","list"),l.A.get((0,d.Jv)("settings/apps/list")).then(t=>(e.commit("setAllApps",t.data.apps),e.commit("stopLoading","list"),!0)).catch(t=>e.commit("API_FAILURE",t))),async getCategories(e,{shouldRefetchCategories:t=!1}={}){if(t||!e.state.gettingCategoriesPromise){e.commit("startLoading","categories");try{const t=l.A.get((0,d.Jv)("settings/apps/categories"));e.commit("updateCategories",t);const o=await t;return o.data.length>0?(e.commit("appendCategories",o.data),e.commit("stopLoading","categories"),!0):(e.commit("stopLoading","categories"),!1)}catch(t){e.commit("API_FAILURE",t)}}return e.state.gettingCategoriesPromise}},v={state:f,mutations:h,getters:{isAppApiEnabled:e=>e.appApiEnabled,loading:e=>function(t){return e.loading[t]},getCategories:e=>e.categories,getAllApps:e=>e.apps,getAppBundles:e=>e.bundles,getUpdateCount:e=>e.updateCount,getCategoryById:e=>t=>e.categories.find(e=>e.id===t)},actions:m},g={state:{},mutations:{},getters:{},actions:{setAppConfig:(e,{app:t,key:o,value:i})=>l.A.requireAdmin().then(()=>l.A.post((0,d.KT)("apps/provisioning_api/api/v1/config/apps/{app}/{key}",{app:t,key:o}),{value:i}).catch(e=>{throw e})).catch(n=>e.commit("API_FAILURE",{app:t,key:o,value:i,error:n}))}},b={serverData:(0,c.C)("settings","usersSettings",{})},y={setServerData(e,t){e.serverData=t}},_={state:b,mutations:y,getters:{getServerData:e=>e.serverData},actions:{}};var w=i(87485),A=i(35810),O=i(54162),E=i(53334);const C=Intl.Collator([(0,E.Z0)(),(0,E.lO)()],{numeric:!0,usage:"sort"}),L=(0,c.C)("settings","usersSettings",{}),T={id:"",name:"",usercount:0,disabled:0,canAdd:!0,canRemove:!0},I={users:[],groups:[...L.getSubAdminGroups??[],...L.systemGroups??[]],orderBy:L.sortGroups??O.q.UserCount,minPasswordLength:0,usersOffset:0,usersLimit:25,disabledUsersOffset:0,disabledUsersLimit:25,searchQuery:"",userCount:L.userCount??0,showConfig:{showStoragePath:L.showConfig?.user_list_show_storage_path,showUserBackend:L.showConfig?.user_list_show_user_backend,showFirstLogin:L.showConfig?.user_list_show_first_login,showLastLogin:L.showConfig?.user_list_show_last_login,showNewUserForm:L.showConfig?.user_list_show_new_user_form,showLanguages:L.showConfig?.user_list_show_languages}},P={appendUsers(e,t){const o=e.users.map(({id:e})=>e),i=Object.values(t).filter(({id:e})=>!o.includes(e)),n=e.users.concat(i);e.usersOffset+=e.usersLimit,e.users=n},updateDisabledUsers(e){e.disabledUsersOffset+=e.disabledUsersLimit},setPasswordPolicyMinLength(e,t){e.minPasswordLength=""!==t?t:0},addGroup(e,t){try{if(void 0!==e.groups.find(e=>e.id===t.id))return;const o={...T,...t};e.groups.unshift(o)}catch(e){s.A.error("Cannt create group",{error:e})}},renameGroup(e,{gid:t,displayName:o}){const i=e.groups.findIndex(e=>e.id===t);if(i>=0){const t=e.groups[i];t.name=o,e.groups.splice(i,1,t)}},removeGroup(e,t){const o=e.groups.findIndex(e=>e.id===t);o>=0&&e.groups.splice(o,1)},addUserGroup(e,{userid:t,gid:o}){const i=e.groups.find(e=>e.id===o),n=e.users.find(e=>e.id===t);i&&n.enabled&&e.userCount>0&&i.usercount++,n.groups.push(o)},removeUserGroup(e,{userid:t,gid:o}){const i=e.groups.find(e=>e.id===o),n=e.users.find(e=>e.id===t);i&&n.enabled&&e.userCount>0&&i.usercount--;const r=n.groups;r.splice(r.indexOf(o),1)},addUserSubAdmin(e,{userid:t,gid:o}){e.users.find(e=>e.id===t).subadmin.push(o)},removeUserSubAdmin(e,{userid:t,gid:o}){const i=e.users.find(e=>e.id===t).subadmin;i.splice(i.indexOf(o),1)},deleteUser(e,t){const o=e.users.findIndex(e=>e.id===t);this.commit("updateUserCounts",{user:e.users[o],actionType:"remove"}),e.users.splice(o,1)},addUserData(e,t){const o=t.data.ocs.data;e.users.unshift(o),this.commit("updateUserCounts",{user:o,actionType:"create"})},enableDisableUser(e,{userid:t,enabled:o}){const i=e.users.find(e=>e.id===t);i.enabled=o,this.commit("updateUserCounts",{user:i,actionType:o?"enable":"disable"})},updateUserCounts(e,{user:t,actionType:o}){if(0===e.userCount)return;const i=e.groups.find(e=>"__nc_internal_recent"===e.id),n=e.groups.find(e=>"disabled"===e.id);switch(o){case"enable":case"disable":n.usercount+=t.enabled?-1:1,i.usercount+=t.enabled?1:-1,e.userCount+=t.enabled?1:-1,t.groups.forEach(o=>{const i=e.groups.find(e=>e.id===o);i&&(i.disabled+=t.enabled?-1:1)});break;case"create":i.usercount++,e.userCount++,t.groups.forEach(t=>{const o=e.groups.find(e=>e.id===t);o&&o.usercount++});break;case"remove":t.enabled?(i.usercount--,e.userCount--,t.groups.forEach(t=>{const o=e.groups.find(e=>e.id===t);o?o.usercount--:s.A.warn("User group "+t+" does not exist during user removal")})):(n.usercount--,t.groups.forEach(t=>{const o=e.groups.find(e=>e.id===t);o&&o.disabled--}));break;default:s.A.error(`Unknown action type in updateUserCounts: '${o}'`)}},setUserData(e,{userid:t,key:o,value:i}){if("quota"===o){const n=(0,A.lT)(i,!0);e.users.find(e=>e.id===t)[o][o]=null!==n?n:i}else e.users.find(e=>e.id===t)[o]=i},editUserMultiField(e,{userid:t,data:o}){const i=e.users.findIndex(e=>e.id===t);if(-1!==i){if(Array.isArray(o.groups)){const n=e.users[i].groups??[];for(const e of o.groups.filter(e=>!n.includes(e)))this.commit("addUserGroup",{userid:t,gid:e});for(const e of n.filter(e=>!o.groups.includes(e)))this.commit("removeUserGroup",{userid:t,gid:e})}e.users.splice(i,1,{...e.users[i],...o})}},resetUsers(e){e.users=[],e.usersOffset=0,e.disabledUsersOffset=0},resetGroups(e){e.groups=[...L.getSubAdminGroups??[],...L.systemGroups??[]]},setSearchQuery(e,t){e.searchQuery=t},setShowConfig(e,{key:t,value:o}){e.showConfig[t]=o},setGroupSorting(e,o){const i=e.orderBy;e.orderBy=o,a.Ay.post((0,d.Jv)("/settings/users/preferences/group.sortBy"),{value:String(o)}).catch(o=>{e.orderBy=i,(0,n.Qg)(t("settings","Could not set group sorting")),s.A.error(o)})}},$={getUsers:e=>e.users,getGroups:e=>e.groups,getSearchQuery:e=>e.searchQuery,getSubAdminGroups:()=>L.subAdminGroups??[],getSortedGroups(e){const t=[...e.groups];return e.orderBy===O.q.UserCount?t.sort((e,t)=>{const o=e.usercount-e.disabled,i=t.usercount-t.disabled;return oC.compare(e.name,t.name))},getGroupSorting:e=>e.orderBy,getPasswordPolicyMinLength:e=>e.minPasswordLength,getUsersOffset:e=>e.usersOffset,getUsersLimit:e=>e.usersLimit,getDisabledUsersOffset:e=>e.disabledUsersOffset,getDisabledUsersLimit:e=>e.disabledUsersLimit,getUserCount:e=>e.userCount,getShowConfig:e=>e.showConfig},S=a.Ay.CancelToken;let k=null;const U={state:I,mutations:P,getters:$,actions:{searchUsers:(e,{offset:t,limit:o,search:i})=>(i="string"==typeof i?i:"",l.A.get((0,d.KT)("cloud/users/details?offset={offset}&limit={limit}&search={search}",{offset:t,limit:o,search:i})).catch(t=>{a.Ay.isCancel(t)||e.commit("API_FAILURE",t)})),getUser:(e,t)=>l.A.get((0,d.KT)(`cloud/users/${t}`)).catch(t=>{a.Ay.isCancel(t)||e.commit("API_FAILURE",t)}),getUsers:(e,{offset:t,limit:o,search:i,group:n})=>(k&&k.cancel("Operation canceled by another search request."),k=S.source(),i="string"==typeof i?i:"",""!==(n="string"==typeof n?n:"")?l.A.get((0,d.KT)("cloud/groups/{group}/users/details?offset={offset}&limit={limit}&search={search}",{group:encodeURIComponent(n),offset:t,limit:o,search:i}),{cancelToken:k.token}).then(t=>{const o=Object.keys(t.data.ocs.data.users).length;return o>0&&e.commit("appendUsers",t.data.ocs.data.users),o}).catch(t=>{a.Ay.isCancel(t)||e.commit("API_FAILURE",t)}):l.A.get((0,d.KT)("cloud/users/details?offset={offset}&limit={limit}&search={search}",{offset:t,limit:o,search:i}),{cancelToken:k.token}).then(t=>{const o=Object.keys(t.data.ocs.data.users).length;return o>0&&e.commit("appendUsers",t.data.ocs.data.users),o}).catch(t=>{a.Ay.isCancel(t)||e.commit("API_FAILURE",t)})),async getRecentUsers(e,{offset:t,limit:o,search:i}){const n=(0,d.KT)("cloud/users/recent?offset={offset}&limit={limit}&search={search}",{offset:t,limit:o,search:i});try{const t=await l.A.get(n),o=Object.keys(t.data.ocs.data.users).length;return o>0&&e.commit("appendUsers",t.data.ocs.data.users),o}catch(t){e.commit("API_FAILURE",t)}},async getDisabledUsers(e,{offset:t,limit:o,search:i}){const n=(0,d.KT)("cloud/users/disabled?offset={offset}&limit={limit}&search={search}",{offset:t,limit:o,search:i});try{const t=await l.A.get(n),o=Object.keys(t.data.ocs.data.users).length;return o>0&&(e.commit("appendUsers",t.data.ocs.data.users),e.commit("updateDisabledUsers",t.data.ocs.data.users)),o}catch(t){e.commit("API_FAILURE",t)}},getGroups(e,{offset:t,limit:o,search:i}){i="string"==typeof i?i:"";const n=-1===o?"":`&limit=${o}`;return l.A.get((0,d.KT)("cloud/groups?offset={offset}&search={search}",{offset:t,search:i})+n).then(t=>Object.keys(t.data.ocs.data.groups).length>0&&(t.data.ocs.data.groups.forEach(function(t){e.commit("addGroup",{id:t,name:t})}),!0)).catch(t=>e.commit("API_FAILURE",t))},getUsersFromList:(e,{offset:t,limit:o,search:i})=>(i="string"==typeof i?i:"",l.A.get((0,d.KT)("cloud/users/details?offset={offset}&limit={limit}&search={search}",{offset:t,limit:o,search:i})).then(t=>Object.keys(t.data.ocs.data.users).length>0&&(e.commit("appendUsers",t.data.ocs.data.users),!0)).catch(t=>e.commit("API_FAILURE",t))),getUsersFromGroup:(e,{groupid:t,offset:o,limit:i})=>l.A.get((0,d.KT)("cloud/users/{groupId}/details?offset={offset}&limit={limit}",{groupId:encodeURIComponent(t),offset:o,limit:i})).then(t=>e.commit("getUsersFromList",t.data.ocs.data.users)).catch(t=>e.commit("API_FAILURE",t)),getPasswordPolicyMinLength:e=>!(!(0,w.F)().password_policy||!(0,w.F)().password_policy.minLength)&&(e.commit("setPasswordPolicyMinLength",(0,w.F)().password_policy.minLength),(0,w.F)().password_policy.minLength),addGroup:(e,t)=>l.A.requireAdmin().then(()=>l.A.post((0,d.KT)("cloud/groups"),{groupid:t}).then(()=>(e.commit("addGroup",{id:t,name:t}),{gid:t,displayName:t})).catch(e=>{throw e})).catch(o=>{throw e.commit("API_FAILURE",{gid:t,error:o}),o}),renameGroup:(e,{groupid:t,displayName:o})=>l.A.requireAdmin().then(()=>l.A.put((0,d.KT)("cloud/groups/{groupId}",{groupId:encodeURIComponent(t)}),{key:"displayname",value:o}).then(()=>(e.commit("renameGroup",{gid:t,displayName:o}),{groupid:t,displayName:o})).catch(e=>{throw e})).catch(o=>{throw e.commit("API_FAILURE",{groupid:t,error:o}),o}),removeGroup:(e,t)=>l.A.requireAdmin().then(()=>l.A.delete((0,d.KT)("cloud/groups/{groupId}",{groupId:encodeURIComponent(t)})).then(()=>e.commit("removeGroup",t)).catch(e=>{throw e})).catch(o=>e.commit("API_FAILURE",{gid:t,error:o})),addUserGroup:(e,{userid:t,gid:o})=>l.A.requireAdmin().then(()=>l.A.post((0,d.KT)("cloud/users/{userid}/groups",{userid:t}),{groupid:o}).then(()=>e.commit("addUserGroup",{userid:t,gid:o})).catch(e=>{throw e})).catch(o=>e.commit("API_FAILURE",{userid:t,error:o})),removeUserGroup:(e,{userid:t,gid:o})=>l.A.requireAdmin().then(()=>l.A.delete((0,d.KT)("cloud/users/{userid}/groups",{userid:t}),{groupid:o}).then(()=>e.commit("removeUserGroup",{userid:t,gid:o})).catch(e=>{throw e})).catch(o=>{throw e.commit("API_FAILURE",{userid:t,error:o}),o}),addUserSubAdmin:(e,{userid:t,gid:o})=>l.A.requireAdmin().then(()=>l.A.post((0,d.KT)("cloud/users/{userid}/subadmins",{userid:t}),{groupid:o}).then(()=>e.commit("addUserSubAdmin",{userid:t,gid:o})).catch(e=>{throw e})).catch(o=>e.commit("API_FAILURE",{userid:t,error:o})),removeUserSubAdmin:(e,{userid:t,gid:o})=>l.A.requireAdmin().then(()=>l.A.delete((0,d.KT)("cloud/users/{userid}/subadmins",{userid:t}),{groupid:o}).then(()=>e.commit("removeUserSubAdmin",{userid:t,gid:o})).catch(e=>{throw e})).catch(o=>e.commit("API_FAILURE",{userid:t,error:o})),async wipeUserDevices(e,t){try{return await l.A.requireAdmin(),await l.A.post((0,d.KT)("cloud/users/{userid}/wipe",{userid:t}))}catch(o){return e.commit("API_FAILURE",{userid:t,error:o}),Promise.reject(new Error("Failed to wipe user devices"))}},deleteUser:(e,t)=>l.A.requireAdmin().then(()=>l.A.delete((0,d.KT)("cloud/users/{userid}",{userid:t})).then(()=>e.commit("deleteUser",t)).catch(e=>{throw e})).catch(o=>e.commit("API_FAILURE",{userid:t,error:o})),addUser:({commit:e,dispatch:t},{userid:o,password:i,displayName:n,email:r,groups:s,subadmin:a,quota:c,language:u,manager:p})=>l.A.requireAdmin().then(()=>l.A.post((0,d.KT)("cloud/users"),{userid:o,password:i,displayName:n,email:r,groups:s,subadmin:a,quota:c,language:u,manager:p}).then(e=>t("addUserData",o||e.data.ocs.data.id)).catch(e=>{throw e})).catch(t=>{throw e("API_FAILURE",{userid:o,error:t}),t}),addUserData:(e,t)=>l.A.requireAdmin().then(()=>l.A.get((0,d.KT)("cloud/users/{userid}",{userid:t})).then(t=>e.commit("addUserData",t)).catch(e=>{throw e})).catch(o=>e.commit("API_FAILURE",{userid:t,error:o})),enableDisableUser(e,{userid:t,enabled:o=!0}){const i=o?"enable":"disable";return l.A.requireAdmin().then(()=>l.A.put((0,d.KT)("cloud/users/{userid}/{userStatus}",{userid:t,userStatus:i})).then(()=>e.commit("enableDisableUser",{userid:t,enabled:o})).catch(e=>{throw e})).catch(o=>e.commit("API_FAILURE",{userid:t,error:o}))},async setUserData(e,{userid:t,key:o,value:i}){if(!["email","language","quota","displayname","password","manager"].includes(o))throw new Error("Invalid request data");if(""===i&&!["email","displayname","manager"].includes(o))throw new Error("Value cannot be empty for this field");try{return await l.A.requireAdmin(),await l.A.put((0,d.KT)("cloud/users/{userid}",{userid:t}),{key:o,value:i}),e.commit("setUserData",{userid:t,key:o,value:i})}catch(o){throw e.commit("API_FAILURE",{userid:t,error:o}),o}},async editUserMultiField(e,{userid:t,payload:o}){try{await l.A.requireAdmin();const i=await l.A.patch((0,d.KT)("cloud/users/{userid}",{userid:t}),o);e.commit("editUserMultiField",{userid:t,data:i.data.ocs.data})}catch(o){throw e.commit("API_FAILURE",{userid:t,error:o}),o}},sendWelcomeMail:(e,t)=>l.A.requireAdmin().then(()=>l.A.post((0,d.KT)("cloud/users/{userid}/welcome",{userid:t})).then(()=>!0).catch(e=>{throw e})).catch(o=>e.commit("API_FAILURE",{userid:t,error:o})),migrateLocalStorage({commit:e}){const t={showStoragePath:"user_list_show_storage_path",showUserBackend:"user_list_show_user_backend",showFirstLogin:"user_list_show_first_login",showLastLogin:"user_list_show_last_login",showNewUserForm:"user_list_show_new_user_form",showLanguages:"user_list_show_languages"};for(const[o,i]of Object.entries(t)){const t=`account_settings__${o}`,n=window.localStorage.getItem(t);if(null===n)continue;const r="true"===n;e("setShowConfig",{key:o,value:r}),a.Ay.post((0,d.Jv)(`/settings/users/preferences/${i}`),{value:r?"true":"false"}).then(()=>{window.localStorage.removeItem(t)}).catch(e=>{s.A.error(`Failed to migrate preference ${o}`,{error:e})})}},setShowConfig(e,{key:t,value:o}){e.commit("setShowConfig",{key:t,value:o}),a.Ay.post((0,d.Jv)(`settings/users/preferences/${{showStoragePath:"user_list_show_storage_path",showUserBackend:"user_list_show_user_backend",showFirstLogin:"user_list_show_first_login",showLastLogin:"user_list_show_last_login",showNewUserForm:"user_list_show_new_user_form",showLanguages:"user_list_show_languages"}[t]}`),{value:o?"true":"false"}).catch(e=>s.A.error(`Could not update ${t} preference`,{error:e}))}}},x={API_FAILURE(e,o){try{const e=o.error.response.data.ocs.meta.message;(0,n.Qg)(t("settings","An error occurred during the request. Unable to proceed.")+"
"+e,{isHTML:!0})}catch{(0,n.Qg)(t("settings","An error occurred during the request. Unable to proceed."))}s.A.error("An error occurred during the request.",{state:e,error:o})}};let N=null;function j(){return null===N&&(N=new r.il({modules:{users:U,apps:v,settings:_,oc:g},strict:!1,mutations:x})),N}},54162(e,t,o){"use strict";var i;o.d(t,{q:()=>i}),function(e){e[e.UserCount=1]="UserCount",e[e.GroupName=2]="GroupName"}(i||(i={}))},21106(e,t,o){"use strict";o.d(t,{A:()=>i});const i=(0,o(35947).YK)().setApp("settings").detectUser().build()},35750(e,t,o){"use strict";var i=o(21777),n=o(19051),r=o(53334),s=o(77690),a=o(10810);function c(e){return c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},c(e)}function u(e){var t=function(e){if("object"!=c(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var o=t.call(e,"string");if("object"!=c(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==c(t)?t:t+""}function d(e,t,o){return(t=u(t))in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function p(e,t){for(var o=0;o=0)return 1;return 0}(),h=l&&window.Promise?function(e){var t=!1;return function(){t||(t=!0,window.Promise.resolve().then(function(){t=!1,e()}))}}:function(e){var t=!1;return function(){t||(t=!0,setTimeout(function(){t=!1,e()},f))}};function m(e){return e&&"[object Function]"==={}.toString.call(e)}function v(e,t){if(1!==e.nodeType)return[];var o=e.ownerDocument.defaultView.getComputedStyle(e,null);return t?o[t]:o}function g(e){return"HTML"===e.nodeName?e:e.parentNode||e.host}function b(e){if(!e)return document.body;switch(e.nodeName){case"HTML":case"BODY":return e.ownerDocument.body;case"#document":return e.body}var t=v(e),o=t.overflow,i=t.overflowX,n=t.overflowY;return/(auto|scroll|overlay)/.test(o+n+i)?e:b(g(e))}function y(e){return e&&e.referenceNode?e.referenceNode:e}var _=l&&!(!window.MSInputMethodContext||!document.documentMode),w=l&&/MSIE 10/.test(navigator.userAgent);function A(e){return 11===e?_:10===e?w:_||w}function O(e){if(!e)return document.documentElement;for(var t=A(10)?document.body:null,o=e.offsetParent||null;o===t&&e.nextElementSibling;)o=(e=e.nextElementSibling).offsetParent;var i=o&&o.nodeName;return i&&"BODY"!==i&&"HTML"!==i?-1!==["TH","TD","TABLE"].indexOf(o.nodeName)&&"static"===v(o,"position")?O(o):o:e?e.ownerDocument.documentElement:document.documentElement}function E(e){return null!==e.parentNode?E(e.parentNode):e}function C(e,t){if(!(e&&e.nodeType&&t&&t.nodeType))return document.documentElement;var o=e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING,i=o?e:t,n=o?t:e,r=document.createRange();r.setStart(i,0),r.setEnd(n,0);var s,a,c=r.commonAncestorContainer;if(e!==c&&t!==c||i.contains(n))return"BODY"===(a=(s=c).nodeName)||"HTML"!==a&&O(s.firstElementChild)!==s?O(c):c;var u=E(e);return u.host?C(u.host,t):C(e,E(t).host)}function L(e){var t="top"===(arguments.length>1&&void 0!==arguments[1]?arguments[1]:"top")?"scrollTop":"scrollLeft",o=e.nodeName;if("BODY"===o||"HTML"===o){var i=e.ownerDocument.documentElement;return(e.ownerDocument.scrollingElement||i)[t]}return e[t]}function T(e,t){var o="x"===t?"Left":"Top",i="Left"===o?"Right":"Bottom";return parseFloat(e["border"+o+"Width"])+parseFloat(e["border"+i+"Width"])}function I(e,t,o,i){return Math.max(t["offset"+e],t["scroll"+e],o["client"+e],o["offset"+e],o["scroll"+e],A(10)?parseInt(o["offset"+e])+parseInt(i["margin"+("Height"===e?"Top":"Left")])+parseInt(i["margin"+("Height"===e?"Bottom":"Right")]):0)}function P(e){var t=e.body,o=e.documentElement,i=A(10)&&getComputedStyle(o);return{height:I("Height",t,o,i),width:I("Width",t,o,i)}}var $=function(){function e(e,t){for(var o=0;o2&&void 0!==arguments[2]&&arguments[2],i=A(10),n="HTML"===t.nodeName,r=x(e),s=x(t),a=b(e),c=v(t),u=parseFloat(c.borderTopWidth),d=parseFloat(c.borderLeftWidth);o&&n&&(s.top=Math.max(s.top,0),s.left=Math.max(s.left,0));var p=U({top:r.top-s.top-u,left:r.left-s.left-d,width:r.width,height:r.height});if(p.marginTop=0,p.marginLeft=0,!i&&n){var l=parseFloat(c.marginTop),f=parseFloat(c.marginLeft);p.top-=u-l,p.bottom-=u-l,p.left-=d-f,p.right-=d-f,p.marginTop=l,p.marginLeft=f}return(i&&!o?t.contains(a):t===a&&"BODY"!==a.nodeName)&&(p=function(e,t){var o=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=L(t,"top"),n=L(t,"left"),r=o?-1:1;return e.top+=i*r,e.bottom+=i*r,e.left+=n*r,e.right+=n*r,e}(p,t)),p}function j(e){var t=e.nodeName;if("BODY"===t||"HTML"===t)return!1;if("fixed"===v(e,"position"))return!0;var o=g(e);return!!o&&j(o)}function F(e){if(!e||!e.parentElement||A())return document.documentElement;for(var t=e.parentElement;t&&"none"===v(t,"transform");)t=t.parentElement;return t||document.documentElement}function D(e,t,o,i){var n=arguments.length>4&&void 0!==arguments[4]&&arguments[4],r={top:0,left:0},s=n?F(e):C(e,y(t));if("viewport"===i)r=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],o=e.ownerDocument.documentElement,i=N(e,o),n=Math.max(o.clientWidth,window.innerWidth||0),r=Math.max(o.clientHeight,window.innerHeight||0),s=t?0:L(o),a=t?0:L(o,"left");return U({top:s-i.top+i.marginTop,left:a-i.left+i.marginLeft,width:n,height:r})}(s,n);else{var a=void 0;"scrollParent"===i?"BODY"===(a=b(g(t))).nodeName&&(a=e.ownerDocument.documentElement):a="window"===i?e.ownerDocument.documentElement:i;var c=N(a,s,n);if("HTML"!==a.nodeName||j(s))r=c;else{var u=P(e.ownerDocument),d=u.height,p=u.width;r.top+=c.top-c.marginTop,r.bottom=d+c.top,r.left+=c.left-c.marginLeft,r.right=p+c.left}}var l="number"==typeof(o=o||0);return r.left+=l?o:o.left||0,r.top+=l?o:o.top||0,r.right-=l?o:o.right||0,r.bottom-=l?o:o.bottom||0,r}function M(e,t,o,i,n){var r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0;if(-1===e.indexOf("auto"))return e;var s=D(o,i,r,n),a={top:{width:s.width,height:t.top-s.top},right:{width:s.right-t.right,height:s.height},bottom:{width:s.width,height:s.bottom-t.bottom},left:{width:t.left-s.left,height:s.height}},c=Object.keys(a).map(function(e){return k({key:e},a[e],{area:(t=a[e],t.width*t.height)});var t}).sort(function(e,t){return t.area-e.area}),u=c.filter(function(e){var t=e.width,i=e.height;return t>=o.clientWidth&&i>=o.clientHeight}),d=u.length>0?u[0].key:c[0].key,p=e.split("-")[1];return d+(p?"-"+p:"")}function R(e,t,o){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;return N(o,i?F(t):C(t,y(o)),i)}function H(e){var t=e.ownerDocument.defaultView.getComputedStyle(e),o=parseFloat(t.marginTop||0)+parseFloat(t.marginBottom||0),i=parseFloat(t.marginLeft||0)+parseFloat(t.marginRight||0);return{width:e.offsetWidth+i,height:e.offsetHeight+o}}function G(e){var t={left:"right",right:"left",bottom:"top",top:"bottom"};return e.replace(/left|right|bottom|top/g,function(e){return t[e]})}function B(e,t,o){o=o.split("-")[0];var i=H(e),n={width:i.width,height:i.height},r=-1!==["right","left"].indexOf(o),s=r?"top":"left",a=r?"left":"top",c=r?"height":"width",u=r?"width":"height";return n[s]=t[s]+t[c]/2-i[c]/2,n[a]=o===a?t[a]-i[u]:t[G(a)],n}function q(e,t){return Array.prototype.find?e.find(t):e.filter(t)[0]}function z(e,t,o){return(void 0===o?e:e.slice(0,function(e,t,o){if(Array.prototype.findIndex)return e.findIndex(function(e){return e[t]===o});var i=q(e,function(e){return e[t]===o});return e.indexOf(i)}(e,"name",o))).forEach(function(e){e.function&&console.warn("`modifier.function` is deprecated, use `modifier.fn`!");var o=e.function||e.fn;e.enabled&&m(o)&&(t.offsets.popper=U(t.offsets.popper),t.offsets.reference=U(t.offsets.reference),t=o(t,e))}),t}function V(){if(!this.state.isDestroyed){var e={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};e.offsets.reference=R(this.state,this.popper,this.reference,this.options.positionFixed),e.placement=M(this.options.placement,e.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),e.originalPlacement=e.placement,e.positionFixed=this.options.positionFixed,e.offsets.popper=B(this.popper,e.offsets.reference,e.placement),e.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",e=z(this.modifiers,e),this.state.isCreated?this.options.onUpdate(e):(this.state.isCreated=!0,this.options.onCreate(e))}}function W(e,t){return e.some(function(e){var o=e.name;return e.enabled&&o===t})}function K(e){for(var t=[!1,"ms","Webkit","Moz","O"],o=e.charAt(0).toUpperCase()+e.slice(1),i=0;i1&&void 0!==arguments[1]&&arguments[1],o=se.indexOf(e),i=se.slice(o+1).concat(se.slice(0,o));return t?i.reverse():i}var ce={shift:{order:100,enabled:!0,fn:function(e){var t=e.placement,o=t.split("-")[0],i=t.split("-")[1];if(i){var n=e.offsets,r=n.reference,s=n.popper,a=-1!==["bottom","top"].indexOf(o),c=a?"left":"top",u=a?"width":"height",d={start:S({},c,r[c]),end:S({},c,r[c]+r[u]-s[u])};e.offsets.popper=k({},s,d[i])}return e}},offset:{order:200,enabled:!0,fn:function(e,t){var o,i=t.offset,n=e.placement,r=e.offsets,s=r.popper,a=r.reference,c=n.split("-")[0];return o=te(+i)?[+i,0]:function(e,t,o,i){var n=[0,0],r=-1!==["right","left"].indexOf(i),s=e.split(/(\+|\-)/).map(function(e){return e.trim()}),a=s.indexOf(q(s,function(e){return-1!==e.search(/,|\s/)}));s[a]&&-1===s[a].indexOf(",")&&console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");var c=/\s*,\s*|\s+/,u=-1!==a?[s.slice(0,a).concat([s[a].split(c)[0]]),[s[a].split(c)[1]].concat(s.slice(a+1))]:[s];return(u=u.map(function(e,i){var n=(1===i?!r:r)?"height":"width",s=!1;return e.reduce(function(e,t){return""===e[e.length-1]&&-1!==["+","-"].indexOf(t)?(e[e.length-1]=t,s=!0,e):s?(e[e.length-1]+=t,s=!1,e):e.concat(t)},[]).map(function(e){return function(e,t,o,i){var n=e.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),r=+n[1],s=n[2];return r?0===s.indexOf("%")?U("%p"===s?o:i)[t]/100*r:"vh"===s||"vw"===s?("vh"===s?Math.max(document.documentElement.clientHeight,window.innerHeight||0):Math.max(document.documentElement.clientWidth,window.innerWidth||0))/100*r:r:e}(e,n,t,o)})})).forEach(function(e,t){e.forEach(function(o,i){te(o)&&(n[t]+=o*("-"===e[i-1]?-1:1))})}),n}(i,s,a,c),"left"===c?(s.top+=o[0],s.left-=o[1]):"right"===c?(s.top+=o[0],s.left+=o[1]):"top"===c?(s.left+=o[0],s.top-=o[1]):"bottom"===c&&(s.left+=o[0],s.top+=o[1]),e.popper=s,e},offset:0},preventOverflow:{order:300,enabled:!0,fn:function(e,t){var o=t.boundariesElement||O(e.instance.popper);e.instance.reference===o&&(o=O(o));var i=K("transform"),n=e.instance.popper.style,r=n.top,s=n.left,a=n[i];n.top="",n.left="",n[i]="";var c=D(e.instance.popper,e.instance.reference,t.padding,o,e.positionFixed);n.top=r,n.left=s,n[i]=a,t.boundaries=c;var u=t.priority,d=e.offsets.popper,p={primary:function(e){var o=d[e];return d[e]c[e]&&!t.escapeWithReference&&(i=Math.min(d[o],c[e]-("right"===e?d.width:d.height))),S({},o,i)}};return u.forEach(function(e){var t=-1!==["left","top"].indexOf(e)?"primary":"secondary";d=k({},d,p[t](e))}),e.offsets.popper=d,e},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,o=t.popper,i=t.reference,n=e.placement.split("-")[0],r=Math.floor,s=-1!==["top","bottom"].indexOf(n),a=s?"right":"bottom",c=s?"left":"top",u=s?"width":"height";return o[a]r(i[a])&&(e.offsets.popper[c]=r(i[a])),e}},arrow:{order:500,enabled:!0,fn:function(e,t){var o;if(!ne(e.instance.modifiers,"arrow","keepTogether"))return e;var i=t.element;if("string"==typeof i){if(!(i=e.instance.popper.querySelector(i)))return e}else if(!e.instance.popper.contains(i))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),e;var n=e.placement.split("-")[0],r=e.offsets,s=r.popper,a=r.reference,c=-1!==["left","right"].indexOf(n),u=c?"height":"width",d=c?"Top":"Left",p=d.toLowerCase(),l=c?"left":"top",f=c?"bottom":"right",h=H(i)[u];a[f]-hs[f]&&(e.offsets.popper[p]+=a[p]+h-s[f]),e.offsets.popper=U(e.offsets.popper);var m=a[p]+a[u]/2-h/2,g=v(e.instance.popper),b=parseFloat(g["margin"+d]),y=parseFloat(g["border"+d+"Width"]),_=m-e.offsets.popper[p]-b-y;return _=Math.max(Math.min(s[u]-h,_),0),e.arrowElement=i,e.offsets.arrow=(S(o={},p,Math.round(_)),S(o,l,""),o),e},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(e,t){if(W(e.instance.modifiers,"inner"))return e;if(e.flipped&&e.placement===e.originalPlacement)return e;var o=D(e.instance.popper,e.instance.reference,t.padding,t.boundariesElement,e.positionFixed),i=e.placement.split("-")[0],n=G(i),r=e.placement.split("-")[1]||"",s=[];switch(t.behavior){case"flip":s=[i,n];break;case"clockwise":s=ae(i);break;case"counterclockwise":s=ae(i,!0);break;default:s=t.behavior}return s.forEach(function(a,c){if(i!==a||s.length===c+1)return e;i=e.placement.split("-")[0],n=G(i);var u=e.offsets.popper,d=e.offsets.reference,p=Math.floor,l="left"===i&&p(u.right)>p(d.left)||"right"===i&&p(u.left)p(d.top)||"bottom"===i&&p(u.top)p(o.right),m=p(u.top)p(o.bottom),g="left"===i&&f||"right"===i&&h||"top"===i&&m||"bottom"===i&&v,b=-1!==["top","bottom"].indexOf(i),y=!!t.flipVariations&&(b&&"start"===r&&f||b&&"end"===r&&h||!b&&"start"===r&&m||!b&&"end"===r&&v),_=!!t.flipVariationsByContent&&(b&&"start"===r&&h||b&&"end"===r&&f||!b&&"start"===r&&v||!b&&"end"===r&&m),w=y||_;(l||g||w)&&(e.flipped=!0,(l||g)&&(i=s[c+1]),w&&(r=function(e){return"end"===e?"start":"start"===e?"end":e}(r)),e.placement=i+(r?"-"+r:""),e.offsets.popper=k({},e.offsets.popper,B(e.instance.popper,e.offsets.reference,e.placement)),e=z(e.instance.modifiers,e,"flip"))}),e},behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,o=t.split("-")[0],i=e.offsets,n=i.popper,r=i.reference,s=-1!==["left","right"].indexOf(o),a=-1===["top","left"].indexOf(o);return n[s?"left":"top"]=r[o]-(a?n[s?"width":"height"]:0),e.placement=G(t),e.offsets.popper=U(n),e}},hide:{order:800,enabled:!0,fn:function(e){if(!ne(e.instance.modifiers,"hide","preventOverflow"))return e;var t=e.offsets.reference,o=q(e.instance.modifiers,function(e){return"preventOverflow"===e.name}).boundaries;if(t.bottomo.right||t.top>o.bottom||t.right2&&void 0!==arguments[2]?arguments[2]:{};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.scheduleUpdate=function(){return requestAnimationFrame(i.update)},this.update=h(this.update.bind(this)),this.options=k({},e.Defaults,n),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=t&&t.jquery?t[0]:t,this.popper=o&&o.jquery?o[0]:o,this.options.modifiers={},Object.keys(k({},e.Defaults.modifiers,n.modifiers)).forEach(function(t){i.options.modifiers[t]=k({},e.Defaults.modifiers[t]||{},n.modifiers?n.modifiers[t]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(e){return k({name:e},i.options.modifiers[e])}).sort(function(e,t){return e.order-t.order}),this.modifiers.forEach(function(e){e.enabled&&m(e.onLoad)&&e.onLoad(i.reference,i.popper,i.options,e,i.state)}),this.update();var r=this.options.eventsEnabled;r&&this.enableEventListeners(),this.state.eventsEnabled=r}return $(e,[{key:"update",value:function(){return V.call(this)}},{key:"destroy",value:function(){return Y.call(this)}},{key:"enableEventListeners",value:function(){return Z.call(this)}},{key:"disableEventListeners",value:function(){return ee.call(this)}}]),e}();de.Utils=("undefined"!=typeof window?window:globalThis).PopperUtils,de.placements=re,de.Defaults=ue;const pe=de;var le,fe=o(2404),he=o.n(fe);function me(){me.init||(me.init=!0,le=-1!==function(){var e=window.navigator.userAgent,t=e.indexOf("MSIE ");if(t>0)return parseInt(e.substring(t+5,e.indexOf(".",t)),10);if(e.indexOf("Trident/")>0){var o=e.indexOf("rv:");return parseInt(e.substring(o+3,e.indexOf(".",o)),10)}var i=e.indexOf("Edge/");return i>0?parseInt(e.substring(i+5,e.indexOf(".",i)),10):-1}())}function ve(e,t,o,i,n,r,s,a,c,u){"boolean"!=typeof s&&(c=a,a=s,s=!1);var d,p="function"==typeof o?o.options:o;if(e&&e.render&&(p.render=e.render,p.staticRenderFns=e.staticRenderFns,p._compiled=!0,n&&(p.functional=!0)),i&&(p._scopeId=i),r?(d=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),t&&t.call(this,c(e)),e&&e._registeredComponents&&e._registeredComponents.add(r)},p._ssrRegister=d):t&&(d=s?function(e){t.call(this,u(e,this.$root.$options.shadowRoot))}:function(e){t.call(this,a(e))}),d)if(p.functional){var l=p.render;p.render=function(e,t){return d.call(t),l(e,t)}}else{var f=p.beforeCreate;p.beforeCreate=f?[].concat(f,d):[d]}return o}var ge={name:"ResizeObserver",props:{emitOnMount:{type:Boolean,default:!1},ignoreWidth:{type:Boolean,default:!1},ignoreHeight:{type:Boolean,default:!1}},mounted:function(){var e=this;me(),this.$nextTick(function(){e._w=e.$el.offsetWidth,e._h=e.$el.offsetHeight,e.emitOnMount&&e.emitSize()});var t=document.createElement("object");this._resizeObject=t,t.setAttribute("aria-hidden","true"),t.setAttribute("tabindex",-1),t.onload=this.addResizeHandlers,t.type="text/html",le&&this.$el.appendChild(t),t.data="about:blank",le||this.$el.appendChild(t)},beforeDestroy:function(){this.removeResizeHandlers()},methods:{compareAndNotify:function(){(!this.ignoreWidth&&this._w!==this.$el.offsetWidth||!this.ignoreHeight&&this._h!==this.$el.offsetHeight)&&(this._w=this.$el.offsetWidth,this._h=this.$el.offsetHeight,this.emitSize())},emitSize:function(){this.$emit("notify",{width:this._w,height:this._h})},addResizeHandlers:function(){this._resizeObject.contentDocument.defaultView.addEventListener("resize",this.compareAndNotify),this.compareAndNotify()},removeResizeHandlers:function(){this._resizeObject&&this._resizeObject.onload&&(!le&&this._resizeObject.contentDocument&&this._resizeObject.contentDocument.defaultView.removeEventListener("resize",this.compareAndNotify),this.$el.removeChild(this._resizeObject),this._resizeObject.onload=null,this._resizeObject=null)}}},be=function(){var e=this.$createElement;return(this._self._c||e)("div",{staticClass:"resize-observer",attrs:{tabindex:"-1"}})};be._withStripped=!0;var ye=ve({render:be,staticRenderFns:[]},void 0,ge,"data-v-8859cc6c",!1,void 0,!1,void 0,void 0,void 0),_e={version:"1.0.1",install:function(e){e.component("resize-observer",ye),e.component("ResizeObserver",ye)}},we=null;"undefined"!=typeof window?we=window.Vue:"undefined"!=typeof globalThis&&(we=globalThis.Vue),we&&we.use(_e);var Ae=o(55364),Oe=o.n(Ae),Ee=function(){};function Ce(e){return"string"==typeof e&&(e=e.split(" ")),e}function Le(e,t){var o,i=Ce(t);o=e.className instanceof Ee?Ce(e.className.baseVal):Ce(e.className),i.forEach(function(e){-1===o.indexOf(e)&&o.push(e)}),e instanceof SVGElement?e.setAttribute("class",o.join(" ")):e.className=o.join(" ")}function Te(e,t){var o,i=Ce(t);o=e.className instanceof Ee?Ce(e.className.baseVal):Ce(e.className),i.forEach(function(e){var t=o.indexOf(e);-1!==t&&o.splice(t,1)}),e instanceof SVGElement?e.setAttribute("class",o.join(" ")):e.className=o.join(" ")}"undefined"!=typeof window&&(Ee=window.SVGAnimatedString);var Ie=!1;if("undefined"!=typeof window){Ie=!1;try{var Pe=Object.defineProperty({},"passive",{get:function(){Ie=!0}});window.addEventListener("test",null,Pe)}catch(e){}}function $e(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),o.push.apply(o,i)}return o}function Se(e){for(var t=1;t
',trigger:"hover focus",offset:0},Ue=[],xe=function(){function e(t,o){var i=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),d(this,"_events",[]),d(this,"_setTooltipNodeEvent",function(e,t,o,n){var r=e.relatedreference||e.toElement||e.relatedTarget;return!!i._tooltipNode.contains(r)&&(i._tooltipNode.addEventListener(e.type,function o(r){var s=r.relatedreference||r.toElement||r.relatedTarget;i._tooltipNode.removeEventListener(e.type,o),t.contains(s)||i._scheduleHide(t,n.delay,n,r)}),!0)}),o=Se(Se({},ke),o),t.jquery&&(t=t[0]),this.show=this.show.bind(this),this.hide=this.hide.bind(this),this.reference=t,this.options=o,this._isOpen=!1,this._init()}return t=e,(o=[{key:"show",value:function(){this._show(this.reference,this.options)}},{key:"hide",value:function(){this._hide()}},{key:"dispose",value:function(){this._dispose()}},{key:"toggle",value:function(){return this._isOpen?this.hide():this.show()}},{key:"setClasses",value:function(e){this._classes=e}},{key:"setContent",value:function(e){this.options.title=e,this._tooltipNode&&this._setContent(e,this.options)}},{key:"setOptions",value:function(e){var t=!1,o=e&&e.classes||ze.options.defaultClass;he()(this._classes,o)||(this.setClasses(o),t=!0),e=Re(e);var i=!1,n=!1;for(var r in this.options.offset===e.offset&&this.options.placement===e.placement||(i=!0),(this.options.template!==e.template||this.options.trigger!==e.trigger||this.options.container!==e.container||t)&&(n=!0),e)this.options[r]=e[r];if(this._tooltipNode)if(n){var s=this._isOpen;this.dispose(),this._init(),s&&this.show()}else i&&this.popperInstance.update()}},{key:"_init",value:function(){var e="string"==typeof this.options.trigger?this.options.trigger.split(" "):[];this._isDisposed=!1,this._enableDocumentTouch=-1===e.indexOf("manual"),e=e.filter(function(e){return-1!==["click","hover","focus"].indexOf(e)}),this._setEventListeners(this.reference,e,this.options),this.$_originalTitle=this.reference.getAttribute("title"),this.reference.removeAttribute("title"),this.reference.setAttribute("data-original-title",this.$_originalTitle)}},{key:"_create",value:function(e,t){var o=this,i=window.document.createElement("div");i.innerHTML=t.trim();var n=i.childNodes[0];return n.id=this.options.ariaId||"tooltip_".concat(Math.random().toString(36).substr(2,10)),n.setAttribute("aria-hidden","true"),this.options.autoHide&&-1!==this.options.trigger.indexOf("hover")&&(n.addEventListener("mouseenter",function(t){return o._scheduleHide(e,o.options.delay,o.options,t)}),n.addEventListener("click",function(t){return o._scheduleHide(e,o.options.delay,o.options,t)})),n}},{key:"_setContent",value:function(e,t){var o=this;this.asyncContent=!1,this._applyContent(e,t).then(function(){o.popperInstance&&o.popperInstance.update()})}},{key:"_applyContent",value:function(e,t){var o=this;return new Promise(function(i,n){var r=t.html,s=o._tooltipNode;if(s){var a=s.querySelector(o.options.innerSelector);if(1===e.nodeType){if(r){for(;a.firstChild;)a.removeChild(a.firstChild);a.appendChild(e)}}else{if("function"==typeof e){var c=e();return void(c&&"function"==typeof c.then?(o.asyncContent=!0,t.loadingClass&&Le(s,t.loadingClass),t.loadingContent&&o._applyContent(t.loadingContent,t),c.then(function(e){return t.loadingClass&&Te(s,t.loadingClass),o._applyContent(e,t)}).then(i).catch(n)):o._applyContent(c,t).then(i).catch(n))}r?a.innerHTML=e:a.innerText=e}i()}})}},{key:"_show",value:function(e,t){if(!t||"string"!=typeof t.container||document.querySelector(t.container)){clearTimeout(this._disposeTimer),delete(t=Object.assign({},t)).offset;var o=!0;this._tooltipNode&&(Le(this._tooltipNode,this._classes),o=!1);var i=this._ensureShown(e,t);return o&&this._tooltipNode&&Le(this._tooltipNode,this._classes),Le(e,["v-tooltip-open"]),i}}},{key:"_ensureShown",value:function(e,t){var o=this;if(this._isOpen)return this;if(this._isOpen=!0,Ue.push(this),this._tooltipNode)return this._tooltipNode.style.display="",this._tooltipNode.setAttribute("aria-hidden","false"),this.popperInstance.enableEventListeners(),this.popperInstance.update(),this.asyncContent&&this._setContent(t.title,t),this;var i=e.getAttribute("title")||t.title;if(!i)return this;var n=this._create(e,t.template);this._tooltipNode=n,e.setAttribute("aria-describedby",n.id);var r=this._findContainer(t.container,e);this._append(n,r);var s=Se(Se({},t.popperOptions),{},{placement:t.placement});return s.modifiers=Se(Se({},s.modifiers),{},{arrow:{element:this.options.arrowSelector}}),t.boundariesElement&&(s.modifiers.preventOverflow={boundariesElement:t.boundariesElement}),this.popperInstance=new pe(e,n,s),this._setContent(i,t),requestAnimationFrame(function(){!o._isDisposed&&o.popperInstance?(o.popperInstance.update(),requestAnimationFrame(function(){o._isDisposed?o.dispose():o._isOpen&&n.setAttribute("aria-hidden","false")})):o.dispose()}),this}},{key:"_noLongerOpen",value:function(){var e=Ue.indexOf(this);-1!==e&&Ue.splice(e,1)}},{key:"_hide",value:function(){var e=this;if(!this._isOpen)return this;this._isOpen=!1,this._noLongerOpen(),this._tooltipNode.style.display="none",this._tooltipNode.setAttribute("aria-hidden","true"),this.popperInstance&&this.popperInstance.disableEventListeners(),clearTimeout(this._disposeTimer);var t=ze.options.disposeTimeout;return null!==t&&(this._disposeTimer=setTimeout(function(){e._tooltipNode&&(e._tooltipNode.removeEventListener("mouseenter",e.hide),e._tooltipNode.removeEventListener("click",e.hide),e._removeTooltipNode())},t)),Te(this.reference,["v-tooltip-open"]),this}},{key:"_removeTooltipNode",value:function(){if(this._tooltipNode){var e=this._tooltipNode.parentNode;e&&(e.removeChild(this._tooltipNode),this.reference.removeAttribute("aria-describedby")),this._tooltipNode=null}}},{key:"_dispose",value:function(){var e=this;return this._isDisposed=!0,this.reference.removeAttribute("data-original-title"),this.$_originalTitle&&this.reference.setAttribute("title",this.$_originalTitle),this._events.forEach(function(t){var o=t.func,i=t.event;e.reference.removeEventListener(i,o)}),this._events=[],this._tooltipNode?(this._hide(),this._tooltipNode.removeEventListener("mouseenter",this.hide),this._tooltipNode.removeEventListener("click",this.hide),this.popperInstance.destroy(),this.popperInstance.options.removeOnDestroy||this._removeTooltipNode()):this._noLongerOpen(),this}},{key:"_findContainer",value:function(e,t){return"string"==typeof e?e=window.document.querySelector(e):!1===e&&(e=t.parentNode),e}},{key:"_append",value:function(e,t){t.appendChild(e)}},{key:"_setEventListeners",value:function(e,t,o){var i=this,n=[],r=[];t.forEach(function(e){switch(e){case"hover":n.push("mouseenter"),r.push("mouseleave"),i.options.hideOnTargetClick&&r.push("click");break;case"focus":n.push("focus"),r.push("blur"),i.options.hideOnTargetClick&&r.push("click");break;case"click":n.push("click"),r.push("click")}}),n.forEach(function(t){var n=function(t){!0!==i._isOpen&&(t.usedByTooltip=!0,i._scheduleShow(e,o.delay,o,t))};i._events.push({event:t,func:n}),e.addEventListener(t,n)}),r.forEach(function(t){var n=function(t){!0!==t.usedByTooltip&&i._scheduleHide(e,o.delay,o,t)};i._events.push({event:t,func:n}),e.addEventListener(t,n)})}},{key:"_onDocumentTouch",value:function(e){this._enableDocumentTouch&&this._scheduleHide(this.reference,this.options.delay,this.options,e)}},{key:"_scheduleShow",value:function(e,t,o){var i=this,n=t&&t.show||t||0;clearTimeout(this._scheduleTimer),this._scheduleTimer=window.setTimeout(function(){return i._show(e,o)},n)}},{key:"_scheduleHide",value:function(e,t,o,i){var n=this,r=t&&t.hide||t||0;clearTimeout(this._scheduleTimer),this._scheduleTimer=window.setTimeout(function(){if(!1!==n._isOpen&&n._tooltipNode.ownerDocument.body.contains(n._tooltipNode)){if("mouseleave"===i.type&&n._setTooltipNodeEvent(i,e,t,o))return;n._hide(e,o)}},r)}}])&&p(t.prototype,o),Object.defineProperty(t,"prototype",{writable:!1}),e;var t,o}();function Ne(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),o.push.apply(o,i)}return o}function je(e){for(var t=1;t
',defaultArrowSelector:".tooltip-arrow, .tooltip__arrow",defaultInnerSelector:".tooltip-inner, .tooltip__inner",defaultDelay:0,defaultTrigger:"hover focus",defaultOffset:0,defaultContainer:"body",defaultBoundariesElement:void 0,defaultPopperOptions:{},defaultLoadingClass:"tooltip-loading",defaultLoadingContent:"...",autoHide:!0,defaultHideOnTargetClick:!0,disposeTimeout:5e3,popover:{defaultPlacement:"bottom",defaultClass:"vue-popover-theme",defaultBaseClass:"tooltip popover",defaultWrapperClass:"wrapper",defaultInnerClass:"tooltip-inner popover-inner",defaultArrowClass:"tooltip-arrow popover-arrow",defaultOpenClass:"open",defaultDelay:0,defaultTrigger:"click",defaultOffset:0,defaultContainer:"body",defaultBoundariesElement:void 0,defaultPopperOptions:{},defaultAutoHide:!0,defaultHandleResize:!0}};function Re(e){var t={placement:void 0!==e.placement?e.placement:ze.options.defaultPlacement,delay:void 0!==e.delay?e.delay:ze.options.defaultDelay,html:void 0!==e.html?e.html:ze.options.defaultHtml,template:void 0!==e.template?e.template:ze.options.defaultTemplate,arrowSelector:void 0!==e.arrowSelector?e.arrowSelector:ze.options.defaultArrowSelector,innerSelector:void 0!==e.innerSelector?e.innerSelector:ze.options.defaultInnerSelector,trigger:void 0!==e.trigger?e.trigger:ze.options.defaultTrigger,offset:void 0!==e.offset?e.offset:ze.options.defaultOffset,container:void 0!==e.container?e.container:ze.options.defaultContainer,boundariesElement:void 0!==e.boundariesElement?e.boundariesElement:ze.options.defaultBoundariesElement,autoHide:void 0!==e.autoHide?e.autoHide:ze.options.autoHide,hideOnTargetClick:void 0!==e.hideOnTargetClick?e.hideOnTargetClick:ze.options.defaultHideOnTargetClick,loadingClass:void 0!==e.loadingClass?e.loadingClass:ze.options.defaultLoadingClass,loadingContent:void 0!==e.loadingContent?e.loadingContent:ze.options.defaultLoadingContent,popperOptions:je({},void 0!==e.popperOptions?e.popperOptions:ze.options.defaultPopperOptions)};if(t.offset){var o=c(t.offset),i=t.offset;("number"===o||"string"===o&&-1===i.indexOf(","))&&(i="0, ".concat(i)),t.popperOptions.modifiers||(t.popperOptions.modifiers={}),t.popperOptions.modifiers.offset={offset:i}}return t.trigger&&-1!==t.trigger.indexOf("click")&&(t.hideOnTargetClick=!1),t}function He(e,t){for(var o=e.placement,i=0;i2&&void 0!==arguments[2]?arguments[2]:{},i=Ge(t),n=void 0!==t.classes?t.classes:ze.options.defaultClass,r=je({title:i},Re(je(je({},"object"===c(t)?t:{}),{},{placement:He(t,o)}))),s=e._tooltip=new xe(e,r);s.setClasses(n),s._vueEl=e;var a=void 0!==t.targetClasses?t.targetClasses:ze.options.defaultTargetClass;return e._tooltipTargetClasses=a,Le(e,a),s}(e,o,n),void 0!==o.show&&o.show!==e._tooltipOldShow&&(e._tooltipOldShow=o.show,o.show?i.show():i.hide())):Be(e)}var ze={options:Me,bind:qe,update:qe,unbind:function(e){Be(e)}};function Ve(e){e.addEventListener("click",Ke),e.addEventListener("touchstart",Ye,!!Ie&&{passive:!0})}function We(e){e.removeEventListener("click",Ke),e.removeEventListener("touchstart",Ye),e.removeEventListener("touchend",Je),e.removeEventListener("touchcancel",Qe)}function Ke(e){var t=e.currentTarget;e.closePopover=!t.$_vclosepopover_touch,e.closeAllPopover=t.$_closePopoverModifiers&&!!t.$_closePopoverModifiers.all}function Ye(e){if(1===e.changedTouches.length){var t=e.currentTarget;t.$_vclosepopover_touch=!0;var o=e.changedTouches[0];t.$_vclosepopover_touchPoint=o,t.addEventListener("touchend",Je),t.addEventListener("touchcancel",Qe)}}function Je(e){var t=e.currentTarget;if(t.$_vclosepopover_touch=!1,1===e.changedTouches.length){var o=e.changedTouches[0],i=t.$_vclosepopover_touchPoint;e.closePopover=Math.abs(o.screenY-i.screenY)<20&&Math.abs(o.screenX-i.screenX)<20,e.closeAllPopover=t.$_closePopoverModifiers&&!!t.$_closePopoverModifiers.all}}function Qe(e){e.currentTarget.$_vclosepopover_touch=!1}var Xe={bind:function(e,t){var o=t.value,i=t.modifiers;e.$_closePopoverModifiers=i,(void 0===o||o)&&Ve(e)},update:function(e,t){var o=t.value,i=t.oldValue,n=t.modifiers;e.$_closePopoverModifiers=n,o!==i&&(void 0===o||o?Ve(e):We(e))},unbind:function(e){We(e)}};function Ze(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),o.push.apply(o,i)}return o}function et(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:{},o=t.event;t.skipDelay;var i=t.force;!(void 0!==i&&i)&&this.disabled||(this.$_scheduleShow(o),this.$emit("show")),this.$emit("update:open",!0),this.$_beingShowed=!0,requestAnimationFrame(function(){e.$_beingShowed=!1})},hide:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.event;e.skipDelay,this.$_scheduleHide(t),this.$emit("hide"),this.$emit("update:open",!1)},dispose:function(){if(this.$_isDisposed=!0,this.$_removeEventListeners(),this.hide({skipDelay:!0}),this.popperInstance&&(this.popperInstance.destroy(),!this.popperInstance.options.removeOnDestroy)){var e=this.$refs.popover;e.parentNode&&e.parentNode.removeChild(e)}this.$_mounted=!1,this.popperInstance=null,this.isOpen=!1,this.$emit("dispose")},$_init:function(){-1===this.trigger.indexOf("manual")&&this.$_addEventListeners()},$_show:function(){var e=this,t=this.$refs.trigger,o=this.$refs.popover;if(clearTimeout(this.$_disposeTimer),!this.isOpen){if(this.popperInstance&&(this.isOpen=!0,this.popperInstance.enableEventListeners(),this.popperInstance.scheduleUpdate()),!this.$_mounted){var i=this.$_findContainer(this.container,t);if(!i)return void console.warn("No container for popover",this);i.appendChild(o),this.$_mounted=!0,this.isOpen=!1,this.popperInstance&&requestAnimationFrame(function(){e.hidden||(e.isOpen=!0)})}if(!this.popperInstance){var n=et(et({},this.popperOptions),{},{placement:this.placement});if(n.modifiers=et(et({},n.modifiers),{},{arrow:et(et({},n.modifiers&&n.modifiers.arrow),{},{element:this.$refs.arrow})}),this.offset){var r=this.$_getOffset();n.modifiers.offset=et(et({},n.modifiers&&n.modifiers.offset),{},{offset:r})}this.boundariesElement&&(n.modifiers.preventOverflow=et(et({},n.modifiers&&n.modifiers.preventOverflow),{},{boundariesElement:this.boundariesElement})),this.popperInstance=new pe(t,o,n),requestAnimationFrame(function(){if(e.hidden)return e.hidden=!1,void e.$_hide();!e.$_isDisposed&&e.popperInstance?(e.popperInstance.scheduleUpdate(),requestAnimationFrame(function(){if(e.hidden)return e.hidden=!1,void e.$_hide();e.$_isDisposed?e.dispose():e.isOpen=!0})):e.dispose()})}var s=this.openGroup;if(s)for(var a,c=0;c1&&void 0!==arguments[1]&&arguments[1];if(clearTimeout(this.$_scheduleTimer),e)this.$_show();else{var t=parseInt(this.delay&&this.delay.show||this.delay||0);this.$_scheduleTimer=setTimeout(this.$_show.bind(this),t)}},$_scheduleHide:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,o=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(clearTimeout(this.$_scheduleTimer),o)this.$_hide();else{var i=parseInt(this.delay&&this.delay.hide||this.delay||0);this.$_scheduleTimer=setTimeout(function(){if(e.isOpen){if(t&&"mouseleave"===t.type&&e.$_setTooltipNodeEvent(t))return;e.$_hide()}},i)}},$_setTooltipNodeEvent:function(e){var t=this,o=this.$refs.trigger,i=this.$refs.popover,n=e.relatedreference||e.toElement||e.relatedTarget;return!!i.contains(n)&&(i.addEventListener(e.type,function n(r){var s=r.relatedreference||r.toElement||r.relatedTarget;i.removeEventListener(e.type,n),o.contains(s)||t.hide({event:r})}),!0)},$_removeEventListeners:function(){var e=this.$refs.trigger;this.$_events.forEach(function(t){var o=t.func,i=t.event;e.removeEventListener(i,o)}),this.$_events=[]},$_updatePopper:function(e){this.popperInstance&&(e(),this.isOpen&&this.popperInstance.scheduleUpdate())},$_restartPopper:function(){if(this.popperInstance){var e=this.isOpen;this.dispose(),this.$_isDisposed=!1,this.$_init(),e&&this.show({skipDelay:!0,force:!0})}},$_handleGlobalClose:function(e){var t=this,o=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.$_beingShowed||(this.hide({event:e}),e.closePopover?this.$emit("close-directive"):this.$emit("auto-hide"),o&&(this.$_preventOpen=!0,setTimeout(function(){t.$_preventOpen=!1},300)))},$_handleResize:function(){this.isOpen&&this.popperInstance&&(this.popperInstance.scheduleUpdate(),this.$emit("resize"))}}};function st(e){for(var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],o=function(o){var i=it[o];if(i.$refs.popover){var n=i.$refs.popover.contains(e.target);requestAnimationFrame(function(){(e.closeAllPopover||e.closePopover&&n||i.autoHide&&!n)&&i.$_handleGlobalClose(e,t)})}},i=0;i1&&void 0!==arguments[1]?arguments[1]:{};if(!e.installed){e.installed=!0;var i={};Oe()(i,Me,o),pt.options=i,ze.options=i,t.directive("tooltip",ze),t.directive("close-popover",Xe),t.component("VPopover",dt)}},get enabled(){return Fe.enabled},set enabled(e){Fe.enabled=e}},lt=null;"undefined"!=typeof window?lt=window.Vue:"undefined"!=typeof globalThis&&(lt=globalThis.Vue),lt&<.use(pt);const ft=pt;var ht=o(85471),mt=o(95353),vt=o(58723),gt=o(22378);const bt=(0,ht.pM)({__name:"SettingsApp",setup:e=>({__sfc:!0,NcContent:gt.A})}),yt=(0,o(14486).A)(bt,function(){var e=this,t=e._self._c;return t(e._self._setupProxy.NcContent,{attrs:{"app-name":"settings"}},[t("router-view",{attrs:{name:"navigation"}}),e._v(" "),t("router-view"),e._v(" "),t("router-view",{attrs:{name:"sidebar"}})],1)},[],!1,null,null,null).exports;var _t=o(63814),wt=o(40173);const At=[{name:"users",path:"/:index(index.php/)?settings/users",components:{default:()=>Promise.all([o.e(4208),o.e(3239)]).then(o.bind(o,62691)),navigation:()=>Promise.all([o.e(4208),o.e(3239)]).then(o.bind(o,21299))},props:!0,children:[{path:":selectedGroup",name:"group"}]},{path:"/:index(index.php/)?settings/apps",name:"apps",redirect:{name:"apps-category",params:{category:(0,o(81222).C)("settings","appstoreEnabled",!0)?"discover":"installed"}},components:{default:()=>Promise.all([o.e(4208),o.e(4529)]).then(o.bind(o,6572)),navigation:()=>Promise.all([o.e(4208),o.e(4529)]).then(o.bind(o,31267)),sidebar:()=>Promise.all([o.e(4208),o.e(4529)]).then(o.bind(o,31278))},children:[{path:":category",name:"apps-category",children:[{path:":id",name:"apps-details"}]}]}];ht.Ay.use(wt.Ay);const Ot=new wt.Ay({mode:"history",base:(0,_t.Jv)(""),linkActiveClass:"active",routes:At});var Et=o(36347);(0,s.IF)(n.Ay),o.nc=(0,i.aV)(),ht.Ay.prototype.t=r.t,ht.Ay.prototype.n=r.n,ht.Ay.use(a.R2),ht.Ay.use(ft,{defaultHtml:!1}),ht.Ay.use(mt.Ay);const Ct=(0,Et.P)();(0,vt.O)(Ct,Ot);const Lt=(0,a.Ey)();Ct.dispatch("migrateLocalStorage"),new ht.Ay({router:Ot,store:Ct,pinia:Lt,render:e=>e(yt),el:"#content"})},87805(e,t,o){var i=o(43360),n=o(75288);e.exports=function(e,t,o){(void 0!==o&&!n(e[t],o)||void 0===o&&!(t in e))&&i(e,t,o)}},85250(e,t,o){var i=o(37217),n=o(87805),r=o(86649),s=o(42824),a=o(23805),c=o(37241),u=o(14974);e.exports=function e(t,o,d,p,l){t!==o&&r(o,function(r,c){if(l||(l=new i),a(r))s(t,o,c,d,e,p,l);else{var f=p?p(u(t,c),r,c+"",t,o,l):void 0;void 0===f&&(f=r),n(t,c,f)}},c)}},42824(e,t,o){var i=o(87805),n=o(93290),r=o(71961),s=o(23007),a=o(35529),c=o(72428),u=o(56449),d=o(83693),p=o(3656),l=o(1882),f=o(23805),h=o(11331),m=o(37167),v=o(14974),g=o(69884);e.exports=function(e,t,o,b,y,_,w){var A=v(e,o),O=v(t,o),E=w.get(O);if(E)i(e,o,E);else{var C=_?_(A,O,o+"",e,t,w):void 0,L=void 0===C;if(L){var T=u(O),I=!T&&p(O),P=!T&&!I&&m(O);C=O,T||I||P?u(A)?C=A:d(A)?C=s(A):I?(L=!1,C=n(O,!0)):P?(L=!1,C=r(O,!0)):C=[]:h(O)||c(O)?(C=A,c(A)?C=g(A):f(A)&&!l(A)||(C=a(O))):L=!1}L&&(w.set(O,C),y(C,O,b,_,w),w.delete(O)),i(e,o,C)}}},20999(e,t,o){var i=o(69302),n=o(36800);e.exports=function(e){return i(function(t,o){var i=-1,r=o.length,s=r>1?o[r-1]:void 0,a=r>2?o[2]:void 0;for(s=e.length>3&&"function"==typeof s?(r--,s):void 0,a&&n(o[0],o[1],a)&&(s=r<3?void 0:s,r=1),t=Object(t);++ik,il:()=>l});var i=("undefined"!=typeof window?window:"undefined"!=typeof globalThis?globalThis:{}).__VUE_DEVTOOLS_GLOBAL_HOOK__;function n(e,t){if(void 0===t&&(t=[]),null===e||"object"!=typeof e)return e;var o,i=(o=function(t){return t.original===e},t.filter(o)[0]);if(i)return i.copy;var r=Array.isArray(e)?[]:{};return t.push({original:e,copy:r}),Object.keys(e).forEach(function(o){r[o]=n(e[o],t)}),r}function r(e,t){Object.keys(e).forEach(function(o){return t(e[o],o)})}function s(e){return null!==e&&"object"==typeof e}var a=function(e,t){this.runtime=t,this._children=Object.create(null),this._rawModule=e;var o=e.state;this.state=("function"==typeof o?o():o)||{}},c={namespaced:{configurable:!0}};c.namespaced.get=function(){return!!this._rawModule.namespaced},a.prototype.addChild=function(e,t){this._children[e]=t},a.prototype.removeChild=function(e){delete this._children[e]},a.prototype.getChild=function(e){return this._children[e]},a.prototype.hasChild=function(e){return e in this._children},a.prototype.update=function(e){this._rawModule.namespaced=e.namespaced,e.actions&&(this._rawModule.actions=e.actions),e.mutations&&(this._rawModule.mutations=e.mutations),e.getters&&(this._rawModule.getters=e.getters)},a.prototype.forEachChild=function(e){r(this._children,e)},a.prototype.forEachGetter=function(e){this._rawModule.getters&&r(this._rawModule.getters,e)},a.prototype.forEachAction=function(e){this._rawModule.actions&&r(this._rawModule.actions,e)},a.prototype.forEachMutation=function(e){this._rawModule.mutations&&r(this._rawModule.mutations,e)},Object.defineProperties(a.prototype,c);var u,d=function(e){this.register([],e,!1)};function p(e,t,o){if(t.update(o),o.modules)for(var i in o.modules){if(!t.getChild(i))return;p(e.concat(i),t.getChild(i),o.modules[i])}}d.prototype.get=function(e){return e.reduce(function(e,t){return e.getChild(t)},this.root)},d.prototype.getNamespace=function(e){var t=this.root;return e.reduce(function(e,o){return e+((t=t.getChild(o)).namespaced?o+"/":"")},"")},d.prototype.update=function(e){p([],this.root,e)},d.prototype.register=function(e,t,o){var i=this;void 0===o&&(o=!0);var n=new a(t,o);0===e.length?this.root=n:this.get(e.slice(0,-1)).addChild(e[e.length-1],n),t.modules&&r(t.modules,function(t,n){i.register(e.concat(n),t,o)})},d.prototype.unregister=function(e){var t=this.get(e.slice(0,-1)),o=e[e.length-1],i=t.getChild(o);i&&i.runtime&&t.removeChild(o)},d.prototype.isRegistered=function(e){var t=this.get(e.slice(0,-1)),o=e[e.length-1];return!!t&&t.hasChild(o)};var l=function(e){var t=this;void 0===e&&(e={}),!u&&"undefined"!=typeof window&&window.Vue&&_(window.Vue);var o=e.plugins;void 0===o&&(o=[]);var n=e.strict;void 0===n&&(n=!1),this._committing=!1,this._actions=Object.create(null),this._actionSubscribers=[],this._mutations=Object.create(null),this._wrappedGetters=Object.create(null),this._modules=new d(e),this._modulesNamespaceMap=Object.create(null),this._subscribers=[],this._watcherVM=new u,this._makeLocalGettersCache=Object.create(null);var r=this,s=this.dispatch,a=this.commit;this.dispatch=function(e,t){return s.call(r,e,t)},this.commit=function(e,t,o){return a.call(r,e,t,o)},this.strict=n;var c=this._modules.root.state;g(this,c,[],this._modules.root),v(this,c),o.forEach(function(e){return e(t)}),(void 0!==e.devtools?e.devtools:u.config.devtools)&&function(e){i&&(e._devtoolHook=i,i.emit("vuex:init",e),i.on("vuex:travel-to-state",function(t){e.replaceState(t)}),e.subscribe(function(e,t){i.emit("vuex:mutation",e,t)},{prepend:!0}),e.subscribeAction(function(e,t){i.emit("vuex:action",e,t)},{prepend:!0}))}(this)},f={state:{configurable:!0}};function h(e,t,o){return t.indexOf(e)<0&&(o&&o.prepend?t.unshift(e):t.push(e)),function(){var o=t.indexOf(e);o>-1&&t.splice(o,1)}}function m(e,t){e._actions=Object.create(null),e._mutations=Object.create(null),e._wrappedGetters=Object.create(null),e._modulesNamespaceMap=Object.create(null);var o=e.state;g(e,o,[],e._modules.root,!0),v(e,o,t)}function v(e,t,o){var i=e._vm;e.getters={},e._makeLocalGettersCache=Object.create(null);var n=e._wrappedGetters,s={};r(n,function(t,o){s[o]=function(e,t){return function(){return e(t)}}(t,e),Object.defineProperty(e.getters,o,{get:function(){return e._vm[o]},enumerable:!0})});var a=u.config.silent;u.config.silent=!0,e._vm=new u({data:{$$state:t},computed:s}),u.config.silent=a,e.strict&&function(e){e._vm.$watch(function(){return this._data.$$state},function(){},{deep:!0,sync:!0})}(e),i&&(o&&e._withCommit(function(){i._data.$$state=null}),u.nextTick(function(){return i.$destroy()}))}function g(e,t,o,i,n){var r=!o.length,s=e._modules.getNamespace(o);if(i.namespaced&&(e._modulesNamespaceMap[s],e._modulesNamespaceMap[s]=i),!r&&!n){var a=b(t,o.slice(0,-1)),c=o[o.length-1];e._withCommit(function(){u.set(a,c,i.state)})}var d=i.context=function(e,t,o){var i=""===t,n={dispatch:i?e.dispatch:function(o,i,n){var r=y(o,i,n),s=r.payload,a=r.options,c=r.type;return a&&a.root||(c=t+c),e.dispatch(c,s)},commit:i?e.commit:function(o,i,n){var r=y(o,i,n),s=r.payload,a=r.options,c=r.type;a&&a.root||(c=t+c),e.commit(c,s,a)}};return Object.defineProperties(n,{getters:{get:i?function(){return e.getters}:function(){return function(e,t){if(!e._makeLocalGettersCache[t]){var o={},i=t.length;Object.keys(e.getters).forEach(function(n){if(n.slice(0,i)===t){var r=n.slice(i);Object.defineProperty(o,r,{get:function(){return e.getters[n]},enumerable:!0})}}),e._makeLocalGettersCache[t]=o}return e._makeLocalGettersCache[t]}(e,t)}},state:{get:function(){return b(e.state,o)}}}),n}(e,s,o);i.forEachMutation(function(t,o){!function(e,t,o,i){(e._mutations[t]||(e._mutations[t]=[])).push(function(t){o.call(e,i.state,t)})}(e,s+o,t,d)}),i.forEachAction(function(t,o){var i=t.root?o:s+o,n=t.handler||t;!function(e,t,o,i){(e._actions[t]||(e._actions[t]=[])).push(function(t){var n,r=o.call(e,{dispatch:i.dispatch,commit:i.commit,getters:i.getters,state:i.state,rootGetters:e.getters,rootState:e.state},t);return(n=r)&&"function"==typeof n.then||(r=Promise.resolve(r)),e._devtoolHook?r.catch(function(t){throw e._devtoolHook.emit("vuex:error",t),t}):r})}(e,i,n,d)}),i.forEachGetter(function(t,o){!function(e,t,o,i){e._wrappedGetters[t]||(e._wrappedGetters[t]=function(e){return o(i.state,i.getters,e.state,e.getters)})}(e,s+o,t,d)}),i.forEachChild(function(i,r){g(e,t,o.concat(r),i,n)})}function b(e,t){return t.reduce(function(e,t){return e[t]},e)}function y(e,t,o){return s(e)&&e.type&&(o=t,t=e,e=e.type),{type:e,payload:t,options:o}}function _(e){u&&e===u||function(e){if(Number(e.version.split(".")[0])>=2)e.mixin({beforeCreate:o});else{var t=e.prototype._init;e.prototype._init=function(e){void 0===e&&(e={}),e.init=e.init?[o].concat(e.init):o,t.call(this,e)}}function o(){var e=this.$options;e.store?this.$store="function"==typeof e.store?e.store():e.store:e.parent&&e.parent.$store&&(this.$store=e.parent.$store)}}(u=e)}f.state.get=function(){return this._vm._data.$$state},f.state.set=function(e){},l.prototype.commit=function(e,t,o){var i=this,n=y(e,t,o),r=n.type,s=n.payload,a=(n.options,{type:r,payload:s}),c=this._mutations[r];c&&(this._withCommit(function(){c.forEach(function(e){e(s)})}),this._subscribers.slice().forEach(function(e){return e(a,i.state)}))},l.prototype.dispatch=function(e,t){var o=this,i=y(e,t),n=i.type,r=i.payload,s={type:n,payload:r},a=this._actions[n];if(a){try{this._actionSubscribers.slice().filter(function(e){return e.before}).forEach(function(e){return e.before(s,o.state)})}catch(e){}var c=a.length>1?Promise.all(a.map(function(e){return e(r)})):a[0](r);return new Promise(function(e,t){c.then(function(t){try{o._actionSubscribers.filter(function(e){return e.after}).forEach(function(e){return e.after(s,o.state)})}catch(e){}e(t)},function(e){try{o._actionSubscribers.filter(function(e){return e.error}).forEach(function(t){return t.error(s,o.state,e)})}catch(e){}t(e)})})}},l.prototype.subscribe=function(e,t){return h(e,this._subscribers,t)},l.prototype.subscribeAction=function(e,t){return h("function"==typeof e?{before:e}:e,this._actionSubscribers,t)},l.prototype.watch=function(e,t,o){var i=this;return this._watcherVM.$watch(function(){return e(i.state,i.getters)},t,o)},l.prototype.replaceState=function(e){var t=this;this._withCommit(function(){t._vm._data.$$state=e})},l.prototype.registerModule=function(e,t,o){void 0===o&&(o={}),"string"==typeof e&&(e=[e]),this._modules.register(e,t),g(this,this.state,e,this._modules.get(e),o.preserveState),v(this,this.state)},l.prototype.unregisterModule=function(e){var t=this;"string"==typeof e&&(e=[e]),this._modules.unregister(e),this._withCommit(function(){var o=b(t.state,e.slice(0,-1));u.delete(o,e[e.length-1])}),m(this)},l.prototype.hasModule=function(e){return"string"==typeof e&&(e=[e]),this._modules.isRegistered(e)},l.prototype.hotUpdate=function(e){this._modules.update(e),m(this,!0)},l.prototype._withCommit=function(e){var t=this._committing;this._committing=!0,e(),this._committing=t},Object.defineProperties(l.prototype,f);var w=L(function(e,t){var o={};return C(t).forEach(function(t){var i=t.key,n=t.val;o[i]=function(){var t=this.$store.state,o=this.$store.getters;if(e){var i=T(this.$store,0,e);if(!i)return;t=i.context.state,o=i.context.getters}return"function"==typeof n?n.call(this,t,o):t[n]},o[i].vuex=!0}),o}),A=L(function(e,t){var o={};return C(t).forEach(function(t){var i=t.key,n=t.val;o[i]=function(){for(var t=[],o=arguments.length;o--;)t[o]=arguments[o];var i=this.$store.commit;if(e){var r=T(this.$store,0,e);if(!r)return;i=r.context.commit}return"function"==typeof n?n.apply(this,[i].concat(t)):i.apply(this.$store,[n].concat(t))}}),o}),O=L(function(e,t){var o={};return C(t).forEach(function(t){var i=t.key,n=t.val;n=e+n,o[i]=function(){if(!e||T(this.$store,0,e))return this.$store.getters[n]},o[i].vuex=!0}),o}),E=L(function(e,t){var o={};return C(t).forEach(function(t){var i=t.key,n=t.val;o[i]=function(){for(var t=[],o=arguments.length;o--;)t[o]=arguments[o];var i=this.$store.dispatch;if(e){var r=T(this.$store,0,e);if(!r)return;i=r.context.dispatch}return"function"==typeof n?n.apply(this,[i].concat(t)):i.apply(this.$store,[n].concat(t))}}),o});function C(e){return function(e){return Array.isArray(e)||s(e)}(e)?Array.isArray(e)?e.map(function(e){return{key:e,val:e}}):Object.keys(e).map(function(t){return{key:t,val:e[t]}}):[]}function L(e){return function(t,o){return"string"!=typeof t?(o=t,t=""):"/"!==t.charAt(t.length-1)&&(t+="/"),e(t,o)}}function T(e,t,o){return e._modulesNamespaceMap[o]}function I(e,t,o){var i=o?e.groupCollapsed:e.group;try{i.call(e,t)}catch(o){e.log(t)}}function P(e){try{e.groupEnd()}catch(t){e.log("—— log end ——")}}function $(){var e=new Date;return" @ "+S(e.getHours(),2)+":"+S(e.getMinutes(),2)+":"+S(e.getSeconds(),2)+"."+S(e.getMilliseconds(),3)}function S(e,t){return o=t-e.toString().length,new Array(o+1).join("0")+e;var o}const k={Store:l,install:_,version:"3.6.2",mapState:w,mapMutations:A,mapGetters:O,mapActions:E,createNamespacedHelpers:function(e){return{mapState:w.bind(null,e),mapGetters:O.bind(null,e),mapMutations:A.bind(null,e),mapActions:E.bind(null,e)}},createLogger:function(e){void 0===e&&(e={});var t=e.collapsed;void 0===t&&(t=!0);var o=e.filter;void 0===o&&(o=function(e,t,o){return!0});var i=e.transformer;void 0===i&&(i=function(e){return e});var r=e.mutationTransformer;void 0===r&&(r=function(e){return e});var s=e.actionFilter;void 0===s&&(s=function(e,t){return!0});var a=e.actionTransformer;void 0===a&&(a=function(e){return e});var c=e.logMutations;void 0===c&&(c=!0);var u=e.logActions;void 0===u&&(u=!0);var d=e.logger;return void 0===d&&(d=console),function(e){var p=n(e.state);void 0!==d&&(c&&e.subscribe(function(e,s){var a=n(s);if(o(e,p,a)){var c=$(),u=r(e),l="mutation "+e.type+c;I(d,l,t),d.log("%c prev state","color: #9E9E9E; font-weight: bold",i(p)),d.log("%c mutation","color: #03A9F4; font-weight: bold",u),d.log("%c next state","color: #4CAF50; font-weight: bold",i(a)),P(d)}p=a}),u&&e.subscribeAction(function(e,o){if(s(e,o)){var i=$(),n=a(e),r="action "+e.type+i;I(d,r,t),d.log("%c action","color: #03A9F4; font-weight: bold",n),P(d)}}))}}}}},r={};function s(e){var t=r[e];if(void 0!==t)return t.exports;var o=r[e]={id:e,loaded:!1,exports:{}};return n[e].call(o.exports,o,o.exports,s),o.loaded=!0,o.exports}s.m=n,e=[],s.O=(t,o,i,n)=>{if(!o){var r=1/0;for(d=0;d=n)&&Object.keys(s.O).every(e=>s.O[e](o[c]))?o.splice(c--,1):(a=!1,n0&&e[d-1][2]>n;d--)e[d]=e[d-1];e[d]=[o,i,n]},s.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return s.d(t,{a:t}),t},s.d=(e,t)=>{for(var o in t)s.o(t,o)&&!s.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},s.f={},s.e=e=>Promise.all(Object.keys(s.f).reduce((t,o)=>(s.f[o](e,t),t),[])),s.u=e=>(({3239:"settings-users",4529:"settings-apps-view"}[e]||e)+"-"+e+".js?v="+{1140:"490e17ed9c8948d5a9e8",2221:"428c2ff62c4b8b3c97fc",3079:"e25e60ee1af8efb023fb",3239:"03614376e6f20a249e06",4529:"4e522ae06adb0b86d3f2",5448:"71cfe268d6f1213c4735",5862:"580b9c2e231a9169a12f",6015:"ebcb6885c1fc8c461988",6197:"a372e411091ea8313019",6798:"1a6cf42d93801a926a3d",7471:"b4ac70873a3ab192efd0",7859:"740587c0c8c350dad157",7910:"de857920f8beb5205bbc",8815:"9a5c507c75429c9c04e4",9646:"1f59e43b850fe6bc2360"}[e]),s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),o={},i="nextcloud-ui-legacy:",s.l=(e,t,n,r)=>{if(o[e])o[e].push(t);else{var a,c;if(void 0!==n)for(var u=document.getElementsByTagName("script"),d=0;d{a.onerror=a.onload=null,clearTimeout(f);var n=o[e];if(delete o[e],a.parentNode&&a.parentNode.removeChild(a),n&&n.forEach(e=>e(i)),t)return t(i)},f=setTimeout(l.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=l.bind(null,a.onerror),a.onload=l.bind(null,a.onload),c&&document.head.appendChild(a)}},s.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},s.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),s.j=2689,(()=>{var e;globalThis.importScripts&&(e=globalThis.location+"");var t=globalThis.document;if(!e&&t&&(t.currentScript&&"SCRIPT"===t.currentScript.tagName.toUpperCase()&&(e=t.currentScript.src),!e)){var o=t.getElementsByTagName("script");if(o.length)for(var i=o.length-1;i>-1&&(!e||!/^http(s?):/.test(e));)e=o[i--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),s.p=e})(),(()=>{s.b="undefined"!=typeof document&&document.baseURI||self.location.href;var e={2689:0};s.f.j=(t,o)=>{var i=s.o(e,t)?e[t]:void 0;if(0!==i)if(i)o.push(i[2]);else{var n=new Promise((o,n)=>i=e[t]=[o,n]);o.push(i[2]=n);var r=s.p+s.u(t),a=new Error;s.l(r,o=>{if(s.o(e,t)&&(0!==(i=e[t])&&(e[t]=void 0),i)){var n=o&&("load"===o.type?"missing":o.type),r=o&&o.target&&o.target.src;a.message="Loading chunk "+t+" failed.\n("+n+": "+r+")",a.name="ChunkLoadError",a.type=n,a.request=r,i[1](a)}},"chunk-"+t,t)}},s.O.j=t=>0===e[t];var t=(t,o)=>{var i,n,[r,a,c]=o,u=0;if(r.some(t=>0!==e[t])){for(i in a)s.o(a,i)&&(s.m[i]=a[i]);if(c)var d=c(s)}for(t&&t(o);us(35750));a=s.O(a)})(); -//# sourceMappingURL=settings-vue-settings-apps-users-management.js.map?v=57412e524da86fc2dfa9 \ No newline at end of file +(()=>{var e,o,i,n={6028(e,t,o){"use strict";o.d(t,{A:()=>s});var i=o(19051),n=o(77690);function r(e){return e.replace(/\/$/,"")}const s={requireAdmin:()=>(0,n.C5)(),get:(e,t)=>i.Ay.get(r(e),t),post:(e,t,o)=>i.Ay.post(r(e),t,o),patch:(e,t)=>i.Ay.patch(r(e),t),put:(e,t)=>i.Ay.put(r(e),t),delete:(e,t)=>i.Ay.delete(r(e),{params:t})}},36347(e,o,i){"use strict";i.d(o,{P:()=>j});var n=i(85168),r=i(95353),s=i(21106),a=i(19051),c=i(81222),u=i(77690),d=i(63814),p=i(85471),l=i(6028);const f={apps:[],bundles:(0,c.C)("settings","appstoreBundles",[]),categories:[],updateCount:(0,c.C)("settings","appstoreUpdateCount",0),loading:{},gettingCategoriesPromise:null,appApiEnabled:(0,c.C)("settings","appApiEnabled",!1)},h={APPS_API_FAILURE(e,o){(0,n.Qg)(t("settings","An error occurred during the request. Unable to proceed.")+"
"+o.error.response.data.data.message,{isHTML:!0}),s.A.error("An error occurred during the request. Unable to proceed.",{state:e,error:o})},initCategories(e,{categories:t,updateCount:o}){e.categories=t,e.updateCount=o},updateCategories(e,t){e.gettingCategoriesPromise=t},setUpdateCount(e,t){e.updateCount=t},addCategory(e,t){e.categories.push(t)},appendCategories(e,t){e.categories=t},setAllApps(e,t){e.apps=t},setError(e,{appId:t,error:o}){Array.isArray(t)||(t=[t]),t.forEach(t=>{e.apps.find(e=>e.id===t).error=o})},clearError(e,{appId:t}){e.apps.find(e=>e.id===t).error=null},enableApp(e,{appId:t,groups:o}){const i=e.apps.find(e=>e.id===t);i.active=!0,p.Ay.set(i,"groups",[...o]),"app_api"===i.id&&(e.appApiEnabled=!0)},setInstallState(e,{appId:t,canInstall:o}){const i=e.apps.find(e=>e.id===t);i&&(i.canInstall=!0===o)},disableApp(e,t){const o=e.apps.find(e=>e.id===t);o.active=!1,o.groups=[],o.removable&&(o.canUnInstall=!0),"app_api"===o.id&&(e.appApiEnabled=!1)},uninstallApp(e,t){e.apps.find(e=>e.id===t).active=!1,e.apps.find(e=>e.id===t).groups=[],e.apps.find(e=>e.id===t).needsDownload=!0,e.apps.find(e=>e.id===t).installed=!1,e.apps.find(e=>e.id===t).canUnInstall=!1,e.apps.find(e=>e.id===t).canInstall=!0,"app_api"===t&&(e.appApiEnabled=!1)},updateApp(e,t){const o=e.apps.find(e=>e.id===t),i=o.update;o.update=null,o.version=i,e.updateCount--},resetApps(e){e.apps=[]},reset(e){e.apps=[],e.categories=[],e.updateCount=0},startLoading(e,t){Array.isArray(t)?t.forEach(t=>{p.Ay.set(e.loading,t,!0)}):p.Ay.set(e.loading,t,!0)},stopLoading(e,t){Array.isArray(t)?t.forEach(t=>{p.Ay.set(e.loading,t,!1)}):p.Ay.set(e.loading,t,!1)}},m={enableApp(e,{appId:o,groups:i}){let r;r=Array.isArray(o)?o:[o],e.commit("startLoading",r),e.commit("startLoading","install");const s={};return r.forEach(t=>{const o=e.state.apps.find(e=>e.id===t);o&&(s[t]={active:o.active,groups:[...o.groups||[]]},e.commit("enableApp",{appId:t,groups:i}))}),l.A.post((0,d.Jv)("settings/apps/enable"),{appIds:r,groups:i},{confirmPassword:u.mH.Strict}).then(i=>(e.commit("stopLoading",r),e.commit("stopLoading","install"),a.Ay.get((0,d.Jv)("apps/files/")).then(()=>{i.data.update_required&&((0,n.cf)(t("settings","The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds."),{onClick:()=>window.location.reload(),close:!1}),setTimeout(function(){location.reload()},5e3))}).catch(()=>{Array.isArray(o)||((0,n.Qg)(t("settings","Error: This app cannot be enabled because it makes the server unstable")),e.commit("setError",{appId:r,error:t("settings","Error: This app cannot be enabled because it makes the server unstable")}),e.dispatch("disableApp",{appId:o}))}))).catch(t=>{e.commit("stopLoading",r),e.commit("stopLoading","install"),r.forEach(t=>{s[t]&&(e.commit("enableApp",{appId:t,groups:s[t].groups}),s[t].active||e.commit("disableApp",t))});const i=t.response?.data?.data?.message;i&&(e.commit("setError",{appId:r,error:i}),e.commit("APPS_API_FAILURE",{appId:o,error:t}))})},forceEnableApp(e,{appId:t}){let o;return o=Array.isArray(t)?t:[t],l.A.requireAdmin().then(()=>(e.commit("startLoading",o),e.commit("startLoading","install"),l.A.post((0,d.Jv)("settings/apps/force"),{appId:t}).then(()=>{e.commit("setInstallState",{appId:t,canInstall:!0})}).catch(i=>{e.commit("stopLoading",o),e.commit("stopLoading","install"),e.commit("setError",{appId:o,error:i.response.data.data.message}),e.commit("APPS_API_FAILURE",{appId:t,error:i})}).finally(()=>{e.commit("stopLoading",o),e.commit("stopLoading","install")}))).catch(o=>e.commit("API_FAILURE",{appId:t,error:o}))},disableApp(e,{appId:t}){let o;return o=Array.isArray(t)?t:[t],l.A.requireAdmin().then(()=>(e.commit("startLoading",o),l.A.post((0,d.Jv)("settings/apps/disable"),{appIds:o}).then(()=>(e.commit("stopLoading",o),o.forEach(t=>{e.commit("disableApp",t)}),!0)).catch(i=>{e.commit("stopLoading",o),e.commit("APPS_API_FAILURE",{appId:t,error:i})}))).catch(o=>e.commit("API_FAILURE",{appId:t,error:o}))},uninstallApp:(e,{appId:t})=>l.A.requireAdmin().then(()=>(e.commit("startLoading",t),l.A.get((0,d.Jv)(`settings/apps/uninstall/${t}`)).then(()=>(e.commit("stopLoading",t),e.commit("uninstallApp",t),!0)).catch(o=>{e.commit("stopLoading",t),e.commit("APPS_API_FAILURE",{appId:t,error:o})}))).catch(o=>e.commit("API_FAILURE",{appId:t,error:o})),updateApp:(e,{appId:t})=>l.A.requireAdmin().then(()=>(e.commit("startLoading",t),e.commit("startLoading","install"),l.A.get((0,d.Jv)(`settings/apps/update/${t}`)).then(()=>(e.commit("stopLoading","install"),e.commit("stopLoading",t),e.commit("updateApp",t),!0)).catch(o=>{e.commit("stopLoading",t),e.commit("stopLoading","install"),e.commit("APPS_API_FAILURE",{appId:t,error:o})}))).catch(o=>e.commit("API_FAILURE",{appId:t,error:o})),getAllApps:e=>(e.commit("startLoading","list"),l.A.get((0,d.Jv)("settings/apps/list")).then(t=>(e.commit("setAllApps",t.data.apps),e.commit("stopLoading","list"),!0)).catch(t=>e.commit("API_FAILURE",t))),async getCategories(e,{shouldRefetchCategories:t=!1}={}){if(t||!e.state.gettingCategoriesPromise){e.commit("startLoading","categories");try{const t=l.A.get((0,d.Jv)("settings/apps/categories"));e.commit("updateCategories",t);const o=await t;return o.data.length>0?(e.commit("appendCategories",o.data),e.commit("stopLoading","categories"),!0):(e.commit("stopLoading","categories"),!1)}catch(t){e.commit("API_FAILURE",t)}}return e.state.gettingCategoriesPromise}},v={state:f,mutations:h,getters:{isAppApiEnabled:e=>e.appApiEnabled,loading:e=>function(t){return e.loading[t]},getCategories:e=>e.categories,getAllApps:e=>e.apps,getAppBundles:e=>e.bundles,getUpdateCount:e=>e.updateCount,getCategoryById:e=>t=>e.categories.find(e=>e.id===t)},actions:m},g={state:{},mutations:{},getters:{},actions:{setAppConfig:(e,{app:t,key:o,value:i})=>l.A.requireAdmin().then(()=>l.A.post((0,d.KT)("apps/provisioning_api/api/v1/config/apps/{app}/{key}",{app:t,key:o}),{value:i}).catch(e=>{throw e})).catch(n=>e.commit("API_FAILURE",{app:t,key:o,value:i,error:n}))}},b={serverData:(0,c.C)("settings","usersSettings",{})},y={setServerData(e,t){e.serverData=t}},_={state:b,mutations:y,getters:{getServerData:e=>e.serverData},actions:{}};var w=i(87485),A=i(35810),O=i(54162),E=i(53334);const C=Intl.Collator([(0,E.Z0)(),(0,E.lO)()],{numeric:!0,usage:"sort"}),L=(0,c.C)("settings","usersSettings",{}),T={id:"",name:"",usercount:0,disabled:0,canAdd:!0,canRemove:!0},I={users:[],groups:[...L.getSubAdminGroups??[],...L.systemGroups??[]],orderBy:L.sortGroups??O.q.UserCount,minPasswordLength:0,usersOffset:0,usersLimit:25,disabledUsersOffset:0,disabledUsersLimit:25,searchQuery:"",userCount:L.userCount??0,showConfig:{showStoragePath:L.showConfig?.user_list_show_storage_path,showUserBackend:L.showConfig?.user_list_show_user_backend,showFirstLogin:L.showConfig?.user_list_show_first_login,showLastLogin:L.showConfig?.user_list_show_last_login,showNewUserForm:L.showConfig?.user_list_show_new_user_form,showLanguages:L.showConfig?.user_list_show_languages}},P={appendUsers(e,t){const o=e.users.map(({id:e})=>e),i=Object.values(t).filter(({id:e})=>!o.includes(e)),n=e.users.concat(i);e.usersOffset+=e.usersLimit,e.users=n},updateDisabledUsers(e){e.disabledUsersOffset+=e.disabledUsersLimit},setPasswordPolicyMinLength(e,t){e.minPasswordLength=""!==t?t:0},addGroup(e,t){try{if(void 0!==e.groups.find(e=>e.id===t.id))return;const o={...T,...t};e.groups.unshift(o)}catch(e){s.A.error("Cannt create group",{error:e})}},renameGroup(e,{gid:t,displayName:o}){const i=e.groups.findIndex(e=>e.id===t);if(i>=0){const t=e.groups[i];t.name=o,e.groups.splice(i,1,t)}},removeGroup(e,t){const o=e.groups.findIndex(e=>e.id===t);o>=0&&e.groups.splice(o,1)},addUserGroup(e,{userid:t,gid:o}){const i=e.groups.find(e=>e.id===o),n=e.users.find(e=>e.id===t);i&&n.enabled&&e.userCount>0&&i.usercount++,n.groups.push(o)},removeUserGroup(e,{userid:t,gid:o}){const i=e.groups.find(e=>e.id===o),n=e.users.find(e=>e.id===t);i&&n.enabled&&e.userCount>0&&i.usercount--;const r=n.groups;r.splice(r.indexOf(o),1)},addUserSubAdmin(e,{userid:t,gid:o}){e.users.find(e=>e.id===t).subadmin.push(o)},removeUserSubAdmin(e,{userid:t,gid:o}){const i=e.users.find(e=>e.id===t).subadmin;i.splice(i.indexOf(o),1)},deleteUser(e,t){const o=e.users.findIndex(e=>e.id===t);this.commit("updateUserCounts",{user:e.users[o],actionType:"remove"}),e.users.splice(o,1)},addUserData(e,t){const o=t.data.ocs.data;e.users.unshift(o),this.commit("updateUserCounts",{user:o,actionType:"create"})},enableDisableUser(e,{userid:t,enabled:o}){const i=e.users.find(e=>e.id===t);i.enabled=o,this.commit("updateUserCounts",{user:i,actionType:o?"enable":"disable"})},updateUserCounts(e,{user:t,actionType:o}){if(0===e.userCount)return;const i=e.groups.find(e=>"__nc_internal_recent"===e.id),n=e.groups.find(e=>"disabled"===e.id);switch(o){case"enable":case"disable":n.usercount+=t.enabled?-1:1,i.usercount+=t.enabled?1:-1,e.userCount+=t.enabled?1:-1,t.groups.forEach(o=>{const i=e.groups.find(e=>e.id===o);i&&(i.disabled+=t.enabled?-1:1)});break;case"create":i.usercount++,e.userCount++,t.groups.forEach(t=>{const o=e.groups.find(e=>e.id===t);o&&o.usercount++});break;case"remove":t.enabled?(i.usercount--,e.userCount--,t.groups.forEach(t=>{const o=e.groups.find(e=>e.id===t);o?o.usercount--:s.A.warn("User group "+t+" does not exist during user removal")})):(n.usercount--,t.groups.forEach(t=>{const o=e.groups.find(e=>e.id===t);o&&o.disabled--}));break;default:s.A.error(`Unknown action type in updateUserCounts: '${o}'`)}},setUserData(e,{userid:t,key:o,value:i}){if("quota"===o){const n=(0,A.lT)(i,!0);e.users.find(e=>e.id===t)[o][o]=null!==n?n:i}else e.users.find(e=>e.id===t)[o]=i},editUserMultiField(e,{userid:t,data:o}){const i=e.users.findIndex(e=>e.id===t);if(-1!==i){if(Array.isArray(o.groups)){const n=e.users[i].groups??[];for(const e of o.groups.filter(e=>!n.includes(e)))this.commit("addUserGroup",{userid:t,gid:e});for(const e of n.filter(e=>!o.groups.includes(e)))this.commit("removeUserGroup",{userid:t,gid:e})}e.users.splice(i,1,{...e.users[i],...o})}},resetUsers(e){e.users=[],e.usersOffset=0,e.disabledUsersOffset=0},resetGroups(e){e.groups=[...L.getSubAdminGroups??[],...L.systemGroups??[]]},setSearchQuery(e,t){e.searchQuery=t},setShowConfig(e,{key:t,value:o}){e.showConfig[t]=o},setGroupSorting(e,o){const i=e.orderBy;e.orderBy=o,a.Ay.post((0,d.Jv)("/settings/users/preferences/group.sortBy"),{value:String(o)}).catch(o=>{e.orderBy=i,(0,n.Qg)(t("settings","Could not set group sorting")),s.A.error(o)})}},$={getUsers:e=>e.users,getGroups:e=>e.groups,getSearchQuery:e=>e.searchQuery,getSubAdminGroups:()=>L.subAdminGroups??[],getSortedGroups(e){const t=[...e.groups];return e.orderBy===O.q.UserCount?t.sort((e,t)=>{const o=e.usercount-e.disabled,i=t.usercount-t.disabled;return oC.compare(e.name,t.name))},getGroupSorting:e=>e.orderBy,getPasswordPolicyMinLength:e=>e.minPasswordLength,getUsersOffset:e=>e.usersOffset,getUsersLimit:e=>e.usersLimit,getDisabledUsersOffset:e=>e.disabledUsersOffset,getDisabledUsersLimit:e=>e.disabledUsersLimit,getUserCount:e=>e.userCount,getShowConfig:e=>e.showConfig},S=a.Ay.CancelToken;let k=null;const U={state:I,mutations:P,getters:$,actions:{searchUsers:(e,{offset:t,limit:o,search:i})=>(i="string"==typeof i?i:"",l.A.get((0,d.KT)("cloud/users/details?offset={offset}&limit={limit}&search={search}",{offset:t,limit:o,search:i})).catch(t=>{a.Ay.isCancel(t)||e.commit("API_FAILURE",t)})),getUser:(e,t)=>l.A.get((0,d.KT)(`cloud/users/${t}`)).catch(t=>{a.Ay.isCancel(t)||e.commit("API_FAILURE",t)}),getUsers:(e,{offset:t,limit:o,search:i,group:n})=>(k&&k.cancel("Operation canceled by another search request."),k=S.source(),i="string"==typeof i?i:"",""!==(n="string"==typeof n?n:"")?l.A.get((0,d.KT)("cloud/groups/{group}/users/details?offset={offset}&limit={limit}&search={search}",{group:encodeURIComponent(n),offset:t,limit:o,search:i}),{cancelToken:k.token}).then(t=>{const o=Object.keys(t.data.ocs.data.users).length;return o>0&&e.commit("appendUsers",t.data.ocs.data.users),o}).catch(t=>{a.Ay.isCancel(t)||e.commit("API_FAILURE",t)}):l.A.get((0,d.KT)("cloud/users/details?offset={offset}&limit={limit}&search={search}",{offset:t,limit:o,search:i}),{cancelToken:k.token}).then(t=>{const o=Object.keys(t.data.ocs.data.users).length;return o>0&&e.commit("appendUsers",t.data.ocs.data.users),o}).catch(t=>{a.Ay.isCancel(t)||e.commit("API_FAILURE",t)})),async getRecentUsers(e,{offset:t,limit:o,search:i}){const n=(0,d.KT)("cloud/users/recent?offset={offset}&limit={limit}&search={search}",{offset:t,limit:o,search:i});try{const t=await l.A.get(n),o=Object.keys(t.data.ocs.data.users).length;return o>0&&e.commit("appendUsers",t.data.ocs.data.users),o}catch(t){e.commit("API_FAILURE",t)}},async getDisabledUsers(e,{offset:t,limit:o,search:i}){const n=(0,d.KT)("cloud/users/disabled?offset={offset}&limit={limit}&search={search}",{offset:t,limit:o,search:i});try{const t=await l.A.get(n),o=Object.keys(t.data.ocs.data.users).length;return o>0&&(e.commit("appendUsers",t.data.ocs.data.users),e.commit("updateDisabledUsers",t.data.ocs.data.users)),o}catch(t){e.commit("API_FAILURE",t)}},getGroups(e,{offset:t,limit:o,search:i}){i="string"==typeof i?i:"";const n=-1===o?"":`&limit=${o}`;return l.A.get((0,d.KT)("cloud/groups?offset={offset}&search={search}",{offset:t,search:i})+n).then(t=>Object.keys(t.data.ocs.data.groups).length>0&&(t.data.ocs.data.groups.forEach(function(t){e.commit("addGroup",{id:t,name:t})}),!0)).catch(t=>e.commit("API_FAILURE",t))},getUsersFromList:(e,{offset:t,limit:o,search:i})=>(i="string"==typeof i?i:"",l.A.get((0,d.KT)("cloud/users/details?offset={offset}&limit={limit}&search={search}",{offset:t,limit:o,search:i})).then(t=>Object.keys(t.data.ocs.data.users).length>0&&(e.commit("appendUsers",t.data.ocs.data.users),!0)).catch(t=>e.commit("API_FAILURE",t))),getUsersFromGroup:(e,{groupid:t,offset:o,limit:i})=>l.A.get((0,d.KT)("cloud/users/{groupId}/details?offset={offset}&limit={limit}",{groupId:encodeURIComponent(t),offset:o,limit:i})).then(t=>e.commit("getUsersFromList",t.data.ocs.data.users)).catch(t=>e.commit("API_FAILURE",t)),getPasswordPolicyMinLength:e=>!(!(0,w.F)().password_policy||!(0,w.F)().password_policy.minLength)&&(e.commit("setPasswordPolicyMinLength",(0,w.F)().password_policy.minLength),(0,w.F)().password_policy.minLength),addGroup:(e,t)=>l.A.requireAdmin().then(()=>l.A.post((0,d.KT)("cloud/groups"),{groupid:t}).then(()=>(e.commit("addGroup",{id:t,name:t}),{gid:t,displayName:t})).catch(e=>{throw e})).catch(o=>{throw e.commit("API_FAILURE",{gid:t,error:o}),o}),renameGroup:(e,{groupid:t,displayName:o})=>l.A.requireAdmin().then(()=>l.A.put((0,d.KT)("cloud/groups/{groupId}",{groupId:encodeURIComponent(t)}),{key:"displayname",value:o}).then(()=>(e.commit("renameGroup",{gid:t,displayName:o}),{groupid:t,displayName:o})).catch(e=>{throw e})).catch(o=>{throw e.commit("API_FAILURE",{groupid:t,error:o}),o}),removeGroup:(e,t)=>l.A.requireAdmin().then(()=>l.A.delete((0,d.KT)("cloud/groups/{groupId}",{groupId:encodeURIComponent(t)})).then(()=>e.commit("removeGroup",t)).catch(e=>{throw e})).catch(o=>e.commit("API_FAILURE",{gid:t,error:o})),addUserGroup:(e,{userid:t,gid:o})=>l.A.requireAdmin().then(()=>l.A.post((0,d.KT)("cloud/users/{userid}/groups",{userid:t}),{groupid:o}).then(()=>e.commit("addUserGroup",{userid:t,gid:o})).catch(e=>{throw e})).catch(o=>e.commit("API_FAILURE",{userid:t,error:o})),removeUserGroup:(e,{userid:t,gid:o})=>l.A.requireAdmin().then(()=>l.A.delete((0,d.KT)("cloud/users/{userid}/groups",{userid:t}),{groupid:o}).then(()=>e.commit("removeUserGroup",{userid:t,gid:o})).catch(e=>{throw e})).catch(o=>{throw e.commit("API_FAILURE",{userid:t,error:o}),o}),addUserSubAdmin:(e,{userid:t,gid:o})=>l.A.requireAdmin().then(()=>l.A.post((0,d.KT)("cloud/users/{userid}/subadmins",{userid:t}),{groupid:o}).then(()=>e.commit("addUserSubAdmin",{userid:t,gid:o})).catch(e=>{throw e})).catch(o=>e.commit("API_FAILURE",{userid:t,error:o})),removeUserSubAdmin:(e,{userid:t,gid:o})=>l.A.requireAdmin().then(()=>l.A.delete((0,d.KT)("cloud/users/{userid}/subadmins",{userid:t}),{groupid:o}).then(()=>e.commit("removeUserSubAdmin",{userid:t,gid:o})).catch(e=>{throw e})).catch(o=>e.commit("API_FAILURE",{userid:t,error:o})),async wipeUserDevices(e,t){try{return await l.A.requireAdmin(),await l.A.post((0,d.KT)("cloud/users/{userid}/wipe",{userid:t}))}catch(o){return e.commit("API_FAILURE",{userid:t,error:o}),Promise.reject(new Error("Failed to wipe user devices"))}},deleteUser:(e,t)=>l.A.requireAdmin().then(()=>l.A.delete((0,d.KT)("cloud/users/{userid}",{userid:t})).then(()=>e.commit("deleteUser",t)).catch(e=>{throw e})).catch(o=>e.commit("API_FAILURE",{userid:t,error:o})),addUser:({commit:e,dispatch:t},{userid:o,password:i,displayName:n,email:r,groups:s,subadmin:a,quota:c,language:u,manager:p})=>l.A.requireAdmin().then(()=>l.A.post((0,d.KT)("cloud/users"),{userid:o,password:i,displayName:n,email:r,groups:s,subadmin:a,quota:c,language:u,manager:p}).then(e=>t("addUserData",o||e.data.ocs.data.id)).catch(e=>{throw e})).catch(t=>{throw e("API_FAILURE",{userid:o,error:t}),t}),addUserData:(e,t)=>l.A.requireAdmin().then(()=>l.A.get((0,d.KT)("cloud/users/{userid}",{userid:t})).then(t=>e.commit("addUserData",t)).catch(e=>{throw e})).catch(o=>e.commit("API_FAILURE",{userid:t,error:o})),enableDisableUser(e,{userid:t,enabled:o=!0}){const i=o?"enable":"disable";return l.A.requireAdmin().then(()=>l.A.put((0,d.KT)("cloud/users/{userid}/{userStatus}",{userid:t,userStatus:i})).then(()=>e.commit("enableDisableUser",{userid:t,enabled:o})).catch(e=>{throw e})).catch(o=>e.commit("API_FAILURE",{userid:t,error:o}))},async setUserData(e,{userid:t,key:o,value:i}){if(!["email","language","quota","displayname","password","manager"].includes(o))throw new Error("Invalid request data");if(""===i&&!["email","displayname","manager"].includes(o))throw new Error("Value cannot be empty for this field");try{return await l.A.requireAdmin(),await l.A.put((0,d.KT)("cloud/users/{userid}",{userid:t}),{key:o,value:i}),e.commit("setUserData",{userid:t,key:o,value:i})}catch(o){throw e.commit("API_FAILURE",{userid:t,error:o}),o}},async editUserMultiField(e,{userid:t,payload:o}){try{await l.A.requireAdmin();const i=await l.A.patch((0,d.KT)("cloud/users/{userid}",{userid:t}),o);e.commit("editUserMultiField",{userid:t,data:i.data.ocs.data})}catch(o){throw e.commit("API_FAILURE",{userid:t,error:o}),o}},sendWelcomeMail:(e,t)=>l.A.requireAdmin().then(()=>l.A.post((0,d.KT)("cloud/users/{userid}/welcome",{userid:t})).then(()=>!0).catch(e=>{throw e})).catch(o=>e.commit("API_FAILURE",{userid:t,error:o})),migrateLocalStorage({commit:e}){const t={showStoragePath:"user_list_show_storage_path",showUserBackend:"user_list_show_user_backend",showFirstLogin:"user_list_show_first_login",showLastLogin:"user_list_show_last_login",showNewUserForm:"user_list_show_new_user_form",showLanguages:"user_list_show_languages"};for(const[o,i]of Object.entries(t)){const t=`account_settings__${o}`,n=window.localStorage.getItem(t);if(null===n)continue;const r="true"===n;e("setShowConfig",{key:o,value:r}),a.Ay.post((0,d.Jv)(`/settings/users/preferences/${i}`),{value:r?"true":"false"}).then(()=>{window.localStorage.removeItem(t)}).catch(e=>{s.A.error(`Failed to migrate preference ${o}`,{error:e})})}},setShowConfig(e,{key:t,value:o}){e.commit("setShowConfig",{key:t,value:o}),a.Ay.post((0,d.Jv)(`settings/users/preferences/${{showStoragePath:"user_list_show_storage_path",showUserBackend:"user_list_show_user_backend",showFirstLogin:"user_list_show_first_login",showLastLogin:"user_list_show_last_login",showNewUserForm:"user_list_show_new_user_form",showLanguages:"user_list_show_languages"}[t]}`),{value:o?"true":"false"}).catch(e=>s.A.error(`Could not update ${t} preference`,{error:e}))}}},x={API_FAILURE(e,o){try{const e=o.error.response.data.ocs.meta.message;(0,n.Qg)(t("settings","An error occurred during the request. Unable to proceed.")+"
"+e,{isHTML:!0})}catch{(0,n.Qg)(t("settings","An error occurred during the request. Unable to proceed."))}s.A.error("An error occurred during the request.",{state:e,error:o})}};let N=null;function j(){return null===N&&(N=new r.il({modules:{users:U,apps:v,settings:_,oc:g},strict:!1,mutations:x})),N}},54162(e,t,o){"use strict";var i;o.d(t,{q:()=>i}),function(e){e[e.UserCount=1]="UserCount",e[e.GroupName=2]="GroupName"}(i||(i={}))},21106(e,t,o){"use strict";o.d(t,{A:()=>i});const i=(0,o(35947).YK)().setApp("settings").detectUser().build()},35750(e,t,o){"use strict";var i=o(21777),n=o(19051),r=o(53334),s=o(77690),a=o(10810);function c(e){return c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},c(e)}function u(e){var t=function(e){if("object"!=c(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var o=t.call(e,"string");if("object"!=c(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==c(t)?t:t+""}function d(e,t,o){return(t=u(t))in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function p(e,t){for(var o=0;o=0)return 1;return 0}(),h=l&&window.Promise?function(e){var t=!1;return function(){t||(t=!0,window.Promise.resolve().then(function(){t=!1,e()}))}}:function(e){var t=!1;return function(){t||(t=!0,setTimeout(function(){t=!1,e()},f))}};function m(e){return e&&"[object Function]"==={}.toString.call(e)}function v(e,t){if(1!==e.nodeType)return[];var o=e.ownerDocument.defaultView.getComputedStyle(e,null);return t?o[t]:o}function g(e){return"HTML"===e.nodeName?e:e.parentNode||e.host}function b(e){if(!e)return document.body;switch(e.nodeName){case"HTML":case"BODY":return e.ownerDocument.body;case"#document":return e.body}var t=v(e),o=t.overflow,i=t.overflowX,n=t.overflowY;return/(auto|scroll|overlay)/.test(o+n+i)?e:b(g(e))}function y(e){return e&&e.referenceNode?e.referenceNode:e}var _=l&&!(!window.MSInputMethodContext||!document.documentMode),w=l&&/MSIE 10/.test(navigator.userAgent);function A(e){return 11===e?_:10===e?w:_||w}function O(e){if(!e)return document.documentElement;for(var t=A(10)?document.body:null,o=e.offsetParent||null;o===t&&e.nextElementSibling;)o=(e=e.nextElementSibling).offsetParent;var i=o&&o.nodeName;return i&&"BODY"!==i&&"HTML"!==i?-1!==["TH","TD","TABLE"].indexOf(o.nodeName)&&"static"===v(o,"position")?O(o):o:e?e.ownerDocument.documentElement:document.documentElement}function E(e){return null!==e.parentNode?E(e.parentNode):e}function C(e,t){if(!(e&&e.nodeType&&t&&t.nodeType))return document.documentElement;var o=e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING,i=o?e:t,n=o?t:e,r=document.createRange();r.setStart(i,0),r.setEnd(n,0);var s,a,c=r.commonAncestorContainer;if(e!==c&&t!==c||i.contains(n))return"BODY"===(a=(s=c).nodeName)||"HTML"!==a&&O(s.firstElementChild)!==s?O(c):c;var u=E(e);return u.host?C(u.host,t):C(e,E(t).host)}function L(e){var t="top"===(arguments.length>1&&void 0!==arguments[1]?arguments[1]:"top")?"scrollTop":"scrollLeft",o=e.nodeName;if("BODY"===o||"HTML"===o){var i=e.ownerDocument.documentElement;return(e.ownerDocument.scrollingElement||i)[t]}return e[t]}function T(e,t){var o="x"===t?"Left":"Top",i="Left"===o?"Right":"Bottom";return parseFloat(e["border"+o+"Width"])+parseFloat(e["border"+i+"Width"])}function I(e,t,o,i){return Math.max(t["offset"+e],t["scroll"+e],o["client"+e],o["offset"+e],o["scroll"+e],A(10)?parseInt(o["offset"+e])+parseInt(i["margin"+("Height"===e?"Top":"Left")])+parseInt(i["margin"+("Height"===e?"Bottom":"Right")]):0)}function P(e){var t=e.body,o=e.documentElement,i=A(10)&&getComputedStyle(o);return{height:I("Height",t,o,i),width:I("Width",t,o,i)}}var $=function(){function e(e,t){for(var o=0;o2&&void 0!==arguments[2]&&arguments[2],i=A(10),n="HTML"===t.nodeName,r=x(e),s=x(t),a=b(e),c=v(t),u=parseFloat(c.borderTopWidth),d=parseFloat(c.borderLeftWidth);o&&n&&(s.top=Math.max(s.top,0),s.left=Math.max(s.left,0));var p=U({top:r.top-s.top-u,left:r.left-s.left-d,width:r.width,height:r.height});if(p.marginTop=0,p.marginLeft=0,!i&&n){var l=parseFloat(c.marginTop),f=parseFloat(c.marginLeft);p.top-=u-l,p.bottom-=u-l,p.left-=d-f,p.right-=d-f,p.marginTop=l,p.marginLeft=f}return(i&&!o?t.contains(a):t===a&&"BODY"!==a.nodeName)&&(p=function(e,t){var o=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=L(t,"top"),n=L(t,"left"),r=o?-1:1;return e.top+=i*r,e.bottom+=i*r,e.left+=n*r,e.right+=n*r,e}(p,t)),p}function j(e){var t=e.nodeName;if("BODY"===t||"HTML"===t)return!1;if("fixed"===v(e,"position"))return!0;var o=g(e);return!!o&&j(o)}function F(e){if(!e||!e.parentElement||A())return document.documentElement;for(var t=e.parentElement;t&&"none"===v(t,"transform");)t=t.parentElement;return t||document.documentElement}function D(e,t,o,i){var n=arguments.length>4&&void 0!==arguments[4]&&arguments[4],r={top:0,left:0},s=n?F(e):C(e,y(t));if("viewport"===i)r=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],o=e.ownerDocument.documentElement,i=N(e,o),n=Math.max(o.clientWidth,window.innerWidth||0),r=Math.max(o.clientHeight,window.innerHeight||0),s=t?0:L(o),a=t?0:L(o,"left");return U({top:s-i.top+i.marginTop,left:a-i.left+i.marginLeft,width:n,height:r})}(s,n);else{var a=void 0;"scrollParent"===i?"BODY"===(a=b(g(t))).nodeName&&(a=e.ownerDocument.documentElement):a="window"===i?e.ownerDocument.documentElement:i;var c=N(a,s,n);if("HTML"!==a.nodeName||j(s))r=c;else{var u=P(e.ownerDocument),d=u.height,p=u.width;r.top+=c.top-c.marginTop,r.bottom=d+c.top,r.left+=c.left-c.marginLeft,r.right=p+c.left}}var l="number"==typeof(o=o||0);return r.left+=l?o:o.left||0,r.top+=l?o:o.top||0,r.right-=l?o:o.right||0,r.bottom-=l?o:o.bottom||0,r}function M(e,t,o,i,n){var r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0;if(-1===e.indexOf("auto"))return e;var s=D(o,i,r,n),a={top:{width:s.width,height:t.top-s.top},right:{width:s.right-t.right,height:s.height},bottom:{width:s.width,height:s.bottom-t.bottom},left:{width:t.left-s.left,height:s.height}},c=Object.keys(a).map(function(e){return k({key:e},a[e],{area:(t=a[e],t.width*t.height)});var t}).sort(function(e,t){return t.area-e.area}),u=c.filter(function(e){var t=e.width,i=e.height;return t>=o.clientWidth&&i>=o.clientHeight}),d=u.length>0?u[0].key:c[0].key,p=e.split("-")[1];return d+(p?"-"+p:"")}function R(e,t,o){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;return N(o,i?F(t):C(t,y(o)),i)}function H(e){var t=e.ownerDocument.defaultView.getComputedStyle(e),o=parseFloat(t.marginTop||0)+parseFloat(t.marginBottom||0),i=parseFloat(t.marginLeft||0)+parseFloat(t.marginRight||0);return{width:e.offsetWidth+i,height:e.offsetHeight+o}}function G(e){var t={left:"right",right:"left",bottom:"top",top:"bottom"};return e.replace(/left|right|bottom|top/g,function(e){return t[e]})}function B(e,t,o){o=o.split("-")[0];var i=H(e),n={width:i.width,height:i.height},r=-1!==["right","left"].indexOf(o),s=r?"top":"left",a=r?"left":"top",c=r?"height":"width",u=r?"width":"height";return n[s]=t[s]+t[c]/2-i[c]/2,n[a]=o===a?t[a]-i[u]:t[G(a)],n}function q(e,t){return Array.prototype.find?e.find(t):e.filter(t)[0]}function z(e,t,o){return(void 0===o?e:e.slice(0,function(e,t,o){if(Array.prototype.findIndex)return e.findIndex(function(e){return e[t]===o});var i=q(e,function(e){return e[t]===o});return e.indexOf(i)}(e,"name",o))).forEach(function(e){e.function&&console.warn("`modifier.function` is deprecated, use `modifier.fn`!");var o=e.function||e.fn;e.enabled&&m(o)&&(t.offsets.popper=U(t.offsets.popper),t.offsets.reference=U(t.offsets.reference),t=o(t,e))}),t}function V(){if(!this.state.isDestroyed){var e={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};e.offsets.reference=R(this.state,this.popper,this.reference,this.options.positionFixed),e.placement=M(this.options.placement,e.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),e.originalPlacement=e.placement,e.positionFixed=this.options.positionFixed,e.offsets.popper=B(this.popper,e.offsets.reference,e.placement),e.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",e=z(this.modifiers,e),this.state.isCreated?this.options.onUpdate(e):(this.state.isCreated=!0,this.options.onCreate(e))}}function W(e,t){return e.some(function(e){var o=e.name;return e.enabled&&o===t})}function K(e){for(var t=[!1,"ms","Webkit","Moz","O"],o=e.charAt(0).toUpperCase()+e.slice(1),i=0;i1&&void 0!==arguments[1]&&arguments[1],o=se.indexOf(e),i=se.slice(o+1).concat(se.slice(0,o));return t?i.reverse():i}var ce={shift:{order:100,enabled:!0,fn:function(e){var t=e.placement,o=t.split("-")[0],i=t.split("-")[1];if(i){var n=e.offsets,r=n.reference,s=n.popper,a=-1!==["bottom","top"].indexOf(o),c=a?"left":"top",u=a?"width":"height",d={start:S({},c,r[c]),end:S({},c,r[c]+r[u]-s[u])};e.offsets.popper=k({},s,d[i])}return e}},offset:{order:200,enabled:!0,fn:function(e,t){var o,i=t.offset,n=e.placement,r=e.offsets,s=r.popper,a=r.reference,c=n.split("-")[0];return o=te(+i)?[+i,0]:function(e,t,o,i){var n=[0,0],r=-1!==["right","left"].indexOf(i),s=e.split(/(\+|\-)/).map(function(e){return e.trim()}),a=s.indexOf(q(s,function(e){return-1!==e.search(/,|\s/)}));s[a]&&-1===s[a].indexOf(",")&&console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");var c=/\s*,\s*|\s+/,u=-1!==a?[s.slice(0,a).concat([s[a].split(c)[0]]),[s[a].split(c)[1]].concat(s.slice(a+1))]:[s];return(u=u.map(function(e,i){var n=(1===i?!r:r)?"height":"width",s=!1;return e.reduce(function(e,t){return""===e[e.length-1]&&-1!==["+","-"].indexOf(t)?(e[e.length-1]=t,s=!0,e):s?(e[e.length-1]+=t,s=!1,e):e.concat(t)},[]).map(function(e){return function(e,t,o,i){var n=e.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),r=+n[1],s=n[2];return r?0===s.indexOf("%")?U("%p"===s?o:i)[t]/100*r:"vh"===s||"vw"===s?("vh"===s?Math.max(document.documentElement.clientHeight,window.innerHeight||0):Math.max(document.documentElement.clientWidth,window.innerWidth||0))/100*r:r:e}(e,n,t,o)})})).forEach(function(e,t){e.forEach(function(o,i){te(o)&&(n[t]+=o*("-"===e[i-1]?-1:1))})}),n}(i,s,a,c),"left"===c?(s.top+=o[0],s.left-=o[1]):"right"===c?(s.top+=o[0],s.left+=o[1]):"top"===c?(s.left+=o[0],s.top-=o[1]):"bottom"===c&&(s.left+=o[0],s.top+=o[1]),e.popper=s,e},offset:0},preventOverflow:{order:300,enabled:!0,fn:function(e,t){var o=t.boundariesElement||O(e.instance.popper);e.instance.reference===o&&(o=O(o));var i=K("transform"),n=e.instance.popper.style,r=n.top,s=n.left,a=n[i];n.top="",n.left="",n[i]="";var c=D(e.instance.popper,e.instance.reference,t.padding,o,e.positionFixed);n.top=r,n.left=s,n[i]=a,t.boundaries=c;var u=t.priority,d=e.offsets.popper,p={primary:function(e){var o=d[e];return d[e]c[e]&&!t.escapeWithReference&&(i=Math.min(d[o],c[e]-("right"===e?d.width:d.height))),S({},o,i)}};return u.forEach(function(e){var t=-1!==["left","top"].indexOf(e)?"primary":"secondary";d=k({},d,p[t](e))}),e.offsets.popper=d,e},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,o=t.popper,i=t.reference,n=e.placement.split("-")[0],r=Math.floor,s=-1!==["top","bottom"].indexOf(n),a=s?"right":"bottom",c=s?"left":"top",u=s?"width":"height";return o[a]r(i[a])&&(e.offsets.popper[c]=r(i[a])),e}},arrow:{order:500,enabled:!0,fn:function(e,t){var o;if(!ne(e.instance.modifiers,"arrow","keepTogether"))return e;var i=t.element;if("string"==typeof i){if(!(i=e.instance.popper.querySelector(i)))return e}else if(!e.instance.popper.contains(i))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),e;var n=e.placement.split("-")[0],r=e.offsets,s=r.popper,a=r.reference,c=-1!==["left","right"].indexOf(n),u=c?"height":"width",d=c?"Top":"Left",p=d.toLowerCase(),l=c?"left":"top",f=c?"bottom":"right",h=H(i)[u];a[f]-hs[f]&&(e.offsets.popper[p]+=a[p]+h-s[f]),e.offsets.popper=U(e.offsets.popper);var m=a[p]+a[u]/2-h/2,g=v(e.instance.popper),b=parseFloat(g["margin"+d]),y=parseFloat(g["border"+d+"Width"]),_=m-e.offsets.popper[p]-b-y;return _=Math.max(Math.min(s[u]-h,_),0),e.arrowElement=i,e.offsets.arrow=(S(o={},p,Math.round(_)),S(o,l,""),o),e},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(e,t){if(W(e.instance.modifiers,"inner"))return e;if(e.flipped&&e.placement===e.originalPlacement)return e;var o=D(e.instance.popper,e.instance.reference,t.padding,t.boundariesElement,e.positionFixed),i=e.placement.split("-")[0],n=G(i),r=e.placement.split("-")[1]||"",s=[];switch(t.behavior){case"flip":s=[i,n];break;case"clockwise":s=ae(i);break;case"counterclockwise":s=ae(i,!0);break;default:s=t.behavior}return s.forEach(function(a,c){if(i!==a||s.length===c+1)return e;i=e.placement.split("-")[0],n=G(i);var u=e.offsets.popper,d=e.offsets.reference,p=Math.floor,l="left"===i&&p(u.right)>p(d.left)||"right"===i&&p(u.left)p(d.top)||"bottom"===i&&p(u.top)p(o.right),m=p(u.top)p(o.bottom),g="left"===i&&f||"right"===i&&h||"top"===i&&m||"bottom"===i&&v,b=-1!==["top","bottom"].indexOf(i),y=!!t.flipVariations&&(b&&"start"===r&&f||b&&"end"===r&&h||!b&&"start"===r&&m||!b&&"end"===r&&v),_=!!t.flipVariationsByContent&&(b&&"start"===r&&h||b&&"end"===r&&f||!b&&"start"===r&&v||!b&&"end"===r&&m),w=y||_;(l||g||w)&&(e.flipped=!0,(l||g)&&(i=s[c+1]),w&&(r=function(e){return"end"===e?"start":"start"===e?"end":e}(r)),e.placement=i+(r?"-"+r:""),e.offsets.popper=k({},e.offsets.popper,B(e.instance.popper,e.offsets.reference,e.placement)),e=z(e.instance.modifiers,e,"flip"))}),e},behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,o=t.split("-")[0],i=e.offsets,n=i.popper,r=i.reference,s=-1!==["left","right"].indexOf(o),a=-1===["top","left"].indexOf(o);return n[s?"left":"top"]=r[o]-(a?n[s?"width":"height"]:0),e.placement=G(t),e.offsets.popper=U(n),e}},hide:{order:800,enabled:!0,fn:function(e){if(!ne(e.instance.modifiers,"hide","preventOverflow"))return e;var t=e.offsets.reference,o=q(e.instance.modifiers,function(e){return"preventOverflow"===e.name}).boundaries;if(t.bottomo.right||t.top>o.bottom||t.right2&&void 0!==arguments[2]?arguments[2]:{};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.scheduleUpdate=function(){return requestAnimationFrame(i.update)},this.update=h(this.update.bind(this)),this.options=k({},e.Defaults,n),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=t&&t.jquery?t[0]:t,this.popper=o&&o.jquery?o[0]:o,this.options.modifiers={},Object.keys(k({},e.Defaults.modifiers,n.modifiers)).forEach(function(t){i.options.modifiers[t]=k({},e.Defaults.modifiers[t]||{},n.modifiers?n.modifiers[t]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(e){return k({name:e},i.options.modifiers[e])}).sort(function(e,t){return e.order-t.order}),this.modifiers.forEach(function(e){e.enabled&&m(e.onLoad)&&e.onLoad(i.reference,i.popper,i.options,e,i.state)}),this.update();var r=this.options.eventsEnabled;r&&this.enableEventListeners(),this.state.eventsEnabled=r}return $(e,[{key:"update",value:function(){return V.call(this)}},{key:"destroy",value:function(){return Y.call(this)}},{key:"enableEventListeners",value:function(){return Z.call(this)}},{key:"disableEventListeners",value:function(){return ee.call(this)}}]),e}();de.Utils=("undefined"!=typeof window?window:globalThis).PopperUtils,de.placements=re,de.Defaults=ue;const pe=de;var le,fe=o(2404),he=o.n(fe);function me(){me.init||(me.init=!0,le=-1!==function(){var e=window.navigator.userAgent,t=e.indexOf("MSIE ");if(t>0)return parseInt(e.substring(t+5,e.indexOf(".",t)),10);if(e.indexOf("Trident/")>0){var o=e.indexOf("rv:");return parseInt(e.substring(o+3,e.indexOf(".",o)),10)}var i=e.indexOf("Edge/");return i>0?parseInt(e.substring(i+5,e.indexOf(".",i)),10):-1}())}function ve(e,t,o,i,n,r,s,a,c,u){"boolean"!=typeof s&&(c=a,a=s,s=!1);var d,p="function"==typeof o?o.options:o;if(e&&e.render&&(p.render=e.render,p.staticRenderFns=e.staticRenderFns,p._compiled=!0,n&&(p.functional=!0)),i&&(p._scopeId=i),r?(d=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),t&&t.call(this,c(e)),e&&e._registeredComponents&&e._registeredComponents.add(r)},p._ssrRegister=d):t&&(d=s?function(e){t.call(this,u(e,this.$root.$options.shadowRoot))}:function(e){t.call(this,a(e))}),d)if(p.functional){var l=p.render;p.render=function(e,t){return d.call(t),l(e,t)}}else{var f=p.beforeCreate;p.beforeCreate=f?[].concat(f,d):[d]}return o}var ge={name:"ResizeObserver",props:{emitOnMount:{type:Boolean,default:!1},ignoreWidth:{type:Boolean,default:!1},ignoreHeight:{type:Boolean,default:!1}},mounted:function(){var e=this;me(),this.$nextTick(function(){e._w=e.$el.offsetWidth,e._h=e.$el.offsetHeight,e.emitOnMount&&e.emitSize()});var t=document.createElement("object");this._resizeObject=t,t.setAttribute("aria-hidden","true"),t.setAttribute("tabindex",-1),t.onload=this.addResizeHandlers,t.type="text/html",le&&this.$el.appendChild(t),t.data="about:blank",le||this.$el.appendChild(t)},beforeDestroy:function(){this.removeResizeHandlers()},methods:{compareAndNotify:function(){(!this.ignoreWidth&&this._w!==this.$el.offsetWidth||!this.ignoreHeight&&this._h!==this.$el.offsetHeight)&&(this._w=this.$el.offsetWidth,this._h=this.$el.offsetHeight,this.emitSize())},emitSize:function(){this.$emit("notify",{width:this._w,height:this._h})},addResizeHandlers:function(){this._resizeObject.contentDocument.defaultView.addEventListener("resize",this.compareAndNotify),this.compareAndNotify()},removeResizeHandlers:function(){this._resizeObject&&this._resizeObject.onload&&(!le&&this._resizeObject.contentDocument&&this._resizeObject.contentDocument.defaultView.removeEventListener("resize",this.compareAndNotify),this.$el.removeChild(this._resizeObject),this._resizeObject.onload=null,this._resizeObject=null)}}},be=function(){var e=this.$createElement;return(this._self._c||e)("div",{staticClass:"resize-observer",attrs:{tabindex:"-1"}})};be._withStripped=!0;var ye=ve({render:be,staticRenderFns:[]},void 0,ge,"data-v-8859cc6c",!1,void 0,!1,void 0,void 0,void 0),_e={version:"1.0.1",install:function(e){e.component("resize-observer",ye),e.component("ResizeObserver",ye)}},we=null;"undefined"!=typeof window?we=window.Vue:"undefined"!=typeof globalThis&&(we=globalThis.Vue),we&&we.use(_e);var Ae=o(55364),Oe=o.n(Ae),Ee=function(){};function Ce(e){return"string"==typeof e&&(e=e.split(" ")),e}function Le(e,t){var o,i=Ce(t);o=e.className instanceof Ee?Ce(e.className.baseVal):Ce(e.className),i.forEach(function(e){-1===o.indexOf(e)&&o.push(e)}),e instanceof SVGElement?e.setAttribute("class",o.join(" ")):e.className=o.join(" ")}function Te(e,t){var o,i=Ce(t);o=e.className instanceof Ee?Ce(e.className.baseVal):Ce(e.className),i.forEach(function(e){var t=o.indexOf(e);-1!==t&&o.splice(t,1)}),e instanceof SVGElement?e.setAttribute("class",o.join(" ")):e.className=o.join(" ")}"undefined"!=typeof window&&(Ee=window.SVGAnimatedString);var Ie=!1;if("undefined"!=typeof window){Ie=!1;try{var Pe=Object.defineProperty({},"passive",{get:function(){Ie=!0}});window.addEventListener("test",null,Pe)}catch(e){}}function $e(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),o.push.apply(o,i)}return o}function Se(e){for(var t=1;t
',trigger:"hover focus",offset:0},Ue=[],xe=function(){function e(t,o){var i=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),d(this,"_events",[]),d(this,"_setTooltipNodeEvent",function(e,t,o,n){var r=e.relatedreference||e.toElement||e.relatedTarget;return!!i._tooltipNode.contains(r)&&(i._tooltipNode.addEventListener(e.type,function o(r){var s=r.relatedreference||r.toElement||r.relatedTarget;i._tooltipNode.removeEventListener(e.type,o),t.contains(s)||i._scheduleHide(t,n.delay,n,r)}),!0)}),o=Se(Se({},ke),o),t.jquery&&(t=t[0]),this.show=this.show.bind(this),this.hide=this.hide.bind(this),this.reference=t,this.options=o,this._isOpen=!1,this._init()}return t=e,(o=[{key:"show",value:function(){this._show(this.reference,this.options)}},{key:"hide",value:function(){this._hide()}},{key:"dispose",value:function(){this._dispose()}},{key:"toggle",value:function(){return this._isOpen?this.hide():this.show()}},{key:"setClasses",value:function(e){this._classes=e}},{key:"setContent",value:function(e){this.options.title=e,this._tooltipNode&&this._setContent(e,this.options)}},{key:"setOptions",value:function(e){var t=!1,o=e&&e.classes||ze.options.defaultClass;he()(this._classes,o)||(this.setClasses(o),t=!0),e=Re(e);var i=!1,n=!1;for(var r in this.options.offset===e.offset&&this.options.placement===e.placement||(i=!0),(this.options.template!==e.template||this.options.trigger!==e.trigger||this.options.container!==e.container||t)&&(n=!0),e)this.options[r]=e[r];if(this._tooltipNode)if(n){var s=this._isOpen;this.dispose(),this._init(),s&&this.show()}else i&&this.popperInstance.update()}},{key:"_init",value:function(){var e="string"==typeof this.options.trigger?this.options.trigger.split(" "):[];this._isDisposed=!1,this._enableDocumentTouch=-1===e.indexOf("manual"),e=e.filter(function(e){return-1!==["click","hover","focus"].indexOf(e)}),this._setEventListeners(this.reference,e,this.options),this.$_originalTitle=this.reference.getAttribute("title"),this.reference.removeAttribute("title"),this.reference.setAttribute("data-original-title",this.$_originalTitle)}},{key:"_create",value:function(e,t){var o=this,i=window.document.createElement("div");i.innerHTML=t.trim();var n=i.childNodes[0];return n.id=this.options.ariaId||"tooltip_".concat(Math.random().toString(36).substr(2,10)),n.setAttribute("aria-hidden","true"),this.options.autoHide&&-1!==this.options.trigger.indexOf("hover")&&(n.addEventListener("mouseenter",function(t){return o._scheduleHide(e,o.options.delay,o.options,t)}),n.addEventListener("click",function(t){return o._scheduleHide(e,o.options.delay,o.options,t)})),n}},{key:"_setContent",value:function(e,t){var o=this;this.asyncContent=!1,this._applyContent(e,t).then(function(){o.popperInstance&&o.popperInstance.update()})}},{key:"_applyContent",value:function(e,t){var o=this;return new Promise(function(i,n){var r=t.html,s=o._tooltipNode;if(s){var a=s.querySelector(o.options.innerSelector);if(1===e.nodeType){if(r){for(;a.firstChild;)a.removeChild(a.firstChild);a.appendChild(e)}}else{if("function"==typeof e){var c=e();return void(c&&"function"==typeof c.then?(o.asyncContent=!0,t.loadingClass&&Le(s,t.loadingClass),t.loadingContent&&o._applyContent(t.loadingContent,t),c.then(function(e){return t.loadingClass&&Te(s,t.loadingClass),o._applyContent(e,t)}).then(i).catch(n)):o._applyContent(c,t).then(i).catch(n))}r?a.innerHTML=e:a.innerText=e}i()}})}},{key:"_show",value:function(e,t){if(!t||"string"!=typeof t.container||document.querySelector(t.container)){clearTimeout(this._disposeTimer),delete(t=Object.assign({},t)).offset;var o=!0;this._tooltipNode&&(Le(this._tooltipNode,this._classes),o=!1);var i=this._ensureShown(e,t);return o&&this._tooltipNode&&Le(this._tooltipNode,this._classes),Le(e,["v-tooltip-open"]),i}}},{key:"_ensureShown",value:function(e,t){var o=this;if(this._isOpen)return this;if(this._isOpen=!0,Ue.push(this),this._tooltipNode)return this._tooltipNode.style.display="",this._tooltipNode.setAttribute("aria-hidden","false"),this.popperInstance.enableEventListeners(),this.popperInstance.update(),this.asyncContent&&this._setContent(t.title,t),this;var i=e.getAttribute("title")||t.title;if(!i)return this;var n=this._create(e,t.template);this._tooltipNode=n,e.setAttribute("aria-describedby",n.id);var r=this._findContainer(t.container,e);this._append(n,r);var s=Se(Se({},t.popperOptions),{},{placement:t.placement});return s.modifiers=Se(Se({},s.modifiers),{},{arrow:{element:this.options.arrowSelector}}),t.boundariesElement&&(s.modifiers.preventOverflow={boundariesElement:t.boundariesElement}),this.popperInstance=new pe(e,n,s),this._setContent(i,t),requestAnimationFrame(function(){!o._isDisposed&&o.popperInstance?(o.popperInstance.update(),requestAnimationFrame(function(){o._isDisposed?o.dispose():o._isOpen&&n.setAttribute("aria-hidden","false")})):o.dispose()}),this}},{key:"_noLongerOpen",value:function(){var e=Ue.indexOf(this);-1!==e&&Ue.splice(e,1)}},{key:"_hide",value:function(){var e=this;if(!this._isOpen)return this;this._isOpen=!1,this._noLongerOpen(),this._tooltipNode.style.display="none",this._tooltipNode.setAttribute("aria-hidden","true"),this.popperInstance&&this.popperInstance.disableEventListeners(),clearTimeout(this._disposeTimer);var t=ze.options.disposeTimeout;return null!==t&&(this._disposeTimer=setTimeout(function(){e._tooltipNode&&(e._tooltipNode.removeEventListener("mouseenter",e.hide),e._tooltipNode.removeEventListener("click",e.hide),e._removeTooltipNode())},t)),Te(this.reference,["v-tooltip-open"]),this}},{key:"_removeTooltipNode",value:function(){if(this._tooltipNode){var e=this._tooltipNode.parentNode;e&&(e.removeChild(this._tooltipNode),this.reference.removeAttribute("aria-describedby")),this._tooltipNode=null}}},{key:"_dispose",value:function(){var e=this;return this._isDisposed=!0,this.reference.removeAttribute("data-original-title"),this.$_originalTitle&&this.reference.setAttribute("title",this.$_originalTitle),this._events.forEach(function(t){var o=t.func,i=t.event;e.reference.removeEventListener(i,o)}),this._events=[],this._tooltipNode?(this._hide(),this._tooltipNode.removeEventListener("mouseenter",this.hide),this._tooltipNode.removeEventListener("click",this.hide),this.popperInstance.destroy(),this.popperInstance.options.removeOnDestroy||this._removeTooltipNode()):this._noLongerOpen(),this}},{key:"_findContainer",value:function(e,t){return"string"==typeof e?e=window.document.querySelector(e):!1===e&&(e=t.parentNode),e}},{key:"_append",value:function(e,t){t.appendChild(e)}},{key:"_setEventListeners",value:function(e,t,o){var i=this,n=[],r=[];t.forEach(function(e){switch(e){case"hover":n.push("mouseenter"),r.push("mouseleave"),i.options.hideOnTargetClick&&r.push("click");break;case"focus":n.push("focus"),r.push("blur"),i.options.hideOnTargetClick&&r.push("click");break;case"click":n.push("click"),r.push("click")}}),n.forEach(function(t){var n=function(t){!0!==i._isOpen&&(t.usedByTooltip=!0,i._scheduleShow(e,o.delay,o,t))};i._events.push({event:t,func:n}),e.addEventListener(t,n)}),r.forEach(function(t){var n=function(t){!0!==t.usedByTooltip&&i._scheduleHide(e,o.delay,o,t)};i._events.push({event:t,func:n}),e.addEventListener(t,n)})}},{key:"_onDocumentTouch",value:function(e){this._enableDocumentTouch&&this._scheduleHide(this.reference,this.options.delay,this.options,e)}},{key:"_scheduleShow",value:function(e,t,o){var i=this,n=t&&t.show||t||0;clearTimeout(this._scheduleTimer),this._scheduleTimer=window.setTimeout(function(){return i._show(e,o)},n)}},{key:"_scheduleHide",value:function(e,t,o,i){var n=this,r=t&&t.hide||t||0;clearTimeout(this._scheduleTimer),this._scheduleTimer=window.setTimeout(function(){if(!1!==n._isOpen&&n._tooltipNode.ownerDocument.body.contains(n._tooltipNode)){if("mouseleave"===i.type&&n._setTooltipNodeEvent(i,e,t,o))return;n._hide(e,o)}},r)}}])&&p(t.prototype,o),Object.defineProperty(t,"prototype",{writable:!1}),e;var t,o}();function Ne(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),o.push.apply(o,i)}return o}function je(e){for(var t=1;t
',defaultArrowSelector:".tooltip-arrow, .tooltip__arrow",defaultInnerSelector:".tooltip-inner, .tooltip__inner",defaultDelay:0,defaultTrigger:"hover focus",defaultOffset:0,defaultContainer:"body",defaultBoundariesElement:void 0,defaultPopperOptions:{},defaultLoadingClass:"tooltip-loading",defaultLoadingContent:"...",autoHide:!0,defaultHideOnTargetClick:!0,disposeTimeout:5e3,popover:{defaultPlacement:"bottom",defaultClass:"vue-popover-theme",defaultBaseClass:"tooltip popover",defaultWrapperClass:"wrapper",defaultInnerClass:"tooltip-inner popover-inner",defaultArrowClass:"tooltip-arrow popover-arrow",defaultOpenClass:"open",defaultDelay:0,defaultTrigger:"click",defaultOffset:0,defaultContainer:"body",defaultBoundariesElement:void 0,defaultPopperOptions:{},defaultAutoHide:!0,defaultHandleResize:!0}};function Re(e){var t={placement:void 0!==e.placement?e.placement:ze.options.defaultPlacement,delay:void 0!==e.delay?e.delay:ze.options.defaultDelay,html:void 0!==e.html?e.html:ze.options.defaultHtml,template:void 0!==e.template?e.template:ze.options.defaultTemplate,arrowSelector:void 0!==e.arrowSelector?e.arrowSelector:ze.options.defaultArrowSelector,innerSelector:void 0!==e.innerSelector?e.innerSelector:ze.options.defaultInnerSelector,trigger:void 0!==e.trigger?e.trigger:ze.options.defaultTrigger,offset:void 0!==e.offset?e.offset:ze.options.defaultOffset,container:void 0!==e.container?e.container:ze.options.defaultContainer,boundariesElement:void 0!==e.boundariesElement?e.boundariesElement:ze.options.defaultBoundariesElement,autoHide:void 0!==e.autoHide?e.autoHide:ze.options.autoHide,hideOnTargetClick:void 0!==e.hideOnTargetClick?e.hideOnTargetClick:ze.options.defaultHideOnTargetClick,loadingClass:void 0!==e.loadingClass?e.loadingClass:ze.options.defaultLoadingClass,loadingContent:void 0!==e.loadingContent?e.loadingContent:ze.options.defaultLoadingContent,popperOptions:je({},void 0!==e.popperOptions?e.popperOptions:ze.options.defaultPopperOptions)};if(t.offset){var o=c(t.offset),i=t.offset;("number"===o||"string"===o&&-1===i.indexOf(","))&&(i="0, ".concat(i)),t.popperOptions.modifiers||(t.popperOptions.modifiers={}),t.popperOptions.modifiers.offset={offset:i}}return t.trigger&&-1!==t.trigger.indexOf("click")&&(t.hideOnTargetClick=!1),t}function He(e,t){for(var o=e.placement,i=0;i2&&void 0!==arguments[2]?arguments[2]:{},i=Ge(t),n=void 0!==t.classes?t.classes:ze.options.defaultClass,r=je({title:i},Re(je(je({},"object"===c(t)?t:{}),{},{placement:He(t,o)}))),s=e._tooltip=new xe(e,r);s.setClasses(n),s._vueEl=e;var a=void 0!==t.targetClasses?t.targetClasses:ze.options.defaultTargetClass;return e._tooltipTargetClasses=a,Le(e,a),s}(e,o,n),void 0!==o.show&&o.show!==e._tooltipOldShow&&(e._tooltipOldShow=o.show,o.show?i.show():i.hide())):Be(e)}var ze={options:Me,bind:qe,update:qe,unbind:function(e){Be(e)}};function Ve(e){e.addEventListener("click",Ke),e.addEventListener("touchstart",Ye,!!Ie&&{passive:!0})}function We(e){e.removeEventListener("click",Ke),e.removeEventListener("touchstart",Ye),e.removeEventListener("touchend",Je),e.removeEventListener("touchcancel",Qe)}function Ke(e){var t=e.currentTarget;e.closePopover=!t.$_vclosepopover_touch,e.closeAllPopover=t.$_closePopoverModifiers&&!!t.$_closePopoverModifiers.all}function Ye(e){if(1===e.changedTouches.length){var t=e.currentTarget;t.$_vclosepopover_touch=!0;var o=e.changedTouches[0];t.$_vclosepopover_touchPoint=o,t.addEventListener("touchend",Je),t.addEventListener("touchcancel",Qe)}}function Je(e){var t=e.currentTarget;if(t.$_vclosepopover_touch=!1,1===e.changedTouches.length){var o=e.changedTouches[0],i=t.$_vclosepopover_touchPoint;e.closePopover=Math.abs(o.screenY-i.screenY)<20&&Math.abs(o.screenX-i.screenX)<20,e.closeAllPopover=t.$_closePopoverModifiers&&!!t.$_closePopoverModifiers.all}}function Qe(e){e.currentTarget.$_vclosepopover_touch=!1}var Xe={bind:function(e,t){var o=t.value,i=t.modifiers;e.$_closePopoverModifiers=i,(void 0===o||o)&&Ve(e)},update:function(e,t){var o=t.value,i=t.oldValue,n=t.modifiers;e.$_closePopoverModifiers=n,o!==i&&(void 0===o||o?Ve(e):We(e))},unbind:function(e){We(e)}};function Ze(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),o.push.apply(o,i)}return o}function et(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:{},o=t.event;t.skipDelay;var i=t.force;!(void 0!==i&&i)&&this.disabled||(this.$_scheduleShow(o),this.$emit("show")),this.$emit("update:open",!0),this.$_beingShowed=!0,requestAnimationFrame(function(){e.$_beingShowed=!1})},hide:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.event;e.skipDelay,this.$_scheduleHide(t),this.$emit("hide"),this.$emit("update:open",!1)},dispose:function(){if(this.$_isDisposed=!0,this.$_removeEventListeners(),this.hide({skipDelay:!0}),this.popperInstance&&(this.popperInstance.destroy(),!this.popperInstance.options.removeOnDestroy)){var e=this.$refs.popover;e.parentNode&&e.parentNode.removeChild(e)}this.$_mounted=!1,this.popperInstance=null,this.isOpen=!1,this.$emit("dispose")},$_init:function(){-1===this.trigger.indexOf("manual")&&this.$_addEventListeners()},$_show:function(){var e=this,t=this.$refs.trigger,o=this.$refs.popover;if(clearTimeout(this.$_disposeTimer),!this.isOpen){if(this.popperInstance&&(this.isOpen=!0,this.popperInstance.enableEventListeners(),this.popperInstance.scheduleUpdate()),!this.$_mounted){var i=this.$_findContainer(this.container,t);if(!i)return void console.warn("No container for popover",this);i.appendChild(o),this.$_mounted=!0,this.isOpen=!1,this.popperInstance&&requestAnimationFrame(function(){e.hidden||(e.isOpen=!0)})}if(!this.popperInstance){var n=et(et({},this.popperOptions),{},{placement:this.placement});if(n.modifiers=et(et({},n.modifiers),{},{arrow:et(et({},n.modifiers&&n.modifiers.arrow),{},{element:this.$refs.arrow})}),this.offset){var r=this.$_getOffset();n.modifiers.offset=et(et({},n.modifiers&&n.modifiers.offset),{},{offset:r})}this.boundariesElement&&(n.modifiers.preventOverflow=et(et({},n.modifiers&&n.modifiers.preventOverflow),{},{boundariesElement:this.boundariesElement})),this.popperInstance=new pe(t,o,n),requestAnimationFrame(function(){if(e.hidden)return e.hidden=!1,void e.$_hide();!e.$_isDisposed&&e.popperInstance?(e.popperInstance.scheduleUpdate(),requestAnimationFrame(function(){if(e.hidden)return e.hidden=!1,void e.$_hide();e.$_isDisposed?e.dispose():e.isOpen=!0})):e.dispose()})}var s=this.openGroup;if(s)for(var a,c=0;c1&&void 0!==arguments[1]&&arguments[1];if(clearTimeout(this.$_scheduleTimer),e)this.$_show();else{var t=parseInt(this.delay&&this.delay.show||this.delay||0);this.$_scheduleTimer=setTimeout(this.$_show.bind(this),t)}},$_scheduleHide:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,o=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(clearTimeout(this.$_scheduleTimer),o)this.$_hide();else{var i=parseInt(this.delay&&this.delay.hide||this.delay||0);this.$_scheduleTimer=setTimeout(function(){if(e.isOpen){if(t&&"mouseleave"===t.type&&e.$_setTooltipNodeEvent(t))return;e.$_hide()}},i)}},$_setTooltipNodeEvent:function(e){var t=this,o=this.$refs.trigger,i=this.$refs.popover,n=e.relatedreference||e.toElement||e.relatedTarget;return!!i.contains(n)&&(i.addEventListener(e.type,function n(r){var s=r.relatedreference||r.toElement||r.relatedTarget;i.removeEventListener(e.type,n),o.contains(s)||t.hide({event:r})}),!0)},$_removeEventListeners:function(){var e=this.$refs.trigger;this.$_events.forEach(function(t){var o=t.func,i=t.event;e.removeEventListener(i,o)}),this.$_events=[]},$_updatePopper:function(e){this.popperInstance&&(e(),this.isOpen&&this.popperInstance.scheduleUpdate())},$_restartPopper:function(){if(this.popperInstance){var e=this.isOpen;this.dispose(),this.$_isDisposed=!1,this.$_init(),e&&this.show({skipDelay:!0,force:!0})}},$_handleGlobalClose:function(e){var t=this,o=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.$_beingShowed||(this.hide({event:e}),e.closePopover?this.$emit("close-directive"):this.$emit("auto-hide"),o&&(this.$_preventOpen=!0,setTimeout(function(){t.$_preventOpen=!1},300)))},$_handleResize:function(){this.isOpen&&this.popperInstance&&(this.popperInstance.scheduleUpdate(),this.$emit("resize"))}}};function st(e){for(var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],o=function(o){var i=it[o];if(i.$refs.popover){var n=i.$refs.popover.contains(e.target);requestAnimationFrame(function(){(e.closeAllPopover||e.closePopover&&n||i.autoHide&&!n)&&i.$_handleGlobalClose(e,t)})}},i=0;i1&&void 0!==arguments[1]?arguments[1]:{};if(!e.installed){e.installed=!0;var i={};Oe()(i,Me,o),pt.options=i,ze.options=i,t.directive("tooltip",ze),t.directive("close-popover",Xe),t.component("VPopover",dt)}},get enabled(){return Fe.enabled},set enabled(e){Fe.enabled=e}},lt=null;"undefined"!=typeof window?lt=window.Vue:"undefined"!=typeof globalThis&&(lt=globalThis.Vue),lt&<.use(pt);const ft=pt;var ht=o(85471),mt=o(95353),vt=o(58723),gt=o(22378);const bt=(0,ht.pM)({__name:"SettingsApp",setup:e=>({__sfc:!0,NcContent:gt.A})}),yt=(0,o(14486).A)(bt,function(){var e=this,t=e._self._c;return t(e._self._setupProxy.NcContent,{attrs:{"app-name":"settings"}},[t("router-view",{attrs:{name:"navigation"}}),e._v(" "),t("router-view"),e._v(" "),t("router-view",{attrs:{name:"sidebar"}})],1)},[],!1,null,null,null).exports;var _t=o(63814),wt=o(40173);const At=[{name:"users",path:"/:index(index.php/)?settings/users",components:{default:()=>Promise.all([o.e(4208),o.e(3239)]).then(o.bind(o,99913)),navigation:()=>Promise.all([o.e(4208),o.e(3239)]).then(o.bind(o,21299))},props:!0,children:[{path:":selectedGroup",name:"group"}]},{path:"/:index(index.php/)?settings/apps",name:"apps",redirect:{name:"apps-category",params:{category:(0,o(81222).C)("settings","appstoreEnabled",!0)?"discover":"installed"}},components:{default:()=>Promise.all([o.e(4208),o.e(4529)]).then(o.bind(o,6572)),navigation:()=>Promise.all([o.e(4208),o.e(4529)]).then(o.bind(o,31267)),sidebar:()=>Promise.all([o.e(4208),o.e(4529)]).then(o.bind(o,31278))},children:[{path:":category",name:"apps-category",children:[{path:":id",name:"apps-details"}]}]}];ht.Ay.use(wt.Ay);const Ot=new wt.Ay({mode:"history",base:(0,_t.Jv)(""),linkActiveClass:"active",routes:At});var Et=o(36347);(0,s.IF)(n.Ay),o.nc=(0,i.aV)(),ht.Ay.prototype.t=r.t,ht.Ay.prototype.n=r.n,ht.Ay.use(a.R2),ht.Ay.use(ft,{defaultHtml:!1}),ht.Ay.use(mt.Ay);const Ct=(0,Et.P)();(0,vt.O)(Ct,Ot);const Lt=(0,a.Ey)();Ct.dispatch("migrateLocalStorage"),new ht.Ay({router:Ot,store:Ct,pinia:Lt,render:e=>e(yt),el:"#content"})},87805(e,t,o){var i=o(43360),n=o(75288);e.exports=function(e,t,o){(void 0!==o&&!n(e[t],o)||void 0===o&&!(t in e))&&i(e,t,o)}},85250(e,t,o){var i=o(37217),n=o(87805),r=o(86649),s=o(42824),a=o(23805),c=o(37241),u=o(14974);e.exports=function e(t,o,d,p,l){t!==o&&r(o,function(r,c){if(l||(l=new i),a(r))s(t,o,c,d,e,p,l);else{var f=p?p(u(t,c),r,c+"",t,o,l):void 0;void 0===f&&(f=r),n(t,c,f)}},c)}},42824(e,t,o){var i=o(87805),n=o(93290),r=o(71961),s=o(23007),a=o(35529),c=o(72428),u=o(56449),d=o(83693),p=o(3656),l=o(1882),f=o(23805),h=o(11331),m=o(37167),v=o(14974),g=o(69884);e.exports=function(e,t,o,b,y,_,w){var A=v(e,o),O=v(t,o),E=w.get(O);if(E)i(e,o,E);else{var C=_?_(A,O,o+"",e,t,w):void 0,L=void 0===C;if(L){var T=u(O),I=!T&&p(O),P=!T&&!I&&m(O);C=O,T||I||P?u(A)?C=A:d(A)?C=s(A):I?(L=!1,C=n(O,!0)):P?(L=!1,C=r(O,!0)):C=[]:h(O)||c(O)?(C=A,c(A)?C=g(A):f(A)&&!l(A)||(C=a(O))):L=!1}L&&(w.set(O,C),y(C,O,b,_,w),w.delete(O)),i(e,o,C)}}},20999(e,t,o){var i=o(69302),n=o(36800);e.exports=function(e){return i(function(t,o){var i=-1,r=o.length,s=r>1?o[r-1]:void 0,a=r>2?o[2]:void 0;for(s=e.length>3&&"function"==typeof s?(r--,s):void 0,a&&n(o[0],o[1],a)&&(s=r<3?void 0:s,r=1),t=Object(t);++ik,il:()=>l});var i=("undefined"!=typeof window?window:"undefined"!=typeof globalThis?globalThis:{}).__VUE_DEVTOOLS_GLOBAL_HOOK__;function n(e,t){if(void 0===t&&(t=[]),null===e||"object"!=typeof e)return e;var o,i=(o=function(t){return t.original===e},t.filter(o)[0]);if(i)return i.copy;var r=Array.isArray(e)?[]:{};return t.push({original:e,copy:r}),Object.keys(e).forEach(function(o){r[o]=n(e[o],t)}),r}function r(e,t){Object.keys(e).forEach(function(o){return t(e[o],o)})}function s(e){return null!==e&&"object"==typeof e}var a=function(e,t){this.runtime=t,this._children=Object.create(null),this._rawModule=e;var o=e.state;this.state=("function"==typeof o?o():o)||{}},c={namespaced:{configurable:!0}};c.namespaced.get=function(){return!!this._rawModule.namespaced},a.prototype.addChild=function(e,t){this._children[e]=t},a.prototype.removeChild=function(e){delete this._children[e]},a.prototype.getChild=function(e){return this._children[e]},a.prototype.hasChild=function(e){return e in this._children},a.prototype.update=function(e){this._rawModule.namespaced=e.namespaced,e.actions&&(this._rawModule.actions=e.actions),e.mutations&&(this._rawModule.mutations=e.mutations),e.getters&&(this._rawModule.getters=e.getters)},a.prototype.forEachChild=function(e){r(this._children,e)},a.prototype.forEachGetter=function(e){this._rawModule.getters&&r(this._rawModule.getters,e)},a.prototype.forEachAction=function(e){this._rawModule.actions&&r(this._rawModule.actions,e)},a.prototype.forEachMutation=function(e){this._rawModule.mutations&&r(this._rawModule.mutations,e)},Object.defineProperties(a.prototype,c);var u,d=function(e){this.register([],e,!1)};function p(e,t,o){if(t.update(o),o.modules)for(var i in o.modules){if(!t.getChild(i))return;p(e.concat(i),t.getChild(i),o.modules[i])}}d.prototype.get=function(e){return e.reduce(function(e,t){return e.getChild(t)},this.root)},d.prototype.getNamespace=function(e){var t=this.root;return e.reduce(function(e,o){return e+((t=t.getChild(o)).namespaced?o+"/":"")},"")},d.prototype.update=function(e){p([],this.root,e)},d.prototype.register=function(e,t,o){var i=this;void 0===o&&(o=!0);var n=new a(t,o);0===e.length?this.root=n:this.get(e.slice(0,-1)).addChild(e[e.length-1],n),t.modules&&r(t.modules,function(t,n){i.register(e.concat(n),t,o)})},d.prototype.unregister=function(e){var t=this.get(e.slice(0,-1)),o=e[e.length-1],i=t.getChild(o);i&&i.runtime&&t.removeChild(o)},d.prototype.isRegistered=function(e){var t=this.get(e.slice(0,-1)),o=e[e.length-1];return!!t&&t.hasChild(o)};var l=function(e){var t=this;void 0===e&&(e={}),!u&&"undefined"!=typeof window&&window.Vue&&_(window.Vue);var o=e.plugins;void 0===o&&(o=[]);var n=e.strict;void 0===n&&(n=!1),this._committing=!1,this._actions=Object.create(null),this._actionSubscribers=[],this._mutations=Object.create(null),this._wrappedGetters=Object.create(null),this._modules=new d(e),this._modulesNamespaceMap=Object.create(null),this._subscribers=[],this._watcherVM=new u,this._makeLocalGettersCache=Object.create(null);var r=this,s=this.dispatch,a=this.commit;this.dispatch=function(e,t){return s.call(r,e,t)},this.commit=function(e,t,o){return a.call(r,e,t,o)},this.strict=n;var c=this._modules.root.state;g(this,c,[],this._modules.root),v(this,c),o.forEach(function(e){return e(t)}),(void 0!==e.devtools?e.devtools:u.config.devtools)&&function(e){i&&(e._devtoolHook=i,i.emit("vuex:init",e),i.on("vuex:travel-to-state",function(t){e.replaceState(t)}),e.subscribe(function(e,t){i.emit("vuex:mutation",e,t)},{prepend:!0}),e.subscribeAction(function(e,t){i.emit("vuex:action",e,t)},{prepend:!0}))}(this)},f={state:{configurable:!0}};function h(e,t,o){return t.indexOf(e)<0&&(o&&o.prepend?t.unshift(e):t.push(e)),function(){var o=t.indexOf(e);o>-1&&t.splice(o,1)}}function m(e,t){e._actions=Object.create(null),e._mutations=Object.create(null),e._wrappedGetters=Object.create(null),e._modulesNamespaceMap=Object.create(null);var o=e.state;g(e,o,[],e._modules.root,!0),v(e,o,t)}function v(e,t,o){var i=e._vm;e.getters={},e._makeLocalGettersCache=Object.create(null);var n=e._wrappedGetters,s={};r(n,function(t,o){s[o]=function(e,t){return function(){return e(t)}}(t,e),Object.defineProperty(e.getters,o,{get:function(){return e._vm[o]},enumerable:!0})});var a=u.config.silent;u.config.silent=!0,e._vm=new u({data:{$$state:t},computed:s}),u.config.silent=a,e.strict&&function(e){e._vm.$watch(function(){return this._data.$$state},function(){},{deep:!0,sync:!0})}(e),i&&(o&&e._withCommit(function(){i._data.$$state=null}),u.nextTick(function(){return i.$destroy()}))}function g(e,t,o,i,n){var r=!o.length,s=e._modules.getNamespace(o);if(i.namespaced&&(e._modulesNamespaceMap[s],e._modulesNamespaceMap[s]=i),!r&&!n){var a=b(t,o.slice(0,-1)),c=o[o.length-1];e._withCommit(function(){u.set(a,c,i.state)})}var d=i.context=function(e,t,o){var i=""===t,n={dispatch:i?e.dispatch:function(o,i,n){var r=y(o,i,n),s=r.payload,a=r.options,c=r.type;return a&&a.root||(c=t+c),e.dispatch(c,s)},commit:i?e.commit:function(o,i,n){var r=y(o,i,n),s=r.payload,a=r.options,c=r.type;a&&a.root||(c=t+c),e.commit(c,s,a)}};return Object.defineProperties(n,{getters:{get:i?function(){return e.getters}:function(){return function(e,t){if(!e._makeLocalGettersCache[t]){var o={},i=t.length;Object.keys(e.getters).forEach(function(n){if(n.slice(0,i)===t){var r=n.slice(i);Object.defineProperty(o,r,{get:function(){return e.getters[n]},enumerable:!0})}}),e._makeLocalGettersCache[t]=o}return e._makeLocalGettersCache[t]}(e,t)}},state:{get:function(){return b(e.state,o)}}}),n}(e,s,o);i.forEachMutation(function(t,o){!function(e,t,o,i){(e._mutations[t]||(e._mutations[t]=[])).push(function(t){o.call(e,i.state,t)})}(e,s+o,t,d)}),i.forEachAction(function(t,o){var i=t.root?o:s+o,n=t.handler||t;!function(e,t,o,i){(e._actions[t]||(e._actions[t]=[])).push(function(t){var n,r=o.call(e,{dispatch:i.dispatch,commit:i.commit,getters:i.getters,state:i.state,rootGetters:e.getters,rootState:e.state},t);return(n=r)&&"function"==typeof n.then||(r=Promise.resolve(r)),e._devtoolHook?r.catch(function(t){throw e._devtoolHook.emit("vuex:error",t),t}):r})}(e,i,n,d)}),i.forEachGetter(function(t,o){!function(e,t,o,i){e._wrappedGetters[t]||(e._wrappedGetters[t]=function(e){return o(i.state,i.getters,e.state,e.getters)})}(e,s+o,t,d)}),i.forEachChild(function(i,r){g(e,t,o.concat(r),i,n)})}function b(e,t){return t.reduce(function(e,t){return e[t]},e)}function y(e,t,o){return s(e)&&e.type&&(o=t,t=e,e=e.type),{type:e,payload:t,options:o}}function _(e){u&&e===u||function(e){if(Number(e.version.split(".")[0])>=2)e.mixin({beforeCreate:o});else{var t=e.prototype._init;e.prototype._init=function(e){void 0===e&&(e={}),e.init=e.init?[o].concat(e.init):o,t.call(this,e)}}function o(){var e=this.$options;e.store?this.$store="function"==typeof e.store?e.store():e.store:e.parent&&e.parent.$store&&(this.$store=e.parent.$store)}}(u=e)}f.state.get=function(){return this._vm._data.$$state},f.state.set=function(e){},l.prototype.commit=function(e,t,o){var i=this,n=y(e,t,o),r=n.type,s=n.payload,a=(n.options,{type:r,payload:s}),c=this._mutations[r];c&&(this._withCommit(function(){c.forEach(function(e){e(s)})}),this._subscribers.slice().forEach(function(e){return e(a,i.state)}))},l.prototype.dispatch=function(e,t){var o=this,i=y(e,t),n=i.type,r=i.payload,s={type:n,payload:r},a=this._actions[n];if(a){try{this._actionSubscribers.slice().filter(function(e){return e.before}).forEach(function(e){return e.before(s,o.state)})}catch(e){}var c=a.length>1?Promise.all(a.map(function(e){return e(r)})):a[0](r);return new Promise(function(e,t){c.then(function(t){try{o._actionSubscribers.filter(function(e){return e.after}).forEach(function(e){return e.after(s,o.state)})}catch(e){}e(t)},function(e){try{o._actionSubscribers.filter(function(e){return e.error}).forEach(function(t){return t.error(s,o.state,e)})}catch(e){}t(e)})})}},l.prototype.subscribe=function(e,t){return h(e,this._subscribers,t)},l.prototype.subscribeAction=function(e,t){return h("function"==typeof e?{before:e}:e,this._actionSubscribers,t)},l.prototype.watch=function(e,t,o){var i=this;return this._watcherVM.$watch(function(){return e(i.state,i.getters)},t,o)},l.prototype.replaceState=function(e){var t=this;this._withCommit(function(){t._vm._data.$$state=e})},l.prototype.registerModule=function(e,t,o){void 0===o&&(o={}),"string"==typeof e&&(e=[e]),this._modules.register(e,t),g(this,this.state,e,this._modules.get(e),o.preserveState),v(this,this.state)},l.prototype.unregisterModule=function(e){var t=this;"string"==typeof e&&(e=[e]),this._modules.unregister(e),this._withCommit(function(){var o=b(t.state,e.slice(0,-1));u.delete(o,e[e.length-1])}),m(this)},l.prototype.hasModule=function(e){return"string"==typeof e&&(e=[e]),this._modules.isRegistered(e)},l.prototype.hotUpdate=function(e){this._modules.update(e),m(this,!0)},l.prototype._withCommit=function(e){var t=this._committing;this._committing=!0,e(),this._committing=t},Object.defineProperties(l.prototype,f);var w=L(function(e,t){var o={};return C(t).forEach(function(t){var i=t.key,n=t.val;o[i]=function(){var t=this.$store.state,o=this.$store.getters;if(e){var i=T(this.$store,0,e);if(!i)return;t=i.context.state,o=i.context.getters}return"function"==typeof n?n.call(this,t,o):t[n]},o[i].vuex=!0}),o}),A=L(function(e,t){var o={};return C(t).forEach(function(t){var i=t.key,n=t.val;o[i]=function(){for(var t=[],o=arguments.length;o--;)t[o]=arguments[o];var i=this.$store.commit;if(e){var r=T(this.$store,0,e);if(!r)return;i=r.context.commit}return"function"==typeof n?n.apply(this,[i].concat(t)):i.apply(this.$store,[n].concat(t))}}),o}),O=L(function(e,t){var o={};return C(t).forEach(function(t){var i=t.key,n=t.val;n=e+n,o[i]=function(){if(!e||T(this.$store,0,e))return this.$store.getters[n]},o[i].vuex=!0}),o}),E=L(function(e,t){var o={};return C(t).forEach(function(t){var i=t.key,n=t.val;o[i]=function(){for(var t=[],o=arguments.length;o--;)t[o]=arguments[o];var i=this.$store.dispatch;if(e){var r=T(this.$store,0,e);if(!r)return;i=r.context.dispatch}return"function"==typeof n?n.apply(this,[i].concat(t)):i.apply(this.$store,[n].concat(t))}}),o});function C(e){return function(e){return Array.isArray(e)||s(e)}(e)?Array.isArray(e)?e.map(function(e){return{key:e,val:e}}):Object.keys(e).map(function(t){return{key:t,val:e[t]}}):[]}function L(e){return function(t,o){return"string"!=typeof t?(o=t,t=""):"/"!==t.charAt(t.length-1)&&(t+="/"),e(t,o)}}function T(e,t,o){return e._modulesNamespaceMap[o]}function I(e,t,o){var i=o?e.groupCollapsed:e.group;try{i.call(e,t)}catch(o){e.log(t)}}function P(e){try{e.groupEnd()}catch(t){e.log("—— log end ——")}}function $(){var e=new Date;return" @ "+S(e.getHours(),2)+":"+S(e.getMinutes(),2)+":"+S(e.getSeconds(),2)+"."+S(e.getMilliseconds(),3)}function S(e,t){return o=t-e.toString().length,new Array(o+1).join("0")+e;var o}const k={Store:l,install:_,version:"3.6.2",mapState:w,mapMutations:A,mapGetters:O,mapActions:E,createNamespacedHelpers:function(e){return{mapState:w.bind(null,e),mapGetters:O.bind(null,e),mapMutations:A.bind(null,e),mapActions:E.bind(null,e)}},createLogger:function(e){void 0===e&&(e={});var t=e.collapsed;void 0===t&&(t=!0);var o=e.filter;void 0===o&&(o=function(e,t,o){return!0});var i=e.transformer;void 0===i&&(i=function(e){return e});var r=e.mutationTransformer;void 0===r&&(r=function(e){return e});var s=e.actionFilter;void 0===s&&(s=function(e,t){return!0});var a=e.actionTransformer;void 0===a&&(a=function(e){return e});var c=e.logMutations;void 0===c&&(c=!0);var u=e.logActions;void 0===u&&(u=!0);var d=e.logger;return void 0===d&&(d=console),function(e){var p=n(e.state);void 0!==d&&(c&&e.subscribe(function(e,s){var a=n(s);if(o(e,p,a)){var c=$(),u=r(e),l="mutation "+e.type+c;I(d,l,t),d.log("%c prev state","color: #9E9E9E; font-weight: bold",i(p)),d.log("%c mutation","color: #03A9F4; font-weight: bold",u),d.log("%c next state","color: #4CAF50; font-weight: bold",i(a)),P(d)}p=a}),u&&e.subscribeAction(function(e,o){if(s(e,o)){var i=$(),n=a(e),r="action "+e.type+i;I(d,r,t),d.log("%c action","color: #03A9F4; font-weight: bold",n),P(d)}}))}}}}},r={};function s(e){var t=r[e];if(void 0!==t)return t.exports;var o=r[e]={id:e,loaded:!1,exports:{}};return n[e].call(o.exports,o,o.exports,s),o.loaded=!0,o.exports}s.m=n,e=[],s.O=(t,o,i,n)=>{if(!o){var r=1/0;for(d=0;d=n)&&Object.keys(s.O).every(e=>s.O[e](o[c]))?o.splice(c--,1):(a=!1,n0&&e[d-1][2]>n;d--)e[d]=e[d-1];e[d]=[o,i,n]},s.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return s.d(t,{a:t}),t},s.d=(e,t)=>{for(var o in t)s.o(t,o)&&!s.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},s.f={},s.e=e=>Promise.all(Object.keys(s.f).reduce((t,o)=>(s.f[o](e,t),t),[])),s.u=e=>(({3239:"settings-users",4529:"settings-apps-view"}[e]||e)+"-"+e+".js?v="+{1140:"490e17ed9c8948d5a9e8",2221:"428c2ff62c4b8b3c97fc",3079:"e25e60ee1af8efb023fb",3239:"77047d0d8c6ee70900f0",4529:"4e522ae06adb0b86d3f2",5448:"71cfe268d6f1213c4735",5862:"580b9c2e231a9169a12f",6015:"ebcb6885c1fc8c461988",6197:"a372e411091ea8313019",6798:"1a6cf42d93801a926a3d",7471:"b4ac70873a3ab192efd0",7859:"740587c0c8c350dad157",7910:"de857920f8beb5205bbc",8815:"9a5c507c75429c9c04e4",9646:"1f59e43b850fe6bc2360"}[e]),s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),o={},i="nextcloud-ui-legacy:",s.l=(e,t,n,r)=>{if(o[e])o[e].push(t);else{var a,c;if(void 0!==n)for(var u=document.getElementsByTagName("script"),d=0;d{a.onerror=a.onload=null,clearTimeout(f);var n=o[e];if(delete o[e],a.parentNode&&a.parentNode.removeChild(a),n&&n.forEach(e=>e(i)),t)return t(i)},f=setTimeout(l.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=l.bind(null,a.onerror),a.onload=l.bind(null,a.onload),c&&document.head.appendChild(a)}},s.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},s.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),s.j=2689,(()=>{var e;globalThis.importScripts&&(e=globalThis.location+"");var t=globalThis.document;if(!e&&t&&(t.currentScript&&"SCRIPT"===t.currentScript.tagName.toUpperCase()&&(e=t.currentScript.src),!e)){var o=t.getElementsByTagName("script");if(o.length)for(var i=o.length-1;i>-1&&(!e||!/^http(s?):/.test(e));)e=o[i--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),s.p=e})(),(()=>{s.b="undefined"!=typeof document&&document.baseURI||self.location.href;var e={2689:0};s.f.j=(t,o)=>{var i=s.o(e,t)?e[t]:void 0;if(0!==i)if(i)o.push(i[2]);else{var n=new Promise((o,n)=>i=e[t]=[o,n]);o.push(i[2]=n);var r=s.p+s.u(t),a=new Error;s.l(r,o=>{if(s.o(e,t)&&(0!==(i=e[t])&&(e[t]=void 0),i)){var n=o&&("load"===o.type?"missing":o.type),r=o&&o.target&&o.target.src;a.message="Loading chunk "+t+" failed.\n("+n+": "+r+")",a.name="ChunkLoadError",a.type=n,a.request=r,i[1](a)}},"chunk-"+t,t)}},s.O.j=t=>0===e[t];var t=(t,o)=>{var i,n,[r,a,c]=o,u=0;if(r.some(t=>0!==e[t])){for(i in a)s.o(a,i)&&(s.m[i]=a[i]);if(c)var d=c(s)}for(t&&t(o);us(35750));a=s.O(a)})(); +//# sourceMappingURL=settings-vue-settings-apps-users-management.js.map?v=5bee8087f22ff47b1a76 \ No newline at end of file diff --git a/dist/settings-vue-settings-apps-users-management.js.map b/dist/settings-vue-settings-apps-users-management.js.map index 161223b8505..804e48786ba 100644 --- a/dist/settings-vue-settings-apps-users-management.js.map +++ b/dist/settings-vue-settings-apps-users-management.js.map @@ -1 +1 @@ -{"version":3,"file":"settings-vue-settings-apps-users-management.js?v=57412e524da86fc2dfa9","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/apps/settings/src/store/api.js","webpack:///nextcloud/apps/settings/src/store/apps.js","webpack:///nextcloud/apps/settings/src/store/oc.js","webpack:///nextcloud/apps/settings/src/store/users-settings.js","webpack:///nextcloud/apps/settings/src/utils/sorting.ts","webpack:///nextcloud/apps/settings/src/store/users.js","webpack:///nextcloud/apps/settings/src/store/index.js","webpack:///nextcloud/apps/settings/src/constants/GroupManagement.ts","webpack:///nextcloud/apps/settings/src/logger.ts","webpack:///nextcloud/node_modules/@babel/runtime/helpers/esm/typeof.js","webpack:///nextcloud/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack:///nextcloud/node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack:///nextcloud/node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack:///nextcloud/node_modules/@babel/runtime/helpers/esm/createClass.js","webpack:///nextcloud/node_modules/popper.js/dist/esm/popper.js","webpack:///nextcloud/node_modules/vue-resize/dist/vue-resize.esm.js","webpack:///nextcloud/node_modules/v-tooltip/dist/v-tooltip.esm.js","webpack:///nextcloud/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack:///nextcloud/apps/settings/src/views/SettingsApp.vue","webpack:///nextcloud/apps/settings/src/views/SettingsApp.vue?vue&type=script&setup=true&lang=ts","webpack://nextcloud/./apps/settings/src/views/SettingsApp.vue?3a67","webpack:///nextcloud/apps/settings/src/router/routes.ts","webpack:///nextcloud/apps/settings/src/router/index.ts","webpack:///nextcloud/apps/settings/src/main-apps-users-management.ts","webpack:///nextcloud/node_modules/lodash/_assignMergeValue.js","webpack:///nextcloud/node_modules/lodash/_baseMerge.js","webpack:///nextcloud/node_modules/lodash/_baseMergeDeep.js","webpack:///nextcloud/node_modules/lodash/_createAssigner.js","webpack:///nextcloud/node_modules/lodash/_safeGet.js","webpack:///nextcloud/node_modules/lodash/isArrayLikeObject.js","webpack:///nextcloud/node_modules/lodash/isEqual.js","webpack:///nextcloud/node_modules/lodash/merge.js","webpack:///nextcloud/node_modules/lodash/toPlainObject.js","webpack:///nextcloud/node_modules/vuex-router-sync/index.js","webpack:///nextcloud/node_modules/vuex/dist/vuex.esm.js","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/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, fn, priority] = deferred[i];\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-ui-legacy:\";\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\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: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport axios from '@nextcloud/axios'\nimport { confirmPassword } from '@nextcloud/password-confirmation'\n\n/**\n * @param {string} url - The url to sanitize\n */\nfunction sanitize(url) {\n\treturn url.replace(/\\/$/, '') // Remove last url slash\n}\n\nexport default {\n\n\t/**\n\t * This Promise is used to chain a request that require an admin password confirmation\n\t * Since chaining Promise have a very precise behavior concerning catch and then,\n\t * you'll need to be careful when using it.\n\t * e.g\n\t * // store\n\t * action(context) {\n\t * return api.requireAdmin().then((response) => {\n\t * return api.get('url')\n\t * .then((response) => {API success})\n\t * .catch((error) => {API failure});\n\t * }).catch((error) => {requireAdmin failure});\n\t * }\n\t * // vue\n\t * this.$store.dispatch('action').then(() => {always executed})\n\t *\n\t * Since Promise.then().catch().then() will always execute the last then\n\t * this.$store.dispatch('action').then will always be executed\n\t *\n\t * If you want requireAdmin failure to also catch the API request failure\n\t * you will need to throw a new error in the api.get.catch()\n\t *\n\t * e.g\n\t * api.requireAdmin().then((response) => {\n\t * api.get('url')\n\t * .then((response) => {API success})\n\t * .catch((error) => {throw error;});\n\t * }).catch((error) => {requireAdmin OR API failure});\n\t *\n\t * @return {Promise}\n\t */\n\trequireAdmin() {\n\t\treturn confirmPassword()\n\t},\n\tget(url, options) {\n\t\treturn axios.get(sanitize(url), options)\n\t},\n\tpost(url, data, options) {\n\t\treturn axios.post(sanitize(url), data, options)\n\t},\n\tpatch(url, data) {\n\t\treturn axios.patch(sanitize(url), data)\n\t},\n\tput(url, data) {\n\t\treturn axios.put(sanitize(url), data)\n\t},\n\tdelete(url, data) {\n\t\treturn axios.delete(sanitize(url), { params: data })\n\t},\n}\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport axios from '@nextcloud/axios'\nimport { showError, showInfo } from '@nextcloud/dialogs'\nimport { loadState } from '@nextcloud/initial-state'\nimport { PwdConfirmationMode } from '@nextcloud/password-confirmation'\nimport { generateUrl } from '@nextcloud/router'\nimport Vue from 'vue'\nimport logger from '../logger.ts'\nimport api from './api.js'\n\nconst state = {\n\tapps: [],\n\tbundles: loadState('settings', 'appstoreBundles', []),\n\tcategories: [],\n\tupdateCount: loadState('settings', 'appstoreUpdateCount', 0),\n\tloading: {},\n\tgettingCategoriesPromise: null,\n\tappApiEnabled: loadState('settings', 'appApiEnabled', false),\n}\n\nconst mutations = {\n\n\tAPPS_API_FAILURE(state, error) {\n\t\tshowError(t('settings', 'An error occurred during the request. Unable to proceed.') + '
' + error.error.response.data.data.message, { isHTML: true })\n\t\tlogger.error('An error occurred during the request. Unable to proceed.', { state, error })\n\t},\n\n\tinitCategories(state, { categories, updateCount }) {\n\t\tstate.categories = categories\n\t\tstate.updateCount = updateCount\n\t},\n\n\tupdateCategories(state, categoriesPromise) {\n\t\tstate.gettingCategoriesPromise = categoriesPromise\n\t},\n\n\tsetUpdateCount(state, updateCount) {\n\t\tstate.updateCount = updateCount\n\t},\n\n\taddCategory(state, category) {\n\t\tstate.categories.push(category)\n\t},\n\n\tappendCategories(state, categoriesArray) {\n\t\t// convert obj to array\n\t\tstate.categories = categoriesArray\n\t},\n\n\tsetAllApps(state, apps) {\n\t\tstate.apps = apps\n\t},\n\n\tsetError(state, { appId, error }) {\n\t\tif (!Array.isArray(appId)) {\n\t\t\tappId = [appId]\n\t\t}\n\t\tappId.forEach((_id) => {\n\t\t\tconst app = state.apps.find((app) => app.id === _id)\n\t\t\tapp.error = error\n\t\t})\n\t},\n\n\tclearError(state, { appId }) {\n\t\tconst app = state.apps.find((app) => app.id === appId)\n\t\tapp.error = null\n\t},\n\n\tenableApp(state, { appId, groups }) {\n\t\tconst app = state.apps.find((app) => app.id === appId)\n\t\tapp.active = true\n\t\tVue.set(app, 'groups', [...groups])\n\t\tif (app.id === 'app_api') {\n\t\t\tstate.appApiEnabled = true\n\t\t}\n\t},\n\n\tsetInstallState(state, { appId, canInstall }) {\n\t\tconst app = state.apps.find((app) => app.id === appId)\n\t\tif (app) {\n\t\t\tapp.canInstall = canInstall === true\n\t\t}\n\t},\n\n\tdisableApp(state, appId) {\n\t\tconst app = state.apps.find((app) => app.id === appId)\n\t\tapp.active = false\n\t\tapp.groups = []\n\t\tif (app.removable) {\n\t\t\tapp.canUnInstall = true\n\t\t}\n\t\tif (app.id === 'app_api') {\n\t\t\tstate.appApiEnabled = false\n\t\t}\n\t},\n\n\tuninstallApp(state, appId) {\n\t\tstate.apps.find((app) => app.id === appId).active = false\n\t\tstate.apps.find((app) => app.id === appId).groups = []\n\t\tstate.apps.find((app) => app.id === appId).needsDownload = true\n\t\tstate.apps.find((app) => app.id === appId).installed = false\n\t\tstate.apps.find((app) => app.id === appId).canUnInstall = false\n\t\tstate.apps.find((app) => app.id === appId).canInstall = true\n\t\tif (appId === 'app_api') {\n\t\t\tstate.appApiEnabled = false\n\t\t}\n\t},\n\n\tupdateApp(state, appId) {\n\t\tconst app = state.apps.find((app) => app.id === appId)\n\t\tconst version = app.update\n\t\tapp.update = null\n\t\tapp.version = version\n\t\tstate.updateCount--\n\t},\n\n\tresetApps(state) {\n\t\tstate.apps = []\n\t},\n\treset(state) {\n\t\tstate.apps = []\n\t\tstate.categories = []\n\t\tstate.updateCount = 0\n\t},\n\tstartLoading(state, id) {\n\t\tif (Array.isArray(id)) {\n\t\t\tid.forEach((_id) => {\n\t\t\t\tVue.set(state.loading, _id, true)\n\t\t\t})\n\t\t} else {\n\t\t\tVue.set(state.loading, id, true)\n\t\t}\n\t},\n\tstopLoading(state, id) {\n\t\tif (Array.isArray(id)) {\n\t\t\tid.forEach((_id) => {\n\t\t\t\tVue.set(state.loading, _id, false)\n\t\t\t})\n\t\t} else {\n\t\t\tVue.set(state.loading, id, false)\n\t\t}\n\t},\n}\n\nconst getters = {\n\tisAppApiEnabled(state) {\n\t\treturn state.appApiEnabled\n\t},\n\tloading(state) {\n\t\treturn function(id) {\n\t\t\treturn state.loading[id]\n\t\t}\n\t},\n\tgetCategories(state) {\n\t\treturn state.categories\n\t},\n\tgetAllApps(state) {\n\t\treturn state.apps\n\t},\n\tgetAppBundles(state) {\n\t\treturn state.bundles\n\t},\n\tgetUpdateCount(state) {\n\t\treturn state.updateCount\n\t},\n\tgetCategoryById: (state) => (selectedCategoryId) => {\n\t\treturn state.categories.find((category) => category.id === selectedCategoryId)\n\t},\n}\n\nconst actions = {\n\n\tenableApp(context, { appId, groups }) {\n\t\tlet apps\n\t\tif (Array.isArray(appId)) {\n\t\t\tapps = appId\n\t\t} else {\n\t\t\tapps = [appId]\n\t\t}\n\t\tcontext.commit('startLoading', apps)\n\t\tcontext.commit('startLoading', 'install')\n\n\t\tconst previousState = {}\n\t\tapps.forEach((_appId) => {\n\t\t\tconst app = context.state.apps.find((app) => app.id === _appId)\n\t\t\tif (app) {\n\t\t\t\tpreviousState[_appId] = {\n\t\t\t\t\tactive: app.active,\n\t\t\t\t\tgroups: [...(app.groups || [])],\n\t\t\t\t}\n\t\t\t\tcontext.commit('enableApp', { appId: _appId, groups })\n\t\t\t}\n\t\t})\n\n\t\treturn api.post(generateUrl('settings/apps/enable'), { appIds: apps, groups }, { confirmPassword: PwdConfirmationMode.Strict })\n\t\t\t.then((response) => {\n\t\t\t\tcontext.commit('stopLoading', apps)\n\t\t\t\tcontext.commit('stopLoading', 'install')\n\n\t\t\t\t// check for server health\n\t\t\t\treturn axios.get(generateUrl('apps/files/'))\n\t\t\t\t\t.then(() => {\n\t\t\t\t\t\tif (response.data.update_required) {\n\t\t\t\t\t\t\tshowInfo(\n\t\t\t\t\t\t\t\tt(\n\t\t\t\t\t\t\t\t\t'settings',\n\t\t\t\t\t\t\t\t\t'The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds.',\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tonClick: () => window.location.reload(),\n\t\t\t\t\t\t\t\t\tclose: false,\n\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\t\t\tlocation.reload()\n\t\t\t\t\t\t\t}, 5000)\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.catch(() => {\n\t\t\t\t\t\tif (!Array.isArray(appId)) {\n\t\t\t\t\t\t\tshowError(t('settings', 'Error: This app cannot be enabled because it makes the server unstable'))\n\t\t\t\t\t\t\tcontext.commit('setError', {\n\t\t\t\t\t\t\t\tappId: apps,\n\t\t\t\t\t\t\t\terror: t('settings', 'Error: This app cannot be enabled because it makes the server unstable'),\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\tcontext.dispatch('disableApp', { appId })\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t})\n\t\t\t.catch((error) => {\n\t\t\t\tcontext.commit('stopLoading', apps)\n\t\t\t\tcontext.commit('stopLoading', 'install')\n\n\t\t\t\tapps.forEach((_appId) => {\n\t\t\t\t\tif (previousState[_appId]) {\n\t\t\t\t\t\tcontext.commit('enableApp', {\n\t\t\t\t\t\t\tappId: _appId,\n\t\t\t\t\t\t\tgroups: previousState[_appId].groups,\n\t\t\t\t\t\t})\n\t\t\t\t\t\tif (!previousState[_appId].active) {\n\t\t\t\t\t\t\tcontext.commit('disableApp', _appId)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\n\t\t\t\tconst message = error.response?.data?.data?.message\n\t\t\t\tif (message) {\n\t\t\t\t\tcontext.commit('setError', {\n\t\t\t\t\t\tappId: apps,\n\t\t\t\t\t\terror: message,\n\t\t\t\t\t})\n\t\t\t\t\tcontext.commit('APPS_API_FAILURE', { appId, error })\n\t\t\t\t}\n\t\t\t})\n\t},\n\tforceEnableApp(context, { appId }) {\n\t\tlet apps\n\t\tif (Array.isArray(appId)) {\n\t\t\tapps = appId\n\t\t} else {\n\t\t\tapps = [appId]\n\t\t}\n\t\treturn api.requireAdmin().then(() => {\n\t\t\tcontext.commit('startLoading', apps)\n\t\t\tcontext.commit('startLoading', 'install')\n\t\t\treturn api.post(generateUrl('settings/apps/force'), { appId })\n\t\t\t\t.then(() => {\n\t\t\t\t\tcontext.commit('setInstallState', { appId, canInstall: true })\n\t\t\t\t})\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tcontext.commit('stopLoading', apps)\n\t\t\t\t\tcontext.commit('stopLoading', 'install')\n\t\t\t\t\tcontext.commit('setError', {\n\t\t\t\t\t\tappId: apps,\n\t\t\t\t\t\terror: error.response.data.data.message,\n\t\t\t\t\t})\n\t\t\t\t\tcontext.commit('APPS_API_FAILURE', { appId, error })\n\t\t\t\t})\n\t\t\t\t.finally(() => {\n\t\t\t\t\tcontext.commit('stopLoading', apps)\n\t\t\t\t\tcontext.commit('stopLoading', 'install')\n\t\t\t\t})\n\t\t}).catch((error) => context.commit('API_FAILURE', { appId, error }))\n\t},\n\tdisableApp(context, { appId }) {\n\t\tlet apps\n\t\tif (Array.isArray(appId)) {\n\t\t\tapps = appId\n\t\t} else {\n\t\t\tapps = [appId]\n\t\t}\n\t\treturn api.requireAdmin().then(() => {\n\t\t\tcontext.commit('startLoading', apps)\n\t\t\treturn api.post(generateUrl('settings/apps/disable'), { appIds: apps })\n\t\t\t\t.then(() => {\n\t\t\t\t\tcontext.commit('stopLoading', apps)\n\t\t\t\t\tapps.forEach((_appId) => {\n\t\t\t\t\t\tcontext.commit('disableApp', _appId)\n\t\t\t\t\t})\n\t\t\t\t\treturn true\n\t\t\t\t})\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tcontext.commit('stopLoading', apps)\n\t\t\t\t\tcontext.commit('APPS_API_FAILURE', { appId, error })\n\t\t\t\t})\n\t\t}).catch((error) => context.commit('API_FAILURE', { appId, error }))\n\t},\n\tuninstallApp(context, { appId }) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\tcontext.commit('startLoading', appId)\n\t\t\treturn api.get(generateUrl(`settings/apps/uninstall/${appId}`))\n\t\t\t\t.then(() => {\n\t\t\t\t\tcontext.commit('stopLoading', appId)\n\t\t\t\t\tcontext.commit('uninstallApp', appId)\n\t\t\t\t\treturn true\n\t\t\t\t})\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tcontext.commit('stopLoading', appId)\n\t\t\t\t\tcontext.commit('APPS_API_FAILURE', { appId, error })\n\t\t\t\t})\n\t\t}).catch((error) => context.commit('API_FAILURE', { appId, error }))\n\t},\n\n\tupdateApp(context, { appId }) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\tcontext.commit('startLoading', appId)\n\t\t\tcontext.commit('startLoading', 'install')\n\t\t\treturn api.get(generateUrl(`settings/apps/update/${appId}`))\n\t\t\t\t.then(() => {\n\t\t\t\t\tcontext.commit('stopLoading', 'install')\n\t\t\t\t\tcontext.commit('stopLoading', appId)\n\t\t\t\t\tcontext.commit('updateApp', appId)\n\t\t\t\t\treturn true\n\t\t\t\t})\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tcontext.commit('stopLoading', appId)\n\t\t\t\t\tcontext.commit('stopLoading', 'install')\n\t\t\t\t\tcontext.commit('APPS_API_FAILURE', { appId, error })\n\t\t\t\t})\n\t\t}).catch((error) => context.commit('API_FAILURE', { appId, error }))\n\t},\n\n\tgetAllApps(context) {\n\t\tcontext.commit('startLoading', 'list')\n\t\treturn api.get(generateUrl('settings/apps/list'))\n\t\t\t.then((response) => {\n\t\t\t\tcontext.commit('setAllApps', response.data.apps)\n\t\t\t\tcontext.commit('stopLoading', 'list')\n\t\t\t\treturn true\n\t\t\t})\n\t\t\t.catch((error) => context.commit('API_FAILURE', error))\n\t},\n\n\tasync getCategories(context, { shouldRefetchCategories = false } = {}) {\n\t\tif (shouldRefetchCategories || !context.state.gettingCategoriesPromise) {\n\t\t\tcontext.commit('startLoading', 'categories')\n\t\t\ttry {\n\t\t\t\tconst categoriesPromise = api.get(generateUrl('settings/apps/categories'))\n\t\t\t\tcontext.commit('updateCategories', categoriesPromise)\n\t\t\t\tconst categoriesPromiseResponse = await categoriesPromise\n\t\t\t\tif (categoriesPromiseResponse.data.length > 0) {\n\t\t\t\t\tcontext.commit('appendCategories', categoriesPromiseResponse.data)\n\t\t\t\t\tcontext.commit('stopLoading', 'categories')\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t\tcontext.commit('stopLoading', 'categories')\n\t\t\t\treturn false\n\t\t\t} catch (error) {\n\t\t\t\tcontext.commit('API_FAILURE', error)\n\t\t\t}\n\t\t}\n\t\treturn context.state.gettingCategoriesPromise\n\t},\n\n}\n\nexport default { state, mutations, getters, actions }\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { generateOcsUrl } from '@nextcloud/router'\nimport api from './api.js'\n\nconst state = {}\nconst mutations = {}\nconst getters = {}\nconst actions = {\n\t/**\n\t * Set application config in database\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.app Application name\n\t * @param {boolean} options.key Config key\n\t * @param {boolean} options.value Value to set\n\t * @return {Promise}\n\t */\n\tsetAppConfig(context, { app, key, value }) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.post(generateOcsUrl('apps/provisioning_api/api/v1/config/apps/{app}/{key}', { app, key }), { value })\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { app, key, value, error }))\n\t},\n}\n\nexport default { state, mutations, getters, actions }\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { loadState } from '@nextcloud/initial-state'\n\nconst state = {\n\tserverData: loadState('settings', 'usersSettings', {}),\n}\nconst mutations = {\n\tsetServerData(state, data) {\n\t\tstate.serverData = data\n\t},\n}\nconst getters = {\n\tgetServerData(state) {\n\t\treturn state.serverData\n\t},\n}\nconst actions = {}\n\nexport default { state, mutations, getters, actions }\n","/**\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getCanonicalLocale, getLanguage } from '@nextcloud/l10n';\nexport const naturalCollator = Intl.Collator([getLanguage(), getCanonicalLocale()], {\n numeric: true,\n usage: 'sort',\n});\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport axios from '@nextcloud/axios'\nimport { getCapabilities } from '@nextcloud/capabilities'\nimport { showError } from '@nextcloud/dialogs'\nimport { parseFileSize } from '@nextcloud/files'\nimport { loadState } from '@nextcloud/initial-state'\nimport { generateOcsUrl, generateUrl } from '@nextcloud/router'\nimport { GroupSorting } from '../constants/GroupManagement.ts'\nimport logger from '../logger.ts'\nimport { naturalCollator } from '../utils/sorting.ts'\nimport api from './api.js'\n\nconst usersSettings = loadState('settings', 'usersSettings', {})\n\nconst defaults = {\n\t/**\n\t * @type {import('../views/user-types').IGroup}\n\t */\n\tgroup: {\n\t\tid: '',\n\t\tname: '',\n\t\tusercount: 0,\n\t\tdisabled: 0,\n\t\tcanAdd: true,\n\t\tcanRemove: true,\n\t},\n}\n\nconst state = {\n\tusers: [],\n\tgroups: [\n\t\t...(usersSettings.getSubAdminGroups ?? []),\n\t\t...(usersSettings.systemGroups ?? []),\n\t],\n\torderBy: usersSettings.sortGroups ?? GroupSorting.UserCount,\n\tminPasswordLength: 0,\n\tusersOffset: 0,\n\tusersLimit: 25,\n\tdisabledUsersOffset: 0,\n\tdisabledUsersLimit: 25,\n\tsearchQuery: '',\n\tuserCount: usersSettings.userCount ?? 0,\n\tshowConfig: {\n\t\tshowStoragePath: usersSettings.showConfig?.user_list_show_storage_path,\n\t\tshowUserBackend: usersSettings.showConfig?.user_list_show_user_backend,\n\t\tshowFirstLogin: usersSettings.showConfig?.user_list_show_first_login,\n\t\tshowLastLogin: usersSettings.showConfig?.user_list_show_last_login,\n\t\tshowNewUserForm: usersSettings.showConfig?.user_list_show_new_user_form,\n\t\tshowLanguages: usersSettings.showConfig?.user_list_show_languages,\n\t},\n}\n\nconst mutations = {\n\tappendUsers(state, usersObj) {\n\t\tconst existingUsers = state.users.map(({ id }) => id)\n\t\tconst newUsers = Object.values(usersObj)\n\t\t\t.filter(({ id }) => !existingUsers.includes(id))\n\n\t\tconst users = state.users.concat(newUsers)\n\t\tstate.usersOffset += state.usersLimit\n\t\tstate.users = users\n\t},\n\tupdateDisabledUsers(state) {\n\t\tstate.disabledUsersOffset += state.disabledUsersLimit\n\t},\n\tsetPasswordPolicyMinLength(state, length) {\n\t\tstate.minPasswordLength = length !== '' ? length : 0\n\t},\n\t/**\n\t * @param {object} state store state\n\t * @param {import('../views/user-types.js').IGroup} newGroup new group\n\t */\n\taddGroup(state, newGroup) {\n\t\ttry {\n\t\t\tif (typeof state.groups.find((group) => group.id === newGroup.id) !== 'undefined') {\n\t\t\t\treturn\n\t\t\t}\n\t\t\t// extend group to default values\n\t\t\tconst group = { ...defaults.group, ...newGroup }\n\t\t\tstate.groups.unshift(group)\n\t\t} catch (error) {\n\t\t\tlogger.error('Cannt create group', { error })\n\t\t}\n\t},\n\trenameGroup(state, { gid, displayName }) {\n\t\tconst groupIndex = state.groups.findIndex((groupSearch) => groupSearch.id === gid)\n\t\tif (groupIndex >= 0) {\n\t\t\tconst updatedGroup = state.groups[groupIndex]\n\t\t\tupdatedGroup.name = displayName\n\t\t\tstate.groups.splice(groupIndex, 1, updatedGroup)\n\t\t}\n\t},\n\tremoveGroup(state, gid) {\n\t\tconst groupIndex = state.groups.findIndex((groupSearch) => groupSearch.id === gid)\n\t\tif (groupIndex >= 0) {\n\t\t\tstate.groups.splice(groupIndex, 1)\n\t\t}\n\t},\n\taddUserGroup(state, { userid, gid }) {\n\t\tconst group = state.groups.find((groupSearch) => groupSearch.id === gid)\n\t\tconst user = state.users.find((user) => user.id === userid)\n\t\t// increase count if user is enabled\n\t\tif (group && user.enabled && state.userCount > 0) {\n\t\t\tgroup.usercount++\n\t\t}\n\t\tconst groups = user.groups\n\t\tgroups.push(gid)\n\t},\n\tremoveUserGroup(state, { userid, gid }) {\n\t\tconst group = state.groups.find((groupSearch) => groupSearch.id === gid)\n\t\tconst user = state.users.find((user) => user.id === userid)\n\t\t// lower count if user is enabled\n\t\tif (group && user.enabled && state.userCount > 0) {\n\t\t\tgroup.usercount--\n\t\t}\n\t\tconst groups = user.groups\n\t\tgroups.splice(groups.indexOf(gid), 1)\n\t},\n\taddUserSubAdmin(state, { userid, gid }) {\n\t\tconst groups = state.users.find((user) => user.id === userid).subadmin\n\t\tgroups.push(gid)\n\t},\n\tremoveUserSubAdmin(state, { userid, gid }) {\n\t\tconst groups = state.users.find((user) => user.id === userid).subadmin\n\t\tgroups.splice(groups.indexOf(gid), 1)\n\t},\n\tdeleteUser(state, userid) {\n\t\tconst userIndex = state.users.findIndex((user) => user.id === userid)\n\t\tthis.commit('updateUserCounts', { user: state.users[userIndex], actionType: 'remove' })\n\t\tstate.users.splice(userIndex, 1)\n\t},\n\taddUserData(state, response) {\n\t\tconst user = response.data.ocs.data\n\t\tstate.users.unshift(user)\n\t\tthis.commit('updateUserCounts', { user, actionType: 'create' })\n\t},\n\tenableDisableUser(state, { userid, enabled }) {\n\t\tconst user = state.users.find((user) => user.id === userid)\n\t\tuser.enabled = enabled\n\t\tthis.commit('updateUserCounts', { user, actionType: enabled ? 'enable' : 'disable' })\n\t},\n\t// update active/disabled counts, groups counts\n\tupdateUserCounts(state, { user, actionType }) {\n\t\t// 0 is a special value\n\t\tif (state.userCount === 0) {\n\t\t\treturn\n\t\t}\n\n\t\tconst recentGroup = state.groups.find((group) => group.id === '__nc_internal_recent')\n\t\tconst disabledGroup = state.groups.find((group) => group.id === 'disabled')\n\t\tswitch (actionType) {\n\t\t\tcase 'enable':\n\t\t\tcase 'disable':\n\t\t\t\tdisabledGroup.usercount += user.enabled ? -1 : 1 // update Disabled Users count\n\t\t\t\trecentGroup.usercount += user.enabled ? 1 : -1\n\t\t\t\tstate.userCount += user.enabled ? 1 : -1 // update Active Users count\n\t\t\t\tuser.groups.forEach((userGroup) => {\n\t\t\t\t\tconst group = state.groups.find((groupSearch) => groupSearch.id === userGroup)\n\t\t\t\t\tif (!group) {\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\tgroup.disabled += user.enabled ? -1 : 1 // update group disabled count\n\t\t\t\t})\n\t\t\t\tbreak\n\t\t\tcase 'create':\n\t\t\t\trecentGroup.usercount++\n\t\t\t\tstate.userCount++ // increment Active Users count\n\n\t\t\t\tuser.groups.forEach((userGroup) => {\n\t\t\t\t\tconst group = state.groups.find((groupSearch) => groupSearch.id === userGroup)\n\t\t\t\t\tif (!group) {\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\tgroup.usercount++ // increment group total count\n\t\t\t\t})\n\t\t\t\tbreak\n\t\t\tcase 'remove':\n\t\t\t\tif (user.enabled) {\n\t\t\t\t\trecentGroup.usercount--\n\t\t\t\t\tstate.userCount-- // decrement Active Users count\n\t\t\t\t\tuser.groups.forEach((userGroup) => {\n\t\t\t\t\t\tconst group = state.groups.find((groupSearch) => groupSearch.id === userGroup)\n\t\t\t\t\t\tif (!group) {\n\t\t\t\t\t\t\tlogger.warn('User group ' + userGroup + ' does not exist during user removal')\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t}\n\t\t\t\t\t\tgroup.usercount-- // decrement group total count\n\t\t\t\t\t})\n\t\t\t\t} else {\n\t\t\t\t\tdisabledGroup.usercount-- // decrement Disabled Users count\n\t\t\t\t\tuser.groups.forEach((userGroup) => {\n\t\t\t\t\t\tconst group = state.groups.find((groupSearch) => groupSearch.id === userGroup)\n\t\t\t\t\t\tif (!group) {\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t}\n\t\t\t\t\t\tgroup.disabled-- // decrement group disabled count\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\tlogger.error(`Unknown action type in updateUserCounts: '${actionType}'`)\n\t\t\t// not throwing error to interrupt execution as this is not fatal\n\t\t}\n\t},\n\tsetUserData(state, { userid, key, value }) {\n\t\tif (key === 'quota') {\n\t\t\tconst humanValue = parseFileSize(value, true)\n\t\t\tstate.users.find((user) => user.id === userid)[key][key] = humanValue !== null ? humanValue : value\n\t\t} else {\n\t\t\tstate.users.find((user) => user.id === userid)[key] = value\n\t\t}\n\t},\n\n\t/**\n\t * Apply multiple updated fields to a user in the local store.\n\t *\n\t * @param {object} state Store state\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {object} options.data Updated user data from server\n\t */\n\teditUserMultiField(state, { userid, data }) {\n\t\tconst index = state.users.findIndex((user) => user.id === userid)\n\t\tif (index === -1) {\n\t\t\treturn\n\t\t}\n\n\t\t// Delegate group membership changes so sidebar usercount stays in sync.\n\t\tif (Array.isArray(data.groups)) {\n\t\t\tconst prevGids = state.users[index].groups ?? []\n\t\t\tfor (const gid of data.groups.filter((g) => !prevGids.includes(g))) {\n\t\t\t\tthis.commit('addUserGroup', { userid, gid })\n\t\t\t}\n\t\t\tfor (const gid of prevGids.filter((g) => !data.groups.includes(g))) {\n\t\t\t\tthis.commit('removeUserGroup', { userid, gid })\n\t\t\t}\n\t\t}\n\n\t\tstate.users.splice(index, 1, { ...state.users[index], ...data })\n\t},\n\n\t/**\n\t * Reset users list\n\t *\n\t * @param {object} state the store state\n\t */\n\tresetUsers(state) {\n\t\tstate.users = []\n\t\tstate.usersOffset = 0\n\t\tstate.disabledUsersOffset = 0\n\t},\n\n\t/**\n\t * Reset group list\n\t *\n\t * @param {object} state the store state\n\t */\n\tresetGroups(state) {\n\t\tstate.groups = [\n\t\t\t...(usersSettings.getSubAdminGroups ?? []),\n\t\t\t...(usersSettings.systemGroups ?? []),\n\t\t]\n\t},\n\n\tsetSearchQuery(state, query) {\n\t\tstate.searchQuery = query\n\t},\n\n\tsetShowConfig(state, { key, value }) {\n\t\tstate.showConfig[key] = value\n\t},\n\n\tsetGroupSorting(state, sorting) {\n\t\tconst oldValue = state.orderBy\n\t\tstate.orderBy = sorting\n\n\t\t// Persist the value on the server\n\t\taxios.post(\n\t\t\tgenerateUrl('/settings/users/preferences/group.sortBy'),\n\t\t\t{\n\t\t\t\tvalue: String(sorting),\n\t\t\t},\n\t\t).catch((error) => {\n\t\t\tstate.orderBy = oldValue\n\t\t\tshowError(t('settings', 'Could not set group sorting'))\n\t\t\tlogger.error(error)\n\t\t})\n\t},\n}\n\nconst getters = {\n\tgetUsers(state) {\n\t\treturn state.users\n\t},\n\tgetGroups(state) {\n\t\treturn state.groups\n\t},\n\tgetSearchQuery(state) {\n\t\treturn state.searchQuery\n\t},\n\tgetSubAdminGroups() {\n\t\treturn usersSettings.subAdminGroups ?? []\n\t},\n\n\tgetSortedGroups(state) {\n\t\tconst groups = [...state.groups]\n\t\tif (state.orderBy === GroupSorting.UserCount) {\n\t\t\treturn groups.sort((a, b) => {\n\t\t\t\tconst numA = a.usercount - a.disabled\n\t\t\t\tconst numB = b.usercount - b.disabled\n\t\t\t\treturn (numA < numB) ? 1 : (numB < numA ? -1 : naturalCollator.compare(a.name, b.name))\n\t\t\t})\n\t\t} else {\n\t\t\treturn groups.sort((a, b) => naturalCollator.compare(a.name, b.name))\n\t\t}\n\t},\n\tgetGroupSorting(state) {\n\t\treturn state.orderBy\n\t},\n\tgetPasswordPolicyMinLength(state) {\n\t\treturn state.minPasswordLength\n\t},\n\tgetUsersOffset(state) {\n\t\treturn state.usersOffset\n\t},\n\tgetUsersLimit(state) {\n\t\treturn state.usersLimit\n\t},\n\tgetDisabledUsersOffset(state) {\n\t\treturn state.disabledUsersOffset\n\t},\n\tgetDisabledUsersLimit(state) {\n\t\treturn state.disabledUsersLimit\n\t},\n\tgetUserCount(state) {\n\t\treturn state.userCount\n\t},\n\tgetShowConfig(state) {\n\t\treturn state.showConfig\n\t},\n}\n\nconst CancelToken = axios.CancelToken\nlet searchRequestCancelSource = null\n\nconst actions = {\n\n\t/**\n\t * search users\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {number} options.offset List offset to request\n\t * @param {number} options.limit List number to return from offset\n\t * @param {string} options.search Search amongst users\n\t * @return {Promise}\n\t */\n\tsearchUsers(context, { offset, limit, search }) {\n\t\tsearch = typeof search === 'string' ? search : ''\n\n\t\treturn api.get(generateOcsUrl('cloud/users/details?offset={offset}&limit={limit}&search={search}', { offset, limit, search })).catch((error) => {\n\t\t\tif (!axios.isCancel(error)) {\n\t\t\t\tcontext.commit('API_FAILURE', error)\n\t\t\t}\n\t\t})\n\t},\n\n\t/**\n\t * Get user details\n\t *\n\t * @param {object} context store context\n\t * @param {string} userId user id\n\t * @return {Promise}\n\t */\n\tgetUser(context, userId) {\n\t\treturn api.get(generateOcsUrl(`cloud/users/${userId}`)).catch((error) => {\n\t\t\tif (!axios.isCancel(error)) {\n\t\t\t\tcontext.commit('API_FAILURE', error)\n\t\t\t}\n\t\t})\n\t},\n\n\t/**\n\t * Get all users with full details\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {number} options.offset List offset to request\n\t * @param {number} options.limit List number to return from offset\n\t * @param {string} options.search Search amongst users\n\t * @param {string} options.group Get users from group\n\t * @return {Promise}\n\t */\n\tgetUsers(context, { offset, limit, search, group }) {\n\t\tif (searchRequestCancelSource) {\n\t\t\tsearchRequestCancelSource.cancel('Operation canceled by another search request.')\n\t\t}\n\t\tsearchRequestCancelSource = CancelToken.source()\n\t\tsearch = typeof search === 'string' ? search : ''\n\t\tgroup = typeof group === 'string' ? group : ''\n\t\tif (group !== '') {\n\t\t\treturn api.get(generateOcsUrl('cloud/groups/{group}/users/details?offset={offset}&limit={limit}&search={search}', { group: encodeURIComponent(group), offset, limit, search }), {\n\t\t\t\tcancelToken: searchRequestCancelSource.token,\n\t\t\t})\n\t\t\t\t.then((response) => {\n\t\t\t\t\tconst usersCount = Object.keys(response.data.ocs.data.users).length\n\t\t\t\t\tif (usersCount > 0) {\n\t\t\t\t\t\tcontext.commit('appendUsers', response.data.ocs.data.users)\n\t\t\t\t\t}\n\t\t\t\t\treturn usersCount\n\t\t\t\t})\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tif (!axios.isCancel(error)) {\n\t\t\t\t\t\tcontext.commit('API_FAILURE', error)\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t}\n\n\t\treturn api.get(generateOcsUrl('cloud/users/details?offset={offset}&limit={limit}&search={search}', { offset, limit, search }), {\n\t\t\tcancelToken: searchRequestCancelSource.token,\n\t\t})\n\t\t\t.then((response) => {\n\t\t\t\tconst usersCount = Object.keys(response.data.ocs.data.users).length\n\t\t\t\tif (usersCount > 0) {\n\t\t\t\t\tcontext.commit('appendUsers', response.data.ocs.data.users)\n\t\t\t\t}\n\t\t\t\treturn usersCount\n\t\t\t})\n\t\t\t.catch((error) => {\n\t\t\t\tif (!axios.isCancel(error)) {\n\t\t\t\t\tcontext.commit('API_FAILURE', error)\n\t\t\t\t}\n\t\t\t})\n\t},\n\n\t/**\n\t * Get recent users with full details\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {number} options.offset List offset to request\n\t * @param {number} options.limit List number to return from offset\n\t * @param {string} options.search Search query\n\t * @return {Promise}\n\t */\n\tasync getRecentUsers(context, { offset, limit, search }) {\n\t\tconst url = generateOcsUrl('cloud/users/recent?offset={offset}&limit={limit}&search={search}', { offset, limit, search })\n\t\ttry {\n\t\t\tconst response = await api.get(url)\n\t\t\tconst usersCount = Object.keys(response.data.ocs.data.users).length\n\t\t\tif (usersCount > 0) {\n\t\t\t\tcontext.commit('appendUsers', response.data.ocs.data.users)\n\t\t\t}\n\t\t\treturn usersCount\n\t\t} catch (error) {\n\t\t\tcontext.commit('API_FAILURE', error)\n\t\t}\n\t},\n\n\t/**\n\t * Get disabled users with full details\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {number} options.offset List offset to request\n\t * @param {number} options.limit List number to return from offset\n\t * @param options.search\n\t * @return {Promise}\n\t */\n\tasync getDisabledUsers(context, { offset, limit, search }) {\n\t\tconst url = generateOcsUrl('cloud/users/disabled?offset={offset}&limit={limit}&search={search}', { offset, limit, search })\n\t\ttry {\n\t\t\tconst response = await api.get(url)\n\t\t\tconst usersCount = Object.keys(response.data.ocs.data.users).length\n\t\t\tif (usersCount > 0) {\n\t\t\t\tcontext.commit('appendUsers', response.data.ocs.data.users)\n\t\t\t\tcontext.commit('updateDisabledUsers', response.data.ocs.data.users)\n\t\t\t}\n\t\t\treturn usersCount\n\t\t} catch (error) {\n\t\t\tcontext.commit('API_FAILURE', error)\n\t\t}\n\t},\n\n\tgetGroups(context, { offset, limit, search }) {\n\t\tsearch = typeof search === 'string' ? search : ''\n\t\tconst limitParam = limit === -1 ? '' : `&limit=${limit}`\n\t\treturn api.get(generateOcsUrl('cloud/groups?offset={offset}&search={search}', { offset, search }) + limitParam)\n\t\t\t.then((response) => {\n\t\t\t\tif (Object.keys(response.data.ocs.data.groups).length > 0) {\n\t\t\t\t\tresponse.data.ocs.data.groups.forEach(function(group) {\n\t\t\t\t\t\tcontext.commit('addGroup', { id: group, name: group })\n\t\t\t\t\t})\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t\treturn false\n\t\t\t})\n\t\t\t.catch((error) => context.commit('API_FAILURE', error))\n\t},\n\n\t/**\n\t * Get all users with full details\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {number} options.offset List offset to request\n\t * @param {number} options.limit List number to return from offset\n\t * @param {string} options.search -\n\t * @return {Promise}\n\t */\n\tgetUsersFromList(context, { offset, limit, search }) {\n\t\tsearch = typeof search === 'string' ? search : ''\n\t\treturn api.get(generateOcsUrl('cloud/users/details?offset={offset}&limit={limit}&search={search}', { offset, limit, search }))\n\t\t\t.then((response) => {\n\t\t\t\tif (Object.keys(response.data.ocs.data.users).length > 0) {\n\t\t\t\t\tcontext.commit('appendUsers', response.data.ocs.data.users)\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t\treturn false\n\t\t\t})\n\t\t\t.catch((error) => context.commit('API_FAILURE', error))\n\t},\n\n\t/**\n\t * Get all users with full details from a groupid\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {number} options.offset List offset to request\n\t * @param {number} options.limit List number to return from offset\n\t * @param {string} options.groupid -\n\t * @return {Promise}\n\t */\n\tgetUsersFromGroup(context, { groupid, offset, limit }) {\n\t\treturn api.get(generateOcsUrl('cloud/users/{groupId}/details?offset={offset}&limit={limit}', { groupId: encodeURIComponent(groupid), offset, limit }))\n\t\t\t.then((response) => context.commit('getUsersFromList', response.data.ocs.data.users))\n\t\t\t.catch((error) => context.commit('API_FAILURE', error))\n\t},\n\n\tgetPasswordPolicyMinLength(context) {\n\t\tif (getCapabilities().password_policy && getCapabilities().password_policy.minLength) {\n\t\t\tcontext.commit('setPasswordPolicyMinLength', getCapabilities().password_policy.minLength)\n\t\t\treturn getCapabilities().password_policy.minLength\n\t\t}\n\t\treturn false\n\t},\n\n\t/**\n\t * Add group\n\t *\n\t * @param {object} context store context\n\t * @param {string} gid Group id\n\t * @return {Promise}\n\t */\n\taddGroup(context, gid) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.post(generateOcsUrl('cloud/groups'), { groupid: gid })\n\t\t\t\t.then(() => {\n\t\t\t\t\tcontext.commit('addGroup', { id: gid, name: gid })\n\t\t\t\t\treturn { gid, displayName: gid }\n\t\t\t\t})\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => {\n\t\t\tcontext.commit('API_FAILURE', { gid, error })\n\t\t\t// let's throw one more time to prevent the view\n\t\t\t// from adding the user to a group that doesn't exists\n\t\t\tthrow error\n\t\t})\n\t},\n\n\t/**\n\t * Rename group\n\t *\n\t * @param {object} context store context\n\t * @param {string} groupid Group id\n\t * @param {string} displayName Group display name\n\t * @return {Promise}\n\t */\n\trenameGroup(context, { groupid, displayName }) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.put(generateOcsUrl('cloud/groups/{groupId}', { groupId: encodeURIComponent(groupid) }), { key: 'displayname', value: displayName })\n\t\t\t\t.then(() => {\n\t\t\t\t\tcontext.commit('renameGroup', { gid: groupid, displayName })\n\t\t\t\t\treturn { groupid, displayName }\n\t\t\t\t})\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => {\n\t\t\tcontext.commit('API_FAILURE', { groupid, error })\n\t\t\t// let's throw one more time to prevent the view\n\t\t\t// from renaming the group\n\t\t\tthrow error\n\t\t})\n\t},\n\n\t/**\n\t * Remove group\n\t *\n\t * @param {object} context store context\n\t * @param {string} gid Group id\n\t * @return {Promise}\n\t */\n\tremoveGroup(context, gid) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.delete(generateOcsUrl('cloud/groups/{groupId}', { groupId: encodeURIComponent(gid) }))\n\t\t\t\t.then(() => context.commit('removeGroup', gid))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { gid, error }))\n\t},\n\n\t/**\n\t * Add user to group\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {string} options.gid Group id\n\t * @return {Promise}\n\t */\n\taddUserGroup(context, { userid, gid }) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.post(generateOcsUrl('cloud/users/{userid}/groups', { userid }), { groupid: gid })\n\t\t\t\t.then(() => context.commit('addUserGroup', { userid, gid }))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }))\n\t},\n\n\t/**\n\t * Remove user from group\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {string} options.gid Group id\n\t * @return {Promise}\n\t */\n\tremoveUserGroup(context, { userid, gid }) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.delete(generateOcsUrl('cloud/users/{userid}/groups', { userid }), { groupid: gid })\n\t\t\t\t.then(() => context.commit('removeUserGroup', { userid, gid }))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => {\n\t\t\tcontext.commit('API_FAILURE', { userid, error })\n\t\t\t// let's throw one more time to prevent\n\t\t\t// the view from removing the user row on failure\n\t\t\tthrow error\n\t\t})\n\t},\n\n\t/**\n\t * Add user to group admin\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {string} options.gid Group id\n\t * @return {Promise}\n\t */\n\taddUserSubAdmin(context, { userid, gid }) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.post(generateOcsUrl('cloud/users/{userid}/subadmins', { userid }), { groupid: gid })\n\t\t\t\t.then(() => context.commit('addUserSubAdmin', { userid, gid }))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }))\n\t},\n\n\t/**\n\t * Remove user from group admin\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {string} options.gid Group id\n\t * @return {Promise}\n\t */\n\tremoveUserSubAdmin(context, { userid, gid }) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.delete(generateOcsUrl('cloud/users/{userid}/subadmins', { userid }), { groupid: gid })\n\t\t\t\t.then(() => context.commit('removeUserSubAdmin', { userid, gid }))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }))\n\t},\n\n\t/**\n\t * Mark all user devices for remote wipe\n\t *\n\t * @param {object} context store context\n\t * @param {string} userid User id\n\t * @return {Promise}\n\t */\n\tasync wipeUserDevices(context, userid) {\n\t\ttry {\n\t\t\tawait api.requireAdmin()\n\t\t\treturn await api.post(generateOcsUrl('cloud/users/{userid}/wipe', { userid }))\n\t\t} catch (error) {\n\t\t\tcontext.commit('API_FAILURE', { userid, error })\n\t\t\treturn Promise.reject(new Error('Failed to wipe user devices'))\n\t\t}\n\t},\n\n\t/**\n\t * Delete a user\n\t *\n\t * @param {object} context store context\n\t * @param {string} userid User id\n\t * @return {Promise}\n\t */\n\tdeleteUser(context, userid) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.delete(generateOcsUrl('cloud/users/{userid}', { userid }))\n\t\t\t\t.then(() => context.commit('deleteUser', userid))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }))\n\t},\n\n\t/**\n\t * Add a user\n\t *\n\t * @param {object} context store context\n\t * @param {Function} context.commit -\n\t * @param {Function} context.dispatch -\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {string} options.password User password\n\t * @param {string} options.displayName User display name\n\t * @param {string} options.email User email\n\t * @param {string} options.groups User groups\n\t * @param {string} options.subadmin User subadmin groups\n\t * @param {string} options.quota User email\n\t * @param {string} options.language User language\n\t * @param {string} options.manager User manager\n\t * @return {Promise}\n\t */\n\taddUser({ commit, dispatch }, { userid, password, displayName, email, groups, subadmin, quota, language, manager }) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.post(generateOcsUrl('cloud/users'), { userid, password, displayName, email, groups, subadmin, quota, language, manager })\n\t\t\t\t.then((response) => dispatch('addUserData', userid || response.data.ocs.data.id))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => {\n\t\t\tcommit('API_FAILURE', { userid, error })\n\t\t\tthrow error\n\t\t})\n\t},\n\n\t/**\n\t * Get user data and commit addition\n\t *\n\t * @param {object} context store context\n\t * @param {string} userid User id\n\t * @return {Promise}\n\t */\n\taddUserData(context, userid) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.get(generateOcsUrl('cloud/users/{userid}', { userid }))\n\t\t\t\t.then((response) => context.commit('addUserData', response))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }))\n\t},\n\n\t/**\n\t * Enable or disable user\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {boolean} options.enabled User enablement status\n\t * @return {Promise}\n\t */\n\tenableDisableUser(context, { userid, enabled = true }) {\n\t\tconst userStatus = enabled ? 'enable' : 'disable'\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.put(generateOcsUrl('cloud/users/{userid}/{userStatus}', { userid, userStatus }))\n\t\t\t\t.then(() => context.commit('enableDisableUser', { userid, enabled }))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }))\n\t},\n\n\t/**\n\t * Edit user data\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {string} options.key User field to edit\n\t * @param {string} options.value Value of the change\n\t * @return {Promise}\n\t */\n\tasync setUserData(context, { userid, key, value }) {\n\t\tconst allowedEmpty = ['email', 'displayname', 'manager']\n\t\tconst validKeys = ['email', 'language', 'quota', 'displayname', 'password', 'manager']\n\n\t\tif (!validKeys.includes(key)) {\n\t\t\tthrow new Error('Invalid request data')\n\t\t}\n\n\t\t// If value is empty and the key doesn't allow empty values, throw error\n\t\tif (value === '' && !allowedEmpty.includes(key)) {\n\t\t\tthrow new Error('Value cannot be empty for this field')\n\t\t}\n\n\t\ttry {\n\t\t\tawait api.requireAdmin()\n\t\t\tawait api.put(generateOcsUrl('cloud/users/{userid}', { userid }), { key, value })\n\t\t\treturn context.commit('setUserData', { userid, key, value })\n\t\t} catch (error) {\n\t\t\tcontext.commit('API_FAILURE', { userid, error })\n\t\t\tthrow error\n\t\t}\n\t},\n\n\t/**\n\t * Update multiple user fields atomically via the new bulk endpoint.\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {object} options.payload Changed fields to send\n\t * @return {Promise}\n\t */\n\tasync editUserMultiField(context, { userid, payload }) {\n\t\ttry {\n\t\t\tawait api.requireAdmin()\n\t\t\tconst response = await api.patch(\n\t\t\t\tgenerateOcsUrl('cloud/users/{userid}', { userid }),\n\t\t\t\tpayload,\n\t\t\t)\n\t\t\tcontext.commit('editUserMultiField', { userid, data: response.data.ocs.data })\n\t\t} catch (error) {\n\t\t\tcontext.commit('API_FAILURE', { userid, error })\n\t\t\tthrow error\n\t\t}\n\t},\n\n\t/**\n\t * Send welcome mail\n\t *\n\t * @param {object} context store context\n\t * @param {string} userid User id\n\t * @return {Promise}\n\t */\n\tsendWelcomeMail(context, userid) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.post(generateOcsUrl('cloud/users/{userid}/welcome', { userid }))\n\t\t\t\t.then(() => true)\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }))\n\t},\n\t/**\n\t * Migrate local storage keys to database\n\t *\n\t * @param {object} context store context\n\t * @param context.commit\n\t */\n\tmigrateLocalStorage({ commit }) {\n\t\tconst preferences = {\n\t\t\tshowStoragePath: 'user_list_show_storage_path',\n\t\t\tshowUserBackend: 'user_list_show_user_backend',\n\t\t\tshowFirstLogin: 'user_list_show_first_login',\n\t\t\tshowLastLogin: 'user_list_show_last_login',\n\t\t\tshowNewUserForm: 'user_list_show_new_user_form',\n\t\t\tshowLanguages: 'user_list_show_languages',\n\t\t}\n\n\t\tfor (const [key, dbKey] of Object.entries(preferences)) {\n\t\t\tconst localKey = `account_settings__${key}`\n\t\t\tconst localValue = window.localStorage.getItem(localKey)\n\t\t\tif (localValue === null) {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tconst value = localValue === 'true'\n\t\t\tcommit('setShowConfig', { key, value })\n\n\t\t\taxios.post(generateUrl(`/settings/users/preferences/${dbKey}`), {\n\t\t\t\tvalue: value ? 'true' : 'false',\n\t\t\t}).then(() => {\n\t\t\t\twindow.localStorage.removeItem(localKey)\n\t\t\t}).catch((error) => {\n\t\t\t\tlogger.error(`Failed to migrate preference ${key}`, { error })\n\t\t\t})\n\t\t}\n\t},\n\n\t/**\n\t * Set show config\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.key Key to set\n\t * @param {boolean} options.value Value to set\n\t */\n\tsetShowConfig(context, { key, value }) {\n\t\tcontext.commit('setShowConfig', { key, value })\n\t\tconst keyMap = {\n\t\t\tshowStoragePath: 'user_list_show_storage_path',\n\t\t\tshowUserBackend: 'user_list_show_user_backend',\n\t\t\tshowFirstLogin: 'user_list_show_first_login',\n\t\t\tshowLastLogin: 'user_list_show_last_login',\n\t\t\tshowNewUserForm: 'user_list_show_new_user_form',\n\t\t\tshowLanguages: 'user_list_show_languages',\n\t\t}\n\t\taxios.post(generateUrl(`settings/users/preferences/${keyMap[key]}`), { value: value ? 'true' : 'false' })\n\t\t\t.catch((error) => logger.error(`Could not update ${key} preference`, { error }))\n\t},\n}\n\nexport default {\n\tstate,\n\tmutations,\n\tgetters,\n\tactions,\n}\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { showError } from '@nextcloud/dialogs'\nimport { Store } from 'vuex'\nimport logger from '../logger.js'\nimport apps from './apps.js'\nimport oc from './oc.js'\nimport settings from './users-settings.js'\nimport users from './users.js'\n\nconst mutations = {\n\tAPI_FAILURE(state, error) {\n\t\ttry {\n\t\t\tconst message = error.error.response.data.ocs.meta.message\n\t\t\tshowError(t('settings', 'An error occurred during the request. Unable to proceed.') + '
' + message, { isHTML: true })\n\t\t} catch {\n\t\t\tshowError(t('settings', 'An error occurred during the request. Unable to proceed.'))\n\t\t}\n\t\tlogger.error('An error occurred during the request.', { state, error })\n\t},\n}\n\nlet store = null\n\n/**\n *\n */\nexport function useStore() {\n\tif (store === null) {\n\t\tstore = new Store({\n\t\t\tmodules: {\n\t\t\t\tusers,\n\t\t\t\tapps,\n\t\t\t\tsettings,\n\t\t\t\toc,\n\t\t\t},\n\t\t\tstrict: !PRODUCTION,\n\t\t\tmutations,\n\t\t})\n\t}\n\treturn store\n}\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * https://github.com/nextcloud/server/blob/208e38e84e1a07a49699aa90dc5b7272d24489f0/lib/private/Group/MetaData.php#L34\n */\nexport var GroupSorting;\n(function (GroupSorting) {\n GroupSorting[GroupSorting[\"UserCount\"] = 1] = \"UserCount\";\n GroupSorting[GroupSorting[\"GroupName\"] = 2] = \"GroupName\";\n})(GroupSorting || (GroupSorting = {}));\n","/**\n * SPDX-FileCopyrightText: 2020 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('settings')\n .detectUser()\n .build();\n","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\nexport { _createClass as default };","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.16.1\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n\nvar timeoutDuration = function () {\n var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n return 1;\n }\n }\n return 0;\n}();\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var window = element.ownerDocument.defaultView;\n var css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\n/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nfunction getReferenceNode(reference) {\n return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n var width = sizes.width || element.clientWidth || result.width;\n var height = sizes.height || element.clientHeight || result.height;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop);\n var marginLeft = parseFloat(styles.marginLeft);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n var parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = { top: 0, left: 0 };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n padding = padding || 0;\n var isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.
\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicitly asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var round = Math.round,\n floor = Math.floor;\n\n var noRound = function noRound(v) {\n return v;\n };\n\n var referenceWidth = round(reference.width);\n var popperWidth = round(popper.width);\n\n var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n var isVariation = data.placement.indexOf('-') !== -1;\n var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n var verticalToInteger = !shouldRound ? noRound : round;\n\n return {\n left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right)\n };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n // when offsetParent is the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.
\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized]);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.
\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.
\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n // flips variation if reference element overflows boundaries\n var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n // flips variation if popper content overflows boundaries\n var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n\n var flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var basePlacement = placement.split('-')[0];\n\n var offsets = void 0;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n var order = options.priority;\n var popper = data.offsets.popper;\n\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty({}, mainSide, value);\n }\n };\n\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.
\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.
\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.
\n * It will read the variation of the `placement` property.
\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.
\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.
\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.
\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.
\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".
\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport',\n /**\n * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined\n }\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.
\n * These can be overridden using the `options` argument of Popper.js.
\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function onCreate() {},\n\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function onUpdate() {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n /**\n * Creates a new Popper.js instance.\n * @class Popper\n * @param {Element|referenceObject} reference - The reference element used to position the popper\n * @param {Element} popper - The HTML / XML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.
\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n","function getInternetExplorerVersion() {\n var ua = window.navigator.userAgent;\n var msie = ua.indexOf('MSIE ');\n\n if (msie > 0) {\n // IE 10 or older => return version number\n return parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10);\n }\n\n var trident = ua.indexOf('Trident/');\n\n if (trident > 0) {\n // IE 11 => return version number\n var rv = ua.indexOf('rv:');\n return parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10);\n }\n\n var edge = ua.indexOf('Edge/');\n\n if (edge > 0) {\n // Edge (IE 12+) => return version number\n return parseInt(ua.substring(edge + 5, ua.indexOf('.', edge)), 10);\n } // other browser\n\n\n return -1;\n}\n\n//\nvar isIE;\n\nfunction initCompat() {\n if (!initCompat.init) {\n initCompat.init = true;\n isIE = getInternetExplorerVersion() !== -1;\n }\n}\n\nvar script = {\n name: 'ResizeObserver',\n props: {\n emitOnMount: {\n type: Boolean,\n default: false\n },\n ignoreWidth: {\n type: Boolean,\n default: false\n },\n ignoreHeight: {\n type: Boolean,\n default: false\n }\n },\n mounted: function mounted() {\n var _this = this;\n\n initCompat();\n this.$nextTick(function () {\n _this._w = _this.$el.offsetWidth;\n _this._h = _this.$el.offsetHeight;\n\n if (_this.emitOnMount) {\n _this.emitSize();\n }\n });\n var object = document.createElement('object');\n this._resizeObject = object;\n object.setAttribute('aria-hidden', 'true');\n object.setAttribute('tabindex', -1);\n object.onload = this.addResizeHandlers;\n object.type = 'text/html';\n\n if (isIE) {\n this.$el.appendChild(object);\n }\n\n object.data = 'about:blank';\n\n if (!isIE) {\n this.$el.appendChild(object);\n }\n },\n beforeDestroy: function beforeDestroy() {\n this.removeResizeHandlers();\n },\n methods: {\n compareAndNotify: function compareAndNotify() {\n if (!this.ignoreWidth && this._w !== this.$el.offsetWidth || !this.ignoreHeight && this._h !== this.$el.offsetHeight) {\n this._w = this.$el.offsetWidth;\n this._h = this.$el.offsetHeight;\n this.emitSize();\n }\n },\n emitSize: function emitSize() {\n this.$emit('notify', {\n width: this._w,\n height: this._h\n });\n },\n addResizeHandlers: function addResizeHandlers() {\n this._resizeObject.contentDocument.defaultView.addEventListener('resize', this.compareAndNotify);\n\n this.compareAndNotify();\n },\n removeResizeHandlers: function removeResizeHandlers() {\n if (this._resizeObject && this._resizeObject.onload) {\n if (!isIE && this._resizeObject.contentDocument) {\n this._resizeObject.contentDocument.defaultView.removeEventListener('resize', this.compareAndNotify);\n }\n\n this.$el.removeChild(this._resizeObject);\n this._resizeObject.onload = null;\n this._resizeObject = null;\n }\n }\n }\n};\n\nfunction normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier\n/* server only */\n, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\n if (typeof shadowMode !== 'boolean') {\n createInjectorSSR = createInjector;\n createInjector = shadowMode;\n shadowMode = false;\n } // Vue.extend constructor export interop.\n\n\n var options = typeof script === 'function' ? script.options : script; // render functions\n\n if (template && template.render) {\n options.render = template.render;\n options.staticRenderFns = template.staticRenderFns;\n options._compiled = true; // functional template\n\n if (isFunctionalTemplate) {\n options.functional = true;\n }\n } // scopedId\n\n\n if (scopeId) {\n options._scopeId = scopeId;\n }\n\n var hook;\n\n if (moduleIdentifier) {\n // server build\n hook = function hook(context) {\n // 2.3 injection\n context = context || // cached call\n this.$vnode && this.$vnode.ssrContext || // stateful\n this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext; // functional\n // 2.2 with runInNewContext: true\n\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__;\n } // inject component styles\n\n\n if (style) {\n style.call(this, createInjectorSSR(context));\n } // register component module identifier for async chunk inference\n\n\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier);\n }\n }; // used by ssr in case component is cached and beforeCreate\n // never gets called\n\n\n options._ssrRegister = hook;\n } else if (style) {\n hook = shadowMode ? function (context) {\n style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\n } : function (context) {\n style.call(this, createInjector(context));\n };\n }\n\n if (hook) {\n if (options.functional) {\n // register for functional component in vue file\n var originalRender = options.render;\n\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context);\n return originalRender(h, context);\n };\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate;\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\n }\n }\n\n return script;\n}\n\n/* script */\nvar __vue_script__ = script;\n/* template */\n\nvar __vue_render__ = function __vue_render__() {\n var _vm = this;\n\n var _h = _vm.$createElement;\n\n var _c = _vm._self._c || _h;\n\n return _c(\"div\", {\n staticClass: \"resize-observer\",\n attrs: {\n tabindex: \"-1\"\n }\n });\n};\n\nvar __vue_staticRenderFns__ = [];\n__vue_render__._withStripped = true;\n/* style */\n\nvar __vue_inject_styles__ = undefined;\n/* scoped */\n\nvar __vue_scope_id__ = \"data-v-8859cc6c\";\n/* module identifier */\n\nvar __vue_module_identifier__ = undefined;\n/* functional template */\n\nvar __vue_is_functional_template__ = false;\n/* style inject */\n\n/* style inject SSR */\n\n/* style inject shadow dom */\n\nvar __vue_component__ = /*#__PURE__*/normalizeComponent({\n render: __vue_render__,\n staticRenderFns: __vue_staticRenderFns__\n}, __vue_inject_styles__, __vue_script__, __vue_scope_id__, __vue_is_functional_template__, __vue_module_identifier__, false, undefined, undefined, undefined);\n\nfunction install(Vue) {\n // eslint-disable-next-line vue/component-definition-name-casing\n Vue.component('resize-observer', __vue_component__);\n Vue.component('ResizeObserver', __vue_component__);\n}\n\nvar plugin = {\n // eslint-disable-next-line no-undef\n version: \"1.0.1\",\n install: install\n};\n\nvar GlobalVue = null;\n\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue;\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue;\n}\n\nif (GlobalVue) {\n GlobalVue.use(plugin);\n}\n\nexport default plugin;\nexport { __vue_component__ as ResizeObserver, install };\n//# sourceMappingURL=vue-resize.esm.js.map\n","import _typeof from '@babel/runtime/helpers/typeof';\nimport _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport _classCallCheck from '@babel/runtime/helpers/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/createClass';\nimport Popper from 'popper.js';\nimport isEqual from 'lodash/isEqual';\nimport { ResizeObserver } from 'vue-resize';\nimport merge from 'lodash/merge';\n\nvar SVGAnimatedString = function SVGAnimatedString() {};\n\nif (typeof window !== 'undefined') {\n SVGAnimatedString = window.SVGAnimatedString;\n}\n\nfunction convertToArray(value) {\n if (typeof value === 'string') {\n value = value.split(' ');\n }\n\n return value;\n}\n/**\n * Add classes to an element.\n * This method checks to ensure that the classes don't already exist before adding them.\n * It uses el.className rather than classList in order to be IE friendly.\n * @param {object} el - The element to add the classes to.\n * @param {classes} string - List of space separated classes to be added to the element.\n */\n\nfunction addClasses(el, classes) {\n var newClasses = convertToArray(classes);\n var classList;\n\n if (el.className instanceof SVGAnimatedString) {\n classList = convertToArray(el.className.baseVal);\n } else {\n classList = convertToArray(el.className);\n }\n\n newClasses.forEach(function (newClass) {\n if (classList.indexOf(newClass) === -1) {\n classList.push(newClass);\n }\n });\n\n if (el instanceof SVGElement) {\n el.setAttribute('class', classList.join(' '));\n } else {\n el.className = classList.join(' ');\n }\n}\n/**\n * Remove classes from an element.\n * It uses el.className rather than classList in order to be IE friendly.\n * @export\n * @param {any} el The element to remove the classes from.\n * @param {any} classes List of space separated classes to be removed from the element.\n */\n\nfunction removeClasses(el, classes) {\n var newClasses = convertToArray(classes);\n var classList;\n\n if (el.className instanceof SVGAnimatedString) {\n classList = convertToArray(el.className.baseVal);\n } else {\n classList = convertToArray(el.className);\n }\n\n newClasses.forEach(function (newClass) {\n var index = classList.indexOf(newClass);\n\n if (index !== -1) {\n classList.splice(index, 1);\n }\n });\n\n if (el instanceof SVGElement) {\n el.setAttribute('class', classList.join(' '));\n } else {\n el.className = classList.join(' ');\n }\n}\nvar supportsPassive = false;\n\nif (typeof window !== 'undefined') {\n supportsPassive = false;\n\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get: function get() {\n supportsPassive = true;\n }\n });\n window.addEventListener('test', null, opts);\n } catch (e) {}\n}\n\nfunction ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$2(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\nvar DEFAULT_OPTIONS = {\n container: false,\n delay: 0,\n html: false,\n placement: 'top',\n title: '',\n template: '
',\n trigger: 'hover focus',\n offset: 0\n};\nvar openTooltips = [];\n\nvar Tooltip = /*#__PURE__*/function () {\n /**\n * Create a new Tooltip.js instance\n * @class Tooltip\n * @param {HTMLElement} reference - The DOM node used as reference of the tooltip (it can be a jQuery element).\n * @param {Object} options\n * @param {String} options.placement=bottom\n * Placement of the popper accepted values: `top(-start, -end), right(-start, -end), bottom(-start, -end),\n * left(-start, -end)`\n * @param {HTMLElement|String|false} options.container=false - Append the tooltip to a specific element.\n * @param {Number|Object} options.delay=0\n * Delay showing and hiding the tooltip (ms) - does not apply to manual trigger type.\n * If a number is supplied, delay is applied to both hide/show.\n * Object structure is: `{ show: 500, hide: 100 }`\n * @param {Boolean} options.html=false - Insert HTML into the tooltip. If false, the content will inserted with `innerText`.\n * @param {String|PlacementFunction} options.placement='top' - One of the allowed placements, or a function returning one of them.\n * @param {String} [options.template='
']\n * Base HTML to used when creating the tooltip.\n * The tooltip's `title` will be injected into the `.tooltip-inner` or `.tooltip__inner`.\n * `.tooltip-arrow` or `.tooltip__arrow` will become the tooltip's arrow.\n * The outermost wrapper element should have the `.tooltip` class.\n * @param {String|HTMLElement|TitleFunction} options.title='' - Default title value if `title` attribute isn't present.\n * @param {String} [options.trigger='hover focus']\n * How tooltip is triggered - click, hover, focus, manual.\n * You may pass multiple triggers; separate them with a space. `manual` cannot be combined with any other trigger.\n * @param {HTMLElement} options.boundariesElement\n * The element used as boundaries for the tooltip. For more information refer to Popper.js'\n * [boundariesElement docs](https://popper.js.org/popper-documentation.html)\n * @param {Number|String} options.offset=0 - Offset of the tooltip relative to its reference. For more information refer to Popper.js'\n * [offset docs](https://popper.js.org/popper-documentation.html)\n * @param {Object} options.popperOptions={} - Popper options, will be passed directly to popper instance. For more information refer to Popper.js'\n * [options docs](https://popper.js.org/popper-documentation.html)\n * @param {string} [options.ariaId] Id used for accessibility\n * @return {Object} instance - The generated tooltip instance\n */\n function Tooltip(_reference, _options) {\n var _this = this;\n\n _classCallCheck(this, Tooltip);\n\n _defineProperty(this, \"_events\", []);\n\n _defineProperty(this, \"_setTooltipNodeEvent\", function (evt, reference, delay, options) {\n var relatedreference = evt.relatedreference || evt.toElement || evt.relatedTarget;\n\n var callback = function callback(evt2) {\n var relatedreference2 = evt2.relatedreference || evt2.toElement || evt2.relatedTarget; // Remove event listener after call\n\n _this._tooltipNode.removeEventListener(evt.type, callback); // If the new reference is not the reference element\n\n\n if (!reference.contains(relatedreference2)) {\n // Schedule to hide tooltip\n _this._scheduleHide(reference, options.delay, options, evt2);\n }\n };\n\n if (_this._tooltipNode.contains(relatedreference)) {\n // listen to mouseleave on the tooltip element to be able to hide the tooltip\n _this._tooltipNode.addEventListener(evt.type, callback);\n\n return true;\n }\n\n return false;\n });\n\n // apply user options over default ones\n _options = _objectSpread$2(_objectSpread$2({}, DEFAULT_OPTIONS), _options);\n _reference.jquery && (_reference = _reference[0]);\n this.show = this.show.bind(this);\n this.hide = this.hide.bind(this); // cache reference and options\n\n this.reference = _reference;\n this.options = _options; // set initial state\n\n this._isOpen = false;\n\n this._init();\n } //\n // Public methods\n //\n\n /**\n * Reveals an element's tooltip. This is considered a \"manual\" triggering of the tooltip.\n * Tooltips with zero-length titles are never displayed.\n * @method Tooltip#show\n * @memberof Tooltip\n */\n\n\n _createClass(Tooltip, [{\n key: \"show\",\n value: function show() {\n this._show(this.reference, this.options);\n }\n /**\n * Hides an element’s tooltip. This is considered a “manual” triggering of the tooltip.\n * @method Tooltip#hide\n * @memberof Tooltip\n */\n\n }, {\n key: \"hide\",\n value: function hide() {\n this._hide();\n }\n /**\n * Hides and destroys an element’s tooltip.\n * @method Tooltip#dispose\n * @memberof Tooltip\n */\n\n }, {\n key: \"dispose\",\n value: function dispose() {\n this._dispose();\n }\n /**\n * Toggles an element’s tooltip. This is considered a “manual” triggering of the tooltip.\n * @method Tooltip#toggle\n * @memberof Tooltip\n */\n\n }, {\n key: \"toggle\",\n value: function toggle() {\n if (this._isOpen) {\n return this.hide();\n } else {\n return this.show();\n }\n }\n }, {\n key: \"setClasses\",\n value: function setClasses(classes) {\n this._classes = classes;\n }\n }, {\n key: \"setContent\",\n value: function setContent(content) {\n this.options.title = content;\n\n if (this._tooltipNode) {\n this._setContent(content, this.options);\n }\n }\n }, {\n key: \"setOptions\",\n value: function setOptions(options) {\n var classesUpdated = false;\n var classes = options && options.classes || directive.options.defaultClass;\n\n if (!isEqual(this._classes, classes)) {\n this.setClasses(classes);\n classesUpdated = true;\n }\n\n options = getOptions(options);\n var needPopperUpdate = false;\n var needRestart = false;\n\n if (this.options.offset !== options.offset || this.options.placement !== options.placement) {\n needPopperUpdate = true;\n }\n\n if (this.options.template !== options.template || this.options.trigger !== options.trigger || this.options.container !== options.container || classesUpdated) {\n needRestart = true;\n }\n\n for (var key in options) {\n this.options[key] = options[key];\n }\n\n if (this._tooltipNode) {\n if (needRestart) {\n var isOpen = this._isOpen;\n this.dispose();\n\n this._init();\n\n if (isOpen) {\n this.show();\n }\n } else if (needPopperUpdate) {\n this.popperInstance.update();\n }\n }\n } //\n // Private methods\n //\n\n }, {\n key: \"_init\",\n value: function _init() {\n // get events list\n var events = typeof this.options.trigger === 'string' ? this.options.trigger.split(' ') : [];\n this._isDisposed = false;\n this._enableDocumentTouch = events.indexOf('manual') === -1;\n events = events.filter(function (trigger) {\n return ['click', 'hover', 'focus'].indexOf(trigger) !== -1;\n }); // set event listeners\n\n this._setEventListeners(this.reference, events, this.options); // title attribute\n\n\n this.$_originalTitle = this.reference.getAttribute('title');\n this.reference.removeAttribute('title');\n this.reference.setAttribute('data-original-title', this.$_originalTitle);\n }\n /**\n * Creates a new tooltip node\n * @memberof Tooltip\n * @private\n * @param {HTMLElement} reference\n * @param {String} template\n * @param {String|HTMLElement|TitleFunction} title\n * @param {Boolean} allowHtml\n * @return {HTMLelement} tooltipNode\n */\n\n }, {\n key: \"_create\",\n value: function _create(reference, template) {\n var _this2 = this;\n\n // create tooltip element\n var tooltipGenerator = window.document.createElement('div');\n tooltipGenerator.innerHTML = template.trim();\n var tooltipNode = tooltipGenerator.childNodes[0]; // add unique ID to our tooltip (needed for accessibility reasons)\n\n tooltipNode.id = this.options.ariaId || \"tooltip_\".concat(Math.random().toString(36).substr(2, 10)); // Initially hide the tooltip\n // The attribute will be switched in a next frame so\n // CSS transitions can play\n\n tooltipNode.setAttribute('aria-hidden', 'true');\n\n if (this.options.autoHide && this.options.trigger.indexOf('hover') !== -1) {\n tooltipNode.addEventListener('mouseenter', function (evt) {\n return _this2._scheduleHide(reference, _this2.options.delay, _this2.options, evt);\n });\n tooltipNode.addEventListener('click', function (evt) {\n return _this2._scheduleHide(reference, _this2.options.delay, _this2.options, evt);\n });\n } // return the generated tooltip node\n\n\n return tooltipNode;\n }\n }, {\n key: \"_setContent\",\n value: function _setContent(content, options) {\n var _this3 = this;\n\n this.asyncContent = false;\n\n this._applyContent(content, options).then(function () {\n if (!_this3.popperInstance) return;\n\n _this3.popperInstance.update();\n });\n }\n }, {\n key: \"_applyContent\",\n value: function _applyContent(title, options) {\n var _this4 = this;\n\n return new Promise(function (resolve, reject) {\n var allowHtml = options.html;\n var rootNode = _this4._tooltipNode;\n if (!rootNode) return;\n var titleNode = rootNode.querySelector(_this4.options.innerSelector);\n\n if (title.nodeType === 1) {\n // if title is a node, append it only if allowHtml is true\n if (allowHtml) {\n while (titleNode.firstChild) {\n titleNode.removeChild(titleNode.firstChild);\n }\n\n titleNode.appendChild(title);\n }\n } else if (typeof title === 'function') {\n // if title is a function, call it and set innerText or innerHtml depending by `allowHtml` value\n var result = title();\n\n if (result && typeof result.then === 'function') {\n _this4.asyncContent = true;\n options.loadingClass && addClasses(rootNode, options.loadingClass);\n\n if (options.loadingContent) {\n _this4._applyContent(options.loadingContent, options);\n }\n\n result.then(function (asyncResult) {\n options.loadingClass && removeClasses(rootNode, options.loadingClass);\n return _this4._applyContent(asyncResult, options);\n }).then(resolve).catch(reject);\n } else {\n _this4._applyContent(result, options).then(resolve).catch(reject);\n }\n\n return;\n } else {\n // if it's just a simple text, set innerText or innerHtml depending by `allowHtml` value\n allowHtml ? titleNode.innerHTML = title : titleNode.innerText = title;\n }\n\n resolve();\n });\n }\n }, {\n key: \"_show\",\n value: function _show(reference, options) {\n if (options && typeof options.container === 'string') {\n var container = document.querySelector(options.container);\n if (!container) return;\n }\n\n clearTimeout(this._disposeTimer);\n options = Object.assign({}, options);\n delete options.offset;\n var updateClasses = true;\n\n if (this._tooltipNode) {\n addClasses(this._tooltipNode, this._classes);\n updateClasses = false;\n }\n\n var result = this._ensureShown(reference, options);\n\n if (updateClasses && this._tooltipNode) {\n addClasses(this._tooltipNode, this._classes);\n }\n\n addClasses(reference, ['v-tooltip-open']);\n return result;\n }\n }, {\n key: \"_ensureShown\",\n value: function _ensureShown(reference, options) {\n var _this5 = this;\n\n // don't show if it's already visible\n if (this._isOpen) {\n return this;\n }\n\n this._isOpen = true;\n openTooltips.push(this); // if the tooltipNode already exists, just show it\n\n if (this._tooltipNode) {\n this._tooltipNode.style.display = '';\n\n this._tooltipNode.setAttribute('aria-hidden', 'false');\n\n this.popperInstance.enableEventListeners();\n this.popperInstance.update();\n\n if (this.asyncContent) {\n this._setContent(options.title, options);\n }\n\n return this;\n } // get title\n\n\n var title = reference.getAttribute('title') || options.title; // don't show tooltip if no title is defined\n\n if (!title) {\n return this;\n } // create tooltip node\n\n\n var tooltipNode = this._create(reference, options.template);\n\n this._tooltipNode = tooltipNode; // Add `aria-describedby` to our reference element for accessibility reasons\n\n reference.setAttribute('aria-describedby', tooltipNode.id); // append tooltip to container\n\n var container = this._findContainer(options.container, reference);\n\n this._append(tooltipNode, container);\n\n var popperOptions = _objectSpread$2(_objectSpread$2({}, options.popperOptions), {}, {\n placement: options.placement\n });\n\n popperOptions.modifiers = _objectSpread$2(_objectSpread$2({}, popperOptions.modifiers), {}, {\n arrow: {\n element: this.options.arrowSelector\n }\n });\n\n if (options.boundariesElement) {\n popperOptions.modifiers.preventOverflow = {\n boundariesElement: options.boundariesElement\n };\n }\n\n this.popperInstance = new Popper(reference, tooltipNode, popperOptions);\n\n this._setContent(title, options); // Fix position\n\n\n requestAnimationFrame(function () {\n if (!_this5._isDisposed && _this5.popperInstance) {\n _this5.popperInstance.update(); // Show the tooltip\n\n\n requestAnimationFrame(function () {\n if (!_this5._isDisposed) {\n _this5._isOpen && tooltipNode.setAttribute('aria-hidden', 'false');\n } else {\n _this5.dispose();\n }\n });\n } else {\n _this5.dispose();\n }\n });\n return this;\n }\n }, {\n key: \"_noLongerOpen\",\n value: function _noLongerOpen() {\n var index = openTooltips.indexOf(this);\n\n if (index !== -1) {\n openTooltips.splice(index, 1);\n }\n }\n }, {\n key: \"_hide\",\n value: function _hide()\n /* reference, options */\n {\n var _this6 = this;\n\n // don't hide if it's already hidden\n if (!this._isOpen) {\n return this;\n }\n\n this._isOpen = false;\n\n this._noLongerOpen(); // hide tooltipNode\n\n\n this._tooltipNode.style.display = 'none';\n\n this._tooltipNode.setAttribute('aria-hidden', 'true');\n\n if (this.popperInstance) {\n this.popperInstance.disableEventListeners();\n }\n\n clearTimeout(this._disposeTimer);\n var disposeTime = directive.options.disposeTimeout;\n\n if (disposeTime !== null) {\n this._disposeTimer = setTimeout(function () {\n if (_this6._tooltipNode) {\n _this6._tooltipNode.removeEventListener('mouseenter', _this6.hide);\n\n _this6._tooltipNode.removeEventListener('click', _this6.hide); // Don't remove popper instance, just the HTML element\n\n\n _this6._removeTooltipNode();\n }\n }, disposeTime);\n }\n\n removeClasses(this.reference, ['v-tooltip-open']);\n return this;\n }\n }, {\n key: \"_removeTooltipNode\",\n value: function _removeTooltipNode() {\n if (!this._tooltipNode) return;\n var parentNode = this._tooltipNode.parentNode;\n\n if (parentNode) {\n parentNode.removeChild(this._tooltipNode);\n this.reference.removeAttribute('aria-describedby');\n }\n\n this._tooltipNode = null;\n }\n }, {\n key: \"_dispose\",\n value: function _dispose() {\n var _this7 = this;\n\n this._isDisposed = true;\n this.reference.removeAttribute('data-original-title');\n\n if (this.$_originalTitle) {\n this.reference.setAttribute('title', this.$_originalTitle);\n } // remove event listeners first to prevent any unexpected behaviour\n\n\n this._events.forEach(function (_ref) {\n var func = _ref.func,\n event = _ref.event;\n\n _this7.reference.removeEventListener(event, func);\n });\n\n this._events = [];\n\n if (this._tooltipNode) {\n this._hide();\n\n this._tooltipNode.removeEventListener('mouseenter', this.hide);\n\n this._tooltipNode.removeEventListener('click', this.hide); // destroy instance\n\n\n this.popperInstance.destroy(); // destroy tooltipNode if removeOnDestroy is not set, as popperInstance.destroy() already removes the element\n\n if (!this.popperInstance.options.removeOnDestroy) {\n this._removeTooltipNode();\n }\n } else {\n this._noLongerOpen();\n }\n\n return this;\n }\n }, {\n key: \"_findContainer\",\n value: function _findContainer(container, reference) {\n // if container is a query, get the relative element\n if (typeof container === 'string') {\n container = window.document.querySelector(container);\n } else if (container === false) {\n // if container is `false`, set it to reference parent\n container = reference.parentNode;\n }\n\n return container;\n }\n /**\n * Append tooltip to container\n * @memberof Tooltip\n * @private\n * @param {HTMLElement} tooltip\n * @param {HTMLElement|String|false} container\n */\n\n }, {\n key: \"_append\",\n value: function _append(tooltipNode, container) {\n container.appendChild(tooltipNode);\n }\n }, {\n key: \"_setEventListeners\",\n value: function _setEventListeners(reference, events, options) {\n var _this8 = this;\n\n var directEvents = [];\n var oppositeEvents = [];\n events.forEach(function (event) {\n switch (event) {\n case 'hover':\n directEvents.push('mouseenter');\n oppositeEvents.push('mouseleave');\n if (_this8.options.hideOnTargetClick) oppositeEvents.push('click');\n break;\n\n case 'focus':\n directEvents.push('focus');\n oppositeEvents.push('blur');\n if (_this8.options.hideOnTargetClick) oppositeEvents.push('click');\n break;\n\n case 'click':\n directEvents.push('click');\n oppositeEvents.push('click');\n break;\n }\n }); // schedule show tooltip\n\n directEvents.forEach(function (event) {\n var func = function func(evt) {\n if (_this8._isOpen === true) {\n return;\n }\n\n evt.usedByTooltip = true;\n\n _this8._scheduleShow(reference, options.delay, options, evt);\n };\n\n _this8._events.push({\n event: event,\n func: func\n });\n\n reference.addEventListener(event, func);\n }); // schedule hide tooltip\n\n oppositeEvents.forEach(function (event) {\n var func = function func(evt) {\n if (evt.usedByTooltip === true) {\n return;\n }\n\n _this8._scheduleHide(reference, options.delay, options, evt);\n };\n\n _this8._events.push({\n event: event,\n func: func\n });\n\n reference.addEventListener(event, func);\n });\n }\n }, {\n key: \"_onDocumentTouch\",\n value: function _onDocumentTouch(event) {\n if (this._enableDocumentTouch) {\n this._scheduleHide(this.reference, this.options.delay, this.options, event);\n }\n }\n }, {\n key: \"_scheduleShow\",\n value: function _scheduleShow(reference, delay, options\n /*, evt */\n ) {\n var _this9 = this;\n\n // defaults to 0\n var computedDelay = delay && delay.show || delay || 0;\n clearTimeout(this._scheduleTimer);\n this._scheduleTimer = window.setTimeout(function () {\n return _this9._show(reference, options);\n }, computedDelay);\n }\n }, {\n key: \"_scheduleHide\",\n value: function _scheduleHide(reference, delay, options, evt) {\n var _this10 = this;\n\n // defaults to 0\n var computedDelay = delay && delay.hide || delay || 0;\n clearTimeout(this._scheduleTimer);\n this._scheduleTimer = window.setTimeout(function () {\n if (_this10._isOpen === false) {\n return;\n }\n\n if (!_this10._tooltipNode.ownerDocument.body.contains(_this10._tooltipNode)) {\n return;\n } // if we are hiding because of a mouseleave, we must check that the new\n // reference isn't the tooltip, because in this case we don't want to hide it\n\n\n if (evt.type === 'mouseleave') {\n var isSet = _this10._setTooltipNodeEvent(evt, reference, delay, options); // if we set the new event, don't hide the tooltip yet\n // the new event will take care to hide it if necessary\n\n\n if (isSet) {\n return;\n }\n }\n\n _this10._hide(reference, options);\n }, computedDelay);\n }\n }]);\n\n return Tooltip;\n}(); // Hide tooltips on touch devices\n\nif (typeof document !== 'undefined') {\n document.addEventListener('touchstart', function (event) {\n for (var i = 0; i < openTooltips.length; i++) {\n openTooltips[i]._onDocumentTouch(event);\n }\n }, supportsPassive ? {\n passive: true,\n capture: true\n } : true);\n}\n/**\n * Placement function, its context is the Tooltip instance.\n * @memberof Tooltip\n * @callback PlacementFunction\n * @param {HTMLElement} tooltip - tooltip DOM node.\n * @param {HTMLElement} reference - reference DOM node.\n * @return {String} placement - One of the allowed placement options.\n */\n\n/**\n * Title function, its context is the Tooltip instance.\n * @memberof Tooltip\n * @callback TitleFunction\n * @return {String} placement - The desired title.\n */\n\nfunction ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\nvar state = {\n enabled: true\n};\nvar positions = ['top', 'top-start', 'top-end', 'right', 'right-start', 'right-end', 'bottom', 'bottom-start', 'bottom-end', 'left', 'left-start', 'left-end'];\nvar defaultOptions = {\n // Default tooltip placement relative to target element\n defaultPlacement: 'top',\n // Default CSS classes applied to the tooltip element\n defaultClass: 'vue-tooltip-theme',\n // Default CSS classes applied to the target element of the tooltip\n defaultTargetClass: 'has-tooltip',\n // Is the content HTML by default?\n defaultHtml: true,\n // Default HTML template of the tooltip element\n // It must include `tooltip-arrow` & `tooltip-inner` CSS classes (can be configured, see below)\n // Change if the classes conflict with other libraries (for example bootstrap)\n defaultTemplate: '
',\n // Selector used to get the arrow element in the tooltip template\n defaultArrowSelector: '.tooltip-arrow, .tooltip__arrow',\n // Selector used to get the inner content element in the tooltip template\n defaultInnerSelector: '.tooltip-inner, .tooltip__inner',\n // Delay (ms)\n defaultDelay: 0,\n // Default events that trigger the tooltip\n defaultTrigger: 'hover focus',\n // Default position offset (px)\n defaultOffset: 0,\n // Default container where the tooltip will be appended\n defaultContainer: 'body',\n defaultBoundariesElement: undefined,\n defaultPopperOptions: {},\n // Class added when content is loading\n defaultLoadingClass: 'tooltip-loading',\n // Displayed when tooltip content is loading\n defaultLoadingContent: '...',\n // Hide on mouseover tooltip\n autoHide: true,\n // Close tooltip on click on tooltip target?\n defaultHideOnTargetClick: true,\n // Auto destroy tooltip DOM nodes (ms)\n disposeTimeout: 5000,\n // Options for popover\n popover: {\n defaultPlacement: 'bottom',\n // Use the `popoverClass` prop for theming\n defaultClass: 'vue-popover-theme',\n // Base class (change if conflicts with other libraries)\n defaultBaseClass: 'tooltip popover',\n // Wrapper class (contains arrow and inner)\n defaultWrapperClass: 'wrapper',\n // Inner content class\n defaultInnerClass: 'tooltip-inner popover-inner',\n // Arrow class\n defaultArrowClass: 'tooltip-arrow popover-arrow',\n // Class added when popover is open\n defaultOpenClass: 'open',\n defaultDelay: 0,\n defaultTrigger: 'click',\n defaultOffset: 0,\n defaultContainer: 'body',\n defaultBoundariesElement: undefined,\n defaultPopperOptions: {},\n // Hides if clicked outside of popover\n defaultAutoHide: true,\n // Update popper on content resize\n defaultHandleResize: true\n }\n};\nfunction getOptions(options) {\n var result = {\n placement: typeof options.placement !== 'undefined' ? options.placement : directive.options.defaultPlacement,\n delay: typeof options.delay !== 'undefined' ? options.delay : directive.options.defaultDelay,\n html: typeof options.html !== 'undefined' ? options.html : directive.options.defaultHtml,\n template: typeof options.template !== 'undefined' ? options.template : directive.options.defaultTemplate,\n arrowSelector: typeof options.arrowSelector !== 'undefined' ? options.arrowSelector : directive.options.defaultArrowSelector,\n innerSelector: typeof options.innerSelector !== 'undefined' ? options.innerSelector : directive.options.defaultInnerSelector,\n trigger: typeof options.trigger !== 'undefined' ? options.trigger : directive.options.defaultTrigger,\n offset: typeof options.offset !== 'undefined' ? options.offset : directive.options.defaultOffset,\n container: typeof options.container !== 'undefined' ? options.container : directive.options.defaultContainer,\n boundariesElement: typeof options.boundariesElement !== 'undefined' ? options.boundariesElement : directive.options.defaultBoundariesElement,\n autoHide: typeof options.autoHide !== 'undefined' ? options.autoHide : directive.options.autoHide,\n hideOnTargetClick: typeof options.hideOnTargetClick !== 'undefined' ? options.hideOnTargetClick : directive.options.defaultHideOnTargetClick,\n loadingClass: typeof options.loadingClass !== 'undefined' ? options.loadingClass : directive.options.defaultLoadingClass,\n loadingContent: typeof options.loadingContent !== 'undefined' ? options.loadingContent : directive.options.defaultLoadingContent,\n popperOptions: _objectSpread$1({}, typeof options.popperOptions !== 'undefined' ? options.popperOptions : directive.options.defaultPopperOptions)\n };\n\n if (result.offset) {\n var typeofOffset = _typeof(result.offset);\n\n var offset = result.offset; // One value -> switch\n\n if (typeofOffset === 'number' || typeofOffset === 'string' && offset.indexOf(',') === -1) {\n offset = \"0, \".concat(offset);\n }\n\n if (!result.popperOptions.modifiers) {\n result.popperOptions.modifiers = {};\n }\n\n result.popperOptions.modifiers.offset = {\n offset: offset\n };\n }\n\n if (result.trigger && result.trigger.indexOf('click') !== -1) {\n result.hideOnTargetClick = false;\n }\n\n return result;\n}\nfunction getPlacement(value, modifiers) {\n var placement = value.placement;\n\n for (var i = 0; i < positions.length; i++) {\n var pos = positions[i];\n\n if (modifiers[pos]) {\n placement = pos;\n }\n }\n\n return placement;\n}\nfunction getContent(value) {\n var type = _typeof(value);\n\n if (type === 'string') {\n return value;\n } else if (value && type === 'object') {\n return value.content;\n } else {\n return false;\n }\n}\nfunction createTooltip(el, value) {\n var modifiers = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var content = getContent(value);\n var classes = typeof value.classes !== 'undefined' ? value.classes : directive.options.defaultClass;\n\n var opts = _objectSpread$1({\n title: content\n }, getOptions(_objectSpread$1(_objectSpread$1({}, _typeof(value) === 'object' ? value : {}), {}, {\n placement: getPlacement(value, modifiers)\n })));\n\n var tooltip = el._tooltip = new Tooltip(el, opts);\n tooltip.setClasses(classes);\n tooltip._vueEl = el; // Class on target\n\n var targetClasses = typeof value.targetClasses !== 'undefined' ? value.targetClasses : directive.options.defaultTargetClass;\n el._tooltipTargetClasses = targetClasses;\n addClasses(el, targetClasses);\n return tooltip;\n}\nfunction destroyTooltip(el) {\n if (el._tooltip) {\n el._tooltip.dispose();\n\n delete el._tooltip;\n delete el._tooltipOldShow;\n }\n\n if (el._tooltipTargetClasses) {\n removeClasses(el, el._tooltipTargetClasses);\n delete el._tooltipTargetClasses;\n }\n}\nfunction bind(el, _ref) {\n var value = _ref.value;\n _ref.oldValue;\n var modifiers = _ref.modifiers;\n var content = getContent(value);\n\n if (!content || !state.enabled) {\n destroyTooltip(el);\n } else {\n var tooltip;\n\n if (el._tooltip) {\n tooltip = el._tooltip; // Content\n\n tooltip.setContent(content); // Options\n\n tooltip.setOptions(_objectSpread$1(_objectSpread$1({}, value), {}, {\n placement: getPlacement(value, modifiers)\n }));\n } else {\n tooltip = createTooltip(el, value, modifiers);\n } // Manual show\n\n\n if (typeof value.show !== 'undefined' && value.show !== el._tooltipOldShow) {\n el._tooltipOldShow = value.show;\n value.show ? tooltip.show() : tooltip.hide();\n }\n }\n}\nvar directive = {\n options: defaultOptions,\n bind: bind,\n update: bind,\n unbind: function unbind(el) {\n destroyTooltip(el);\n }\n};\n\nfunction addListeners(el) {\n el.addEventListener('click', onClick);\n el.addEventListener('touchstart', onTouchStart, supportsPassive ? {\n passive: true\n } : false);\n}\n\nfunction removeListeners(el) {\n el.removeEventListener('click', onClick);\n el.removeEventListener('touchstart', onTouchStart);\n el.removeEventListener('touchend', onTouchEnd);\n el.removeEventListener('touchcancel', onTouchCancel);\n}\n\nfunction onClick(event) {\n var el = event.currentTarget;\n event.closePopover = !el.$_vclosepopover_touch;\n event.closeAllPopover = el.$_closePopoverModifiers && !!el.$_closePopoverModifiers.all;\n}\n\nfunction onTouchStart(event) {\n if (event.changedTouches.length === 1) {\n var el = event.currentTarget;\n el.$_vclosepopover_touch = true;\n var touch = event.changedTouches[0];\n el.$_vclosepopover_touchPoint = touch;\n el.addEventListener('touchend', onTouchEnd);\n el.addEventListener('touchcancel', onTouchCancel);\n }\n}\n\nfunction onTouchEnd(event) {\n var el = event.currentTarget;\n el.$_vclosepopover_touch = false;\n\n if (event.changedTouches.length === 1) {\n var touch = event.changedTouches[0];\n var firstTouch = el.$_vclosepopover_touchPoint;\n event.closePopover = Math.abs(touch.screenY - firstTouch.screenY) < 20 && Math.abs(touch.screenX - firstTouch.screenX) < 20;\n event.closeAllPopover = el.$_closePopoverModifiers && !!el.$_closePopoverModifiers.all;\n }\n}\n\nfunction onTouchCancel(event) {\n var el = event.currentTarget;\n el.$_vclosepopover_touch = false;\n}\n\nvar vclosepopover = {\n bind: function bind(el, _ref) {\n var value = _ref.value,\n modifiers = _ref.modifiers;\n el.$_closePopoverModifiers = modifiers;\n\n if (typeof value === 'undefined' || value) {\n addListeners(el);\n }\n },\n update: function update(el, _ref2) {\n var value = _ref2.value,\n oldValue = _ref2.oldValue,\n modifiers = _ref2.modifiers;\n el.$_closePopoverModifiers = modifiers;\n\n if (value !== oldValue) {\n if (typeof value === 'undefined' || value) {\n addListeners(el);\n } else {\n removeListeners(el);\n }\n }\n },\n unbind: function unbind(el) {\n removeListeners(el);\n }\n};\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction getDefault(key) {\n var value = directive.options.popover[key];\n\n if (typeof value === 'undefined') {\n return directive.options[key];\n }\n\n return value;\n}\n\nvar isIOS = false;\n\nif (typeof window !== 'undefined' && typeof navigator !== 'undefined') {\n isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;\n}\n\nvar openPopovers = [];\n\nvar Element = function Element() {};\n\nif (typeof window !== 'undefined') {\n Element = window.Element;\n}\n\nvar script = {\n name: 'VPopover',\n components: {\n ResizeObserver: ResizeObserver\n },\n props: {\n open: {\n type: Boolean,\n default: false\n },\n disabled: {\n type: Boolean,\n default: false\n },\n placement: {\n type: String,\n default: function _default() {\n return getDefault('defaultPlacement');\n }\n },\n delay: {\n type: [String, Number, Object],\n default: function _default() {\n return getDefault('defaultDelay');\n }\n },\n offset: {\n type: [String, Number],\n default: function _default() {\n return getDefault('defaultOffset');\n }\n },\n trigger: {\n type: String,\n default: function _default() {\n return getDefault('defaultTrigger');\n }\n },\n container: {\n type: [String, Object, Element, Boolean],\n default: function _default() {\n return getDefault('defaultContainer');\n }\n },\n boundariesElement: {\n type: [String, Element],\n default: function _default() {\n return getDefault('defaultBoundariesElement');\n }\n },\n popperOptions: {\n type: Object,\n default: function _default() {\n return getDefault('defaultPopperOptions');\n }\n },\n popoverClass: {\n type: [String, Array],\n default: function _default() {\n return getDefault('defaultClass');\n }\n },\n popoverBaseClass: {\n type: [String, Array],\n default: function _default() {\n return directive.options.popover.defaultBaseClass;\n }\n },\n popoverInnerClass: {\n type: [String, Array],\n default: function _default() {\n return directive.options.popover.defaultInnerClass;\n }\n },\n popoverWrapperClass: {\n type: [String, Array],\n default: function _default() {\n return directive.options.popover.defaultWrapperClass;\n }\n },\n popoverArrowClass: {\n type: [String, Array],\n default: function _default() {\n return directive.options.popover.defaultArrowClass;\n }\n },\n autoHide: {\n type: Boolean,\n default: function _default() {\n return directive.options.popover.defaultAutoHide;\n }\n },\n handleResize: {\n type: Boolean,\n default: function _default() {\n return directive.options.popover.defaultHandleResize;\n }\n },\n openGroup: {\n type: String,\n default: null\n },\n openClass: {\n type: [String, Array],\n default: function _default() {\n return directive.options.popover.defaultOpenClass;\n }\n },\n ariaId: {\n default: null\n }\n },\n data: function data() {\n return {\n isOpen: false,\n id: Math.random().toString(36).substr(2, 10)\n };\n },\n computed: {\n cssClass: function cssClass() {\n return _defineProperty({}, this.openClass, this.isOpen);\n },\n popoverId: function popoverId() {\n return \"popover_\".concat(this.ariaId != null ? this.ariaId : this.id);\n }\n },\n watch: {\n open: function open(val) {\n if (val) {\n this.show();\n } else {\n this.hide();\n }\n },\n disabled: function disabled(val, oldVal) {\n if (val !== oldVal) {\n if (val) {\n this.hide();\n } else if (this.open) {\n this.show();\n }\n }\n },\n container: function container(val) {\n if (this.isOpen && this.popperInstance) {\n var popoverNode = this.$refs.popover;\n var reference = this.$refs.trigger;\n var container = this.$_findContainer(this.container, reference);\n\n if (!container) {\n console.warn('No container for popover', this);\n return;\n }\n\n container.appendChild(popoverNode);\n this.popperInstance.scheduleUpdate();\n }\n },\n trigger: function trigger(val) {\n this.$_removeEventListeners();\n this.$_addEventListeners();\n },\n placement: function placement(val) {\n var _this = this;\n\n this.$_updatePopper(function () {\n _this.popperInstance.options.placement = val;\n });\n },\n offset: '$_restartPopper',\n boundariesElement: '$_restartPopper',\n popperOptions: {\n handler: '$_restartPopper',\n deep: true\n }\n },\n created: function created() {\n this.$_isDisposed = false;\n this.$_mounted = false;\n this.$_events = [];\n this.$_preventOpen = false;\n },\n mounted: function mounted() {\n var popoverNode = this.$refs.popover;\n popoverNode.parentNode && popoverNode.parentNode.removeChild(popoverNode);\n this.$_init();\n\n if (this.open) {\n this.show();\n }\n },\n deactivated: function deactivated() {\n this.hide();\n },\n beforeDestroy: function beforeDestroy() {\n this.dispose();\n },\n methods: {\n show: function show() {\n var _this2 = this;\n\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n event = _ref2.event;\n _ref2.skipDelay;\n var _ref2$force = _ref2.force,\n force = _ref2$force === void 0 ? false : _ref2$force;\n\n if (force || !this.disabled) {\n this.$_scheduleShow(event);\n this.$emit('show');\n }\n\n this.$emit('update:open', true);\n this.$_beingShowed = true;\n requestAnimationFrame(function () {\n _this2.$_beingShowed = false;\n });\n },\n hide: function hide() {\n var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n event = _ref3.event;\n _ref3.skipDelay;\n\n this.$_scheduleHide(event);\n this.$emit('hide');\n this.$emit('update:open', false);\n },\n dispose: function dispose() {\n this.$_isDisposed = true;\n this.$_removeEventListeners();\n this.hide({\n skipDelay: true\n });\n\n if (this.popperInstance) {\n this.popperInstance.destroy(); // destroy tooltipNode if removeOnDestroy is not set, as popperInstance.destroy() already removes the element\n\n if (!this.popperInstance.options.removeOnDestroy) {\n var popoverNode = this.$refs.popover;\n popoverNode.parentNode && popoverNode.parentNode.removeChild(popoverNode);\n }\n }\n\n this.$_mounted = false;\n this.popperInstance = null;\n this.isOpen = false;\n this.$emit('dispose');\n },\n $_init: function $_init() {\n if (this.trigger.indexOf('manual') === -1) {\n this.$_addEventListeners();\n }\n },\n $_show: function $_show() {\n var _this3 = this;\n\n var reference = this.$refs.trigger;\n var popoverNode = this.$refs.popover;\n clearTimeout(this.$_disposeTimer); // Already open\n\n if (this.isOpen) {\n return;\n } // Popper is already initialized\n\n\n if (this.popperInstance) {\n this.isOpen = true;\n this.popperInstance.enableEventListeners();\n this.popperInstance.scheduleUpdate();\n }\n\n if (!this.$_mounted) {\n var container = this.$_findContainer(this.container, reference);\n\n if (!container) {\n console.warn('No container for popover', this);\n return;\n }\n\n container.appendChild(popoverNode);\n this.$_mounted = true;\n this.isOpen = false;\n\n if (this.popperInstance) {\n requestAnimationFrame(function () {\n if (!_this3.hidden) {\n _this3.isOpen = true;\n }\n });\n }\n }\n\n if (!this.popperInstance) {\n var popperOptions = _objectSpread(_objectSpread({}, this.popperOptions), {}, {\n placement: this.placement\n });\n\n popperOptions.modifiers = _objectSpread(_objectSpread({}, popperOptions.modifiers), {}, {\n arrow: _objectSpread(_objectSpread({}, popperOptions.modifiers && popperOptions.modifiers.arrow), {}, {\n element: this.$refs.arrow\n })\n });\n\n if (this.offset) {\n var offset = this.$_getOffset();\n popperOptions.modifiers.offset = _objectSpread(_objectSpread({}, popperOptions.modifiers && popperOptions.modifiers.offset), {}, {\n offset: offset\n });\n }\n\n if (this.boundariesElement) {\n popperOptions.modifiers.preventOverflow = _objectSpread(_objectSpread({}, popperOptions.modifiers && popperOptions.modifiers.preventOverflow), {}, {\n boundariesElement: this.boundariesElement\n });\n }\n\n this.popperInstance = new Popper(reference, popoverNode, popperOptions); // Fix position\n\n requestAnimationFrame(function () {\n if (_this3.hidden) {\n _this3.hidden = false;\n\n _this3.$_hide();\n\n return;\n }\n\n if (!_this3.$_isDisposed && _this3.popperInstance) {\n _this3.popperInstance.scheduleUpdate(); // Show the tooltip\n\n\n requestAnimationFrame(function () {\n if (_this3.hidden) {\n _this3.hidden = false;\n\n _this3.$_hide();\n\n return;\n }\n\n if (!_this3.$_isDisposed) {\n _this3.isOpen = true;\n } else {\n _this3.dispose();\n }\n });\n } else {\n _this3.dispose();\n }\n });\n }\n\n var openGroup = this.openGroup;\n\n if (openGroup) {\n var popover;\n\n for (var i = 0; i < openPopovers.length; i++) {\n popover = openPopovers[i];\n\n if (popover.openGroup !== openGroup) {\n popover.hide();\n popover.$emit('close-group');\n }\n }\n }\n\n openPopovers.push(this);\n this.$emit('apply-show');\n },\n $_hide: function $_hide() {\n var _this4 = this;\n\n // Already hidden\n if (!this.isOpen) {\n return;\n }\n\n var index = openPopovers.indexOf(this);\n\n if (index !== -1) {\n openPopovers.splice(index, 1);\n }\n\n this.isOpen = false;\n\n if (this.popperInstance) {\n this.popperInstance.disableEventListeners();\n }\n\n clearTimeout(this.$_disposeTimer);\n var disposeTime = directive.options.popover.disposeTimeout || directive.options.disposeTimeout;\n\n if (disposeTime !== null) {\n this.$_disposeTimer = setTimeout(function () {\n var popoverNode = _this4.$refs.popover;\n\n if (popoverNode) {\n // Don't remove popper instance, just the HTML element\n popoverNode.parentNode && popoverNode.parentNode.removeChild(popoverNode);\n _this4.$_mounted = false;\n }\n }, disposeTime);\n }\n\n this.$emit('apply-hide');\n },\n $_findContainer: function $_findContainer(container, reference) {\n // if container is a query, get the relative element\n if (typeof container === 'string') {\n container = window.document.querySelector(container);\n } else if (container === false) {\n // if container is `false`, set it to reference parent\n container = reference.parentNode;\n }\n\n return container;\n },\n $_getOffset: function $_getOffset() {\n var typeofOffset = _typeof(this.offset);\n\n var offset = this.offset; // One value -> switch\n\n if (typeofOffset === 'number' || typeofOffset === 'string' && offset.indexOf(',') === -1) {\n offset = \"0, \".concat(offset);\n }\n\n return offset;\n },\n $_addEventListeners: function $_addEventListeners() {\n var _this5 = this;\n\n var reference = this.$refs.trigger;\n var directEvents = [];\n var oppositeEvents = [];\n var events = typeof this.trigger === 'string' ? this.trigger.split(' ').filter(function (trigger) {\n return ['click', 'hover', 'focus'].indexOf(trigger) !== -1;\n }) : [];\n events.forEach(function (event) {\n switch (event) {\n case 'hover':\n directEvents.push('mouseenter');\n oppositeEvents.push('mouseleave');\n break;\n\n case 'focus':\n directEvents.push('focus');\n oppositeEvents.push('blur');\n break;\n\n case 'click':\n directEvents.push('click');\n oppositeEvents.push('click');\n break;\n }\n }); // schedule show tooltip\n\n directEvents.forEach(function (event) {\n var func = function func(event) {\n if (_this5.isOpen) {\n return;\n }\n\n event.usedByTooltip = true;\n !_this5.$_preventOpen && _this5.show({\n event: event\n });\n _this5.hidden = false;\n };\n\n _this5.$_events.push({\n event: event,\n func: func\n });\n\n reference.addEventListener(event, func);\n }); // schedule hide tooltip\n\n oppositeEvents.forEach(function (event) {\n var func = function func(event) {\n if (event.usedByTooltip) {\n return;\n }\n\n _this5.hide({\n event: event\n });\n\n _this5.hidden = true;\n };\n\n _this5.$_events.push({\n event: event,\n func: func\n });\n\n reference.addEventListener(event, func);\n });\n },\n $_scheduleShow: function $_scheduleShow() {\n var skipDelay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n clearTimeout(this.$_scheduleTimer);\n\n if (skipDelay) {\n this.$_show();\n } else {\n // defaults to 0\n var computedDelay = parseInt(this.delay && this.delay.show || this.delay || 0);\n this.$_scheduleTimer = setTimeout(this.$_show.bind(this), computedDelay);\n }\n },\n $_scheduleHide: function $_scheduleHide() {\n var _this6 = this;\n\n var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var skipDelay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n clearTimeout(this.$_scheduleTimer);\n\n if (skipDelay) {\n this.$_hide();\n } else {\n // defaults to 0\n var computedDelay = parseInt(this.delay && this.delay.hide || this.delay || 0);\n this.$_scheduleTimer = setTimeout(function () {\n if (!_this6.isOpen) {\n return;\n } // if we are hiding because of a mouseleave, we must check that the new\n // reference isn't the tooltip, because in this case we don't want to hide it\n\n\n if (event && event.type === 'mouseleave') {\n var isSet = _this6.$_setTooltipNodeEvent(event); // if we set the new event, don't hide the tooltip yet\n // the new event will take care to hide it if necessary\n\n\n if (isSet) {\n return;\n }\n }\n\n _this6.$_hide();\n }, computedDelay);\n }\n },\n $_setTooltipNodeEvent: function $_setTooltipNodeEvent(event) {\n var _this7 = this;\n\n var reference = this.$refs.trigger;\n var popoverNode = this.$refs.popover;\n var relatedreference = event.relatedreference || event.toElement || event.relatedTarget;\n\n var callback = function callback(event2) {\n var relatedreference2 = event2.relatedreference || event2.toElement || event2.relatedTarget; // Remove event listener after call\n\n popoverNode.removeEventListener(event.type, callback); // If the new reference is not the reference element\n\n if (!reference.contains(relatedreference2)) {\n // Schedule to hide tooltip\n _this7.hide({\n event: event2\n });\n }\n };\n\n if (popoverNode.contains(relatedreference)) {\n // listen to mouseleave on the tooltip element to be able to hide the tooltip\n popoverNode.addEventListener(event.type, callback);\n return true;\n }\n\n return false;\n },\n $_removeEventListeners: function $_removeEventListeners() {\n var reference = this.$refs.trigger;\n this.$_events.forEach(function (_ref4) {\n var func = _ref4.func,\n event = _ref4.event;\n reference.removeEventListener(event, func);\n });\n this.$_events = [];\n },\n $_updatePopper: function $_updatePopper(cb) {\n if (this.popperInstance) {\n cb();\n if (this.isOpen) this.popperInstance.scheduleUpdate();\n }\n },\n $_restartPopper: function $_restartPopper() {\n if (this.popperInstance) {\n var isOpen = this.isOpen;\n this.dispose();\n this.$_isDisposed = false;\n this.$_init();\n\n if (isOpen) {\n this.show({\n skipDelay: true,\n force: true\n });\n }\n }\n },\n $_handleGlobalClose: function $_handleGlobalClose(event) {\n var _this8 = this;\n\n var touch = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (this.$_beingShowed) return;\n this.hide({\n event: event\n });\n\n if (event.closePopover) {\n this.$emit('close-directive');\n } else {\n this.$emit('auto-hide');\n }\n\n if (touch) {\n this.$_preventOpen = true;\n setTimeout(function () {\n _this8.$_preventOpen = false;\n }, 300);\n }\n },\n $_handleResize: function $_handleResize() {\n if (this.isOpen && this.popperInstance) {\n this.popperInstance.scheduleUpdate();\n this.$emit('resize');\n }\n }\n }\n};\n\nif (typeof document !== 'undefined' && typeof window !== 'undefined') {\n if (isIOS) {\n document.addEventListener('touchend', handleGlobalTouchend, supportsPassive ? {\n passive: true,\n capture: true\n } : true);\n } else {\n window.addEventListener('click', handleGlobalClick, true);\n }\n}\n\nfunction handleGlobalClick(event) {\n handleGlobalClose(event);\n}\n\nfunction handleGlobalTouchend(event) {\n handleGlobalClose(event, true);\n}\n\nfunction handleGlobalClose(event) {\n var touch = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var _loop = function _loop(i) {\n var popover = openPopovers[i];\n\n if (popover.$refs.popover) {\n var contains = popover.$refs.popover.contains(event.target);\n requestAnimationFrame(function () {\n if (event.closeAllPopover || event.closePopover && contains || popover.autoHide && !contains) {\n popover.$_handleGlobalClose(event, touch);\n }\n });\n }\n };\n\n // Delay so that close directive has time to set values\n for (var i = 0; i < openPopovers.length; i++) {\n _loop(i);\n }\n}\n\nfunction normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\r\n if (typeof shadowMode !== 'boolean') {\r\n createInjectorSSR = createInjector;\r\n createInjector = shadowMode;\r\n shadowMode = false;\r\n }\r\n // Vue.extend constructor export interop.\r\n const options = typeof script === 'function' ? script.options : script;\r\n // render functions\r\n if (template && template.render) {\r\n options.render = template.render;\r\n options.staticRenderFns = template.staticRenderFns;\r\n options._compiled = true;\r\n // functional template\r\n if (isFunctionalTemplate) {\r\n options.functional = true;\r\n }\r\n }\r\n // scopedId\r\n if (scopeId) {\r\n options._scopeId = scopeId;\r\n }\r\n let hook;\r\n if (moduleIdentifier) {\r\n // server build\r\n hook = function (context) {\r\n // 2.3 injection\r\n context =\r\n context || // cached call\r\n (this.$vnode && this.$vnode.ssrContext) || // stateful\r\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext); // functional\r\n // 2.2 with runInNewContext: true\r\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\r\n context = __VUE_SSR_CONTEXT__;\r\n }\r\n // inject component styles\r\n if (style) {\r\n style.call(this, createInjectorSSR(context));\r\n }\r\n // register component module identifier for async chunk inference\r\n if (context && context._registeredComponents) {\r\n context._registeredComponents.add(moduleIdentifier);\r\n }\r\n };\r\n // used by ssr in case component is cached and beforeCreate\r\n // never gets called\r\n options._ssrRegister = hook;\r\n }\r\n else if (style) {\r\n hook = shadowMode\r\n ? function (context) {\r\n style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\r\n }\r\n : function (context) {\r\n style.call(this, createInjector(context));\r\n };\r\n }\r\n if (hook) {\r\n if (options.functional) {\r\n // register for functional component in vue file\r\n const originalRender = options.render;\r\n options.render = function renderWithStyleInjection(h, context) {\r\n hook.call(context);\r\n return originalRender(h, context);\r\n };\r\n }\r\n else {\r\n // inject component registration as beforeCreate hook\r\n const existing = options.beforeCreate;\r\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\r\n }\r\n }\r\n return script;\r\n}\n\n/* script */\nvar __vue_script__ = script;\n/* template */\n\nvar __vue_render__ = function __vue_render__() {\n var _vm = this;\n\n var _h = _vm.$createElement;\n\n var _c = _vm._self._c || _h;\n\n return _c(\"div\", {\n staticClass: \"v-popover\",\n class: _vm.cssClass\n }, [_c(\"div\", {\n ref: \"trigger\",\n staticClass: \"trigger\",\n staticStyle: {\n display: \"inline-block\"\n },\n attrs: {\n \"aria-describedby\": _vm.isOpen ? _vm.popoverId : undefined,\n tabindex: _vm.trigger.indexOf(\"focus\") !== -1 ? 0 : undefined\n }\n }, [_vm._t(\"default\")], 2), _vm._v(\" \"), _c(\"div\", {\n ref: \"popover\",\n class: [_vm.popoverBaseClass, _vm.popoverClass, _vm.cssClass],\n style: {\n visibility: _vm.isOpen ? \"visible\" : \"hidden\"\n },\n attrs: {\n id: _vm.popoverId,\n \"aria-hidden\": _vm.isOpen ? \"false\" : \"true\",\n tabindex: _vm.autoHide ? 0 : undefined\n },\n on: {\n keyup: function keyup($event) {\n if (!$event.type.indexOf(\"key\") && _vm._k($event.keyCode, \"esc\", 27, $event.key, [\"Esc\", \"Escape\"])) {\n return null;\n }\n\n _vm.autoHide && _vm.hide();\n }\n }\n }, [_c(\"div\", {\n class: _vm.popoverWrapperClass\n }, [_c(\"div\", {\n ref: \"inner\",\n class: _vm.popoverInnerClass,\n staticStyle: {\n position: \"relative\"\n }\n }, [_c(\"div\", [_vm._t(\"popover\", null, {\n isOpen: _vm.isOpen\n })], 2), _vm._v(\" \"), _vm.handleResize ? _c(\"ResizeObserver\", {\n on: {\n notify: _vm.$_handleResize\n }\n }) : _vm._e()], 1), _vm._v(\" \"), _c(\"div\", {\n ref: \"arrow\",\n class: _vm.popoverArrowClass\n })])])]);\n};\n\nvar __vue_staticRenderFns__ = [];\n__vue_render__._withStripped = true;\n/* style */\n\nvar __vue_inject_styles__ = undefined;\n/* scoped */\n\nvar __vue_scope_id__ = undefined;\n/* module identifier */\n\nvar __vue_module_identifier__ = undefined;\n/* functional template */\n\nvar __vue_is_functional_template__ = false;\n/* style inject */\n\n/* style inject SSR */\n\n/* style inject shadow dom */\n\nvar __vue_component__ = /*#__PURE__*/normalizeComponent({\n render: __vue_render__,\n staticRenderFns: __vue_staticRenderFns__\n}, __vue_inject_styles__, __vue_script__, __vue_scope_id__, __vue_is_functional_template__, __vue_module_identifier__, false, undefined, undefined, undefined);\n\nfunction styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar css_248z = \".resize-observer[data-v-8859cc6c]{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;border:none;background-color:transparent;pointer-events:none;display:block;overflow:hidden;opacity:0}.resize-observer[data-v-8859cc6c] object{display:block;position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1}\";\nstyleInject(css_248z);\n\nfunction install(Vue) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (install.installed) return;\n install.installed = true;\n var finalOptions = {};\n merge(finalOptions, defaultOptions, options);\n plugin.options = finalOptions;\n directive.options = finalOptions;\n Vue.directive('tooltip', directive);\n Vue.directive('close-popover', vclosepopover);\n Vue.component('VPopover', __vue_component__);\n}\nvar VTooltip = directive;\nvar VClosePopover = vclosepopover;\nvar VPopover = __vue_component__;\nvar plugin = {\n install: install,\n\n get enabled() {\n return state.enabled;\n },\n\n set enabled(value) {\n state.enabled = value;\n }\n\n}; // Auto-install\n\nvar GlobalVue = null;\n\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue;\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue;\n}\n\nif (GlobalVue) {\n GlobalVue.use(plugin);\n}\n\nexport default plugin;\nexport { VClosePopover, VPopover, VTooltip, createTooltip, destroyTooltip, install };\n","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c(_setup.NcContent,{attrs:{\"app-name\":\"settings\"}},[_c('router-view',{attrs:{\"name\":\"navigation\"}}),_vm._v(\" \"),_c('router-view'),_vm._v(\" \"),_c('router-view',{attrs:{\"name\":\"sidebar\"}})],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-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SettingsApp.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-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SettingsApp.vue?vue&type=script&setup=true&lang=ts\"","import { render, staticRenderFns } from \"./SettingsApp.vue?vue&type=template&id=288003b1\"\nimport script from \"./SettingsApp.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./SettingsApp.vue?vue&type=script&setup=true&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 { loadState } from '@nextcloud/initial-state';\nconst appstoreEnabled = loadState('settings', 'appstoreEnabled', true);\n// Dynamic loading\nconst AppStore = () => import(/* webpackChunkName: 'settings-apps-view' */ '../views/AppStore.vue');\nconst AppStoreNavigation = () => import(/* webpackChunkName: 'settings-apps-view' */ '../views/AppStoreNavigation.vue');\nconst AppStoreSidebar = () => import(/* webpackChunkName: 'settings-apps-view' */ '../views/AppStoreSidebar.vue');\nconst UserManagement = () => import(/* webpackChunkName: 'settings-users' */ '../views/UserManagement.vue');\nconst UserManagementNavigation = () => import(/* webpackChunkName: 'settings-users' */ '../views/UserManagementNavigation.vue');\nconst routes = [\n {\n name: 'users',\n path: '/:index(index.php/)?settings/users',\n components: {\n default: UserManagement,\n navigation: UserManagementNavigation,\n },\n props: true,\n children: [\n {\n path: ':selectedGroup',\n name: 'group',\n },\n ],\n },\n {\n path: '/:index(index.php/)?settings/apps',\n name: 'apps',\n redirect: {\n name: 'apps-category',\n params: {\n category: appstoreEnabled ? 'discover' : 'installed',\n },\n },\n components: {\n default: AppStore,\n navigation: AppStoreNavigation,\n sidebar: AppStoreSidebar,\n },\n children: [\n {\n path: ':category',\n name: 'apps-category',\n children: [\n {\n path: ':id',\n name: 'apps-details',\n },\n ],\n },\n ],\n },\n];\nexport default routes;\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { generateUrl } from '@nextcloud/router';\nimport Vue from 'vue';\nimport Router from 'vue-router';\nimport routes from './routes.ts';\nVue.use(Router);\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(''),\n linkActiveClass: 'active',\n routes,\n});\nexport default router;\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getCSPNonce } from '@nextcloud/auth';\nimport axios from '@nextcloud/axios';\nimport { n, t } from '@nextcloud/l10n';\nimport { addPasswordConfirmationInterceptors } from '@nextcloud/password-confirmation';\nimport { createPinia, PiniaVuePlugin } from 'pinia';\nimport VTooltipPlugin from 'v-tooltip';\nimport Vue from 'vue';\nimport Vuex from 'vuex';\nimport { sync } from 'vuex-router-sync';\nimport SettingsApp from './views/SettingsApp.vue';\nimport router from './router/index.ts';\nimport { useStore } from './store/index.js';\naddPasswordConfirmationInterceptors(axios);\n// CSP config for webpack dynamic chunk loading\n__webpack_nonce__ = getCSPNonce();\n// bind to window\nVue.prototype.t = t;\nVue.prototype.n = n;\nVue.use(PiniaVuePlugin);\nVue.use(VTooltipPlugin, { defaultHtml: false });\nVue.use(Vuex);\nconst store = useStore();\nsync(store, router);\nconst pinia = createPinia();\n// Migrate legacy local storage settings to the database\nstore.dispatch('migrateLocalStorage');\nexport default new Vue({\n router,\n store,\n pinia,\n render: (h) => h(SettingsApp),\n el: '#content',\n});\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignMergeValue;\n","var Stack = require('./_Stack'),\n assignMergeValue = require('./_assignMergeValue'),\n baseFor = require('./_baseFor'),\n baseMergeDeep = require('./_baseMergeDeep'),\n isObject = require('./isObject'),\n keysIn = require('./keysIn'),\n safeGet = require('./_safeGet');\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\nmodule.exports = baseMerge;\n","var assignMergeValue = require('./_assignMergeValue'),\n cloneBuffer = require('./_cloneBuffer'),\n cloneTypedArray = require('./_cloneTypedArray'),\n copyArray = require('./_copyArray'),\n initCloneObject = require('./_initCloneObject'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isArrayLikeObject = require('./isArrayLikeObject'),\n isBuffer = require('./isBuffer'),\n isFunction = require('./isFunction'),\n isObject = require('./isObject'),\n isPlainObject = require('./isPlainObject'),\n isTypedArray = require('./isTypedArray'),\n safeGet = require('./_safeGet'),\n toPlainObject = require('./toPlainObject');\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\nmodule.exports = baseMergeDeep;\n","var baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n","/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\nmodule.exports = safeGet;\n","var isArrayLike = require('./isArrayLike'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nmodule.exports = isArrayLikeObject;\n","var baseIsEqual = require('./_baseIsEqual');\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nmodule.exports = isEqual;\n","var baseMerge = require('./_baseMerge'),\n createAssigner = require('./_createAssigner');\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\nmodule.exports = merge;\n","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\nmodule.exports = toPlainObject;\n","exports.sync = function (store, router, options) {\n var moduleName = (options || {}).moduleName || 'route'\n\n store.registerModule(moduleName, {\n namespaced: true,\n state: cloneRoute(router.currentRoute),\n mutations: {\n 'ROUTE_CHANGED': function ROUTE_CHANGED (state, transition) {\n store.state[moduleName] = cloneRoute(transition.to, transition.from)\n }\n }\n })\n\n var isTimeTraveling = false\n var currentPath\n\n // sync router on store change\n var storeUnwatch = store.watch(\n function (state) { return state[moduleName]; },\n function (route) {\n var fullPath = route.fullPath;\n if (fullPath === currentPath) {\n return\n }\n if (currentPath != null) {\n isTimeTraveling = true\n router.push(route)\n }\n currentPath = fullPath\n },\n { sync: true }\n )\n\n // sync store on router navigation\n var afterEachUnHook = router.afterEach(function (to, from) {\n if (isTimeTraveling) {\n isTimeTraveling = false\n return\n }\n currentPath = to.fullPath\n store.commit(moduleName + '/ROUTE_CHANGED', { to: to, from: from })\n })\n\n return function unsync () {\n // On unsync, remove router hook\n if (afterEachUnHook != null) {\n afterEachUnHook()\n }\n\n // On unsync, remove store watch\n if (storeUnwatch != null) {\n storeUnwatch()\n }\n\n // On unsync, unregister Module with store\n store.unregisterModule(moduleName)\n }\n}\n\nfunction cloneRoute (to, from) {\n var clone = {\n name: to.name,\n path: to.path,\n hash: to.hash,\n query: to.query,\n params: to.params,\n fullPath: to.fullPath,\n meta: to.meta\n }\n if (from) {\n clone.from = cloneRoute(from)\n }\n return Object.freeze(clone)\n}\n\n","/*!\n * vuex v3.6.2\n * (c) 2021 Evan You\n * @license MIT\n */\nfunction applyMixin (Vue) {\n var version = Number(Vue.version.split('.')[0]);\n\n if (version >= 2) {\n Vue.mixin({ beforeCreate: vuexInit });\n } else {\n // override init and inject vuex init procedure\n // for 1.x backwards compatibility.\n var _init = Vue.prototype._init;\n Vue.prototype._init = function (options) {\n if ( options === void 0 ) options = {};\n\n options.init = options.init\n ? [vuexInit].concat(options.init)\n : vuexInit;\n _init.call(this, options);\n };\n }\n\n /**\n * Vuex init hook, injected into each instances init hooks list.\n */\n\n function vuexInit () {\n var options = this.$options;\n // store injection\n if (options.store) {\n this.$store = typeof options.store === 'function'\n ? options.store()\n : options.store;\n } else if (options.parent && options.parent.$store) {\n this.$store = options.parent.$store;\n }\n }\n}\n\nvar target = typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {};\nvar devtoolHook = target.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\nfunction devtoolPlugin (store) {\n if (!devtoolHook) { return }\n\n store._devtoolHook = devtoolHook;\n\n devtoolHook.emit('vuex:init', store);\n\n devtoolHook.on('vuex:travel-to-state', function (targetState) {\n store.replaceState(targetState);\n });\n\n store.subscribe(function (mutation, state) {\n devtoolHook.emit('vuex:mutation', mutation, state);\n }, { prepend: true });\n\n store.subscribeAction(function (action, state) {\n devtoolHook.emit('vuex:action', action, state);\n }, { prepend: true });\n}\n\n/**\n * Get the first item that pass the test\n * by second argument function\n *\n * @param {Array} list\n * @param {Function} f\n * @return {*}\n */\nfunction find (list, f) {\n return list.filter(f)[0]\n}\n\n/**\n * Deep copy the given object considering circular structure.\n * This function caches all nested objects and its copies.\n * If it detects circular structure, use cached copy to avoid infinite loop.\n *\n * @param {*} obj\n * @param {Array} cache\n * @return {*}\n */\nfunction deepCopy (obj, cache) {\n if ( cache === void 0 ) cache = [];\n\n // just return if obj is immutable value\n if (obj === null || typeof obj !== 'object') {\n return obj\n }\n\n // if obj is hit, it is in circular structure\n var hit = find(cache, function (c) { return c.original === obj; });\n if (hit) {\n return hit.copy\n }\n\n var copy = Array.isArray(obj) ? [] : {};\n // put the copy into cache at first\n // because we want to refer it in recursive deepCopy\n cache.push({\n original: obj,\n copy: copy\n });\n\n Object.keys(obj).forEach(function (key) {\n copy[key] = deepCopy(obj[key], cache);\n });\n\n return copy\n}\n\n/**\n * forEach for object\n */\nfunction forEachValue (obj, fn) {\n Object.keys(obj).forEach(function (key) { return fn(obj[key], key); });\n}\n\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\nfunction isPromise (val) {\n return val && typeof val.then === 'function'\n}\n\nfunction assert (condition, msg) {\n if (!condition) { throw new Error((\"[vuex] \" + msg)) }\n}\n\nfunction partial (fn, arg) {\n return function () {\n return fn(arg)\n }\n}\n\n// Base data struct for store's module, package with some attribute and method\nvar Module = function Module (rawModule, runtime) {\n this.runtime = runtime;\n // Store some children item\n this._children = Object.create(null);\n // Store the origin module object which passed by programmer\n this._rawModule = rawModule;\n var rawState = rawModule.state;\n\n // Store the origin module's state\n this.state = (typeof rawState === 'function' ? rawState() : rawState) || {};\n};\n\nvar prototypeAccessors = { namespaced: { configurable: true } };\n\nprototypeAccessors.namespaced.get = function () {\n return !!this._rawModule.namespaced\n};\n\nModule.prototype.addChild = function addChild (key, module) {\n this._children[key] = module;\n};\n\nModule.prototype.removeChild = function removeChild (key) {\n delete this._children[key];\n};\n\nModule.prototype.getChild = function getChild (key) {\n return this._children[key]\n};\n\nModule.prototype.hasChild = function hasChild (key) {\n return key in this._children\n};\n\nModule.prototype.update = function update (rawModule) {\n this._rawModule.namespaced = rawModule.namespaced;\n if (rawModule.actions) {\n this._rawModule.actions = rawModule.actions;\n }\n if (rawModule.mutations) {\n this._rawModule.mutations = rawModule.mutations;\n }\n if (rawModule.getters) {\n this._rawModule.getters = rawModule.getters;\n }\n};\n\nModule.prototype.forEachChild = function forEachChild (fn) {\n forEachValue(this._children, fn);\n};\n\nModule.prototype.forEachGetter = function forEachGetter (fn) {\n if (this._rawModule.getters) {\n forEachValue(this._rawModule.getters, fn);\n }\n};\n\nModule.prototype.forEachAction = function forEachAction (fn) {\n if (this._rawModule.actions) {\n forEachValue(this._rawModule.actions, fn);\n }\n};\n\nModule.prototype.forEachMutation = function forEachMutation (fn) {\n if (this._rawModule.mutations) {\n forEachValue(this._rawModule.mutations, fn);\n }\n};\n\nObject.defineProperties( Module.prototype, prototypeAccessors );\n\nvar ModuleCollection = function ModuleCollection (rawRootModule) {\n // register root module (Vuex.Store options)\n this.register([], rawRootModule, false);\n};\n\nModuleCollection.prototype.get = function get (path) {\n return path.reduce(function (module, key) {\n return module.getChild(key)\n }, this.root)\n};\n\nModuleCollection.prototype.getNamespace = function getNamespace (path) {\n var module = this.root;\n return path.reduce(function (namespace, key) {\n module = module.getChild(key);\n return namespace + (module.namespaced ? key + '/' : '')\n }, '')\n};\n\nModuleCollection.prototype.update = function update$1 (rawRootModule) {\n update([], this.root, rawRootModule);\n};\n\nModuleCollection.prototype.register = function register (path, rawModule, runtime) {\n var this$1 = this;\n if ( runtime === void 0 ) runtime = true;\n\n if ((process.env.NODE_ENV !== 'production')) {\n assertRawModule(path, rawModule);\n }\n\n var newModule = new Module(rawModule, runtime);\n if (path.length === 0) {\n this.root = newModule;\n } else {\n var parent = this.get(path.slice(0, -1));\n parent.addChild(path[path.length - 1], newModule);\n }\n\n // register nested modules\n if (rawModule.modules) {\n forEachValue(rawModule.modules, function (rawChildModule, key) {\n this$1.register(path.concat(key), rawChildModule, runtime);\n });\n }\n};\n\nModuleCollection.prototype.unregister = function unregister (path) {\n var parent = this.get(path.slice(0, -1));\n var key = path[path.length - 1];\n var child = parent.getChild(key);\n\n if (!child) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\n \"[vuex] trying to unregister module '\" + key + \"', which is \" +\n \"not registered\"\n );\n }\n return\n }\n\n if (!child.runtime) {\n return\n }\n\n parent.removeChild(key);\n};\n\nModuleCollection.prototype.isRegistered = function isRegistered (path) {\n var parent = this.get(path.slice(0, -1));\n var key = path[path.length - 1];\n\n if (parent) {\n return parent.hasChild(key)\n }\n\n return false\n};\n\nfunction update (path, targetModule, newModule) {\n if ((process.env.NODE_ENV !== 'production')) {\n assertRawModule(path, newModule);\n }\n\n // update target module\n targetModule.update(newModule);\n\n // update nested modules\n if (newModule.modules) {\n for (var key in newModule.modules) {\n if (!targetModule.getChild(key)) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\n \"[vuex] trying to add a new module '\" + key + \"' on hot reloading, \" +\n 'manual reload is needed'\n );\n }\n return\n }\n update(\n path.concat(key),\n targetModule.getChild(key),\n newModule.modules[key]\n );\n }\n }\n}\n\nvar functionAssert = {\n assert: function (value) { return typeof value === 'function'; },\n expected: 'function'\n};\n\nvar objectAssert = {\n assert: function (value) { return typeof value === 'function' ||\n (typeof value === 'object' && typeof value.handler === 'function'); },\n expected: 'function or object with \"handler\" function'\n};\n\nvar assertTypes = {\n getters: functionAssert,\n mutations: functionAssert,\n actions: objectAssert\n};\n\nfunction assertRawModule (path, rawModule) {\n Object.keys(assertTypes).forEach(function (key) {\n if (!rawModule[key]) { return }\n\n var assertOptions = assertTypes[key];\n\n forEachValue(rawModule[key], function (value, type) {\n assert(\n assertOptions.assert(value),\n makeAssertionMessage(path, key, type, value, assertOptions.expected)\n );\n });\n });\n}\n\nfunction makeAssertionMessage (path, key, type, value, expected) {\n var buf = key + \" should be \" + expected + \" but \\\"\" + key + \".\" + type + \"\\\"\";\n if (path.length > 0) {\n buf += \" in module \\\"\" + (path.join('.')) + \"\\\"\";\n }\n buf += \" is \" + (JSON.stringify(value)) + \".\";\n return buf\n}\n\nvar Vue; // bind on install\n\nvar Store = function Store (options) {\n var this$1 = this;\n if ( options === void 0 ) options = {};\n\n // Auto install if it is not done yet and `window` has `Vue`.\n // To allow users to avoid auto-installation in some cases,\n // this code should be placed here. See #731\n if (!Vue && typeof window !== 'undefined' && window.Vue) {\n install(window.Vue);\n }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Vue, \"must call Vue.use(Vuex) before creating a store instance.\");\n assert(typeof Promise !== 'undefined', \"vuex requires a Promise polyfill in this browser.\");\n assert(this instanceof Store, \"store must be called with the new operator.\");\n }\n\n var plugins = options.plugins; if ( plugins === void 0 ) plugins = [];\n var strict = options.strict; if ( strict === void 0 ) strict = false;\n\n // store internal state\n this._committing = false;\n this._actions = Object.create(null);\n this._actionSubscribers = [];\n this._mutations = Object.create(null);\n this._wrappedGetters = Object.create(null);\n this._modules = new ModuleCollection(options);\n this._modulesNamespaceMap = Object.create(null);\n this._subscribers = [];\n this._watcherVM = new Vue();\n this._makeLocalGettersCache = Object.create(null);\n\n // bind commit and dispatch to self\n var store = this;\n var ref = this;\n var dispatch = ref.dispatch;\n var commit = ref.commit;\n this.dispatch = function boundDispatch (type, payload) {\n return dispatch.call(store, type, payload)\n };\n this.commit = function boundCommit (type, payload, options) {\n return commit.call(store, type, payload, options)\n };\n\n // strict mode\n this.strict = strict;\n\n var state = this._modules.root.state;\n\n // init root module.\n // this also recursively registers all sub-modules\n // and collects all module getters inside this._wrappedGetters\n installModule(this, state, [], this._modules.root);\n\n // initialize the store vm, which is responsible for the reactivity\n // (also registers _wrappedGetters as computed properties)\n resetStoreVM(this, state);\n\n // apply plugins\n plugins.forEach(function (plugin) { return plugin(this$1); });\n\n var useDevtools = options.devtools !== undefined ? options.devtools : Vue.config.devtools;\n if (useDevtools) {\n devtoolPlugin(this);\n }\n};\n\nvar prototypeAccessors$1 = { state: { configurable: true } };\n\nprototypeAccessors$1.state.get = function () {\n return this._vm._data.$$state\n};\n\nprototypeAccessors$1.state.set = function (v) {\n if ((process.env.NODE_ENV !== 'production')) {\n assert(false, \"use store.replaceState() to explicit replace store state.\");\n }\n};\n\nStore.prototype.commit = function commit (_type, _payload, _options) {\n var this$1 = this;\n\n // check object-style commit\n var ref = unifyObjectStyle(_type, _payload, _options);\n var type = ref.type;\n var payload = ref.payload;\n var options = ref.options;\n\n var mutation = { type: type, payload: payload };\n var entry = this._mutations[type];\n if (!entry) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] unknown mutation type: \" + type));\n }\n return\n }\n this._withCommit(function () {\n entry.forEach(function commitIterator (handler) {\n handler(payload);\n });\n });\n\n this._subscribers\n .slice() // shallow copy to prevent iterator invalidation if subscriber synchronously calls unsubscribe\n .forEach(function (sub) { return sub(mutation, this$1.state); });\n\n if (\n (process.env.NODE_ENV !== 'production') &&\n options && options.silent\n ) {\n console.warn(\n \"[vuex] mutation type: \" + type + \". Silent option has been removed. \" +\n 'Use the filter functionality in the vue-devtools'\n );\n }\n};\n\nStore.prototype.dispatch = function dispatch (_type, _payload) {\n var this$1 = this;\n\n // check object-style dispatch\n var ref = unifyObjectStyle(_type, _payload);\n var type = ref.type;\n var payload = ref.payload;\n\n var action = { type: type, payload: payload };\n var entry = this._actions[type];\n if (!entry) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] unknown action type: \" + type));\n }\n return\n }\n\n try {\n this._actionSubscribers\n .slice() // shallow copy to prevent iterator invalidation if subscriber synchronously calls unsubscribe\n .filter(function (sub) { return sub.before; })\n .forEach(function (sub) { return sub.before(action, this$1.state); });\n } catch (e) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\"[vuex] error in before action subscribers: \");\n console.error(e);\n }\n }\n\n var result = entry.length > 1\n ? Promise.all(entry.map(function (handler) { return handler(payload); }))\n : entry[0](payload);\n\n return new Promise(function (resolve, reject) {\n result.then(function (res) {\n try {\n this$1._actionSubscribers\n .filter(function (sub) { return sub.after; })\n .forEach(function (sub) { return sub.after(action, this$1.state); });\n } catch (e) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\"[vuex] error in after action subscribers: \");\n console.error(e);\n }\n }\n resolve(res);\n }, function (error) {\n try {\n this$1._actionSubscribers\n .filter(function (sub) { return sub.error; })\n .forEach(function (sub) { return sub.error(action, this$1.state, error); });\n } catch (e) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\"[vuex] error in error action subscribers: \");\n console.error(e);\n }\n }\n reject(error);\n });\n })\n};\n\nStore.prototype.subscribe = function subscribe (fn, options) {\n return genericSubscribe(fn, this._subscribers, options)\n};\n\nStore.prototype.subscribeAction = function subscribeAction (fn, options) {\n var subs = typeof fn === 'function' ? { before: fn } : fn;\n return genericSubscribe(subs, this._actionSubscribers, options)\n};\n\nStore.prototype.watch = function watch (getter, cb, options) {\n var this$1 = this;\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(typeof getter === 'function', \"store.watch only accepts a function.\");\n }\n return this._watcherVM.$watch(function () { return getter(this$1.state, this$1.getters); }, cb, options)\n};\n\nStore.prototype.replaceState = function replaceState (state) {\n var this$1 = this;\n\n this._withCommit(function () {\n this$1._vm._data.$$state = state;\n });\n};\n\nStore.prototype.registerModule = function registerModule (path, rawModule, options) {\n if ( options === void 0 ) options = {};\n\n if (typeof path === 'string') { path = [path]; }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n assert(path.length > 0, 'cannot register the root module by using registerModule.');\n }\n\n this._modules.register(path, rawModule);\n installModule(this, this.state, path, this._modules.get(path), options.preserveState);\n // reset store to update getters...\n resetStoreVM(this, this.state);\n};\n\nStore.prototype.unregisterModule = function unregisterModule (path) {\n var this$1 = this;\n\n if (typeof path === 'string') { path = [path]; }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n }\n\n this._modules.unregister(path);\n this._withCommit(function () {\n var parentState = getNestedState(this$1.state, path.slice(0, -1));\n Vue.delete(parentState, path[path.length - 1]);\n });\n resetStore(this);\n};\n\nStore.prototype.hasModule = function hasModule (path) {\n if (typeof path === 'string') { path = [path]; }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n }\n\n return this._modules.isRegistered(path)\n};\n\nStore.prototype.hotUpdate = function hotUpdate (newOptions) {\n this._modules.update(newOptions);\n resetStore(this, true);\n};\n\nStore.prototype._withCommit = function _withCommit (fn) {\n var committing = this._committing;\n this._committing = true;\n fn();\n this._committing = committing;\n};\n\nObject.defineProperties( Store.prototype, prototypeAccessors$1 );\n\nfunction genericSubscribe (fn, subs, options) {\n if (subs.indexOf(fn) < 0) {\n options && options.prepend\n ? subs.unshift(fn)\n : subs.push(fn);\n }\n return function () {\n var i = subs.indexOf(fn);\n if (i > -1) {\n subs.splice(i, 1);\n }\n }\n}\n\nfunction resetStore (store, hot) {\n store._actions = Object.create(null);\n store._mutations = Object.create(null);\n store._wrappedGetters = Object.create(null);\n store._modulesNamespaceMap = Object.create(null);\n var state = store.state;\n // init all modules\n installModule(store, state, [], store._modules.root, true);\n // reset vm\n resetStoreVM(store, state, hot);\n}\n\nfunction resetStoreVM (store, state, hot) {\n var oldVm = store._vm;\n\n // bind store public getters\n store.getters = {};\n // reset local getters cache\n store._makeLocalGettersCache = Object.create(null);\n var wrappedGetters = store._wrappedGetters;\n var computed = {};\n forEachValue(wrappedGetters, function (fn, key) {\n // use computed to leverage its lazy-caching mechanism\n // direct inline function use will lead to closure preserving oldVm.\n // using partial to return function with only arguments preserved in closure environment.\n computed[key] = partial(fn, store);\n Object.defineProperty(store.getters, key, {\n get: function () { return store._vm[key]; },\n enumerable: true // for local getters\n });\n });\n\n // use a Vue instance to store the state tree\n // suppress warnings just in case the user has added\n // some funky global mixins\n var silent = Vue.config.silent;\n Vue.config.silent = true;\n store._vm = new Vue({\n data: {\n $$state: state\n },\n computed: computed\n });\n Vue.config.silent = silent;\n\n // enable strict mode for new vm\n if (store.strict) {\n enableStrictMode(store);\n }\n\n if (oldVm) {\n if (hot) {\n // dispatch changes in all subscribed watchers\n // to force getter re-evaluation for hot reloading.\n store._withCommit(function () {\n oldVm._data.$$state = null;\n });\n }\n Vue.nextTick(function () { return oldVm.$destroy(); });\n }\n}\n\nfunction installModule (store, rootState, path, module, hot) {\n var isRoot = !path.length;\n var namespace = store._modules.getNamespace(path);\n\n // register in namespace map\n if (module.namespaced) {\n if (store._modulesNamespaceMap[namespace] && (process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] duplicate namespace \" + namespace + \" for the namespaced module \" + (path.join('/'))));\n }\n store._modulesNamespaceMap[namespace] = module;\n }\n\n // set state\n if (!isRoot && !hot) {\n var parentState = getNestedState(rootState, path.slice(0, -1));\n var moduleName = path[path.length - 1];\n store._withCommit(function () {\n if ((process.env.NODE_ENV !== 'production')) {\n if (moduleName in parentState) {\n console.warn(\n (\"[vuex] state field \\\"\" + moduleName + \"\\\" was overridden by a module with the same name at \\\"\" + (path.join('.')) + \"\\\"\")\n );\n }\n }\n Vue.set(parentState, moduleName, module.state);\n });\n }\n\n var local = module.context = makeLocalContext(store, namespace, path);\n\n module.forEachMutation(function (mutation, key) {\n var namespacedType = namespace + key;\n registerMutation(store, namespacedType, mutation, local);\n });\n\n module.forEachAction(function (action, key) {\n var type = action.root ? key : namespace + key;\n var handler = action.handler || action;\n registerAction(store, type, handler, local);\n });\n\n module.forEachGetter(function (getter, key) {\n var namespacedType = namespace + key;\n registerGetter(store, namespacedType, getter, local);\n });\n\n module.forEachChild(function (child, key) {\n installModule(store, rootState, path.concat(key), child, hot);\n });\n}\n\n/**\n * make localized dispatch, commit, getters and state\n * if there is no namespace, just use root ones\n */\nfunction makeLocalContext (store, namespace, path) {\n var noNamespace = namespace === '';\n\n var local = {\n dispatch: noNamespace ? store.dispatch : function (_type, _payload, _options) {\n var args = unifyObjectStyle(_type, _payload, _options);\n var payload = args.payload;\n var options = args.options;\n var type = args.type;\n\n if (!options || !options.root) {\n type = namespace + type;\n if ((process.env.NODE_ENV !== 'production') && !store._actions[type]) {\n console.error((\"[vuex] unknown local action type: \" + (args.type) + \", global type: \" + type));\n return\n }\n }\n\n return store.dispatch(type, payload)\n },\n\n commit: noNamespace ? store.commit : function (_type, _payload, _options) {\n var args = unifyObjectStyle(_type, _payload, _options);\n var payload = args.payload;\n var options = args.options;\n var type = args.type;\n\n if (!options || !options.root) {\n type = namespace + type;\n if ((process.env.NODE_ENV !== 'production') && !store._mutations[type]) {\n console.error((\"[vuex] unknown local mutation type: \" + (args.type) + \", global type: \" + type));\n return\n }\n }\n\n store.commit(type, payload, options);\n }\n };\n\n // getters and state object must be gotten lazily\n // because they will be changed by vm update\n Object.defineProperties(local, {\n getters: {\n get: noNamespace\n ? function () { return store.getters; }\n : function () { return makeLocalGetters(store, namespace); }\n },\n state: {\n get: function () { return getNestedState(store.state, path); }\n }\n });\n\n return local\n}\n\nfunction makeLocalGetters (store, namespace) {\n if (!store._makeLocalGettersCache[namespace]) {\n var gettersProxy = {};\n var splitPos = namespace.length;\n Object.keys(store.getters).forEach(function (type) {\n // skip if the target getter is not match this namespace\n if (type.slice(0, splitPos) !== namespace) { return }\n\n // extract local getter type\n var localType = type.slice(splitPos);\n\n // Add a port to the getters proxy.\n // Define as getter property because\n // we do not want to evaluate the getters in this time.\n Object.defineProperty(gettersProxy, localType, {\n get: function () { return store.getters[type]; },\n enumerable: true\n });\n });\n store._makeLocalGettersCache[namespace] = gettersProxy;\n }\n\n return store._makeLocalGettersCache[namespace]\n}\n\nfunction registerMutation (store, type, handler, local) {\n var entry = store._mutations[type] || (store._mutations[type] = []);\n entry.push(function wrappedMutationHandler (payload) {\n handler.call(store, local.state, payload);\n });\n}\n\nfunction registerAction (store, type, handler, local) {\n var entry = store._actions[type] || (store._actions[type] = []);\n entry.push(function wrappedActionHandler (payload) {\n var res = handler.call(store, {\n dispatch: local.dispatch,\n commit: local.commit,\n getters: local.getters,\n state: local.state,\n rootGetters: store.getters,\n rootState: store.state\n }, payload);\n if (!isPromise(res)) {\n res = Promise.resolve(res);\n }\n if (store._devtoolHook) {\n return res.catch(function (err) {\n store._devtoolHook.emit('vuex:error', err);\n throw err\n })\n } else {\n return res\n }\n });\n}\n\nfunction registerGetter (store, type, rawGetter, local) {\n if (store._wrappedGetters[type]) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] duplicate getter key: \" + type));\n }\n return\n }\n store._wrappedGetters[type] = function wrappedGetter (store) {\n return rawGetter(\n local.state, // local state\n local.getters, // local getters\n store.state, // root state\n store.getters // root getters\n )\n };\n}\n\nfunction enableStrictMode (store) {\n store._vm.$watch(function () { return this._data.$$state }, function () {\n if ((process.env.NODE_ENV !== 'production')) {\n assert(store._committing, \"do not mutate vuex store state outside mutation handlers.\");\n }\n }, { deep: true, sync: true });\n}\n\nfunction getNestedState (state, path) {\n return path.reduce(function (state, key) { return state[key]; }, state)\n}\n\nfunction unifyObjectStyle (type, payload, options) {\n if (isObject(type) && type.type) {\n options = payload;\n payload = type;\n type = type.type;\n }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(typeof type === 'string', (\"expects string as the type, but found \" + (typeof type) + \".\"));\n }\n\n return { type: type, payload: payload, options: options }\n}\n\nfunction install (_Vue) {\n if (Vue && _Vue === Vue) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error(\n '[vuex] already installed. Vue.use(Vuex) should be called only once.'\n );\n }\n return\n }\n Vue = _Vue;\n applyMixin(Vue);\n}\n\n/**\n * Reduce the code which written in Vue.js for getting the state.\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} states # Object's item can be a function which accept state and getters for param, you can do something for state and getters in it.\n * @param {Object}\n */\nvar mapState = normalizeNamespace(function (namespace, states) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(states)) {\n console.error('[vuex] mapState: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(states).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedState () {\n var state = this.$store.state;\n var getters = this.$store.getters;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapState', namespace);\n if (!module) {\n return\n }\n state = module.context.state;\n getters = module.context.getters;\n }\n return typeof val === 'function'\n ? val.call(this, state, getters)\n : state[val]\n };\n // mark vuex getter for devtools\n res[key].vuex = true;\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for committing the mutation\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} mutations # Object's item can be a function which accept `commit` function as the first param, it can accept another params. You can commit mutation and do any other things in this function. specially, You need to pass anthor params from the mapped function.\n * @return {Object}\n */\nvar mapMutations = normalizeNamespace(function (namespace, mutations) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(mutations)) {\n console.error('[vuex] mapMutations: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(mutations).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedMutation () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n // Get the commit method from store\n var commit = this.$store.commit;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapMutations', namespace);\n if (!module) {\n return\n }\n commit = module.context.commit;\n }\n return typeof val === 'function'\n ? val.apply(this, [commit].concat(args))\n : commit.apply(this.$store, [val].concat(args))\n };\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for getting the getters\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} getters\n * @return {Object}\n */\nvar mapGetters = normalizeNamespace(function (namespace, getters) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(getters)) {\n console.error('[vuex] mapGetters: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(getters).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n // The namespace has been mutated by normalizeNamespace\n val = namespace + val;\n res[key] = function mappedGetter () {\n if (namespace && !getModuleByNamespace(this.$store, 'mapGetters', namespace)) {\n return\n }\n if ((process.env.NODE_ENV !== 'production') && !(val in this.$store.getters)) {\n console.error((\"[vuex] unknown getter: \" + val));\n return\n }\n return this.$store.getters[val]\n };\n // mark vuex getter for devtools\n res[key].vuex = true;\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for dispatch the action\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} actions # Object's item can be a function which accept `dispatch` function as the first param, it can accept anthor params. You can dispatch action and do any other things in this function. specially, You need to pass anthor params from the mapped function.\n * @return {Object}\n */\nvar mapActions = normalizeNamespace(function (namespace, actions) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(actions)) {\n console.error('[vuex] mapActions: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(actions).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedAction () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n // get dispatch function from store\n var dispatch = this.$store.dispatch;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapActions', namespace);\n if (!module) {\n return\n }\n dispatch = module.context.dispatch;\n }\n return typeof val === 'function'\n ? val.apply(this, [dispatch].concat(args))\n : dispatch.apply(this.$store, [val].concat(args))\n };\n });\n return res\n});\n\n/**\n * Rebinding namespace param for mapXXX function in special scoped, and return them by simple object\n * @param {String} namespace\n * @return {Object}\n */\nvar createNamespacedHelpers = function (namespace) { return ({\n mapState: mapState.bind(null, namespace),\n mapGetters: mapGetters.bind(null, namespace),\n mapMutations: mapMutations.bind(null, namespace),\n mapActions: mapActions.bind(null, namespace)\n}); };\n\n/**\n * Normalize the map\n * normalizeMap([1, 2, 3]) => [ { key: 1, val: 1 }, { key: 2, val: 2 }, { key: 3, val: 3 } ]\n * normalizeMap({a: 1, b: 2, c: 3}) => [ { key: 'a', val: 1 }, { key: 'b', val: 2 }, { key: 'c', val: 3 } ]\n * @param {Array|Object} map\n * @return {Object}\n */\nfunction normalizeMap (map) {\n if (!isValidMap(map)) {\n return []\n }\n return Array.isArray(map)\n ? map.map(function (key) { return ({ key: key, val: key }); })\n : Object.keys(map).map(function (key) { return ({ key: key, val: map[key] }); })\n}\n\n/**\n * Validate whether given map is valid or not\n * @param {*} map\n * @return {Boolean}\n */\nfunction isValidMap (map) {\n return Array.isArray(map) || isObject(map)\n}\n\n/**\n * Return a function expect two param contains namespace and map. it will normalize the namespace and then the param's function will handle the new namespace and the map.\n * @param {Function} fn\n * @return {Function}\n */\nfunction normalizeNamespace (fn) {\n return function (namespace, map) {\n if (typeof namespace !== 'string') {\n map = namespace;\n namespace = '';\n } else if (namespace.charAt(namespace.length - 1) !== '/') {\n namespace += '/';\n }\n return fn(namespace, map)\n }\n}\n\n/**\n * Search a special module from store by namespace. if module not exist, print error message.\n * @param {Object} store\n * @param {String} helper\n * @param {String} namespace\n * @return {Object}\n */\nfunction getModuleByNamespace (store, helper, namespace) {\n var module = store._modulesNamespaceMap[namespace];\n if ((process.env.NODE_ENV !== 'production') && !module) {\n console.error((\"[vuex] module namespace not found in \" + helper + \"(): \" + namespace));\n }\n return module\n}\n\n// Credits: borrowed code from fcomb/redux-logger\n\nfunction createLogger (ref) {\n if ( ref === void 0 ) ref = {};\n var collapsed = ref.collapsed; if ( collapsed === void 0 ) collapsed = true;\n var filter = ref.filter; if ( filter === void 0 ) filter = function (mutation, stateBefore, stateAfter) { return true; };\n var transformer = ref.transformer; if ( transformer === void 0 ) transformer = function (state) { return state; };\n var mutationTransformer = ref.mutationTransformer; if ( mutationTransformer === void 0 ) mutationTransformer = function (mut) { return mut; };\n var actionFilter = ref.actionFilter; if ( actionFilter === void 0 ) actionFilter = function (action, state) { return true; };\n var actionTransformer = ref.actionTransformer; if ( actionTransformer === void 0 ) actionTransformer = function (act) { return act; };\n var logMutations = ref.logMutations; if ( logMutations === void 0 ) logMutations = true;\n var logActions = ref.logActions; if ( logActions === void 0 ) logActions = true;\n var logger = ref.logger; if ( logger === void 0 ) logger = console;\n\n return function (store) {\n var prevState = deepCopy(store.state);\n\n if (typeof logger === 'undefined') {\n return\n }\n\n if (logMutations) {\n store.subscribe(function (mutation, state) {\n var nextState = deepCopy(state);\n\n if (filter(mutation, prevState, nextState)) {\n var formattedTime = getFormattedTime();\n var formattedMutation = mutationTransformer(mutation);\n var message = \"mutation \" + (mutation.type) + formattedTime;\n\n startMessage(logger, message, collapsed);\n logger.log('%c prev state', 'color: #9E9E9E; font-weight: bold', transformer(prevState));\n logger.log('%c mutation', 'color: #03A9F4; font-weight: bold', formattedMutation);\n logger.log('%c next state', 'color: #4CAF50; font-weight: bold', transformer(nextState));\n endMessage(logger);\n }\n\n prevState = nextState;\n });\n }\n\n if (logActions) {\n store.subscribeAction(function (action, state) {\n if (actionFilter(action, state)) {\n var formattedTime = getFormattedTime();\n var formattedAction = actionTransformer(action);\n var message = \"action \" + (action.type) + formattedTime;\n\n startMessage(logger, message, collapsed);\n logger.log('%c action', 'color: #03A9F4; font-weight: bold', formattedAction);\n endMessage(logger);\n }\n });\n }\n }\n}\n\nfunction startMessage (logger, message, collapsed) {\n var startMessage = collapsed\n ? logger.groupCollapsed\n : logger.group;\n\n // render\n try {\n startMessage.call(logger, message);\n } catch (e) {\n logger.log(message);\n }\n}\n\nfunction endMessage (logger) {\n try {\n logger.groupEnd();\n } catch (e) {\n logger.log('—— log end ——');\n }\n}\n\nfunction getFormattedTime () {\n var time = new Date();\n return (\" @ \" + (pad(time.getHours(), 2)) + \":\" + (pad(time.getMinutes(), 2)) + \":\" + (pad(time.getSeconds(), 2)) + \".\" + (pad(time.getMilliseconds(), 3)))\n}\n\nfunction repeat (str, times) {\n return (new Array(times + 1)).join(str)\n}\n\nfunction pad (num, maxLength) {\n return repeat('0', maxLength - num.toString().length) + num\n}\n\nvar index = {\n Store: Store,\n install: install,\n version: '3.6.2',\n mapState: mapState,\n mapMutations: mapMutations,\n mapGetters: mapGetters,\n mapActions: mapActions,\n createNamespacedHelpers: createNamespacedHelpers,\n createLogger: createLogger\n};\n\nexport default index;\nexport { Store, createLogger, createNamespacedHelpers, install, mapActions, mapGetters, mapMutations, mapState };\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 \"\" + ({\"3239\":\"settings-users\",\"4529\":\"settings-apps-view\"}[chunkId] || chunkId) + \"-\" + chunkId + \".js?v=\" + {\"1140\":\"490e17ed9c8948d5a9e8\",\"2221\":\"428c2ff62c4b8b3c97fc\",\"3079\":\"e25e60ee1af8efb023fb\",\"3239\":\"03614376e6f20a249e06\",\"4529\":\"4e522ae06adb0b86d3f2\",\"5448\":\"71cfe268d6f1213c4735\",\"5862\":\"580b9c2e231a9169a12f\",\"6015\":\"ebcb6885c1fc8c461988\",\"6197\":\"a372e411091ea8313019\",\"6798\":\"1a6cf42d93801a926a3d\",\"7471\":\"b4ac70873a3ab192efd0\",\"7859\":\"740587c0c8c350dad157\",\"7910\":\"de857920f8beb5205bbc\",\"8815\":\"9a5c507c75429c9c04e4\",\"9646\":\"1f59e43b850fe6bc2360\"}[chunkId] + \"\";\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 = 2689;","var scriptUrl;\nif (globalThis.importScripts) scriptUrl = globalThis.location + \"\";\nvar document = globalThis.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(/^blob:/, \"\").replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = (typeof document !== 'undefined' && 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\t2689: 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, moreModules, runtime] = data;\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 = globalThis[\"webpackChunknextcloud_ui_legacy\"] = globalThis[\"webpackChunknextcloud_ui_legacy\"] || [];\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__(35750)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","sanitize","url","replace","requireAdmin","confirmPassword","get","options","axios","post","data","patch","put","delete","params","state","apps","bundles","loadState","categories","updateCount","loading","gettingCategoriesPromise","appApiEnabled","mutations","APPS_API_FAILURE","error","showError","t","response","message","isHTML","logger","initCategories","updateCategories","categoriesPromise","setUpdateCount","addCategory","category","push","appendCategories","categoriesArray","setAllApps","setError","appId","Array","isArray","forEach","_id","find","app","id","clearError","enableApp","groups","active","Vue","setInstallState","canInstall","disableApp","removable","canUnInstall","uninstallApp","needsDownload","installed","updateApp","version","update","resetApps","reset","startLoading","stopLoading","actions","context","commit","previousState","_appId","api","generateUrl","appIds","PwdConfirmationMode","Strict","then","update_required","showInfo","onClick","window","location","reload","close","setTimeout","catch","dispatch","forceEnableApp","finally","getAllApps","getCategories","shouldRefetchCategories","categoriesPromiseResponse","length","getters","isAppApiEnabled","getAppBundles","getUpdateCount","getCategoryById","selectedCategoryId","setAppConfig","key","value","generateOcsUrl","serverData","setServerData","getServerData","naturalCollator","Intl","Collator","getLanguage","getCanonicalLocale","numeric","usage","usersSettings","defaults","name","usercount","disabled","canAdd","canRemove","users","getSubAdminGroups","systemGroups","orderBy","sortGroups","GroupSorting","UserCount","minPasswordLength","usersOffset","usersLimit","disabledUsersOffset","disabledUsersLimit","searchQuery","userCount","showConfig","showStoragePath","user_list_show_storage_path","showUserBackend","user_list_show_user_backend","showFirstLogin","user_list_show_first_login","showLastLogin","user_list_show_last_login","showNewUserForm","user_list_show_new_user_form","showLanguages","user_list_show_languages","appendUsers","usersObj","existingUsers","map","newUsers","Object","values","filter","includes","concat","updateDisabledUsers","setPasswordPolicyMinLength","addGroup","newGroup","group","unshift","renameGroup","gid","displayName","groupIndex","findIndex","groupSearch","updatedGroup","splice","removeGroup","addUserGroup","userid","user","enabled","removeUserGroup","indexOf","addUserSubAdmin","subadmin","removeUserSubAdmin","deleteUser","userIndex","this","actionType","addUserData","ocs","enableDisableUser","updateUserCounts","recentGroup","disabledGroup","userGroup","warn","setUserData","humanValue","parseFileSize","editUserMultiField","index","prevGids","g","resetUsers","resetGroups","setSearchQuery","query","setShowConfig","setGroupSorting","sorting","oldValue","String","getUsers","getGroups","getSearchQuery","subAdminGroups","getSortedGroups","sort","a","b","numA","numB","compare","getGroupSorting","getPasswordPolicyMinLength","getUsersOffset","getUsersLimit","getDisabledUsersOffset","getDisabledUsersLimit","getUserCount","getShowConfig","CancelToken","searchRequestCancelSource","searchUsers","offset","limit","search","getUser","userId","cancel","source","encodeURIComponent","cancelToken","token","usersCount","keys","getRecentUsers","getDisabledUsers","limitParam","getUsersFromList","getUsersFromGroup","groupid","groupId","getCapabilities","password_policy","minLength","wipeUserDevices","Promise","reject","Error","addUser","password","email","quota","language","manager","userStatus","payload","sendWelcomeMail","migrateLocalStorage","preferences","dbKey","entries","localKey","localValue","localStorage","getItem","removeItem","API_FAILURE","meta","store","useStore","Store","modules","settings","oc","strict","getLoggerBuilder","setApp","detectUser","build","_typeof","o","Symbol","iterator","constructor","prototype","toPropertyKey","i","e","toPrimitive","call","r","TypeError","_defineProperty","defineProperty","enumerable","configurable","writable","_defineProperties","isBrowser","document","navigator","timeoutDuration","longerTimeoutBrowsers","userAgent","debounce","fn","called","resolve","scheduled","isFunction","functionToCheck","toString","getStyleComputedProperty","element","property","nodeType","css","ownerDocument","defaultView","getComputedStyle","getParentNode","nodeName","parentNode","host","getScrollParent","body","_getStyleComputedProp","overflow","overflowX","overflowY","test","getReferenceNode","reference","referenceNode","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","getOffsetParent","documentElement","noOffsetParent","offsetParent","nextElementSibling","getRoot","node","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","start","end","range","createRange","setStart","setEnd","commonAncestorContainer","contains","firstElementChild","element1root","getScroll","upperSide","arguments","undefined","html","scrollingElement","getBordersSize","styles","axis","sideA","sideB","parseFloat","getSize","computedStyle","Math","max","parseInt","getWindowSizes","height","width","createClass","defineProperties","target","props","descriptor","Constructor","protoProps","staticProps","obj","_extends","assign","hasOwnProperty","getClientRect","offsets","right","left","bottom","top","getBoundingClientRect","rect","scrollTop","scrollLeft","result","sizes","clientWidth","clientHeight","horizScrollbar","offsetWidth","vertScrollbar","offsetHeight","getOffsetRectRelativeToArbitraryNode","children","parent","fixedPosition","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","subtract","modifier","includeScroll","isFixed","getFixedPositionOffsetParent","parentElement","el","getBoundaries","popper","padding","boundariesElement","boundaries","excludeScroll","relativeOffset","innerWidth","innerHeight","getViewportOffsetRectRelativeToArtbitraryNode","boundariesNode","_getWindowSizes","isPaddingNumber","computeAutoPlacement","placement","refRect","rects","sortedAreas","area","_ref","filteredAreas","_ref2","computedPlacement","variation","split","getReferenceOffsets","getOuterSizes","x","marginBottom","y","marginRight","getOppositePlacement","hash","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","arr","check","runModifiers","modifiers","ends","slice","prop","cur","match","console","isDestroyed","instance","arrowStyles","attributes","flipped","positionFixed","flip","originalPlacement","position","isCreated","onUpdate","onCreate","isModifierEnabled","modifierName","some","getSupportedPropertyName","prefixes","upperProp","charAt","toUpperCase","prefix","toCheck","style","destroy","removeAttribute","willChange","disableEventListeners","removeOnDestroy","removeChild","getWindow","attachToScrollParents","event","callback","scrollParents","isBody","addEventListener","passive","setupEventListeners","updateBound","scrollElement","eventsEnabled","enableEventListeners","scheduleUpdate","cancelAnimationFrame","removeEventListener","removeEventListeners","isNumeric","n","isNaN","isFinite","setStyles","unit","isFirefox","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","requested","placements","validPlacements","clockwise","counter","reverse","shift","basePlacement","shiftvariation","_data$offsets","isVertical","side","shiftOffsets","useHeight","fragments","frag","trim","divider","splitRegex","ops","op","mergeWithPrevious","reduce","str","toValue","index2","parseOffset","preventOverflow","transformProp","popperStyles","transform","priority","primary","escapeWithReference","secondary","min","keepTogether","floor","opSide","arrow","_data$offsets$arrow","arrowElement","querySelector","len","sideCapitalized","toLowerCase","altSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","round","placementOpposite","flipOrder","behavior","step","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","getOppositeVariation","inner","subtractLength","hide","bound","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","shouldRound","noRound","v","referenceWidth","popperWidth","isVariation","horizontalToInteger","verticalToInteger","getRoundedOffsets","devicePixelRatio","prefixedProperty","invertTop","invertLeft","applyStyle","setAttribute","onLoad","modifierOptions","Defaults","Popper","_this","classCallCheck","requestAnimationFrame","bind","jquery","Utils","PopperUtils","initCompat","init","ua","msie","substring","rv","edge","getInternetExplorerVersion","normalizeComponent","template","script","scopeId","isFunctionalTemplate","moduleIdentifier","shadowMode","createInjector","createInjectorSSR","createInjectorShadow","hook","render","staticRenderFns","_compiled","functional","_scopeId","$vnode","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","originalRender","h","existing","beforeCreate","__vue_script__","emitOnMount","type","Boolean","default","ignoreWidth","ignoreHeight","mounted","$nextTick","_w","$el","_h","emitSize","object","createElement","_resizeObject","onload","addResizeHandlers","appendChild","beforeDestroy","removeResizeHandlers","methods","compareAndNotify","$emit","contentDocument","__vue_render__","$createElement","_self","_c","staticClass","attrs","tabindex","_withStripped","__vue_component__","install","component","GlobalVue","use","SVGAnimatedString","convertToArray","addClasses","classes","classList","newClasses","className","baseVal","newClass","SVGElement","join","removeClasses","supportsPassive","opts","ownKeys$2","enumerableOnly","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","apply","_objectSpread$2","getOwnPropertyDescriptors","DEFAULT_OPTIONS","container","delay","title","trigger","openTooltips","Tooltip","_reference","_options","_classCallCheck","evt","relatedreference","toElement","relatedTarget","_tooltipNode","evt2","relatedreference2","_scheduleHide","show","_isOpen","_init","_show","_hide","_dispose","_classes","content","_setContent","classesUpdated","directive","defaultClass","isEqual","setClasses","getOptions","needPopperUpdate","needRestart","isOpen","dispose","popperInstance","events","_isDisposed","_enableDocumentTouch","_setEventListeners","$_originalTitle","getAttribute","_this2","tooltipGenerator","innerHTML","tooltipNode","childNodes","ariaId","random","substr","autoHide","_this3","asyncContent","_applyContent","_this4","allowHtml","rootNode","titleNode","innerSelector","firstChild","loadingClass","loadingContent","asyncResult","innerText","clearTimeout","_disposeTimer","updateClasses","_ensureShown","_this5","display","_create","_findContainer","_append","popperOptions","arrowSelector","_this6","_noLongerOpen","disposeTime","disposeTimeout","_removeTooltipNode","_this7","_events","func","_this8","directEvents","oppositeEvents","hideOnTargetClick","usedByTooltip","_scheduleShow","_this9","computedDelay","_scheduleTimer","_this10","_setTooltipNodeEvent","ownKeys$1","_objectSpread$1","_onDocumentTouch","capture","positions","defaultOptions","defaultPlacement","defaultTargetClass","defaultHtml","defaultTemplate","defaultArrowSelector","defaultInnerSelector","defaultDelay","defaultTrigger","defaultOffset","defaultContainer","defaultBoundariesElement","defaultPopperOptions","defaultLoadingClass","defaultLoadingContent","defaultHideOnTargetClick","popover","defaultBaseClass","defaultWrapperClass","defaultInnerClass","defaultArrowClass","defaultOpenClass","defaultAutoHide","defaultHandleResize","typeofOffset","getPlacement","pos","getContent","destroyTooltip","_tooltip","_tooltipOldShow","_tooltipTargetClasses","tooltip","setContent","setOptions","_vueEl","targetClasses","createTooltip","unbind","addListeners","onTouchStart","removeListeners","onTouchEnd","onTouchCancel","currentTarget","closePopover","$_vclosepopover_touch","closeAllPopover","$_closePopoverModifiers","all","changedTouches","touch","$_vclosepopover_touchPoint","firstTouch","abs","screenY","screenX","vclosepopover","ownKeys","_objectSpread","getDefault","isIOS","MSStream","openPopovers","Element","components","ResizeObserver","open","Number","popoverClass","popoverBaseClass","popoverInnerClass","popoverWrapperClass","popoverArrowClass","handleResize","openGroup","openClass","computed","cssClass","popoverId","watch","val","oldVal","popoverNode","$refs","$_findContainer","$_removeEventListeners","$_addEventListeners","$_updatePopper","handler","deep","created","$_isDisposed","$_mounted","$_events","$_preventOpen","$_init","deactivated","skipDelay","_ref2$force","force","$_scheduleShow","$_beingShowed","_ref3","$_scheduleHide","$_show","$_disposeTimer","hidden","$_getOffset","$_hide","$_scheduleTimer","$_setTooltipNodeEvent","event2","_ref4","cb","$_restartPopper","$_handleGlobalClose","$_handleResize","handleGlobalClose","_loop","_vm","class","ref","staticStyle","_t","_v","visibility","on","keyup","$event","_k","keyCode","notify","_e","insertAt","head","getElementsByTagName","insertBefore","styleSheet","cssText","createTextNode","styleInject","plugin","finalOptions","merge","global","_defineComponent","__name","setup","__props","__sfc","NcContent","_setupProxy","path","UserManagement","navigation","UserManagementNavigation","redirect","AppStore","AppStoreNavigation","sidebar","AppStoreSidebar","Router","mode","base","linkActiveClass","routes","addPasswordConfirmationInterceptors","__webpack_nonce__","getCSPNonce","PiniaVuePlugin","VTooltipPlugin","Vuex","sync","router","pinia","createPinia","SettingsApp","baseAssignValue","eq","module","exports","Stack","assignMergeValue","baseFor","baseMergeDeep","isObject","keysIn","safeGet","baseMerge","srcIndex","customizer","stack","srcValue","newValue","cloneBuffer","cloneTypedArray","copyArray","initCloneObject","isArguments","isArrayLikeObject","isBuffer","isPlainObject","isTypedArray","toPlainObject","mergeFunc","objValue","stacked","isCommon","isArr","isBuff","isTyped","set","baseRest","isIterateeCall","assigner","sources","guard","isArrayLike","isObjectLike","baseIsEqual","other","createAssigner","copyObject","cloneRoute","to","from","clone","fullPath","freeze","moduleName","registerModule","namespaced","currentRoute","transition","currentPath","isTimeTraveling","storeUnwatch","route","afterEachUnHook","afterEach","unregisterModule","devtoolHook","__VUE_DEVTOOLS_GLOBAL_HOOK__","deepCopy","cache","f","hit","c","original","copy","forEachValue","Module","rawModule","runtime","_children","create","_rawModule","rawState","prototypeAccessors","addChild","getChild","hasChild","forEachChild","forEachGetter","forEachAction","forEachMutation","ModuleCollection","rawRootModule","register","targetModule","newModule","root","getNamespace","namespace","this$1","rawChildModule","unregister","child","isRegistered","plugins","_committing","_actions","_actionSubscribers","_mutations","_wrappedGetters","_modules","_modulesNamespaceMap","_subscribers","_watcherVM","_makeLocalGettersCache","installModule","resetStoreVM","devtools","config","_devtoolHook","emit","targetState","replaceState","subscribe","mutation","prepend","subscribeAction","action","devtoolPlugin","prototypeAccessors$1","genericSubscribe","subs","resetStore","hot","oldVm","wrappedGetters","arg","partial","silent","$$state","$watch","_data","enableStrictMode","_withCommit","nextTick","$destroy","rootState","isRoot","parentState","getNestedState","local","noNamespace","_type","_payload","args","unifyObjectStyle","gettersProxy","splitPos","localType","makeLocalGetters","makeLocalContext","registerMutation","res","rootGetters","err","registerAction","getter","rawGetter","registerGetter","_Vue","mixin","vuexInit","$store","applyMixin","entry","sub","before","after","preserveState","hasModule","hotUpdate","newOptions","committing","mapState","normalizeNamespace","states","normalizeMap","getModuleByNamespace","vuex","mapMutations","mapGetters","mapActions","isValidMap","helper","startMessage","collapsed","groupCollapsed","log","endMessage","groupEnd","getFormattedTime","time","Date","pad","getHours","getMinutes","getSeconds","getMilliseconds","num","maxLength","times","createNamespacedHelpers","createLogger","stateBefore","stateAfter","transformer","mutationTransformer","mut","actionFilter","actionTransformer","act","logMutations","logActions","prevState","nextState","formattedTime","formattedMutation","formattedAction","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","m","O","chunkIds","notFulfilled","Infinity","fulfilled","j","every","__esModule","d","definition","chunkId","promises","u","l","done","needAttach","scripts","s","charset","nc","src","onScriptComplete","prev","onerror","timeout","doneFns","toStringTag","nmd","paths","scriptUrl","globalThis","importScripts","currentScript","tagName","p","baseURI","self","href","installedChunks","installedChunkData","promise","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"settings-vue-settings-apps-users-management.js?v=5bee8087f22ff47b1a76","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/apps/settings/src/store/api.js","webpack:///nextcloud/apps/settings/src/store/apps.js","webpack:///nextcloud/apps/settings/src/store/oc.js","webpack:///nextcloud/apps/settings/src/store/users-settings.js","webpack:///nextcloud/apps/settings/src/utils/sorting.ts","webpack:///nextcloud/apps/settings/src/store/users.js","webpack:///nextcloud/apps/settings/src/store/index.js","webpack:///nextcloud/apps/settings/src/constants/GroupManagement.ts","webpack:///nextcloud/apps/settings/src/logger.ts","webpack:///nextcloud/node_modules/@babel/runtime/helpers/esm/typeof.js","webpack:///nextcloud/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack:///nextcloud/node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack:///nextcloud/node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack:///nextcloud/node_modules/@babel/runtime/helpers/esm/createClass.js","webpack:///nextcloud/node_modules/popper.js/dist/esm/popper.js","webpack:///nextcloud/node_modules/vue-resize/dist/vue-resize.esm.js","webpack:///nextcloud/node_modules/v-tooltip/dist/v-tooltip.esm.js","webpack:///nextcloud/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack:///nextcloud/apps/settings/src/views/SettingsApp.vue","webpack:///nextcloud/apps/settings/src/views/SettingsApp.vue?vue&type=script&setup=true&lang=ts","webpack://nextcloud/./apps/settings/src/views/SettingsApp.vue?3a67","webpack:///nextcloud/apps/settings/src/router/routes.ts","webpack:///nextcloud/apps/settings/src/router/index.ts","webpack:///nextcloud/apps/settings/src/main-apps-users-management.ts","webpack:///nextcloud/node_modules/lodash/_assignMergeValue.js","webpack:///nextcloud/node_modules/lodash/_baseMerge.js","webpack:///nextcloud/node_modules/lodash/_baseMergeDeep.js","webpack:///nextcloud/node_modules/lodash/_createAssigner.js","webpack:///nextcloud/node_modules/lodash/_safeGet.js","webpack:///nextcloud/node_modules/lodash/isArrayLikeObject.js","webpack:///nextcloud/node_modules/lodash/isEqual.js","webpack:///nextcloud/node_modules/lodash/merge.js","webpack:///nextcloud/node_modules/lodash/toPlainObject.js","webpack:///nextcloud/node_modules/vuex-router-sync/index.js","webpack:///nextcloud/node_modules/vuex/dist/vuex.esm.js","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/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, fn, priority] = deferred[i];\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-ui-legacy:\";\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\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: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport axios from '@nextcloud/axios'\nimport { confirmPassword } from '@nextcloud/password-confirmation'\n\n/**\n * @param {string} url - The url to sanitize\n */\nfunction sanitize(url) {\n\treturn url.replace(/\\/$/, '') // Remove last url slash\n}\n\nexport default {\n\n\t/**\n\t * This Promise is used to chain a request that require an admin password confirmation\n\t * Since chaining Promise have a very precise behavior concerning catch and then,\n\t * you'll need to be careful when using it.\n\t * e.g\n\t * // store\n\t * action(context) {\n\t * return api.requireAdmin().then((response) => {\n\t * return api.get('url')\n\t * .then((response) => {API success})\n\t * .catch((error) => {API failure});\n\t * }).catch((error) => {requireAdmin failure});\n\t * }\n\t * // vue\n\t * this.$store.dispatch('action').then(() => {always executed})\n\t *\n\t * Since Promise.then().catch().then() will always execute the last then\n\t * this.$store.dispatch('action').then will always be executed\n\t *\n\t * If you want requireAdmin failure to also catch the API request failure\n\t * you will need to throw a new error in the api.get.catch()\n\t *\n\t * e.g\n\t * api.requireAdmin().then((response) => {\n\t * api.get('url')\n\t * .then((response) => {API success})\n\t * .catch((error) => {throw error;});\n\t * }).catch((error) => {requireAdmin OR API failure});\n\t *\n\t * @return {Promise}\n\t */\n\trequireAdmin() {\n\t\treturn confirmPassword()\n\t},\n\tget(url, options) {\n\t\treturn axios.get(sanitize(url), options)\n\t},\n\tpost(url, data, options) {\n\t\treturn axios.post(sanitize(url), data, options)\n\t},\n\tpatch(url, data) {\n\t\treturn axios.patch(sanitize(url), data)\n\t},\n\tput(url, data) {\n\t\treturn axios.put(sanitize(url), data)\n\t},\n\tdelete(url, data) {\n\t\treturn axios.delete(sanitize(url), { params: data })\n\t},\n}\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport axios from '@nextcloud/axios'\nimport { showError, showInfo } from '@nextcloud/dialogs'\nimport { loadState } from '@nextcloud/initial-state'\nimport { PwdConfirmationMode } from '@nextcloud/password-confirmation'\nimport { generateUrl } from '@nextcloud/router'\nimport Vue from 'vue'\nimport logger from '../logger.ts'\nimport api from './api.js'\n\nconst state = {\n\tapps: [],\n\tbundles: loadState('settings', 'appstoreBundles', []),\n\tcategories: [],\n\tupdateCount: loadState('settings', 'appstoreUpdateCount', 0),\n\tloading: {},\n\tgettingCategoriesPromise: null,\n\tappApiEnabled: loadState('settings', 'appApiEnabled', false),\n}\n\nconst mutations = {\n\n\tAPPS_API_FAILURE(state, error) {\n\t\tshowError(t('settings', 'An error occurred during the request. Unable to proceed.') + '
' + error.error.response.data.data.message, { isHTML: true })\n\t\tlogger.error('An error occurred during the request. Unable to proceed.', { state, error })\n\t},\n\n\tinitCategories(state, { categories, updateCount }) {\n\t\tstate.categories = categories\n\t\tstate.updateCount = updateCount\n\t},\n\n\tupdateCategories(state, categoriesPromise) {\n\t\tstate.gettingCategoriesPromise = categoriesPromise\n\t},\n\n\tsetUpdateCount(state, updateCount) {\n\t\tstate.updateCount = updateCount\n\t},\n\n\taddCategory(state, category) {\n\t\tstate.categories.push(category)\n\t},\n\n\tappendCategories(state, categoriesArray) {\n\t\t// convert obj to array\n\t\tstate.categories = categoriesArray\n\t},\n\n\tsetAllApps(state, apps) {\n\t\tstate.apps = apps\n\t},\n\n\tsetError(state, { appId, error }) {\n\t\tif (!Array.isArray(appId)) {\n\t\t\tappId = [appId]\n\t\t}\n\t\tappId.forEach((_id) => {\n\t\t\tconst app = state.apps.find((app) => app.id === _id)\n\t\t\tapp.error = error\n\t\t})\n\t},\n\n\tclearError(state, { appId }) {\n\t\tconst app = state.apps.find((app) => app.id === appId)\n\t\tapp.error = null\n\t},\n\n\tenableApp(state, { appId, groups }) {\n\t\tconst app = state.apps.find((app) => app.id === appId)\n\t\tapp.active = true\n\t\tVue.set(app, 'groups', [...groups])\n\t\tif (app.id === 'app_api') {\n\t\t\tstate.appApiEnabled = true\n\t\t}\n\t},\n\n\tsetInstallState(state, { appId, canInstall }) {\n\t\tconst app = state.apps.find((app) => app.id === appId)\n\t\tif (app) {\n\t\t\tapp.canInstall = canInstall === true\n\t\t}\n\t},\n\n\tdisableApp(state, appId) {\n\t\tconst app = state.apps.find((app) => app.id === appId)\n\t\tapp.active = false\n\t\tapp.groups = []\n\t\tif (app.removable) {\n\t\t\tapp.canUnInstall = true\n\t\t}\n\t\tif (app.id === 'app_api') {\n\t\t\tstate.appApiEnabled = false\n\t\t}\n\t},\n\n\tuninstallApp(state, appId) {\n\t\tstate.apps.find((app) => app.id === appId).active = false\n\t\tstate.apps.find((app) => app.id === appId).groups = []\n\t\tstate.apps.find((app) => app.id === appId).needsDownload = true\n\t\tstate.apps.find((app) => app.id === appId).installed = false\n\t\tstate.apps.find((app) => app.id === appId).canUnInstall = false\n\t\tstate.apps.find((app) => app.id === appId).canInstall = true\n\t\tif (appId === 'app_api') {\n\t\t\tstate.appApiEnabled = false\n\t\t}\n\t},\n\n\tupdateApp(state, appId) {\n\t\tconst app = state.apps.find((app) => app.id === appId)\n\t\tconst version = app.update\n\t\tapp.update = null\n\t\tapp.version = version\n\t\tstate.updateCount--\n\t},\n\n\tresetApps(state) {\n\t\tstate.apps = []\n\t},\n\treset(state) {\n\t\tstate.apps = []\n\t\tstate.categories = []\n\t\tstate.updateCount = 0\n\t},\n\tstartLoading(state, id) {\n\t\tif (Array.isArray(id)) {\n\t\t\tid.forEach((_id) => {\n\t\t\t\tVue.set(state.loading, _id, true)\n\t\t\t})\n\t\t} else {\n\t\t\tVue.set(state.loading, id, true)\n\t\t}\n\t},\n\tstopLoading(state, id) {\n\t\tif (Array.isArray(id)) {\n\t\t\tid.forEach((_id) => {\n\t\t\t\tVue.set(state.loading, _id, false)\n\t\t\t})\n\t\t} else {\n\t\t\tVue.set(state.loading, id, false)\n\t\t}\n\t},\n}\n\nconst getters = {\n\tisAppApiEnabled(state) {\n\t\treturn state.appApiEnabled\n\t},\n\tloading(state) {\n\t\treturn function(id) {\n\t\t\treturn state.loading[id]\n\t\t}\n\t},\n\tgetCategories(state) {\n\t\treturn state.categories\n\t},\n\tgetAllApps(state) {\n\t\treturn state.apps\n\t},\n\tgetAppBundles(state) {\n\t\treturn state.bundles\n\t},\n\tgetUpdateCount(state) {\n\t\treturn state.updateCount\n\t},\n\tgetCategoryById: (state) => (selectedCategoryId) => {\n\t\treturn state.categories.find((category) => category.id === selectedCategoryId)\n\t},\n}\n\nconst actions = {\n\n\tenableApp(context, { appId, groups }) {\n\t\tlet apps\n\t\tif (Array.isArray(appId)) {\n\t\t\tapps = appId\n\t\t} else {\n\t\t\tapps = [appId]\n\t\t}\n\t\tcontext.commit('startLoading', apps)\n\t\tcontext.commit('startLoading', 'install')\n\n\t\tconst previousState = {}\n\t\tapps.forEach((_appId) => {\n\t\t\tconst app = context.state.apps.find((app) => app.id === _appId)\n\t\t\tif (app) {\n\t\t\t\tpreviousState[_appId] = {\n\t\t\t\t\tactive: app.active,\n\t\t\t\t\tgroups: [...(app.groups || [])],\n\t\t\t\t}\n\t\t\t\tcontext.commit('enableApp', { appId: _appId, groups })\n\t\t\t}\n\t\t})\n\n\t\treturn api.post(generateUrl('settings/apps/enable'), { appIds: apps, groups }, { confirmPassword: PwdConfirmationMode.Strict })\n\t\t\t.then((response) => {\n\t\t\t\tcontext.commit('stopLoading', apps)\n\t\t\t\tcontext.commit('stopLoading', 'install')\n\n\t\t\t\t// check for server health\n\t\t\t\treturn axios.get(generateUrl('apps/files/'))\n\t\t\t\t\t.then(() => {\n\t\t\t\t\t\tif (response.data.update_required) {\n\t\t\t\t\t\t\tshowInfo(\n\t\t\t\t\t\t\t\tt(\n\t\t\t\t\t\t\t\t\t'settings',\n\t\t\t\t\t\t\t\t\t'The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds.',\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tonClick: () => window.location.reload(),\n\t\t\t\t\t\t\t\t\tclose: false,\n\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\t\t\tlocation.reload()\n\t\t\t\t\t\t\t}, 5000)\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.catch(() => {\n\t\t\t\t\t\tif (!Array.isArray(appId)) {\n\t\t\t\t\t\t\tshowError(t('settings', 'Error: This app cannot be enabled because it makes the server unstable'))\n\t\t\t\t\t\t\tcontext.commit('setError', {\n\t\t\t\t\t\t\t\tappId: apps,\n\t\t\t\t\t\t\t\terror: t('settings', 'Error: This app cannot be enabled because it makes the server unstable'),\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\tcontext.dispatch('disableApp', { appId })\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t})\n\t\t\t.catch((error) => {\n\t\t\t\tcontext.commit('stopLoading', apps)\n\t\t\t\tcontext.commit('stopLoading', 'install')\n\n\t\t\t\tapps.forEach((_appId) => {\n\t\t\t\t\tif (previousState[_appId]) {\n\t\t\t\t\t\tcontext.commit('enableApp', {\n\t\t\t\t\t\t\tappId: _appId,\n\t\t\t\t\t\t\tgroups: previousState[_appId].groups,\n\t\t\t\t\t\t})\n\t\t\t\t\t\tif (!previousState[_appId].active) {\n\t\t\t\t\t\t\tcontext.commit('disableApp', _appId)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\n\t\t\t\tconst message = error.response?.data?.data?.message\n\t\t\t\tif (message) {\n\t\t\t\t\tcontext.commit('setError', {\n\t\t\t\t\t\tappId: apps,\n\t\t\t\t\t\terror: message,\n\t\t\t\t\t})\n\t\t\t\t\tcontext.commit('APPS_API_FAILURE', { appId, error })\n\t\t\t\t}\n\t\t\t})\n\t},\n\tforceEnableApp(context, { appId }) {\n\t\tlet apps\n\t\tif (Array.isArray(appId)) {\n\t\t\tapps = appId\n\t\t} else {\n\t\t\tapps = [appId]\n\t\t}\n\t\treturn api.requireAdmin().then(() => {\n\t\t\tcontext.commit('startLoading', apps)\n\t\t\tcontext.commit('startLoading', 'install')\n\t\t\treturn api.post(generateUrl('settings/apps/force'), { appId })\n\t\t\t\t.then(() => {\n\t\t\t\t\tcontext.commit('setInstallState', { appId, canInstall: true })\n\t\t\t\t})\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tcontext.commit('stopLoading', apps)\n\t\t\t\t\tcontext.commit('stopLoading', 'install')\n\t\t\t\t\tcontext.commit('setError', {\n\t\t\t\t\t\tappId: apps,\n\t\t\t\t\t\terror: error.response.data.data.message,\n\t\t\t\t\t})\n\t\t\t\t\tcontext.commit('APPS_API_FAILURE', { appId, error })\n\t\t\t\t})\n\t\t\t\t.finally(() => {\n\t\t\t\t\tcontext.commit('stopLoading', apps)\n\t\t\t\t\tcontext.commit('stopLoading', 'install')\n\t\t\t\t})\n\t\t}).catch((error) => context.commit('API_FAILURE', { appId, error }))\n\t},\n\tdisableApp(context, { appId }) {\n\t\tlet apps\n\t\tif (Array.isArray(appId)) {\n\t\t\tapps = appId\n\t\t} else {\n\t\t\tapps = [appId]\n\t\t}\n\t\treturn api.requireAdmin().then(() => {\n\t\t\tcontext.commit('startLoading', apps)\n\t\t\treturn api.post(generateUrl('settings/apps/disable'), { appIds: apps })\n\t\t\t\t.then(() => {\n\t\t\t\t\tcontext.commit('stopLoading', apps)\n\t\t\t\t\tapps.forEach((_appId) => {\n\t\t\t\t\t\tcontext.commit('disableApp', _appId)\n\t\t\t\t\t})\n\t\t\t\t\treturn true\n\t\t\t\t})\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tcontext.commit('stopLoading', apps)\n\t\t\t\t\tcontext.commit('APPS_API_FAILURE', { appId, error })\n\t\t\t\t})\n\t\t}).catch((error) => context.commit('API_FAILURE', { appId, error }))\n\t},\n\tuninstallApp(context, { appId }) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\tcontext.commit('startLoading', appId)\n\t\t\treturn api.get(generateUrl(`settings/apps/uninstall/${appId}`))\n\t\t\t\t.then(() => {\n\t\t\t\t\tcontext.commit('stopLoading', appId)\n\t\t\t\t\tcontext.commit('uninstallApp', appId)\n\t\t\t\t\treturn true\n\t\t\t\t})\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tcontext.commit('stopLoading', appId)\n\t\t\t\t\tcontext.commit('APPS_API_FAILURE', { appId, error })\n\t\t\t\t})\n\t\t}).catch((error) => context.commit('API_FAILURE', { appId, error }))\n\t},\n\n\tupdateApp(context, { appId }) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\tcontext.commit('startLoading', appId)\n\t\t\tcontext.commit('startLoading', 'install')\n\t\t\treturn api.get(generateUrl(`settings/apps/update/${appId}`))\n\t\t\t\t.then(() => {\n\t\t\t\t\tcontext.commit('stopLoading', 'install')\n\t\t\t\t\tcontext.commit('stopLoading', appId)\n\t\t\t\t\tcontext.commit('updateApp', appId)\n\t\t\t\t\treturn true\n\t\t\t\t})\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tcontext.commit('stopLoading', appId)\n\t\t\t\t\tcontext.commit('stopLoading', 'install')\n\t\t\t\t\tcontext.commit('APPS_API_FAILURE', { appId, error })\n\t\t\t\t})\n\t\t}).catch((error) => context.commit('API_FAILURE', { appId, error }))\n\t},\n\n\tgetAllApps(context) {\n\t\tcontext.commit('startLoading', 'list')\n\t\treturn api.get(generateUrl('settings/apps/list'))\n\t\t\t.then((response) => {\n\t\t\t\tcontext.commit('setAllApps', response.data.apps)\n\t\t\t\tcontext.commit('stopLoading', 'list')\n\t\t\t\treturn true\n\t\t\t})\n\t\t\t.catch((error) => context.commit('API_FAILURE', error))\n\t},\n\n\tasync getCategories(context, { shouldRefetchCategories = false } = {}) {\n\t\tif (shouldRefetchCategories || !context.state.gettingCategoriesPromise) {\n\t\t\tcontext.commit('startLoading', 'categories')\n\t\t\ttry {\n\t\t\t\tconst categoriesPromise = api.get(generateUrl('settings/apps/categories'))\n\t\t\t\tcontext.commit('updateCategories', categoriesPromise)\n\t\t\t\tconst categoriesPromiseResponse = await categoriesPromise\n\t\t\t\tif (categoriesPromiseResponse.data.length > 0) {\n\t\t\t\t\tcontext.commit('appendCategories', categoriesPromiseResponse.data)\n\t\t\t\t\tcontext.commit('stopLoading', 'categories')\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t\tcontext.commit('stopLoading', 'categories')\n\t\t\t\treturn false\n\t\t\t} catch (error) {\n\t\t\t\tcontext.commit('API_FAILURE', error)\n\t\t\t}\n\t\t}\n\t\treturn context.state.gettingCategoriesPromise\n\t},\n\n}\n\nexport default { state, mutations, getters, actions }\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { generateOcsUrl } from '@nextcloud/router'\nimport api from './api.js'\n\nconst state = {}\nconst mutations = {}\nconst getters = {}\nconst actions = {\n\t/**\n\t * Set application config in database\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.app Application name\n\t * @param {boolean} options.key Config key\n\t * @param {boolean} options.value Value to set\n\t * @return {Promise}\n\t */\n\tsetAppConfig(context, { app, key, value }) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.post(generateOcsUrl('apps/provisioning_api/api/v1/config/apps/{app}/{key}', { app, key }), { value })\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { app, key, value, error }))\n\t},\n}\n\nexport default { state, mutations, getters, actions }\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { loadState } from '@nextcloud/initial-state'\n\nconst state = {\n\tserverData: loadState('settings', 'usersSettings', {}),\n}\nconst mutations = {\n\tsetServerData(state, data) {\n\t\tstate.serverData = data\n\t},\n}\nconst getters = {\n\tgetServerData(state) {\n\t\treturn state.serverData\n\t},\n}\nconst actions = {}\n\nexport default { state, mutations, getters, actions }\n","/**\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getCanonicalLocale, getLanguage } from '@nextcloud/l10n';\nexport const naturalCollator = Intl.Collator([getLanguage(), getCanonicalLocale()], {\n numeric: true,\n usage: 'sort',\n});\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport axios from '@nextcloud/axios'\nimport { getCapabilities } from '@nextcloud/capabilities'\nimport { showError } from '@nextcloud/dialogs'\nimport { parseFileSize } from '@nextcloud/files'\nimport { loadState } from '@nextcloud/initial-state'\nimport { generateOcsUrl, generateUrl } from '@nextcloud/router'\nimport { GroupSorting } from '../constants/GroupManagement.ts'\nimport logger from '../logger.ts'\nimport { naturalCollator } from '../utils/sorting.ts'\nimport api from './api.js'\n\nconst usersSettings = loadState('settings', 'usersSettings', {})\n\nconst defaults = {\n\t/**\n\t * @type {import('../views/user-types').IGroup}\n\t */\n\tgroup: {\n\t\tid: '',\n\t\tname: '',\n\t\tusercount: 0,\n\t\tdisabled: 0,\n\t\tcanAdd: true,\n\t\tcanRemove: true,\n\t},\n}\n\nconst state = {\n\tusers: [],\n\tgroups: [\n\t\t...(usersSettings.getSubAdminGroups ?? []),\n\t\t...(usersSettings.systemGroups ?? []),\n\t],\n\torderBy: usersSettings.sortGroups ?? GroupSorting.UserCount,\n\tminPasswordLength: 0,\n\tusersOffset: 0,\n\tusersLimit: 25,\n\tdisabledUsersOffset: 0,\n\tdisabledUsersLimit: 25,\n\tsearchQuery: '',\n\tuserCount: usersSettings.userCount ?? 0,\n\tshowConfig: {\n\t\tshowStoragePath: usersSettings.showConfig?.user_list_show_storage_path,\n\t\tshowUserBackend: usersSettings.showConfig?.user_list_show_user_backend,\n\t\tshowFirstLogin: usersSettings.showConfig?.user_list_show_first_login,\n\t\tshowLastLogin: usersSettings.showConfig?.user_list_show_last_login,\n\t\tshowNewUserForm: usersSettings.showConfig?.user_list_show_new_user_form,\n\t\tshowLanguages: usersSettings.showConfig?.user_list_show_languages,\n\t},\n}\n\nconst mutations = {\n\tappendUsers(state, usersObj) {\n\t\tconst existingUsers = state.users.map(({ id }) => id)\n\t\tconst newUsers = Object.values(usersObj)\n\t\t\t.filter(({ id }) => !existingUsers.includes(id))\n\n\t\tconst users = state.users.concat(newUsers)\n\t\tstate.usersOffset += state.usersLimit\n\t\tstate.users = users\n\t},\n\tupdateDisabledUsers(state) {\n\t\tstate.disabledUsersOffset += state.disabledUsersLimit\n\t},\n\tsetPasswordPolicyMinLength(state, length) {\n\t\tstate.minPasswordLength = length !== '' ? length : 0\n\t},\n\t/**\n\t * @param {object} state store state\n\t * @param {import('../views/user-types.js').IGroup} newGroup new group\n\t */\n\taddGroup(state, newGroup) {\n\t\ttry {\n\t\t\tif (typeof state.groups.find((group) => group.id === newGroup.id) !== 'undefined') {\n\t\t\t\treturn\n\t\t\t}\n\t\t\t// extend group to default values\n\t\t\tconst group = { ...defaults.group, ...newGroup }\n\t\t\tstate.groups.unshift(group)\n\t\t} catch (error) {\n\t\t\tlogger.error('Cannt create group', { error })\n\t\t}\n\t},\n\trenameGroup(state, { gid, displayName }) {\n\t\tconst groupIndex = state.groups.findIndex((groupSearch) => groupSearch.id === gid)\n\t\tif (groupIndex >= 0) {\n\t\t\tconst updatedGroup = state.groups[groupIndex]\n\t\t\tupdatedGroup.name = displayName\n\t\t\tstate.groups.splice(groupIndex, 1, updatedGroup)\n\t\t}\n\t},\n\tremoveGroup(state, gid) {\n\t\tconst groupIndex = state.groups.findIndex((groupSearch) => groupSearch.id === gid)\n\t\tif (groupIndex >= 0) {\n\t\t\tstate.groups.splice(groupIndex, 1)\n\t\t}\n\t},\n\taddUserGroup(state, { userid, gid }) {\n\t\tconst group = state.groups.find((groupSearch) => groupSearch.id === gid)\n\t\tconst user = state.users.find((user) => user.id === userid)\n\t\t// increase count if user is enabled\n\t\tif (group && user.enabled && state.userCount > 0) {\n\t\t\tgroup.usercount++\n\t\t}\n\t\tconst groups = user.groups\n\t\tgroups.push(gid)\n\t},\n\tremoveUserGroup(state, { userid, gid }) {\n\t\tconst group = state.groups.find((groupSearch) => groupSearch.id === gid)\n\t\tconst user = state.users.find((user) => user.id === userid)\n\t\t// lower count if user is enabled\n\t\tif (group && user.enabled && state.userCount > 0) {\n\t\t\tgroup.usercount--\n\t\t}\n\t\tconst groups = user.groups\n\t\tgroups.splice(groups.indexOf(gid), 1)\n\t},\n\taddUserSubAdmin(state, { userid, gid }) {\n\t\tconst groups = state.users.find((user) => user.id === userid).subadmin\n\t\tgroups.push(gid)\n\t},\n\tremoveUserSubAdmin(state, { userid, gid }) {\n\t\tconst groups = state.users.find((user) => user.id === userid).subadmin\n\t\tgroups.splice(groups.indexOf(gid), 1)\n\t},\n\tdeleteUser(state, userid) {\n\t\tconst userIndex = state.users.findIndex((user) => user.id === userid)\n\t\tthis.commit('updateUserCounts', { user: state.users[userIndex], actionType: 'remove' })\n\t\tstate.users.splice(userIndex, 1)\n\t},\n\taddUserData(state, response) {\n\t\tconst user = response.data.ocs.data\n\t\tstate.users.unshift(user)\n\t\tthis.commit('updateUserCounts', { user, actionType: 'create' })\n\t},\n\tenableDisableUser(state, { userid, enabled }) {\n\t\tconst user = state.users.find((user) => user.id === userid)\n\t\tuser.enabled = enabled\n\t\tthis.commit('updateUserCounts', { user, actionType: enabled ? 'enable' : 'disable' })\n\t},\n\t// update active/disabled counts, groups counts\n\tupdateUserCounts(state, { user, actionType }) {\n\t\t// 0 is a special value\n\t\tif (state.userCount === 0) {\n\t\t\treturn\n\t\t}\n\n\t\tconst recentGroup = state.groups.find((group) => group.id === '__nc_internal_recent')\n\t\tconst disabledGroup = state.groups.find((group) => group.id === 'disabled')\n\t\tswitch (actionType) {\n\t\t\tcase 'enable':\n\t\t\tcase 'disable':\n\t\t\t\tdisabledGroup.usercount += user.enabled ? -1 : 1 // update Disabled Users count\n\t\t\t\trecentGroup.usercount += user.enabled ? 1 : -1\n\t\t\t\tstate.userCount += user.enabled ? 1 : -1 // update Active Users count\n\t\t\t\tuser.groups.forEach((userGroup) => {\n\t\t\t\t\tconst group = state.groups.find((groupSearch) => groupSearch.id === userGroup)\n\t\t\t\t\tif (!group) {\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\tgroup.disabled += user.enabled ? -1 : 1 // update group disabled count\n\t\t\t\t})\n\t\t\t\tbreak\n\t\t\tcase 'create':\n\t\t\t\trecentGroup.usercount++\n\t\t\t\tstate.userCount++ // increment Active Users count\n\n\t\t\t\tuser.groups.forEach((userGroup) => {\n\t\t\t\t\tconst group = state.groups.find((groupSearch) => groupSearch.id === userGroup)\n\t\t\t\t\tif (!group) {\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\tgroup.usercount++ // increment group total count\n\t\t\t\t})\n\t\t\t\tbreak\n\t\t\tcase 'remove':\n\t\t\t\tif (user.enabled) {\n\t\t\t\t\trecentGroup.usercount--\n\t\t\t\t\tstate.userCount-- // decrement Active Users count\n\t\t\t\t\tuser.groups.forEach((userGroup) => {\n\t\t\t\t\t\tconst group = state.groups.find((groupSearch) => groupSearch.id === userGroup)\n\t\t\t\t\t\tif (!group) {\n\t\t\t\t\t\t\tlogger.warn('User group ' + userGroup + ' does not exist during user removal')\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t}\n\t\t\t\t\t\tgroup.usercount-- // decrement group total count\n\t\t\t\t\t})\n\t\t\t\t} else {\n\t\t\t\t\tdisabledGroup.usercount-- // decrement Disabled Users count\n\t\t\t\t\tuser.groups.forEach((userGroup) => {\n\t\t\t\t\t\tconst group = state.groups.find((groupSearch) => groupSearch.id === userGroup)\n\t\t\t\t\t\tif (!group) {\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t}\n\t\t\t\t\t\tgroup.disabled-- // decrement group disabled count\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\tlogger.error(`Unknown action type in updateUserCounts: '${actionType}'`)\n\t\t\t// not throwing error to interrupt execution as this is not fatal\n\t\t}\n\t},\n\tsetUserData(state, { userid, key, value }) {\n\t\tif (key === 'quota') {\n\t\t\tconst humanValue = parseFileSize(value, true)\n\t\t\tstate.users.find((user) => user.id === userid)[key][key] = humanValue !== null ? humanValue : value\n\t\t} else {\n\t\t\tstate.users.find((user) => user.id === userid)[key] = value\n\t\t}\n\t},\n\n\t/**\n\t * Apply multiple updated fields to a user in the local store.\n\t *\n\t * @param {object} state Store state\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {object} options.data Updated user data from server\n\t */\n\teditUserMultiField(state, { userid, data }) {\n\t\tconst index = state.users.findIndex((user) => user.id === userid)\n\t\tif (index === -1) {\n\t\t\treturn\n\t\t}\n\n\t\t// Delegate group membership changes so sidebar usercount stays in sync.\n\t\tif (Array.isArray(data.groups)) {\n\t\t\tconst prevGids = state.users[index].groups ?? []\n\t\t\tfor (const gid of data.groups.filter((g) => !prevGids.includes(g))) {\n\t\t\t\tthis.commit('addUserGroup', { userid, gid })\n\t\t\t}\n\t\t\tfor (const gid of prevGids.filter((g) => !data.groups.includes(g))) {\n\t\t\t\tthis.commit('removeUserGroup', { userid, gid })\n\t\t\t}\n\t\t}\n\n\t\tstate.users.splice(index, 1, { ...state.users[index], ...data })\n\t},\n\n\t/**\n\t * Reset users list\n\t *\n\t * @param {object} state the store state\n\t */\n\tresetUsers(state) {\n\t\tstate.users = []\n\t\tstate.usersOffset = 0\n\t\tstate.disabledUsersOffset = 0\n\t},\n\n\t/**\n\t * Reset group list\n\t *\n\t * @param {object} state the store state\n\t */\n\tresetGroups(state) {\n\t\tstate.groups = [\n\t\t\t...(usersSettings.getSubAdminGroups ?? []),\n\t\t\t...(usersSettings.systemGroups ?? []),\n\t\t]\n\t},\n\n\tsetSearchQuery(state, query) {\n\t\tstate.searchQuery = query\n\t},\n\n\tsetShowConfig(state, { key, value }) {\n\t\tstate.showConfig[key] = value\n\t},\n\n\tsetGroupSorting(state, sorting) {\n\t\tconst oldValue = state.orderBy\n\t\tstate.orderBy = sorting\n\n\t\t// Persist the value on the server\n\t\taxios.post(\n\t\t\tgenerateUrl('/settings/users/preferences/group.sortBy'),\n\t\t\t{\n\t\t\t\tvalue: String(sorting),\n\t\t\t},\n\t\t).catch((error) => {\n\t\t\tstate.orderBy = oldValue\n\t\t\tshowError(t('settings', 'Could not set group sorting'))\n\t\t\tlogger.error(error)\n\t\t})\n\t},\n}\n\nconst getters = {\n\tgetUsers(state) {\n\t\treturn state.users\n\t},\n\tgetGroups(state) {\n\t\treturn state.groups\n\t},\n\tgetSearchQuery(state) {\n\t\treturn state.searchQuery\n\t},\n\tgetSubAdminGroups() {\n\t\treturn usersSettings.subAdminGroups ?? []\n\t},\n\n\tgetSortedGroups(state) {\n\t\tconst groups = [...state.groups]\n\t\tif (state.orderBy === GroupSorting.UserCount) {\n\t\t\treturn groups.sort((a, b) => {\n\t\t\t\tconst numA = a.usercount - a.disabled\n\t\t\t\tconst numB = b.usercount - b.disabled\n\t\t\t\treturn (numA < numB) ? 1 : (numB < numA ? -1 : naturalCollator.compare(a.name, b.name))\n\t\t\t})\n\t\t} else {\n\t\t\treturn groups.sort((a, b) => naturalCollator.compare(a.name, b.name))\n\t\t}\n\t},\n\tgetGroupSorting(state) {\n\t\treturn state.orderBy\n\t},\n\tgetPasswordPolicyMinLength(state) {\n\t\treturn state.minPasswordLength\n\t},\n\tgetUsersOffset(state) {\n\t\treturn state.usersOffset\n\t},\n\tgetUsersLimit(state) {\n\t\treturn state.usersLimit\n\t},\n\tgetDisabledUsersOffset(state) {\n\t\treturn state.disabledUsersOffset\n\t},\n\tgetDisabledUsersLimit(state) {\n\t\treturn state.disabledUsersLimit\n\t},\n\tgetUserCount(state) {\n\t\treturn state.userCount\n\t},\n\tgetShowConfig(state) {\n\t\treturn state.showConfig\n\t},\n}\n\nconst CancelToken = axios.CancelToken\nlet searchRequestCancelSource = null\n\nconst actions = {\n\n\t/**\n\t * search users\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {number} options.offset List offset to request\n\t * @param {number} options.limit List number to return from offset\n\t * @param {string} options.search Search amongst users\n\t * @return {Promise}\n\t */\n\tsearchUsers(context, { offset, limit, search }) {\n\t\tsearch = typeof search === 'string' ? search : ''\n\n\t\treturn api.get(generateOcsUrl('cloud/users/details?offset={offset}&limit={limit}&search={search}', { offset, limit, search })).catch((error) => {\n\t\t\tif (!axios.isCancel(error)) {\n\t\t\t\tcontext.commit('API_FAILURE', error)\n\t\t\t}\n\t\t})\n\t},\n\n\t/**\n\t * Get user details\n\t *\n\t * @param {object} context store context\n\t * @param {string} userId user id\n\t * @return {Promise}\n\t */\n\tgetUser(context, userId) {\n\t\treturn api.get(generateOcsUrl(`cloud/users/${userId}`)).catch((error) => {\n\t\t\tif (!axios.isCancel(error)) {\n\t\t\t\tcontext.commit('API_FAILURE', error)\n\t\t\t}\n\t\t})\n\t},\n\n\t/**\n\t * Get all users with full details\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {number} options.offset List offset to request\n\t * @param {number} options.limit List number to return from offset\n\t * @param {string} options.search Search amongst users\n\t * @param {string} options.group Get users from group\n\t * @return {Promise}\n\t */\n\tgetUsers(context, { offset, limit, search, group }) {\n\t\tif (searchRequestCancelSource) {\n\t\t\tsearchRequestCancelSource.cancel('Operation canceled by another search request.')\n\t\t}\n\t\tsearchRequestCancelSource = CancelToken.source()\n\t\tsearch = typeof search === 'string' ? search : ''\n\t\tgroup = typeof group === 'string' ? group : ''\n\t\tif (group !== '') {\n\t\t\treturn api.get(generateOcsUrl('cloud/groups/{group}/users/details?offset={offset}&limit={limit}&search={search}', { group: encodeURIComponent(group), offset, limit, search }), {\n\t\t\t\tcancelToken: searchRequestCancelSource.token,\n\t\t\t})\n\t\t\t\t.then((response) => {\n\t\t\t\t\tconst usersCount = Object.keys(response.data.ocs.data.users).length\n\t\t\t\t\tif (usersCount > 0) {\n\t\t\t\t\t\tcontext.commit('appendUsers', response.data.ocs.data.users)\n\t\t\t\t\t}\n\t\t\t\t\treturn usersCount\n\t\t\t\t})\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tif (!axios.isCancel(error)) {\n\t\t\t\t\t\tcontext.commit('API_FAILURE', error)\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t}\n\n\t\treturn api.get(generateOcsUrl('cloud/users/details?offset={offset}&limit={limit}&search={search}', { offset, limit, search }), {\n\t\t\tcancelToken: searchRequestCancelSource.token,\n\t\t})\n\t\t\t.then((response) => {\n\t\t\t\tconst usersCount = Object.keys(response.data.ocs.data.users).length\n\t\t\t\tif (usersCount > 0) {\n\t\t\t\t\tcontext.commit('appendUsers', response.data.ocs.data.users)\n\t\t\t\t}\n\t\t\t\treturn usersCount\n\t\t\t})\n\t\t\t.catch((error) => {\n\t\t\t\tif (!axios.isCancel(error)) {\n\t\t\t\t\tcontext.commit('API_FAILURE', error)\n\t\t\t\t}\n\t\t\t})\n\t},\n\n\t/**\n\t * Get recent users with full details\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {number} options.offset List offset to request\n\t * @param {number} options.limit List number to return from offset\n\t * @param {string} options.search Search query\n\t * @return {Promise}\n\t */\n\tasync getRecentUsers(context, { offset, limit, search }) {\n\t\tconst url = generateOcsUrl('cloud/users/recent?offset={offset}&limit={limit}&search={search}', { offset, limit, search })\n\t\ttry {\n\t\t\tconst response = await api.get(url)\n\t\t\tconst usersCount = Object.keys(response.data.ocs.data.users).length\n\t\t\tif (usersCount > 0) {\n\t\t\t\tcontext.commit('appendUsers', response.data.ocs.data.users)\n\t\t\t}\n\t\t\treturn usersCount\n\t\t} catch (error) {\n\t\t\tcontext.commit('API_FAILURE', error)\n\t\t}\n\t},\n\n\t/**\n\t * Get disabled users with full details\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {number} options.offset List offset to request\n\t * @param {number} options.limit List number to return from offset\n\t * @param options.search\n\t * @return {Promise}\n\t */\n\tasync getDisabledUsers(context, { offset, limit, search }) {\n\t\tconst url = generateOcsUrl('cloud/users/disabled?offset={offset}&limit={limit}&search={search}', { offset, limit, search })\n\t\ttry {\n\t\t\tconst response = await api.get(url)\n\t\t\tconst usersCount = Object.keys(response.data.ocs.data.users).length\n\t\t\tif (usersCount > 0) {\n\t\t\t\tcontext.commit('appendUsers', response.data.ocs.data.users)\n\t\t\t\tcontext.commit('updateDisabledUsers', response.data.ocs.data.users)\n\t\t\t}\n\t\t\treturn usersCount\n\t\t} catch (error) {\n\t\t\tcontext.commit('API_FAILURE', error)\n\t\t}\n\t},\n\n\tgetGroups(context, { offset, limit, search }) {\n\t\tsearch = typeof search === 'string' ? search : ''\n\t\tconst limitParam = limit === -1 ? '' : `&limit=${limit}`\n\t\treturn api.get(generateOcsUrl('cloud/groups?offset={offset}&search={search}', { offset, search }) + limitParam)\n\t\t\t.then((response) => {\n\t\t\t\tif (Object.keys(response.data.ocs.data.groups).length > 0) {\n\t\t\t\t\tresponse.data.ocs.data.groups.forEach(function(group) {\n\t\t\t\t\t\tcontext.commit('addGroup', { id: group, name: group })\n\t\t\t\t\t})\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t\treturn false\n\t\t\t})\n\t\t\t.catch((error) => context.commit('API_FAILURE', error))\n\t},\n\n\t/**\n\t * Get all users with full details\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {number} options.offset List offset to request\n\t * @param {number} options.limit List number to return from offset\n\t * @param {string} options.search -\n\t * @return {Promise}\n\t */\n\tgetUsersFromList(context, { offset, limit, search }) {\n\t\tsearch = typeof search === 'string' ? search : ''\n\t\treturn api.get(generateOcsUrl('cloud/users/details?offset={offset}&limit={limit}&search={search}', { offset, limit, search }))\n\t\t\t.then((response) => {\n\t\t\t\tif (Object.keys(response.data.ocs.data.users).length > 0) {\n\t\t\t\t\tcontext.commit('appendUsers', response.data.ocs.data.users)\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t\treturn false\n\t\t\t})\n\t\t\t.catch((error) => context.commit('API_FAILURE', error))\n\t},\n\n\t/**\n\t * Get all users with full details from a groupid\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {number} options.offset List offset to request\n\t * @param {number} options.limit List number to return from offset\n\t * @param {string} options.groupid -\n\t * @return {Promise}\n\t */\n\tgetUsersFromGroup(context, { groupid, offset, limit }) {\n\t\treturn api.get(generateOcsUrl('cloud/users/{groupId}/details?offset={offset}&limit={limit}', { groupId: encodeURIComponent(groupid), offset, limit }))\n\t\t\t.then((response) => context.commit('getUsersFromList', response.data.ocs.data.users))\n\t\t\t.catch((error) => context.commit('API_FAILURE', error))\n\t},\n\n\tgetPasswordPolicyMinLength(context) {\n\t\tif (getCapabilities().password_policy && getCapabilities().password_policy.minLength) {\n\t\t\tcontext.commit('setPasswordPolicyMinLength', getCapabilities().password_policy.minLength)\n\t\t\treturn getCapabilities().password_policy.minLength\n\t\t}\n\t\treturn false\n\t},\n\n\t/**\n\t * Add group\n\t *\n\t * @param {object} context store context\n\t * @param {string} gid Group id\n\t * @return {Promise}\n\t */\n\taddGroup(context, gid) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.post(generateOcsUrl('cloud/groups'), { groupid: gid })\n\t\t\t\t.then(() => {\n\t\t\t\t\tcontext.commit('addGroup', { id: gid, name: gid })\n\t\t\t\t\treturn { gid, displayName: gid }\n\t\t\t\t})\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => {\n\t\t\tcontext.commit('API_FAILURE', { gid, error })\n\t\t\t// let's throw one more time to prevent the view\n\t\t\t// from adding the user to a group that doesn't exists\n\t\t\tthrow error\n\t\t})\n\t},\n\n\t/**\n\t * Rename group\n\t *\n\t * @param {object} context store context\n\t * @param {string} groupid Group id\n\t * @param {string} displayName Group display name\n\t * @return {Promise}\n\t */\n\trenameGroup(context, { groupid, displayName }) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.put(generateOcsUrl('cloud/groups/{groupId}', { groupId: encodeURIComponent(groupid) }), { key: 'displayname', value: displayName })\n\t\t\t\t.then(() => {\n\t\t\t\t\tcontext.commit('renameGroup', { gid: groupid, displayName })\n\t\t\t\t\treturn { groupid, displayName }\n\t\t\t\t})\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => {\n\t\t\tcontext.commit('API_FAILURE', { groupid, error })\n\t\t\t// let's throw one more time to prevent the view\n\t\t\t// from renaming the group\n\t\t\tthrow error\n\t\t})\n\t},\n\n\t/**\n\t * Remove group\n\t *\n\t * @param {object} context store context\n\t * @param {string} gid Group id\n\t * @return {Promise}\n\t */\n\tremoveGroup(context, gid) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.delete(generateOcsUrl('cloud/groups/{groupId}', { groupId: encodeURIComponent(gid) }))\n\t\t\t\t.then(() => context.commit('removeGroup', gid))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { gid, error }))\n\t},\n\n\t/**\n\t * Add user to group\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {string} options.gid Group id\n\t * @return {Promise}\n\t */\n\taddUserGroup(context, { userid, gid }) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.post(generateOcsUrl('cloud/users/{userid}/groups', { userid }), { groupid: gid })\n\t\t\t\t.then(() => context.commit('addUserGroup', { userid, gid }))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }))\n\t},\n\n\t/**\n\t * Remove user from group\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {string} options.gid Group id\n\t * @return {Promise}\n\t */\n\tremoveUserGroup(context, { userid, gid }) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.delete(generateOcsUrl('cloud/users/{userid}/groups', { userid }), { groupid: gid })\n\t\t\t\t.then(() => context.commit('removeUserGroup', { userid, gid }))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => {\n\t\t\tcontext.commit('API_FAILURE', { userid, error })\n\t\t\t// let's throw one more time to prevent\n\t\t\t// the view from removing the user row on failure\n\t\t\tthrow error\n\t\t})\n\t},\n\n\t/**\n\t * Add user to group admin\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {string} options.gid Group id\n\t * @return {Promise}\n\t */\n\taddUserSubAdmin(context, { userid, gid }) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.post(generateOcsUrl('cloud/users/{userid}/subadmins', { userid }), { groupid: gid })\n\t\t\t\t.then(() => context.commit('addUserSubAdmin', { userid, gid }))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }))\n\t},\n\n\t/**\n\t * Remove user from group admin\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {string} options.gid Group id\n\t * @return {Promise}\n\t */\n\tremoveUserSubAdmin(context, { userid, gid }) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.delete(generateOcsUrl('cloud/users/{userid}/subadmins', { userid }), { groupid: gid })\n\t\t\t\t.then(() => context.commit('removeUserSubAdmin', { userid, gid }))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }))\n\t},\n\n\t/**\n\t * Mark all user devices for remote wipe\n\t *\n\t * @param {object} context store context\n\t * @param {string} userid User id\n\t * @return {Promise}\n\t */\n\tasync wipeUserDevices(context, userid) {\n\t\ttry {\n\t\t\tawait api.requireAdmin()\n\t\t\treturn await api.post(generateOcsUrl('cloud/users/{userid}/wipe', { userid }))\n\t\t} catch (error) {\n\t\t\tcontext.commit('API_FAILURE', { userid, error })\n\t\t\treturn Promise.reject(new Error('Failed to wipe user devices'))\n\t\t}\n\t},\n\n\t/**\n\t * Delete a user\n\t *\n\t * @param {object} context store context\n\t * @param {string} userid User id\n\t * @return {Promise}\n\t */\n\tdeleteUser(context, userid) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.delete(generateOcsUrl('cloud/users/{userid}', { userid }))\n\t\t\t\t.then(() => context.commit('deleteUser', userid))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }))\n\t},\n\n\t/**\n\t * Add a user\n\t *\n\t * @param {object} context store context\n\t * @param {Function} context.commit -\n\t * @param {Function} context.dispatch -\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {string} options.password User password\n\t * @param {string} options.displayName User display name\n\t * @param {string} options.email User email\n\t * @param {string} options.groups User groups\n\t * @param {string} options.subadmin User subadmin groups\n\t * @param {string} options.quota User email\n\t * @param {string} options.language User language\n\t * @param {string} options.manager User manager\n\t * @return {Promise}\n\t */\n\taddUser({ commit, dispatch }, { userid, password, displayName, email, groups, subadmin, quota, language, manager }) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.post(generateOcsUrl('cloud/users'), { userid, password, displayName, email, groups, subadmin, quota, language, manager })\n\t\t\t\t.then((response) => dispatch('addUserData', userid || response.data.ocs.data.id))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => {\n\t\t\tcommit('API_FAILURE', { userid, error })\n\t\t\tthrow error\n\t\t})\n\t},\n\n\t/**\n\t * Get user data and commit addition\n\t *\n\t * @param {object} context store context\n\t * @param {string} userid User id\n\t * @return {Promise}\n\t */\n\taddUserData(context, userid) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.get(generateOcsUrl('cloud/users/{userid}', { userid }))\n\t\t\t\t.then((response) => context.commit('addUserData', response))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }))\n\t},\n\n\t/**\n\t * Enable or disable user\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {boolean} options.enabled User enablement status\n\t * @return {Promise}\n\t */\n\tenableDisableUser(context, { userid, enabled = true }) {\n\t\tconst userStatus = enabled ? 'enable' : 'disable'\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.put(generateOcsUrl('cloud/users/{userid}/{userStatus}', { userid, userStatus }))\n\t\t\t\t.then(() => context.commit('enableDisableUser', { userid, enabled }))\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }))\n\t},\n\n\t/**\n\t * Edit user data\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {string} options.key User field to edit\n\t * @param {string} options.value Value of the change\n\t * @return {Promise}\n\t */\n\tasync setUserData(context, { userid, key, value }) {\n\t\tconst allowedEmpty = ['email', 'displayname', 'manager']\n\t\tconst validKeys = ['email', 'language', 'quota', 'displayname', 'password', 'manager']\n\n\t\tif (!validKeys.includes(key)) {\n\t\t\tthrow new Error('Invalid request data')\n\t\t}\n\n\t\t// If value is empty and the key doesn't allow empty values, throw error\n\t\tif (value === '' && !allowedEmpty.includes(key)) {\n\t\t\tthrow new Error('Value cannot be empty for this field')\n\t\t}\n\n\t\ttry {\n\t\t\tawait api.requireAdmin()\n\t\t\tawait api.put(generateOcsUrl('cloud/users/{userid}', { userid }), { key, value })\n\t\t\treturn context.commit('setUserData', { userid, key, value })\n\t\t} catch (error) {\n\t\t\tcontext.commit('API_FAILURE', { userid, error })\n\t\t\tthrow error\n\t\t}\n\t},\n\n\t/**\n\t * Update multiple user fields atomically via the new bulk endpoint.\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.userid User id\n\t * @param {object} options.payload Changed fields to send\n\t * @return {Promise}\n\t */\n\tasync editUserMultiField(context, { userid, payload }) {\n\t\ttry {\n\t\t\tawait api.requireAdmin()\n\t\t\tconst response = await api.patch(\n\t\t\t\tgenerateOcsUrl('cloud/users/{userid}', { userid }),\n\t\t\t\tpayload,\n\t\t\t)\n\t\t\tcontext.commit('editUserMultiField', { userid, data: response.data.ocs.data })\n\t\t} catch (error) {\n\t\t\tcontext.commit('API_FAILURE', { userid, error })\n\t\t\tthrow error\n\t\t}\n\t},\n\n\t/**\n\t * Send welcome mail\n\t *\n\t * @param {object} context store context\n\t * @param {string} userid User id\n\t * @return {Promise}\n\t */\n\tsendWelcomeMail(context, userid) {\n\t\treturn api.requireAdmin().then(() => {\n\t\t\treturn api.post(generateOcsUrl('cloud/users/{userid}/welcome', { userid }))\n\t\t\t\t.then(() => true)\n\t\t\t\t.catch((error) => { throw error })\n\t\t}).catch((error) => context.commit('API_FAILURE', { userid, error }))\n\t},\n\t/**\n\t * Migrate local storage keys to database\n\t *\n\t * @param {object} context store context\n\t * @param context.commit\n\t */\n\tmigrateLocalStorage({ commit }) {\n\t\tconst preferences = {\n\t\t\tshowStoragePath: 'user_list_show_storage_path',\n\t\t\tshowUserBackend: 'user_list_show_user_backend',\n\t\t\tshowFirstLogin: 'user_list_show_first_login',\n\t\t\tshowLastLogin: 'user_list_show_last_login',\n\t\t\tshowNewUserForm: 'user_list_show_new_user_form',\n\t\t\tshowLanguages: 'user_list_show_languages',\n\t\t}\n\n\t\tfor (const [key, dbKey] of Object.entries(preferences)) {\n\t\t\tconst localKey = `account_settings__${key}`\n\t\t\tconst localValue = window.localStorage.getItem(localKey)\n\t\t\tif (localValue === null) {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tconst value = localValue === 'true'\n\t\t\tcommit('setShowConfig', { key, value })\n\n\t\t\taxios.post(generateUrl(`/settings/users/preferences/${dbKey}`), {\n\t\t\t\tvalue: value ? 'true' : 'false',\n\t\t\t}).then(() => {\n\t\t\t\twindow.localStorage.removeItem(localKey)\n\t\t\t}).catch((error) => {\n\t\t\t\tlogger.error(`Failed to migrate preference ${key}`, { error })\n\t\t\t})\n\t\t}\n\t},\n\n\t/**\n\t * Set show config\n\t *\n\t * @param {object} context store context\n\t * @param {object} options destructuring object\n\t * @param {string} options.key Key to set\n\t * @param {boolean} options.value Value to set\n\t */\n\tsetShowConfig(context, { key, value }) {\n\t\tcontext.commit('setShowConfig', { key, value })\n\t\tconst keyMap = {\n\t\t\tshowStoragePath: 'user_list_show_storage_path',\n\t\t\tshowUserBackend: 'user_list_show_user_backend',\n\t\t\tshowFirstLogin: 'user_list_show_first_login',\n\t\t\tshowLastLogin: 'user_list_show_last_login',\n\t\t\tshowNewUserForm: 'user_list_show_new_user_form',\n\t\t\tshowLanguages: 'user_list_show_languages',\n\t\t}\n\t\taxios.post(generateUrl(`settings/users/preferences/${keyMap[key]}`), { value: value ? 'true' : 'false' })\n\t\t\t.catch((error) => logger.error(`Could not update ${key} preference`, { error }))\n\t},\n}\n\nexport default {\n\tstate,\n\tmutations,\n\tgetters,\n\tactions,\n}\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { showError } from '@nextcloud/dialogs'\nimport { Store } from 'vuex'\nimport logger from '../logger.js'\nimport apps from './apps.js'\nimport oc from './oc.js'\nimport settings from './users-settings.js'\nimport users from './users.js'\n\nconst mutations = {\n\tAPI_FAILURE(state, error) {\n\t\ttry {\n\t\t\tconst message = error.error.response.data.ocs.meta.message\n\t\t\tshowError(t('settings', 'An error occurred during the request. Unable to proceed.') + '
' + message, { isHTML: true })\n\t\t} catch {\n\t\t\tshowError(t('settings', 'An error occurred during the request. Unable to proceed.'))\n\t\t}\n\t\tlogger.error('An error occurred during the request.', { state, error })\n\t},\n}\n\nlet store = null\n\n/**\n *\n */\nexport function useStore() {\n\tif (store === null) {\n\t\tstore = new Store({\n\t\t\tmodules: {\n\t\t\t\tusers,\n\t\t\t\tapps,\n\t\t\t\tsettings,\n\t\t\t\toc,\n\t\t\t},\n\t\t\tstrict: !PRODUCTION,\n\t\t\tmutations,\n\t\t})\n\t}\n\treturn store\n}\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n/**\n * https://github.com/nextcloud/server/blob/208e38e84e1a07a49699aa90dc5b7272d24489f0/lib/private/Group/MetaData.php#L34\n */\nexport var GroupSorting;\n(function (GroupSorting) {\n GroupSorting[GroupSorting[\"UserCount\"] = 1] = \"UserCount\";\n GroupSorting[GroupSorting[\"GroupName\"] = 2] = \"GroupName\";\n})(GroupSorting || (GroupSorting = {}));\n","/**\n * SPDX-FileCopyrightText: 2020 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('settings')\n .detectUser()\n .build();\n","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\nexport { _createClass as default };","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.16.1\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n\nvar timeoutDuration = function () {\n var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n return 1;\n }\n }\n return 0;\n}();\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var window = element.ownerDocument.defaultView;\n var css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\n/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nfunction getReferenceNode(reference) {\n return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n var width = sizes.width || element.clientWidth || result.width;\n var height = sizes.height || element.clientHeight || result.height;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop);\n var marginLeft = parseFloat(styles.marginLeft);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n var parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = { top: 0, left: 0 };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n padding = padding || 0;\n var isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.
\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicitly asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var round = Math.round,\n floor = Math.floor;\n\n var noRound = function noRound(v) {\n return v;\n };\n\n var referenceWidth = round(reference.width);\n var popperWidth = round(popper.width);\n\n var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n var isVariation = data.placement.indexOf('-') !== -1;\n var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n var verticalToInteger = !shouldRound ? noRound : round;\n\n return {\n left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right)\n };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n // when offsetParent is the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.
\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized]);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.
\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.
\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n // flips variation if reference element overflows boundaries\n var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n // flips variation if popper content overflows boundaries\n var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n\n var flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var basePlacement = placement.split('-')[0];\n\n var offsets = void 0;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n var order = options.priority;\n var popper = data.offsets.popper;\n\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty({}, mainSide, value);\n }\n };\n\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.
\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.
\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.
\n * It will read the variation of the `placement` property.
\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.
\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.
\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.
\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.
\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".
\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport',\n /**\n * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined\n }\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.
\n * These can be overridden using the `options` argument of Popper.js.
\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function onCreate() {},\n\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function onUpdate() {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n /**\n * Creates a new Popper.js instance.\n * @class Popper\n * @param {Element|referenceObject} reference - The reference element used to position the popper\n * @param {Element} popper - The HTML / XML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.
\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n","function getInternetExplorerVersion() {\n var ua = window.navigator.userAgent;\n var msie = ua.indexOf('MSIE ');\n\n if (msie > 0) {\n // IE 10 or older => return version number\n return parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10);\n }\n\n var trident = ua.indexOf('Trident/');\n\n if (trident > 0) {\n // IE 11 => return version number\n var rv = ua.indexOf('rv:');\n return parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10);\n }\n\n var edge = ua.indexOf('Edge/');\n\n if (edge > 0) {\n // Edge (IE 12+) => return version number\n return parseInt(ua.substring(edge + 5, ua.indexOf('.', edge)), 10);\n } // other browser\n\n\n return -1;\n}\n\n//\nvar isIE;\n\nfunction initCompat() {\n if (!initCompat.init) {\n initCompat.init = true;\n isIE = getInternetExplorerVersion() !== -1;\n }\n}\n\nvar script = {\n name: 'ResizeObserver',\n props: {\n emitOnMount: {\n type: Boolean,\n default: false\n },\n ignoreWidth: {\n type: Boolean,\n default: false\n },\n ignoreHeight: {\n type: Boolean,\n default: false\n }\n },\n mounted: function mounted() {\n var _this = this;\n\n initCompat();\n this.$nextTick(function () {\n _this._w = _this.$el.offsetWidth;\n _this._h = _this.$el.offsetHeight;\n\n if (_this.emitOnMount) {\n _this.emitSize();\n }\n });\n var object = document.createElement('object');\n this._resizeObject = object;\n object.setAttribute('aria-hidden', 'true');\n object.setAttribute('tabindex', -1);\n object.onload = this.addResizeHandlers;\n object.type = 'text/html';\n\n if (isIE) {\n this.$el.appendChild(object);\n }\n\n object.data = 'about:blank';\n\n if (!isIE) {\n this.$el.appendChild(object);\n }\n },\n beforeDestroy: function beforeDestroy() {\n this.removeResizeHandlers();\n },\n methods: {\n compareAndNotify: function compareAndNotify() {\n if (!this.ignoreWidth && this._w !== this.$el.offsetWidth || !this.ignoreHeight && this._h !== this.$el.offsetHeight) {\n this._w = this.$el.offsetWidth;\n this._h = this.$el.offsetHeight;\n this.emitSize();\n }\n },\n emitSize: function emitSize() {\n this.$emit('notify', {\n width: this._w,\n height: this._h\n });\n },\n addResizeHandlers: function addResizeHandlers() {\n this._resizeObject.contentDocument.defaultView.addEventListener('resize', this.compareAndNotify);\n\n this.compareAndNotify();\n },\n removeResizeHandlers: function removeResizeHandlers() {\n if (this._resizeObject && this._resizeObject.onload) {\n if (!isIE && this._resizeObject.contentDocument) {\n this._resizeObject.contentDocument.defaultView.removeEventListener('resize', this.compareAndNotify);\n }\n\n this.$el.removeChild(this._resizeObject);\n this._resizeObject.onload = null;\n this._resizeObject = null;\n }\n }\n }\n};\n\nfunction normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier\n/* server only */\n, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\n if (typeof shadowMode !== 'boolean') {\n createInjectorSSR = createInjector;\n createInjector = shadowMode;\n shadowMode = false;\n } // Vue.extend constructor export interop.\n\n\n var options = typeof script === 'function' ? script.options : script; // render functions\n\n if (template && template.render) {\n options.render = template.render;\n options.staticRenderFns = template.staticRenderFns;\n options._compiled = true; // functional template\n\n if (isFunctionalTemplate) {\n options.functional = true;\n }\n } // scopedId\n\n\n if (scopeId) {\n options._scopeId = scopeId;\n }\n\n var hook;\n\n if (moduleIdentifier) {\n // server build\n hook = function hook(context) {\n // 2.3 injection\n context = context || // cached call\n this.$vnode && this.$vnode.ssrContext || // stateful\n this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext; // functional\n // 2.2 with runInNewContext: true\n\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__;\n } // inject component styles\n\n\n if (style) {\n style.call(this, createInjectorSSR(context));\n } // register component module identifier for async chunk inference\n\n\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier);\n }\n }; // used by ssr in case component is cached and beforeCreate\n // never gets called\n\n\n options._ssrRegister = hook;\n } else if (style) {\n hook = shadowMode ? function (context) {\n style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\n } : function (context) {\n style.call(this, createInjector(context));\n };\n }\n\n if (hook) {\n if (options.functional) {\n // register for functional component in vue file\n var originalRender = options.render;\n\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context);\n return originalRender(h, context);\n };\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate;\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\n }\n }\n\n return script;\n}\n\n/* script */\nvar __vue_script__ = script;\n/* template */\n\nvar __vue_render__ = function __vue_render__() {\n var _vm = this;\n\n var _h = _vm.$createElement;\n\n var _c = _vm._self._c || _h;\n\n return _c(\"div\", {\n staticClass: \"resize-observer\",\n attrs: {\n tabindex: \"-1\"\n }\n });\n};\n\nvar __vue_staticRenderFns__ = [];\n__vue_render__._withStripped = true;\n/* style */\n\nvar __vue_inject_styles__ = undefined;\n/* scoped */\n\nvar __vue_scope_id__ = \"data-v-8859cc6c\";\n/* module identifier */\n\nvar __vue_module_identifier__ = undefined;\n/* functional template */\n\nvar __vue_is_functional_template__ = false;\n/* style inject */\n\n/* style inject SSR */\n\n/* style inject shadow dom */\n\nvar __vue_component__ = /*#__PURE__*/normalizeComponent({\n render: __vue_render__,\n staticRenderFns: __vue_staticRenderFns__\n}, __vue_inject_styles__, __vue_script__, __vue_scope_id__, __vue_is_functional_template__, __vue_module_identifier__, false, undefined, undefined, undefined);\n\nfunction install(Vue) {\n // eslint-disable-next-line vue/component-definition-name-casing\n Vue.component('resize-observer', __vue_component__);\n Vue.component('ResizeObserver', __vue_component__);\n}\n\nvar plugin = {\n // eslint-disable-next-line no-undef\n version: \"1.0.1\",\n install: install\n};\n\nvar GlobalVue = null;\n\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue;\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue;\n}\n\nif (GlobalVue) {\n GlobalVue.use(plugin);\n}\n\nexport default plugin;\nexport { __vue_component__ as ResizeObserver, install };\n//# sourceMappingURL=vue-resize.esm.js.map\n","import _typeof from '@babel/runtime/helpers/typeof';\nimport _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport _classCallCheck from '@babel/runtime/helpers/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/createClass';\nimport Popper from 'popper.js';\nimport isEqual from 'lodash/isEqual';\nimport { ResizeObserver } from 'vue-resize';\nimport merge from 'lodash/merge';\n\nvar SVGAnimatedString = function SVGAnimatedString() {};\n\nif (typeof window !== 'undefined') {\n SVGAnimatedString = window.SVGAnimatedString;\n}\n\nfunction convertToArray(value) {\n if (typeof value === 'string') {\n value = value.split(' ');\n }\n\n return value;\n}\n/**\n * Add classes to an element.\n * This method checks to ensure that the classes don't already exist before adding them.\n * It uses el.className rather than classList in order to be IE friendly.\n * @param {object} el - The element to add the classes to.\n * @param {classes} string - List of space separated classes to be added to the element.\n */\n\nfunction addClasses(el, classes) {\n var newClasses = convertToArray(classes);\n var classList;\n\n if (el.className instanceof SVGAnimatedString) {\n classList = convertToArray(el.className.baseVal);\n } else {\n classList = convertToArray(el.className);\n }\n\n newClasses.forEach(function (newClass) {\n if (classList.indexOf(newClass) === -1) {\n classList.push(newClass);\n }\n });\n\n if (el instanceof SVGElement) {\n el.setAttribute('class', classList.join(' '));\n } else {\n el.className = classList.join(' ');\n }\n}\n/**\n * Remove classes from an element.\n * It uses el.className rather than classList in order to be IE friendly.\n * @export\n * @param {any} el The element to remove the classes from.\n * @param {any} classes List of space separated classes to be removed from the element.\n */\n\nfunction removeClasses(el, classes) {\n var newClasses = convertToArray(classes);\n var classList;\n\n if (el.className instanceof SVGAnimatedString) {\n classList = convertToArray(el.className.baseVal);\n } else {\n classList = convertToArray(el.className);\n }\n\n newClasses.forEach(function (newClass) {\n var index = classList.indexOf(newClass);\n\n if (index !== -1) {\n classList.splice(index, 1);\n }\n });\n\n if (el instanceof SVGElement) {\n el.setAttribute('class', classList.join(' '));\n } else {\n el.className = classList.join(' ');\n }\n}\nvar supportsPassive = false;\n\nif (typeof window !== 'undefined') {\n supportsPassive = false;\n\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get: function get() {\n supportsPassive = true;\n }\n });\n window.addEventListener('test', null, opts);\n } catch (e) {}\n}\n\nfunction ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$2(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\nvar DEFAULT_OPTIONS = {\n container: false,\n delay: 0,\n html: false,\n placement: 'top',\n title: '',\n template: '
',\n trigger: 'hover focus',\n offset: 0\n};\nvar openTooltips = [];\n\nvar Tooltip = /*#__PURE__*/function () {\n /**\n * Create a new Tooltip.js instance\n * @class Tooltip\n * @param {HTMLElement} reference - The DOM node used as reference of the tooltip (it can be a jQuery element).\n * @param {Object} options\n * @param {String} options.placement=bottom\n * Placement of the popper accepted values: `top(-start, -end), right(-start, -end), bottom(-start, -end),\n * left(-start, -end)`\n * @param {HTMLElement|String|false} options.container=false - Append the tooltip to a specific element.\n * @param {Number|Object} options.delay=0\n * Delay showing and hiding the tooltip (ms) - does not apply to manual trigger type.\n * If a number is supplied, delay is applied to both hide/show.\n * Object structure is: `{ show: 500, hide: 100 }`\n * @param {Boolean} options.html=false - Insert HTML into the tooltip. If false, the content will inserted with `innerText`.\n * @param {String|PlacementFunction} options.placement='top' - One of the allowed placements, or a function returning one of them.\n * @param {String} [options.template='
']\n * Base HTML to used when creating the tooltip.\n * The tooltip's `title` will be injected into the `.tooltip-inner` or `.tooltip__inner`.\n * `.tooltip-arrow` or `.tooltip__arrow` will become the tooltip's arrow.\n * The outermost wrapper element should have the `.tooltip` class.\n * @param {String|HTMLElement|TitleFunction} options.title='' - Default title value if `title` attribute isn't present.\n * @param {String} [options.trigger='hover focus']\n * How tooltip is triggered - click, hover, focus, manual.\n * You may pass multiple triggers; separate them with a space. `manual` cannot be combined with any other trigger.\n * @param {HTMLElement} options.boundariesElement\n * The element used as boundaries for the tooltip. For more information refer to Popper.js'\n * [boundariesElement docs](https://popper.js.org/popper-documentation.html)\n * @param {Number|String} options.offset=0 - Offset of the tooltip relative to its reference. For more information refer to Popper.js'\n * [offset docs](https://popper.js.org/popper-documentation.html)\n * @param {Object} options.popperOptions={} - Popper options, will be passed directly to popper instance. For more information refer to Popper.js'\n * [options docs](https://popper.js.org/popper-documentation.html)\n * @param {string} [options.ariaId] Id used for accessibility\n * @return {Object} instance - The generated tooltip instance\n */\n function Tooltip(_reference, _options) {\n var _this = this;\n\n _classCallCheck(this, Tooltip);\n\n _defineProperty(this, \"_events\", []);\n\n _defineProperty(this, \"_setTooltipNodeEvent\", function (evt, reference, delay, options) {\n var relatedreference = evt.relatedreference || evt.toElement || evt.relatedTarget;\n\n var callback = function callback(evt2) {\n var relatedreference2 = evt2.relatedreference || evt2.toElement || evt2.relatedTarget; // Remove event listener after call\n\n _this._tooltipNode.removeEventListener(evt.type, callback); // If the new reference is not the reference element\n\n\n if (!reference.contains(relatedreference2)) {\n // Schedule to hide tooltip\n _this._scheduleHide(reference, options.delay, options, evt2);\n }\n };\n\n if (_this._tooltipNode.contains(relatedreference)) {\n // listen to mouseleave on the tooltip element to be able to hide the tooltip\n _this._tooltipNode.addEventListener(evt.type, callback);\n\n return true;\n }\n\n return false;\n });\n\n // apply user options over default ones\n _options = _objectSpread$2(_objectSpread$2({}, DEFAULT_OPTIONS), _options);\n _reference.jquery && (_reference = _reference[0]);\n this.show = this.show.bind(this);\n this.hide = this.hide.bind(this); // cache reference and options\n\n this.reference = _reference;\n this.options = _options; // set initial state\n\n this._isOpen = false;\n\n this._init();\n } //\n // Public methods\n //\n\n /**\n * Reveals an element's tooltip. This is considered a \"manual\" triggering of the tooltip.\n * Tooltips with zero-length titles are never displayed.\n * @method Tooltip#show\n * @memberof Tooltip\n */\n\n\n _createClass(Tooltip, [{\n key: \"show\",\n value: function show() {\n this._show(this.reference, this.options);\n }\n /**\n * Hides an element’s tooltip. This is considered a “manual” triggering of the tooltip.\n * @method Tooltip#hide\n * @memberof Tooltip\n */\n\n }, {\n key: \"hide\",\n value: function hide() {\n this._hide();\n }\n /**\n * Hides and destroys an element’s tooltip.\n * @method Tooltip#dispose\n * @memberof Tooltip\n */\n\n }, {\n key: \"dispose\",\n value: function dispose() {\n this._dispose();\n }\n /**\n * Toggles an element’s tooltip. This is considered a “manual” triggering of the tooltip.\n * @method Tooltip#toggle\n * @memberof Tooltip\n */\n\n }, {\n key: \"toggle\",\n value: function toggle() {\n if (this._isOpen) {\n return this.hide();\n } else {\n return this.show();\n }\n }\n }, {\n key: \"setClasses\",\n value: function setClasses(classes) {\n this._classes = classes;\n }\n }, {\n key: \"setContent\",\n value: function setContent(content) {\n this.options.title = content;\n\n if (this._tooltipNode) {\n this._setContent(content, this.options);\n }\n }\n }, {\n key: \"setOptions\",\n value: function setOptions(options) {\n var classesUpdated = false;\n var classes = options && options.classes || directive.options.defaultClass;\n\n if (!isEqual(this._classes, classes)) {\n this.setClasses(classes);\n classesUpdated = true;\n }\n\n options = getOptions(options);\n var needPopperUpdate = false;\n var needRestart = false;\n\n if (this.options.offset !== options.offset || this.options.placement !== options.placement) {\n needPopperUpdate = true;\n }\n\n if (this.options.template !== options.template || this.options.trigger !== options.trigger || this.options.container !== options.container || classesUpdated) {\n needRestart = true;\n }\n\n for (var key in options) {\n this.options[key] = options[key];\n }\n\n if (this._tooltipNode) {\n if (needRestart) {\n var isOpen = this._isOpen;\n this.dispose();\n\n this._init();\n\n if (isOpen) {\n this.show();\n }\n } else if (needPopperUpdate) {\n this.popperInstance.update();\n }\n }\n } //\n // Private methods\n //\n\n }, {\n key: \"_init\",\n value: function _init() {\n // get events list\n var events = typeof this.options.trigger === 'string' ? this.options.trigger.split(' ') : [];\n this._isDisposed = false;\n this._enableDocumentTouch = events.indexOf('manual') === -1;\n events = events.filter(function (trigger) {\n return ['click', 'hover', 'focus'].indexOf(trigger) !== -1;\n }); // set event listeners\n\n this._setEventListeners(this.reference, events, this.options); // title attribute\n\n\n this.$_originalTitle = this.reference.getAttribute('title');\n this.reference.removeAttribute('title');\n this.reference.setAttribute('data-original-title', this.$_originalTitle);\n }\n /**\n * Creates a new tooltip node\n * @memberof Tooltip\n * @private\n * @param {HTMLElement} reference\n * @param {String} template\n * @param {String|HTMLElement|TitleFunction} title\n * @param {Boolean} allowHtml\n * @return {HTMLelement} tooltipNode\n */\n\n }, {\n key: \"_create\",\n value: function _create(reference, template) {\n var _this2 = this;\n\n // create tooltip element\n var tooltipGenerator = window.document.createElement('div');\n tooltipGenerator.innerHTML = template.trim();\n var tooltipNode = tooltipGenerator.childNodes[0]; // add unique ID to our tooltip (needed for accessibility reasons)\n\n tooltipNode.id = this.options.ariaId || \"tooltip_\".concat(Math.random().toString(36).substr(2, 10)); // Initially hide the tooltip\n // The attribute will be switched in a next frame so\n // CSS transitions can play\n\n tooltipNode.setAttribute('aria-hidden', 'true');\n\n if (this.options.autoHide && this.options.trigger.indexOf('hover') !== -1) {\n tooltipNode.addEventListener('mouseenter', function (evt) {\n return _this2._scheduleHide(reference, _this2.options.delay, _this2.options, evt);\n });\n tooltipNode.addEventListener('click', function (evt) {\n return _this2._scheduleHide(reference, _this2.options.delay, _this2.options, evt);\n });\n } // return the generated tooltip node\n\n\n return tooltipNode;\n }\n }, {\n key: \"_setContent\",\n value: function _setContent(content, options) {\n var _this3 = this;\n\n this.asyncContent = false;\n\n this._applyContent(content, options).then(function () {\n if (!_this3.popperInstance) return;\n\n _this3.popperInstance.update();\n });\n }\n }, {\n key: \"_applyContent\",\n value: function _applyContent(title, options) {\n var _this4 = this;\n\n return new Promise(function (resolve, reject) {\n var allowHtml = options.html;\n var rootNode = _this4._tooltipNode;\n if (!rootNode) return;\n var titleNode = rootNode.querySelector(_this4.options.innerSelector);\n\n if (title.nodeType === 1) {\n // if title is a node, append it only if allowHtml is true\n if (allowHtml) {\n while (titleNode.firstChild) {\n titleNode.removeChild(titleNode.firstChild);\n }\n\n titleNode.appendChild(title);\n }\n } else if (typeof title === 'function') {\n // if title is a function, call it and set innerText or innerHtml depending by `allowHtml` value\n var result = title();\n\n if (result && typeof result.then === 'function') {\n _this4.asyncContent = true;\n options.loadingClass && addClasses(rootNode, options.loadingClass);\n\n if (options.loadingContent) {\n _this4._applyContent(options.loadingContent, options);\n }\n\n result.then(function (asyncResult) {\n options.loadingClass && removeClasses(rootNode, options.loadingClass);\n return _this4._applyContent(asyncResult, options);\n }).then(resolve).catch(reject);\n } else {\n _this4._applyContent(result, options).then(resolve).catch(reject);\n }\n\n return;\n } else {\n // if it's just a simple text, set innerText or innerHtml depending by `allowHtml` value\n allowHtml ? titleNode.innerHTML = title : titleNode.innerText = title;\n }\n\n resolve();\n });\n }\n }, {\n key: \"_show\",\n value: function _show(reference, options) {\n if (options && typeof options.container === 'string') {\n var container = document.querySelector(options.container);\n if (!container) return;\n }\n\n clearTimeout(this._disposeTimer);\n options = Object.assign({}, options);\n delete options.offset;\n var updateClasses = true;\n\n if (this._tooltipNode) {\n addClasses(this._tooltipNode, this._classes);\n updateClasses = false;\n }\n\n var result = this._ensureShown(reference, options);\n\n if (updateClasses && this._tooltipNode) {\n addClasses(this._tooltipNode, this._classes);\n }\n\n addClasses(reference, ['v-tooltip-open']);\n return result;\n }\n }, {\n key: \"_ensureShown\",\n value: function _ensureShown(reference, options) {\n var _this5 = this;\n\n // don't show if it's already visible\n if (this._isOpen) {\n return this;\n }\n\n this._isOpen = true;\n openTooltips.push(this); // if the tooltipNode already exists, just show it\n\n if (this._tooltipNode) {\n this._tooltipNode.style.display = '';\n\n this._tooltipNode.setAttribute('aria-hidden', 'false');\n\n this.popperInstance.enableEventListeners();\n this.popperInstance.update();\n\n if (this.asyncContent) {\n this._setContent(options.title, options);\n }\n\n return this;\n } // get title\n\n\n var title = reference.getAttribute('title') || options.title; // don't show tooltip if no title is defined\n\n if (!title) {\n return this;\n } // create tooltip node\n\n\n var tooltipNode = this._create(reference, options.template);\n\n this._tooltipNode = tooltipNode; // Add `aria-describedby` to our reference element for accessibility reasons\n\n reference.setAttribute('aria-describedby', tooltipNode.id); // append tooltip to container\n\n var container = this._findContainer(options.container, reference);\n\n this._append(tooltipNode, container);\n\n var popperOptions = _objectSpread$2(_objectSpread$2({}, options.popperOptions), {}, {\n placement: options.placement\n });\n\n popperOptions.modifiers = _objectSpread$2(_objectSpread$2({}, popperOptions.modifiers), {}, {\n arrow: {\n element: this.options.arrowSelector\n }\n });\n\n if (options.boundariesElement) {\n popperOptions.modifiers.preventOverflow = {\n boundariesElement: options.boundariesElement\n };\n }\n\n this.popperInstance = new Popper(reference, tooltipNode, popperOptions);\n\n this._setContent(title, options); // Fix position\n\n\n requestAnimationFrame(function () {\n if (!_this5._isDisposed && _this5.popperInstance) {\n _this5.popperInstance.update(); // Show the tooltip\n\n\n requestAnimationFrame(function () {\n if (!_this5._isDisposed) {\n _this5._isOpen && tooltipNode.setAttribute('aria-hidden', 'false');\n } else {\n _this5.dispose();\n }\n });\n } else {\n _this5.dispose();\n }\n });\n return this;\n }\n }, {\n key: \"_noLongerOpen\",\n value: function _noLongerOpen() {\n var index = openTooltips.indexOf(this);\n\n if (index !== -1) {\n openTooltips.splice(index, 1);\n }\n }\n }, {\n key: \"_hide\",\n value: function _hide()\n /* reference, options */\n {\n var _this6 = this;\n\n // don't hide if it's already hidden\n if (!this._isOpen) {\n return this;\n }\n\n this._isOpen = false;\n\n this._noLongerOpen(); // hide tooltipNode\n\n\n this._tooltipNode.style.display = 'none';\n\n this._tooltipNode.setAttribute('aria-hidden', 'true');\n\n if (this.popperInstance) {\n this.popperInstance.disableEventListeners();\n }\n\n clearTimeout(this._disposeTimer);\n var disposeTime = directive.options.disposeTimeout;\n\n if (disposeTime !== null) {\n this._disposeTimer = setTimeout(function () {\n if (_this6._tooltipNode) {\n _this6._tooltipNode.removeEventListener('mouseenter', _this6.hide);\n\n _this6._tooltipNode.removeEventListener('click', _this6.hide); // Don't remove popper instance, just the HTML element\n\n\n _this6._removeTooltipNode();\n }\n }, disposeTime);\n }\n\n removeClasses(this.reference, ['v-tooltip-open']);\n return this;\n }\n }, {\n key: \"_removeTooltipNode\",\n value: function _removeTooltipNode() {\n if (!this._tooltipNode) return;\n var parentNode = this._tooltipNode.parentNode;\n\n if (parentNode) {\n parentNode.removeChild(this._tooltipNode);\n this.reference.removeAttribute('aria-describedby');\n }\n\n this._tooltipNode = null;\n }\n }, {\n key: \"_dispose\",\n value: function _dispose() {\n var _this7 = this;\n\n this._isDisposed = true;\n this.reference.removeAttribute('data-original-title');\n\n if (this.$_originalTitle) {\n this.reference.setAttribute('title', this.$_originalTitle);\n } // remove event listeners first to prevent any unexpected behaviour\n\n\n this._events.forEach(function (_ref) {\n var func = _ref.func,\n event = _ref.event;\n\n _this7.reference.removeEventListener(event, func);\n });\n\n this._events = [];\n\n if (this._tooltipNode) {\n this._hide();\n\n this._tooltipNode.removeEventListener('mouseenter', this.hide);\n\n this._tooltipNode.removeEventListener('click', this.hide); // destroy instance\n\n\n this.popperInstance.destroy(); // destroy tooltipNode if removeOnDestroy is not set, as popperInstance.destroy() already removes the element\n\n if (!this.popperInstance.options.removeOnDestroy) {\n this._removeTooltipNode();\n }\n } else {\n this._noLongerOpen();\n }\n\n return this;\n }\n }, {\n key: \"_findContainer\",\n value: function _findContainer(container, reference) {\n // if container is a query, get the relative element\n if (typeof container === 'string') {\n container = window.document.querySelector(container);\n } else if (container === false) {\n // if container is `false`, set it to reference parent\n container = reference.parentNode;\n }\n\n return container;\n }\n /**\n * Append tooltip to container\n * @memberof Tooltip\n * @private\n * @param {HTMLElement} tooltip\n * @param {HTMLElement|String|false} container\n */\n\n }, {\n key: \"_append\",\n value: function _append(tooltipNode, container) {\n container.appendChild(tooltipNode);\n }\n }, {\n key: \"_setEventListeners\",\n value: function _setEventListeners(reference, events, options) {\n var _this8 = this;\n\n var directEvents = [];\n var oppositeEvents = [];\n events.forEach(function (event) {\n switch (event) {\n case 'hover':\n directEvents.push('mouseenter');\n oppositeEvents.push('mouseleave');\n if (_this8.options.hideOnTargetClick) oppositeEvents.push('click');\n break;\n\n case 'focus':\n directEvents.push('focus');\n oppositeEvents.push('blur');\n if (_this8.options.hideOnTargetClick) oppositeEvents.push('click');\n break;\n\n case 'click':\n directEvents.push('click');\n oppositeEvents.push('click');\n break;\n }\n }); // schedule show tooltip\n\n directEvents.forEach(function (event) {\n var func = function func(evt) {\n if (_this8._isOpen === true) {\n return;\n }\n\n evt.usedByTooltip = true;\n\n _this8._scheduleShow(reference, options.delay, options, evt);\n };\n\n _this8._events.push({\n event: event,\n func: func\n });\n\n reference.addEventListener(event, func);\n }); // schedule hide tooltip\n\n oppositeEvents.forEach(function (event) {\n var func = function func(evt) {\n if (evt.usedByTooltip === true) {\n return;\n }\n\n _this8._scheduleHide(reference, options.delay, options, evt);\n };\n\n _this8._events.push({\n event: event,\n func: func\n });\n\n reference.addEventListener(event, func);\n });\n }\n }, {\n key: \"_onDocumentTouch\",\n value: function _onDocumentTouch(event) {\n if (this._enableDocumentTouch) {\n this._scheduleHide(this.reference, this.options.delay, this.options, event);\n }\n }\n }, {\n key: \"_scheduleShow\",\n value: function _scheduleShow(reference, delay, options\n /*, evt */\n ) {\n var _this9 = this;\n\n // defaults to 0\n var computedDelay = delay && delay.show || delay || 0;\n clearTimeout(this._scheduleTimer);\n this._scheduleTimer = window.setTimeout(function () {\n return _this9._show(reference, options);\n }, computedDelay);\n }\n }, {\n key: \"_scheduleHide\",\n value: function _scheduleHide(reference, delay, options, evt) {\n var _this10 = this;\n\n // defaults to 0\n var computedDelay = delay && delay.hide || delay || 0;\n clearTimeout(this._scheduleTimer);\n this._scheduleTimer = window.setTimeout(function () {\n if (_this10._isOpen === false) {\n return;\n }\n\n if (!_this10._tooltipNode.ownerDocument.body.contains(_this10._tooltipNode)) {\n return;\n } // if we are hiding because of a mouseleave, we must check that the new\n // reference isn't the tooltip, because in this case we don't want to hide it\n\n\n if (evt.type === 'mouseleave') {\n var isSet = _this10._setTooltipNodeEvent(evt, reference, delay, options); // if we set the new event, don't hide the tooltip yet\n // the new event will take care to hide it if necessary\n\n\n if (isSet) {\n return;\n }\n }\n\n _this10._hide(reference, options);\n }, computedDelay);\n }\n }]);\n\n return Tooltip;\n}(); // Hide tooltips on touch devices\n\nif (typeof document !== 'undefined') {\n document.addEventListener('touchstart', function (event) {\n for (var i = 0; i < openTooltips.length; i++) {\n openTooltips[i]._onDocumentTouch(event);\n }\n }, supportsPassive ? {\n passive: true,\n capture: true\n } : true);\n}\n/**\n * Placement function, its context is the Tooltip instance.\n * @memberof Tooltip\n * @callback PlacementFunction\n * @param {HTMLElement} tooltip - tooltip DOM node.\n * @param {HTMLElement} reference - reference DOM node.\n * @return {String} placement - One of the allowed placement options.\n */\n\n/**\n * Title function, its context is the Tooltip instance.\n * @memberof Tooltip\n * @callback TitleFunction\n * @return {String} placement - The desired title.\n */\n\nfunction ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\nvar state = {\n enabled: true\n};\nvar positions = ['top', 'top-start', 'top-end', 'right', 'right-start', 'right-end', 'bottom', 'bottom-start', 'bottom-end', 'left', 'left-start', 'left-end'];\nvar defaultOptions = {\n // Default tooltip placement relative to target element\n defaultPlacement: 'top',\n // Default CSS classes applied to the tooltip element\n defaultClass: 'vue-tooltip-theme',\n // Default CSS classes applied to the target element of the tooltip\n defaultTargetClass: 'has-tooltip',\n // Is the content HTML by default?\n defaultHtml: true,\n // Default HTML template of the tooltip element\n // It must include `tooltip-arrow` & `tooltip-inner` CSS classes (can be configured, see below)\n // Change if the classes conflict with other libraries (for example bootstrap)\n defaultTemplate: '
',\n // Selector used to get the arrow element in the tooltip template\n defaultArrowSelector: '.tooltip-arrow, .tooltip__arrow',\n // Selector used to get the inner content element in the tooltip template\n defaultInnerSelector: '.tooltip-inner, .tooltip__inner',\n // Delay (ms)\n defaultDelay: 0,\n // Default events that trigger the tooltip\n defaultTrigger: 'hover focus',\n // Default position offset (px)\n defaultOffset: 0,\n // Default container where the tooltip will be appended\n defaultContainer: 'body',\n defaultBoundariesElement: undefined,\n defaultPopperOptions: {},\n // Class added when content is loading\n defaultLoadingClass: 'tooltip-loading',\n // Displayed when tooltip content is loading\n defaultLoadingContent: '...',\n // Hide on mouseover tooltip\n autoHide: true,\n // Close tooltip on click on tooltip target?\n defaultHideOnTargetClick: true,\n // Auto destroy tooltip DOM nodes (ms)\n disposeTimeout: 5000,\n // Options for popover\n popover: {\n defaultPlacement: 'bottom',\n // Use the `popoverClass` prop for theming\n defaultClass: 'vue-popover-theme',\n // Base class (change if conflicts with other libraries)\n defaultBaseClass: 'tooltip popover',\n // Wrapper class (contains arrow and inner)\n defaultWrapperClass: 'wrapper',\n // Inner content class\n defaultInnerClass: 'tooltip-inner popover-inner',\n // Arrow class\n defaultArrowClass: 'tooltip-arrow popover-arrow',\n // Class added when popover is open\n defaultOpenClass: 'open',\n defaultDelay: 0,\n defaultTrigger: 'click',\n defaultOffset: 0,\n defaultContainer: 'body',\n defaultBoundariesElement: undefined,\n defaultPopperOptions: {},\n // Hides if clicked outside of popover\n defaultAutoHide: true,\n // Update popper on content resize\n defaultHandleResize: true\n }\n};\nfunction getOptions(options) {\n var result = {\n placement: typeof options.placement !== 'undefined' ? options.placement : directive.options.defaultPlacement,\n delay: typeof options.delay !== 'undefined' ? options.delay : directive.options.defaultDelay,\n html: typeof options.html !== 'undefined' ? options.html : directive.options.defaultHtml,\n template: typeof options.template !== 'undefined' ? options.template : directive.options.defaultTemplate,\n arrowSelector: typeof options.arrowSelector !== 'undefined' ? options.arrowSelector : directive.options.defaultArrowSelector,\n innerSelector: typeof options.innerSelector !== 'undefined' ? options.innerSelector : directive.options.defaultInnerSelector,\n trigger: typeof options.trigger !== 'undefined' ? options.trigger : directive.options.defaultTrigger,\n offset: typeof options.offset !== 'undefined' ? options.offset : directive.options.defaultOffset,\n container: typeof options.container !== 'undefined' ? options.container : directive.options.defaultContainer,\n boundariesElement: typeof options.boundariesElement !== 'undefined' ? options.boundariesElement : directive.options.defaultBoundariesElement,\n autoHide: typeof options.autoHide !== 'undefined' ? options.autoHide : directive.options.autoHide,\n hideOnTargetClick: typeof options.hideOnTargetClick !== 'undefined' ? options.hideOnTargetClick : directive.options.defaultHideOnTargetClick,\n loadingClass: typeof options.loadingClass !== 'undefined' ? options.loadingClass : directive.options.defaultLoadingClass,\n loadingContent: typeof options.loadingContent !== 'undefined' ? options.loadingContent : directive.options.defaultLoadingContent,\n popperOptions: _objectSpread$1({}, typeof options.popperOptions !== 'undefined' ? options.popperOptions : directive.options.defaultPopperOptions)\n };\n\n if (result.offset) {\n var typeofOffset = _typeof(result.offset);\n\n var offset = result.offset; // One value -> switch\n\n if (typeofOffset === 'number' || typeofOffset === 'string' && offset.indexOf(',') === -1) {\n offset = \"0, \".concat(offset);\n }\n\n if (!result.popperOptions.modifiers) {\n result.popperOptions.modifiers = {};\n }\n\n result.popperOptions.modifiers.offset = {\n offset: offset\n };\n }\n\n if (result.trigger && result.trigger.indexOf('click') !== -1) {\n result.hideOnTargetClick = false;\n }\n\n return result;\n}\nfunction getPlacement(value, modifiers) {\n var placement = value.placement;\n\n for (var i = 0; i < positions.length; i++) {\n var pos = positions[i];\n\n if (modifiers[pos]) {\n placement = pos;\n }\n }\n\n return placement;\n}\nfunction getContent(value) {\n var type = _typeof(value);\n\n if (type === 'string') {\n return value;\n } else if (value && type === 'object') {\n return value.content;\n } else {\n return false;\n }\n}\nfunction createTooltip(el, value) {\n var modifiers = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var content = getContent(value);\n var classes = typeof value.classes !== 'undefined' ? value.classes : directive.options.defaultClass;\n\n var opts = _objectSpread$1({\n title: content\n }, getOptions(_objectSpread$1(_objectSpread$1({}, _typeof(value) === 'object' ? value : {}), {}, {\n placement: getPlacement(value, modifiers)\n })));\n\n var tooltip = el._tooltip = new Tooltip(el, opts);\n tooltip.setClasses(classes);\n tooltip._vueEl = el; // Class on target\n\n var targetClasses = typeof value.targetClasses !== 'undefined' ? value.targetClasses : directive.options.defaultTargetClass;\n el._tooltipTargetClasses = targetClasses;\n addClasses(el, targetClasses);\n return tooltip;\n}\nfunction destroyTooltip(el) {\n if (el._tooltip) {\n el._tooltip.dispose();\n\n delete el._tooltip;\n delete el._tooltipOldShow;\n }\n\n if (el._tooltipTargetClasses) {\n removeClasses(el, el._tooltipTargetClasses);\n delete el._tooltipTargetClasses;\n }\n}\nfunction bind(el, _ref) {\n var value = _ref.value;\n _ref.oldValue;\n var modifiers = _ref.modifiers;\n var content = getContent(value);\n\n if (!content || !state.enabled) {\n destroyTooltip(el);\n } else {\n var tooltip;\n\n if (el._tooltip) {\n tooltip = el._tooltip; // Content\n\n tooltip.setContent(content); // Options\n\n tooltip.setOptions(_objectSpread$1(_objectSpread$1({}, value), {}, {\n placement: getPlacement(value, modifiers)\n }));\n } else {\n tooltip = createTooltip(el, value, modifiers);\n } // Manual show\n\n\n if (typeof value.show !== 'undefined' && value.show !== el._tooltipOldShow) {\n el._tooltipOldShow = value.show;\n value.show ? tooltip.show() : tooltip.hide();\n }\n }\n}\nvar directive = {\n options: defaultOptions,\n bind: bind,\n update: bind,\n unbind: function unbind(el) {\n destroyTooltip(el);\n }\n};\n\nfunction addListeners(el) {\n el.addEventListener('click', onClick);\n el.addEventListener('touchstart', onTouchStart, supportsPassive ? {\n passive: true\n } : false);\n}\n\nfunction removeListeners(el) {\n el.removeEventListener('click', onClick);\n el.removeEventListener('touchstart', onTouchStart);\n el.removeEventListener('touchend', onTouchEnd);\n el.removeEventListener('touchcancel', onTouchCancel);\n}\n\nfunction onClick(event) {\n var el = event.currentTarget;\n event.closePopover = !el.$_vclosepopover_touch;\n event.closeAllPopover = el.$_closePopoverModifiers && !!el.$_closePopoverModifiers.all;\n}\n\nfunction onTouchStart(event) {\n if (event.changedTouches.length === 1) {\n var el = event.currentTarget;\n el.$_vclosepopover_touch = true;\n var touch = event.changedTouches[0];\n el.$_vclosepopover_touchPoint = touch;\n el.addEventListener('touchend', onTouchEnd);\n el.addEventListener('touchcancel', onTouchCancel);\n }\n}\n\nfunction onTouchEnd(event) {\n var el = event.currentTarget;\n el.$_vclosepopover_touch = false;\n\n if (event.changedTouches.length === 1) {\n var touch = event.changedTouches[0];\n var firstTouch = el.$_vclosepopover_touchPoint;\n event.closePopover = Math.abs(touch.screenY - firstTouch.screenY) < 20 && Math.abs(touch.screenX - firstTouch.screenX) < 20;\n event.closeAllPopover = el.$_closePopoverModifiers && !!el.$_closePopoverModifiers.all;\n }\n}\n\nfunction onTouchCancel(event) {\n var el = event.currentTarget;\n el.$_vclosepopover_touch = false;\n}\n\nvar vclosepopover = {\n bind: function bind(el, _ref) {\n var value = _ref.value,\n modifiers = _ref.modifiers;\n el.$_closePopoverModifiers = modifiers;\n\n if (typeof value === 'undefined' || value) {\n addListeners(el);\n }\n },\n update: function update(el, _ref2) {\n var value = _ref2.value,\n oldValue = _ref2.oldValue,\n modifiers = _ref2.modifiers;\n el.$_closePopoverModifiers = modifiers;\n\n if (value !== oldValue) {\n if (typeof value === 'undefined' || value) {\n addListeners(el);\n } else {\n removeListeners(el);\n }\n }\n },\n unbind: function unbind(el) {\n removeListeners(el);\n }\n};\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction getDefault(key) {\n var value = directive.options.popover[key];\n\n if (typeof value === 'undefined') {\n return directive.options[key];\n }\n\n return value;\n}\n\nvar isIOS = false;\n\nif (typeof window !== 'undefined' && typeof navigator !== 'undefined') {\n isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;\n}\n\nvar openPopovers = [];\n\nvar Element = function Element() {};\n\nif (typeof window !== 'undefined') {\n Element = window.Element;\n}\n\nvar script = {\n name: 'VPopover',\n components: {\n ResizeObserver: ResizeObserver\n },\n props: {\n open: {\n type: Boolean,\n default: false\n },\n disabled: {\n type: Boolean,\n default: false\n },\n placement: {\n type: String,\n default: function _default() {\n return getDefault('defaultPlacement');\n }\n },\n delay: {\n type: [String, Number, Object],\n default: function _default() {\n return getDefault('defaultDelay');\n }\n },\n offset: {\n type: [String, Number],\n default: function _default() {\n return getDefault('defaultOffset');\n }\n },\n trigger: {\n type: String,\n default: function _default() {\n return getDefault('defaultTrigger');\n }\n },\n container: {\n type: [String, Object, Element, Boolean],\n default: function _default() {\n return getDefault('defaultContainer');\n }\n },\n boundariesElement: {\n type: [String, Element],\n default: function _default() {\n return getDefault('defaultBoundariesElement');\n }\n },\n popperOptions: {\n type: Object,\n default: function _default() {\n return getDefault('defaultPopperOptions');\n }\n },\n popoverClass: {\n type: [String, Array],\n default: function _default() {\n return getDefault('defaultClass');\n }\n },\n popoverBaseClass: {\n type: [String, Array],\n default: function _default() {\n return directive.options.popover.defaultBaseClass;\n }\n },\n popoverInnerClass: {\n type: [String, Array],\n default: function _default() {\n return directive.options.popover.defaultInnerClass;\n }\n },\n popoverWrapperClass: {\n type: [String, Array],\n default: function _default() {\n return directive.options.popover.defaultWrapperClass;\n }\n },\n popoverArrowClass: {\n type: [String, Array],\n default: function _default() {\n return directive.options.popover.defaultArrowClass;\n }\n },\n autoHide: {\n type: Boolean,\n default: function _default() {\n return directive.options.popover.defaultAutoHide;\n }\n },\n handleResize: {\n type: Boolean,\n default: function _default() {\n return directive.options.popover.defaultHandleResize;\n }\n },\n openGroup: {\n type: String,\n default: null\n },\n openClass: {\n type: [String, Array],\n default: function _default() {\n return directive.options.popover.defaultOpenClass;\n }\n },\n ariaId: {\n default: null\n }\n },\n data: function data() {\n return {\n isOpen: false,\n id: Math.random().toString(36).substr(2, 10)\n };\n },\n computed: {\n cssClass: function cssClass() {\n return _defineProperty({}, this.openClass, this.isOpen);\n },\n popoverId: function popoverId() {\n return \"popover_\".concat(this.ariaId != null ? this.ariaId : this.id);\n }\n },\n watch: {\n open: function open(val) {\n if (val) {\n this.show();\n } else {\n this.hide();\n }\n },\n disabled: function disabled(val, oldVal) {\n if (val !== oldVal) {\n if (val) {\n this.hide();\n } else if (this.open) {\n this.show();\n }\n }\n },\n container: function container(val) {\n if (this.isOpen && this.popperInstance) {\n var popoverNode = this.$refs.popover;\n var reference = this.$refs.trigger;\n var container = this.$_findContainer(this.container, reference);\n\n if (!container) {\n console.warn('No container for popover', this);\n return;\n }\n\n container.appendChild(popoverNode);\n this.popperInstance.scheduleUpdate();\n }\n },\n trigger: function trigger(val) {\n this.$_removeEventListeners();\n this.$_addEventListeners();\n },\n placement: function placement(val) {\n var _this = this;\n\n this.$_updatePopper(function () {\n _this.popperInstance.options.placement = val;\n });\n },\n offset: '$_restartPopper',\n boundariesElement: '$_restartPopper',\n popperOptions: {\n handler: '$_restartPopper',\n deep: true\n }\n },\n created: function created() {\n this.$_isDisposed = false;\n this.$_mounted = false;\n this.$_events = [];\n this.$_preventOpen = false;\n },\n mounted: function mounted() {\n var popoverNode = this.$refs.popover;\n popoverNode.parentNode && popoverNode.parentNode.removeChild(popoverNode);\n this.$_init();\n\n if (this.open) {\n this.show();\n }\n },\n deactivated: function deactivated() {\n this.hide();\n },\n beforeDestroy: function beforeDestroy() {\n this.dispose();\n },\n methods: {\n show: function show() {\n var _this2 = this;\n\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n event = _ref2.event;\n _ref2.skipDelay;\n var _ref2$force = _ref2.force,\n force = _ref2$force === void 0 ? false : _ref2$force;\n\n if (force || !this.disabled) {\n this.$_scheduleShow(event);\n this.$emit('show');\n }\n\n this.$emit('update:open', true);\n this.$_beingShowed = true;\n requestAnimationFrame(function () {\n _this2.$_beingShowed = false;\n });\n },\n hide: function hide() {\n var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n event = _ref3.event;\n _ref3.skipDelay;\n\n this.$_scheduleHide(event);\n this.$emit('hide');\n this.$emit('update:open', false);\n },\n dispose: function dispose() {\n this.$_isDisposed = true;\n this.$_removeEventListeners();\n this.hide({\n skipDelay: true\n });\n\n if (this.popperInstance) {\n this.popperInstance.destroy(); // destroy tooltipNode if removeOnDestroy is not set, as popperInstance.destroy() already removes the element\n\n if (!this.popperInstance.options.removeOnDestroy) {\n var popoverNode = this.$refs.popover;\n popoverNode.parentNode && popoverNode.parentNode.removeChild(popoverNode);\n }\n }\n\n this.$_mounted = false;\n this.popperInstance = null;\n this.isOpen = false;\n this.$emit('dispose');\n },\n $_init: function $_init() {\n if (this.trigger.indexOf('manual') === -1) {\n this.$_addEventListeners();\n }\n },\n $_show: function $_show() {\n var _this3 = this;\n\n var reference = this.$refs.trigger;\n var popoverNode = this.$refs.popover;\n clearTimeout(this.$_disposeTimer); // Already open\n\n if (this.isOpen) {\n return;\n } // Popper is already initialized\n\n\n if (this.popperInstance) {\n this.isOpen = true;\n this.popperInstance.enableEventListeners();\n this.popperInstance.scheduleUpdate();\n }\n\n if (!this.$_mounted) {\n var container = this.$_findContainer(this.container, reference);\n\n if (!container) {\n console.warn('No container for popover', this);\n return;\n }\n\n container.appendChild(popoverNode);\n this.$_mounted = true;\n this.isOpen = false;\n\n if (this.popperInstance) {\n requestAnimationFrame(function () {\n if (!_this3.hidden) {\n _this3.isOpen = true;\n }\n });\n }\n }\n\n if (!this.popperInstance) {\n var popperOptions = _objectSpread(_objectSpread({}, this.popperOptions), {}, {\n placement: this.placement\n });\n\n popperOptions.modifiers = _objectSpread(_objectSpread({}, popperOptions.modifiers), {}, {\n arrow: _objectSpread(_objectSpread({}, popperOptions.modifiers && popperOptions.modifiers.arrow), {}, {\n element: this.$refs.arrow\n })\n });\n\n if (this.offset) {\n var offset = this.$_getOffset();\n popperOptions.modifiers.offset = _objectSpread(_objectSpread({}, popperOptions.modifiers && popperOptions.modifiers.offset), {}, {\n offset: offset\n });\n }\n\n if (this.boundariesElement) {\n popperOptions.modifiers.preventOverflow = _objectSpread(_objectSpread({}, popperOptions.modifiers && popperOptions.modifiers.preventOverflow), {}, {\n boundariesElement: this.boundariesElement\n });\n }\n\n this.popperInstance = new Popper(reference, popoverNode, popperOptions); // Fix position\n\n requestAnimationFrame(function () {\n if (_this3.hidden) {\n _this3.hidden = false;\n\n _this3.$_hide();\n\n return;\n }\n\n if (!_this3.$_isDisposed && _this3.popperInstance) {\n _this3.popperInstance.scheduleUpdate(); // Show the tooltip\n\n\n requestAnimationFrame(function () {\n if (_this3.hidden) {\n _this3.hidden = false;\n\n _this3.$_hide();\n\n return;\n }\n\n if (!_this3.$_isDisposed) {\n _this3.isOpen = true;\n } else {\n _this3.dispose();\n }\n });\n } else {\n _this3.dispose();\n }\n });\n }\n\n var openGroup = this.openGroup;\n\n if (openGroup) {\n var popover;\n\n for (var i = 0; i < openPopovers.length; i++) {\n popover = openPopovers[i];\n\n if (popover.openGroup !== openGroup) {\n popover.hide();\n popover.$emit('close-group');\n }\n }\n }\n\n openPopovers.push(this);\n this.$emit('apply-show');\n },\n $_hide: function $_hide() {\n var _this4 = this;\n\n // Already hidden\n if (!this.isOpen) {\n return;\n }\n\n var index = openPopovers.indexOf(this);\n\n if (index !== -1) {\n openPopovers.splice(index, 1);\n }\n\n this.isOpen = false;\n\n if (this.popperInstance) {\n this.popperInstance.disableEventListeners();\n }\n\n clearTimeout(this.$_disposeTimer);\n var disposeTime = directive.options.popover.disposeTimeout || directive.options.disposeTimeout;\n\n if (disposeTime !== null) {\n this.$_disposeTimer = setTimeout(function () {\n var popoverNode = _this4.$refs.popover;\n\n if (popoverNode) {\n // Don't remove popper instance, just the HTML element\n popoverNode.parentNode && popoverNode.parentNode.removeChild(popoverNode);\n _this4.$_mounted = false;\n }\n }, disposeTime);\n }\n\n this.$emit('apply-hide');\n },\n $_findContainer: function $_findContainer(container, reference) {\n // if container is a query, get the relative element\n if (typeof container === 'string') {\n container = window.document.querySelector(container);\n } else if (container === false) {\n // if container is `false`, set it to reference parent\n container = reference.parentNode;\n }\n\n return container;\n },\n $_getOffset: function $_getOffset() {\n var typeofOffset = _typeof(this.offset);\n\n var offset = this.offset; // One value -> switch\n\n if (typeofOffset === 'number' || typeofOffset === 'string' && offset.indexOf(',') === -1) {\n offset = \"0, \".concat(offset);\n }\n\n return offset;\n },\n $_addEventListeners: function $_addEventListeners() {\n var _this5 = this;\n\n var reference = this.$refs.trigger;\n var directEvents = [];\n var oppositeEvents = [];\n var events = typeof this.trigger === 'string' ? this.trigger.split(' ').filter(function (trigger) {\n return ['click', 'hover', 'focus'].indexOf(trigger) !== -1;\n }) : [];\n events.forEach(function (event) {\n switch (event) {\n case 'hover':\n directEvents.push('mouseenter');\n oppositeEvents.push('mouseleave');\n break;\n\n case 'focus':\n directEvents.push('focus');\n oppositeEvents.push('blur');\n break;\n\n case 'click':\n directEvents.push('click');\n oppositeEvents.push('click');\n break;\n }\n }); // schedule show tooltip\n\n directEvents.forEach(function (event) {\n var func = function func(event) {\n if (_this5.isOpen) {\n return;\n }\n\n event.usedByTooltip = true;\n !_this5.$_preventOpen && _this5.show({\n event: event\n });\n _this5.hidden = false;\n };\n\n _this5.$_events.push({\n event: event,\n func: func\n });\n\n reference.addEventListener(event, func);\n }); // schedule hide tooltip\n\n oppositeEvents.forEach(function (event) {\n var func = function func(event) {\n if (event.usedByTooltip) {\n return;\n }\n\n _this5.hide({\n event: event\n });\n\n _this5.hidden = true;\n };\n\n _this5.$_events.push({\n event: event,\n func: func\n });\n\n reference.addEventListener(event, func);\n });\n },\n $_scheduleShow: function $_scheduleShow() {\n var skipDelay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n clearTimeout(this.$_scheduleTimer);\n\n if (skipDelay) {\n this.$_show();\n } else {\n // defaults to 0\n var computedDelay = parseInt(this.delay && this.delay.show || this.delay || 0);\n this.$_scheduleTimer = setTimeout(this.$_show.bind(this), computedDelay);\n }\n },\n $_scheduleHide: function $_scheduleHide() {\n var _this6 = this;\n\n var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var skipDelay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n clearTimeout(this.$_scheduleTimer);\n\n if (skipDelay) {\n this.$_hide();\n } else {\n // defaults to 0\n var computedDelay = parseInt(this.delay && this.delay.hide || this.delay || 0);\n this.$_scheduleTimer = setTimeout(function () {\n if (!_this6.isOpen) {\n return;\n } // if we are hiding because of a mouseleave, we must check that the new\n // reference isn't the tooltip, because in this case we don't want to hide it\n\n\n if (event && event.type === 'mouseleave') {\n var isSet = _this6.$_setTooltipNodeEvent(event); // if we set the new event, don't hide the tooltip yet\n // the new event will take care to hide it if necessary\n\n\n if (isSet) {\n return;\n }\n }\n\n _this6.$_hide();\n }, computedDelay);\n }\n },\n $_setTooltipNodeEvent: function $_setTooltipNodeEvent(event) {\n var _this7 = this;\n\n var reference = this.$refs.trigger;\n var popoverNode = this.$refs.popover;\n var relatedreference = event.relatedreference || event.toElement || event.relatedTarget;\n\n var callback = function callback(event2) {\n var relatedreference2 = event2.relatedreference || event2.toElement || event2.relatedTarget; // Remove event listener after call\n\n popoverNode.removeEventListener(event.type, callback); // If the new reference is not the reference element\n\n if (!reference.contains(relatedreference2)) {\n // Schedule to hide tooltip\n _this7.hide({\n event: event2\n });\n }\n };\n\n if (popoverNode.contains(relatedreference)) {\n // listen to mouseleave on the tooltip element to be able to hide the tooltip\n popoverNode.addEventListener(event.type, callback);\n return true;\n }\n\n return false;\n },\n $_removeEventListeners: function $_removeEventListeners() {\n var reference = this.$refs.trigger;\n this.$_events.forEach(function (_ref4) {\n var func = _ref4.func,\n event = _ref4.event;\n reference.removeEventListener(event, func);\n });\n this.$_events = [];\n },\n $_updatePopper: function $_updatePopper(cb) {\n if (this.popperInstance) {\n cb();\n if (this.isOpen) this.popperInstance.scheduleUpdate();\n }\n },\n $_restartPopper: function $_restartPopper() {\n if (this.popperInstance) {\n var isOpen = this.isOpen;\n this.dispose();\n this.$_isDisposed = false;\n this.$_init();\n\n if (isOpen) {\n this.show({\n skipDelay: true,\n force: true\n });\n }\n }\n },\n $_handleGlobalClose: function $_handleGlobalClose(event) {\n var _this8 = this;\n\n var touch = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (this.$_beingShowed) return;\n this.hide({\n event: event\n });\n\n if (event.closePopover) {\n this.$emit('close-directive');\n } else {\n this.$emit('auto-hide');\n }\n\n if (touch) {\n this.$_preventOpen = true;\n setTimeout(function () {\n _this8.$_preventOpen = false;\n }, 300);\n }\n },\n $_handleResize: function $_handleResize() {\n if (this.isOpen && this.popperInstance) {\n this.popperInstance.scheduleUpdate();\n this.$emit('resize');\n }\n }\n }\n};\n\nif (typeof document !== 'undefined' && typeof window !== 'undefined') {\n if (isIOS) {\n document.addEventListener('touchend', handleGlobalTouchend, supportsPassive ? {\n passive: true,\n capture: true\n } : true);\n } else {\n window.addEventListener('click', handleGlobalClick, true);\n }\n}\n\nfunction handleGlobalClick(event) {\n handleGlobalClose(event);\n}\n\nfunction handleGlobalTouchend(event) {\n handleGlobalClose(event, true);\n}\n\nfunction handleGlobalClose(event) {\n var touch = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var _loop = function _loop(i) {\n var popover = openPopovers[i];\n\n if (popover.$refs.popover) {\n var contains = popover.$refs.popover.contains(event.target);\n requestAnimationFrame(function () {\n if (event.closeAllPopover || event.closePopover && contains || popover.autoHide && !contains) {\n popover.$_handleGlobalClose(event, touch);\n }\n });\n }\n };\n\n // Delay so that close directive has time to set values\n for (var i = 0; i < openPopovers.length; i++) {\n _loop(i);\n }\n}\n\nfunction normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {\r\n if (typeof shadowMode !== 'boolean') {\r\n createInjectorSSR = createInjector;\r\n createInjector = shadowMode;\r\n shadowMode = false;\r\n }\r\n // Vue.extend constructor export interop.\r\n const options = typeof script === 'function' ? script.options : script;\r\n // render functions\r\n if (template && template.render) {\r\n options.render = template.render;\r\n options.staticRenderFns = template.staticRenderFns;\r\n options._compiled = true;\r\n // functional template\r\n if (isFunctionalTemplate) {\r\n options.functional = true;\r\n }\r\n }\r\n // scopedId\r\n if (scopeId) {\r\n options._scopeId = scopeId;\r\n }\r\n let hook;\r\n if (moduleIdentifier) {\r\n // server build\r\n hook = function (context) {\r\n // 2.3 injection\r\n context =\r\n context || // cached call\r\n (this.$vnode && this.$vnode.ssrContext) || // stateful\r\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext); // functional\r\n // 2.2 with runInNewContext: true\r\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\r\n context = __VUE_SSR_CONTEXT__;\r\n }\r\n // inject component styles\r\n if (style) {\r\n style.call(this, createInjectorSSR(context));\r\n }\r\n // register component module identifier for async chunk inference\r\n if (context && context._registeredComponents) {\r\n context._registeredComponents.add(moduleIdentifier);\r\n }\r\n };\r\n // used by ssr in case component is cached and beforeCreate\r\n // never gets called\r\n options._ssrRegister = hook;\r\n }\r\n else if (style) {\r\n hook = shadowMode\r\n ? function (context) {\r\n style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));\r\n }\r\n : function (context) {\r\n style.call(this, createInjector(context));\r\n };\r\n }\r\n if (hook) {\r\n if (options.functional) {\r\n // register for functional component in vue file\r\n const originalRender = options.render;\r\n options.render = function renderWithStyleInjection(h, context) {\r\n hook.call(context);\r\n return originalRender(h, context);\r\n };\r\n }\r\n else {\r\n // inject component registration as beforeCreate hook\r\n const existing = options.beforeCreate;\r\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\r\n }\r\n }\r\n return script;\r\n}\n\n/* script */\nvar __vue_script__ = script;\n/* template */\n\nvar __vue_render__ = function __vue_render__() {\n var _vm = this;\n\n var _h = _vm.$createElement;\n\n var _c = _vm._self._c || _h;\n\n return _c(\"div\", {\n staticClass: \"v-popover\",\n class: _vm.cssClass\n }, [_c(\"div\", {\n ref: \"trigger\",\n staticClass: \"trigger\",\n staticStyle: {\n display: \"inline-block\"\n },\n attrs: {\n \"aria-describedby\": _vm.isOpen ? _vm.popoverId : undefined,\n tabindex: _vm.trigger.indexOf(\"focus\") !== -1 ? 0 : undefined\n }\n }, [_vm._t(\"default\")], 2), _vm._v(\" \"), _c(\"div\", {\n ref: \"popover\",\n class: [_vm.popoverBaseClass, _vm.popoverClass, _vm.cssClass],\n style: {\n visibility: _vm.isOpen ? \"visible\" : \"hidden\"\n },\n attrs: {\n id: _vm.popoverId,\n \"aria-hidden\": _vm.isOpen ? \"false\" : \"true\",\n tabindex: _vm.autoHide ? 0 : undefined\n },\n on: {\n keyup: function keyup($event) {\n if (!$event.type.indexOf(\"key\") && _vm._k($event.keyCode, \"esc\", 27, $event.key, [\"Esc\", \"Escape\"])) {\n return null;\n }\n\n _vm.autoHide && _vm.hide();\n }\n }\n }, [_c(\"div\", {\n class: _vm.popoverWrapperClass\n }, [_c(\"div\", {\n ref: \"inner\",\n class: _vm.popoverInnerClass,\n staticStyle: {\n position: \"relative\"\n }\n }, [_c(\"div\", [_vm._t(\"popover\", null, {\n isOpen: _vm.isOpen\n })], 2), _vm._v(\" \"), _vm.handleResize ? _c(\"ResizeObserver\", {\n on: {\n notify: _vm.$_handleResize\n }\n }) : _vm._e()], 1), _vm._v(\" \"), _c(\"div\", {\n ref: \"arrow\",\n class: _vm.popoverArrowClass\n })])])]);\n};\n\nvar __vue_staticRenderFns__ = [];\n__vue_render__._withStripped = true;\n/* style */\n\nvar __vue_inject_styles__ = undefined;\n/* scoped */\n\nvar __vue_scope_id__ = undefined;\n/* module identifier */\n\nvar __vue_module_identifier__ = undefined;\n/* functional template */\n\nvar __vue_is_functional_template__ = false;\n/* style inject */\n\n/* style inject SSR */\n\n/* style inject shadow dom */\n\nvar __vue_component__ = /*#__PURE__*/normalizeComponent({\n render: __vue_render__,\n staticRenderFns: __vue_staticRenderFns__\n}, __vue_inject_styles__, __vue_script__, __vue_scope_id__, __vue_is_functional_template__, __vue_module_identifier__, false, undefined, undefined, undefined);\n\nfunction styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar css_248z = \".resize-observer[data-v-8859cc6c]{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;border:none;background-color:transparent;pointer-events:none;display:block;overflow:hidden;opacity:0}.resize-observer[data-v-8859cc6c] object{display:block;position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1}\";\nstyleInject(css_248z);\n\nfunction install(Vue) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (install.installed) return;\n install.installed = true;\n var finalOptions = {};\n merge(finalOptions, defaultOptions, options);\n plugin.options = finalOptions;\n directive.options = finalOptions;\n Vue.directive('tooltip', directive);\n Vue.directive('close-popover', vclosepopover);\n Vue.component('VPopover', __vue_component__);\n}\nvar VTooltip = directive;\nvar VClosePopover = vclosepopover;\nvar VPopover = __vue_component__;\nvar plugin = {\n install: install,\n\n get enabled() {\n return state.enabled;\n },\n\n set enabled(value) {\n state.enabled = value;\n }\n\n}; // Auto-install\n\nvar GlobalVue = null;\n\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue;\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue;\n}\n\nif (GlobalVue) {\n GlobalVue.use(plugin);\n}\n\nexport default plugin;\nexport { VClosePopover, VPopover, VTooltip, createTooltip, destroyTooltip, install };\n","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c(_setup.NcContent,{attrs:{\"app-name\":\"settings\"}},[_c('router-view',{attrs:{\"name\":\"navigation\"}}),_vm._v(\" \"),_c('router-view'),_vm._v(\" \"),_c('router-view',{attrs:{\"name\":\"sidebar\"}})],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-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SettingsApp.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-6.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SettingsApp.vue?vue&type=script&setup=true&lang=ts\"","import { render, staticRenderFns } from \"./SettingsApp.vue?vue&type=template&id=288003b1\"\nimport script from \"./SettingsApp.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./SettingsApp.vue?vue&type=script&setup=true&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 { loadState } from '@nextcloud/initial-state';\nconst appstoreEnabled = loadState('settings', 'appstoreEnabled', true);\n// Dynamic loading\nconst AppStore = () => import(/* webpackChunkName: 'settings-apps-view' */ '../views/AppStore.vue');\nconst AppStoreNavigation = () => import(/* webpackChunkName: 'settings-apps-view' */ '../views/AppStoreNavigation.vue');\nconst AppStoreSidebar = () => import(/* webpackChunkName: 'settings-apps-view' */ '../views/AppStoreSidebar.vue');\nconst UserManagement = () => import(/* webpackChunkName: 'settings-users' */ '../views/UserManagement.vue');\nconst UserManagementNavigation = () => import(/* webpackChunkName: 'settings-users' */ '../views/UserManagementNavigation.vue');\nconst routes = [\n {\n name: 'users',\n path: '/:index(index.php/)?settings/users',\n components: {\n default: UserManagement,\n navigation: UserManagementNavigation,\n },\n props: true,\n children: [\n {\n path: ':selectedGroup',\n name: 'group',\n },\n ],\n },\n {\n path: '/:index(index.php/)?settings/apps',\n name: 'apps',\n redirect: {\n name: 'apps-category',\n params: {\n category: appstoreEnabled ? 'discover' : 'installed',\n },\n },\n components: {\n default: AppStore,\n navigation: AppStoreNavigation,\n sidebar: AppStoreSidebar,\n },\n children: [\n {\n path: ':category',\n name: 'apps-category',\n children: [\n {\n path: ':id',\n name: 'apps-details',\n },\n ],\n },\n ],\n },\n];\nexport default routes;\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { generateUrl } from '@nextcloud/router';\nimport Vue from 'vue';\nimport Router from 'vue-router';\nimport routes from './routes.ts';\nVue.use(Router);\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(''),\n linkActiveClass: 'active',\n routes,\n});\nexport default router;\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getCSPNonce } from '@nextcloud/auth';\nimport axios from '@nextcloud/axios';\nimport { n, t } from '@nextcloud/l10n';\nimport { addPasswordConfirmationInterceptors } from '@nextcloud/password-confirmation';\nimport { createPinia, PiniaVuePlugin } from 'pinia';\nimport VTooltipPlugin from 'v-tooltip';\nimport Vue from 'vue';\nimport Vuex from 'vuex';\nimport { sync } from 'vuex-router-sync';\nimport SettingsApp from './views/SettingsApp.vue';\nimport router from './router/index.ts';\nimport { useStore } from './store/index.js';\naddPasswordConfirmationInterceptors(axios);\n// CSP config for webpack dynamic chunk loading\n__webpack_nonce__ = getCSPNonce();\n// bind to window\nVue.prototype.t = t;\nVue.prototype.n = n;\nVue.use(PiniaVuePlugin);\nVue.use(VTooltipPlugin, { defaultHtml: false });\nVue.use(Vuex);\nconst store = useStore();\nsync(store, router);\nconst pinia = createPinia();\n// Migrate legacy local storage settings to the database\nstore.dispatch('migrateLocalStorage');\nexport default new Vue({\n router,\n store,\n pinia,\n render: (h) => h(SettingsApp),\n el: '#content',\n});\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignMergeValue;\n","var Stack = require('./_Stack'),\n assignMergeValue = require('./_assignMergeValue'),\n baseFor = require('./_baseFor'),\n baseMergeDeep = require('./_baseMergeDeep'),\n isObject = require('./isObject'),\n keysIn = require('./keysIn'),\n safeGet = require('./_safeGet');\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\nmodule.exports = baseMerge;\n","var assignMergeValue = require('./_assignMergeValue'),\n cloneBuffer = require('./_cloneBuffer'),\n cloneTypedArray = require('./_cloneTypedArray'),\n copyArray = require('./_copyArray'),\n initCloneObject = require('./_initCloneObject'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isArrayLikeObject = require('./isArrayLikeObject'),\n isBuffer = require('./isBuffer'),\n isFunction = require('./isFunction'),\n isObject = require('./isObject'),\n isPlainObject = require('./isPlainObject'),\n isTypedArray = require('./isTypedArray'),\n safeGet = require('./_safeGet'),\n toPlainObject = require('./toPlainObject');\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\nmodule.exports = baseMergeDeep;\n","var baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n","/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\nmodule.exports = safeGet;\n","var isArrayLike = require('./isArrayLike'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nmodule.exports = isArrayLikeObject;\n","var baseIsEqual = require('./_baseIsEqual');\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nmodule.exports = isEqual;\n","var baseMerge = require('./_baseMerge'),\n createAssigner = require('./_createAssigner');\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\nmodule.exports = merge;\n","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\nmodule.exports = toPlainObject;\n","exports.sync = function (store, router, options) {\n var moduleName = (options || {}).moduleName || 'route'\n\n store.registerModule(moduleName, {\n namespaced: true,\n state: cloneRoute(router.currentRoute),\n mutations: {\n 'ROUTE_CHANGED': function ROUTE_CHANGED (state, transition) {\n store.state[moduleName] = cloneRoute(transition.to, transition.from)\n }\n }\n })\n\n var isTimeTraveling = false\n var currentPath\n\n // sync router on store change\n var storeUnwatch = store.watch(\n function (state) { return state[moduleName]; },\n function (route) {\n var fullPath = route.fullPath;\n if (fullPath === currentPath) {\n return\n }\n if (currentPath != null) {\n isTimeTraveling = true\n router.push(route)\n }\n currentPath = fullPath\n },\n { sync: true }\n )\n\n // sync store on router navigation\n var afterEachUnHook = router.afterEach(function (to, from) {\n if (isTimeTraveling) {\n isTimeTraveling = false\n return\n }\n currentPath = to.fullPath\n store.commit(moduleName + '/ROUTE_CHANGED', { to: to, from: from })\n })\n\n return function unsync () {\n // On unsync, remove router hook\n if (afterEachUnHook != null) {\n afterEachUnHook()\n }\n\n // On unsync, remove store watch\n if (storeUnwatch != null) {\n storeUnwatch()\n }\n\n // On unsync, unregister Module with store\n store.unregisterModule(moduleName)\n }\n}\n\nfunction cloneRoute (to, from) {\n var clone = {\n name: to.name,\n path: to.path,\n hash: to.hash,\n query: to.query,\n params: to.params,\n fullPath: to.fullPath,\n meta: to.meta\n }\n if (from) {\n clone.from = cloneRoute(from)\n }\n return Object.freeze(clone)\n}\n\n","/*!\n * vuex v3.6.2\n * (c) 2021 Evan You\n * @license MIT\n */\nfunction applyMixin (Vue) {\n var version = Number(Vue.version.split('.')[0]);\n\n if (version >= 2) {\n Vue.mixin({ beforeCreate: vuexInit });\n } else {\n // override init and inject vuex init procedure\n // for 1.x backwards compatibility.\n var _init = Vue.prototype._init;\n Vue.prototype._init = function (options) {\n if ( options === void 0 ) options = {};\n\n options.init = options.init\n ? [vuexInit].concat(options.init)\n : vuexInit;\n _init.call(this, options);\n };\n }\n\n /**\n * Vuex init hook, injected into each instances init hooks list.\n */\n\n function vuexInit () {\n var options = this.$options;\n // store injection\n if (options.store) {\n this.$store = typeof options.store === 'function'\n ? options.store()\n : options.store;\n } else if (options.parent && options.parent.$store) {\n this.$store = options.parent.$store;\n }\n }\n}\n\nvar target = typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {};\nvar devtoolHook = target.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\nfunction devtoolPlugin (store) {\n if (!devtoolHook) { return }\n\n store._devtoolHook = devtoolHook;\n\n devtoolHook.emit('vuex:init', store);\n\n devtoolHook.on('vuex:travel-to-state', function (targetState) {\n store.replaceState(targetState);\n });\n\n store.subscribe(function (mutation, state) {\n devtoolHook.emit('vuex:mutation', mutation, state);\n }, { prepend: true });\n\n store.subscribeAction(function (action, state) {\n devtoolHook.emit('vuex:action', action, state);\n }, { prepend: true });\n}\n\n/**\n * Get the first item that pass the test\n * by second argument function\n *\n * @param {Array} list\n * @param {Function} f\n * @return {*}\n */\nfunction find (list, f) {\n return list.filter(f)[0]\n}\n\n/**\n * Deep copy the given object considering circular structure.\n * This function caches all nested objects and its copies.\n * If it detects circular structure, use cached copy to avoid infinite loop.\n *\n * @param {*} obj\n * @param {Array} cache\n * @return {*}\n */\nfunction deepCopy (obj, cache) {\n if ( cache === void 0 ) cache = [];\n\n // just return if obj is immutable value\n if (obj === null || typeof obj !== 'object') {\n return obj\n }\n\n // if obj is hit, it is in circular structure\n var hit = find(cache, function (c) { return c.original === obj; });\n if (hit) {\n return hit.copy\n }\n\n var copy = Array.isArray(obj) ? [] : {};\n // put the copy into cache at first\n // because we want to refer it in recursive deepCopy\n cache.push({\n original: obj,\n copy: copy\n });\n\n Object.keys(obj).forEach(function (key) {\n copy[key] = deepCopy(obj[key], cache);\n });\n\n return copy\n}\n\n/**\n * forEach for object\n */\nfunction forEachValue (obj, fn) {\n Object.keys(obj).forEach(function (key) { return fn(obj[key], key); });\n}\n\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\nfunction isPromise (val) {\n return val && typeof val.then === 'function'\n}\n\nfunction assert (condition, msg) {\n if (!condition) { throw new Error((\"[vuex] \" + msg)) }\n}\n\nfunction partial (fn, arg) {\n return function () {\n return fn(arg)\n }\n}\n\n// Base data struct for store's module, package with some attribute and method\nvar Module = function Module (rawModule, runtime) {\n this.runtime = runtime;\n // Store some children item\n this._children = Object.create(null);\n // Store the origin module object which passed by programmer\n this._rawModule = rawModule;\n var rawState = rawModule.state;\n\n // Store the origin module's state\n this.state = (typeof rawState === 'function' ? rawState() : rawState) || {};\n};\n\nvar prototypeAccessors = { namespaced: { configurable: true } };\n\nprototypeAccessors.namespaced.get = function () {\n return !!this._rawModule.namespaced\n};\n\nModule.prototype.addChild = function addChild (key, module) {\n this._children[key] = module;\n};\n\nModule.prototype.removeChild = function removeChild (key) {\n delete this._children[key];\n};\n\nModule.prototype.getChild = function getChild (key) {\n return this._children[key]\n};\n\nModule.prototype.hasChild = function hasChild (key) {\n return key in this._children\n};\n\nModule.prototype.update = function update (rawModule) {\n this._rawModule.namespaced = rawModule.namespaced;\n if (rawModule.actions) {\n this._rawModule.actions = rawModule.actions;\n }\n if (rawModule.mutations) {\n this._rawModule.mutations = rawModule.mutations;\n }\n if (rawModule.getters) {\n this._rawModule.getters = rawModule.getters;\n }\n};\n\nModule.prototype.forEachChild = function forEachChild (fn) {\n forEachValue(this._children, fn);\n};\n\nModule.prototype.forEachGetter = function forEachGetter (fn) {\n if (this._rawModule.getters) {\n forEachValue(this._rawModule.getters, fn);\n }\n};\n\nModule.prototype.forEachAction = function forEachAction (fn) {\n if (this._rawModule.actions) {\n forEachValue(this._rawModule.actions, fn);\n }\n};\n\nModule.prototype.forEachMutation = function forEachMutation (fn) {\n if (this._rawModule.mutations) {\n forEachValue(this._rawModule.mutations, fn);\n }\n};\n\nObject.defineProperties( Module.prototype, prototypeAccessors );\n\nvar ModuleCollection = function ModuleCollection (rawRootModule) {\n // register root module (Vuex.Store options)\n this.register([], rawRootModule, false);\n};\n\nModuleCollection.prototype.get = function get (path) {\n return path.reduce(function (module, key) {\n return module.getChild(key)\n }, this.root)\n};\n\nModuleCollection.prototype.getNamespace = function getNamespace (path) {\n var module = this.root;\n return path.reduce(function (namespace, key) {\n module = module.getChild(key);\n return namespace + (module.namespaced ? key + '/' : '')\n }, '')\n};\n\nModuleCollection.prototype.update = function update$1 (rawRootModule) {\n update([], this.root, rawRootModule);\n};\n\nModuleCollection.prototype.register = function register (path, rawModule, runtime) {\n var this$1 = this;\n if ( runtime === void 0 ) runtime = true;\n\n if ((process.env.NODE_ENV !== 'production')) {\n assertRawModule(path, rawModule);\n }\n\n var newModule = new Module(rawModule, runtime);\n if (path.length === 0) {\n this.root = newModule;\n } else {\n var parent = this.get(path.slice(0, -1));\n parent.addChild(path[path.length - 1], newModule);\n }\n\n // register nested modules\n if (rawModule.modules) {\n forEachValue(rawModule.modules, function (rawChildModule, key) {\n this$1.register(path.concat(key), rawChildModule, runtime);\n });\n }\n};\n\nModuleCollection.prototype.unregister = function unregister (path) {\n var parent = this.get(path.slice(0, -1));\n var key = path[path.length - 1];\n var child = parent.getChild(key);\n\n if (!child) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\n \"[vuex] trying to unregister module '\" + key + \"', which is \" +\n \"not registered\"\n );\n }\n return\n }\n\n if (!child.runtime) {\n return\n }\n\n parent.removeChild(key);\n};\n\nModuleCollection.prototype.isRegistered = function isRegistered (path) {\n var parent = this.get(path.slice(0, -1));\n var key = path[path.length - 1];\n\n if (parent) {\n return parent.hasChild(key)\n }\n\n return false\n};\n\nfunction update (path, targetModule, newModule) {\n if ((process.env.NODE_ENV !== 'production')) {\n assertRawModule(path, newModule);\n }\n\n // update target module\n targetModule.update(newModule);\n\n // update nested modules\n if (newModule.modules) {\n for (var key in newModule.modules) {\n if (!targetModule.getChild(key)) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\n \"[vuex] trying to add a new module '\" + key + \"' on hot reloading, \" +\n 'manual reload is needed'\n );\n }\n return\n }\n update(\n path.concat(key),\n targetModule.getChild(key),\n newModule.modules[key]\n );\n }\n }\n}\n\nvar functionAssert = {\n assert: function (value) { return typeof value === 'function'; },\n expected: 'function'\n};\n\nvar objectAssert = {\n assert: function (value) { return typeof value === 'function' ||\n (typeof value === 'object' && typeof value.handler === 'function'); },\n expected: 'function or object with \"handler\" function'\n};\n\nvar assertTypes = {\n getters: functionAssert,\n mutations: functionAssert,\n actions: objectAssert\n};\n\nfunction assertRawModule (path, rawModule) {\n Object.keys(assertTypes).forEach(function (key) {\n if (!rawModule[key]) { return }\n\n var assertOptions = assertTypes[key];\n\n forEachValue(rawModule[key], function (value, type) {\n assert(\n assertOptions.assert(value),\n makeAssertionMessage(path, key, type, value, assertOptions.expected)\n );\n });\n });\n}\n\nfunction makeAssertionMessage (path, key, type, value, expected) {\n var buf = key + \" should be \" + expected + \" but \\\"\" + key + \".\" + type + \"\\\"\";\n if (path.length > 0) {\n buf += \" in module \\\"\" + (path.join('.')) + \"\\\"\";\n }\n buf += \" is \" + (JSON.stringify(value)) + \".\";\n return buf\n}\n\nvar Vue; // bind on install\n\nvar Store = function Store (options) {\n var this$1 = this;\n if ( options === void 0 ) options = {};\n\n // Auto install if it is not done yet and `window` has `Vue`.\n // To allow users to avoid auto-installation in some cases,\n // this code should be placed here. See #731\n if (!Vue && typeof window !== 'undefined' && window.Vue) {\n install(window.Vue);\n }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Vue, \"must call Vue.use(Vuex) before creating a store instance.\");\n assert(typeof Promise !== 'undefined', \"vuex requires a Promise polyfill in this browser.\");\n assert(this instanceof Store, \"store must be called with the new operator.\");\n }\n\n var plugins = options.plugins; if ( plugins === void 0 ) plugins = [];\n var strict = options.strict; if ( strict === void 0 ) strict = false;\n\n // store internal state\n this._committing = false;\n this._actions = Object.create(null);\n this._actionSubscribers = [];\n this._mutations = Object.create(null);\n this._wrappedGetters = Object.create(null);\n this._modules = new ModuleCollection(options);\n this._modulesNamespaceMap = Object.create(null);\n this._subscribers = [];\n this._watcherVM = new Vue();\n this._makeLocalGettersCache = Object.create(null);\n\n // bind commit and dispatch to self\n var store = this;\n var ref = this;\n var dispatch = ref.dispatch;\n var commit = ref.commit;\n this.dispatch = function boundDispatch (type, payload) {\n return dispatch.call(store, type, payload)\n };\n this.commit = function boundCommit (type, payload, options) {\n return commit.call(store, type, payload, options)\n };\n\n // strict mode\n this.strict = strict;\n\n var state = this._modules.root.state;\n\n // init root module.\n // this also recursively registers all sub-modules\n // and collects all module getters inside this._wrappedGetters\n installModule(this, state, [], this._modules.root);\n\n // initialize the store vm, which is responsible for the reactivity\n // (also registers _wrappedGetters as computed properties)\n resetStoreVM(this, state);\n\n // apply plugins\n plugins.forEach(function (plugin) { return plugin(this$1); });\n\n var useDevtools = options.devtools !== undefined ? options.devtools : Vue.config.devtools;\n if (useDevtools) {\n devtoolPlugin(this);\n }\n};\n\nvar prototypeAccessors$1 = { state: { configurable: true } };\n\nprototypeAccessors$1.state.get = function () {\n return this._vm._data.$$state\n};\n\nprototypeAccessors$1.state.set = function (v) {\n if ((process.env.NODE_ENV !== 'production')) {\n assert(false, \"use store.replaceState() to explicit replace store state.\");\n }\n};\n\nStore.prototype.commit = function commit (_type, _payload, _options) {\n var this$1 = this;\n\n // check object-style commit\n var ref = unifyObjectStyle(_type, _payload, _options);\n var type = ref.type;\n var payload = ref.payload;\n var options = ref.options;\n\n var mutation = { type: type, payload: payload };\n var entry = this._mutations[type];\n if (!entry) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] unknown mutation type: \" + type));\n }\n return\n }\n this._withCommit(function () {\n entry.forEach(function commitIterator (handler) {\n handler(payload);\n });\n });\n\n this._subscribers\n .slice() // shallow copy to prevent iterator invalidation if subscriber synchronously calls unsubscribe\n .forEach(function (sub) { return sub(mutation, this$1.state); });\n\n if (\n (process.env.NODE_ENV !== 'production') &&\n options && options.silent\n ) {\n console.warn(\n \"[vuex] mutation type: \" + type + \". Silent option has been removed. \" +\n 'Use the filter functionality in the vue-devtools'\n );\n }\n};\n\nStore.prototype.dispatch = function dispatch (_type, _payload) {\n var this$1 = this;\n\n // check object-style dispatch\n var ref = unifyObjectStyle(_type, _payload);\n var type = ref.type;\n var payload = ref.payload;\n\n var action = { type: type, payload: payload };\n var entry = this._actions[type];\n if (!entry) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] unknown action type: \" + type));\n }\n return\n }\n\n try {\n this._actionSubscribers\n .slice() // shallow copy to prevent iterator invalidation if subscriber synchronously calls unsubscribe\n .filter(function (sub) { return sub.before; })\n .forEach(function (sub) { return sub.before(action, this$1.state); });\n } catch (e) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\"[vuex] error in before action subscribers: \");\n console.error(e);\n }\n }\n\n var result = entry.length > 1\n ? Promise.all(entry.map(function (handler) { return handler(payload); }))\n : entry[0](payload);\n\n return new Promise(function (resolve, reject) {\n result.then(function (res) {\n try {\n this$1._actionSubscribers\n .filter(function (sub) { return sub.after; })\n .forEach(function (sub) { return sub.after(action, this$1.state); });\n } catch (e) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\"[vuex] error in after action subscribers: \");\n console.error(e);\n }\n }\n resolve(res);\n }, function (error) {\n try {\n this$1._actionSubscribers\n .filter(function (sub) { return sub.error; })\n .forEach(function (sub) { return sub.error(action, this$1.state, error); });\n } catch (e) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\"[vuex] error in error action subscribers: \");\n console.error(e);\n }\n }\n reject(error);\n });\n })\n};\n\nStore.prototype.subscribe = function subscribe (fn, options) {\n return genericSubscribe(fn, this._subscribers, options)\n};\n\nStore.prototype.subscribeAction = function subscribeAction (fn, options) {\n var subs = typeof fn === 'function' ? { before: fn } : fn;\n return genericSubscribe(subs, this._actionSubscribers, options)\n};\n\nStore.prototype.watch = function watch (getter, cb, options) {\n var this$1 = this;\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(typeof getter === 'function', \"store.watch only accepts a function.\");\n }\n return this._watcherVM.$watch(function () { return getter(this$1.state, this$1.getters); }, cb, options)\n};\n\nStore.prototype.replaceState = function replaceState (state) {\n var this$1 = this;\n\n this._withCommit(function () {\n this$1._vm._data.$$state = state;\n });\n};\n\nStore.prototype.registerModule = function registerModule (path, rawModule, options) {\n if ( options === void 0 ) options = {};\n\n if (typeof path === 'string') { path = [path]; }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n assert(path.length > 0, 'cannot register the root module by using registerModule.');\n }\n\n this._modules.register(path, rawModule);\n installModule(this, this.state, path, this._modules.get(path), options.preserveState);\n // reset store to update getters...\n resetStoreVM(this, this.state);\n};\n\nStore.prototype.unregisterModule = function unregisterModule (path) {\n var this$1 = this;\n\n if (typeof path === 'string') { path = [path]; }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n }\n\n this._modules.unregister(path);\n this._withCommit(function () {\n var parentState = getNestedState(this$1.state, path.slice(0, -1));\n Vue.delete(parentState, path[path.length - 1]);\n });\n resetStore(this);\n};\n\nStore.prototype.hasModule = function hasModule (path) {\n if (typeof path === 'string') { path = [path]; }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n }\n\n return this._modules.isRegistered(path)\n};\n\nStore.prototype.hotUpdate = function hotUpdate (newOptions) {\n this._modules.update(newOptions);\n resetStore(this, true);\n};\n\nStore.prototype._withCommit = function _withCommit (fn) {\n var committing = this._committing;\n this._committing = true;\n fn();\n this._committing = committing;\n};\n\nObject.defineProperties( Store.prototype, prototypeAccessors$1 );\n\nfunction genericSubscribe (fn, subs, options) {\n if (subs.indexOf(fn) < 0) {\n options && options.prepend\n ? subs.unshift(fn)\n : subs.push(fn);\n }\n return function () {\n var i = subs.indexOf(fn);\n if (i > -1) {\n subs.splice(i, 1);\n }\n }\n}\n\nfunction resetStore (store, hot) {\n store._actions = Object.create(null);\n store._mutations = Object.create(null);\n store._wrappedGetters = Object.create(null);\n store._modulesNamespaceMap = Object.create(null);\n var state = store.state;\n // init all modules\n installModule(store, state, [], store._modules.root, true);\n // reset vm\n resetStoreVM(store, state, hot);\n}\n\nfunction resetStoreVM (store, state, hot) {\n var oldVm = store._vm;\n\n // bind store public getters\n store.getters = {};\n // reset local getters cache\n store._makeLocalGettersCache = Object.create(null);\n var wrappedGetters = store._wrappedGetters;\n var computed = {};\n forEachValue(wrappedGetters, function (fn, key) {\n // use computed to leverage its lazy-caching mechanism\n // direct inline function use will lead to closure preserving oldVm.\n // using partial to return function with only arguments preserved in closure environment.\n computed[key] = partial(fn, store);\n Object.defineProperty(store.getters, key, {\n get: function () { return store._vm[key]; },\n enumerable: true // for local getters\n });\n });\n\n // use a Vue instance to store the state tree\n // suppress warnings just in case the user has added\n // some funky global mixins\n var silent = Vue.config.silent;\n Vue.config.silent = true;\n store._vm = new Vue({\n data: {\n $$state: state\n },\n computed: computed\n });\n Vue.config.silent = silent;\n\n // enable strict mode for new vm\n if (store.strict) {\n enableStrictMode(store);\n }\n\n if (oldVm) {\n if (hot) {\n // dispatch changes in all subscribed watchers\n // to force getter re-evaluation for hot reloading.\n store._withCommit(function () {\n oldVm._data.$$state = null;\n });\n }\n Vue.nextTick(function () { return oldVm.$destroy(); });\n }\n}\n\nfunction installModule (store, rootState, path, module, hot) {\n var isRoot = !path.length;\n var namespace = store._modules.getNamespace(path);\n\n // register in namespace map\n if (module.namespaced) {\n if (store._modulesNamespaceMap[namespace] && (process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] duplicate namespace \" + namespace + \" for the namespaced module \" + (path.join('/'))));\n }\n store._modulesNamespaceMap[namespace] = module;\n }\n\n // set state\n if (!isRoot && !hot) {\n var parentState = getNestedState(rootState, path.slice(0, -1));\n var moduleName = path[path.length - 1];\n store._withCommit(function () {\n if ((process.env.NODE_ENV !== 'production')) {\n if (moduleName in parentState) {\n console.warn(\n (\"[vuex] state field \\\"\" + moduleName + \"\\\" was overridden by a module with the same name at \\\"\" + (path.join('.')) + \"\\\"\")\n );\n }\n }\n Vue.set(parentState, moduleName, module.state);\n });\n }\n\n var local = module.context = makeLocalContext(store, namespace, path);\n\n module.forEachMutation(function (mutation, key) {\n var namespacedType = namespace + key;\n registerMutation(store, namespacedType, mutation, local);\n });\n\n module.forEachAction(function (action, key) {\n var type = action.root ? key : namespace + key;\n var handler = action.handler || action;\n registerAction(store, type, handler, local);\n });\n\n module.forEachGetter(function (getter, key) {\n var namespacedType = namespace + key;\n registerGetter(store, namespacedType, getter, local);\n });\n\n module.forEachChild(function (child, key) {\n installModule(store, rootState, path.concat(key), child, hot);\n });\n}\n\n/**\n * make localized dispatch, commit, getters and state\n * if there is no namespace, just use root ones\n */\nfunction makeLocalContext (store, namespace, path) {\n var noNamespace = namespace === '';\n\n var local = {\n dispatch: noNamespace ? store.dispatch : function (_type, _payload, _options) {\n var args = unifyObjectStyle(_type, _payload, _options);\n var payload = args.payload;\n var options = args.options;\n var type = args.type;\n\n if (!options || !options.root) {\n type = namespace + type;\n if ((process.env.NODE_ENV !== 'production') && !store._actions[type]) {\n console.error((\"[vuex] unknown local action type: \" + (args.type) + \", global type: \" + type));\n return\n }\n }\n\n return store.dispatch(type, payload)\n },\n\n commit: noNamespace ? store.commit : function (_type, _payload, _options) {\n var args = unifyObjectStyle(_type, _payload, _options);\n var payload = args.payload;\n var options = args.options;\n var type = args.type;\n\n if (!options || !options.root) {\n type = namespace + type;\n if ((process.env.NODE_ENV !== 'production') && !store._mutations[type]) {\n console.error((\"[vuex] unknown local mutation type: \" + (args.type) + \", global type: \" + type));\n return\n }\n }\n\n store.commit(type, payload, options);\n }\n };\n\n // getters and state object must be gotten lazily\n // because they will be changed by vm update\n Object.defineProperties(local, {\n getters: {\n get: noNamespace\n ? function () { return store.getters; }\n : function () { return makeLocalGetters(store, namespace); }\n },\n state: {\n get: function () { return getNestedState(store.state, path); }\n }\n });\n\n return local\n}\n\nfunction makeLocalGetters (store, namespace) {\n if (!store._makeLocalGettersCache[namespace]) {\n var gettersProxy = {};\n var splitPos = namespace.length;\n Object.keys(store.getters).forEach(function (type) {\n // skip if the target getter is not match this namespace\n if (type.slice(0, splitPos) !== namespace) { return }\n\n // extract local getter type\n var localType = type.slice(splitPos);\n\n // Add a port to the getters proxy.\n // Define as getter property because\n // we do not want to evaluate the getters in this time.\n Object.defineProperty(gettersProxy, localType, {\n get: function () { return store.getters[type]; },\n enumerable: true\n });\n });\n store._makeLocalGettersCache[namespace] = gettersProxy;\n }\n\n return store._makeLocalGettersCache[namespace]\n}\n\nfunction registerMutation (store, type, handler, local) {\n var entry = store._mutations[type] || (store._mutations[type] = []);\n entry.push(function wrappedMutationHandler (payload) {\n handler.call(store, local.state, payload);\n });\n}\n\nfunction registerAction (store, type, handler, local) {\n var entry = store._actions[type] || (store._actions[type] = []);\n entry.push(function wrappedActionHandler (payload) {\n var res = handler.call(store, {\n dispatch: local.dispatch,\n commit: local.commit,\n getters: local.getters,\n state: local.state,\n rootGetters: store.getters,\n rootState: store.state\n }, payload);\n if (!isPromise(res)) {\n res = Promise.resolve(res);\n }\n if (store._devtoolHook) {\n return res.catch(function (err) {\n store._devtoolHook.emit('vuex:error', err);\n throw err\n })\n } else {\n return res\n }\n });\n}\n\nfunction registerGetter (store, type, rawGetter, local) {\n if (store._wrappedGetters[type]) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] duplicate getter key: \" + type));\n }\n return\n }\n store._wrappedGetters[type] = function wrappedGetter (store) {\n return rawGetter(\n local.state, // local state\n local.getters, // local getters\n store.state, // root state\n store.getters // root getters\n )\n };\n}\n\nfunction enableStrictMode (store) {\n store._vm.$watch(function () { return this._data.$$state }, function () {\n if ((process.env.NODE_ENV !== 'production')) {\n assert(store._committing, \"do not mutate vuex store state outside mutation handlers.\");\n }\n }, { deep: true, sync: true });\n}\n\nfunction getNestedState (state, path) {\n return path.reduce(function (state, key) { return state[key]; }, state)\n}\n\nfunction unifyObjectStyle (type, payload, options) {\n if (isObject(type) && type.type) {\n options = payload;\n payload = type;\n type = type.type;\n }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(typeof type === 'string', (\"expects string as the type, but found \" + (typeof type) + \".\"));\n }\n\n return { type: type, payload: payload, options: options }\n}\n\nfunction install (_Vue) {\n if (Vue && _Vue === Vue) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error(\n '[vuex] already installed. Vue.use(Vuex) should be called only once.'\n );\n }\n return\n }\n Vue = _Vue;\n applyMixin(Vue);\n}\n\n/**\n * Reduce the code which written in Vue.js for getting the state.\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} states # Object's item can be a function which accept state and getters for param, you can do something for state and getters in it.\n * @param {Object}\n */\nvar mapState = normalizeNamespace(function (namespace, states) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(states)) {\n console.error('[vuex] mapState: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(states).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedState () {\n var state = this.$store.state;\n var getters = this.$store.getters;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapState', namespace);\n if (!module) {\n return\n }\n state = module.context.state;\n getters = module.context.getters;\n }\n return typeof val === 'function'\n ? val.call(this, state, getters)\n : state[val]\n };\n // mark vuex getter for devtools\n res[key].vuex = true;\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for committing the mutation\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} mutations # Object's item can be a function which accept `commit` function as the first param, it can accept another params. You can commit mutation and do any other things in this function. specially, You need to pass anthor params from the mapped function.\n * @return {Object}\n */\nvar mapMutations = normalizeNamespace(function (namespace, mutations) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(mutations)) {\n console.error('[vuex] mapMutations: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(mutations).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedMutation () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n // Get the commit method from store\n var commit = this.$store.commit;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapMutations', namespace);\n if (!module) {\n return\n }\n commit = module.context.commit;\n }\n return typeof val === 'function'\n ? val.apply(this, [commit].concat(args))\n : commit.apply(this.$store, [val].concat(args))\n };\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for getting the getters\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} getters\n * @return {Object}\n */\nvar mapGetters = normalizeNamespace(function (namespace, getters) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(getters)) {\n console.error('[vuex] mapGetters: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(getters).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n // The namespace has been mutated by normalizeNamespace\n val = namespace + val;\n res[key] = function mappedGetter () {\n if (namespace && !getModuleByNamespace(this.$store, 'mapGetters', namespace)) {\n return\n }\n if ((process.env.NODE_ENV !== 'production') && !(val in this.$store.getters)) {\n console.error((\"[vuex] unknown getter: \" + val));\n return\n }\n return this.$store.getters[val]\n };\n // mark vuex getter for devtools\n res[key].vuex = true;\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for dispatch the action\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} actions # Object's item can be a function which accept `dispatch` function as the first param, it can accept anthor params. You can dispatch action and do any other things in this function. specially, You need to pass anthor params from the mapped function.\n * @return {Object}\n */\nvar mapActions = normalizeNamespace(function (namespace, actions) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(actions)) {\n console.error('[vuex] mapActions: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(actions).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedAction () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n // get dispatch function from store\n var dispatch = this.$store.dispatch;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapActions', namespace);\n if (!module) {\n return\n }\n dispatch = module.context.dispatch;\n }\n return typeof val === 'function'\n ? val.apply(this, [dispatch].concat(args))\n : dispatch.apply(this.$store, [val].concat(args))\n };\n });\n return res\n});\n\n/**\n * Rebinding namespace param for mapXXX function in special scoped, and return them by simple object\n * @param {String} namespace\n * @return {Object}\n */\nvar createNamespacedHelpers = function (namespace) { return ({\n mapState: mapState.bind(null, namespace),\n mapGetters: mapGetters.bind(null, namespace),\n mapMutations: mapMutations.bind(null, namespace),\n mapActions: mapActions.bind(null, namespace)\n}); };\n\n/**\n * Normalize the map\n * normalizeMap([1, 2, 3]) => [ { key: 1, val: 1 }, { key: 2, val: 2 }, { key: 3, val: 3 } ]\n * normalizeMap({a: 1, b: 2, c: 3}) => [ { key: 'a', val: 1 }, { key: 'b', val: 2 }, { key: 'c', val: 3 } ]\n * @param {Array|Object} map\n * @return {Object}\n */\nfunction normalizeMap (map) {\n if (!isValidMap(map)) {\n return []\n }\n return Array.isArray(map)\n ? map.map(function (key) { return ({ key: key, val: key }); })\n : Object.keys(map).map(function (key) { return ({ key: key, val: map[key] }); })\n}\n\n/**\n * Validate whether given map is valid or not\n * @param {*} map\n * @return {Boolean}\n */\nfunction isValidMap (map) {\n return Array.isArray(map) || isObject(map)\n}\n\n/**\n * Return a function expect two param contains namespace and map. it will normalize the namespace and then the param's function will handle the new namespace and the map.\n * @param {Function} fn\n * @return {Function}\n */\nfunction normalizeNamespace (fn) {\n return function (namespace, map) {\n if (typeof namespace !== 'string') {\n map = namespace;\n namespace = '';\n } else if (namespace.charAt(namespace.length - 1) !== '/') {\n namespace += '/';\n }\n return fn(namespace, map)\n }\n}\n\n/**\n * Search a special module from store by namespace. if module not exist, print error message.\n * @param {Object} store\n * @param {String} helper\n * @param {String} namespace\n * @return {Object}\n */\nfunction getModuleByNamespace (store, helper, namespace) {\n var module = store._modulesNamespaceMap[namespace];\n if ((process.env.NODE_ENV !== 'production') && !module) {\n console.error((\"[vuex] module namespace not found in \" + helper + \"(): \" + namespace));\n }\n return module\n}\n\n// Credits: borrowed code from fcomb/redux-logger\n\nfunction createLogger (ref) {\n if ( ref === void 0 ) ref = {};\n var collapsed = ref.collapsed; if ( collapsed === void 0 ) collapsed = true;\n var filter = ref.filter; if ( filter === void 0 ) filter = function (mutation, stateBefore, stateAfter) { return true; };\n var transformer = ref.transformer; if ( transformer === void 0 ) transformer = function (state) { return state; };\n var mutationTransformer = ref.mutationTransformer; if ( mutationTransformer === void 0 ) mutationTransformer = function (mut) { return mut; };\n var actionFilter = ref.actionFilter; if ( actionFilter === void 0 ) actionFilter = function (action, state) { return true; };\n var actionTransformer = ref.actionTransformer; if ( actionTransformer === void 0 ) actionTransformer = function (act) { return act; };\n var logMutations = ref.logMutations; if ( logMutations === void 0 ) logMutations = true;\n var logActions = ref.logActions; if ( logActions === void 0 ) logActions = true;\n var logger = ref.logger; if ( logger === void 0 ) logger = console;\n\n return function (store) {\n var prevState = deepCopy(store.state);\n\n if (typeof logger === 'undefined') {\n return\n }\n\n if (logMutations) {\n store.subscribe(function (mutation, state) {\n var nextState = deepCopy(state);\n\n if (filter(mutation, prevState, nextState)) {\n var formattedTime = getFormattedTime();\n var formattedMutation = mutationTransformer(mutation);\n var message = \"mutation \" + (mutation.type) + formattedTime;\n\n startMessage(logger, message, collapsed);\n logger.log('%c prev state', 'color: #9E9E9E; font-weight: bold', transformer(prevState));\n logger.log('%c mutation', 'color: #03A9F4; font-weight: bold', formattedMutation);\n logger.log('%c next state', 'color: #4CAF50; font-weight: bold', transformer(nextState));\n endMessage(logger);\n }\n\n prevState = nextState;\n });\n }\n\n if (logActions) {\n store.subscribeAction(function (action, state) {\n if (actionFilter(action, state)) {\n var formattedTime = getFormattedTime();\n var formattedAction = actionTransformer(action);\n var message = \"action \" + (action.type) + formattedTime;\n\n startMessage(logger, message, collapsed);\n logger.log('%c action', 'color: #03A9F4; font-weight: bold', formattedAction);\n endMessage(logger);\n }\n });\n }\n }\n}\n\nfunction startMessage (logger, message, collapsed) {\n var startMessage = collapsed\n ? logger.groupCollapsed\n : logger.group;\n\n // render\n try {\n startMessage.call(logger, message);\n } catch (e) {\n logger.log(message);\n }\n}\n\nfunction endMessage (logger) {\n try {\n logger.groupEnd();\n } catch (e) {\n logger.log('—— log end ——');\n }\n}\n\nfunction getFormattedTime () {\n var time = new Date();\n return (\" @ \" + (pad(time.getHours(), 2)) + \":\" + (pad(time.getMinutes(), 2)) + \":\" + (pad(time.getSeconds(), 2)) + \".\" + (pad(time.getMilliseconds(), 3)))\n}\n\nfunction repeat (str, times) {\n return (new Array(times + 1)).join(str)\n}\n\nfunction pad (num, maxLength) {\n return repeat('0', maxLength - num.toString().length) + num\n}\n\nvar index = {\n Store: Store,\n install: install,\n version: '3.6.2',\n mapState: mapState,\n mapMutations: mapMutations,\n mapGetters: mapGetters,\n mapActions: mapActions,\n createNamespacedHelpers: createNamespacedHelpers,\n createLogger: createLogger\n};\n\nexport default index;\nexport { Store, createLogger, createNamespacedHelpers, install, mapActions, mapGetters, mapMutations, mapState };\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 \"\" + ({\"3239\":\"settings-users\",\"4529\":\"settings-apps-view\"}[chunkId] || chunkId) + \"-\" + chunkId + \".js?v=\" + {\"1140\":\"490e17ed9c8948d5a9e8\",\"2221\":\"428c2ff62c4b8b3c97fc\",\"3079\":\"e25e60ee1af8efb023fb\",\"3239\":\"77047d0d8c6ee70900f0\",\"4529\":\"4e522ae06adb0b86d3f2\",\"5448\":\"71cfe268d6f1213c4735\",\"5862\":\"580b9c2e231a9169a12f\",\"6015\":\"ebcb6885c1fc8c461988\",\"6197\":\"a372e411091ea8313019\",\"6798\":\"1a6cf42d93801a926a3d\",\"7471\":\"b4ac70873a3ab192efd0\",\"7859\":\"740587c0c8c350dad157\",\"7910\":\"de857920f8beb5205bbc\",\"8815\":\"9a5c507c75429c9c04e4\",\"9646\":\"1f59e43b850fe6bc2360\"}[chunkId] + \"\";\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 = 2689;","var scriptUrl;\nif (globalThis.importScripts) scriptUrl = globalThis.location + \"\";\nvar document = globalThis.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(/^blob:/, \"\").replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = (typeof document !== 'undefined' && 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\t2689: 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, moreModules, runtime] = data;\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 = globalThis[\"webpackChunknextcloud_ui_legacy\"] = globalThis[\"webpackChunknextcloud_ui_legacy\"] || [];\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__(35750)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","sanitize","url","replace","requireAdmin","confirmPassword","get","options","axios","post","data","patch","put","delete","params","state","apps","bundles","loadState","categories","updateCount","loading","gettingCategoriesPromise","appApiEnabled","mutations","APPS_API_FAILURE","error","showError","t","response","message","isHTML","logger","initCategories","updateCategories","categoriesPromise","setUpdateCount","addCategory","category","push","appendCategories","categoriesArray","setAllApps","setError","appId","Array","isArray","forEach","_id","find","app","id","clearError","enableApp","groups","active","Vue","setInstallState","canInstall","disableApp","removable","canUnInstall","uninstallApp","needsDownload","installed","updateApp","version","update","resetApps","reset","startLoading","stopLoading","actions","context","commit","previousState","_appId","api","generateUrl","appIds","PwdConfirmationMode","Strict","then","update_required","showInfo","onClick","window","location","reload","close","setTimeout","catch","dispatch","forceEnableApp","finally","getAllApps","getCategories","shouldRefetchCategories","categoriesPromiseResponse","length","getters","isAppApiEnabled","getAppBundles","getUpdateCount","getCategoryById","selectedCategoryId","setAppConfig","key","value","generateOcsUrl","serverData","setServerData","getServerData","naturalCollator","Intl","Collator","getLanguage","getCanonicalLocale","numeric","usage","usersSettings","defaults","name","usercount","disabled","canAdd","canRemove","users","getSubAdminGroups","systemGroups","orderBy","sortGroups","GroupSorting","UserCount","minPasswordLength","usersOffset","usersLimit","disabledUsersOffset","disabledUsersLimit","searchQuery","userCount","showConfig","showStoragePath","user_list_show_storage_path","showUserBackend","user_list_show_user_backend","showFirstLogin","user_list_show_first_login","showLastLogin","user_list_show_last_login","showNewUserForm","user_list_show_new_user_form","showLanguages","user_list_show_languages","appendUsers","usersObj","existingUsers","map","newUsers","Object","values","filter","includes","concat","updateDisabledUsers","setPasswordPolicyMinLength","addGroup","newGroup","group","unshift","renameGroup","gid","displayName","groupIndex","findIndex","groupSearch","updatedGroup","splice","removeGroup","addUserGroup","userid","user","enabled","removeUserGroup","indexOf","addUserSubAdmin","subadmin","removeUserSubAdmin","deleteUser","userIndex","this","actionType","addUserData","ocs","enableDisableUser","updateUserCounts","recentGroup","disabledGroup","userGroup","warn","setUserData","humanValue","parseFileSize","editUserMultiField","index","prevGids","g","resetUsers","resetGroups","setSearchQuery","query","setShowConfig","setGroupSorting","sorting","oldValue","String","getUsers","getGroups","getSearchQuery","subAdminGroups","getSortedGroups","sort","a","b","numA","numB","compare","getGroupSorting","getPasswordPolicyMinLength","getUsersOffset","getUsersLimit","getDisabledUsersOffset","getDisabledUsersLimit","getUserCount","getShowConfig","CancelToken","searchRequestCancelSource","searchUsers","offset","limit","search","getUser","userId","cancel","source","encodeURIComponent","cancelToken","token","usersCount","keys","getRecentUsers","getDisabledUsers","limitParam","getUsersFromList","getUsersFromGroup","groupid","groupId","getCapabilities","password_policy","minLength","wipeUserDevices","Promise","reject","Error","addUser","password","email","quota","language","manager","userStatus","payload","sendWelcomeMail","migrateLocalStorage","preferences","dbKey","entries","localKey","localValue","localStorage","getItem","removeItem","API_FAILURE","meta","store","useStore","Store","modules","settings","oc","strict","getLoggerBuilder","setApp","detectUser","build","_typeof","o","Symbol","iterator","constructor","prototype","toPropertyKey","i","e","toPrimitive","call","r","TypeError","_defineProperty","defineProperty","enumerable","configurable","writable","_defineProperties","isBrowser","document","navigator","timeoutDuration","longerTimeoutBrowsers","userAgent","debounce","fn","called","resolve","scheduled","isFunction","functionToCheck","toString","getStyleComputedProperty","element","property","nodeType","css","ownerDocument","defaultView","getComputedStyle","getParentNode","nodeName","parentNode","host","getScrollParent","body","_getStyleComputedProp","overflow","overflowX","overflowY","test","getReferenceNode","reference","referenceNode","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","getOffsetParent","documentElement","noOffsetParent","offsetParent","nextElementSibling","getRoot","node","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","start","end","range","createRange","setStart","setEnd","commonAncestorContainer","contains","firstElementChild","element1root","getScroll","upperSide","arguments","undefined","html","scrollingElement","getBordersSize","styles","axis","sideA","sideB","parseFloat","getSize","computedStyle","Math","max","parseInt","getWindowSizes","height","width","createClass","defineProperties","target","props","descriptor","Constructor","protoProps","staticProps","obj","_extends","assign","hasOwnProperty","getClientRect","offsets","right","left","bottom","top","getBoundingClientRect","rect","scrollTop","scrollLeft","result","sizes","clientWidth","clientHeight","horizScrollbar","offsetWidth","vertScrollbar","offsetHeight","getOffsetRectRelativeToArbitraryNode","children","parent","fixedPosition","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","subtract","modifier","includeScroll","isFixed","getFixedPositionOffsetParent","parentElement","el","getBoundaries","popper","padding","boundariesElement","boundaries","excludeScroll","relativeOffset","innerWidth","innerHeight","getViewportOffsetRectRelativeToArtbitraryNode","boundariesNode","_getWindowSizes","isPaddingNumber","computeAutoPlacement","placement","refRect","rects","sortedAreas","area","_ref","filteredAreas","_ref2","computedPlacement","variation","split","getReferenceOffsets","getOuterSizes","x","marginBottom","y","marginRight","getOppositePlacement","hash","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","arr","check","runModifiers","modifiers","ends","slice","prop","cur","match","console","isDestroyed","instance","arrowStyles","attributes","flipped","positionFixed","flip","originalPlacement","position","isCreated","onUpdate","onCreate","isModifierEnabled","modifierName","some","getSupportedPropertyName","prefixes","upperProp","charAt","toUpperCase","prefix","toCheck","style","destroy","removeAttribute","willChange","disableEventListeners","removeOnDestroy","removeChild","getWindow","attachToScrollParents","event","callback","scrollParents","isBody","addEventListener","passive","setupEventListeners","updateBound","scrollElement","eventsEnabled","enableEventListeners","scheduleUpdate","cancelAnimationFrame","removeEventListener","removeEventListeners","isNumeric","n","isNaN","isFinite","setStyles","unit","isFirefox","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","requested","placements","validPlacements","clockwise","counter","reverse","shift","basePlacement","shiftvariation","_data$offsets","isVertical","side","shiftOffsets","useHeight","fragments","frag","trim","divider","splitRegex","ops","op","mergeWithPrevious","reduce","str","toValue","index2","parseOffset","preventOverflow","transformProp","popperStyles","transform","priority","primary","escapeWithReference","secondary","min","keepTogether","floor","opSide","arrow","_data$offsets$arrow","arrowElement","querySelector","len","sideCapitalized","toLowerCase","altSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","round","placementOpposite","flipOrder","behavior","step","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","getOppositeVariation","inner","subtractLength","hide","bound","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","shouldRound","noRound","v","referenceWidth","popperWidth","isVariation","horizontalToInteger","verticalToInteger","getRoundedOffsets","devicePixelRatio","prefixedProperty","invertTop","invertLeft","applyStyle","setAttribute","onLoad","modifierOptions","Defaults","Popper","_this","classCallCheck","requestAnimationFrame","bind","jquery","Utils","PopperUtils","initCompat","init","ua","msie","substring","rv","edge","getInternetExplorerVersion","normalizeComponent","template","script","scopeId","isFunctionalTemplate","moduleIdentifier","shadowMode","createInjector","createInjectorSSR","createInjectorShadow","hook","render","staticRenderFns","_compiled","functional","_scopeId","$vnode","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","originalRender","h","existing","beforeCreate","__vue_script__","emitOnMount","type","Boolean","default","ignoreWidth","ignoreHeight","mounted","$nextTick","_w","$el","_h","emitSize","object","createElement","_resizeObject","onload","addResizeHandlers","appendChild","beforeDestroy","removeResizeHandlers","methods","compareAndNotify","$emit","contentDocument","__vue_render__","$createElement","_self","_c","staticClass","attrs","tabindex","_withStripped","__vue_component__","install","component","GlobalVue","use","SVGAnimatedString","convertToArray","addClasses","classes","classList","newClasses","className","baseVal","newClass","SVGElement","join","removeClasses","supportsPassive","opts","ownKeys$2","enumerableOnly","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","apply","_objectSpread$2","getOwnPropertyDescriptors","DEFAULT_OPTIONS","container","delay","title","trigger","openTooltips","Tooltip","_reference","_options","_classCallCheck","evt","relatedreference","toElement","relatedTarget","_tooltipNode","evt2","relatedreference2","_scheduleHide","show","_isOpen","_init","_show","_hide","_dispose","_classes","content","_setContent","classesUpdated","directive","defaultClass","isEqual","setClasses","getOptions","needPopperUpdate","needRestart","isOpen","dispose","popperInstance","events","_isDisposed","_enableDocumentTouch","_setEventListeners","$_originalTitle","getAttribute","_this2","tooltipGenerator","innerHTML","tooltipNode","childNodes","ariaId","random","substr","autoHide","_this3","asyncContent","_applyContent","_this4","allowHtml","rootNode","titleNode","innerSelector","firstChild","loadingClass","loadingContent","asyncResult","innerText","clearTimeout","_disposeTimer","updateClasses","_ensureShown","_this5","display","_create","_findContainer","_append","popperOptions","arrowSelector","_this6","_noLongerOpen","disposeTime","disposeTimeout","_removeTooltipNode","_this7","_events","func","_this8","directEvents","oppositeEvents","hideOnTargetClick","usedByTooltip","_scheduleShow","_this9","computedDelay","_scheduleTimer","_this10","_setTooltipNodeEvent","ownKeys$1","_objectSpread$1","_onDocumentTouch","capture","positions","defaultOptions","defaultPlacement","defaultTargetClass","defaultHtml","defaultTemplate","defaultArrowSelector","defaultInnerSelector","defaultDelay","defaultTrigger","defaultOffset","defaultContainer","defaultBoundariesElement","defaultPopperOptions","defaultLoadingClass","defaultLoadingContent","defaultHideOnTargetClick","popover","defaultBaseClass","defaultWrapperClass","defaultInnerClass","defaultArrowClass","defaultOpenClass","defaultAutoHide","defaultHandleResize","typeofOffset","getPlacement","pos","getContent","destroyTooltip","_tooltip","_tooltipOldShow","_tooltipTargetClasses","tooltip","setContent","setOptions","_vueEl","targetClasses","createTooltip","unbind","addListeners","onTouchStart","removeListeners","onTouchEnd","onTouchCancel","currentTarget","closePopover","$_vclosepopover_touch","closeAllPopover","$_closePopoverModifiers","all","changedTouches","touch","$_vclosepopover_touchPoint","firstTouch","abs","screenY","screenX","vclosepopover","ownKeys","_objectSpread","getDefault","isIOS","MSStream","openPopovers","Element","components","ResizeObserver","open","Number","popoverClass","popoverBaseClass","popoverInnerClass","popoverWrapperClass","popoverArrowClass","handleResize","openGroup","openClass","computed","cssClass","popoverId","watch","val","oldVal","popoverNode","$refs","$_findContainer","$_removeEventListeners","$_addEventListeners","$_updatePopper","handler","deep","created","$_isDisposed","$_mounted","$_events","$_preventOpen","$_init","deactivated","skipDelay","_ref2$force","force","$_scheduleShow","$_beingShowed","_ref3","$_scheduleHide","$_show","$_disposeTimer","hidden","$_getOffset","$_hide","$_scheduleTimer","$_setTooltipNodeEvent","event2","_ref4","cb","$_restartPopper","$_handleGlobalClose","$_handleResize","handleGlobalClose","_loop","_vm","class","ref","staticStyle","_t","_v","visibility","on","keyup","$event","_k","keyCode","notify","_e","insertAt","head","getElementsByTagName","insertBefore","styleSheet","cssText","createTextNode","styleInject","plugin","finalOptions","merge","global","_defineComponent","__name","setup","__props","__sfc","NcContent","_setupProxy","path","UserManagement","navigation","UserManagementNavigation","redirect","AppStore","AppStoreNavigation","sidebar","AppStoreSidebar","Router","mode","base","linkActiveClass","routes","addPasswordConfirmationInterceptors","__webpack_nonce__","getCSPNonce","PiniaVuePlugin","VTooltipPlugin","Vuex","sync","router","pinia","createPinia","SettingsApp","baseAssignValue","eq","module","exports","Stack","assignMergeValue","baseFor","baseMergeDeep","isObject","keysIn","safeGet","baseMerge","srcIndex","customizer","stack","srcValue","newValue","cloneBuffer","cloneTypedArray","copyArray","initCloneObject","isArguments","isArrayLikeObject","isBuffer","isPlainObject","isTypedArray","toPlainObject","mergeFunc","objValue","stacked","isCommon","isArr","isBuff","isTyped","set","baseRest","isIterateeCall","assigner","sources","guard","isArrayLike","isObjectLike","baseIsEqual","other","createAssigner","copyObject","cloneRoute","to","from","clone","fullPath","freeze","moduleName","registerModule","namespaced","currentRoute","transition","currentPath","isTimeTraveling","storeUnwatch","route","afterEachUnHook","afterEach","unregisterModule","devtoolHook","__VUE_DEVTOOLS_GLOBAL_HOOK__","deepCopy","cache","f","hit","c","original","copy","forEachValue","Module","rawModule","runtime","_children","create","_rawModule","rawState","prototypeAccessors","addChild","getChild","hasChild","forEachChild","forEachGetter","forEachAction","forEachMutation","ModuleCollection","rawRootModule","register","targetModule","newModule","root","getNamespace","namespace","this$1","rawChildModule","unregister","child","isRegistered","plugins","_committing","_actions","_actionSubscribers","_mutations","_wrappedGetters","_modules","_modulesNamespaceMap","_subscribers","_watcherVM","_makeLocalGettersCache","installModule","resetStoreVM","devtools","config","_devtoolHook","emit","targetState","replaceState","subscribe","mutation","prepend","subscribeAction","action","devtoolPlugin","prototypeAccessors$1","genericSubscribe","subs","resetStore","hot","oldVm","wrappedGetters","arg","partial","silent","$$state","$watch","_data","enableStrictMode","_withCommit","nextTick","$destroy","rootState","isRoot","parentState","getNestedState","local","noNamespace","_type","_payload","args","unifyObjectStyle","gettersProxy","splitPos","localType","makeLocalGetters","makeLocalContext","registerMutation","res","rootGetters","err","registerAction","getter","rawGetter","registerGetter","_Vue","mixin","vuexInit","$store","applyMixin","entry","sub","before","after","preserveState","hasModule","hotUpdate","newOptions","committing","mapState","normalizeNamespace","states","normalizeMap","getModuleByNamespace","vuex","mapMutations","mapGetters","mapActions","isValidMap","helper","startMessage","collapsed","groupCollapsed","log","endMessage","groupEnd","getFormattedTime","time","Date","pad","getHours","getMinutes","getSeconds","getMilliseconds","num","maxLength","times","createNamespacedHelpers","createLogger","stateBefore","stateAfter","transformer","mutationTransformer","mut","actionFilter","actionTransformer","act","logMutations","logActions","prevState","nextState","formattedTime","formattedMutation","formattedAction","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","m","O","chunkIds","notFulfilled","Infinity","fulfilled","j","every","__esModule","d","definition","chunkId","promises","u","l","done","needAttach","scripts","s","charset","nc","src","onScriptComplete","prev","onerror","timeout","doneFns","toStringTag","nmd","paths","scriptUrl","globalThis","importScripts","currentScript","tagName","p","baseURI","self","href","installedChunks","installedChunkData","promise","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file