| Server IP : 85.214.143.32 / Your IP : 216.73.217.113 Web Server : nginx/1.24.0 System : Linux datensicherung.webdress.site 6.8.0-139-generic #139-Ubuntu SMP PREEMPT_DYNAMIC Sat Aug 1 03:52:05 UTC 2026 x86_64 User : www-data ( 33) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /var/www/nextcloud/dist/ |
Upload File : |
{"version":3,"file":"files-sidebar.js?v=6de849a26619052746e8","mappings":"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","sources":["webpack:///nextcloud/apps/files/src/utils/logger.ts","webpack:///nextcloud/node_modules/@nextcloud/files/dist/dav.mjs","webpack:///nextcloud/apps/files/src/store/active.ts","webpack:///nextcloud/apps/files/src/services/WebdavClient.ts","webpack:///nextcloud/apps/files/src/store/files.ts","webpack:///nextcloud/apps/files/src/store/paths.ts","webpack:///nextcloud/apps/files/src/store/sidebar.ts","webpack:///nextcloud/apps/files/src/sidebar.ts","webpack:///nextcloud/apps/files/src/store/index.ts","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/chunk loaded","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/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/set anonymous default export name","webpack:///nextcloud/webpack/runtime/wrap commonjs module","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["/*!\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","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 `<?xml version=\"1.0\"?>\n\t\t<d:propfind ${getDavNameSpaces()}>\n\t\t\t<d:prop>\n\t\t\t\t${getDavProperties()}\n\t\t\t</d:prop>\n\t\t</d:propfind>`;\n}\nfunction getFavoritesReport() {\n return `<?xml version=\"1.0\"?>\n\t\t<oc:filter-files ${getDavNameSpaces()}>\n\t\t\t<d:prop>\n\t\t\t\t${getDavProperties()}\n\t\t\t</d:prop>\n\t\t\t<oc:filter-rules>\n\t\t\t\t<oc:favorite>1</oc:favorite>\n\t\t\t</oc:filter-rules>\n\t\t</oc:filter-files>`;\n}\nfunction getRecentSearch(lastModified) {\n return `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<d:searchrequest ${getDavNameSpaces()}\n\txmlns:ns=\"https://github.com/icewind1991/SearchDAV/ns\">\n\t<d:basicsearch>\n\t\t<d:select>\n\t\t\t<d:prop>\n\t\t\t\t${getDavProperties()}\n\t\t\t</d:prop>\n\t\t</d:select>\n\t\t<d:from>\n\t\t\t<d:scope>\n\t\t\t\t<d:href>/files/${getCurrentUser()?.uid}/</d:href>\n\t\t\t\t<d:depth>infinity</d:depth>\n\t\t\t</d:scope>\n\t\t</d:from>\n\t\t<d:where>\n\t\t\t<d:and>\n\t\t\t\t<d:or>\n\t\t\t\t\t<d:not>\n\t\t\t\t\t\t<d:eq>\n\t\t\t\t\t\t\t<d:prop>\n\t\t\t\t\t\t\t\t<d:getcontenttype/>\n\t\t\t\t\t\t\t</d:prop>\n\t\t\t\t\t\t\t<d:literal>httpd/unix-directory</d:literal>\n\t\t\t\t\t\t</d:eq>\n\t\t\t\t\t</d:not>\n\t\t\t\t\t<d:eq>\n\t\t\t\t\t\t<d:prop>\n\t\t\t\t\t\t\t<oc:size/>\n\t\t\t\t\t\t</d:prop>\n\t\t\t\t\t\t<d:literal>0</d:literal>\n\t\t\t\t\t</d:eq>\n\t\t\t\t</d:or>\n\t\t\t\t<d:gt>\n\t\t\t\t\t<d:prop>\n\t\t\t\t\t\t<d:getlastmodified/>\n\t\t\t\t\t</d:prop>\n\t\t\t\t\t<d:literal>${lastModified}</d:literal>\n\t\t\t\t</d:gt>\n\t\t\t</d:and>\n\t\t</d:where>\n\t\t<d:orderby>\n\t\t\t<d:order>\n\t\t\t\t<d:prop>\n\t\t\t\t\t<d:getlastmodified/>\n\t\t\t\t</d:prop>\n\t\t\t\t<d:descending/>\n\t\t\t</d:order>\n\t\t</d:orderby>\n\t\t<d:limit>\n\t\t\t<d:nresults>100</d:nresults>\n\t\t\t<ns:firstresult>0</ns:firstresult>\n\t\t</d:limit>\n\t</d:basicsearch>\n</d:searchrequest>`;\n}\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","/*!\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 (!activeNode.value?.id) {\n return;\n }\n // Sync even when the active node is the current folder: skipping that case\n // leaves a stale child fileid in the route, which then gets restored into\n // the sidebar when it reopens.\n if (activeNode.value.id === String(window.OCP.Files.Router.params?.fileid ?? '')) {\n return;\n }\n logger.debug('Updating active fileid in URL query', { fileid: activeNode.value.id });\n window.OCP.Files.Router.goToRoute(null, { ...window.OCP.Files.Router.params, fileid: activeNode.value.id }, { ...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 { 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: 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 { useActiveStore } from './active.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 // handle updating the active node\n const activeStore = useActiveStore();\n if (activeStore.activeNode && activeStore.activeNode.source in newNodes) {\n activeStore.activeNode = files.value[activeStore.activeNode.source];\n }\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 const newNode = await fetchNode(node.path);\n updateNodes([newNode]);\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: 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 { 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: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getPinia } from './store/index.ts';\nimport { useSidebarStore } from './store/sidebar.ts';\n// Provide sidebar implementation which is proxied by the `@nextcloud/files` library for app usage.\nwindow.OCA.Files ??= {};\nwindow.OCA.Files._sidebar = () => useSidebarStore(getPinia());\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","// The module cache\nconst __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tconst 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\tconst 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","const 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\tlet notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tlet [chunkIds, fn, priority] = deferred[i];\n\t\tlet 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\tconst r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tconst 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/value functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tif(Array.isArray(definition)) {\n\t\tvar i = 0;\n\t\twhile(i < definition.length) {\n\t\t\tvar key = definition[i++];\n\t\t\tvar binding = definition[i++];\n\t\t\tif(!__webpack_require__.o(exports, key)) {\n\t\t\t\tif(binding === 0) {\n\t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, value: definition[i++] });\n\t\t\t\t} else {\n\t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: binding });\n\t\t\t\t}\n\t\t\t} else if(binding === 0) { i++; }\n\t\t}\n\t} else {\n\t\tfor(var key in definition) {\n\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t\t}\n\t\t}\n\t}\n};","// The chunk loading function for additional chunks\n// Since all referenced chunks are already included\n// in this file, this function is empty here.\n__webpack_require__.e = () => (Promise.resolve());","__webpack_require__.o = (obj, prop) => (Object.hasOwn(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(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 = 4763;","// set .name for anonymous default exports per ES spec\n// skipped when the property is non-configurable (pre-ES2015 engines),\n// where Object.defineProperty would throw\n__webpack_require__.dn = (x) => {\n\tvar descriptor = Object.getOwnPropertyDescriptor(x, \"name\");\n\tif (!descriptor || (!descriptor.writable && descriptor.configurable)) Object.defineProperty(x, \"name\", { value: \"default\", configurable: true });\n};","// execute a CommonJS module body with real module/exports objects, returning the final exports\n__webpack_require__.cjs = (body) => {\n\tconst mod = { exports: {} };\n\tbody.call(mod.exports, mod, mod.exports);\n\treturn mod.exports;\n};","__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\nconst installedChunks = {\n\t4763: 0\n};\n\n// no chunk on demand loading\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\nconst webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tlet [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\nconst chunkLoadingGlobal = 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\nlet __webpack_exports__ = __webpack_require__.O(undefined, [4208], () => (__webpack_require__(95167)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["logger","getLoggerBuilder","setApp","detectUser","build","defaultDavProperties","defaultDavNamespaces","d","nc","oc","ocs","getRootPath","dist_public","f","G","auth_dist","HW","uid","defaultRootPath","getRemoteURL","url","router_dist","dC","replace","defaultRemoteURL","dummyFolder","Folder","id","source","root","owner","getCurrentUser","permissions","Permission","NONE","useActiveStore","defineStore","activeAction","shallowRef","activeNode","ref","activeView","activeFolder","onDeletedNode","node","value","undefined","onChangedView","view","debug","watch","String","window","OCP","Files","Router","params","fileid","goToRoute","query","navigation","getNavigation","active","subscribe","addEventListener","event","detail","initialize","client","remoteURL","headers","web","UU","setHeaders","token","requesttoken","zo","Gu","patch","options","headers2","method","fetch","getClient","async","fetchNode","path","propfindPayload","folder_29HuacU_","s","davNamespaces","Object","keys","map","ns","join","davProperties","prop","filesRoot","userId","Error","props","permString","P","includes","READ","WRITE","CREATE","UPDATE","DELETE","SHARE","parsePermissions","mtime","Date","parse","lastmod","crtime","creationdate","nodeData","filename","isNaN","getTime","mime","displayname","size","Number","parseInt","getcontentlength","status","c","FAILED","attributes","hasPreview","type","a","b","resultToNode","stat","details","data","useFilesStore","files","roots","getNode","getNodes","sources","filter","Boolean","getNodesById","values","getRoot","service","getDirectoryByPath","pathsStore","args","state","paths","getters","getPath","actions","addPath","payload","this","Vue","deletePath","delete","onCreatedNode","FileType","addNodeToParentChildren","error","deleteNodeFromParentChildren","onMovedNode","oldSource","oldPath","entries","find","oldNode","File","parentSource","dirname","folder","children","Set","_children","parent","add","store","_initialized","usePathsStore","updateNodes","nodes","newNodes","reduce","acc","activeStore","deleteNodes","some","n","fromEntries","length","Promise","all","then","ourNode","getNodesByPath","setRoot","useSidebarStore","activeTab","isOpen","currentNode","computed","hasContext","currentContext","currentActions","getActions","currentTabs","getTabs","open","tabId","setActiveTab","newTabs","warn","close","context","tabs","getSidebarTabs","tab","enabled","sort","order","getSidebarActions","action","initialized","_router","afterEach","to","from","opendetails","readonly","OCA","_sidebar","_nc_files_pinia","createPinia","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","module","loaded","__webpack_modules__","call","m","deferred","O","result","chunkIds","fn","priority","i","notFulfilled","Infinity","fulfilled","j","every","key","splice","r","getter","__esModule","definition","Array","isArray","binding","o","defineProperty","enumerable","get","e","resolve","obj","hasOwn","Symbol","toStringTag","nmd","dn","x","descriptor","getOwnPropertyDescriptor","writable","configurable","cjs","body","mod","document","baseURI","self","location","href","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","globalThis","forEach","bind","push","__webpack_exports__"],"sourceRoot":""}