{"version":3,"file":"TimelineView-Bzb4Tj8Y.chunk.mjs","sources":["../src/components/Albums/AlbumPicker.vue","../src/services/downloadFiles.ts","../src/views/TimelineView.vue"],"sourcesContent":["\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 */\n\nimport axios from '@nextcloud/axios'\nimport {\n\ttype Node,\n\n\tFileType,\n} from '@nextcloud/files'\n\n/**\n * Trigger downloading a file.\n *\n * @param url The url of the asset to download\n * @param name Optionally the recommended name of the download (browsers might ignore it)\n */\nasync function triggerDownload(url: string, name?: string) {\n\t// try to see if the resource is still available\n\tawait axios.head(url)\n\n\tconst hiddenElement = document.createElement('a')\n\thiddenElement.download = name ?? ''\n\thiddenElement.href = url\n\thiddenElement.click()\n}\n\n/**\n * Find the longest common path prefix of both input paths\n *\n * @param first The first path\n * @param second The second path\n */\nfunction longestCommonPath(first: string, second: string): string {\n\tconst firstSegments = first.split('/').filter(Boolean)\n\tconst secondSegments = second.split('/').filter(Boolean)\n\tlet base = ''\n\tfor (const [index, segment] of firstSegments.entries()) {\n\t\tif (index >= second.length) {\n\t\t\tbreak\n\t\t}\n\t\tif (segment !== secondSegments[index]) {\n\t\t\tbreak\n\t\t}\n\t\tconst sep = base === '' ? '' : '/'\n\t\tbase = `${base}${sep}${segment}`\n\t}\n\treturn base\n}\n\n/**\n * Download the given nodes.\n *\n * If only one node is given, it will be downloaded directly.\n * If multiple nodes are given, they will be zipped and downloaded.\n *\n * @param nodes The node(s) to download\n */\nexport async function downloadFiles(nodes: Node[]) {\n\tlet url: URL\n\n\tif (nodes.length === 1) {\n\t\tif (nodes[0]!.type === FileType.File) {\n\t\t\tawait triggerDownload(nodes[0]!.encodedSource, nodes[0]!.displayname)\n\t\t\treturn\n\t\t} else {\n\t\t\turl = new URL(nodes[0]!.encodedSource)\n\t\t\turl.searchParams.append('accept', 'zip')\n\t\t}\n\t} else {\n\t\turl = new URL(nodes[0]!.encodedSource)\n\t\tlet base = url.pathname\n\t\tfor (const node of nodes.slice(1)) {\n\t\t\tbase = longestCommonPath(base, (new URL(node.encodedSource).pathname))\n\t\t}\n\t\turl.pathname = base\n\n\t\t// The URL contains the path encoded so we need to decode as the query.append will re-encode it\n\t\tconst filenames = nodes.map((node) => decodeURIComponent(node.encodedSource.slice(url.href.length + 1)))\n\t\turl.searchParams.append('accept', 'zip')\n\t\turl.searchParams.append('files', JSON.stringify(filenames))\n\t}\n\n\tif (url.pathname.at(-1) !== '/') {\n\t\turl.pathname = `${url.pathname}/`\n\t}\n\n\tawait triggerDownload(url.href)\n}\n","\n\n\n\n\n\n\n"],"names":["_sfc_main$1","defineComponent","Plus","ImageMultipleOutline","NcButton","NcListItem","NcLoadingIcon","NcUserBubble","AlbumForm","fileId","generateUrl","FetchCollectionsMixin","getCurrentUser","albumsExtraProps","album","translate","translatePlural","triggerDownload","url","name","axios","hiddenElement","longestCommonPath","first","second","firstSegments","secondSegments","base","index","segment","downloadFiles","nodes","FileType","node","filenames","_sfc_main","DeleteOutline","PlusBoxMultipleOutline","DownloadOutline","Close","FolderAlertOutline","NcEmptyContent","NcModal","NcActions","NcActionButton","AlbumPicker","FilesListViewer","FileComponent","ActionFavorite","HeaderNavigation","PhotosSourceLocationsSettings","AlertCircleOutline","date","moment","FetchFilesMixin","FilesSelectionMixin","FilesByMonthMixin","to","from","next","key","allMimes","isMobile","useIsMobile","filtersStore","useFilterStore","selectedFilters","filtersQuery","storeToRefs","subscribe","configChangedEvent","unsubscribe","toViewerFileInfo","fileIds","fileid","t"],"mappings":"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"}