diff options
author | fenn-cs <fenn25.fn@gmail.com> | 2023-11-09 17:46:37 +0100 |
---|---|---|
committer | fenn-cs <fenn25.fn@gmail.com> | 2023-11-10 11:27:32 +0100 |
commit | 13d03f45a3735dc44ccdbebf7bedb0825460a477 (patch) | |
tree | f6ab70c286f817ba4f45ab3f8dc4731c5f5119fd /dist/files-init.js.map | |
parent | 20b3338288e85772ad74b956f566b80ce7a4cfb9 (diff) | |
download | nextcloud-server-13d03f45a3735dc44ccdbebf7bedb0825460a477.tar.gz nextcloud-server-13d03f45a3735dc44ccdbebf7bedb0825460a477.zip |
Add unified search toggle in config
The new global search UI is new and might be unstable, hence
we are giving users the option to use the old unified search UI, if
the encounter signficant bottlenecks.
Signed-off-by: fenn-cs <fenn25.fn@gmail.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
Diffstat (limited to 'dist/files-init.js.map')
-rw-r--r-- | dist/files-init.js.map | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/dist/files-init.js.map b/dist/files-init.js.map index 8c40ffbc0f3..58e7308256a 100644 --- a/dist/files-init.js.map +++ b/dist/files-init.js.map @@ -1 +1 @@ -{"version":3,"file":"files-init.js?v=5f3ae6bf78fca33a0c42","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/apps/files/src/logger.js","webpack:///nextcloud/apps/files/src/actions/deleteAction.ts","webpack:///nextcloud/apps/files/src/actions/downloadAction.ts","webpack:///nextcloud/apps/files/src/actions/editLocallyAction.ts","webpack:///nextcloud/apps/files/src/actions/favoriteAction.ts","webpack://nextcloud/./node_modules/@nextcloud/dialogs/dist/style.css?d87c","webpack:///nextcloud/node_modules/axios/index.js","webpack:///nextcloud/node_modules/vue-material-design-icons/FileMultiple.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/FileMultiple.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/FileMultiple.vue?6e9d","webpack:///nextcloud/node_modules/vue-material-design-icons/FileMultiple.vue?vue&type=template&id=065722db","webpack:///nextcloud/node_modules/vue-material-design-icons/FolderMove.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/FolderMove.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/FolderMove.vue?50e5","webpack:///nextcloud/node_modules/vue-material-design-icons/FolderMove.vue?vue&type=template&id=1f36751d","webpack:///nextcloud/apps/files/src/actions/moveOrCopyActionUtils.ts","webpack:///nextcloud/apps/files/src/actions/moveOrCopyAction.ts","webpack:///nextcloud/apps/files/src/actions/openFolderAction.ts","webpack:///nextcloud/apps/files/src/actions/openInFilesAction.ts","webpack:///nextcloud/apps/files/src/actions/renameAction.ts","webpack:///nextcloud/apps/files/src/actions/sidebarAction.ts","webpack:///nextcloud/apps/files/src/actions/viewInFolderAction.ts","webpack:///nextcloud/apps/files/src/newMenu/newFolder.ts","webpack:///nextcloud/apps/files/src/services/WebdavClient.ts","webpack:///nextcloud/apps/files/src/utils/hashUtils.ts","webpack:///nextcloud/apps/files/src/services/Files.ts","webpack:///nextcloud/apps/files/src/services/Favorites.ts","webpack:///nextcloud/apps/files/src/views/favorites.ts","webpack:///nextcloud/apps/files/src/services/Recent.ts","webpack:///nextcloud/apps/files/src/views/TemplatePicker.vue","webpack:///nextcloud/apps/files/src/utils/fileUtils.ts","webpack:///nextcloud/apps/files/src/components/TemplatePreview.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files/src/components/TemplatePreview.vue","webpack:///nextcloud/apps/files/src/utils/davUtils.js","webpack://nextcloud/./apps/files/src/components/TemplatePreview.vue?af18","webpack://nextcloud/./apps/files/src/components/TemplatePreview.vue?81db","webpack://nextcloud/./apps/files/src/components/TemplatePreview.vue?c414","webpack:///nextcloud/apps/files/src/views/TemplatePicker.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/files/src/services/Templates.js","webpack://nextcloud/./apps/files/src/views/TemplatePicker.vue?0681","webpack://nextcloud/./apps/files/src/views/TemplatePicker.vue?afd8","webpack:///nextcloud/apps/files/src/init-templates.ts","webpack:///nextcloud/apps/files/src/init.ts","webpack:///nextcloud/apps/files/src/views/files.ts","webpack:///nextcloud/apps/files/src/views/recent.ts","webpack:///nextcloud/apps/files/src/services/ServiceWorker.js","webpack:///nextcloud/apps/files/src/services/LivePhotos.ts","webpack:///nextcloud/node_modules/cancelable-promise/umd/CancelablePromise.js","webpack:///nextcloud/node_modules/@nextcloud/dialogs/dist/style.css","webpack:///nextcloud/apps/files/src/components/TemplatePreview.vue?vue&type=style&index=0&id=0859a92c&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/files/src/views/TemplatePicker.vue?vue&type=style&index=0&id=48121b39&prod&lang=scss&scoped=true","webpack:///nextcloud/node_modules/@nextcloud/files/dist/index.mjs","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/publicPath","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","/**\n * @copyright Copyright (c) 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nexport default getLoggerBuilder()\n\t.setApp('files')\n\t.detectUser()\n\t.build()\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { emit } from '@nextcloud/event-bus';\nimport { Permission, Node, View, FileAction } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport axios from '@nextcloud/axios';\nimport TrashCanSvg from '@mdi/svg/svg/trash-can.svg?raw';\nimport logger from '../logger.js';\nexport const action = new FileAction({\n id: 'delete',\n displayName(nodes, view) {\n return view.id === 'trashbin'\n ? t('files', 'Delete permanently')\n : t('files', 'Delete');\n },\n iconSvgInline: () => TrashCanSvg,\n enabled(nodes) {\n return nodes.length > 0 && nodes\n .map(node => node.permissions)\n .every(permission => (permission & Permission.DELETE) !== 0);\n },\n async exec(node) {\n try {\n await axios.delete(node.encodedSource);\n // Let's delete even if it's moved to the trashbin\n // since it has been removed from the current view\n // and changing the view will trigger a reload anyway.\n emit('files:node:deleted', node);\n return true;\n }\n catch (error) {\n logger.error('Error while deleting a file', { error, source: node.source, node });\n return false;\n }\n },\n async execBatch(nodes, view, dir) {\n return Promise.all(nodes.map(node => this.exec(node, view, dir)));\n },\n order: 100,\n});\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { generateUrl } from '@nextcloud/router';\nimport { FileAction, Permission, Node, FileType, View } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport ArrowDownSvg from '@mdi/svg/svg/arrow-down.svg?raw';\nconst triggerDownload = function (url) {\n const hiddenElement = document.createElement('a');\n hiddenElement.download = '';\n hiddenElement.href = url;\n hiddenElement.click();\n};\nconst downloadNodes = function (dir, nodes) {\n const secret = Math.random().toString(36).substring(2);\n const url = generateUrl('/apps/files/ajax/download.php?dir={dir}&files={files}&downloadStartSecret={secret}', {\n dir,\n secret,\n files: JSON.stringify(nodes.map(node => node.basename)),\n });\n triggerDownload(url);\n};\nexport const action = new FileAction({\n id: 'download',\n displayName: () => t('files', 'Download'),\n iconSvgInline: () => ArrowDownSvg,\n enabled(nodes) {\n if (nodes.length === 0) {\n return false;\n }\n // We can download direct dav files. But if we have\n // some folders, we need to use the /apps/files/ajax/download.php\n // endpoint, which only supports user root folder.\n if (nodes.some(node => node.type === FileType.Folder)\n && nodes.some(node => !node.root?.startsWith('/files'))) {\n return false;\n }\n return nodes\n .map(node => node.permissions)\n .every(permission => (permission & Permission.READ) !== 0);\n },\n async exec(node, view, dir) {\n if (node.type === FileType.Folder) {\n downloadNodes(dir, [node]);\n return null;\n }\n triggerDownload(node.source);\n return null;\n },\n async execBatch(nodes, view, dir) {\n if (nodes.length === 1) {\n this.exec(nodes[0], view, dir);\n return [null];\n }\n downloadNodes(dir, nodes);\n return new Array(nodes.length).fill(null);\n },\n order: 30,\n});\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { encodePath } from '@nextcloud/paths';\nimport { generateOcsUrl } from '@nextcloud/router';\nimport { getCurrentUser } from '@nextcloud/auth';\nimport { FileAction, Permission } from '@nextcloud/files';\nimport { showError } from '@nextcloud/dialogs';\nimport { translate as t } from '@nextcloud/l10n';\nimport axios from '@nextcloud/axios';\nimport LaptopSvg from '@mdi/svg/svg/laptop.svg?raw';\nconst openLocalClient = async function (path) {\n const link = generateOcsUrl('apps/files/api/v1') + '/openlocaleditor?format=json';\n try {\n const result = await axios.post(link, { path });\n const uid = getCurrentUser()?.uid;\n let url = `nc://open/${uid}@` + window.location.host + encodePath(path);\n url += '?token=' + result.data.ocs.data.token;\n window.location.href = url;\n }\n catch (error) {\n showError(t('files', 'Failed to redirect to client'));\n }\n};\nexport const action = new FileAction({\n id: 'edit-locally',\n displayName: () => t('files', 'Edit locally'),\n iconSvgInline: () => LaptopSvg,\n // Only works on single files\n enabled(nodes) {\n // Only works on single node\n if (nodes.length !== 1) {\n return false;\n }\n return (nodes[0].permissions & Permission.UPDATE) !== 0;\n },\n async exec(node) {\n openLocalClient(node.path);\n return null;\n },\n order: 25,\n});\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { emit } from '@nextcloud/event-bus';\nimport { generateUrl } from '@nextcloud/router';\nimport { Permission, View, FileAction } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport axios from '@nextcloud/axios';\nimport Vue from 'vue';\nimport StarOutlineSvg from '@mdi/svg/svg/star-outline.svg?raw';\nimport StarSvg from '@mdi/svg/svg/star.svg?raw';\nimport logger from '../logger.js';\nimport { encodePath } from '@nextcloud/paths';\n// If any of the nodes is not favorited, we display the favorite action.\nconst shouldFavorite = (nodes) => {\n return nodes.some(node => node.attributes.favorite !== 1);\n};\nexport const favoriteNode = async (node, view, willFavorite) => {\n try {\n // TODO: migrate to webdav tags plugin\n const url = generateUrl('/apps/files/api/v1/files') + encodePath(node.path);\n await axios.post(url, {\n tags: willFavorite\n ? [window.OC.TAG_FAVORITE]\n : [],\n });\n // Let's delete if we are in the favourites view\n // AND if it is removed from the user favorites\n // AND it's in the root of the favorites view\n if (view.id === 'favorites' && !willFavorite && node.dirname === '/') {\n emit('files:node:deleted', node);\n }\n // Update the node webdav attribute\n Vue.set(node.attributes, 'favorite', willFavorite ? 1 : 0);\n // Dispatch event to whoever is interested\n if (willFavorite) {\n emit('files:favorites:added', node);\n }\n else {\n emit('files:favorites:removed', node);\n }\n return true;\n }\n catch (error) {\n const action = willFavorite ? 'adding a file to favourites' : 'removing a file from favourites';\n logger.error('Error while ' + action, { error, source: node.source, node });\n return false;\n }\n};\nexport const action = new FileAction({\n id: 'favorite',\n displayName(nodes) {\n return shouldFavorite(nodes)\n ? t('files', 'Add to favorites')\n : t('files', 'Remove from favorites');\n },\n iconSvgInline: (nodes) => {\n return shouldFavorite(nodes)\n ? StarOutlineSvg\n : StarSvg;\n },\n enabled(nodes) {\n // We can only favorite nodes within files and with permissions\n return !nodes.some(node => !node.root?.startsWith?.('/files'))\n && nodes.every(node => node.permissions !== Permission.NONE);\n },\n async exec(node, view) {\n const willFavorite = shouldFavorite([node]);\n return await favoriteNode(node, view, willFavorite);\n },\n async execBatch(nodes, view) {\n const willFavorite = shouldFavorite(nodes);\n return Promise.all(nodes.map(async (node) => await favoriteNode(node, view, willFavorite)));\n },\n order: -50,\n});\n","\n 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!./style.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../css-loader/dist/cjs.js!./style.css\";\n export default content && content.locals ? content.locals : undefined;\n","import axios from './lib/axios.js';\n\n// This module is intended to unwrap Axios default export as named.\n// Keep top-level export same with static properties\n// so that it can keep same with es module or cjs\nconst {\n Axios,\n AxiosError,\n CanceledError,\n isCancel,\n CancelToken,\n VERSION,\n all,\n Cancel,\n isAxiosError,\n spread,\n toFormData,\n AxiosHeaders,\n HttpStatusCode,\n formToJSON,\n getAdapter,\n mergeConfig\n} = axios;\n\nexport {\n axios as default,\n Axios,\n AxiosError,\n CanceledError,\n isCancel,\n CancelToken,\n VERSION,\n all,\n Cancel,\n isAxiosError,\n spread,\n toFormData,\n AxiosHeaders,\n HttpStatusCode,\n formToJSON,\n getAdapter,\n mergeConfig\n}\n","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"!title\"\n :aria-label=\"title\"\n class=\"material-design-icon file-multiple-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M15,7H20.5L15,1.5V7M8,0H16L22,6V18A2,2 0 0,1 20,20H8C6.89,20 6,19.1 6,18V2A2,2 0 0,1 8,0M4,4V22H20V24H4A2,2 0 0,1 2,22V4H4Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"FileMultipleIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./FileMultiple.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./FileMultiple.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./FileMultiple.vue?vue&type=template&id=065722db\"\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,\"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 }","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"!title\"\n :aria-label=\"title\"\n class=\"material-design-icon folder-move-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M14,18V15H10V11H14V8L19,13M20,6H12L10,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V8C22,6.89 21.1,6 20,6Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"FolderMoveIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./FolderMove.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./FolderMove.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./FolderMove.vue?vue&type=template&id=1f36751d\"\nimport script from \"./FolderMove.vue?vue&type=script&lang=js\"\nexport * from \"./FolderMove.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-move-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 24 24\"}},[_c('path',{attrs:{\"d\":\"M14,18V15H10V11H14V8L19,13M20,6H12L10,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V8C22,6.89 21.1,6 20,6Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport '@nextcloud/dialogs/style.css';\nimport { Permission } from '@nextcloud/files';\nimport PQueue from 'p-queue';\n// This is the processing queue. We only want to allow 3 concurrent requests\nlet queue;\n/**\n * Get the processing queue\n */\nexport const getQueue = () => {\n if (!queue) {\n queue = new PQueue({ concurrency: 3 });\n }\n return queue;\n};\nexport var MoveCopyAction;\n(function (MoveCopyAction) {\n MoveCopyAction[\"MOVE\"] = \"Move\";\n MoveCopyAction[\"COPY\"] = \"Copy\";\n MoveCopyAction[\"MOVE_OR_COPY\"] = \"move-or-copy\";\n})(MoveCopyAction || (MoveCopyAction = {}));\nexport const canMove = (nodes) => {\n const minPermission = nodes.reduce((min, node) => Math.min(min, node.permissions), Permission.ALL);\n return (minPermission & Permission.UPDATE) !== 0;\n};\nexport const canDownload = (nodes) => {\n return nodes.every(node => {\n const shareAttributes = JSON.parse(node.attributes?.['share-attributes'] ?? '[]');\n return !shareAttributes.some(attribute => attribute.scope === 'permissions' && attribute.enabled === false && attribute.key === 'download');\n });\n};\nexport const canCopy = (nodes) => {\n // For now the only restriction is that a shared file\n // cannot be copied if the download is disabled\n return canDownload(nodes);\n};\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport '@nextcloud/dialogs/style.css';\n// eslint-disable-next-line n/no-extraneous-import\nimport { AxiosError } from 'axios';\nimport { basename, join } from 'path';\nimport { emit } from '@nextcloud/event-bus';\nimport { generateRemoteUrl } from '@nextcloud/router';\nimport { getCurrentUser } from '@nextcloud/auth';\nimport { getFilePickerBuilder, showError } from '@nextcloud/dialogs';\nimport { Permission, FileAction, FileType, NodeStatus } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport axios from '@nextcloud/axios';\nimport Vue from 'vue';\nimport CopyIcon from 'vue-material-design-icons/FileMultiple.vue';\nimport FolderMoveSvg from '@mdi/svg/svg/folder-move.svg?raw';\nimport MoveIcon from 'vue-material-design-icons/FolderMove.vue';\nimport { MoveCopyAction, canCopy, canMove, getQueue } from './moveOrCopyActionUtils';\nimport logger from '../logger';\n/**\n * Return the action that is possible for the given nodes\n * @param {Node[]} nodes The nodes to check against\n * @return {MoveCopyAction} The action that is possible for the given nodes\n */\nconst getActionForNodes = (nodes) => {\n if (canMove(nodes)) {\n if (canCopy(nodes)) {\n return MoveCopyAction.MOVE_OR_COPY;\n }\n return MoveCopyAction.MOVE;\n }\n // Assuming we can copy as the enabled checks for copy permissions\n return MoveCopyAction.COPY;\n};\n/**\n * Handle the copy/move of a node to a destination\n * This can be imported and used by other scripts/components on server\n * @param {Node} node The node to copy/move\n * @param {Folder} destination The destination to copy/move the node to\n * @param {MoveCopyAction} method The method to use for the copy/move\n * @param {boolean} overwrite Whether to overwrite the destination if it exists\n * @return {Promise<void>} A promise that resolves when the copy/move is done\n */\nexport const handleCopyMoveNodeTo = async (node, destination, method, overwrite = false) => {\n if (!destination) {\n return;\n }\n if (destination.type !== FileType.Folder) {\n throw new Error(t('files', 'Destination is not a folder'));\n }\n if (node.dirname === destination.path) {\n throw new Error(t('files', 'This file/folder is already in that directory'));\n }\n if (node.path.startsWith(destination.path)) {\n throw new Error(t('files', 'You cannot move a file/folder onto itself or into a subfolder of itself'));\n }\n const relativePath = join(destination.path, node.basename);\n const destinationUrl = generateRemoteUrl(`dav/files/${getCurrentUser()?.uid}${relativePath}`);\n logger.debug(`${method} ${node.basename} to ${destinationUrl}`);\n // Set loading state\n Vue.set(node, 'status', NodeStatus.LOADING);\n const queue = getQueue();\n return await queue.add(async () => {\n try {\n await axios({\n method: method === MoveCopyAction.COPY ? 'COPY' : 'MOVE',\n url: node.encodedSource,\n headers: {\n Destination: encodeURI(destinationUrl),\n Overwrite: overwrite ? undefined : 'F',\n },\n });\n // If we're moving, update the node\n // if we're copying, we don't need to update the node\n // the view will refresh itself\n if (method === MoveCopyAction.MOVE) {\n // Delete the node as it will be fetched again\n // when navigating to the destination folder\n emit('files:node:deleted', node);\n }\n }\n catch (error) {\n if (error instanceof AxiosError) {\n if (error?.response?.status === 412) {\n throw new Error(t('files', 'A file or folder with that name already exists in this folder'));\n }\n else if (error?.response?.status === 423) {\n throw new Error(t('files', 'The files is locked'));\n }\n else if (error?.response?.status === 404) {\n throw new Error(t('files', 'The file does not exist anymore'));\n }\n else if (error.message) {\n throw new Error(error.message);\n }\n }\n throw new Error();\n }\n finally {\n Vue.set(node, 'status', undefined);\n }\n });\n};\n/**\n * Open a file picker for the given action\n * @param {MoveCopyAction} action The action to open the file picker for\n * @param {string} dir The directory to start the file picker in\n * @param {Node} node The node to move/copy\n * @return {Promise<boolean>} A promise that resolves to true if the action was successful\n */\nconst openFilePickerForAction = async (action, dir = '/', node) => {\n const filePicker = getFilePickerBuilder(t('files', 'Chose destination'))\n .allowDirectories(true)\n .setFilter((n) => {\n // We only want to show folders that we can create nodes in\n return (n.permissions & Permission.CREATE) !== 0\n // We don't want to show the current node in the file picker\n && node.fileid !== n.fileid;\n })\n .setMimeTypeFilter([])\n .setMultiSelect(false)\n .startAt(dir);\n return new Promise((resolve, reject) => {\n filePicker.setButtonFactory((nodes, path) => {\n const buttons = [];\n const target = basename(path);\n if (node.dirname === path) {\n // This file/folder is already in that directory\n return buttons;\n }\n if (node.path === path) {\n // You cannot move a file/folder onto itself\n return buttons;\n }\n if (action === MoveCopyAction.COPY || action === MoveCopyAction.MOVE_OR_COPY) {\n buttons.push({\n label: target ? t('files', 'Copy to {target}', { target }) : t('files', 'Copy'),\n type: 'primary',\n icon: CopyIcon,\n async callback(destination) {\n try {\n await handleCopyMoveNodeTo(node, destination[0], MoveCopyAction.COPY);\n resolve(true);\n }\n catch (error) {\n reject(error);\n }\n },\n });\n }\n if (action === MoveCopyAction.MOVE || action === MoveCopyAction.MOVE_OR_COPY) {\n buttons.push({\n label: target ? t('files', 'Move to {target}', { target }) : t('files', 'Move'),\n type: action === MoveCopyAction.MOVE ? 'primary' : 'secondary',\n icon: MoveIcon,\n async callback(destination) {\n try {\n await handleCopyMoveNodeTo(node, destination[0], MoveCopyAction.MOVE);\n resolve(true);\n }\n catch (error) {\n reject(error);\n }\n },\n });\n }\n return buttons;\n });\n const picker = filePicker.build();\n picker.pick().catch(() => {\n reject(new Error(t('files', 'Cancelled move or copy operation')));\n });\n });\n};\nexport const action = new FileAction({\n id: 'move-copy',\n displayName(nodes) {\n switch (getActionForNodes(nodes)) {\n case MoveCopyAction.MOVE:\n return t('files', 'Move');\n case MoveCopyAction.COPY:\n return t('files', 'Copy');\n case MoveCopyAction.MOVE_OR_COPY:\n return t('files', 'Move or copy');\n }\n },\n iconSvgInline: () => FolderMoveSvg,\n enabled(nodes) {\n // We only support moving/copying files within the user folder\n if (!nodes.every(node => node.root?.startsWith('/files/'))) {\n return false;\n }\n return nodes.length > 0 && (canMove(nodes) || canCopy(nodes));\n },\n async exec(node, view, dir) {\n const action = getActionForNodes([node]);\n try {\n await openFilePickerForAction(action, dir, node);\n return true;\n }\n catch (error) {\n if (error instanceof Error && !!error.message) {\n showError(error.message);\n // Silent action as we handle the toast\n return null;\n }\n return false;\n }\n },\n order: 15,\n});\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { join } from 'path';\nimport { Permission, Node, FileType, View, FileAction, DefaultType } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport FolderSvg from '@mdi/svg/svg/folder.svg?raw';\nexport const action = new FileAction({\n id: 'open-folder',\n displayName(files) {\n // Only works on single node\n const displayName = files[0].attributes.displayName || files[0].basename;\n return t('files', 'Open folder {displayName}', { displayName });\n },\n iconSvgInline: () => FolderSvg,\n enabled(nodes) {\n // Only works on single node\n if (nodes.length !== 1) {\n return false;\n }\n const node = nodes[0];\n if (!node.isDavRessource) {\n return false;\n }\n return node.type === FileType.Folder\n && (node.permissions & Permission.READ) !== 0;\n },\n async exec(node, view, dir) {\n if (!node || node.type !== FileType.Folder) {\n return false;\n }\n window.OCP.Files.Router.goToRoute(null, { view: view.id, fileid: node.fileid }, { dir: join(dir, node.basename) });\n return null;\n },\n // Main action if enabled, meaning folders only\n default: DefaultType.HIDDEN,\n order: -100,\n});\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { translate as t } from '@nextcloud/l10n';\nimport { FileType, FileAction, DefaultType } from '@nextcloud/files';\n/**\n * TODO: Move away from a redirect and handle\n * navigation straight out of the recent view\n */\nexport const action = new FileAction({\n id: 'open-in-files-recent',\n displayName: () => t('files', 'Open in Files'),\n iconSvgInline: () => '',\n enabled: (nodes, view) => view.id === 'recent',\n async exec(node) {\n let dir = node.dirname;\n if (node.type === FileType.Folder) {\n dir = dir + '/' + node.basename;\n }\n window.OCP.Files.Router.goToRoute(null, // use default route\n { view: 'files', fileid: node.fileid }, { dir });\n return null;\n },\n // Before openFolderAction\n order: -1000,\n default: DefaultType.HIDDEN,\n});\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { emit } from '@nextcloud/event-bus';\nimport { Permission, FileAction } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport PencilSvg from '@mdi/svg/svg/pencil.svg?raw';\nexport const ACTION_DETAILS = 'details';\nexport const action = new FileAction({\n id: 'rename',\n displayName: () => t('files', 'Rename'),\n iconSvgInline: () => PencilSvg,\n enabled: (nodes) => {\n return nodes.length > 0 && nodes\n .map(node => node.permissions)\n .every(permission => (permission & Permission.UPDATE) !== 0);\n },\n async exec(node) {\n // Renaming is a built-in feature of the files app\n emit('files:node:rename', node);\n return null;\n },\n order: 10,\n});\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { Permission, View, FileAction, FileType } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport InformationSvg from '@mdi/svg/svg/information-variant.svg?raw';\nimport logger from '../logger.js';\nexport const ACTION_DETAILS = 'details';\nexport const action = new FileAction({\n id: ACTION_DETAILS,\n displayName: () => t('files', 'Open details'),\n iconSvgInline: () => InformationSvg,\n // Sidebar currently supports user folder only, /files/USER\n enabled: (nodes) => {\n // Only works on single node\n if (nodes.length !== 1) {\n return false;\n }\n if (!nodes[0]) {\n return false;\n }\n // Only work if the sidebar is available\n if (!window?.OCA?.Files?.Sidebar) {\n return false;\n }\n return (nodes[0].root?.startsWith('/files/') && nodes[0].permissions !== Permission.NONE) ?? false;\n },\n async exec(node, view, dir) {\n try {\n // TODO: migrate Sidebar to use a Node instead\n await window.OCA.Files.Sidebar.open(node.path);\n // Silently update current fileid\n window.OCP.Files.Router.goToRoute(null, { view: view.id, fileid: node.fileid }, { dir }, true);\n return null;\n }\n catch (error) {\n logger.error('Error while opening sidebar', { error });\n return false;\n }\n },\n order: -50,\n});\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { Node, FileType, Permission, View, FileAction } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport FolderMoveSvg from '@mdi/svg/svg/folder-move.svg?raw';\nexport const action = new FileAction({\n id: 'view-in-folder',\n displayName() {\n return t('files', 'View in folder');\n },\n iconSvgInline: () => FolderMoveSvg,\n enabled(nodes) {\n // Only works on single node\n if (nodes.length !== 1) {\n return false;\n }\n const node = nodes[0];\n if (!node.isDavRessource) {\n return false;\n }\n if (node.permissions === Permission.NONE) {\n return false;\n }\n return node.type === FileType.File;\n },\n async exec(node, view, dir) {\n if (!node || node.type !== FileType.File) {\n return false;\n }\n window.OCP.Files.Router.goToRoute(null, { view: 'files', fileid: node.fileid }, { dir: node.dirname });\n return null;\n },\n order: 80,\n});\n","import { basename, extname } from 'path';\nimport { emit } from '@nextcloud/event-bus';\nimport { getCurrentUser } from '@nextcloud/auth';\nimport { Permission, Folder } from '@nextcloud/files';\nimport { showSuccess } from '@nextcloud/dialogs';\nimport { translate as t } from '@nextcloud/l10n';\nimport axios from '@nextcloud/axios';\nimport FolderPlusSvg from '@mdi/svg/svg/folder-plus.svg?raw';\nimport logger from '../logger';\nconst createNewFolder = async (root, name) => {\n const source = root.source + '/' + name;\n const encodedSource = root.encodedSource + '/' + encodeURIComponent(name);\n const response = await axios({\n method: 'MKCOL',\n url: encodedSource,\n headers: {\n Overwrite: 'F',\n },\n });\n return {\n fileid: parseInt(response.headers['oc-fileid']),\n source,\n };\n};\n// TODO: move to @nextcloud/files\nexport const getUniqueName = (name, names) => {\n let newName = name;\n let i = 1;\n while (names.includes(newName)) {\n const ext = extname(name);\n newName = `${basename(name, ext)} (${i++})${ext}`;\n }\n return newName;\n};\nexport const entry = {\n id: 'newFolder',\n displayName: t('files', 'New folder'),\n enabled: (context) => (context.permissions & Permission.CREATE) !== 0,\n iconSvgInline: FolderPlusSvg,\n order: 0,\n async handler(context, content) {\n const contentNames = content.map((node) => node.basename);\n const name = getUniqueName(t('files', 'New folder'), contentNames);\n const { fileid, source } = await createNewFolder(context, name);\n // Create the folder in the store\n const folder = new Folder({\n source,\n id: fileid,\n mtime: new Date(),\n owner: getCurrentUser()?.uid || null,\n permissions: Permission.ALL,\n root: context?.root || '/files/' + getCurrentUser()?.uid,\n });\n showSuccess(t('files', 'Created new folder \"{name}\"', { name: basename(source) }));\n logger.debug('Created new folder', { folder, source });\n emit('files:node:created', folder);\n emit('files:node:rename', folder);\n },\n};\n","import { createClient, getPatcher } from 'webdav';\nimport { generateRemoteUrl } from '@nextcloud/router';\nimport { getCurrentUser, getRequestToken } from '@nextcloud/auth';\nimport { request } from 'webdav/dist/node/request.js';\nexport const rootPath = `/files/${getCurrentUser()?.uid}`;\nexport const defaultRootUrl = generateRemoteUrl('dav' + rootPath);\nexport const getClient = (rootUrl = defaultRootUrl) => {\n const client = createClient(rootUrl, {\n headers: {\n requesttoken: getRequestToken() || '',\n },\n });\n /**\n * Allow to override the METHOD to support dav REPORT\n *\n * @see https://github.com/perry-mitchell/webdav-client/blob/8d9694613c978ce7404e26a401c39a41f125f87f/source/request.ts\n */\n const patcher = getPatcher();\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // https://github.com/perry-mitchell/hot-patcher/issues/6\n patcher.patch('request', (options) => {\n if (options.headers?.method) {\n options.method = options.headers.method;\n delete options.headers.method;\n }\n return request(options);\n });\n return client;\n};\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nexport const hashCode = function (str) {\n return str.split('').reduce(function (a, b) {\n a = ((a << 5) - a) + b.charCodeAt(0);\n return a & a;\n }, 0);\n};\n","import { CancelablePromise } from 'cancelable-promise';\nimport { File, Folder, davParsePermissions, davGetDefaultPropfind } from '@nextcloud/files';\nimport { generateRemoteUrl } from '@nextcloud/router';\nimport { getCurrentUser } from '@nextcloud/auth';\nimport { getClient, rootPath } from './WebdavClient';\nimport { hashCode } from '../utils/hashUtils';\nimport logger from '../logger';\nconst client = getClient();\nexport const resultToNode = function (node) {\n const props = node.props;\n const permissions = davParsePermissions(props?.permissions);\n const owner = getCurrentUser()?.uid;\n const source = generateRemoteUrl('dav' + rootPath + node.filename);\n const id = props?.fileid < 0\n ? hashCode(source)\n : props?.fileid || 0;\n const nodeData = {\n id,\n source,\n mtime: new Date(node.lastmod),\n mime: node.mime,\n size: props?.size || 0,\n permissions,\n owner,\n root: rootPath,\n attributes: {\n ...node,\n ...props,\n hasPreview: props?.['has-preview'],\n failed: props?.fileid < 0,\n },\n };\n delete nodeData.attributes.props;\n return node.type === 'file'\n ? new File(nodeData)\n : new Folder(nodeData);\n};\nexport const getContents = (path = '/') => {\n const controller = new AbortController();\n const propfindPayload = davGetDefaultPropfind();\n return new CancelablePromise(async (resolve, reject, onCancel) => {\n onCancel(() => controller.abort());\n try {\n const contentsResponse = await client.getDirectoryContents(path, {\n details: true,\n data: propfindPayload,\n includeSelf: true,\n signal: controller.signal,\n });\n const root = contentsResponse.data[0];\n const contents = contentsResponse.data.slice(1);\n if (root.filename !== path) {\n throw new Error('Root node does not match requested path');\n }\n resolve({\n folder: resultToNode(root),\n contents: contents.map(result => {\n try {\n return resultToNode(result);\n }\n catch (error) {\n logger.error(`Invalid node detected '${result.basename}'`, { error });\n return null;\n }\n }).filter(Boolean),\n });\n }\n catch (error) {\n reject(error);\n }\n });\n};\n","import { Folder, getDavNameSpaces, getDavProperties, davGetDefaultPropfind } from '@nextcloud/files';\nimport { getClient } from './WebdavClient';\nimport { resultToNode } from './Files';\nconst client = getClient();\nconst reportPayload = `<?xml version=\"1.0\"?>\n<oc:filter-files ${getDavNameSpaces()}>\n\t<d:prop>\n\t\t${getDavProperties()}\n\t</d:prop>\n\t<oc:filter-rules>\n\t\t<oc:favorite>1</oc:favorite>\n\t</oc:filter-rules>\n</oc:filter-files>`;\nexport const getContents = async (path = '/') => {\n const propfindPayload = davGetDefaultPropfind();\n // Get root folder\n let rootResponse;\n if (path === '/') {\n rootResponse = await client.stat(path, {\n details: true,\n data: propfindPayload,\n });\n }\n const contentsResponse = await client.getDirectoryContents(path, {\n details: true,\n // Only filter favorites if we're at the root\n data: path === '/' ? reportPayload : propfindPayload,\n headers: {\n // Patched in WebdavClient.ts\n method: path === '/' ? 'REPORT' : 'PROPFIND',\n },\n includeSelf: true,\n });\n const root = rootResponse?.data || contentsResponse.data[0];\n const contents = contentsResponse.data.filter(node => node.filename !== path);\n return {\n folder: resultToNode(root),\n contents: contents.map(resultToNode),\n };\n};\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { basename } from 'path';\nimport { getLanguage, translate as t } from '@nextcloud/l10n';\nimport { loadState } from '@nextcloud/initial-state';\nimport { Node, FileType, View, getNavigation } from '@nextcloud/files';\nimport { subscribe } from '@nextcloud/event-bus';\nimport FolderSvg from '@mdi/svg/svg/folder.svg?raw';\nimport StarSvg from '@mdi/svg/svg/star.svg?raw';\nimport { getContents } from '../services/Favorites';\nimport { hashCode } from '../utils/hashUtils';\nimport logger from '../logger';\nexport const generateFolderView = function (folder, index = 0) {\n return new View({\n id: generateIdFromPath(folder),\n name: basename(folder),\n icon: FolderSvg,\n order: index,\n params: {\n dir: folder,\n view: 'favorites',\n },\n parent: 'favorites',\n columns: [],\n getContents,\n });\n};\nexport const generateIdFromPath = function (path) {\n return `favorite-${hashCode(path)}`;\n};\nexport default () => {\n // Load state in function for mock testing purposes\n const favoriteFolders = loadState('files', 'favoriteFolders', []);\n const favoriteFoldersViews = favoriteFolders.map((folder, index) => generateFolderView(folder, index));\n const Navigation = getNavigation();\n Navigation.register(new View({\n id: 'favorites',\n name: t('files', 'Favorites'),\n caption: t('files', 'List of favorites files and folders.'),\n emptyTitle: t('files', 'No favorites yet'),\n emptyCaption: t('files', 'Files and folders you mark as favorite will show up here'),\n icon: StarSvg,\n order: 5,\n columns: [],\n getContents,\n }));\n favoriteFoldersViews.forEach(view => Navigation.register(view));\n /**\n * Update favourites navigation when a new folder is added\n */\n subscribe('files:favorites:added', (node) => {\n if (node.type !== FileType.Folder) {\n return;\n }\n // Sanity check\n if (node.path === null || !node.root?.startsWith('/files')) {\n logger.error('Favorite folder is not within user files root', { node });\n return;\n }\n addPathToFavorites(node.path);\n });\n /**\n * Remove favourites navigation when a folder is removed\n */\n subscribe('files:favorites:removed', (node) => {\n if (node.type !== FileType.Folder) {\n return;\n }\n // Sanity check\n if (node.path === null || !node.root?.startsWith('/files')) {\n logger.error('Favorite folder is not within user files root', { node });\n return;\n }\n removePathFromFavorites(node.path);\n });\n /**\n * Sort the favorites paths array and\n * update the order property of the existing views\n */\n const updateAndSortViews = function () {\n favoriteFolders.sort((a, b) => a.localeCompare(b, getLanguage(), { ignorePunctuation: true }));\n favoriteFolders.forEach((folder, index) => {\n const view = favoriteFoldersViews.find(view => view.id === generateIdFromPath(folder));\n if (view) {\n view.order = index;\n }\n });\n };\n // Add a folder to the favorites paths array and update the views\n const addPathToFavorites = function (path) {\n const view = generateFolderView(path);\n // Skip if already exists\n if (favoriteFolders.find(folder => folder === path)) {\n return;\n }\n // Update arrays\n favoriteFolders.push(path);\n favoriteFoldersViews.push(view);\n // Update and sort views\n updateAndSortViews();\n Navigation.register(view);\n };\n // Remove a folder from the favorites paths array and update the views\n const removePathFromFavorites = function (path) {\n const id = generateIdFromPath(path);\n const index = favoriteFolders.findIndex(folder => folder === path);\n // Skip if not exists\n if (index === -1) {\n return;\n }\n // Update arrays\n favoriteFolders.splice(index, 1);\n favoriteFoldersViews.splice(index, 1);\n // Update and sort views\n Navigation.remove(id);\n updateAndSortViews();\n };\n};\n","import { Folder, Permission, getDavNameSpaces, getDavProperties } from '@nextcloud/files';\nimport { generateRemoteUrl } from '@nextcloud/router';\nimport { getCurrentUser } from '@nextcloud/auth';\nimport { getClient, rootPath } from './WebdavClient';\nimport { resultToNode } from './Files';\nconst client = getClient(generateRemoteUrl('dav'));\nconst lastTwoWeeksTimestamp = Math.round((Date.now() / 1000) - (60 * 60 * 24 * 14));\nconst searchPayload = `<?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>${lastTwoWeeksTimestamp}</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>`;\nexport const getContents = async (path = '/') => {\n const contentsResponse = await client.getDirectoryContents(path, {\n details: true,\n data: searchPayload,\n headers: {\n // Patched in WebdavClient.ts\n method: 'SEARCH',\n // Somehow it's needed to get the correct response\n 'Content-Type': 'application/xml; charset=utf-8',\n },\n deep: true,\n });\n const contents = contentsResponse.data;\n return {\n folder: new Folder({\n id: 0,\n source: generateRemoteUrl('dav' + rootPath),\n root: rootPath,\n owner: getCurrentUser()?.uid || null,\n permissions: Permission.READ,\n }),\n contents: contents.map(resultToNode),\n };\n};\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.opened)?_c('NcModal',{staticClass:\"templates-picker\",attrs:{\"clear-view-delay\":-1,\"size\":\"large\"},on:{\"close\":_vm.close}},[_c('form',{staticClass:\"templates-picker__form\",style:(_vm.style),on:{\"submit\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.onSubmit.apply(null, arguments)}}},[_c('h2',[_vm._v(_vm._s(_vm.t('files', 'Pick a template for {name}', { name: _vm.nameWithoutExt })))]),_vm._v(\" \"),_c('ul',{staticClass:\"templates-picker__list\"},[_c('TemplatePreview',_vm._b({attrs:{\"checked\":_vm.checked === _vm.emptyTemplate.fileid},on:{\"check\":_vm.onCheck}},'TemplatePreview',_vm.emptyTemplate,false)),_vm._v(\" \"),_vm._l((_vm.provider.templates),function(template){return _c('TemplatePreview',_vm._b({key:template.fileid,attrs:{\"checked\":_vm.checked === template.fileid,\"ratio\":_vm.provider.ratio},on:{\"check\":_vm.onCheck}},'TemplatePreview',template,false))})],2),_vm._v(\" \"),_c('div',{staticClass:\"templates-picker__buttons\"},[_c('input',{staticClass:\"primary\",attrs:{\"type\":\"submit\",\"aria-label\":_vm.t('files', 'Create a new file with the selected template')},domProps:{\"value\":_vm.t('files', 'Create')}})])]),_vm._v(\" \"),(_vm.loading)?_c('NcEmptyContent',{staticClass:\"templates-picker__loading\",attrs:{\"icon\":\"icon-loading\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('files', 'Creating file'))+\"\\n\\t\")]):_vm._e()],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * @copyright Copyright (c) 2021 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { FileType } from '@nextcloud/files';\nimport { translate as t, translatePlural as n } from '@nextcloud/l10n';\nexport const encodeFilePath = function (path) {\n const pathSections = (path.startsWith('/') ? path : `/${path}`).split('/');\n let relativePath = '';\n pathSections.forEach((section) => {\n if (section !== '') {\n relativePath += '/' + encodeURIComponent(section);\n }\n });\n return relativePath;\n};\n/**\n * Extract dir and name from file path\n *\n * @param {string} path the full path\n * @return {string[]} [dirPath, fileName]\n */\nexport const extractFilePaths = function (path) {\n const pathSections = path.split('/');\n const fileName = pathSections[pathSections.length - 1];\n const dirPath = pathSections.slice(0, pathSections.length - 1).join('/');\n return [dirPath, fileName];\n};\n/**\n * Generate a translated summary of an array of nodes\n * @param {Node[]} nodes the nodes to summarize\n * @return {string}\n */\nexport const getSummaryFor = (nodes) => {\n const fileCount = nodes.filter(node => node.type === FileType.File).length;\n const folderCount = nodes.filter(node => node.type === FileType.Folder).length;\n if (fileCount === 0) {\n return n('files', '{folderCount} folder', '{folderCount} folders', folderCount, { folderCount });\n }\n else if (folderCount === 0) {\n return n('files', '{fileCount} file', '{fileCount} files', fileCount, { fileCount });\n }\n if (fileCount === 1) {\n return n('files', '1 file and {folderCount} folder', '1 file and {folderCount} folders', folderCount, { folderCount });\n }\n if (folderCount === 1) {\n return n('files', '{fileCount} file and 1 folder', '{fileCount} files and 1 folder', fileCount, { fileCount });\n }\n return t('files', '{fileCount} files and {folderCount} folders', { fileCount, folderCount });\n};\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TemplatePreview.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!./TemplatePreview.vue?vue&type=script&lang=js\"","<!--\n - @copyright Copyright (c) 2020 John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n\n<template>\n\t<li class=\"template-picker__item\">\n\t\t<input :id=\"id\"\n\t\t\t:checked=\"checked\"\n\t\t\ttype=\"radio\"\n\t\t\tclass=\"radio\"\n\t\t\tname=\"template-picker\"\n\t\t\t@change=\"onCheck\">\n\n\t\t<label :for=\"id\" class=\"template-picker__label\">\n\t\t\t<div class=\"template-picker__preview\"\n\t\t\t\t:class=\"failedPreview ? 'template-picker__preview--failed' : ''\">\n\t\t\t\t<img class=\"template-picker__image\"\n\t\t\t\t\t:src=\"realPreviewUrl\"\n\t\t\t\t\talt=\"\"\n\t\t\t\t\tdraggable=\"false\"\n\t\t\t\t\t@error=\"onFailure\">\n\t\t\t</div>\n\n\t\t\t<span class=\"template-picker__title\">\n\t\t\t\t{{ nameWithoutExt }}\n\t\t\t</span>\n\t\t</label>\n\t</li>\n</template>\n\n<script>\nimport { generateUrl } from '@nextcloud/router'\nimport { encodeFilePath } from '../utils/fileUtils.ts'\nimport { getToken, isPublic } from '../utils/davUtils.js'\n\n// preview width generation\nconst previewWidth = 256\n\nexport default {\n\tname: 'TemplatePreview',\n\tinheritAttrs: false,\n\n\tprops: {\n\t\tbasename: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tchecked: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\tfileid: {\n\t\t\ttype: [String, Number],\n\t\t\trequired: true,\n\t\t},\n\t\tfilename: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tpreviewUrl: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t\thasPreview: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t\tmime: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tratio: {\n\t\t\ttype: Number,\n\t\t\tdefault: null,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tfailedPreview: false,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\t/**\n\t\t * Strip away extension from name\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tnameWithoutExt() {\n\t\t\treturn this.basename.indexOf('.') > -1 ? this.basename.split('.').slice(0, -1).join('.') : this.basename\n\t\t},\n\n\t\tid() {\n\t\t\treturn `template-picker-${this.fileid}`\n\t\t},\n\n\t\trealPreviewUrl() {\n\t\t\t// If original preview failed, fallback to mime icon\n\t\t\tif (this.failedPreview && this.mimeIcon) {\n\t\t\t\treturn this.mimeIcon\n\t\t\t}\n\n\t\t\tif (this.previewUrl) {\n\t\t\t\treturn this.previewUrl\n\t\t\t}\n\t\t\t// TODO: find a nicer standard way of doing this?\n\t\t\tif (isPublic()) {\n\t\t\t\treturn generateUrl(`/apps/files_sharing/publicpreview/${getToken()}?fileId=${this.fileid}&file=${encodeFilePath(this.filename)}&x=${previewWidth}&y=${previewWidth}&a=1`)\n\t\t\t}\n\t\t\treturn generateUrl(`/core/preview?fileId=${this.fileid}&x=${previewWidth}&y=${previewWidth}&a=1`)\n\t\t},\n\n\t\tmimeIcon() {\n\t\t\treturn OC.MimeType.getIconUrl(this.mime)\n\t\t},\n\t},\n\n\tmethods: {\n\t\tonCheck() {\n\t\t\tthis.$emit('check', this.fileid)\n\t\t},\n\t\tonFailure() {\n\t\t\tthis.failedPreview = true\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n\n.template-picker {\n\t&__item {\n\t\tdisplay: flex;\n\t}\n\n\t&__label {\n\t\tdisplay: flex;\n\t\t// Align in the middle of the grid\n\t\talign-items: center;\n\t\tflex: 1 1;\n\t\tflex-direction: column;\n\n\t\t&, * {\n\t\t\tcursor: pointer;\n\t\t\tuser-select: none;\n\t\t}\n\n\t\t&::before {\n\t\t\tdisplay: none !important;\n\t\t}\n\t}\n\n\t&__preview {\n\t\tdisplay: block;\n\t\toverflow: hidden;\n\t\t// Stretch so all entries are the same width\n\t\tflex: 1 1;\n\t\twidth: var(--width);\n\t\tmin-height: var(--height);\n\t\tmax-height: var(--height);\n\t\tpadding: 0;\n\t\tborder: var(--border) solid var(--color-border);\n\t\tborder-radius: var(--border-radius-large);\n\n\t\tinput:checked + label > & {\n\t\t\tborder-color: var(--color-primary-element);\n\t\t}\n\n\t\t&--failed {\n\t\t\t// Make sure to properly center fallback icon\n\t\t\tdisplay: flex;\n\t\t}\n\t}\n\n\t&__image {\n\t\tmax-width: 100%;\n\t\tbackground-color: var(--color-main-background);\n\n\t\tobject-fit: cover;\n\t}\n\n\t// Failed preview, fallback to mime icon\n\t&__preview--failed &__image {\n\t\twidth: calc(var(--margin) * 8);\n\t\t// Center mime icon\n\t\tmargin: auto;\n\t\tbackground-color: transparent !important;\n\n\t\tobject-fit: initial;\n\t}\n\n\t&__title {\n\t\toverflow: hidden;\n\t\t// also count preview border\n\t\tmax-width: calc(var(--width) + 2*2px);\n\t\tpadding: var(--margin);\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t}\n}\n\n</style>\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport { generateRemoteUrl } from '@nextcloud/router'\nimport { getCurrentUser } from '@nextcloud/auth'\n\nexport const getRootPath = function() {\n\tif (getCurrentUser()) {\n\t\treturn generateRemoteUrl(`dav/files/${getCurrentUser().uid}`)\n\t} else {\n\t\treturn generateRemoteUrl('webdav').replace('/remote.php', '/public.php')\n\t}\n}\n\nexport const isPublic = function() {\n\treturn !getCurrentUser()\n}\n\nexport const getToken = function() {\n\treturn document.getElementById('sharingToken') && document.getElementById('sharingToken').value\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!./TemplatePreview.vue?vue&type=style&index=0&id=0859a92c&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../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!./TemplatePreview.vue?vue&type=style&index=0&id=0859a92c&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./TemplatePreview.vue?vue&type=template&id=0859a92c&scoped=true\"\nimport script from \"./TemplatePreview.vue?vue&type=script&lang=js\"\nexport * from \"./TemplatePreview.vue?vue&type=script&lang=js\"\nimport style0 from \"./TemplatePreview.vue?vue&type=style&index=0&id=0859a92c&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 \"0859a92c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('li',{staticClass:\"template-picker__item\"},[_c('input',{staticClass:\"radio\",attrs:{\"id\":_vm.id,\"type\":\"radio\",\"name\":\"template-picker\"},domProps:{\"checked\":_vm.checked},on:{\"change\":_vm.onCheck}}),_vm._v(\" \"),_c('label',{staticClass:\"template-picker__label\",attrs:{\"for\":_vm.id}},[_c('div',{staticClass:\"template-picker__preview\",class:_vm.failedPreview ? 'template-picker__preview--failed' : ''},[_c('img',{staticClass:\"template-picker__image\",attrs:{\"src\":_vm.realPreviewUrl,\"alt\":\"\",\"draggable\":\"false\"},on:{\"error\":_vm.onFailure}})]),_vm._v(\" \"),_c('span',{staticClass:\"template-picker__title\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.nameWithoutExt)+\"\\n\\t\\t\")])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TemplatePicker.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TemplatePicker.vue?vue&type=script&lang=ts\"","/**\n * @copyright Copyright (c) 2021 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport { generateOcsUrl } from '@nextcloud/router'\nimport axios from '@nextcloud/axios'\n\nexport const getTemplates = async function() {\n\tconst response = await axios.get(generateOcsUrl('apps/files/api/v1/templates'))\n\treturn response.data.ocs.data\n}\n\n/**\n * Create a new file from a specified template\n *\n * @param {string} filePath The new file destination path\n * @param {string} templatePath The template source path\n * @param {string} templateType The template type e.g 'user'\n */\nexport const createFromTemplate = async function(filePath, templatePath, templateType) {\n\tconst response = await axios.post(generateOcsUrl('apps/files/api/v1/templates/create'), {\n\t\tfilePath,\n\t\ttemplatePath,\n\t\ttemplateType,\n\t})\n\treturn response.data.ocs.data\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!./TemplatePicker.vue?vue&type=style&index=0&id=48121b39&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../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!./TemplatePicker.vue?vue&type=style&index=0&id=48121b39&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./TemplatePicker.vue?vue&type=template&id=48121b39&scoped=true\"\nimport script from \"./TemplatePicker.vue?vue&type=script&lang=ts\"\nexport * from \"./TemplatePicker.vue?vue&type=script&lang=ts\"\nimport style0 from \"./TemplatePicker.vue?vue&type=style&index=0&id=48121b39&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 \"48121b39\",\n null\n \n)\n\nexport default component.exports","import { Folder, Node, Permission, addNewFileMenuEntry, removeNewFileMenuEntry } from '@nextcloud/files';\nimport { generateOcsUrl } from '@nextcloud/router';\nimport { getLoggerBuilder } from '@nextcloud/logger';\nimport { join } from 'path';\nimport { loadState } from '@nextcloud/initial-state';\nimport { showError } from '@nextcloud/dialogs';\nimport { translate as t, translatePlural as n } from '@nextcloud/l10n';\nimport axios from '@nextcloud/axios';\nimport Vue from 'vue';\nimport PlusSvg from '@mdi/svg/svg/plus.svg?raw';\nimport TemplatePickerView from './views/TemplatePicker.vue';\nimport { getUniqueName } from './newMenu/newFolder';\nimport { getCurrentUser } from '@nextcloud/auth';\n// Set up logger\nconst logger = getLoggerBuilder()\n .setApp('files')\n .detectUser()\n .build();\n// Add translates functions\nVue.mixin({\n methods: {\n t,\n n,\n },\n});\n// Create document root\nconst TemplatePickerRoot = document.createElement('div');\nTemplatePickerRoot.id = 'template-picker';\ndocument.body.appendChild(TemplatePickerRoot);\n// Retrieve and init templates\nlet templates = loadState('files', 'templates', []);\nlet templatesPath = loadState('files', 'templates_path', false);\nlogger.debug('Templates providers', templates);\nlogger.debug('Templates folder', { templatesPath });\n// Init vue app\nconst View = Vue.extend(TemplatePickerView);\nconst TemplatePicker = new View({\n name: 'TemplatePicker',\n propsData: {\n logger,\n },\n});\nTemplatePicker.$mount('#template-picker');\nif (!templatesPath) {\n logger.debug('Templates folder not initialized');\n addNewFileMenuEntry({\n id: 'template-picker',\n displayName: t('files', 'Create new templates folder'),\n iconSvgInline: PlusSvg,\n order: 10,\n enabled(context) {\n // Allow creation on your own folders only\n if (context.owner !== getCurrentUser()?.uid) {\n return false;\n }\n return (context.permissions & Permission.CREATE) !== 0;\n },\n handler(context, content) {\n // Check for conflicts\n const contentNames = content.map((node) => node.basename);\n const name = getUniqueName(t('files', 'Templates'), contentNames);\n // Create the template folder\n initTemplatesFolder(context, name);\n // Remove the menu entry\n removeNewFileMenuEntry('template-picker');\n },\n });\n}\n// Init template files menu\ntemplates.forEach((provider, index) => {\n addNewFileMenuEntry({\n id: `template-new-${provider.app}-${index}`,\n displayName: provider.label,\n // TODO: migrate to inline svg\n iconClass: provider.iconClass || 'icon-file',\n enabled(context) {\n return (context.permissions & Permission.CREATE) !== 0;\n },\n order: 11,\n handler(context, content) {\n // Check for conflicts\n const contentNames = content.map((node) => node.basename);\n const name = getUniqueName(provider.label + provider.extension, contentNames);\n // Create the file\n TemplatePicker.open(name, provider);\n },\n });\n});\n// Init template folder\nconst initTemplatesFolder = async function (directory, name) {\n const templatePath = join(directory.path, name);\n try {\n logger.debug('Initializing the templates directory', { templatePath });\n const response = await axios.post(generateOcsUrl('apps/files/api/v1/templates/path'), {\n templatePath,\n copySystemTemplates: true,\n });\n // Go to template directory\n window.OCP.Files.Router.goToRoute(null, // use default route\n { view: 'files', fileid: undefined }, { dir: templatePath });\n templates = response.data.ocs.data.templates;\n templatesPath = response.data.ocs.data.template_path;\n }\n catch (error) {\n logger.error('Unable to initialize the templates directory');\n showError(t('files', 'Unable to initialize the templates directory'));\n }\n};\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport MenuIcon from '@mdi/svg/svg/sun-compass.svg?raw';\nimport { FileAction, addNewFileMenuEntry, registerDavProperty, registerFileAction } from '@nextcloud/files';\nimport { action as deleteAction } from './actions/deleteAction';\nimport { action as downloadAction } from './actions/downloadAction';\nimport { action as editLocallyAction } from './actions/editLocallyAction';\nimport { action as favoriteAction } from './actions/favoriteAction';\nimport { action as moveOrCopyAction } from './actions/moveOrCopyAction';\nimport { action as openFolderAction } from './actions/openFolderAction';\nimport { action as openInFilesAction } from './actions/openInFilesAction';\nimport { action as renameAction } from './actions/renameAction';\nimport { action as sidebarAction } from './actions/sidebarAction';\nimport { action as viewInFolderAction } from './actions/viewInFolderAction';\nimport { entry as newFolderEntry } from './newMenu/newFolder';\nimport registerFavoritesView from './views/favorites';\nimport registerRecentView from './views/recent';\nimport registerFilesView from './views/files';\nimport registerPreviewServiceWorker from './services/ServiceWorker.js';\nimport './init-templates';\nimport { initLivePhotos } from './services/LivePhotos';\n// Register file actions\nregisterFileAction(deleteAction);\nregisterFileAction(downloadAction);\nregisterFileAction(editLocallyAction);\nregisterFileAction(favoriteAction);\nregisterFileAction(moveOrCopyAction);\nregisterFileAction(openFolderAction);\nregisterFileAction(openInFilesAction);\nregisterFileAction(renameAction);\nregisterFileAction(sidebarAction);\nregisterFileAction(viewInFolderAction);\n// Register new menu entry\naddNewFileMenuEntry(newFolderEntry);\n// Register files views\nregisterFavoritesView();\nregisterFilesView();\nregisterRecentView();\n// Register preview service worker\nregisterPreviewServiceWorker();\nregisterDavProperty('nc:hidden', { nc: 'http://nextcloud.org/ns' });\ninitLivePhotos();\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { translate as t } from '@nextcloud/l10n';\nimport FolderSvg from '@mdi/svg/svg/folder.svg?raw';\nimport { getContents } from '../services/Files';\nimport { View, getNavigation } from '@nextcloud/files';\nexport default () => {\n const Navigation = getNavigation();\n Navigation.register(new View({\n id: 'files',\n name: t('files', 'All files'),\n caption: t('files', 'List of your files and folders.'),\n icon: FolderSvg,\n order: 0,\n getContents,\n }));\n};\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { translate as t } from '@nextcloud/l10n';\nimport HistorySvg from '@mdi/svg/svg/history.svg?raw';\nimport { getContents } from '../services/Recent';\nimport { View, getNavigation } from '@nextcloud/files';\nexport default () => {\n const Navigation = getNavigation();\n Navigation.register(new View({\n id: 'recent',\n name: t('files', 'Recent'),\n caption: t('files', 'List of recently modified files and folders.'),\n emptyTitle: t('files', 'No recently modified files'),\n emptyCaption: t('files', 'Files and folders you recently modified will show up here.'),\n icon: HistorySvg,\n order: 2,\n defaultSortKey: 'mtime',\n getContents,\n }));\n};\n","/**\n * @copyright Copyright (c) 2019 Gary Kim <gary@garykim.dev>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { generateUrl } from '@nextcloud/router'\nimport logger from '../logger.js'\n\nexport default () => {\n\tif ('serviceWorker' in navigator) {\n\t\t// Use the window load event to keep the page load performant\n\t\twindow.addEventListener('load', async () => {\n\t\t\ttry {\n\t\t\t\tconst url = generateUrl('/apps/files/preview-service-worker.js', {}, { noRewrite: true })\n\t\t\t\tconst registration = await navigator.serviceWorker.register(url, { scope: '/' })\n\t\t\t\tlogger.debug('SW registered: ', { registration })\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error('SW registration failed: ', { error })\n\t\t\t}\n\t\t})\n\t} else {\n\t\tlogger.debug('Service Worker is not enabled on this browser.')\n\t}\n}\n","/**\n * @copyright Copyright (c) 2023 Louis Chmn <louis@chmn.me>\n *\n * @author Louis Chmn <louis@chmn.me>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { Node, registerDavProperty } from '@nextcloud/files';\nexport function initLivePhotos() {\n registerDavProperty('nc:metadata-files-live-photo', { nc: 'http://nextcloud.org/ns' });\n}\n/**\n * @param {Node} node - The node\n */\nexport function isLivePhoto(node) {\n return node.attributes['metadata-files-live-photo'] !== undefined;\n}\n","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n(function (global, factory) {\n if (typeof define === \"function\" && define.amd) {\n define([\"exports\"], factory);\n } else if (typeof exports !== \"undefined\") {\n factory(exports);\n } else {\n var mod = {\n exports: {}\n };\n factory(mod.exports);\n global.CancelablePromise = mod.exports;\n }\n})(typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : this, function (_exports) {\n \"use strict\";\n\n Object.defineProperty(_exports, \"__esModule\", {\n value: true\n });\n _exports.CancelablePromise = void 0;\n _exports.cancelable = cancelable;\n _exports.default = void 0;\n _exports.isCancelablePromise = isCancelablePromise;\n\n function _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\n function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\n function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\n function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\n function _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\n function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\n function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\n function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\n function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }\n\n function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); } }\n\n function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, \"get\"); return _classApplyDescriptorGet(receiver, descriptor); }\n\n function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }\n\n function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, \"set\"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }\n\n function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError(\"attempted to \" + action + \" private field on non-instance\"); } return privateMap.get(receiver); }\n\n function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError(\"attempted to set read only private field\"); } descriptor.value = value; } }\n\n var toStringTag = typeof Symbol !== 'undefined' ? Symbol.toStringTag : '@@toStringTag';\n\n var _internals = /*#__PURE__*/new WeakMap();\n\n var _promise = /*#__PURE__*/new WeakMap();\n\n var CancelablePromiseInternal = /*#__PURE__*/function () {\n function CancelablePromiseInternal(_ref) {\n var _ref$executor = _ref.executor,\n executor = _ref$executor === void 0 ? function () {} : _ref$executor,\n _ref$internals = _ref.internals,\n internals = _ref$internals === void 0 ? defaultInternals() : _ref$internals,\n _ref$promise = _ref.promise,\n promise = _ref$promise === void 0 ? new Promise(function (resolve, reject) {\n return executor(resolve, reject, function (onCancel) {\n internals.onCancelList.push(onCancel);\n });\n }) : _ref$promise;\n\n _classCallCheck(this, CancelablePromiseInternal);\n\n _classPrivateFieldInitSpec(this, _internals, {\n writable: true,\n value: void 0\n });\n\n _classPrivateFieldInitSpec(this, _promise, {\n writable: true,\n value: void 0\n });\n\n _defineProperty(this, toStringTag, 'CancelablePromise');\n\n this.cancel = this.cancel.bind(this);\n\n _classPrivateFieldSet(this, _internals, internals);\n\n _classPrivateFieldSet(this, _promise, promise || new Promise(function (resolve, reject) {\n return executor(resolve, reject, function (onCancel) {\n internals.onCancelList.push(onCancel);\n });\n }));\n }\n\n _createClass(CancelablePromiseInternal, [{\n key: \"then\",\n value: function then(onfulfilled, onrejected) {\n return makeCancelable(_classPrivateFieldGet(this, _promise).then(createCallback(onfulfilled, _classPrivateFieldGet(this, _internals)), createCallback(onrejected, _classPrivateFieldGet(this, _internals))), _classPrivateFieldGet(this, _internals));\n }\n }, {\n key: \"catch\",\n value: function _catch(onrejected) {\n return makeCancelable(_classPrivateFieldGet(this, _promise).catch(createCallback(onrejected, _classPrivateFieldGet(this, _internals))), _classPrivateFieldGet(this, _internals));\n }\n }, {\n key: \"finally\",\n value: function _finally(onfinally, runWhenCanceled) {\n var _this = this;\n\n if (runWhenCanceled) {\n _classPrivateFieldGet(this, _internals).onCancelList.push(onfinally);\n }\n\n return makeCancelable(_classPrivateFieldGet(this, _promise).finally(createCallback(function () {\n if (onfinally) {\n if (runWhenCanceled) {\n _classPrivateFieldGet(_this, _internals).onCancelList = _classPrivateFieldGet(_this, _internals).onCancelList.filter(function (callback) {\n return callback !== onfinally;\n });\n }\n\n return onfinally();\n }\n }, _classPrivateFieldGet(this, _internals))), _classPrivateFieldGet(this, _internals));\n }\n }, {\n key: \"cancel\",\n value: function cancel() {\n _classPrivateFieldGet(this, _internals).isCanceled = true;\n\n var callbacks = _classPrivateFieldGet(this, _internals).onCancelList;\n\n _classPrivateFieldGet(this, _internals).onCancelList = [];\n\n var _iterator = _createForOfIteratorHelper(callbacks),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var callback = _step.value;\n\n if (typeof callback === 'function') {\n try {\n callback();\n } catch (err) {\n console.error(err);\n }\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n }, {\n key: \"isCanceled\",\n value: function isCanceled() {\n return _classPrivateFieldGet(this, _internals).isCanceled === true;\n }\n }]);\n\n return CancelablePromiseInternal;\n }();\n\n var CancelablePromise = /*#__PURE__*/function (_CancelablePromiseInt) {\n _inherits(CancelablePromise, _CancelablePromiseInt);\n\n var _super = _createSuper(CancelablePromise);\n\n function CancelablePromise(executor) {\n _classCallCheck(this, CancelablePromise);\n\n return _super.call(this, {\n executor: executor\n });\n }\n\n return _createClass(CancelablePromise);\n }(CancelablePromiseInternal);\n\n _exports.CancelablePromise = CancelablePromise;\n\n _defineProperty(CancelablePromise, \"all\", function all(iterable) {\n return makeAllCancelable(iterable, Promise.all(iterable));\n });\n\n _defineProperty(CancelablePromise, \"allSettled\", function allSettled(iterable) {\n return makeAllCancelable(iterable, Promise.allSettled(iterable));\n });\n\n _defineProperty(CancelablePromise, \"any\", function any(iterable) {\n return makeAllCancelable(iterable, Promise.any(iterable));\n });\n\n _defineProperty(CancelablePromise, \"race\", function race(iterable) {\n return makeAllCancelable(iterable, Promise.race(iterable));\n });\n\n _defineProperty(CancelablePromise, \"resolve\", function resolve(value) {\n return cancelable(Promise.resolve(value));\n });\n\n _defineProperty(CancelablePromise, \"reject\", function reject(reason) {\n return cancelable(Promise.reject(reason));\n });\n\n _defineProperty(CancelablePromise, \"isCancelable\", isCancelablePromise);\n\n var _default = CancelablePromise;\n _exports.default = _default;\n\n function cancelable(promise) {\n return makeCancelable(promise, defaultInternals());\n }\n\n function isCancelablePromise(promise) {\n return promise instanceof CancelablePromise || promise instanceof CancelablePromiseInternal;\n }\n\n function createCallback(onResult, internals) {\n if (onResult) {\n return function (arg) {\n if (!internals.isCanceled) {\n var result = onResult(arg);\n\n if (isCancelablePromise(result)) {\n internals.onCancelList.push(result.cancel);\n }\n\n return result;\n }\n\n return arg;\n };\n }\n }\n\n function makeCancelable(promise, internals) {\n return new CancelablePromiseInternal({\n internals: internals,\n promise: promise\n });\n }\n\n function makeAllCancelable(iterable, promise) {\n var internals = defaultInternals();\n internals.onCancelList.push(function () {\n var _iterator2 = _createForOfIteratorHelper(iterable),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var resolvable = _step2.value;\n\n if (isCancelablePromise(resolvable)) {\n resolvable.cancel();\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n });\n return new CancelablePromiseInternal({\n internals: internals,\n promise: promise\n });\n }\n\n function defaultInternals() {\n return {\n isCanceled: false,\n onCancelList: []\n };\n }\n});\n//# sourceMappingURL=CancelablePromise.js.map","// 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\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMTYiIHdpZHRoPSIxNiI+CiAgPHBhdGggZD0iTTE0IDEyLjNMMTIuMyAxNCA4IDkuNyAzLjcgMTQgMiAxMi4zIDYuMyA4IDIgMy43IDMuNyAyIDggNi4zIDEyLjMgMiAxNCAzLjcgOS43IDh6Ii8+Cjwvc3ZnPgo=\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_1___ = new URL(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMTYiIHdpZHRoPSIxNiI+CiAgPHBhdGggZD0iTTE0IDEyLjNMMTIuMyAxNCA4IDkuNyAzLjcgMTQgMiAxMi4zIDYuMyA4IDIgMy43IDMuNyAyIDggNi4zIDEyLjMgMiAxNCAzLjcgOS43IDh6IiBzdHlsZT0iZmlsbC1vcGFjaXR5OjE7ZmlsbDojZmZmZmZmIi8+Cjwvc3ZnPgo=\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `@charset \"UTF-8\";\n/**\n * @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n *\n * @author Julius Härtl <jus@bitgrid.net>\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n.toastify.dialogs {\n min-width: 200px;\n background: none;\n background-color: var(--color-main-background);\n color: var(--color-main-text);\n box-shadow: 0 0 6px 0 var(--color-box-shadow);\n padding: 0 12px;\n margin-top: 45px;\n position: fixed;\n z-index: 10100;\n border-radius: var(--border-radius);\n display: flex;\n align-items: center;\n}\n.toastify.dialogs .toast-undo-container {\n display: flex;\n align-items: center;\n}\n.toastify.dialogs .toast-undo-button,\n.toastify.dialogs .toast-close {\n position: static;\n overflow: hidden;\n box-sizing: border-box;\n min-width: 44px;\n height: 100%;\n padding: 12px;\n white-space: nowrap;\n background-repeat: no-repeat;\n background-position: center;\n background-color: transparent;\n min-height: 0;\n}\n.toastify.dialogs .toast-undo-button.toast-close,\n.toastify.dialogs .toast-close.toast-close {\n text-indent: 0;\n opacity: .4;\n border: none;\n min-height: 44px;\n margin-left: 10px;\n font-size: 0;\n}\n.toastify.dialogs .toast-undo-button.toast-close:before,\n.toastify.dialogs .toast-close.toast-close:before {\n background-image: url(${___CSS_LOADER_URL_REPLACEMENT_0___});\n content: \" \";\n filter: var(--background-invert-if-dark);\n display: inline-block;\n width: 16px;\n height: 16px;\n}\n.toastify.dialogs .toast-undo-button.toast-undo-button,\n.toastify.dialogs .toast-close.toast-undo-button {\n height: calc(100% - 6px);\n margin: 3px 3px 3px 12px;\n}\n.toastify.dialogs .toast-undo-button:hover,\n.toastify.dialogs .toast-undo-button:focus,\n.toastify.dialogs .toast-undo-button:active,\n.toastify.dialogs .toast-close:hover,\n.toastify.dialogs .toast-close:focus,\n.toastify.dialogs .toast-close:active {\n cursor: pointer;\n opacity: 1;\n}\n.toastify.dialogs.toastify-top {\n right: 10px;\n}\n.toastify.dialogs.toast-with-click {\n cursor: pointer;\n}\n.toastify.dialogs.toast-error {\n border-left: 3px solid var(--color-error);\n}\n.toastify.dialogs.toast-info {\n border-left: 3px solid var(--color-primary);\n}\n.toastify.dialogs.toast-warning {\n border-left: 3px solid var(--color-warning);\n}\n.toastify.dialogs.toast-success,\n.toastify.dialogs.toast-undo {\n border-left: 3px solid var(--color-success);\n}\n.theme--dark .toastify.dialogs .toast-close.toast-close:before {\n background-image: url(${___CSS_LOADER_URL_REPLACEMENT_1___});\n}\n.dialog[data-v-89afd3fd] {\n height: 100%;\n width: 100%;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n}\n.dialog__modal[data-v-89afd3fd] .modal-container {\n display: flex !important;\n}\n.dialog__wrapper[data-v-89afd3fd] {\n margin-inline: 12px;\n margin-block: 0 12px;\n display: flex;\n flex-direction: row;\n flex: 1;\n min-height: 0;\n}\n.dialog__wrapper--collapsed[data-v-89afd3fd] {\n flex-direction: column;\n}\n.dialog__navigation[data-v-89afd3fd] {\n display: flex;\n flex-shrink: 0;\n}\n.dialog__wrapper:not(.dialog__wrapper--collapsed) .dialog__navigation[data-v-89afd3fd] {\n flex-direction: column;\n overflow: hidden auto;\n height: 100%;\n min-width: 200px;\n margin-inline-end: 20px;\n}\n.dialog__wrapper.dialog__wrapper--collapsed .dialog__navigation[data-v-89afd3fd] {\n flex-direction: row;\n justify-content: space-between;\n overflow: auto hidden;\n width: 100%;\n min-width: 100%;\n}\n.dialog__name[data-v-89afd3fd] {\n text-align: center;\n min-height: var(--default-clickable-area);\n line-height: var(--default-clickable-area);\n margin-block: 4px 12px;\n margin-inline-end: calc(var(--default-clickable-area) + 4px);\n}\n.dialog__content[data-v-89afd3fd] {\n flex: 1;\n min-height: 0;\n}\n.dialog__actions[data-v-89afd3fd] {\n display: flex;\n gap: 6px;\n align-content: center;\n width: fit-content;\n margin-inline: auto 12px;\n margin-block: 0 12px;\n}\n._file-picker__file-icon_1vgv4_5 {\n width: 32px;\n height: 32px;\n min-width: 32px;\n min-height: 32px;\n background-repeat: no-repeat;\n background-size: contain;\n display: flex;\n justify-content: center;\n}\ntr.file-picker__row[data-v-6aded0d9] {\n height: var(--row-height, 50px);\n}\ntr.file-picker__row td[data-v-6aded0d9] {\n cursor: pointer;\n overflow: hidden;\n text-overflow: ellipsis;\n border-bottom: none;\n}\ntr.file-picker__row td[data-v-6aded0d9]:not(.row-checkbox) {\n padding-inline: 14px 0;\n}\ntr.file-picker__row td.row-size[data-v-6aded0d9] {\n text-align: end;\n padding-inline: 0 14px;\n}\ntr.file-picker__row td.row-name[data-v-6aded0d9] {\n padding-inline: 2px 0;\n}\n@keyframes gradient-6aded0d9 {\n 0% {\n background-position: 0% 50%;\n }\n 50% {\n background-position: 100% 50%;\n }\n to {\n background-position: 0% 50%;\n }\n}\n.loading-row .row-checkbox[data-v-6aded0d9] {\n text-align: center !important;\n}\n.loading-row span[data-v-6aded0d9] {\n display: inline-block;\n height: 24px;\n background: linear-gradient(to right, var(--color-background-darker), var(--color-text-maxcontrast), var(--color-background-darker));\n background-size: 600px 100%;\n border-radius: var(--border-radius);\n animation: gradient-6aded0d9 12s ease infinite;\n}\n.loading-row .row-wrapper[data-v-6aded0d9] {\n display: inline-flex;\n align-items: center;\n}\n.loading-row .row-checkbox span[data-v-6aded0d9] {\n width: 24px;\n}\n.loading-row .row-name span[data-v-6aded0d9]:last-of-type {\n margin-inline-start: 6px;\n width: 130px;\n}\n.loading-row .row-size span[data-v-6aded0d9] {\n width: 80px;\n}\n.loading-row .row-modified span[data-v-6aded0d9] {\n width: 90px;\n}\ntr.file-picker__row[data-v-d337ebac] {\n height: var(--row-height, 50px);\n}\ntr.file-picker__row td[data-v-d337ebac] {\n cursor: pointer;\n overflow: hidden;\n text-overflow: ellipsis;\n border-bottom: none;\n}\ntr.file-picker__row td[data-v-d337ebac]:not(.row-checkbox) {\n padding-inline: 14px 0;\n}\ntr.file-picker__row td.row-size[data-v-d337ebac] {\n text-align: end;\n padding-inline: 0 14px;\n}\ntr.file-picker__row td.row-name[data-v-d337ebac] {\n padding-inline: 2px 0;\n}\n.file-picker__row--selected[data-v-d337ebac] {\n background-color: var(--color-background-dark);\n}\n.file-picker__row[data-v-d337ebac]:hover {\n background-color: var(--color-background-hover);\n}\n.file-picker__name-container[data-v-d337ebac] {\n display: flex;\n justify-content: start;\n align-items: center;\n height: 100%;\n}\n.file-picker__file-name[data-v-d337ebac] {\n padding-inline-start: 6px;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.file-picker__file-extension[data-v-d337ebac] {\n color: var(--color-text-maxcontrast);\n min-width: fit-content;\n}\n.file-picker__header-preview[data-v-ecc68c3c] {\n width: 22px;\n height: 32px;\n flex: 0 0 auto;\n}\n.file-picker__files[data-v-ecc68c3c] {\n margin: 2px;\n margin-inline-start: 12px;\n overflow: scroll auto;\n}\n.file-picker__files table[data-v-ecc68c3c] {\n width: 100%;\n max-height: 100%;\n table-layout: fixed;\n}\n.file-picker__files th[data-v-ecc68c3c] {\n position: -webkit-sticky;\n position: sticky;\n z-index: 1;\n top: 0;\n background-color: var(--color-main-background);\n padding: 2px;\n}\n.file-picker__files th .header-wrapper[data-v-ecc68c3c] {\n display: flex;\n}\n.file-picker__files th.row-checkbox[data-v-ecc68c3c] {\n width: 44px;\n}\n.file-picker__files th.row-name[data-v-ecc68c3c] {\n width: 230px;\n}\n.file-picker__files th.row-size[data-v-ecc68c3c] {\n width: 100px;\n}\n.file-picker__files th.row-modified[data-v-ecc68c3c] {\n width: 120px;\n}\n.file-picker__files th[data-v-ecc68c3c]:not(.row-size) .button-vue__wrapper {\n justify-content: start;\n flex-direction: row-reverse;\n}\n.file-picker__files th[data-v-ecc68c3c]:not(.row-size) .button-vue {\n padding-inline: 16px 4px;\n}\n.file-picker__files th.row-size[data-v-ecc68c3c] .button-vue__wrapper {\n justify-content: end;\n}\n.file-picker__files th[data-v-ecc68c3c] .button-vue__wrapper {\n color: var(--color-text-maxcontrast);\n}\n.file-picker__files th[data-v-ecc68c3c] .button-vue__wrapper .button-vue__text {\n font-weight: 400;\n}\n.file-picker__breadcrumbs[data-v-3bc9efa5] {\n flex-grow: 0 !important;\n}\n.file-picker__side[data-v-fcfd0f23] {\n display: flex;\n flex-direction: column;\n align-items: start;\n gap: .5rem;\n min-width: 200px;\n padding-block: 2px;\n overflow: auto;\n}\n.file-picker__side[data-v-fcfd0f23] .button-vue__wrapper {\n justify-content: start;\n}\n.file-picker__filter-input[data-v-fcfd0f23] {\n margin-block: 7px;\n max-width: 260px;\n}\n@media (max-width: 736px) {\n .file-picker__side[data-v-fcfd0f23] {\n flex-direction: row;\n min-width: unset;\n }\n}\n@media (max-width: 512px) {\n .file-picker__side[data-v-fcfd0f23] {\n flex-direction: row;\n min-width: unset;\n }\n .file-picker__filter-input[data-v-fcfd0f23] {\n max-width: unset;\n }\n}\n.file-picker__navigation {\n padding-inline: 2px;\n}\n.file-picker__navigation,\n.file-picker__navigation * {\n box-sizing: border-box;\n}\n.file-picker__navigation .v-select.select {\n min-width: 220px;\n}\n@media (min-width: 513px) and (max-width: 736px) {\n .file-picker__navigation {\n gap: 11px;\n }\n}\n@media (max-width: 512px) {\n .file-picker__navigation {\n flex-direction: column-reverse !important;\n }\n}\n.file-picker__view[data-v-f979a44d] {\n height: 50px;\n display: flex;\n justify-content: start;\n align-items: center;\n}\n.file-picker__view h3[data-v-f979a44d] {\n font-weight: 700;\n height: fit-content;\n margin: 0;\n}\n.file-picker__main[data-v-f979a44d] {\n box-sizing: border-box;\n width: 100%;\n display: flex;\n flex-direction: column;\n min-height: 0;\n flex: 1;\n padding-inline: 2px;\n}\n.file-picker__main *[data-v-f979a44d] {\n box-sizing: border-box;\n}\n[data-v-f979a44d] .file-picker {\n height: min(80vh, 800px);\n}\n@media (max-width: 512px) {\n [data-v-f979a44d] .file-picker {\n height: calc(100% - 16px - var(--default-clickable-area));\n }\n}\n[data-v-f979a44d] .file-picker__content {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@nextcloud/dialogs/dist/style.css\"],\"names\":[],\"mappings\":\"AAAA,gBAAgB;AAChB;;;;;;;;;;;;;;;;;;;;EAoBE;AACF;EACE,gBAAgB;EAChB,gBAAgB;EAChB,8CAA8C;EAC9C,6BAA6B;EAC7B,6CAA6C;EAC7C,eAAe;EACf,gBAAgB;EAChB,eAAe;EACf,cAAc;EACd,mCAAmC;EACnC,aAAa;EACb,mBAAmB;AACrB;AACA;EACE,aAAa;EACb,mBAAmB;AACrB;AACA;;EAEE,gBAAgB;EAChB,gBAAgB;EAChB,sBAAsB;EACtB,eAAe;EACf,YAAY;EACZ,aAAa;EACb,mBAAmB;EACnB,4BAA4B;EAC5B,2BAA2B;EAC3B,6BAA6B;EAC7B,aAAa;AACf;AACA;;EAEE,cAAc;EACd,WAAW;EACX,YAAY;EACZ,gBAAgB;EAChB,iBAAiB;EACjB,YAAY;AACd;AACA;;EAEE,yDAAiR;EACjR,YAAY;EACZ,wCAAwC;EACxC,qBAAqB;EACrB,WAAW;EACX,YAAY;AACd;AACA;;EAEE,wBAAwB;EACxB,wBAAwB;AAC1B;AACA;;;;;;EAME,eAAe;EACf,UAAU;AACZ;AACA;EACE,WAAW;AACb;AACA;EACE,eAAe;AACjB;AACA;EACE,yCAAyC;AAC3C;AACA;EACE,2CAA2C;AAC7C;AACA;EACE,2CAA2C;AAC7C;AACA;;EAEE,2CAA2C;AAC7C;AACA;EACE,yDAAiU;AACnU;AACA;EACE,YAAY;EACZ,WAAW;EACX,aAAa;EACb,sBAAsB;EACtB,8BAA8B;AAChC;AACA;EACE,wBAAwB;AAC1B;AACA;EACE,mBAAmB;EACnB,oBAAoB;EACpB,aAAa;EACb,mBAAmB;EACnB,OAAO;EACP,aAAa;AACf;AACA;EACE,sBAAsB;AACxB;AACA;EACE,aAAa;EACb,cAAc;AAChB;AACA;EACE,sBAAsB;EACtB,qBAAqB;EACrB,YAAY;EACZ,gBAAgB;EAChB,uBAAuB;AACzB;AACA;EACE,mBAAmB;EACnB,8BAA8B;EAC9B,qBAAqB;EACrB,WAAW;EACX,eAAe;AACjB;AACA;EACE,kBAAkB;EAClB,yCAAyC;EACzC,0CAA0C;EAC1C,sBAAsB;EACtB,4DAA4D;AAC9D;AACA;EACE,OAAO;EACP,aAAa;AACf;AACA;EACE,aAAa;EACb,QAAQ;EACR,qBAAqB;EACrB,kBAAkB;EAClB,wBAAwB;EACxB,oBAAoB;AACtB;AACA;EACE,WAAW;EACX,YAAY;EACZ,eAAe;EACf,gBAAgB;EAChB,4BAA4B;EAC5B,wBAAwB;EACxB,aAAa;EACb,uBAAuB;AACzB;AACA;EACE,+BAA+B;AACjC;AACA;EACE,eAAe;EACf,gBAAgB;EAChB,uBAAuB;EACvB,mBAAmB;AACrB;AACA;EACE,sBAAsB;AACxB;AACA;EACE,eAAe;EACf,sBAAsB;AACxB;AACA;EACE,qBAAqB;AACvB;AACA;EACE;IACE,2BAA2B;EAC7B;EACA;IACE,6BAA6B;EAC/B;EACA;IACE,2BAA2B;EAC7B;AACF;AACA;EACE,6BAA6B;AAC/B;AACA;EACE,qBAAqB;EACrB,YAAY;EACZ,oIAAoI;EACpI,2BAA2B;EAC3B,mCAAmC;EACnC,8CAA8C;AAChD;AACA;EACE,oBAAoB;EACpB,mBAAmB;AACrB;AACA;EACE,WAAW;AACb;AACA;EACE,wBAAwB;EACxB,YAAY;AACd;AACA;EACE,WAAW;AACb;AACA;EACE,WAAW;AACb;AACA;EACE,+BAA+B;AACjC;AACA;EACE,eAAe;EACf,gBAAgB;EAChB,uBAAuB;EACvB,mBAAmB;AACrB;AACA;EACE,sBAAsB;AACxB;AACA;EACE,eAAe;EACf,sBAAsB;AACxB;AACA;EACE,qBAAqB;AACvB;AACA;EACE,8CAA8C;AAChD;AACA;EACE,+CAA+C;AACjD;AACA;EACE,aAAa;EACb,sBAAsB;EACtB,mBAAmB;EACnB,YAAY;AACd;AACA;EACE,yBAAyB;EACzB,YAAY;EACZ,gBAAgB;EAChB,uBAAuB;AACzB;AACA;EACE,oCAAoC;EACpC,sBAAsB;AACxB;AACA;EACE,WAAW;EACX,YAAY;EACZ,cAAc;AAChB;AACA;EACE,WAAW;EACX,yBAAyB;EACzB,qBAAqB;AACvB;AACA;EACE,WAAW;EACX,gBAAgB;EAChB,mBAAmB;AACrB;AACA;EACE,wBAAwB;EACxB,gBAAgB;EAChB,UAAU;EACV,MAAM;EACN,8CAA8C;EAC9C,YAAY;AACd;AACA;EACE,aAAa;AACf;AACA;EACE,WAAW;AACb;AACA;EACE,YAAY;AACd;AACA;EACE,YAAY;AACd;AACA;EACE,YAAY;AACd;AACA;EACE,sBAAsB;EACtB,2BAA2B;AAC7B;AACA;EACE,wBAAwB;AAC1B;AACA;EACE,oBAAoB;AACtB;AACA;EACE,oCAAoC;AACtC;AACA;EACE,gBAAgB;AAClB;AACA;EACE,uBAAuB;AACzB;AACA;EACE,aAAa;EACb,sBAAsB;EACtB,kBAAkB;EAClB,UAAU;EACV,gBAAgB;EAChB,kBAAkB;EAClB,cAAc;AAChB;AACA;EACE,sBAAsB;AACxB;AACA;EACE,iBAAiB;EACjB,gBAAgB;AAClB;AACA;EACE;IACE,mBAAmB;IACnB,gBAAgB;EAClB;AACF;AACA;EACE;IACE,mBAAmB;IACnB,gBAAgB;EAClB;EACA;IACE,gBAAgB;EAClB;AACF;AACA;EACE,mBAAmB;AACrB;AACA;;EAEE,sBAAsB;AACxB;AACA;EACE,gBAAgB;AAClB;AACA;EACE;IACE,SAAS;EACX;AACF;AACA;EACE;IACE,yCAAyC;EAC3C;AACF;AACA;EACE,YAAY;EACZ,aAAa;EACb,sBAAsB;EACtB,mBAAmB;AACrB;AACA;EACE,gBAAgB;EAChB,mBAAmB;EACnB,SAAS;AACX;AACA;EACE,sBAAsB;EACtB,WAAW;EACX,aAAa;EACb,sBAAsB;EACtB,aAAa;EACb,OAAO;EACP,mBAAmB;AACrB;AACA;EACE,sBAAsB;AACxB;AACA;EACE,wBAAwB;AAC1B;AACA;EACE;IACE,yDAAyD;EAC3D;AACF;AACA;EACE,aAAa;EACb,sBAAsB;EACtB,gBAAgB;AAClB\",\"sourcesContent\":[\"@charset \\\"UTF-8\\\";\\n/**\\n * @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\\n *\\n * @author Julius Härtl <jus@bitgrid.net>\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n */\\n.toastify.dialogs {\\n min-width: 200px;\\n background: none;\\n background-color: var(--color-main-background);\\n color: var(--color-main-text);\\n box-shadow: 0 0 6px 0 var(--color-box-shadow);\\n padding: 0 12px;\\n margin-top: 45px;\\n position: fixed;\\n z-index: 10100;\\n border-radius: var(--border-radius);\\n display: flex;\\n align-items: center;\\n}\\n.toastify.dialogs .toast-undo-container {\\n display: flex;\\n align-items: center;\\n}\\n.toastify.dialogs .toast-undo-button,\\n.toastify.dialogs .toast-close {\\n position: static;\\n overflow: hidden;\\n box-sizing: border-box;\\n min-width: 44px;\\n height: 100%;\\n padding: 12px;\\n white-space: nowrap;\\n background-repeat: no-repeat;\\n background-position: center;\\n background-color: transparent;\\n min-height: 0;\\n}\\n.toastify.dialogs .toast-undo-button.toast-close,\\n.toastify.dialogs .toast-close.toast-close {\\n text-indent: 0;\\n opacity: .4;\\n border: none;\\n min-height: 44px;\\n margin-left: 10px;\\n font-size: 0;\\n}\\n.toastify.dialogs .toast-undo-button.toast-close:before,\\n.toastify.dialogs .toast-close.toast-close:before {\\n background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMTYiIHdpZHRoPSIxNiI+CiAgPHBhdGggZD0iTTE0IDEyLjNMMTIuMyAxNCA4IDkuNyAzLjcgMTQgMiAxMi4zIDYuMyA4IDIgMy43IDMuNyAyIDggNi4zIDEyLjMgMiAxNCAzLjcgOS43IDh6Ii8+Cjwvc3ZnPgo=);\\n content: \\\" \\\";\\n filter: var(--background-invert-if-dark);\\n display: inline-block;\\n width: 16px;\\n height: 16px;\\n}\\n.toastify.dialogs .toast-undo-button.toast-undo-button,\\n.toastify.dialogs .toast-close.toast-undo-button {\\n height: calc(100% - 6px);\\n margin: 3px 3px 3px 12px;\\n}\\n.toastify.dialogs .toast-undo-button:hover,\\n.toastify.dialogs .toast-undo-button:focus,\\n.toastify.dialogs .toast-undo-button:active,\\n.toastify.dialogs .toast-close:hover,\\n.toastify.dialogs .toast-close:focus,\\n.toastify.dialogs .toast-close:active {\\n cursor: pointer;\\n opacity: 1;\\n}\\n.toastify.dialogs.toastify-top {\\n right: 10px;\\n}\\n.toastify.dialogs.toast-with-click {\\n cursor: pointer;\\n}\\n.toastify.dialogs.toast-error {\\n border-left: 3px solid var(--color-error);\\n}\\n.toastify.dialogs.toast-info {\\n border-left: 3px solid var(--color-primary);\\n}\\n.toastify.dialogs.toast-warning {\\n border-left: 3px solid var(--color-warning);\\n}\\n.toastify.dialogs.toast-success,\\n.toastify.dialogs.toast-undo {\\n border-left: 3px solid var(--color-success);\\n}\\n.theme--dark .toastify.dialogs .toast-close.toast-close:before {\\n background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMTYiIHdpZHRoPSIxNiI+CiAgPHBhdGggZD0iTTE0IDEyLjNMMTIuMyAxNCA4IDkuNyAzLjcgMTQgMiAxMi4zIDYuMyA4IDIgMy43IDMuNyAyIDggNi4zIDEyLjMgMiAxNCAzLjcgOS43IDh6IiBzdHlsZT0iZmlsbC1vcGFjaXR5OjE7ZmlsbDojZmZmZmZmIi8+Cjwvc3ZnPgo=);\\n}\\n.dialog[data-v-89afd3fd] {\\n height: 100%;\\n width: 100%;\\n display: flex;\\n flex-direction: column;\\n justify-content: space-between;\\n}\\n.dialog__modal[data-v-89afd3fd] .modal-container {\\n display: flex !important;\\n}\\n.dialog__wrapper[data-v-89afd3fd] {\\n margin-inline: 12px;\\n margin-block: 0 12px;\\n display: flex;\\n flex-direction: row;\\n flex: 1;\\n min-height: 0;\\n}\\n.dialog__wrapper--collapsed[data-v-89afd3fd] {\\n flex-direction: column;\\n}\\n.dialog__navigation[data-v-89afd3fd] {\\n display: flex;\\n flex-shrink: 0;\\n}\\n.dialog__wrapper:not(.dialog__wrapper--collapsed) .dialog__navigation[data-v-89afd3fd] {\\n flex-direction: column;\\n overflow: hidden auto;\\n height: 100%;\\n min-width: 200px;\\n margin-inline-end: 20px;\\n}\\n.dialog__wrapper.dialog__wrapper--collapsed .dialog__navigation[data-v-89afd3fd] {\\n flex-direction: row;\\n justify-content: space-between;\\n overflow: auto hidden;\\n width: 100%;\\n min-width: 100%;\\n}\\n.dialog__name[data-v-89afd3fd] {\\n text-align: center;\\n min-height: var(--default-clickable-area);\\n line-height: var(--default-clickable-area);\\n margin-block: 4px 12px;\\n margin-inline-end: calc(var(--default-clickable-area) + 4px);\\n}\\n.dialog__content[data-v-89afd3fd] {\\n flex: 1;\\n min-height: 0;\\n}\\n.dialog__actions[data-v-89afd3fd] {\\n display: flex;\\n gap: 6px;\\n align-content: center;\\n width: fit-content;\\n margin-inline: auto 12px;\\n margin-block: 0 12px;\\n}\\n._file-picker__file-icon_1vgv4_5 {\\n width: 32px;\\n height: 32px;\\n min-width: 32px;\\n min-height: 32px;\\n background-repeat: no-repeat;\\n background-size: contain;\\n display: flex;\\n justify-content: center;\\n}\\ntr.file-picker__row[data-v-6aded0d9] {\\n height: var(--row-height, 50px);\\n}\\ntr.file-picker__row td[data-v-6aded0d9] {\\n cursor: pointer;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n border-bottom: none;\\n}\\ntr.file-picker__row td[data-v-6aded0d9]:not(.row-checkbox) {\\n padding-inline: 14px 0;\\n}\\ntr.file-picker__row td.row-size[data-v-6aded0d9] {\\n text-align: end;\\n padding-inline: 0 14px;\\n}\\ntr.file-picker__row td.row-name[data-v-6aded0d9] {\\n padding-inline: 2px 0;\\n}\\n@keyframes gradient-6aded0d9 {\\n 0% {\\n background-position: 0% 50%;\\n }\\n 50% {\\n background-position: 100% 50%;\\n }\\n to {\\n background-position: 0% 50%;\\n }\\n}\\n.loading-row .row-checkbox[data-v-6aded0d9] {\\n text-align: center !important;\\n}\\n.loading-row span[data-v-6aded0d9] {\\n display: inline-block;\\n height: 24px;\\n background: linear-gradient(to right, var(--color-background-darker), var(--color-text-maxcontrast), var(--color-background-darker));\\n background-size: 600px 100%;\\n border-radius: var(--border-radius);\\n animation: gradient-6aded0d9 12s ease infinite;\\n}\\n.loading-row .row-wrapper[data-v-6aded0d9] {\\n display: inline-flex;\\n align-items: center;\\n}\\n.loading-row .row-checkbox span[data-v-6aded0d9] {\\n width: 24px;\\n}\\n.loading-row .row-name span[data-v-6aded0d9]:last-of-type {\\n margin-inline-start: 6px;\\n width: 130px;\\n}\\n.loading-row .row-size span[data-v-6aded0d9] {\\n width: 80px;\\n}\\n.loading-row .row-modified span[data-v-6aded0d9] {\\n width: 90px;\\n}\\ntr.file-picker__row[data-v-d337ebac] {\\n height: var(--row-height, 50px);\\n}\\ntr.file-picker__row td[data-v-d337ebac] {\\n cursor: pointer;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n border-bottom: none;\\n}\\ntr.file-picker__row td[data-v-d337ebac]:not(.row-checkbox) {\\n padding-inline: 14px 0;\\n}\\ntr.file-picker__row td.row-size[data-v-d337ebac] {\\n text-align: end;\\n padding-inline: 0 14px;\\n}\\ntr.file-picker__row td.row-name[data-v-d337ebac] {\\n padding-inline: 2px 0;\\n}\\n.file-picker__row--selected[data-v-d337ebac] {\\n background-color: var(--color-background-dark);\\n}\\n.file-picker__row[data-v-d337ebac]:hover {\\n background-color: var(--color-background-hover);\\n}\\n.file-picker__name-container[data-v-d337ebac] {\\n display: flex;\\n justify-content: start;\\n align-items: center;\\n height: 100%;\\n}\\n.file-picker__file-name[data-v-d337ebac] {\\n padding-inline-start: 6px;\\n min-width: 0;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n}\\n.file-picker__file-extension[data-v-d337ebac] {\\n color: var(--color-text-maxcontrast);\\n min-width: fit-content;\\n}\\n.file-picker__header-preview[data-v-ecc68c3c] {\\n width: 22px;\\n height: 32px;\\n flex: 0 0 auto;\\n}\\n.file-picker__files[data-v-ecc68c3c] {\\n margin: 2px;\\n margin-inline-start: 12px;\\n overflow: scroll auto;\\n}\\n.file-picker__files table[data-v-ecc68c3c] {\\n width: 100%;\\n max-height: 100%;\\n table-layout: fixed;\\n}\\n.file-picker__files th[data-v-ecc68c3c] {\\n position: -webkit-sticky;\\n position: sticky;\\n z-index: 1;\\n top: 0;\\n background-color: var(--color-main-background);\\n padding: 2px;\\n}\\n.file-picker__files th .header-wrapper[data-v-ecc68c3c] {\\n display: flex;\\n}\\n.file-picker__files th.row-checkbox[data-v-ecc68c3c] {\\n width: 44px;\\n}\\n.file-picker__files th.row-name[data-v-ecc68c3c] {\\n width: 230px;\\n}\\n.file-picker__files th.row-size[data-v-ecc68c3c] {\\n width: 100px;\\n}\\n.file-picker__files th.row-modified[data-v-ecc68c3c] {\\n width: 120px;\\n}\\n.file-picker__files th[data-v-ecc68c3c]:not(.row-size) .button-vue__wrapper {\\n justify-content: start;\\n flex-direction: row-reverse;\\n}\\n.file-picker__files th[data-v-ecc68c3c]:not(.row-size) .button-vue {\\n padding-inline: 16px 4px;\\n}\\n.file-picker__files th.row-size[data-v-ecc68c3c] .button-vue__wrapper {\\n justify-content: end;\\n}\\n.file-picker__files th[data-v-ecc68c3c] .button-vue__wrapper {\\n color: var(--color-text-maxcontrast);\\n}\\n.file-picker__files th[data-v-ecc68c3c] .button-vue__wrapper .button-vue__text {\\n font-weight: 400;\\n}\\n.file-picker__breadcrumbs[data-v-3bc9efa5] {\\n flex-grow: 0 !important;\\n}\\n.file-picker__side[data-v-fcfd0f23] {\\n display: flex;\\n flex-direction: column;\\n align-items: start;\\n gap: .5rem;\\n min-width: 200px;\\n padding-block: 2px;\\n overflow: auto;\\n}\\n.file-picker__side[data-v-fcfd0f23] .button-vue__wrapper {\\n justify-content: start;\\n}\\n.file-picker__filter-input[data-v-fcfd0f23] {\\n margin-block: 7px;\\n max-width: 260px;\\n}\\n@media (max-width: 736px) {\\n .file-picker__side[data-v-fcfd0f23] {\\n flex-direction: row;\\n min-width: unset;\\n }\\n}\\n@media (max-width: 512px) {\\n .file-picker__side[data-v-fcfd0f23] {\\n flex-direction: row;\\n min-width: unset;\\n }\\n .file-picker__filter-input[data-v-fcfd0f23] {\\n max-width: unset;\\n }\\n}\\n.file-picker__navigation {\\n padding-inline: 2px;\\n}\\n.file-picker__navigation,\\n.file-picker__navigation * {\\n box-sizing: border-box;\\n}\\n.file-picker__navigation .v-select.select {\\n min-width: 220px;\\n}\\n@media (min-width: 513px) and (max-width: 736px) {\\n .file-picker__navigation {\\n gap: 11px;\\n }\\n}\\n@media (max-width: 512px) {\\n .file-picker__navigation {\\n flex-direction: column-reverse !important;\\n }\\n}\\n.file-picker__view[data-v-f979a44d] {\\n height: 50px;\\n display: flex;\\n justify-content: start;\\n align-items: center;\\n}\\n.file-picker__view h3[data-v-f979a44d] {\\n font-weight: 700;\\n height: fit-content;\\n margin: 0;\\n}\\n.file-picker__main[data-v-f979a44d] {\\n box-sizing: border-box;\\n width: 100%;\\n display: flex;\\n flex-direction: column;\\n min-height: 0;\\n flex: 1;\\n padding-inline: 2px;\\n}\\n.file-picker__main *[data-v-f979a44d] {\\n box-sizing: border-box;\\n}\\n[data-v-f979a44d] .file-picker {\\n height: min(80vh, 800px);\\n}\\n@media (max-width: 512px) {\\n [data-v-f979a44d] .file-picker {\\n height: calc(100% - 16px - var(--default-clickable-area));\\n }\\n}\\n[data-v-f979a44d] .file-picker__content {\\n display: flex;\\n flex-direction: column;\\n overflow: hidden;\\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, `.template-picker__item[data-v-0859a92c]{display:flex}.template-picker__label[data-v-0859a92c]{display:flex;align-items:center;flex:1 1;flex-direction:column}.template-picker__label[data-v-0859a92c],.template-picker__label *[data-v-0859a92c]{cursor:pointer;user-select:none}.template-picker__label[data-v-0859a92c]::before{display:none !important}.template-picker__preview[data-v-0859a92c]{display:block;overflow:hidden;flex:1 1;width:var(--width);min-height:var(--height);max-height:var(--height);padding:0;border:var(--border) solid var(--color-border);border-radius:var(--border-radius-large)}input:checked+label>.template-picker__preview[data-v-0859a92c]{border-color:var(--color-primary-element)}.template-picker__preview--failed[data-v-0859a92c]{display:flex}.template-picker__image[data-v-0859a92c]{max-width:100%;background-color:var(--color-main-background);object-fit:cover}.template-picker__preview--failed .template-picker__image[data-v-0859a92c]{width:calc(var(--margin)*8);margin:auto;background-color:rgba(0,0,0,0) !important;object-fit:initial}.template-picker__title[data-v-0859a92c]{overflow:hidden;max-width:calc(var(--width) + 4px);padding:var(--margin);white-space:nowrap;text-overflow:ellipsis}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/TemplatePreview.vue\"],\"names\":[],\"mappings\":\"AAGC,wCACC,YAAA,CAGD,yCACC,YAAA,CAEA,kBAAA,CACA,QAAA,CACA,qBAAA,CAEA,oFACC,cAAA,CACA,gBAAA,CAGD,iDACC,uBAAA,CAIF,2CACC,aAAA,CACA,eAAA,CAEA,QAAA,CACA,kBAAA,CACA,wBAAA,CACA,wBAAA,CACA,SAAA,CACA,8CAAA,CACA,wCAAA,CAEA,+DACC,yCAAA,CAGD,mDAEC,YAAA,CAIF,yCACC,cAAA,CACA,6CAAA,CAEA,gBAAA,CAID,2EACC,2BAAA,CAEA,WAAA,CACA,yCAAA,CAEA,kBAAA,CAGD,yCACC,eAAA,CAEA,kCAAA,CACA,qBAAA,CACA,kBAAA,CACA,sBAAA\",\"sourcesContent\":[\"\\n\\n.template-picker {\\n\\t&__item {\\n\\t\\tdisplay: flex;\\n\\t}\\n\\n\\t&__label {\\n\\t\\tdisplay: flex;\\n\\t\\t// Align in the middle of the grid\\n\\t\\talign-items: center;\\n\\t\\tflex: 1 1;\\n\\t\\tflex-direction: column;\\n\\n\\t\\t&, * {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\tuser-select: none;\\n\\t\\t}\\n\\n\\t\\t&::before {\\n\\t\\t\\tdisplay: none !important;\\n\\t\\t}\\n\\t}\\n\\n\\t&__preview {\\n\\t\\tdisplay: block;\\n\\t\\toverflow: hidden;\\n\\t\\t// Stretch so all entries are the same width\\n\\t\\tflex: 1 1;\\n\\t\\twidth: var(--width);\\n\\t\\tmin-height: var(--height);\\n\\t\\tmax-height: var(--height);\\n\\t\\tpadding: 0;\\n\\t\\tborder: var(--border) solid var(--color-border);\\n\\t\\tborder-radius: var(--border-radius-large);\\n\\n\\t\\tinput:checked + label > & {\\n\\t\\t\\tborder-color: var(--color-primary-element);\\n\\t\\t}\\n\\n\\t\\t&--failed {\\n\\t\\t\\t// Make sure to properly center fallback icon\\n\\t\\t\\tdisplay: flex;\\n\\t\\t}\\n\\t}\\n\\n\\t&__image {\\n\\t\\tmax-width: 100%;\\n\\t\\tbackground-color: var(--color-main-background);\\n\\n\\t\\tobject-fit: cover;\\n\\t}\\n\\n\\t// Failed preview, fallback to mime icon\\n\\t&__preview--failed &__image {\\n\\t\\twidth: calc(var(--margin) * 8);\\n\\t\\t// Center mime icon\\n\\t\\tmargin: auto;\\n\\t\\tbackground-color: transparent !important;\\n\\n\\t\\tobject-fit: initial;\\n\\t}\\n\\n\\t&__title {\\n\\t\\toverflow: hidden;\\n\\t\\t// also count preview border\\n\\t\\tmax-width: calc(var(--width) + 2*2px);\\n\\t\\tpadding: var(--margin);\\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, `.templates-picker__form[data-v-48121b39]{padding:calc(var(--margin)*2);padding-bottom:0}.templates-picker__form h2[data-v-48121b39]{text-align:center;font-weight:bold;margin:var(--margin) 0 calc(var(--margin)*2)}.templates-picker__list[data-v-48121b39]{display:grid;grid-gap:calc(var(--margin)*2);grid-auto-columns:1fr;max-width:calc(var(--fullwidth)*6);grid-template-columns:repeat(auto-fit, var(--fullwidth));grid-auto-rows:1fr;justify-content:center}.templates-picker__buttons[data-v-48121b39]{display:flex;justify-content:end;padding:calc(var(--margin)*2) var(--margin);position:sticky;bottom:0;background-image:linear-gradient(0, var(--gradient-main-background))}.templates-picker__buttons button[data-v-48121b39],.templates-picker__buttons input[type=submit][data-v-48121b39]{height:44px}.templates-picker[data-v-48121b39] .modal-container{position:relative}.templates-picker__loading[data-v-48121b39]{position:absolute;top:0;left:0;justify-content:center;width:100%;height:100%;margin:0;background-color:var(--color-main-background-translucent)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/views/TemplatePicker.vue\"],\"names\":[],\"mappings\":\"AAEC,yCACC,6BAAA,CAEA,gBAAA,CAEA,4CACC,iBAAA,CACA,gBAAA,CACA,4CAAA,CAIF,yCACC,YAAA,CACA,8BAAA,CACA,qBAAA,CAEA,kCAAA,CACA,wDAAA,CAEA,kBAAA,CAEA,sBAAA,CAGD,4CACC,YAAA,CACA,mBAAA,CACA,2CAAA,CACA,eAAA,CACA,QAAA,CACA,oEAAA,CAEA,kHACC,WAAA,CAKF,oDACC,iBAAA,CAGD,4CACC,iBAAA,CACA,KAAA,CACA,MAAA,CACA,sBAAA,CACA,UAAA,CACA,WAAA,CACA,QAAA,CACA,yDAAA\",\"sourcesContent\":[\"\\n.templates-picker {\\n\\t&__form {\\n\\t\\tpadding: calc(var(--margin) * 2);\\n\\t\\t// Will be handled by the buttons\\n\\t\\tpadding-bottom: 0;\\n\\n\\t\\th2 {\\n\\t\\t\\ttext-align: center;\\n\\t\\t\\tfont-weight: bold;\\n\\t\\t\\tmargin: var(--margin) 0 calc(var(--margin) * 2);\\n\\t\\t}\\n\\t}\\n\\n\\t&__list {\\n\\t\\tdisplay: grid;\\n\\t\\tgrid-gap: calc(var(--margin) * 2);\\n\\t\\tgrid-auto-columns: 1fr;\\n\\t\\t// We want maximum 5 columns. Putting 6 as we don't count the grid gap. So it will always be lower than 6\\n\\t\\tmax-width: calc(var(--fullwidth) * 6);\\n\\t\\tgrid-template-columns: repeat(auto-fit, var(--fullwidth));\\n\\t\\t// Make sure all rows are the same height\\n\\t\\tgrid-auto-rows: 1fr;\\n\\t\\t// Center the columns set\\n\\t\\tjustify-content: center;\\n\\t}\\n\\n\\t&__buttons {\\n\\t\\tdisplay: flex;\\n\\t\\tjustify-content: end;\\n\\t\\tpadding: calc(var(--margin) * 2) var(--margin);\\n\\t\\tposition: sticky;\\n\\t\\tbottom: 0;\\n\\t\\tbackground-image: linear-gradient(0, var(--gradient-main-background));\\n\\n\\t\\tbutton, input[type='submit'] {\\n\\t\\t\\theight: 44px;\\n\\t\\t}\\n\\t}\\n\\n\\t// Make sure we're relative for the loading emptycontent on top\\n\\t::v-deep .modal-container {\\n\\t\\tposition: relative;\\n\\t}\\n\\n\\t&__loading {\\n\\t\\tposition: absolute;\\n\\t\\ttop: 0;\\n\\t\\tleft: 0;\\n\\t\\tjustify-content: center;\\n\\t\\twidth: 100%;\\n\\t\\theight: 100%;\\n\\t\\tmargin: 0;\\n\\t\\tbackground-color: var(--color-main-background-translucent);\\n\\t}\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","import { getCurrentUser as A, getRequestToken as ue } from \"@nextcloud/auth\";\nimport { getLoggerBuilder as q } from \"@nextcloud/logger\";\nimport { getCanonicalLocale as de } from \"@nextcloud/l10n\";\nimport { join as ae, basename as le, extname as fe, dirname as I } from \"path\";\nimport { encodePath as ce } from \"@nextcloud/paths\";\nimport { generateRemoteUrl as he } from \"@nextcloud/router\";\nimport { createClient as pe, getPatcher as ge } from \"webdav\";\nimport { request as we } from \"webdav/dist/node/request.js\";\n/**\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nconst me = (e) => e === null ? q().setApp(\"files\").build() : q().setApp(\"files\").setUid(e.uid).build(), m = me(A());\n/**\n * @copyright Copyright (c) 2021 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nclass Ne {\n _entries = [];\n registerEntry(t) {\n this.validateEntry(t), this._entries.push(t);\n }\n unregisterEntry(t) {\n const r = typeof t == \"string\" ? this.getEntryIndex(t) : this.getEntryIndex(t.id);\n if (r === -1) {\n m.warn(\"Entry not found, nothing removed\", { entry: t, entries: this.getEntries() });\n return;\n }\n this._entries.splice(r, 1);\n }\n /**\n * Get the list of registered entries\n *\n * @param {Folder} context the creation context. Usually the current folder\n */\n getEntries(t) {\n return t ? this._entries.filter((r) => typeof r.enabled == \"function\" ? r.enabled(t) : !0) : this._entries;\n }\n getEntryIndex(t) {\n return this._entries.findIndex((r) => r.id === t);\n }\n validateEntry(t) {\n if (!t.id || !t.displayName || !(t.iconSvgInline || t.iconClass) || !t.handler)\n throw new Error(\"Invalid entry\");\n if (typeof t.id != \"string\" || typeof t.displayName != \"string\")\n throw new Error(\"Invalid id or displayName property\");\n if (t.iconClass && typeof t.iconClass != \"string\" || t.iconSvgInline && typeof t.iconSvgInline != \"string\")\n throw new Error(\"Invalid icon provided\");\n if (t.enabled !== void 0 && typeof t.enabled != \"function\")\n throw new Error(\"Invalid enabled property\");\n if (typeof t.handler != \"function\")\n throw new Error(\"Invalid handler property\");\n if (\"order\" in t && typeof t.order != \"number\")\n throw new Error(\"Invalid order property\");\n if (this.getEntryIndex(t.id) !== -1)\n throw new Error(\"Duplicate entry\");\n }\n}\nconst F = function() {\n return typeof window._nc_newfilemenu > \"u\" && (window._nc_newfilemenu = new Ne(), m.debug(\"NewFileMenu initialized\")), window._nc_newfilemenu;\n};\n/**\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author Christoph Wurst <christoph@winzerhof-wurst.at>\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nconst C = [\"B\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\"], P = [\"B\", \"KiB\", \"MiB\", \"GiB\", \"TiB\", \"PiB\"];\nfunction Jt(e, t = !1, r = !1, i = !1) {\n r = r && !i, typeof e == \"string\" && (e = Number(e));\n let n = e > 0 ? Math.floor(Math.log(e) / Math.log(i ? 1e3 : 1024)) : 0;\n n = Math.min((r ? P.length : C.length) - 1, n);\n const s = r ? P[n] : C[n];\n let d = (e / Math.pow(i ? 1e3 : 1024, n)).toFixed(1);\n return t === !0 && n === 0 ? (d !== \"0.0\" ? \"< 1 \" : \"0 \") + (r ? P[1] : C[1]) : (n < 2 ? d = parseFloat(d).toFixed(0) : d = parseFloat(d).toLocaleString(de()), d + \" \" + s);\n}\nfunction Qt(e, t = !1) {\n try {\n e = `${e}`.toLocaleLowerCase().replaceAll(/\\s+/g, \"\").replaceAll(\",\", \".\");\n } catch {\n return null;\n }\n const r = e.match(/^([0-9]*(\\.[0-9]*)?)([kmgtp]?)(i?)b?$/);\n if (r === null || r[1] === \".\" || r[1] === \"\")\n return null;\n const i = {\n \"\": 0,\n k: 1,\n m: 2,\n g: 3,\n t: 4,\n p: 5,\n e: 6\n }, n = `${r[1]}`, s = r[4] === \"i\" || t ? 1024 : 1e3;\n return Math.round(Number.parseFloat(n) * s ** i[r[3]]);\n}\n/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nvar Z = /* @__PURE__ */ ((e) => (e.DEFAULT = \"default\", e.HIDDEN = \"hidden\", e))(Z || {});\nclass Dt {\n _action;\n constructor(t) {\n this.validateAction(t), this._action = t;\n }\n get id() {\n return this._action.id;\n }\n get displayName() {\n return this._action.displayName;\n }\n get title() {\n return this._action.title;\n }\n get iconSvgInline() {\n return this._action.iconSvgInline;\n }\n get enabled() {\n return this._action.enabled;\n }\n get exec() {\n return this._action.exec;\n }\n get execBatch() {\n return this._action.execBatch;\n }\n get order() {\n return this._action.order;\n }\n get parent() {\n return this._action.parent;\n }\n get default() {\n return this._action.default;\n }\n get inline() {\n return this._action.inline;\n }\n get renderInline() {\n return this._action.renderInline;\n }\n validateAction(t) {\n if (!t.id || typeof t.id != \"string\")\n throw new Error(\"Invalid id\");\n if (!t.displayName || typeof t.displayName != \"function\")\n throw new Error(\"Invalid displayName function\");\n if (\"title\" in t && typeof t.title != \"function\")\n throw new Error(\"Invalid title function\");\n if (!t.iconSvgInline || typeof t.iconSvgInline != \"function\")\n throw new Error(\"Invalid iconSvgInline function\");\n if (!t.exec || typeof t.exec != \"function\")\n throw new Error(\"Invalid exec function\");\n if (\"enabled\" in t && typeof t.enabled != \"function\")\n throw new Error(\"Invalid enabled function\");\n if (\"execBatch\" in t && typeof t.execBatch != \"function\")\n throw new Error(\"Invalid execBatch function\");\n if (\"order\" in t && typeof t.order != \"number\")\n throw new Error(\"Invalid order\");\n if (\"parent\" in t && typeof t.parent != \"string\")\n throw new Error(\"Invalid parent\");\n if (t.default && !Object.values(Z).includes(t.default))\n throw new Error(\"Invalid default\");\n if (\"inline\" in t && typeof t.inline != \"function\")\n throw new Error(\"Invalid inline function\");\n if (\"renderInline\" in t && typeof t.renderInline != \"function\")\n throw new Error(\"Invalid renderInline function\");\n }\n}\nconst er = function(e) {\n if (typeof window._nc_fileactions > \"u\" && (window._nc_fileactions = [], m.debug(\"FileActions initialized\")), window._nc_fileactions.find((t) => t.id === e.id)) {\n m.error(`FileAction ${e.id} already registered`, { action: e });\n return;\n }\n window._nc_fileactions.push(e);\n}, tr = function() {\n return typeof window._nc_fileactions > \"u\" && (window._nc_fileactions = [], m.debug(\"FileActions initialized\")), window._nc_fileactions;\n};\n/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nclass rr {\n _header;\n constructor(t) {\n this.validateHeader(t), this._header = t;\n }\n get id() {\n return this._header.id;\n }\n get order() {\n return this._header.order;\n }\n get enabled() {\n return this._header.enabled;\n }\n get render() {\n return this._header.render;\n }\n get updated() {\n return this._header.updated;\n }\n validateHeader(t) {\n if (!t.id || !t.render || !t.updated)\n throw new Error(\"Invalid header: id, render and updated are required\");\n if (typeof t.id != \"string\")\n throw new Error(\"Invalid id property\");\n if (t.enabled !== void 0 && typeof t.enabled != \"function\")\n throw new Error(\"Invalid enabled property\");\n if (t.render && typeof t.render != \"function\")\n throw new Error(\"Invalid render property\");\n if (t.updated && typeof t.updated != \"function\")\n throw new Error(\"Invalid updated property\");\n }\n}\nconst nr = function(e) {\n if (typeof window._nc_filelistheader > \"u\" && (window._nc_filelistheader = [], m.debug(\"FileListHeaders initialized\")), window._nc_filelistheader.find((t) => t.id === e.id)) {\n m.error(`Header ${e.id} already registered`, { header: e });\n return;\n }\n window._nc_filelistheader.push(e);\n}, ir = function() {\n return typeof window._nc_filelistheader > \"u\" && (window._nc_filelistheader = [], m.debug(\"FileListHeaders initialized\")), window._nc_filelistheader;\n};\n/**\n * @copyright Copyright (c) 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nvar N = /* @__PURE__ */ ((e) => (e[e.NONE = 0] = \"NONE\", e[e.CREATE = 4] = \"CREATE\", e[e.READ = 1] = \"READ\", e[e.UPDATE = 2] = \"UPDATE\", e[e.DELETE = 8] = \"DELETE\", e[e.SHARE = 16] = \"SHARE\", e[e.ALL = 31] = \"ALL\", e))(N || {});\n/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n * @author Ferdinand Thiessen <opensource@fthiessen.de>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nconst j = [\n \"d:getcontentlength\",\n \"d:getcontenttype\",\n \"d:getetag\",\n \"d:getlastmodified\",\n \"d:quota-available-bytes\",\n \"d:resourcetype\",\n \"nc:has-preview\",\n \"nc:is-encrypted\",\n \"nc:mount-type\",\n \"nc:share-attributes\",\n \"oc:comments-unread\",\n \"oc:favorite\",\n \"oc:fileid\",\n \"oc:owner-display-name\",\n \"oc:owner-id\",\n \"oc:permissions\",\n \"oc:share-types\",\n \"oc:size\",\n \"ocs:share-permissions\"\n], Y = {\n d: \"DAV:\",\n nc: \"http://nextcloud.org/ns\",\n oc: \"http://owncloud.org/ns\",\n ocs: \"http://open-collaboration-services.org/ns\"\n}, sr = function(e, t = { nc: \"http://nextcloud.org/ns\" }) {\n typeof window._nc_dav_properties > \"u\" && (window._nc_dav_properties = [...j], window._nc_dav_namespaces = { ...Y });\n const r = { ...window._nc_dav_namespaces, ...t };\n if (window._nc_dav_properties.find((n) => n === e))\n return m.error(`${e} already registered`, { prop: e }), !1;\n if (e.startsWith(\"<\") || e.split(\":\").length !== 2)\n return m.error(`${e} is not valid. See example: 'oc:fileid'`, { prop: e }), !1;\n const i = e.split(\":\")[0];\n return r[i] ? (window._nc_dav_properties.push(e), window._nc_dav_namespaces = r, !0) : (m.error(`${e} namespace unknown`, { prop: e, namespaces: r }), !1);\n}, V = function() {\n return typeof window._nc_dav_properties > \"u\" && (window._nc_dav_properties = [...j]), window._nc_dav_properties.map((e) => `<${e} />`).join(\" \");\n}, L = function() {\n return typeof window._nc_dav_namespaces > \"u\" && (window._nc_dav_namespaces = { ...Y }), Object.keys(window._nc_dav_namespaces).map((e) => `xmlns:${e}=\"${window._nc_dav_namespaces?.[e]}\"`).join(\" \");\n}, or = function() {\n return `<?xml version=\"1.0\"?>\n\t\t<d:propfind ${L()}>\n\t\t\t<d:prop>\n\t\t\t\t${V()}\n\t\t\t</d:prop>\n\t\t</d:propfind>`;\n}, Ee = function() {\n return `<?xml version=\"1.0\"?>\n\t\t<oc:filter-files ${L()}>\n\t\t\t<d:prop>\n\t\t\t\t${V()}\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}, ur = function(e) {\n return `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<d:searchrequest ${L()}\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${V()}\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/${A()?.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>${e}</d:literal>\n\t\t\t\t</d:gt>\n\t\t\t</d:and>\n\t\t</d:where>\n\t\t<d:orderby>\n\t\t\t<d:order>\n\t\t\t\t<d:prop>\n\t\t\t\t\t<d:getlastmodified/>\n\t\t\t\t</d:prop>\n\t\t\t\t<d:descending/>\n\t\t\t</d:order>\n\t\t</d:orderby>\n\t\t<d:limit>\n\t\t\t<d:nresults>100</d:nresults>\n\t\t\t<ns:firstresult>0</ns:firstresult>\n\t\t</d:limit>\n\t</d:basicsearch>\n</d:searchrequest>`;\n};\n/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n * @author Ferdinand Thiessen <opensource@fthiessen.de>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nconst be = function(e = \"\") {\n let t = N.NONE;\n return e && ((e.includes(\"C\") || e.includes(\"K\")) && (t |= N.CREATE), e.includes(\"G\") && (t |= N.READ), (e.includes(\"W\") || e.includes(\"N\") || e.includes(\"V\")) && (t |= N.UPDATE), e.includes(\"D\") && (t |= N.DELETE), e.includes(\"R\") && (t |= N.SHARE)), t;\n};\n/**\n * @copyright Copyright (c) 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nvar S = /* @__PURE__ */ ((e) => (e.Folder = \"folder\", e.File = \"file\", e))(S || {});\n/**\n * @copyright Copyright (c) 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nconst J = function(e, t) {\n return e.match(t) !== null;\n}, X = (e, t) => {\n if (e.id && typeof e.id != \"number\")\n throw new Error(\"Invalid id type of value\");\n if (!e.source)\n throw new Error(\"Missing mandatory source\");\n try {\n new URL(e.source);\n } catch {\n throw new Error(\"Invalid source format, source must be a valid URL\");\n }\n if (!e.source.startsWith(\"http\"))\n throw new Error(\"Invalid source format, only http(s) is supported\");\n if (e.mtime && !(e.mtime instanceof Date))\n throw new Error(\"Invalid mtime type\");\n if (e.crtime && !(e.crtime instanceof Date))\n throw new Error(\"Invalid crtime type\");\n if (!e.mime || typeof e.mime != \"string\" || !e.mime.match(/^[-\\w.]+\\/[-+\\w.]+$/gi))\n throw new Error(\"Missing or invalid mandatory mime\");\n if (\"size\" in e && typeof e.size != \"number\" && e.size !== void 0)\n throw new Error(\"Invalid size type\");\n if (\"permissions\" in e && e.permissions !== void 0 && !(typeof e.permissions == \"number\" && e.permissions >= N.NONE && e.permissions <= N.ALL))\n throw new Error(\"Invalid permissions\");\n if (e.owner && e.owner !== null && typeof e.owner != \"string\")\n throw new Error(\"Invalid owner type\");\n if (e.attributes && typeof e.attributes != \"object\")\n throw new Error(\"Invalid attributes type\");\n if (e.root && typeof e.root != \"string\")\n throw new Error(\"Invalid root type\");\n if (e.root && !e.root.startsWith(\"/\"))\n throw new Error(\"Root must start with a leading slash\");\n if (e.root && !e.source.includes(e.root))\n throw new Error(\"Root must be part of the source\");\n if (e.root && J(e.source, t)) {\n const r = e.source.match(t)[0];\n if (!e.source.includes(ae(r, e.root)))\n throw new Error(\"The root must be relative to the service. e.g /files/emma\");\n }\n if (e.status && !Object.values(Q).includes(e.status))\n throw new Error(\"Status must be a valid NodeStatus\");\n};\n/**\n * @copyright Copyright (c) 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nvar Q = /* @__PURE__ */ ((e) => (e.NEW = \"new\", e.FAILED = \"failed\", e.LOADING = \"loading\", e.LOCKED = \"locked\", e))(Q || {});\nclass D {\n _data;\n _attributes;\n _knownDavService = /(remote|public)\\.php\\/(web)?dav/i;\n constructor(t, r) {\n X(t, r || this._knownDavService), this._data = t;\n const i = {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n set: (n, s, d) => (this.updateMtime(), Reflect.set(n, s, d)),\n deleteProperty: (n, s) => (this.updateMtime(), Reflect.deleteProperty(n, s))\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n };\n this._attributes = new Proxy(t.attributes || {}, i), delete this._data.attributes, r && (this._knownDavService = r);\n }\n /**\n * Get the source url to this object\n */\n get source() {\n return this._data.source.replace(/\\/$/i, \"\");\n }\n /**\n * Get the encoded source url to this object for requests purposes\n */\n get encodedSource() {\n const { origin: t } = new URL(this.source);\n return t + ce(this.source.slice(t.length));\n }\n /**\n * Get this object name\n */\n get basename() {\n return le(this.source);\n }\n /**\n * Get this object's extension\n */\n get extension() {\n return fe(this.source);\n }\n /**\n * Get the directory path leading to this object\n * Will use the relative path to root if available\n */\n get dirname() {\n if (this.root) {\n const r = this.source.indexOf(this.root);\n return I(this.source.slice(r + this.root.length) || \"/\");\n }\n const t = new URL(this.source);\n return I(t.pathname);\n }\n /**\n * Get the file mime\n */\n get mime() {\n return this._data.mime;\n }\n /**\n * Get the file modification time\n */\n get mtime() {\n return this._data.mtime;\n }\n /**\n * Get the file creation time\n */\n get crtime() {\n return this._data.crtime;\n }\n /**\n * Get the file size\n */\n get size() {\n return this._data.size;\n }\n /**\n * Get the file attribute\n */\n get attributes() {\n return this._attributes;\n }\n /**\n * Get the file permissions\n */\n get permissions() {\n return this.owner === null && !this.isDavRessource ? N.READ : this._data.permissions !== void 0 ? this._data.permissions : N.NONE;\n }\n /**\n * Get the file owner\n */\n get owner() {\n return this.isDavRessource ? this._data.owner : null;\n }\n /**\n * Is this a dav-related ressource ?\n */\n get isDavRessource() {\n return J(this.source, this._knownDavService);\n }\n /**\n * Get the dav root of this object\n */\n get root() {\n return this._data.root ? this._data.root.replace(/^(.+)\\/$/, \"$1\") : this.isDavRessource && I(this.source).split(this._knownDavService).pop() || null;\n }\n /**\n * Get the absolute path of this object relative to the root\n */\n get path() {\n if (this.root) {\n const t = this.source.indexOf(this.root);\n return this.source.slice(t + this.root.length) || \"/\";\n }\n return (this.dirname + \"/\" + this.basename).replace(/\\/\\//g, \"/\");\n }\n /**\n * Get the node id if defined.\n * Will look for the fileid in attributes if undefined.\n */\n get fileid() {\n return this._data?.id || this.attributes?.fileid;\n }\n /**\n * Get the node status.\n */\n get status() {\n return this._data?.status;\n }\n /**\n * Set the node status.\n */\n set status(t) {\n this._data.status = t;\n }\n /**\n * Move the node to a new destination\n *\n * @param {string} destination the new source.\n * e.g. https://cloud.domain.com/remote.php/dav/files/emma/Photos/picture.jpg\n */\n move(t) {\n X({ ...this._data, source: t }, this._knownDavService), this._data.source = t, this.updateMtime();\n }\n /**\n * Rename the node\n * This aliases the move method for easier usage\n *\n * @param basename The new name of the node\n */\n rename(t) {\n if (t.includes(\"/\"))\n throw new Error(\"Invalid basename\");\n this.move(I(this.source) + \"/\" + t);\n }\n /**\n * Update the mtime if exists.\n */\n updateMtime() {\n this._data.mtime && (this._data.mtime = /* @__PURE__ */ new Date());\n }\n}\n/**\n * @copyright Copyright (c) 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nclass ye extends D {\n get type() {\n return S.File;\n }\n}\n/**\n * @copyright Copyright (c) 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nclass _e extends D {\n constructor(t) {\n super({\n ...t,\n mime: \"httpd/unix-directory\"\n });\n }\n get type() {\n return S.Folder;\n }\n get extension() {\n return null;\n }\n get mime() {\n return \"httpd/unix-directory\";\n }\n}\n/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n * @author Ferdinand Thiessen <opensource@fthiessen.de>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nconst ee = `/files/${A()?.uid}`, te = he(\"dav\"), dr = function(e = te) {\n const t = pe(e, {\n headers: {\n requesttoken: ue() || \"\"\n }\n });\n return ge().patch(\"request\", (i) => (i.headers?.method && (i.method = i.headers.method, delete i.headers.method), we(i))), t;\n}, ar = async (e, t = \"/\", r = ee) => (await e.getDirectoryContents(`${r}${t}`, {\n details: !0,\n data: Ee(),\n headers: {\n // see davGetClient for patched webdav client\n method: \"REPORT\"\n },\n includeSelf: !0\n})).data.filter((n) => n.filename !== t).map((n) => ve(n, r)), ve = function(e, t = ee, r = te) {\n const i = e.props, n = be(i?.permissions), s = A()?.uid, d = {\n id: i?.fileid || 0,\n source: `${r}${e.filename}`,\n mtime: new Date(Date.parse(e.lastmod)),\n mime: e.mime,\n size: i?.size || Number.parseInt(i.getcontentlength || \"0\"),\n permissions: n,\n owner: s,\n root: t,\n attributes: {\n ...e,\n ...i,\n hasPreview: i?.[\"has-preview\"]\n }\n };\n return delete d.attributes?.props, e.type === \"file\" ? new ye(d) : new _e(d);\n};\n/**\n * @copyright Copyright (c) 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nclass Te {\n _views = [];\n _currentView = null;\n register(t) {\n if (this._views.find((r) => r.id === t.id))\n throw new Error(`View id ${t.id} is already registered`);\n this._views.push(t);\n }\n remove(t) {\n const r = this._views.findIndex((i) => i.id === t);\n r !== -1 && this._views.splice(r, 1);\n }\n get views() {\n return this._views;\n }\n setActive(t) {\n this._currentView = t;\n }\n get active() {\n return this._currentView;\n }\n}\nconst lr = function() {\n return typeof window._nc_navigation > \"u\" && (window._nc_navigation = new Te(), m.debug(\"Navigation service initialized\")), window._nc_navigation;\n};\n/**\n * @copyright Copyright (c) 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nclass Ie {\n _column;\n constructor(t) {\n Ae(t), this._column = t;\n }\n get id() {\n return this._column.id;\n }\n get title() {\n return this._column.title;\n }\n get render() {\n return this._column.render;\n }\n get sort() {\n return this._column.sort;\n }\n get summary() {\n return this._column.summary;\n }\n}\nconst Ae = function(e) {\n if (!e.id || typeof e.id != \"string\")\n throw new Error(\"A column id is required\");\n if (!e.title || typeof e.title != \"string\")\n throw new Error(\"A column title is required\");\n if (!e.render || typeof e.render != \"function\")\n throw new Error(\"A render function is required\");\n if (e.sort && typeof e.sort != \"function\")\n throw new Error(\"Column sortFunction must be a function\");\n if (e.summary && typeof e.summary != \"function\")\n throw new Error(\"Column summary must be a function\");\n return !0;\n};\nvar R = {}, O = {};\n(function(e) {\n const t = \":A-Za-z_\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\", r = t + \"\\\\-.\\\\d\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040\", i = \"[\" + t + \"][\" + r + \"]*\", n = new RegExp(\"^\" + i + \"$\"), s = function(u, o) {\n const a = [];\n let l = o.exec(u);\n for (; l; ) {\n const f = [];\n f.startIndex = o.lastIndex - l[0].length;\n const c = l.length;\n for (let g = 0; g < c; g++)\n f.push(l[g]);\n a.push(f), l = o.exec(u);\n }\n return a;\n }, d = function(u) {\n const o = n.exec(u);\n return !(o === null || typeof o > \"u\");\n };\n e.isExist = function(u) {\n return typeof u < \"u\";\n }, e.isEmptyObject = function(u) {\n return Object.keys(u).length === 0;\n }, e.merge = function(u, o, a) {\n if (o) {\n const l = Object.keys(o), f = l.length;\n for (let c = 0; c < f; c++)\n a === \"strict\" ? u[l[c]] = [o[l[c]]] : u[l[c]] = o[l[c]];\n }\n }, e.getValue = function(u) {\n return e.isExist(u) ? u : \"\";\n }, e.isName = d, e.getAllMatches = s, e.nameRegexp = i;\n})(O);\nconst M = O, Oe = {\n allowBooleanAttributes: !1,\n //A tag can have attributes without any value\n unpairedTags: []\n};\nR.validate = function(e, t) {\n t = Object.assign({}, Oe, t);\n const r = [];\n let i = !1, n = !1;\n e[0] === \"\\uFEFF\" && (e = e.substr(1));\n for (let s = 0; s < e.length; s++)\n if (e[s] === \"<\" && e[s + 1] === \"?\") {\n if (s += 2, s = G(e, s), s.err)\n return s;\n } else if (e[s] === \"<\") {\n let d = s;\n if (s++, e[s] === \"!\") {\n s = z(e, s);\n continue;\n } else {\n let u = !1;\n e[s] === \"/\" && (u = !0, s++);\n let o = \"\";\n for (; s < e.length && e[s] !== \">\" && e[s] !== \" \" && e[s] !== \"\t\" && e[s] !== `\n` && e[s] !== \"\\r\"; s++)\n o += e[s];\n if (o = o.trim(), o[o.length - 1] === \"/\" && (o = o.substring(0, o.length - 1), s--), !Se(o)) {\n let f;\n return o.trim().length === 0 ? f = \"Invalid space after '<'.\" : f = \"Tag '\" + o + \"' is an invalid name.\", p(\"InvalidTag\", f, w(e, s));\n }\n const a = xe(e, s);\n if (a === !1)\n return p(\"InvalidAttr\", \"Attributes for '\" + o + \"' have open quote.\", w(e, s));\n let l = a.value;\n if (s = a.index, l[l.length - 1] === \"/\") {\n const f = s - l.length;\n l = l.substring(0, l.length - 1);\n const c = H(l, t);\n if (c === !0)\n i = !0;\n else\n return p(c.err.code, c.err.msg, w(e, f + c.err.line));\n } else if (u)\n if (a.tagClosed) {\n if (l.trim().length > 0)\n return p(\"InvalidTag\", \"Closing tag '\" + o + \"' can't have attributes or invalid starting.\", w(e, d));\n {\n const f = r.pop();\n if (o !== f.tagName) {\n let c = w(e, f.tagStartPos);\n return p(\n \"InvalidTag\",\n \"Expected closing tag '\" + f.tagName + \"' (opened in line \" + c.line + \", col \" + c.col + \") instead of closing tag '\" + o + \"'.\",\n w(e, d)\n );\n }\n r.length == 0 && (n = !0);\n }\n } else\n return p(\"InvalidTag\", \"Closing tag '\" + o + \"' doesn't have proper closing.\", w(e, s));\n else {\n const f = H(l, t);\n if (f !== !0)\n return p(f.err.code, f.err.msg, w(e, s - l.length + f.err.line));\n if (n === !0)\n return p(\"InvalidXml\", \"Multiple possible root nodes found.\", w(e, s));\n t.unpairedTags.indexOf(o) !== -1 || r.push({ tagName: o, tagStartPos: d }), i = !0;\n }\n for (s++; s < e.length; s++)\n if (e[s] === \"<\")\n if (e[s + 1] === \"!\") {\n s++, s = z(e, s);\n continue;\n } else if (e[s + 1] === \"?\") {\n if (s = G(e, ++s), s.err)\n return s;\n } else\n break;\n else if (e[s] === \"&\") {\n const f = Ve(e, s);\n if (f == -1)\n return p(\"InvalidChar\", \"char '&' is not expected.\", w(e, s));\n s = f;\n } else if (n === !0 && !U(e[s]))\n return p(\"InvalidXml\", \"Extra text at the end\", w(e, s));\n e[s] === \"<\" && s--;\n }\n } else {\n if (U(e[s]))\n continue;\n return p(\"InvalidChar\", \"char '\" + e[s] + \"' is not expected.\", w(e, s));\n }\n if (i) {\n if (r.length == 1)\n return p(\"InvalidTag\", \"Unclosed tag '\" + r[0].tagName + \"'.\", w(e, r[0].tagStartPos));\n if (r.length > 0)\n return p(\"InvalidXml\", \"Invalid '\" + JSON.stringify(r.map((s) => s.tagName), null, 4).replace(/\\r?\\n/g, \"\") + \"' found.\", { line: 1, col: 1 });\n } else\n return p(\"InvalidXml\", \"Start tag expected.\", 1);\n return !0;\n};\nfunction U(e) {\n return e === \" \" || e === \"\t\" || e === `\n` || e === \"\\r\";\n}\nfunction G(e, t) {\n const r = t;\n for (; t < e.length; t++)\n if (e[t] == \"?\" || e[t] == \" \") {\n const i = e.substr(r, t - r);\n if (t > 5 && i === \"xml\")\n return p(\"InvalidXml\", \"XML declaration allowed only at the start of the document.\", w(e, t));\n if (e[t] == \"?\" && e[t + 1] == \">\") {\n t++;\n break;\n } else\n continue;\n }\n return t;\n}\nfunction z(e, t) {\n if (e.length > t + 5 && e[t + 1] === \"-\" && e[t + 2] === \"-\") {\n for (t += 3; t < e.length; t++)\n if (e[t] === \"-\" && e[t + 1] === \"-\" && e[t + 2] === \">\") {\n t += 2;\n break;\n }\n } else if (e.length > t + 8 && e[t + 1] === \"D\" && e[t + 2] === \"O\" && e[t + 3] === \"C\" && e[t + 4] === \"T\" && e[t + 5] === \"Y\" && e[t + 6] === \"P\" && e[t + 7] === \"E\") {\n let r = 1;\n for (t += 8; t < e.length; t++)\n if (e[t] === \"<\")\n r++;\n else if (e[t] === \">\" && (r--, r === 0))\n break;\n } else if (e.length > t + 9 && e[t + 1] === \"[\" && e[t + 2] === \"C\" && e[t + 3] === \"D\" && e[t + 4] === \"A\" && e[t + 5] === \"T\" && e[t + 6] === \"A\" && e[t + 7] === \"[\") {\n for (t += 8; t < e.length; t++)\n if (e[t] === \"]\" && e[t + 1] === \"]\" && e[t + 2] === \">\") {\n t += 2;\n break;\n }\n }\n return t;\n}\nconst Ce = '\"', Pe = \"'\";\nfunction xe(e, t) {\n let r = \"\", i = \"\", n = !1;\n for (; t < e.length; t++) {\n if (e[t] === Ce || e[t] === Pe)\n i === \"\" ? i = e[t] : i !== e[t] || (i = \"\");\n else if (e[t] === \">\" && i === \"\") {\n n = !0;\n break;\n }\n r += e[t];\n }\n return i !== \"\" ? !1 : {\n value: r,\n index: t,\n tagClosed: n\n };\n}\nconst $e = new RegExp(`(\\\\s*)([^\\\\s=]+)(\\\\s*=)?(\\\\s*(['\"])(([\\\\s\\\\S])*?)\\\\5)?`, \"g\");\nfunction H(e, t) {\n const r = M.getAllMatches(e, $e), i = {};\n for (let n = 0; n < r.length; n++) {\n if (r[n][1].length === 0)\n return p(\"InvalidAttr\", \"Attribute '\" + r[n][2] + \"' has no space in starting.\", v(r[n]));\n if (r[n][3] !== void 0 && r[n][4] === void 0)\n return p(\"InvalidAttr\", \"Attribute '\" + r[n][2] + \"' is without value.\", v(r[n]));\n if (r[n][3] === void 0 && !t.allowBooleanAttributes)\n return p(\"InvalidAttr\", \"boolean attribute '\" + r[n][2] + \"' is not allowed.\", v(r[n]));\n const s = r[n][2];\n if (!Le(s))\n return p(\"InvalidAttr\", \"Attribute '\" + s + \"' is an invalid name.\", v(r[n]));\n if (!i.hasOwnProperty(s))\n i[s] = 1;\n else\n return p(\"InvalidAttr\", \"Attribute '\" + s + \"' is repeated.\", v(r[n]));\n }\n return !0;\n}\nfunction Fe(e, t) {\n let r = /\\d/;\n for (e[t] === \"x\" && (t++, r = /[\\da-fA-F]/); t < e.length; t++) {\n if (e[t] === \";\")\n return t;\n if (!e[t].match(r))\n break;\n }\n return -1;\n}\nfunction Ve(e, t) {\n if (t++, e[t] === \";\")\n return -1;\n if (e[t] === \"#\")\n return t++, Fe(e, t);\n let r = 0;\n for (; t < e.length; t++, r++)\n if (!(e[t].match(/\\w/) && r < 20)) {\n if (e[t] === \";\")\n break;\n return -1;\n }\n return t;\n}\nfunction p(e, t, r) {\n return {\n err: {\n code: e,\n msg: t,\n line: r.line || r,\n col: r.col\n }\n };\n}\nfunction Le(e) {\n return M.isName(e);\n}\nfunction Se(e) {\n return M.isName(e);\n}\nfunction w(e, t) {\n const r = e.substring(0, t).split(/\\r?\\n/);\n return {\n line: r.length,\n // column number is last line's length + 1, because column numbering starts at 1:\n col: r[r.length - 1].length + 1\n };\n}\nfunction v(e) {\n return e.startIndex + e[1].length;\n}\nvar B = {};\nconst re = {\n preserveOrder: !1,\n attributeNamePrefix: \"@_\",\n attributesGroupName: !1,\n textNodeName: \"#text\",\n ignoreAttributes: !0,\n removeNSPrefix: !1,\n // remove NS from tag name or attribute name if true\n allowBooleanAttributes: !1,\n //a tag can have attributes without any value\n //ignoreRootElement : false,\n parseTagValue: !0,\n parseAttributeValue: !1,\n trimValues: !0,\n //Trim string values of tag and attributes\n cdataPropName: !1,\n numberParseOptions: {\n hex: !0,\n leadingZeros: !0,\n eNotation: !0\n },\n tagValueProcessor: function(e, t) {\n return t;\n },\n attributeValueProcessor: function(e, t) {\n return t;\n },\n stopNodes: [],\n //nested tags will not be parsed even for errors\n alwaysCreateTextNode: !1,\n isArray: () => !1,\n commentPropName: !1,\n unpairedTags: [],\n processEntities: !0,\n htmlEntities: !1,\n ignoreDeclaration: !1,\n ignorePiTags: !1,\n transformTagName: !1,\n transformAttributeName: !1,\n updateTag: function(e, t, r) {\n return e;\n }\n // skipEmptyListItem: false\n}, Re = function(e) {\n return Object.assign({}, re, e);\n};\nB.buildOptions = Re;\nB.defaultOptions = re;\nclass Me {\n constructor(t) {\n this.tagname = t, this.child = [], this[\":@\"] = {};\n }\n add(t, r) {\n t === \"__proto__\" && (t = \"#__proto__\"), this.child.push({ [t]: r });\n }\n addChild(t) {\n t.tagname === \"__proto__\" && (t.tagname = \"#__proto__\"), t[\":@\"] && Object.keys(t[\":@\"]).length > 0 ? this.child.push({ [t.tagname]: t.child, \":@\": t[\":@\"] }) : this.child.push({ [t.tagname]: t.child });\n }\n}\nvar Be = Me;\nconst ke = O;\nfunction qe(e, t) {\n const r = {};\n if (e[t + 3] === \"O\" && e[t + 4] === \"C\" && e[t + 5] === \"T\" && e[t + 6] === \"Y\" && e[t + 7] === \"P\" && e[t + 8] === \"E\") {\n t = t + 9;\n let i = 1, n = !1, s = !1, d = \"\";\n for (; t < e.length; t++)\n if (e[t] === \"<\" && !s) {\n if (n && Ge(e, t))\n t += 7, [entityName, val, t] = Xe(e, t + 1), val.indexOf(\"&\") === -1 && (r[We(entityName)] = {\n regx: RegExp(`&${entityName};`, \"g\"),\n val\n });\n else if (n && ze(e, t))\n t += 8;\n else if (n && He(e, t))\n t += 8;\n else if (n && Ke(e, t))\n t += 9;\n else if (Ue)\n s = !0;\n else\n throw new Error(\"Invalid DOCTYPE\");\n i++, d = \"\";\n } else if (e[t] === \">\") {\n if (s ? e[t - 1] === \"-\" && e[t - 2] === \"-\" && (s = !1, i--) : i--, i === 0)\n break;\n } else\n e[t] === \"[\" ? n = !0 : d += e[t];\n if (i !== 0)\n throw new Error(\"Unclosed DOCTYPE\");\n } else\n throw new Error(\"Invalid Tag instead of DOCTYPE\");\n return { entities: r, i: t };\n}\nfunction Xe(e, t) {\n let r = \"\";\n for (; t < e.length && e[t] !== \"'\" && e[t] !== '\"'; t++)\n r += e[t];\n if (r = r.trim(), r.indexOf(\" \") !== -1)\n throw new Error(\"External entites are not supported\");\n const i = e[t++];\n let n = \"\";\n for (; t < e.length && e[t] !== i; t++)\n n += e[t];\n return [r, n, t];\n}\nfunction Ue(e, t) {\n return e[t + 1] === \"!\" && e[t + 2] === \"-\" && e[t + 3] === \"-\";\n}\nfunction Ge(e, t) {\n return e[t + 1] === \"!\" && e[t + 2] === \"E\" && e[t + 3] === \"N\" && e[t + 4] === \"T\" && e[t + 5] === \"I\" && e[t + 6] === \"T\" && e[t + 7] === \"Y\";\n}\nfunction ze(e, t) {\n return e[t + 1] === \"!\" && e[t + 2] === \"E\" && e[t + 3] === \"L\" && e[t + 4] === \"E\" && e[t + 5] === \"M\" && e[t + 6] === \"E\" && e[t + 7] === \"N\" && e[t + 8] === \"T\";\n}\nfunction He(e, t) {\n return e[t + 1] === \"!\" && e[t + 2] === \"A\" && e[t + 3] === \"T\" && e[t + 4] === \"T\" && e[t + 5] === \"L\" && e[t + 6] === \"I\" && e[t + 7] === \"S\" && e[t + 8] === \"T\";\n}\nfunction Ke(e, t) {\n return e[t + 1] === \"!\" && e[t + 2] === \"N\" && e[t + 3] === \"O\" && e[t + 4] === \"T\" && e[t + 5] === \"A\" && e[t + 6] === \"T\" && e[t + 7] === \"I\" && e[t + 8] === \"O\" && e[t + 9] === \"N\";\n}\nfunction We(e) {\n if (ke.isName(e))\n return e;\n throw new Error(`Invalid entity name ${e}`);\n}\nvar Ze = qe;\nconst je = /^[-+]?0x[a-fA-F0-9]+$/, Ye = /^([\\-\\+])?(0*)(\\.[0-9]+([eE]\\-?[0-9]+)?|[0-9]+(\\.[0-9]+([eE]\\-?[0-9]+)?)?)$/;\n!Number.parseInt && window.parseInt && (Number.parseInt = window.parseInt);\n!Number.parseFloat && window.parseFloat && (Number.parseFloat = window.parseFloat);\nconst Je = {\n hex: !0,\n leadingZeros: !0,\n decimalPoint: \".\",\n eNotation: !0\n //skipLike: /regex/\n};\nfunction Qe(e, t = {}) {\n if (t = Object.assign({}, Je, t), !e || typeof e != \"string\")\n return e;\n let r = e.trim();\n if (t.skipLike !== void 0 && t.skipLike.test(r))\n return e;\n if (t.hex && je.test(r))\n return Number.parseInt(r, 16);\n {\n const i = Ye.exec(r);\n if (i) {\n const n = i[1], s = i[2];\n let d = De(i[3]);\n const u = i[4] || i[6];\n if (!t.leadingZeros && s.length > 0 && n && r[2] !== \".\")\n return e;\n if (!t.leadingZeros && s.length > 0 && !n && r[1] !== \".\")\n return e;\n {\n const o = Number(r), a = \"\" + o;\n return a.search(/[eE]/) !== -1 || u ? t.eNotation ? o : e : r.indexOf(\".\") !== -1 ? a === \"0\" && d === \"\" || a === d || n && a === \"-\" + d ? o : e : s ? d === a || n + d === a ? o : e : r === a || r === n + a ? o : e;\n }\n } else\n return e;\n }\n}\nfunction De(e) {\n return e && e.indexOf(\".\") !== -1 && (e = e.replace(/0+$/, \"\"), e === \".\" ? e = \"0\" : e[0] === \".\" ? e = \"0\" + e : e[e.length - 1] === \".\" && (e = e.substr(0, e.length - 1))), e;\n}\nvar et = Qe;\nconst k = O, T = Be, tt = Ze, rt = et;\n\"<((!\\\\[CDATA\\\\[([\\\\s\\\\S]*?)(]]>))|((NAME:)?(NAME))([^>]*)>|((\\\\/)(NAME)\\\\s*>))([^<]*)\".replace(/NAME/g, k.nameRegexp);\nlet nt = class {\n constructor(t) {\n this.options = t, this.currentNode = null, this.tagsNodeStack = [], this.docTypeEntities = {}, this.lastEntities = {\n apos: { regex: /&(apos|#39|#x27);/g, val: \"'\" },\n gt: { regex: /&(gt|#62|#x3E);/g, val: \">\" },\n lt: { regex: /&(lt|#60|#x3C);/g, val: \"<\" },\n quot: { regex: /&(quot|#34|#x22);/g, val: '\"' }\n }, this.ampEntity = { regex: /&(amp|#38|#x26);/g, val: \"&\" }, this.htmlEntities = {\n space: { regex: /&(nbsp|#160);/g, val: \" \" },\n // \"lt\" : { regex: /&(lt|#60);/g, val: \"<\" },\n // \"gt\" : { regex: /&(gt|#62);/g, val: \">\" },\n // \"amp\" : { regex: /&(amp|#38);/g, val: \"&\" },\n // \"quot\" : { regex: /&(quot|#34);/g, val: \"\\\"\" },\n // \"apos\" : { regex: /&(apos|#39);/g, val: \"'\" },\n cent: { regex: /&(cent|#162);/g, val: \"¢\" },\n pound: { regex: /&(pound|#163);/g, val: \"£\" },\n yen: { regex: /&(yen|#165);/g, val: \"¥\" },\n euro: { regex: /&(euro|#8364);/g, val: \"€\" },\n copyright: { regex: /&(copy|#169);/g, val: \"©\" },\n reg: { regex: /&(reg|#174);/g, val: \"®\" },\n inr: { regex: /&(inr|#8377);/g, val: \"₹\" }\n }, this.addExternalEntities = it, this.parseXml = at, this.parseTextData = st, this.resolveNameSpace = ot, this.buildAttributesMap = dt, this.isItStopNode = ht, this.replaceEntitiesValue = ft, this.readStopNodeData = gt, this.saveTextToParentTag = ct, this.addChild = lt;\n }\n};\nfunction it(e) {\n const t = Object.keys(e);\n for (let r = 0; r < t.length; r++) {\n const i = t[r];\n this.lastEntities[i] = {\n regex: new RegExp(\"&\" + i + \";\", \"g\"),\n val: e[i]\n };\n }\n}\nfunction st(e, t, r, i, n, s, d) {\n if (e !== void 0 && (this.options.trimValues && !i && (e = e.trim()), e.length > 0)) {\n d || (e = this.replaceEntitiesValue(e));\n const u = this.options.tagValueProcessor(t, e, r, n, s);\n return u == null ? e : typeof u != typeof e || u !== e ? u : this.options.trimValues ? $(e, this.options.parseTagValue, this.options.numberParseOptions) : e.trim() === e ? $(e, this.options.parseTagValue, this.options.numberParseOptions) : e;\n }\n}\nfunction ot(e) {\n if (this.options.removeNSPrefix) {\n const t = e.split(\":\"), r = e.charAt(0) === \"/\" ? \"/\" : \"\";\n if (t[0] === \"xmlns\")\n return \"\";\n t.length === 2 && (e = r + t[1]);\n }\n return e;\n}\nconst ut = new RegExp(`([^\\\\s=]+)\\\\s*(=\\\\s*(['\"])([\\\\s\\\\S]*?)\\\\3)?`, \"gm\");\nfunction dt(e, t, r) {\n if (!this.options.ignoreAttributes && typeof e == \"string\") {\n const i = k.getAllMatches(e, ut), n = i.length, s = {};\n for (let d = 0; d < n; d++) {\n const u = this.resolveNameSpace(i[d][1]);\n let o = i[d][4], a = this.options.attributeNamePrefix + u;\n if (u.length)\n if (this.options.transformAttributeName && (a = this.options.transformAttributeName(a)), a === \"__proto__\" && (a = \"#__proto__\"), o !== void 0) {\n this.options.trimValues && (o = o.trim()), o = this.replaceEntitiesValue(o);\n const l = this.options.attributeValueProcessor(u, o, t);\n l == null ? s[a] = o : typeof l != typeof o || l !== o ? s[a] = l : s[a] = $(\n o,\n this.options.parseAttributeValue,\n this.options.numberParseOptions\n );\n } else\n this.options.allowBooleanAttributes && (s[a] = !0);\n }\n if (!Object.keys(s).length)\n return;\n if (this.options.attributesGroupName) {\n const d = {};\n return d[this.options.attributesGroupName] = s, d;\n }\n return s;\n }\n}\nconst at = function(e) {\n e = e.replace(/\\r\\n?/g, `\n`);\n const t = new T(\"!xml\");\n let r = t, i = \"\", n = \"\";\n for (let s = 0; s < e.length; s++)\n if (e[s] === \"<\")\n if (e[s + 1] === \"/\") {\n const u = y(e, \">\", s, \"Closing Tag is not closed.\");\n let o = e.substring(s + 2, u).trim();\n if (this.options.removeNSPrefix) {\n const f = o.indexOf(\":\");\n f !== -1 && (o = o.substr(f + 1));\n }\n this.options.transformTagName && (o = this.options.transformTagName(o)), r && (i = this.saveTextToParentTag(i, r, n));\n const a = n.substring(n.lastIndexOf(\".\") + 1);\n if (o && this.options.unpairedTags.indexOf(o) !== -1)\n throw new Error(`Unpaired tag can not be used as closing tag: </${o}>`);\n let l = 0;\n a && this.options.unpairedTags.indexOf(a) !== -1 ? (l = n.lastIndexOf(\".\", n.lastIndexOf(\".\") - 1), this.tagsNodeStack.pop()) : l = n.lastIndexOf(\".\"), n = n.substring(0, l), r = this.tagsNodeStack.pop(), i = \"\", s = u;\n } else if (e[s + 1] === \"?\") {\n let u = x(e, s, !1, \"?>\");\n if (!u)\n throw new Error(\"Pi Tag is not closed.\");\n if (i = this.saveTextToParentTag(i, r, n), !(this.options.ignoreDeclaration && u.tagName === \"?xml\" || this.options.ignorePiTags)) {\n const o = new T(u.tagName);\n o.add(this.options.textNodeName, \"\"), u.tagName !== u.tagExp && u.attrExpPresent && (o[\":@\"] = this.buildAttributesMap(u.tagExp, n, u.tagName)), this.addChild(r, o, n);\n }\n s = u.closeIndex + 1;\n } else if (e.substr(s + 1, 3) === \"!--\") {\n const u = y(e, \"-->\", s + 4, \"Comment is not closed.\");\n if (this.options.commentPropName) {\n const o = e.substring(s + 4, u - 2);\n i = this.saveTextToParentTag(i, r, n), r.add(this.options.commentPropName, [{ [this.options.textNodeName]: o }]);\n }\n s = u;\n } else if (e.substr(s + 1, 2) === \"!D\") {\n const u = tt(e, s);\n this.docTypeEntities = u.entities, s = u.i;\n } else if (e.substr(s + 1, 2) === \"![\") {\n const u = y(e, \"]]>\", s, \"CDATA is not closed.\") - 2, o = e.substring(s + 9, u);\n if (i = this.saveTextToParentTag(i, r, n), this.options.cdataPropName)\n r.add(this.options.cdataPropName, [{ [this.options.textNodeName]: o }]);\n else {\n let a = this.parseTextData(o, r.tagname, n, !0, !1, !0);\n a == null && (a = \"\"), r.add(this.options.textNodeName, a);\n }\n s = u + 2;\n } else {\n let u = x(e, s, this.options.removeNSPrefix), o = u.tagName;\n const a = u.rawTagName;\n let l = u.tagExp, f = u.attrExpPresent, c = u.closeIndex;\n this.options.transformTagName && (o = this.options.transformTagName(o)), r && i && r.tagname !== \"!xml\" && (i = this.saveTextToParentTag(i, r, n, !1));\n const g = r;\n if (g && this.options.unpairedTags.indexOf(g.tagname) !== -1 && (r = this.tagsNodeStack.pop(), n = n.substring(0, n.lastIndexOf(\".\"))), o !== t.tagname && (n += n ? \".\" + o : o), this.isItStopNode(this.options.stopNodes, n, o)) {\n let h = \"\";\n if (l.length > 0 && l.lastIndexOf(\"/\") === l.length - 1)\n s = u.closeIndex;\n else if (this.options.unpairedTags.indexOf(o) !== -1)\n s = u.closeIndex;\n else {\n const E = this.readStopNodeData(e, a, c + 1);\n if (!E)\n throw new Error(`Unexpected end of ${a}`);\n s = E.i, h = E.tagContent;\n }\n const _ = new T(o);\n o !== l && f && (_[\":@\"] = this.buildAttributesMap(l, n, o)), h && (h = this.parseTextData(h, o, n, !0, f, !0, !0)), n = n.substr(0, n.lastIndexOf(\".\")), _.add(this.options.textNodeName, h), this.addChild(r, _, n);\n } else {\n if (l.length > 0 && l.lastIndexOf(\"/\") === l.length - 1) {\n o[o.length - 1] === \"/\" ? (o = o.substr(0, o.length - 1), n = n.substr(0, n.length - 1), l = o) : l = l.substr(0, l.length - 1), this.options.transformTagName && (o = this.options.transformTagName(o));\n const h = new T(o);\n o !== l && f && (h[\":@\"] = this.buildAttributesMap(l, n, o)), this.addChild(r, h, n), n = n.substr(0, n.lastIndexOf(\".\"));\n } else {\n const h = new T(o);\n this.tagsNodeStack.push(r), o !== l && f && (h[\":@\"] = this.buildAttributesMap(l, n, o)), this.addChild(r, h, n), r = h;\n }\n i = \"\", s = c;\n }\n }\n else\n i += e[s];\n return t.child;\n};\nfunction lt(e, t, r) {\n const i = this.options.updateTag(t.tagname, r, t[\":@\"]);\n i === !1 || (typeof i == \"string\" && (t.tagname = i), e.addChild(t));\n}\nconst ft = function(e) {\n if (this.options.processEntities) {\n for (let t in this.docTypeEntities) {\n const r = this.docTypeEntities[t];\n e = e.replace(r.regx, r.val);\n }\n for (let t in this.lastEntities) {\n const r = this.lastEntities[t];\n e = e.replace(r.regex, r.val);\n }\n if (this.options.htmlEntities)\n for (let t in this.htmlEntities) {\n const r = this.htmlEntities[t];\n e = e.replace(r.regex, r.val);\n }\n e = e.replace(this.ampEntity.regex, this.ampEntity.val);\n }\n return e;\n};\nfunction ct(e, t, r, i) {\n return e && (i === void 0 && (i = Object.keys(t.child).length === 0), e = this.parseTextData(\n e,\n t.tagname,\n r,\n !1,\n t[\":@\"] ? Object.keys(t[\":@\"]).length !== 0 : !1,\n i\n ), e !== void 0 && e !== \"\" && t.add(this.options.textNodeName, e), e = \"\"), e;\n}\nfunction ht(e, t, r) {\n const i = \"*.\" + r;\n for (const n in e) {\n const s = e[n];\n if (i === s || t === s)\n return !0;\n }\n return !1;\n}\nfunction pt(e, t, r = \">\") {\n let i, n = \"\";\n for (let s = t; s < e.length; s++) {\n let d = e[s];\n if (i)\n d === i && (i = \"\");\n else if (d === '\"' || d === \"'\")\n i = d;\n else if (d === r[0])\n if (r[1]) {\n if (e[s + 1] === r[1])\n return {\n data: n,\n index: s\n };\n } else\n return {\n data: n,\n index: s\n };\n else\n d === \"\t\" && (d = \" \");\n n += d;\n }\n}\nfunction y(e, t, r, i) {\n const n = e.indexOf(t, r);\n if (n === -1)\n throw new Error(i);\n return n + t.length - 1;\n}\nfunction x(e, t, r, i = \">\") {\n const n = pt(e, t + 1, i);\n if (!n)\n return;\n let s = n.data;\n const d = n.index, u = s.search(/\\s/);\n let o = s, a = !0;\n u !== -1 && (o = s.substr(0, u).replace(/\\s\\s*$/, \"\"), s = s.substr(u + 1));\n const l = o;\n if (r) {\n const f = o.indexOf(\":\");\n f !== -1 && (o = o.substr(f + 1), a = o !== n.data.substr(f + 1));\n }\n return {\n tagName: o,\n tagExp: s,\n closeIndex: d,\n attrExpPresent: a,\n rawTagName: l\n };\n}\nfunction gt(e, t, r) {\n const i = r;\n let n = 1;\n for (; r < e.length; r++)\n if (e[r] === \"<\")\n if (e[r + 1] === \"/\") {\n const s = y(e, \">\", r, `${t} is not closed`);\n if (e.substring(r + 2, s).trim() === t && (n--, n === 0))\n return {\n tagContent: e.substring(i, r),\n i: s\n };\n r = s;\n } else if (e[r + 1] === \"?\")\n r = y(e, \"?>\", r + 1, \"StopNode is not closed.\");\n else if (e.substr(r + 1, 3) === \"!--\")\n r = y(e, \"-->\", r + 3, \"StopNode is not closed.\");\n else if (e.substr(r + 1, 2) === \"![\")\n r = y(e, \"]]>\", r, \"StopNode is not closed.\") - 2;\n else {\n const s = x(e, r, \">\");\n s && ((s && s.tagName) === t && s.tagExp[s.tagExp.length - 1] !== \"/\" && n++, r = s.closeIndex);\n }\n}\nfunction $(e, t, r) {\n if (t && typeof e == \"string\") {\n const i = e.trim();\n return i === \"true\" ? !0 : i === \"false\" ? !1 : rt(e, r);\n } else\n return k.isExist(e) ? e : \"\";\n}\nvar wt = nt, ne = {};\nfunction mt(e, t) {\n return ie(e, t);\n}\nfunction ie(e, t, r) {\n let i;\n const n = {};\n for (let s = 0; s < e.length; s++) {\n const d = e[s], u = Nt(d);\n let o = \"\";\n if (r === void 0 ? o = u : o = r + \".\" + u, u === t.textNodeName)\n i === void 0 ? i = d[u] : i += \"\" + d[u];\n else {\n if (u === void 0)\n continue;\n if (d[u]) {\n let a = ie(d[u], t, o);\n const l = bt(a, t);\n d[\":@\"] ? Et(a, d[\":@\"], o, t) : Object.keys(a).length === 1 && a[t.textNodeName] !== void 0 && !t.alwaysCreateTextNode ? a = a[t.textNodeName] : Object.keys(a).length === 0 && (t.alwaysCreateTextNode ? a[t.textNodeName] = \"\" : a = \"\"), n[u] !== void 0 && n.hasOwnProperty(u) ? (Array.isArray(n[u]) || (n[u] = [n[u]]), n[u].push(a)) : t.isArray(u, o, l) ? n[u] = [a] : n[u] = a;\n }\n }\n }\n return typeof i == \"string\" ? i.length > 0 && (n[t.textNodeName] = i) : i !== void 0 && (n[t.textNodeName] = i), n;\n}\nfunction Nt(e) {\n const t = Object.keys(e);\n for (let r = 0; r < t.length; r++) {\n const i = t[r];\n if (i !== \":@\")\n return i;\n }\n}\nfunction Et(e, t, r, i) {\n if (t) {\n const n = Object.keys(t), s = n.length;\n for (let d = 0; d < s; d++) {\n const u = n[d];\n i.isArray(u, r + \".\" + u, !0, !0) ? e[u] = [t[u]] : e[u] = t[u];\n }\n }\n}\nfunction bt(e, t) {\n const { textNodeName: r } = t, i = Object.keys(e).length;\n return !!(i === 0 || i === 1 && (e[r] || typeof e[r] == \"boolean\" || e[r] === 0));\n}\nne.prettify = mt;\nconst { buildOptions: yt } = B, _t = wt, { prettify: vt } = ne, Tt = R;\nlet It = class {\n constructor(t) {\n this.externalEntities = {}, this.options = yt(t);\n }\n /**\n * Parse XML dats to JS object \n * @param {string|Buffer} xmlData \n * @param {boolean|Object} validationOption \n */\n parse(t, r) {\n if (typeof t != \"string\")\n if (t.toString)\n t = t.toString();\n else\n throw new Error(\"XML data is accepted in String or Bytes[] form.\");\n if (r) {\n r === !0 && (r = {});\n const s = Tt.validate(t, r);\n if (s !== !0)\n throw Error(`${s.err.msg}:${s.err.line}:${s.err.col}`);\n }\n const i = new _t(this.options);\n i.addExternalEntities(this.externalEntities);\n const n = i.parseXml(t);\n return this.options.preserveOrder || n === void 0 ? n : vt(n, this.options);\n }\n /**\n * Add Entity which is not by default supported by this library\n * @param {string} key \n * @param {string} value \n */\n addEntity(t, r) {\n if (r.indexOf(\"&\") !== -1)\n throw new Error(\"Entity value can't have '&'\");\n if (t.indexOf(\"&\") !== -1 || t.indexOf(\";\") !== -1)\n throw new Error(\"An entity must be set without '&' and ';'. Eg. use '#xD' for '
'\");\n if (r === \"&\")\n throw new Error(\"An entity with value '&' is not permitted\");\n this.externalEntities[t] = r;\n }\n};\nvar At = It;\nconst Ot = `\n`;\nfunction Ct(e, t) {\n let r = \"\";\n return t.format && t.indentBy.length > 0 && (r = Ot), se(e, t, \"\", r);\n}\nfunction se(e, t, r, i) {\n let n = \"\", s = !1;\n for (let d = 0; d < e.length; d++) {\n const u = e[d], o = Pt(u);\n if (o === void 0)\n continue;\n let a = \"\";\n if (r.length === 0 ? a = o : a = `${r}.${o}`, o === t.textNodeName) {\n let h = u[o];\n xt(a, t) || (h = t.tagValueProcessor(o, h), h = oe(h, t)), s && (n += i), n += h, s = !1;\n continue;\n } else if (o === t.cdataPropName) {\n s && (n += i), n += `<![CDATA[${u[o][0][t.textNodeName]}]]>`, s = !1;\n continue;\n } else if (o === t.commentPropName) {\n n += i + `<!--${u[o][0][t.textNodeName]}-->`, s = !0;\n continue;\n } else if (o[0] === \"?\") {\n const h = K(u[\":@\"], t), _ = o === \"?xml\" ? \"\" : i;\n let E = u[o][0][t.textNodeName];\n E = E.length !== 0 ? \" \" + E : \"\", n += _ + `<${o}${E}${h}?>`, s = !0;\n continue;\n }\n let l = i;\n l !== \"\" && (l += t.indentBy);\n const f = K(u[\":@\"], t), c = i + `<${o}${f}`, g = se(u[o], t, a, l);\n t.unpairedTags.indexOf(o) !== -1 ? t.suppressUnpairedNode ? n += c + \">\" : n += c + \"/>\" : (!g || g.length === 0) && t.suppressEmptyNode ? n += c + \"/>\" : g && g.endsWith(\">\") ? n += c + `>${g}${i}</${o}>` : (n += c + \">\", g && i !== \"\" && (g.includes(\"/>\") || g.includes(\"</\")) ? n += i + t.indentBy + g + i : n += g, n += `</${o}>`), s = !0;\n }\n return n;\n}\nfunction Pt(e) {\n const t = Object.keys(e);\n for (let r = 0; r < t.length; r++) {\n const i = t[r];\n if (e.hasOwnProperty(i) && i !== \":@\")\n return i;\n }\n}\nfunction K(e, t) {\n let r = \"\";\n if (e && !t.ignoreAttributes)\n for (let i in e) {\n if (!e.hasOwnProperty(i))\n continue;\n let n = t.attributeValueProcessor(i, e[i]);\n n = oe(n, t), n === !0 && t.suppressBooleanAttributes ? r += ` ${i.substr(t.attributeNamePrefix.length)}` : r += ` ${i.substr(t.attributeNamePrefix.length)}=\"${n}\"`;\n }\n return r;\n}\nfunction xt(e, t) {\n e = e.substr(0, e.length - t.textNodeName.length - 1);\n let r = e.substr(e.lastIndexOf(\".\") + 1);\n for (let i in t.stopNodes)\n if (t.stopNodes[i] === e || t.stopNodes[i] === \"*.\" + r)\n return !0;\n return !1;\n}\nfunction oe(e, t) {\n if (e && e.length > 0 && t.processEntities)\n for (let r = 0; r < t.entities.length; r++) {\n const i = t.entities[r];\n e = e.replace(i.regex, i.val);\n }\n return e;\n}\nvar $t = Ct;\nconst Ft = $t, Vt = {\n attributeNamePrefix: \"@_\",\n attributesGroupName: !1,\n textNodeName: \"#text\",\n ignoreAttributes: !0,\n cdataPropName: !1,\n format: !1,\n indentBy: \" \",\n suppressEmptyNode: !1,\n suppressUnpairedNode: !0,\n suppressBooleanAttributes: !0,\n tagValueProcessor: function(e, t) {\n return t;\n },\n attributeValueProcessor: function(e, t) {\n return t;\n },\n preserveOrder: !1,\n commentPropName: !1,\n unpairedTags: [],\n entities: [\n { regex: new RegExp(\"&\", \"g\"), val: \"&\" },\n //it must be on top\n { regex: new RegExp(\">\", \"g\"), val: \">\" },\n { regex: new RegExp(\"<\", \"g\"), val: \"<\" },\n { regex: new RegExp(\"'\", \"g\"), val: \"'\" },\n { regex: new RegExp('\"', \"g\"), val: \""\" }\n ],\n processEntities: !0,\n stopNodes: [],\n // transformTagName: false,\n // transformAttributeName: false,\n oneListGroup: !1\n};\nfunction b(e) {\n this.options = Object.assign({}, Vt, e), this.options.ignoreAttributes || this.options.attributesGroupName ? this.isAttribute = function() {\n return !1;\n } : (this.attrPrefixLen = this.options.attributeNamePrefix.length, this.isAttribute = Rt), this.processTextOrObjNode = Lt, this.options.format ? (this.indentate = St, this.tagEndChar = `>\n`, this.newLine = `\n`) : (this.indentate = function() {\n return \"\";\n }, this.tagEndChar = \">\", this.newLine = \"\");\n}\nb.prototype.build = function(e) {\n return this.options.preserveOrder ? Ft(e, this.options) : (Array.isArray(e) && this.options.arrayNodeName && this.options.arrayNodeName.length > 1 && (e = {\n [this.options.arrayNodeName]: e\n }), this.j2x(e, 0).val);\n};\nb.prototype.j2x = function(e, t) {\n let r = \"\", i = \"\";\n for (let n in e)\n if (Object.prototype.hasOwnProperty.call(e, n))\n if (typeof e[n] > \"u\")\n this.isAttribute(n) && (i += \"\");\n else if (e[n] === null)\n this.isAttribute(n) ? i += \"\" : n[0] === \"?\" ? i += this.indentate(t) + \"<\" + n + \"?\" + this.tagEndChar : i += this.indentate(t) + \"<\" + n + \"/\" + this.tagEndChar;\n else if (e[n] instanceof Date)\n i += this.buildTextValNode(e[n], n, \"\", t);\n else if (typeof e[n] != \"object\") {\n const s = this.isAttribute(n);\n if (s)\n r += this.buildAttrPairStr(s, \"\" + e[n]);\n else if (n === this.options.textNodeName) {\n let d = this.options.tagValueProcessor(n, \"\" + e[n]);\n i += this.replaceEntitiesValue(d);\n } else\n i += this.buildTextValNode(e[n], n, \"\", t);\n } else if (Array.isArray(e[n])) {\n const s = e[n].length;\n let d = \"\";\n for (let u = 0; u < s; u++) {\n const o = e[n][u];\n typeof o > \"u\" || (o === null ? n[0] === \"?\" ? i += this.indentate(t) + \"<\" + n + \"?\" + this.tagEndChar : i += this.indentate(t) + \"<\" + n + \"/\" + this.tagEndChar : typeof o == \"object\" ? this.options.oneListGroup ? d += this.j2x(o, t + 1).val : d += this.processTextOrObjNode(o, n, t) : d += this.buildTextValNode(o, n, \"\", t));\n }\n this.options.oneListGroup && (d = this.buildObjectNode(d, n, \"\", t)), i += d;\n } else if (this.options.attributesGroupName && n === this.options.attributesGroupName) {\n const s = Object.keys(e[n]), d = s.length;\n for (let u = 0; u < d; u++)\n r += this.buildAttrPairStr(s[u], \"\" + e[n][s[u]]);\n } else\n i += this.processTextOrObjNode(e[n], n, t);\n return { attrStr: r, val: i };\n};\nb.prototype.buildAttrPairStr = function(e, t) {\n return t = this.options.attributeValueProcessor(e, \"\" + t), t = this.replaceEntitiesValue(t), this.options.suppressBooleanAttributes && t === \"true\" ? \" \" + e : \" \" + e + '=\"' + t + '\"';\n};\nfunction Lt(e, t, r) {\n const i = this.j2x(e, r + 1);\n return e[this.options.textNodeName] !== void 0 && Object.keys(e).length === 1 ? this.buildTextValNode(e[this.options.textNodeName], t, i.attrStr, r) : this.buildObjectNode(i.val, t, i.attrStr, r);\n}\nb.prototype.buildObjectNode = function(e, t, r, i) {\n if (e === \"\")\n return t[0] === \"?\" ? this.indentate(i) + \"<\" + t + r + \"?\" + this.tagEndChar : this.indentate(i) + \"<\" + t + r + this.closeTag(t) + this.tagEndChar;\n {\n let n = \"</\" + t + this.tagEndChar, s = \"\";\n return t[0] === \"?\" && (s = \"?\", n = \"\"), (r || r === \"\") && e.indexOf(\"<\") === -1 ? this.indentate(i) + \"<\" + t + r + s + \">\" + e + n : this.options.commentPropName !== !1 && t === this.options.commentPropName && s.length === 0 ? this.indentate(i) + `<!--${e}-->` + this.newLine : this.indentate(i) + \"<\" + t + r + s + this.tagEndChar + e + this.indentate(i) + n;\n }\n};\nb.prototype.closeTag = function(e) {\n let t = \"\";\n return this.options.unpairedTags.indexOf(e) !== -1 ? this.options.suppressUnpairedNode || (t = \"/\") : this.options.suppressEmptyNode ? t = \"/\" : t = `></${e}`, t;\n};\nb.prototype.buildTextValNode = function(e, t, r, i) {\n if (this.options.cdataPropName !== !1 && t === this.options.cdataPropName)\n return this.indentate(i) + `<![CDATA[${e}]]>` + this.newLine;\n if (this.options.commentPropName !== !1 && t === this.options.commentPropName)\n return this.indentate(i) + `<!--${e}-->` + this.newLine;\n if (t[0] === \"?\")\n return this.indentate(i) + \"<\" + t + r + \"?\" + this.tagEndChar;\n {\n let n = this.options.tagValueProcessor(t, e);\n return n = this.replaceEntitiesValue(n), n === \"\" ? this.indentate(i) + \"<\" + t + r + this.closeTag(t) + this.tagEndChar : this.indentate(i) + \"<\" + t + r + \">\" + n + \"</\" + t + this.tagEndChar;\n }\n};\nb.prototype.replaceEntitiesValue = function(e) {\n if (e && e.length > 0 && this.options.processEntities)\n for (let t = 0; t < this.options.entities.length; t++) {\n const r = this.options.entities[t];\n e = e.replace(r.regex, r.val);\n }\n return e;\n};\nfunction St(e) {\n return this.options.indentBy.repeat(e);\n}\nfunction Rt(e) {\n return e.startsWith(this.options.attributeNamePrefix) && e !== this.options.textNodeName ? e.substr(this.attrPrefixLen) : !1;\n}\nvar Mt = b;\nconst Bt = R, kt = At, qt = Mt;\nvar W = {\n XMLParser: kt,\n XMLValidator: Bt,\n XMLBuilder: qt\n};\nfunction Xt(e) {\n if (typeof e != \"string\")\n throw new TypeError(`Expected a \\`string\\`, got \\`${typeof e}\\``);\n if (e = e.trim(), e.length === 0 || W.XMLValidator.validate(e) !== !0)\n return !1;\n let t;\n const r = new W.XMLParser();\n try {\n t = r.parse(e);\n } catch {\n return !1;\n }\n return !(!t || !(\"svg\" in t));\n}\n/**\n * @copyright Copyright (c) 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nclass hr {\n _view;\n constructor(t) {\n Ut(t), this._view = t;\n }\n get id() {\n return this._view.id;\n }\n get name() {\n return this._view.name;\n }\n get caption() {\n return this._view.caption;\n }\n get emptyTitle() {\n return this._view.emptyTitle;\n }\n get emptyCaption() {\n return this._view.emptyCaption;\n }\n get getContents() {\n return this._view.getContents;\n }\n get icon() {\n return this._view.icon;\n }\n set icon(t) {\n this._view.icon = t;\n }\n get order() {\n return this._view.order;\n }\n set order(t) {\n this._view.order = t;\n }\n get params() {\n return this._view.params;\n }\n set params(t) {\n this._view.params = t;\n }\n get columns() {\n return this._view.columns;\n }\n get emptyView() {\n return this._view.emptyView;\n }\n get parent() {\n return this._view.parent;\n }\n get sticky() {\n return this._view.sticky;\n }\n get expanded() {\n return this._view.expanded;\n }\n set expanded(t) {\n this._view.expanded = t;\n }\n get defaultSortKey() {\n return this._view.defaultSortKey;\n }\n}\nconst Ut = function(e) {\n if (!e.id || typeof e.id != \"string\")\n throw new Error(\"View id is required and must be a string\");\n if (!e.name || typeof e.name != \"string\")\n throw new Error(\"View name is required and must be a string\");\n if (e.columns && e.columns.length > 0 && (!e.caption || typeof e.caption != \"string\"))\n throw new Error(\"View caption is required for top-level views and must be a string\");\n if (!e.getContents || typeof e.getContents != \"function\")\n throw new Error(\"View getContents is required and must be a function\");\n if (!e.icon || typeof e.icon != \"string\" || !Xt(e.icon))\n throw new Error(\"View icon is required and must be a valid svg string\");\n if (!(\"order\" in e) || typeof e.order != \"number\")\n throw new Error(\"View order is required and must be a number\");\n if (e.columns && e.columns.forEach((t) => {\n if (!(t instanceof Ie))\n throw new Error(\"View columns must be an array of Column. Invalid column found\");\n }), e.emptyView && typeof e.emptyView != \"function\")\n throw new Error(\"View emptyView must be a function\");\n if (e.parent && typeof e.parent != \"string\")\n throw new Error(\"View parent must be a string\");\n if (\"sticky\" in e && typeof e.sticky != \"boolean\")\n throw new Error(\"View sticky must be a boolean\");\n if (\"expanded\" in e && typeof e.expanded != \"boolean\")\n throw new Error(\"View expanded must be a boolean\");\n if (e.defaultSortKey && typeof e.defaultSortKey != \"string\")\n throw new Error(\"View defaultSortKey must be a string\");\n return !0;\n};\n/**\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author Christoph Wurst <christoph@winzerhof-wurst.at>\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nconst pr = function(e) {\n return F().registerEntry(e);\n}, gr = function(e) {\n return F().unregisterEntry(e);\n}, wr = function(e) {\n return F().getEntries(e).sort((r, i) => r.order !== void 0 && i.order !== void 0 && r.order !== i.order ? r.order - i.order : r.displayName.localeCompare(i.displayName, void 0, { numeric: !0, sensitivity: \"base\" }));\n};\nexport {\n Ie as Column,\n Z as DefaultType,\n ye as File,\n Dt as FileAction,\n S as FileType,\n _e as Folder,\n rr as Header,\n Te as Navigation,\n D as Node,\n Q as NodeStatus,\n N as Permission,\n hr as View,\n pr as addNewFileMenuEntry,\n dr as davGetClient,\n or as davGetDefaultPropfind,\n Ee as davGetFavoritesReport,\n ur as davGetRecentSearch,\n be as davParsePermissions,\n te as davRemoteURL,\n ve as davResultToNode,\n ee as davRootPath,\n Y as defaultDavNamespaces,\n j as defaultDavProperties,\n Jt as formatFileSize,\n L as getDavNameSpaces,\n V as getDavProperties,\n ar as getFavoriteNodes,\n tr as getFileActions,\n ir as getFileListHeaders,\n lr as getNavigation,\n wr as getNewFileMenuEntries,\n Qt as parseFileSize,\n sr as registerDavProperty,\n er as registerFileAction,\n nr as registerFileListHeaders,\n gr as removeNewFileMenuEntry\n};\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \"-\" + chunkId + \".js?v=\" + {\"701\":\"938f587df37e92d2cf8c\",\"2250\":\"62d7d19e457ac44372ef\",\"3240\":\"29c327d1e4e42959b82f\"}[chunkId] + \"\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 9837;","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && !scriptUrl) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t9837: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [7874], () => (__webpack_require__(86172)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","getLoggerBuilder","setApp","detectUser","build","action","FileAction","id","displayName","nodes","view","t","iconSvgInline","enabled","length","map","node","permissions","every","permission","Permission","DELETE","exec","axios","delete","encodedSource","emit","error","logger","source","execBatch","dir","Promise","all","this","order","triggerDownload","url","hiddenElement","document","createElement","download","href","click","downloadNodes","secret","Math","random","toString","substring","generateUrl","files","JSON","stringify","basename","some","type","FileType","Folder","root","startsWith","READ","async","Array","fill","UPDATE","path","link","generateOcsUrl","result","post","uid","getCurrentUser","window","location","host","encodePath","data","ocs","token","showError","openLocalClient","shouldFavorite","attributes","favorite","favoriteNode","willFavorite","tags","OC","TAG_FAVORITE","dirname","Vue","StarSvg","NONE","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","Axios","AxiosError","CanceledError","isCancel","CancelToken","VERSION","Cancel","isAxiosError","spread","toFormData","AxiosHeaders","HttpStatusCode","formToJSON","getAdapter","mergeConfig","name","emits","props","title","String","fillColor","default","size","Number","_vm","_c","_self","_b","staticClass","attrs","on","$event","$emit","$attrs","_v","_s","_e","queue","getQueue","PQueue","concurrency","MoveCopyAction","canMove","reduce","min","ALL","canCopy","parse","attribute","scope","key","canDownload","getActionForNodes","MOVE_OR_COPY","MOVE","COPY","handleCopyMoveNodeTo","destination","method","overwrite","arguments","undefined","Error","relativePath","join","destinationUrl","generateRemoteUrl","debug","NodeStatus","LOADING","add","headers","Destination","encodeURI","Overwrite","response","status","message","FolderMoveSvg","filePicker","getFilePickerBuilder","allowDirectories","setFilter","n","CREATE","fileid","setMimeTypeFilter","setMultiSelect","startAt","resolve","reject","setButtonFactory","buttons","target","push","label","icon","CopyIcon","callback","MoveIcon","pick","catch","openFilePickerForAction","FolderSvg","isDavRessource","OCP","Files","Router","goToRoute","DefaultType","HIDDEN","InformationSvg","OCA","Sidebar","open","File","getUniqueName","names","newName","i","includes","ext","extname","entry","context","handler","content","contentNames","encodeURIComponent","parseInt","createNewFolder","folder","mtime","Date","owner","showSuccess","rootPath","defaultRootUrl","getClient","rootUrl","client","createClient","requesttoken","getRequestToken","getPatcher","patch","request","hashCode","str","split","a","b","charCodeAt","resultToNode","davParsePermissions","filename","nodeData","lastmod","mime","hasPreview","failed","reportPayload","getDavNameSpaces","getDavProperties","getContents","propfindPayload","davGetDefaultPropfind","rootResponse","stat","details","contentsResponse","getDirectoryContents","includeSelf","contents","filter","generateFolderView","index","View","generateIdFromPath","params","parent","columns","lastTwoWeeksTimestamp","round","now","searchPayload","inheritAttrs","required","checked","Boolean","previewUrl","ratio","failedPreview","computed","nameWithoutExt","indexOf","slice","realPreviewUrl","mimeIcon","getElementById","value","pathSections","forEach","section","encodeFilePath","MimeType","getIconUrl","methods","onCheck","onFailure","domProps","class","extend","components","NcEmptyContent","NcModal","TemplatePreview","Object","loading","opened","provider","extension","emptyTemplate","mimetypes","selectedTemplate","templates","find","template","style","width","margin","border","fetchedProvider","get","getTemplates","app","onSubmit","close","currentDirectory","URL","searchParams","warn","fileInfo","filePath","templatePath","templateType","createFromTemplate","normalize","openfile","_setupProxy","preventDefault","stopPropagation","apply","_l","mixin","TemplatePickerRoot","body","appendChild","loadState","templatesPath","TemplatePicker","TemplatePickerView","propsData","$mount","addNewFileMenuEntry","initTemplatesFolder","removeNewFileMenuEntry","iconClass","directory","copySystemTemplates","template_path","registerFileAction","deleteAction","downloadAction","editLocallyAction","favoriteAction","moveOrCopyAction","openFolderAction","openInFilesAction","renameAction","sidebarAction","viewInFolderAction","newFolderEntry","favoriteFolders","favoriteFoldersViews","Navigation","getNavigation","register","caption","emptyTitle","emptyCaption","subscribe","addPathToFavorites","removePathFromFavorites","updateAndSortViews","sort","localeCompare","getLanguage","ignorePunctuation","findIndex","splice","remove","registerFavoritesView","controller","AbortController","CancelablePromise","onCancel","abort","signal","defaultSortKey","deep","navigator","addEventListener","noRewrite","registration","serviceWorker","registerDavProperty","nc","_typeof","Symbol","iterator","obj","constructor","prototype","globalThis","self","_exports","_setPrototypeOf","o","p","setPrototypeOf","bind","__proto__","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","valueOf","call","e","_isNativeReflectConstruct","Super","_getPrototypeOf","NewTarget","TypeError","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","getPrototypeOf","_createForOfIteratorHelper","allowArrayLike","it","isArray","minLen","_arrayLikeToArray","from","test","_unsupportedIterableToArray","F","s","done","f","err","normalCompletion","didErr","step","next","_e2","return","arr","len","arr2","_classCallCheck","instance","Constructor","_defineProperties","descriptor","enumerable","configurable","writable","defineProperty","_createClass","protoProps","staticProps","_defineProperty","_classPrivateFieldInitSpec","privateMap","privateCollection","has","_checkPrivateRedeclaration","set","_classPrivateFieldGet","receiver","_classApplyDescriptorGet","_classExtractFieldDescriptor","_classPrivateFieldSet","_classApplyDescriptorSet","cancelable","isCancelablePromise","toStringTag","_internals","WeakMap","_promise","CancelablePromiseInternal","_ref","_ref$executor","executor","_ref$internals","internals","isCanceled","onCancelList","_ref$promise","promise","cancel","onfulfilled","onrejected","makeCancelable","then","createCallback","onfinally","runWhenCanceled","_this","finally","callbacks","_step","_iterator","console","_CancelablePromiseInt","subClass","superClass","create","_inherits","_super","iterable","makeAllCancelable","allSettled","any","race","reason","_default","onResult","arg","_step2","_iterator2","resolvable","___CSS_LOADER_URL_IMPORT_0___","___CSS_LOADER_URL_IMPORT_1___","___CSS_LOADER_EXPORT___","___CSS_LOADER_URL_REPLACEMENT_0___","___CSS_LOADER_URL_REPLACEMENT_1___","module","m","setUid","Ne","_entries","registerEntry","validateEntry","unregisterEntry","r","getEntryIndex","entries","getEntries","_nc_newfilemenu","C","P","Jt","floor","log","d","pow","toFixed","parseFloat","toLocaleString","Z","DEFAULT","Dt","_action","validateAction","inline","renderInline","values","er","_nc_fileactions","N","SHARE","j","Y","oc","sr","_nc_dav_properties","_nc_dav_namespaces","prop","namespaces","V","L","keys","or","ur","be","S","J","match","X","crtime","Q","NEW","FAILED","LOCKED","D","_data","_attributes","_knownDavService","updateMtime","deleteProperty","replace","origin","pathname","pop","move","rename","ye","super","ee","te","dr","ar","ve","getcontentlength","Te","_views","_currentView","views","setActive","active","lr","_nc_navigation","Ie","_column","Ae","render","summary","R","O","RegExp","isExist","u","isEmptyObject","merge","l","c","getValue","isName","getAllMatches","startIndex","lastIndex","g","nameRegexp","M","Oe","allowBooleanAttributes","unpairedTags","U","G","substr","w","z","validate","assign","trim","Se","xe","H","code","msg","line","tagClosed","tagName","tagStartPos","col","Ve","Ce","Pe","$e","v","Le","hasOwnProperty","Fe","B","re","preserveOrder","attributeNamePrefix","attributesGroupName","textNodeName","ignoreAttributes","removeNSPrefix","parseTagValue","parseAttributeValue","trimValues","cdataPropName","numberParseOptions","hex","leadingZeros","eNotation","tagValueProcessor","attributeValueProcessor","stopNodes","alwaysCreateTextNode","commentPropName","processEntities","htmlEntities","ignoreDeclaration","ignorePiTags","transformTagName","transformAttributeName","updateTag","buildOptions","defaultOptions","ke","Xe","Ue","Ge","ze","He","Ke","We","je","Ye","Je","decimalPoint","k","T","tagname","child","addChild","tt","entityName","val","regx","entities","rt","skipLike","De","search","lastEntities","regex","st","replaceEntitiesValue","$","ot","charAt","ut","dt","resolveNameSpace","at","y","saveTextToParentTag","lastIndexOf","tagsNodeStack","x","tagExp","attrExpPresent","buildAttributesMap","closeIndex","docTypeEntities","parseTextData","rawTagName","isItStopNode","h","E","readStopNodeData","tagContent","_","lt","ft","ampEntity","ct","ht","pt","gt","ne","ie","Nt","bt","Et","prettify","yt","_t","currentNode","apos","quot","space","cent","pound","yen","euro","copyright","reg","inr","addExternalEntities","parseXml","vt","Tt","se","Pt","xt","oe","K","indentBy","suppressUnpairedNode","suppressEmptyNode","endsWith","suppressBooleanAttributes","Ft","format","Vt","oneListGroup","isAttribute","attrPrefixLen","Rt","processTextOrObjNode","Lt","indentate","St","tagEndChar","newLine","j2x","buildTextValNode","attrStr","buildObjectNode","repeat","arrayNodeName","buildAttrPairStr","closeTag","W","XMLParser","externalEntities","addEntity","XMLValidator","XMLBuilder","hr","_view","Ut","emptyView","sticky","expanded","Xt","pr","gr","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","loaded","__webpack_modules__","chunkIds","fn","priority","notFulfilled","Infinity","fulfilled","getter","__esModule","definition","chunkId","promises","Function","script","needAttach","scripts","getElementsByTagName","getAttribute","charset","timeout","setAttribute","src","onScriptComplete","prev","event","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","setTimeout","head","nmd","paths","children","scriptUrl","importScripts","currentScript","baseURI","installedChunks","installedChunkData","errorType","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}
\ No newline at end of file +{"version":3,"file":"files-init.js?v=8bdae16aebe2cd7ab9d2","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/apps/files/src/logger.js","webpack:///nextcloud/apps/files/src/actions/deleteAction.ts","webpack:///nextcloud/apps/files/src/actions/downloadAction.ts","webpack:///nextcloud/apps/files/src/actions/editLocallyAction.ts","webpack:///nextcloud/apps/files/src/actions/favoriteAction.ts","webpack://nextcloud/./node_modules/@nextcloud/dialogs/dist/style.css?d87c","webpack:///nextcloud/node_modules/axios/index.js","webpack:///nextcloud/node_modules/vue-material-design-icons/FileMultiple.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/FileMultiple.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/FileMultiple.vue?6e9d","webpack:///nextcloud/node_modules/vue-material-design-icons/FileMultiple.vue?vue&type=template&id=065722db","webpack:///nextcloud/node_modules/vue-material-design-icons/FolderMove.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/FolderMove.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/FolderMove.vue?50e5","webpack:///nextcloud/node_modules/vue-material-design-icons/FolderMove.vue?vue&type=template&id=1f36751d","webpack:///nextcloud/apps/files/src/actions/moveOrCopyActionUtils.ts","webpack:///nextcloud/apps/files/src/actions/moveOrCopyAction.ts","webpack:///nextcloud/apps/files/src/actions/openFolderAction.ts","webpack:///nextcloud/apps/files/src/actions/openInFilesAction.ts","webpack:///nextcloud/apps/files/src/actions/renameAction.ts","webpack:///nextcloud/apps/files/src/actions/sidebarAction.ts","webpack:///nextcloud/apps/files/src/actions/viewInFolderAction.ts","webpack:///nextcloud/apps/files/src/newMenu/newFolder.ts","webpack:///nextcloud/node_modules/@buttercup/fetch/dist/index.browser.js","webpack:///nextcloud/node_modules/hot-patcher/dist/patcher.js","webpack:///nextcloud/node_modules/hot-patcher/dist/functions.js","webpack:///nextcloud/node_modules/webdav/dist/node/compat/patcher.js","webpack:///nextcloud/node_modules/webdav/dist/node/auth/digest.js","webpack:///nextcloud/node_modules/webdav/dist/node/tools/crypto.js","webpack:///nextcloud/node_modules/webdav/dist/node/tools/merge.js","webpack:///nextcloud/node_modules/webdav/dist/node/tools/headers.js","webpack:///nextcloud/node_modules/webdav/dist/node/compat/arrayBuffer.js","webpack:///nextcloud/node_modules/webdav/dist/node/request.js","webpack:///nextcloud/node_modules/webdav/dist/node/tools/body.js","webpack:///nextcloud/node_modules/webdav/dist/node/compat/buffer.js","webpack:///nextcloud/apps/files/src/services/WebdavClient.ts","webpack:///nextcloud/apps/files/src/utils/hashUtils.ts","webpack:///nextcloud/apps/files/src/services/Files.ts","webpack:///nextcloud/apps/files/src/services/Favorites.ts","webpack:///nextcloud/apps/files/src/views/favorites.ts","webpack:///nextcloud/apps/files/src/services/Recent.ts","webpack:///nextcloud/apps/files/src/views/TemplatePicker.vue","webpack:///nextcloud/apps/files/src/utils/fileUtils.ts","webpack:///nextcloud/apps/files/src/components/TemplatePreview.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files/src/components/TemplatePreview.vue","webpack:///nextcloud/apps/files/src/utils/davUtils.js","webpack://nextcloud/./apps/files/src/components/TemplatePreview.vue?af18","webpack://nextcloud/./apps/files/src/components/TemplatePreview.vue?81db","webpack://nextcloud/./apps/files/src/components/TemplatePreview.vue?c414","webpack:///nextcloud/apps/files/src/views/TemplatePicker.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/files/src/services/Templates.js","webpack://nextcloud/./apps/files/src/views/TemplatePicker.vue?0681","webpack://nextcloud/./apps/files/src/views/TemplatePicker.vue?afd8","webpack:///nextcloud/apps/files/src/init-templates.ts","webpack:///nextcloud/apps/files/src/init.ts","webpack:///nextcloud/apps/files/src/views/files.ts","webpack:///nextcloud/apps/files/src/views/recent.ts","webpack:///nextcloud/apps/files/src/services/ServiceWorker.js","webpack:///nextcloud/apps/files/src/services/LivePhotos.ts","webpack:///nextcloud/node_modules/builtin-status-codes/browser.js","webpack:///nextcloud/node_modules/cancelable-promise/umd/CancelablePromise.js","webpack:///nextcloud/node_modules/@nextcloud/dialogs/dist/style.css","webpack:///nextcloud/apps/files/src/components/TemplatePreview.vue?vue&type=style&index=0&id=0859a92c&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/files/src/views/TemplatePicker.vue?vue&type=style&index=0&id=48121b39&prod&lang=scss&scoped=true","webpack:///nextcloud/node_modules/events/events.js","webpack:///nextcloud/node_modules/https-browserify/index.js","webpack:///nextcloud/node_modules/readable-stream/errors-browser.js","webpack:///nextcloud/node_modules/readable-stream/lib/_stream_duplex.js","webpack:///nextcloud/node_modules/readable-stream/lib/_stream_passthrough.js","webpack:///nextcloud/node_modules/readable-stream/lib/_stream_readable.js","webpack:///nextcloud/node_modules/readable-stream/lib/_stream_transform.js","webpack:///nextcloud/node_modules/readable-stream/lib/_stream_writable.js","webpack:///nextcloud/node_modules/readable-stream/lib/internal/streams/async_iterator.js","webpack:///nextcloud/node_modules/readable-stream/lib/internal/streams/buffer_list.js","webpack:///nextcloud/node_modules/readable-stream/lib/internal/streams/destroy.js","webpack:///nextcloud/node_modules/readable-stream/lib/internal/streams/end-of-stream.js","webpack:///nextcloud/node_modules/readable-stream/lib/internal/streams/from-browser.js","webpack:///nextcloud/node_modules/readable-stream/lib/internal/streams/pipeline.js","webpack:///nextcloud/node_modules/readable-stream/lib/internal/streams/state.js","webpack:///nextcloud/node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack:///nextcloud/node_modules/readable-stream/readable-browser.js","webpack:///nextcloud/node_modules/safe-buffer/index.js","webpack:///nextcloud/node_modules/stream-browserify/index.js","webpack:///nextcloud/node_modules/stream-http/index.js","webpack:///nextcloud/node_modules/stream-http/lib/capability.js","webpack:///nextcloud/node_modules/stream-http/lib/request.js","webpack:///nextcloud/node_modules/stream-http/lib/response.js","webpack:///nextcloud/node_modules/string_decoder/lib/string_decoder.js","webpack:///nextcloud/node_modules/util-deprecate/browser.js","webpack:///nextcloud/node_modules/xtend/immutable.js","webpack:///nextcloud/node_modules/@nextcloud/files/dist/index.mjs","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/publicPath","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","/**\n * @copyright Copyright (c) 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nexport default getLoggerBuilder()\n\t.setApp('files')\n\t.detectUser()\n\t.build()\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { emit } from '@nextcloud/event-bus';\nimport { Permission, Node, View, FileAction } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport axios from '@nextcloud/axios';\nimport TrashCanSvg from '@mdi/svg/svg/trash-can.svg?raw';\nimport logger from '../logger.js';\nexport const action = new FileAction({\n id: 'delete',\n displayName(nodes, view) {\n return view.id === 'trashbin'\n ? t('files', 'Delete permanently')\n : t('files', 'Delete');\n },\n iconSvgInline: () => TrashCanSvg,\n enabled(nodes) {\n return nodes.length > 0 && nodes\n .map(node => node.permissions)\n .every(permission => (permission & Permission.DELETE) !== 0);\n },\n async exec(node) {\n try {\n await axios.delete(node.encodedSource);\n // Let's delete even if it's moved to the trashbin\n // since it has been removed from the current view\n // and changing the view will trigger a reload anyway.\n emit('files:node:deleted', node);\n return true;\n }\n catch (error) {\n logger.error('Error while deleting a file', { error, source: node.source, node });\n return false;\n }\n },\n async execBatch(nodes, view, dir) {\n return Promise.all(nodes.map(node => this.exec(node, view, dir)));\n },\n order: 100,\n});\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { generateUrl } from '@nextcloud/router';\nimport { FileAction, Permission, Node, FileType, View } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport ArrowDownSvg from '@mdi/svg/svg/arrow-down.svg?raw';\nconst triggerDownload = function (url) {\n const hiddenElement = document.createElement('a');\n hiddenElement.download = '';\n hiddenElement.href = url;\n hiddenElement.click();\n};\nconst downloadNodes = function (dir, nodes) {\n const secret = Math.random().toString(36).substring(2);\n const url = generateUrl('/apps/files/ajax/download.php?dir={dir}&files={files}&downloadStartSecret={secret}', {\n dir,\n secret,\n files: JSON.stringify(nodes.map(node => node.basename)),\n });\n triggerDownload(url);\n};\nexport const action = new FileAction({\n id: 'download',\n displayName: () => t('files', 'Download'),\n iconSvgInline: () => ArrowDownSvg,\n enabled(nodes) {\n if (nodes.length === 0) {\n return false;\n }\n // We can download direct dav files. But if we have\n // some folders, we need to use the /apps/files/ajax/download.php\n // endpoint, which only supports user root folder.\n if (nodes.some(node => node.type === FileType.Folder)\n && nodes.some(node => !node.root?.startsWith('/files'))) {\n return false;\n }\n return nodes\n .map(node => node.permissions)\n .every(permission => (permission & Permission.READ) !== 0);\n },\n async exec(node, view, dir) {\n if (node.type === FileType.Folder) {\n downloadNodes(dir, [node]);\n return null;\n }\n triggerDownload(node.source);\n return null;\n },\n async execBatch(nodes, view, dir) {\n if (nodes.length === 1) {\n this.exec(nodes[0], view, dir);\n return [null];\n }\n downloadNodes(dir, nodes);\n return new Array(nodes.length).fill(null);\n },\n order: 30,\n});\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { encodePath } from '@nextcloud/paths';\nimport { generateOcsUrl } from '@nextcloud/router';\nimport { getCurrentUser } from '@nextcloud/auth';\nimport { FileAction, Permission } from '@nextcloud/files';\nimport { showError } from '@nextcloud/dialogs';\nimport { translate as t } from '@nextcloud/l10n';\nimport axios from '@nextcloud/axios';\nimport LaptopSvg from '@mdi/svg/svg/laptop.svg?raw';\nconst openLocalClient = async function (path) {\n const link = generateOcsUrl('apps/files/api/v1') + '/openlocaleditor?format=json';\n try {\n const result = await axios.post(link, { path });\n const uid = getCurrentUser()?.uid;\n let url = `nc://open/${uid}@` + window.location.host + encodePath(path);\n url += '?token=' + result.data.ocs.data.token;\n window.location.href = url;\n }\n catch (error) {\n showError(t('files', 'Failed to redirect to client'));\n }\n};\nexport const action = new FileAction({\n id: 'edit-locally',\n displayName: () => t('files', 'Edit locally'),\n iconSvgInline: () => LaptopSvg,\n // Only works on single files\n enabled(nodes) {\n // Only works on single node\n if (nodes.length !== 1) {\n return false;\n }\n return (nodes[0].permissions & Permission.UPDATE) !== 0;\n },\n async exec(node) {\n openLocalClient(node.path);\n return null;\n },\n order: 25,\n});\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { emit } from '@nextcloud/event-bus';\nimport { generateUrl } from '@nextcloud/router';\nimport { Permission, View, FileAction } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport axios from '@nextcloud/axios';\nimport Vue from 'vue';\nimport StarOutlineSvg from '@mdi/svg/svg/star-outline.svg?raw';\nimport StarSvg from '@mdi/svg/svg/star.svg?raw';\nimport logger from '../logger.js';\nimport { encodePath } from '@nextcloud/paths';\n// If any of the nodes is not favorited, we display the favorite action.\nconst shouldFavorite = (nodes) => {\n return nodes.some(node => node.attributes.favorite !== 1);\n};\nexport const favoriteNode = async (node, view, willFavorite) => {\n try {\n // TODO: migrate to webdav tags plugin\n const url = generateUrl('/apps/files/api/v1/files') + encodePath(node.path);\n await axios.post(url, {\n tags: willFavorite\n ? [window.OC.TAG_FAVORITE]\n : [],\n });\n // Let's delete if we are in the favourites view\n // AND if it is removed from the user favorites\n // AND it's in the root of the favorites view\n if (view.id === 'favorites' && !willFavorite && node.dirname === '/') {\n emit('files:node:deleted', node);\n }\n // Update the node webdav attribute\n Vue.set(node.attributes, 'favorite', willFavorite ? 1 : 0);\n // Dispatch event to whoever is interested\n if (willFavorite) {\n emit('files:favorites:added', node);\n }\n else {\n emit('files:favorites:removed', node);\n }\n return true;\n }\n catch (error) {\n const action = willFavorite ? 'adding a file to favourites' : 'removing a file from favourites';\n logger.error('Error while ' + action, { error, source: node.source, node });\n return false;\n }\n};\nexport const action = new FileAction({\n id: 'favorite',\n displayName(nodes) {\n return shouldFavorite(nodes)\n ? t('files', 'Add to favorites')\n : t('files', 'Remove from favorites');\n },\n iconSvgInline: (nodes) => {\n return shouldFavorite(nodes)\n ? StarOutlineSvg\n : StarSvg;\n },\n enabled(nodes) {\n // We can only favorite nodes within files and with permissions\n return !nodes.some(node => !node.root?.startsWith?.('/files'))\n && nodes.every(node => node.permissions !== Permission.NONE);\n },\n async exec(node, view) {\n const willFavorite = shouldFavorite([node]);\n return await favoriteNode(node, view, willFavorite);\n },\n async execBatch(nodes, view) {\n const willFavorite = shouldFavorite(nodes);\n return Promise.all(nodes.map(async (node) => await favoriteNode(node, view, willFavorite)));\n },\n order: -50,\n});\n","\n 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!./style.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../css-loader/dist/cjs.js!./style.css\";\n export default content && content.locals ? content.locals : undefined;\n","import axios from './lib/axios.js';\n\n// This module is intended to unwrap Axios default export as named.\n// Keep top-level export same with static properties\n// so that it can keep same with es module or cjs\nconst {\n Axios,\n AxiosError,\n CanceledError,\n isCancel,\n CancelToken,\n VERSION,\n all,\n Cancel,\n isAxiosError,\n spread,\n toFormData,\n AxiosHeaders,\n HttpStatusCode,\n formToJSON,\n getAdapter,\n mergeConfig\n} = axios;\n\nexport {\n axios as default,\n Axios,\n AxiosError,\n CanceledError,\n isCancel,\n CancelToken,\n VERSION,\n all,\n Cancel,\n isAxiosError,\n spread,\n toFormData,\n AxiosHeaders,\n HttpStatusCode,\n formToJSON,\n getAdapter,\n mergeConfig\n}\n","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"!title\"\n :aria-label=\"title\"\n class=\"material-design-icon file-multiple-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M15,7H20.5L15,1.5V7M8,0H16L22,6V18A2,2 0 0,1 20,20H8C6.89,20 6,19.1 6,18V2A2,2 0 0,1 8,0M4,4V22H20V24H4A2,2 0 0,1 2,22V4H4Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"FileMultipleIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./FileMultiple.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./FileMultiple.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./FileMultiple.vue?vue&type=template&id=065722db\"\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,\"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 }","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"!title\"\n :aria-label=\"title\"\n class=\"material-design-icon folder-move-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M14,18V15H10V11H14V8L19,13M20,6H12L10,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V8C22,6.89 21.1,6 20,6Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"FolderMoveIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./FolderMove.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./FolderMove.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./FolderMove.vue?vue&type=template&id=1f36751d\"\nimport script from \"./FolderMove.vue?vue&type=script&lang=js\"\nexport * from \"./FolderMove.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-move-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 24 24\"}},[_c('path',{attrs:{\"d\":\"M14,18V15H10V11H14V8L19,13M20,6H12L10,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V8C22,6.89 21.1,6 20,6Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport '@nextcloud/dialogs/style.css';\nimport { Permission } from '@nextcloud/files';\nimport PQueue from 'p-queue';\n// This is the processing queue. We only want to allow 3 concurrent requests\nlet queue;\n/**\n * Get the processing queue\n */\nexport const getQueue = () => {\n if (!queue) {\n queue = new PQueue({ concurrency: 3 });\n }\n return queue;\n};\nexport var MoveCopyAction;\n(function (MoveCopyAction) {\n MoveCopyAction[\"MOVE\"] = \"Move\";\n MoveCopyAction[\"COPY\"] = \"Copy\";\n MoveCopyAction[\"MOVE_OR_COPY\"] = \"move-or-copy\";\n})(MoveCopyAction || (MoveCopyAction = {}));\nexport const canMove = (nodes) => {\n const minPermission = nodes.reduce((min, node) => Math.min(min, node.permissions), Permission.ALL);\n return (minPermission & Permission.UPDATE) !== 0;\n};\nexport const canDownload = (nodes) => {\n return nodes.every(node => {\n const shareAttributes = JSON.parse(node.attributes?.['share-attributes'] ?? '[]');\n return !shareAttributes.some(attribute => attribute.scope === 'permissions' && attribute.enabled === false && attribute.key === 'download');\n });\n};\nexport const canCopy = (nodes) => {\n // For now the only restriction is that a shared file\n // cannot be copied if the download is disabled\n return canDownload(nodes);\n};\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport '@nextcloud/dialogs/style.css';\n// eslint-disable-next-line n/no-extraneous-import\nimport { AxiosError } from 'axios';\nimport { basename, join } from 'path';\nimport { emit } from '@nextcloud/event-bus';\nimport { generateRemoteUrl } from '@nextcloud/router';\nimport { getCurrentUser } from '@nextcloud/auth';\nimport { getFilePickerBuilder, showError } from '@nextcloud/dialogs';\nimport { Permission, FileAction, FileType, NodeStatus } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport axios from '@nextcloud/axios';\nimport Vue from 'vue';\nimport CopyIcon from 'vue-material-design-icons/FileMultiple.vue';\nimport FolderMoveSvg from '@mdi/svg/svg/folder-move.svg?raw';\nimport MoveIcon from 'vue-material-design-icons/FolderMove.vue';\nimport { MoveCopyAction, canCopy, canMove, getQueue } from './moveOrCopyActionUtils';\nimport logger from '../logger';\n/**\n * Return the action that is possible for the given nodes\n * @param {Node[]} nodes The nodes to check against\n * @return {MoveCopyAction} The action that is possible for the given nodes\n */\nconst getActionForNodes = (nodes) => {\n if (canMove(nodes)) {\n if (canCopy(nodes)) {\n return MoveCopyAction.MOVE_OR_COPY;\n }\n return MoveCopyAction.MOVE;\n }\n // Assuming we can copy as the enabled checks for copy permissions\n return MoveCopyAction.COPY;\n};\n/**\n * Handle the copy/move of a node to a destination\n * This can be imported and used by other scripts/components on server\n * @param {Node} node The node to copy/move\n * @param {Folder} destination The destination to copy/move the node to\n * @param {MoveCopyAction} method The method to use for the copy/move\n * @param {boolean} overwrite Whether to overwrite the destination if it exists\n * @return {Promise<void>} A promise that resolves when the copy/move is done\n */\nexport const handleCopyMoveNodeTo = async (node, destination, method, overwrite = false) => {\n if (!destination) {\n return;\n }\n if (destination.type !== FileType.Folder) {\n throw new Error(t('files', 'Destination is not a folder'));\n }\n if (node.dirname === destination.path) {\n throw new Error(t('files', 'This file/folder is already in that directory'));\n }\n if (node.path.startsWith(destination.path)) {\n throw new Error(t('files', 'You cannot move a file/folder onto itself or into a subfolder of itself'));\n }\n const relativePath = join(destination.path, node.basename);\n const destinationUrl = generateRemoteUrl(`dav/files/${getCurrentUser()?.uid}${relativePath}`);\n logger.debug(`${method} ${node.basename} to ${destinationUrl}`);\n // Set loading state\n Vue.set(node, 'status', NodeStatus.LOADING);\n const queue = getQueue();\n return await queue.add(async () => {\n try {\n await axios({\n method: method === MoveCopyAction.COPY ? 'COPY' : 'MOVE',\n url: node.encodedSource,\n headers: {\n Destination: encodeURI(destinationUrl),\n Overwrite: overwrite ? undefined : 'F',\n },\n });\n // If we're moving, update the node\n // if we're copying, we don't need to update the node\n // the view will refresh itself\n if (method === MoveCopyAction.MOVE) {\n // Delete the node as it will be fetched again\n // when navigating to the destination folder\n emit('files:node:deleted', node);\n }\n }\n catch (error) {\n if (error instanceof AxiosError) {\n if (error?.response?.status === 412) {\n throw new Error(t('files', 'A file or folder with that name already exists in this folder'));\n }\n else if (error?.response?.status === 423) {\n throw new Error(t('files', 'The files is locked'));\n }\n else if (error?.response?.status === 404) {\n throw new Error(t('files', 'The file does not exist anymore'));\n }\n else if (error.message) {\n throw new Error(error.message);\n }\n }\n throw new Error();\n }\n finally {\n Vue.set(node, 'status', undefined);\n }\n });\n};\n/**\n * Open a file picker for the given action\n * @param {MoveCopyAction} action The action to open the file picker for\n * @param {string} dir The directory to start the file picker in\n * @param {Node} node The node to move/copy\n * @return {Promise<boolean>} A promise that resolves to true if the action was successful\n */\nconst openFilePickerForAction = async (action, dir = '/', node) => {\n const filePicker = getFilePickerBuilder(t('files', 'Chose destination'))\n .allowDirectories(true)\n .setFilter((n) => {\n // We only want to show folders that we can create nodes in\n return (n.permissions & Permission.CREATE) !== 0\n // We don't want to show the current node in the file picker\n && node.fileid !== n.fileid;\n })\n .setMimeTypeFilter([])\n .setMultiSelect(false)\n .startAt(dir);\n return new Promise((resolve, reject) => {\n filePicker.setButtonFactory((nodes, path) => {\n const buttons = [];\n const target = basename(path);\n if (node.dirname === path) {\n // This file/folder is already in that directory\n return buttons;\n }\n if (node.path === path) {\n // You cannot move a file/folder onto itself\n return buttons;\n }\n if (action === MoveCopyAction.COPY || action === MoveCopyAction.MOVE_OR_COPY) {\n buttons.push({\n label: target ? t('files', 'Copy to {target}', { target }) : t('files', 'Copy'),\n type: 'primary',\n icon: CopyIcon,\n async callback(destination) {\n try {\n await handleCopyMoveNodeTo(node, destination[0], MoveCopyAction.COPY);\n resolve(true);\n }\n catch (error) {\n reject(error);\n }\n },\n });\n }\n if (action === MoveCopyAction.MOVE || action === MoveCopyAction.MOVE_OR_COPY) {\n buttons.push({\n label: target ? t('files', 'Move to {target}', { target }) : t('files', 'Move'),\n type: action === MoveCopyAction.MOVE ? 'primary' : 'secondary',\n icon: MoveIcon,\n async callback(destination) {\n try {\n await handleCopyMoveNodeTo(node, destination[0], MoveCopyAction.MOVE);\n resolve(true);\n }\n catch (error) {\n reject(error);\n }\n },\n });\n }\n return buttons;\n });\n const picker = filePicker.build();\n picker.pick().catch(() => {\n reject(new Error(t('files', 'Cancelled move or copy operation')));\n });\n });\n};\nexport const action = new FileAction({\n id: 'move-copy',\n displayName(nodes) {\n switch (getActionForNodes(nodes)) {\n case MoveCopyAction.MOVE:\n return t('files', 'Move');\n case MoveCopyAction.COPY:\n return t('files', 'Copy');\n case MoveCopyAction.MOVE_OR_COPY:\n return t('files', 'Move or copy');\n }\n },\n iconSvgInline: () => FolderMoveSvg,\n enabled(nodes) {\n // We only support moving/copying files within the user folder\n if (!nodes.every(node => node.root?.startsWith('/files/'))) {\n return false;\n }\n return nodes.length > 0 && (canMove(nodes) || canCopy(nodes));\n },\n async exec(node, view, dir) {\n const action = getActionForNodes([node]);\n try {\n await openFilePickerForAction(action, dir, node);\n return true;\n }\n catch (error) {\n if (error instanceof Error && !!error.message) {\n showError(error.message);\n // Silent action as we handle the toast\n return null;\n }\n return false;\n }\n },\n order: 15,\n});\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { join } from 'path';\nimport { Permission, Node, FileType, View, FileAction, DefaultType } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport FolderSvg from '@mdi/svg/svg/folder.svg?raw';\nexport const action = new FileAction({\n id: 'open-folder',\n displayName(files) {\n // Only works on single node\n const displayName = files[0].attributes.displayName || files[0].basename;\n return t('files', 'Open folder {displayName}', { displayName });\n },\n iconSvgInline: () => FolderSvg,\n enabled(nodes) {\n // Only works on single node\n if (nodes.length !== 1) {\n return false;\n }\n const node = nodes[0];\n if (!node.isDavRessource) {\n return false;\n }\n return node.type === FileType.Folder\n && (node.permissions & Permission.READ) !== 0;\n },\n async exec(node, view, dir) {\n if (!node || node.type !== FileType.Folder) {\n return false;\n }\n window.OCP.Files.Router.goToRoute(null, { view: view.id, fileid: node.fileid }, { dir: join(dir, node.basename) });\n return null;\n },\n // Main action if enabled, meaning folders only\n default: DefaultType.HIDDEN,\n order: -100,\n});\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { translate as t } from '@nextcloud/l10n';\nimport { FileType, FileAction, DefaultType } from '@nextcloud/files';\n/**\n * TODO: Move away from a redirect and handle\n * navigation straight out of the recent view\n */\nexport const action = new FileAction({\n id: 'open-in-files-recent',\n displayName: () => t('files', 'Open in Files'),\n iconSvgInline: () => '',\n enabled: (nodes, view) => view.id === 'recent',\n async exec(node) {\n let dir = node.dirname;\n if (node.type === FileType.Folder) {\n dir = dir + '/' + node.basename;\n }\n window.OCP.Files.Router.goToRoute(null, // use default route\n { view: 'files', fileid: node.fileid }, { dir });\n return null;\n },\n // Before openFolderAction\n order: -1000,\n default: DefaultType.HIDDEN,\n});\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { emit } from '@nextcloud/event-bus';\nimport { Permission, FileAction } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport PencilSvg from '@mdi/svg/svg/pencil.svg?raw';\nexport const ACTION_DETAILS = 'details';\nexport const action = new FileAction({\n id: 'rename',\n displayName: () => t('files', 'Rename'),\n iconSvgInline: () => PencilSvg,\n enabled: (nodes) => {\n return nodes.length > 0 && nodes\n .map(node => node.permissions)\n .every(permission => (permission & Permission.UPDATE) !== 0);\n },\n async exec(node) {\n // Renaming is a built-in feature of the files app\n emit('files:node:rename', node);\n return null;\n },\n order: 10,\n});\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { Permission, View, FileAction, FileType } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport InformationSvg from '@mdi/svg/svg/information-variant.svg?raw';\nimport logger from '../logger.js';\nexport const ACTION_DETAILS = 'details';\nexport const action = new FileAction({\n id: ACTION_DETAILS,\n displayName: () => t('files', 'Open details'),\n iconSvgInline: () => InformationSvg,\n // Sidebar currently supports user folder only, /files/USER\n enabled: (nodes) => {\n // Only works on single node\n if (nodes.length !== 1) {\n return false;\n }\n if (!nodes[0]) {\n return false;\n }\n // Only work if the sidebar is available\n if (!window?.OCA?.Files?.Sidebar) {\n return false;\n }\n return (nodes[0].root?.startsWith('/files/') && nodes[0].permissions !== Permission.NONE) ?? false;\n },\n async exec(node, view, dir) {\n try {\n // TODO: migrate Sidebar to use a Node instead\n await window.OCA.Files.Sidebar.open(node.path);\n // Silently update current fileid\n window.OCP.Files.Router.goToRoute(null, { view: view.id, fileid: node.fileid }, { dir }, true);\n return null;\n }\n catch (error) {\n logger.error('Error while opening sidebar', { error });\n return false;\n }\n },\n order: -50,\n});\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { Node, FileType, Permission, View, FileAction } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport FolderMoveSvg from '@mdi/svg/svg/folder-move.svg?raw';\nexport const action = new FileAction({\n id: 'view-in-folder',\n displayName() {\n return t('files', 'View in folder');\n },\n iconSvgInline: () => FolderMoveSvg,\n enabled(nodes) {\n // Only works on single node\n if (nodes.length !== 1) {\n return false;\n }\n const node = nodes[0];\n if (!node.isDavRessource) {\n return false;\n }\n if (node.permissions === Permission.NONE) {\n return false;\n }\n return node.type === FileType.File;\n },\n async exec(node, view, dir) {\n if (!node || node.type !== FileType.File) {\n return false;\n }\n window.OCP.Files.Router.goToRoute(null, { view: 'files', fileid: node.fileid }, { dir: node.dirname });\n return null;\n },\n order: 80,\n});\n","import { basename, extname } from 'path';\nimport { emit } from '@nextcloud/event-bus';\nimport { getCurrentUser } from '@nextcloud/auth';\nimport { Permission, Folder } from '@nextcloud/files';\nimport { showSuccess } from '@nextcloud/dialogs';\nimport { translate as t } from '@nextcloud/l10n';\nimport axios from '@nextcloud/axios';\nimport FolderPlusSvg from '@mdi/svg/svg/folder-plus.svg?raw';\nimport logger from '../logger';\nconst createNewFolder = async (root, name) => {\n const source = root.source + '/' + name;\n const encodedSource = root.encodedSource + '/' + encodeURIComponent(name);\n const response = await axios({\n method: 'MKCOL',\n url: encodedSource,\n headers: {\n Overwrite: 'F',\n },\n });\n return {\n fileid: parseInt(response.headers['oc-fileid']),\n source,\n };\n};\n// TODO: move to @nextcloud/files\nexport const getUniqueName = (name, names) => {\n let newName = name;\n let i = 1;\n while (names.includes(newName)) {\n const ext = extname(name);\n newName = `${basename(name, ext)} (${i++})${ext}`;\n }\n return newName;\n};\nexport const entry = {\n id: 'newFolder',\n displayName: t('files', 'New folder'),\n enabled: (context) => (context.permissions & Permission.CREATE) !== 0,\n iconSvgInline: FolderPlusSvg,\n order: 0,\n async handler(context, content) {\n const contentNames = content.map((node) => node.basename);\n const name = getUniqueName(t('files', 'New folder'), contentNames);\n const { fileid, source } = await createNewFolder(context, name);\n // Create the folder in the store\n const folder = new Folder({\n source,\n id: fileid,\n mtime: new Date(),\n owner: getCurrentUser()?.uid || null,\n permissions: Permission.ALL,\n root: context?.root || '/files/' + getCurrentUser()?.uid,\n });\n showSuccess(t('files', 'Created new folder \"{name}\"', { name: basename(source) }));\n logger.debug('Created new folder', { folder, source });\n emit('files:node:created', folder);\n emit('files:node:rename', folder);\n },\n};\n","const inWebWorker = typeof WorkerGlobalScope !== \"undefined\" &&\n self instanceof WorkerGlobalScope;\nconst root = inWebWorker\n ? self\n : typeof window !== \"undefined\"\n ? window\n : globalThis;\nexport const fetch = root.fetch.bind(root);\nexport const Headers = root.Headers;\nexport const Request = root.Request;\nexport const Response = root.Response;\n","import { sequence } from \"./functions.js\";\nconst HOT_PATCHER_TYPE = \"@@HOTPATCHER\";\nconst NOOP = () => { };\nfunction createNewItem(method) {\n return {\n original: method,\n methods: [method],\n final: false\n };\n}\n/**\n * Hot patching manager class\n */\nexport class HotPatcher {\n constructor() {\n this._configuration = {\n registry: {},\n getEmptyAction: \"null\"\n };\n this.__type__ = HOT_PATCHER_TYPE;\n }\n /**\n * Configuration object reference\n * @readonly\n */\n get configuration() {\n return this._configuration;\n }\n /**\n * The action to take when a non-set method is requested\n * Possible values: null/throw\n */\n get getEmptyAction() {\n return this.configuration.getEmptyAction;\n }\n set getEmptyAction(newAction) {\n this.configuration.getEmptyAction = newAction;\n }\n /**\n * Control another hot-patcher instance\n * Force the remote instance to use patched methods from calling instance\n * @param target The target instance to control\n * @param allowTargetOverrides Allow the target to override patched methods on\n * the controller (default is false)\n * @returns Returns self\n * @throws {Error} Throws if the target is invalid\n */\n control(target, allowTargetOverrides = false) {\n if (!target || target.__type__ !== HOT_PATCHER_TYPE) {\n throw new Error(\"Failed taking control of target HotPatcher instance: Invalid type or object\");\n }\n Object.keys(target.configuration.registry).forEach(foreignKey => {\n if (this.configuration.registry.hasOwnProperty(foreignKey)) {\n if (allowTargetOverrides) {\n this.configuration.registry[foreignKey] = Object.assign({}, target.configuration.registry[foreignKey]);\n }\n }\n else {\n this.configuration.registry[foreignKey] = Object.assign({}, target.configuration.registry[foreignKey]);\n }\n });\n target._configuration = this.configuration;\n return this;\n }\n /**\n * Execute a patched method\n * @param key The method key\n * @param args Arguments to pass to the method (optional)\n * @see HotPatcher#get\n * @returns The output of the called method\n */\n execute(key, ...args) {\n const method = this.get(key) || NOOP;\n return method(...args);\n }\n /**\n * Get a method for a key\n * @param key The method key\n * @returns Returns the requested function or null if the function\n * does not exist and the host is configured to return null (and not throw)\n * @throws {Error} Throws if the configuration specifies to throw and the method\n * does not exist\n * @throws {Error} Throws if the `getEmptyAction` value is invalid\n */\n get(key) {\n const item = this.configuration.registry[key];\n if (!item) {\n switch (this.getEmptyAction) {\n case \"null\":\n return null;\n case \"throw\":\n throw new Error(`Failed handling method request: No method provided for override: ${key}`);\n default:\n throw new Error(`Failed handling request which resulted in an empty method: Invalid empty-action specified: ${this.getEmptyAction}`);\n }\n }\n return sequence(...item.methods);\n }\n /**\n * Check if a method has been patched\n * @param key The function key\n * @returns True if already patched\n */\n isPatched(key) {\n return !!this.configuration.registry[key];\n }\n /**\n * Patch a method name\n * @param key The method key to patch\n * @param method The function to set\n * @param opts Patch options\n * @returns Returns self\n */\n patch(key, method, opts = {}) {\n const { chain = false } = opts;\n if (this.configuration.registry[key] && this.configuration.registry[key].final) {\n throw new Error(`Failed patching '${key}': Method marked as being final`);\n }\n if (typeof method !== \"function\") {\n throw new Error(`Failed patching '${key}': Provided method is not a function`);\n }\n if (chain) {\n // Add new method to the chain\n if (!this.configuration.registry[key]) {\n // New key, create item\n this.configuration.registry[key] = createNewItem(method);\n }\n else {\n // Existing, push the method\n this.configuration.registry[key].methods.push(method);\n }\n }\n else {\n // Replace the original\n if (this.isPatched(key)) {\n const { original } = this.configuration.registry[key];\n this.configuration.registry[key] = Object.assign(createNewItem(method), {\n original\n });\n }\n else {\n this.configuration.registry[key] = createNewItem(method);\n }\n }\n return this;\n }\n /**\n * Patch a method inline, execute it and return the value\n * Used for patching contents of functions. This method will not apply a patched\n * function if it has already been patched, allowing for external overrides to\n * function. It also means that the function is cached so that it is not\n * instantiated every time the outer function is invoked.\n * @param key The function key to use\n * @param method The function to patch (once, only if not patched)\n * @param args Arguments to pass to the function\n * @returns The output of the patched function\n * @example\n * function mySpecialFunction(a, b) {\n * return hotPatcher.patchInline(\"func\", (a, b) => {\n * return a + b;\n * }, a, b);\n * }\n */\n patchInline(key, method, ...args) {\n if (!this.isPatched(key)) {\n this.patch(key, method);\n }\n return this.execute(key, ...args);\n }\n /**\n * Patch a method (or methods) in sequential-mode\n * See `patch()` with the option `chain: true`\n * @see patch\n * @param key The key to patch\n * @param methods The methods to patch\n * @returns Returns self\n */\n plugin(key, ...methods) {\n methods.forEach(method => {\n this.patch(key, method, { chain: true });\n });\n return this;\n }\n /**\n * Restore a patched method if it has been overridden\n * @param key The method key\n * @returns Returns self\n */\n restore(key) {\n if (!this.isPatched(key)) {\n throw new Error(`Failed restoring method: No method present for key: ${key}`);\n }\n else if (typeof this.configuration.registry[key].original !== \"function\") {\n throw new Error(`Failed restoring method: Original method not found or of invalid type for key: ${key}`);\n }\n this.configuration.registry[key].methods = [this.configuration.registry[key].original];\n return this;\n }\n /**\n * Set a method as being final\n * This sets a method as having been finally overridden. Attempts at overriding\n * again will fail with an error.\n * @param key The key to make final\n * @returns Returns self\n */\n setFinal(key) {\n if (!this.configuration.registry.hasOwnProperty(key)) {\n throw new Error(`Failed marking '${key}' as final: No method found for key`);\n }\n this.configuration.registry[key].final = true;\n return this;\n }\n}\n","export function sequence(...methods) {\n if (methods.length === 0) {\n throw new Error(\"Failed creating sequence: No functions provided\");\n }\n return function __executeSequence(...args) {\n let result = args;\n const _this = this;\n while (methods.length > 0) {\n const method = methods.shift();\n result = [method.apply(_this, result)];\n }\n return result[0];\n };\n}\n","import { HotPatcher } from \"hot-patcher\";\nlet __patcher = null;\nexport function getPatcher() {\n if (!__patcher) {\n __patcher = new HotPatcher();\n }\n return __patcher;\n}\n","import md5 from \"md5\";\nimport { ha1Compute } from \"../tools/crypto.js\";\nconst NONCE_CHARS = \"abcdef0123456789\";\nconst NONCE_SIZE = 32;\nexport function createDigestContext(username, password, ha1) {\n return { username, password, ha1, nc: 0, algorithm: \"md5\", hasDigestAuth: false };\n}\nexport function generateDigestAuthHeader(options, digest) {\n const url = options.url.replace(\"//\", \"\");\n const uri = url.indexOf(\"/\") == -1 ? \"/\" : url.slice(url.indexOf(\"/\"));\n const method = options.method ? options.method.toUpperCase() : \"GET\";\n const qop = /(^|,)\\s*auth\\s*($|,)/.test(digest.qop) ? \"auth\" : false;\n const ncString = `00000000${digest.nc}`.slice(-8);\n const ha1 = ha1Compute(digest.algorithm, digest.username, digest.realm, digest.password, digest.nonce, digest.cnonce, digest.ha1);\n const ha2 = md5(`${method}:${uri}`);\n const digestResponse = qop\n ? md5(`${ha1}:${digest.nonce}:${ncString}:${digest.cnonce}:${qop}:${ha2}`)\n : md5(`${ha1}:${digest.nonce}:${ha2}`);\n const authValues = {\n username: digest.username,\n realm: digest.realm,\n nonce: digest.nonce,\n uri,\n qop,\n response: digestResponse,\n nc: ncString,\n cnonce: digest.cnonce,\n algorithm: digest.algorithm,\n opaque: digest.opaque\n };\n const authHeader = [];\n for (const k in authValues) {\n if (authValues[k]) {\n if (k === \"qop\" || k === \"nc\" || k === \"algorithm\") {\n authHeader.push(`${k}=${authValues[k]}`);\n }\n else {\n authHeader.push(`${k}=\"${authValues[k]}\"`);\n }\n }\n }\n return `Digest ${authHeader.join(\", \")}`;\n}\nfunction makeNonce() {\n let uid = \"\";\n for (let i = 0; i < NONCE_SIZE; ++i) {\n uid = `${uid}${NONCE_CHARS[Math.floor(Math.random() * NONCE_CHARS.length)]}`;\n }\n return uid;\n}\nexport function parseDigestAuth(response, _digest) {\n const authHeader = (response.headers && response.headers.get(\"www-authenticate\")) || \"\";\n if (authHeader.split(/\\s/)[0].toLowerCase() !== \"digest\") {\n return false;\n }\n const re = /([a-z0-9_-]+)=(?:\"([^\"]+)\"|([a-z0-9_-]+))/gi;\n for (;;) {\n const match = re.exec(authHeader);\n if (!match) {\n break;\n }\n _digest[match[1]] = match[2] || match[3];\n }\n _digest.nc += 1;\n _digest.cnonce = makeNonce();\n return true;\n}\n","import md5 from \"md5\";\nexport function ha1Compute(algorithm, user, realm, pass, nonce, cnonce, ha1) {\n const ha1Hash = ha1 || md5(`${user}:${realm}:${pass}`);\n if (algorithm && algorithm.toLowerCase() === \"md5-sess\") {\n return md5(`${ha1Hash}:${nonce}:${cnonce}`);\n }\n return ha1Hash;\n}\n","export function cloneShallow(obj) {\n return isPlainObject(obj)\n ? Object.assign({}, obj)\n : Object.setPrototypeOf(Object.assign({}, obj), Object.getPrototypeOf(obj));\n}\nfunction isPlainObject(obj) {\n if (typeof obj !== \"object\" ||\n obj === null ||\n Object.prototype.toString.call(obj) != \"[object Object]\") {\n // Not an object\n return false;\n }\n if (Object.getPrototypeOf(obj) === null) {\n return true;\n }\n let proto = obj;\n // Find the prototype\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n return Object.getPrototypeOf(obj) === proto;\n}\nexport function merge(...args) {\n let output = null, items = [...args];\n while (items.length > 0) {\n const nextItem = items.shift();\n if (!output) {\n output = cloneShallow(nextItem);\n }\n else {\n output = mergeObjects(output, nextItem);\n }\n }\n return output;\n}\nfunction mergeObjects(obj1, obj2) {\n const output = cloneShallow(obj1);\n Object.keys(obj2).forEach(key => {\n if (!output.hasOwnProperty(key)) {\n output[key] = obj2[key];\n return;\n }\n if (Array.isArray(obj2[key])) {\n output[key] = Array.isArray(output[key])\n ? [...output[key], ...obj2[key]]\n : [...obj2[key]];\n }\n else if (typeof obj2[key] === \"object\" && !!obj2[key]) {\n output[key] =\n typeof output[key] === \"object\" && !!output[key]\n ? mergeObjects(output[key], obj2[key])\n : cloneShallow(obj2[key]);\n }\n else {\n output[key] = obj2[key];\n }\n });\n return output;\n}\n","export function convertResponseHeaders(headers) {\n const output = {};\n for (const key of headers.keys()) {\n output[key] = headers.get(key);\n }\n return output;\n}\nexport function mergeHeaders(...headerPayloads) {\n if (headerPayloads.length === 0)\n return {};\n const headerKeys = {};\n return headerPayloads.reduce((output, headers) => {\n Object.keys(headers).forEach(header => {\n const lowerHeader = header.toLowerCase();\n if (headerKeys.hasOwnProperty(lowerHeader)) {\n output[headerKeys[lowerHeader]] = headers[header];\n }\n else {\n headerKeys[lowerHeader] = header;\n output[header] = headers[header];\n }\n });\n return output;\n }, {});\n}\n","const hasArrayBuffer = typeof ArrayBuffer === \"function\";\nconst { toString: objToString } = Object.prototype;\n// Taken from: https://github.com/fengyuanchen/is-array-buffer/blob/master/src/index.js\nexport function isArrayBuffer(value) {\n return (hasArrayBuffer &&\n (value instanceof ArrayBuffer || objToString.call(value) === \"[object ArrayBuffer]\"));\n}\n","import { Agent as HTTPAgent } from \"http\";\nimport { Agent as HTTPSAgent } from \"https\";\nimport { fetch } from \"@buttercup/fetch\";\nimport { getPatcher } from \"./compat/patcher.js\";\nimport { isWeb } from \"./compat/env.js\";\nimport { generateDigestAuthHeader, parseDigestAuth } from \"./auth/digest.js\";\nimport { cloneShallow, merge } from \"./tools/merge.js\";\nimport { mergeHeaders } from \"./tools/headers.js\";\nimport { requestDataToFetchBody } from \"./tools/body.js\";\nfunction _request(requestOptions) {\n const patcher = getPatcher();\n return patcher.patchInline(\"request\", (options) => patcher.patchInline(\"fetch\", fetch, options.url, getFetchOptions(options)), requestOptions);\n}\nfunction getFetchOptions(requestOptions) {\n let headers = {};\n // Handle standard options\n const opts = {\n method: requestOptions.method\n };\n if (requestOptions.headers) {\n headers = mergeHeaders(headers, requestOptions.headers);\n }\n if (typeof requestOptions.data !== \"undefined\") {\n const [body, newHeaders] = requestDataToFetchBody(requestOptions.data);\n opts.body = body;\n headers = mergeHeaders(headers, newHeaders);\n }\n if (requestOptions.signal) {\n opts.signal = requestOptions.signal;\n }\n if (requestOptions.withCredentials) {\n opts.credentials = \"include\";\n }\n // Check for node-specific options\n if (!isWeb()) {\n if (requestOptions.httpAgent || requestOptions.httpsAgent) {\n opts.agent = (parsedURL) => {\n if (parsedURL.protocol === \"http:\") {\n return requestOptions.httpAgent || new HTTPAgent();\n }\n return requestOptions.httpsAgent || new HTTPSAgent();\n };\n }\n }\n // Attach headers\n opts.headers = headers;\n return opts;\n}\nexport function prepareRequestOptions(requestOptions, context, userOptions) {\n const finalOptions = cloneShallow(requestOptions);\n finalOptions.headers = mergeHeaders(context.headers, finalOptions.headers || {}, userOptions.headers || {});\n if (typeof userOptions.data !== \"undefined\") {\n finalOptions.data = userOptions.data;\n }\n if (userOptions.signal) {\n finalOptions.signal = userOptions.signal;\n }\n if (context.httpAgent) {\n finalOptions.httpAgent = context.httpAgent;\n }\n if (context.httpsAgent) {\n finalOptions.httpsAgent = context.httpsAgent;\n }\n if (context.digest) {\n finalOptions._digest = context.digest;\n }\n if (typeof context.withCredentials === \"boolean\") {\n finalOptions.withCredentials = context.withCredentials;\n }\n return finalOptions;\n}\nexport async function request(requestOptions) {\n // Client not configured for digest authentication\n if (!requestOptions._digest) {\n return _request(requestOptions);\n }\n // Remove client's digest authentication object from request options\n const _digest = requestOptions._digest;\n delete requestOptions._digest;\n // If client is already using digest authentication, include the digest authorization header\n if (_digest.hasDigestAuth) {\n requestOptions = merge(requestOptions, {\n headers: {\n Authorization: generateDigestAuthHeader(requestOptions, _digest)\n }\n });\n }\n // Perform digest request + check\n const response = await _request(requestOptions);\n if (response.status == 401) {\n _digest.hasDigestAuth = parseDigestAuth(response, _digest);\n if (_digest.hasDigestAuth) {\n requestOptions = merge(requestOptions, {\n headers: {\n Authorization: generateDigestAuthHeader(requestOptions, _digest)\n }\n });\n const response2 = await _request(requestOptions);\n if (response2.status == 401) {\n _digest.hasDigestAuth = false;\n }\n else {\n _digest.nc++;\n }\n return response2;\n }\n }\n else {\n _digest.nc++;\n }\n return response;\n}\n","import Stream from \"stream\";\nimport { isArrayBuffer } from \"../compat/arrayBuffer.js\";\nimport { isBuffer } from \"../compat/buffer.js\";\nimport { isWeb } from \"../compat/env.js\";\nexport function requestDataToFetchBody(data) {\n if (!isWeb() && data instanceof Stream.Readable) {\n // @ts-ignore\n return [data, {}];\n }\n if (typeof data === \"string\") {\n return [data, {}];\n }\n else if (isBuffer(data)) {\n return [data, {}];\n }\n else if (isArrayBuffer(data)) {\n return [data, {}];\n }\n else if (data && typeof data === \"object\") {\n return [\n JSON.stringify(data),\n {\n \"content-type\": \"application/json\"\n }\n ];\n }\n throw new Error(`Unable to convert request body: Unexpected body type: ${typeof data}`);\n}\n","export function isBuffer(value) {\n return (value != null &&\n value.constructor != null &&\n typeof value.constructor.isBuffer === \"function\" &&\n value.constructor.isBuffer(value));\n}\n","import { createClient, getPatcher } from 'webdav';\nimport { generateRemoteUrl } from '@nextcloud/router';\nimport { getCurrentUser, getRequestToken } from '@nextcloud/auth';\nimport { request } from 'webdav/dist/node/request.js';\nexport const rootPath = `/files/${getCurrentUser()?.uid}`;\nexport const defaultRootUrl = generateRemoteUrl('dav' + rootPath);\nexport const getClient = (rootUrl = defaultRootUrl) => {\n const client = createClient(rootUrl, {\n headers: {\n requesttoken: getRequestToken() || '',\n },\n });\n /**\n * Allow to override the METHOD to support dav REPORT\n *\n * @see https://github.com/perry-mitchell/webdav-client/blob/8d9694613c978ce7404e26a401c39a41f125f87f/source/request.ts\n */\n const patcher = getPatcher();\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // https://github.com/perry-mitchell/hot-patcher/issues/6\n patcher.patch('request', (options) => {\n if (options.headers?.method) {\n options.method = options.headers.method;\n delete options.headers.method;\n }\n return request(options);\n });\n return client;\n};\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nexport const hashCode = function (str) {\n return str.split('').reduce(function (a, b) {\n a = ((a << 5) - a) + b.charCodeAt(0);\n return a & a;\n }, 0);\n};\n","import { CancelablePromise } from 'cancelable-promise';\nimport { File, Folder, davParsePermissions, davGetDefaultPropfind } from '@nextcloud/files';\nimport { generateRemoteUrl } from '@nextcloud/router';\nimport { getCurrentUser } from '@nextcloud/auth';\nimport { getClient, rootPath } from './WebdavClient';\nimport { hashCode } from '../utils/hashUtils';\nimport logger from '../logger';\nconst client = getClient();\nexport const resultToNode = function (node) {\n const props = node.props;\n const permissions = davParsePermissions(props?.permissions);\n const owner = getCurrentUser()?.uid;\n const source = generateRemoteUrl('dav' + rootPath + node.filename);\n const id = props?.fileid < 0\n ? hashCode(source)\n : props?.fileid || 0;\n const nodeData = {\n id,\n source,\n mtime: new Date(node.lastmod),\n mime: node.mime,\n size: props?.size || 0,\n permissions,\n owner,\n root: rootPath,\n attributes: {\n ...node,\n ...props,\n hasPreview: props?.['has-preview'],\n failed: props?.fileid < 0,\n },\n };\n delete nodeData.attributes.props;\n return node.type === 'file'\n ? new File(nodeData)\n : new Folder(nodeData);\n};\nexport const getContents = (path = '/') => {\n const controller = new AbortController();\n const propfindPayload = davGetDefaultPropfind();\n return new CancelablePromise(async (resolve, reject, onCancel) => {\n onCancel(() => controller.abort());\n try {\n const contentsResponse = await client.getDirectoryContents(path, {\n details: true,\n data: propfindPayload,\n includeSelf: true,\n signal: controller.signal,\n });\n const root = contentsResponse.data[0];\n const contents = contentsResponse.data.slice(1);\n if (root.filename !== path) {\n throw new Error('Root node does not match requested path');\n }\n resolve({\n folder: resultToNode(root),\n contents: contents.map(result => {\n try {\n return resultToNode(result);\n }\n catch (error) {\n logger.error(`Invalid node detected '${result.basename}'`, { error });\n return null;\n }\n }).filter(Boolean),\n });\n }\n catch (error) {\n reject(error);\n }\n });\n};\n","import { Folder, getDavNameSpaces, getDavProperties, davGetDefaultPropfind } from '@nextcloud/files';\nimport { getClient } from './WebdavClient';\nimport { resultToNode } from './Files';\nconst client = getClient();\nconst reportPayload = `<?xml version=\"1.0\"?>\n<oc:filter-files ${getDavNameSpaces()}>\n\t<d:prop>\n\t\t${getDavProperties()}\n\t</d:prop>\n\t<oc:filter-rules>\n\t\t<oc:favorite>1</oc:favorite>\n\t</oc:filter-rules>\n</oc:filter-files>`;\nexport const getContents = async (path = '/') => {\n const propfindPayload = davGetDefaultPropfind();\n // Get root folder\n let rootResponse;\n if (path === '/') {\n rootResponse = await client.stat(path, {\n details: true,\n data: propfindPayload,\n });\n }\n const contentsResponse = await client.getDirectoryContents(path, {\n details: true,\n // Only filter favorites if we're at the root\n data: path === '/' ? reportPayload : propfindPayload,\n headers: {\n // Patched in WebdavClient.ts\n method: path === '/' ? 'REPORT' : 'PROPFIND',\n },\n includeSelf: true,\n });\n const root = rootResponse?.data || contentsResponse.data[0];\n const contents = contentsResponse.data.filter(node => node.filename !== path);\n return {\n folder: resultToNode(root),\n contents: contents.map(resultToNode),\n };\n};\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { basename } from 'path';\nimport { getLanguage, translate as t } from '@nextcloud/l10n';\nimport { loadState } from '@nextcloud/initial-state';\nimport { Node, FileType, View, getNavigation } from '@nextcloud/files';\nimport { subscribe } from '@nextcloud/event-bus';\nimport FolderSvg from '@mdi/svg/svg/folder.svg?raw';\nimport StarSvg from '@mdi/svg/svg/star.svg?raw';\nimport { getContents } from '../services/Favorites';\nimport { hashCode } from '../utils/hashUtils';\nimport logger from '../logger';\nexport const generateFolderView = function (folder, index = 0) {\n return new View({\n id: generateIdFromPath(folder),\n name: basename(folder),\n icon: FolderSvg,\n order: index,\n params: {\n dir: folder,\n view: 'favorites',\n },\n parent: 'favorites',\n columns: [],\n getContents,\n });\n};\nexport const generateIdFromPath = function (path) {\n return `favorite-${hashCode(path)}`;\n};\nexport default () => {\n // Load state in function for mock testing purposes\n const favoriteFolders = loadState('files', 'favoriteFolders', []);\n const favoriteFoldersViews = favoriteFolders.map((folder, index) => generateFolderView(folder, index));\n const Navigation = getNavigation();\n Navigation.register(new View({\n id: 'favorites',\n name: t('files', 'Favorites'),\n caption: t('files', 'List of favorites files and folders.'),\n emptyTitle: t('files', 'No favorites yet'),\n emptyCaption: t('files', 'Files and folders you mark as favorite will show up here'),\n icon: StarSvg,\n order: 5,\n columns: [],\n getContents,\n }));\n favoriteFoldersViews.forEach(view => Navigation.register(view));\n /**\n * Update favourites navigation when a new folder is added\n */\n subscribe('files:favorites:added', (node) => {\n if (node.type !== FileType.Folder) {\n return;\n }\n // Sanity check\n if (node.path === null || !node.root?.startsWith('/files')) {\n logger.error('Favorite folder is not within user files root', { node });\n return;\n }\n addPathToFavorites(node.path);\n });\n /**\n * Remove favourites navigation when a folder is removed\n */\n subscribe('files:favorites:removed', (node) => {\n if (node.type !== FileType.Folder) {\n return;\n }\n // Sanity check\n if (node.path === null || !node.root?.startsWith('/files')) {\n logger.error('Favorite folder is not within user files root', { node });\n return;\n }\n removePathFromFavorites(node.path);\n });\n /**\n * Sort the favorites paths array and\n * update the order property of the existing views\n */\n const updateAndSortViews = function () {\n favoriteFolders.sort((a, b) => a.localeCompare(b, getLanguage(), { ignorePunctuation: true }));\n favoriteFolders.forEach((folder, index) => {\n const view = favoriteFoldersViews.find(view => view.id === generateIdFromPath(folder));\n if (view) {\n view.order = index;\n }\n });\n };\n // Add a folder to the favorites paths array and update the views\n const addPathToFavorites = function (path) {\n const view = generateFolderView(path);\n // Skip if already exists\n if (favoriteFolders.find(folder => folder === path)) {\n return;\n }\n // Update arrays\n favoriteFolders.push(path);\n favoriteFoldersViews.push(view);\n // Update and sort views\n updateAndSortViews();\n Navigation.register(view);\n };\n // Remove a folder from the favorites paths array and update the views\n const removePathFromFavorites = function (path) {\n const id = generateIdFromPath(path);\n const index = favoriteFolders.findIndex(folder => folder === path);\n // Skip if not exists\n if (index === -1) {\n return;\n }\n // Update arrays\n favoriteFolders.splice(index, 1);\n favoriteFoldersViews.splice(index, 1);\n // Update and sort views\n Navigation.remove(id);\n updateAndSortViews();\n };\n};\n","import { Folder, Permission, getDavNameSpaces, getDavProperties } from '@nextcloud/files';\nimport { generateRemoteUrl } from '@nextcloud/router';\nimport { getCurrentUser } from '@nextcloud/auth';\nimport { getClient, rootPath } from './WebdavClient';\nimport { resultToNode } from './Files';\nconst client = getClient(generateRemoteUrl('dav'));\nconst lastTwoWeeksTimestamp = Math.round((Date.now() / 1000) - (60 * 60 * 24 * 14));\nconst searchPayload = `<?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>${lastTwoWeeksTimestamp}</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>`;\nexport const getContents = async (path = '/') => {\n const contentsResponse = await client.getDirectoryContents(path, {\n details: true,\n data: searchPayload,\n headers: {\n // Patched in WebdavClient.ts\n method: 'SEARCH',\n // Somehow it's needed to get the correct response\n 'Content-Type': 'application/xml; charset=utf-8',\n },\n deep: true,\n });\n const contents = contentsResponse.data;\n return {\n folder: new Folder({\n id: 0,\n source: generateRemoteUrl('dav' + rootPath),\n root: rootPath,\n owner: getCurrentUser()?.uid || null,\n permissions: Permission.READ,\n }),\n contents: contents.map(resultToNode),\n };\n};\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.opened)?_c('NcModal',{staticClass:\"templates-picker\",attrs:{\"clear-view-delay\":-1,\"size\":\"large\"},on:{\"close\":_vm.close}},[_c('form',{staticClass:\"templates-picker__form\",style:(_vm.style),on:{\"submit\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.onSubmit.apply(null, arguments)}}},[_c('h2',[_vm._v(_vm._s(_vm.t('files', 'Pick a template for {name}', { name: _vm.nameWithoutExt })))]),_vm._v(\" \"),_c('ul',{staticClass:\"templates-picker__list\"},[_c('TemplatePreview',_vm._b({attrs:{\"checked\":_vm.checked === _vm.emptyTemplate.fileid},on:{\"check\":_vm.onCheck}},'TemplatePreview',_vm.emptyTemplate,false)),_vm._v(\" \"),_vm._l((_vm.provider.templates),function(template){return _c('TemplatePreview',_vm._b({key:template.fileid,attrs:{\"checked\":_vm.checked === template.fileid,\"ratio\":_vm.provider.ratio},on:{\"check\":_vm.onCheck}},'TemplatePreview',template,false))})],2),_vm._v(\" \"),_c('div',{staticClass:\"templates-picker__buttons\"},[_c('input',{staticClass:\"primary\",attrs:{\"type\":\"submit\",\"aria-label\":_vm.t('files', 'Create a new file with the selected template')},domProps:{\"value\":_vm.t('files', 'Create')}})])]),_vm._v(\" \"),(_vm.loading)?_c('NcEmptyContent',{staticClass:\"templates-picker__loading\",attrs:{\"icon\":\"icon-loading\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('files', 'Creating file'))+\"\\n\\t\")]):_vm._e()],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * @copyright Copyright (c) 2021 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { FileType } from '@nextcloud/files';\nimport { translate as t, translatePlural as n } from '@nextcloud/l10n';\nexport const encodeFilePath = function (path) {\n const pathSections = (path.startsWith('/') ? path : `/${path}`).split('/');\n let relativePath = '';\n pathSections.forEach((section) => {\n if (section !== '') {\n relativePath += '/' + encodeURIComponent(section);\n }\n });\n return relativePath;\n};\n/**\n * Extract dir and name from file path\n *\n * @param {string} path the full path\n * @return {string[]} [dirPath, fileName]\n */\nexport const extractFilePaths = function (path) {\n const pathSections = path.split('/');\n const fileName = pathSections[pathSections.length - 1];\n const dirPath = pathSections.slice(0, pathSections.length - 1).join('/');\n return [dirPath, fileName];\n};\n/**\n * Generate a translated summary of an array of nodes\n * @param {Node[]} nodes the nodes to summarize\n * @return {string}\n */\nexport const getSummaryFor = (nodes) => {\n const fileCount = nodes.filter(node => node.type === FileType.File).length;\n const folderCount = nodes.filter(node => node.type === FileType.Folder).length;\n if (fileCount === 0) {\n return n('files', '{folderCount} folder', '{folderCount} folders', folderCount, { folderCount });\n }\n else if (folderCount === 0) {\n return n('files', '{fileCount} file', '{fileCount} files', fileCount, { fileCount });\n }\n if (fileCount === 1) {\n return n('files', '1 file and {folderCount} folder', '1 file and {folderCount} folders', folderCount, { folderCount });\n }\n if (folderCount === 1) {\n return n('files', '{fileCount} file and 1 folder', '{fileCount} files and 1 folder', fileCount, { fileCount });\n }\n return t('files', '{fileCount} files and {folderCount} folders', { fileCount, folderCount });\n};\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TemplatePreview.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!./TemplatePreview.vue?vue&type=script&lang=js\"","<!--\n - @copyright Copyright (c) 2020 John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n\n<template>\n\t<li class=\"template-picker__item\">\n\t\t<input :id=\"id\"\n\t\t\t:checked=\"checked\"\n\t\t\ttype=\"radio\"\n\t\t\tclass=\"radio\"\n\t\t\tname=\"template-picker\"\n\t\t\t@change=\"onCheck\">\n\n\t\t<label :for=\"id\" class=\"template-picker__label\">\n\t\t\t<div class=\"template-picker__preview\"\n\t\t\t\t:class=\"failedPreview ? 'template-picker__preview--failed' : ''\">\n\t\t\t\t<img class=\"template-picker__image\"\n\t\t\t\t\t:src=\"realPreviewUrl\"\n\t\t\t\t\talt=\"\"\n\t\t\t\t\tdraggable=\"false\"\n\t\t\t\t\t@error=\"onFailure\">\n\t\t\t</div>\n\n\t\t\t<span class=\"template-picker__title\">\n\t\t\t\t{{ nameWithoutExt }}\n\t\t\t</span>\n\t\t</label>\n\t</li>\n</template>\n\n<script>\nimport { generateUrl } from '@nextcloud/router'\nimport { encodeFilePath } from '../utils/fileUtils.ts'\nimport { getToken, isPublic } from '../utils/davUtils.js'\n\n// preview width generation\nconst previewWidth = 256\n\nexport default {\n\tname: 'TemplatePreview',\n\tinheritAttrs: false,\n\n\tprops: {\n\t\tbasename: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tchecked: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\tfileid: {\n\t\t\ttype: [String, Number],\n\t\t\trequired: true,\n\t\t},\n\t\tfilename: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tpreviewUrl: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t\thasPreview: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t\tmime: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tratio: {\n\t\t\ttype: Number,\n\t\t\tdefault: null,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tfailedPreview: false,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\t/**\n\t\t * Strip away extension from name\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tnameWithoutExt() {\n\t\t\treturn this.basename.indexOf('.') > -1 ? this.basename.split('.').slice(0, -1).join('.') : this.basename\n\t\t},\n\n\t\tid() {\n\t\t\treturn `template-picker-${this.fileid}`\n\t\t},\n\n\t\trealPreviewUrl() {\n\t\t\t// If original preview failed, fallback to mime icon\n\t\t\tif (this.failedPreview && this.mimeIcon) {\n\t\t\t\treturn this.mimeIcon\n\t\t\t}\n\n\t\t\tif (this.previewUrl) {\n\t\t\t\treturn this.previewUrl\n\t\t\t}\n\t\t\t// TODO: find a nicer standard way of doing this?\n\t\t\tif (isPublic()) {\n\t\t\t\treturn generateUrl(`/apps/files_sharing/publicpreview/${getToken()}?fileId=${this.fileid}&file=${encodeFilePath(this.filename)}&x=${previewWidth}&y=${previewWidth}&a=1`)\n\t\t\t}\n\t\t\treturn generateUrl(`/core/preview?fileId=${this.fileid}&x=${previewWidth}&y=${previewWidth}&a=1`)\n\t\t},\n\n\t\tmimeIcon() {\n\t\t\treturn OC.MimeType.getIconUrl(this.mime)\n\t\t},\n\t},\n\n\tmethods: {\n\t\tonCheck() {\n\t\t\tthis.$emit('check', this.fileid)\n\t\t},\n\t\tonFailure() {\n\t\t\tthis.failedPreview = true\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n\n.template-picker {\n\t&__item {\n\t\tdisplay: flex;\n\t}\n\n\t&__label {\n\t\tdisplay: flex;\n\t\t// Align in the middle of the grid\n\t\talign-items: center;\n\t\tflex: 1 1;\n\t\tflex-direction: column;\n\n\t\t&, * {\n\t\t\tcursor: pointer;\n\t\t\tuser-select: none;\n\t\t}\n\n\t\t&::before {\n\t\t\tdisplay: none !important;\n\t\t}\n\t}\n\n\t&__preview {\n\t\tdisplay: block;\n\t\toverflow: hidden;\n\t\t// Stretch so all entries are the same width\n\t\tflex: 1 1;\n\t\twidth: var(--width);\n\t\tmin-height: var(--height);\n\t\tmax-height: var(--height);\n\t\tpadding: 0;\n\t\tborder: var(--border) solid var(--color-border);\n\t\tborder-radius: var(--border-radius-large);\n\n\t\tinput:checked + label > & {\n\t\t\tborder-color: var(--color-primary-element);\n\t\t}\n\n\t\t&--failed {\n\t\t\t// Make sure to properly center fallback icon\n\t\t\tdisplay: flex;\n\t\t}\n\t}\n\n\t&__image {\n\t\tmax-width: 100%;\n\t\tbackground-color: var(--color-main-background);\n\n\t\tobject-fit: cover;\n\t}\n\n\t// Failed preview, fallback to mime icon\n\t&__preview--failed &__image {\n\t\twidth: calc(var(--margin) * 8);\n\t\t// Center mime icon\n\t\tmargin: auto;\n\t\tbackground-color: transparent !important;\n\n\t\tobject-fit: initial;\n\t}\n\n\t&__title {\n\t\toverflow: hidden;\n\t\t// also count preview border\n\t\tmax-width: calc(var(--width) + 2*2px);\n\t\tpadding: var(--margin);\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t}\n}\n\n</style>\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport { generateRemoteUrl } from '@nextcloud/router'\nimport { getCurrentUser } from '@nextcloud/auth'\n\nexport const getRootPath = function() {\n\tif (getCurrentUser()) {\n\t\treturn generateRemoteUrl(`dav/files/${getCurrentUser().uid}`)\n\t} else {\n\t\treturn generateRemoteUrl('webdav').replace('/remote.php', '/public.php')\n\t}\n}\n\nexport const isPublic = function() {\n\treturn !getCurrentUser()\n}\n\nexport const getToken = function() {\n\treturn document.getElementById('sharingToken') && document.getElementById('sharingToken').value\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!./TemplatePreview.vue?vue&type=style&index=0&id=0859a92c&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../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!./TemplatePreview.vue?vue&type=style&index=0&id=0859a92c&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./TemplatePreview.vue?vue&type=template&id=0859a92c&scoped=true\"\nimport script from \"./TemplatePreview.vue?vue&type=script&lang=js\"\nexport * from \"./TemplatePreview.vue?vue&type=script&lang=js\"\nimport style0 from \"./TemplatePreview.vue?vue&type=style&index=0&id=0859a92c&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 \"0859a92c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('li',{staticClass:\"template-picker__item\"},[_c('input',{staticClass:\"radio\",attrs:{\"id\":_vm.id,\"type\":\"radio\",\"name\":\"template-picker\"},domProps:{\"checked\":_vm.checked},on:{\"change\":_vm.onCheck}}),_vm._v(\" \"),_c('label',{staticClass:\"template-picker__label\",attrs:{\"for\":_vm.id}},[_c('div',{staticClass:\"template-picker__preview\",class:_vm.failedPreview ? 'template-picker__preview--failed' : ''},[_c('img',{staticClass:\"template-picker__image\",attrs:{\"src\":_vm.realPreviewUrl,\"alt\":\"\",\"draggable\":\"false\"},on:{\"error\":_vm.onFailure}})]),_vm._v(\" \"),_c('span',{staticClass:\"template-picker__title\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.nameWithoutExt)+\"\\n\\t\\t\")])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TemplatePicker.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TemplatePicker.vue?vue&type=script&lang=ts\"","/**\n * @copyright Copyright (c) 2021 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport { generateOcsUrl } from '@nextcloud/router'\nimport axios from '@nextcloud/axios'\n\nexport const getTemplates = async function() {\n\tconst response = await axios.get(generateOcsUrl('apps/files/api/v1/templates'))\n\treturn response.data.ocs.data\n}\n\n/**\n * Create a new file from a specified template\n *\n * @param {string} filePath The new file destination path\n * @param {string} templatePath The template source path\n * @param {string} templateType The template type e.g 'user'\n */\nexport const createFromTemplate = async function(filePath, templatePath, templateType) {\n\tconst response = await axios.post(generateOcsUrl('apps/files/api/v1/templates/create'), {\n\t\tfilePath,\n\t\ttemplatePath,\n\t\ttemplateType,\n\t})\n\treturn response.data.ocs.data\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!./TemplatePicker.vue?vue&type=style&index=0&id=48121b39&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../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!./TemplatePicker.vue?vue&type=style&index=0&id=48121b39&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./TemplatePicker.vue?vue&type=template&id=48121b39&scoped=true\"\nimport script from \"./TemplatePicker.vue?vue&type=script&lang=ts\"\nexport * from \"./TemplatePicker.vue?vue&type=script&lang=ts\"\nimport style0 from \"./TemplatePicker.vue?vue&type=style&index=0&id=48121b39&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 \"48121b39\",\n null\n \n)\n\nexport default component.exports","import { Folder, Node, Permission, addNewFileMenuEntry, removeNewFileMenuEntry } from '@nextcloud/files';\nimport { generateOcsUrl } from '@nextcloud/router';\nimport { getLoggerBuilder } from '@nextcloud/logger';\nimport { join } from 'path';\nimport { loadState } from '@nextcloud/initial-state';\nimport { showError } from '@nextcloud/dialogs';\nimport { translate as t, translatePlural as n } from '@nextcloud/l10n';\nimport axios from '@nextcloud/axios';\nimport Vue from 'vue';\nimport PlusSvg from '@mdi/svg/svg/plus.svg?raw';\nimport TemplatePickerView from './views/TemplatePicker.vue';\nimport { getUniqueName } from './newMenu/newFolder';\nimport { getCurrentUser } from '@nextcloud/auth';\n// Set up logger\nconst logger = getLoggerBuilder()\n .setApp('files')\n .detectUser()\n .build();\n// Add translates functions\nVue.mixin({\n methods: {\n t,\n n,\n },\n});\n// Create document root\nconst TemplatePickerRoot = document.createElement('div');\nTemplatePickerRoot.id = 'template-picker';\ndocument.body.appendChild(TemplatePickerRoot);\n// Retrieve and init templates\nlet templates = loadState('files', 'templates', []);\nlet templatesPath = loadState('files', 'templates_path', false);\nlogger.debug('Templates providers', templates);\nlogger.debug('Templates folder', { templatesPath });\n// Init vue app\nconst View = Vue.extend(TemplatePickerView);\nconst TemplatePicker = new View({\n name: 'TemplatePicker',\n propsData: {\n logger,\n },\n});\nTemplatePicker.$mount('#template-picker');\nif (!templatesPath) {\n logger.debug('Templates folder not initialized');\n addNewFileMenuEntry({\n id: 'template-picker',\n displayName: t('files', 'Create new templates folder'),\n iconSvgInline: PlusSvg,\n order: 10,\n enabled(context) {\n // Allow creation on your own folders only\n if (context.owner !== getCurrentUser()?.uid) {\n return false;\n }\n return (context.permissions & Permission.CREATE) !== 0;\n },\n handler(context, content) {\n // Check for conflicts\n const contentNames = content.map((node) => node.basename);\n const name = getUniqueName(t('files', 'Templates'), contentNames);\n // Create the template folder\n initTemplatesFolder(context, name);\n // Remove the menu entry\n removeNewFileMenuEntry('template-picker');\n },\n });\n}\n// Init template files menu\ntemplates.forEach((provider, index) => {\n addNewFileMenuEntry({\n id: `template-new-${provider.app}-${index}`,\n displayName: provider.label,\n // TODO: migrate to inline svg\n iconClass: provider.iconClass || 'icon-file',\n enabled(context) {\n return (context.permissions & Permission.CREATE) !== 0;\n },\n order: 11,\n handler(context, content) {\n // Check for conflicts\n const contentNames = content.map((node) => node.basename);\n const name = getUniqueName(provider.label + provider.extension, contentNames);\n // Create the file\n TemplatePicker.open(name, provider);\n },\n });\n});\n// Init template folder\nconst initTemplatesFolder = async function (directory, name) {\n const templatePath = join(directory.path, name);\n try {\n logger.debug('Initializing the templates directory', { templatePath });\n const response = await axios.post(generateOcsUrl('apps/files/api/v1/templates/path'), {\n templatePath,\n copySystemTemplates: true,\n });\n // Go to template directory\n window.OCP.Files.Router.goToRoute(null, // use default route\n { view: 'files', fileid: undefined }, { dir: templatePath });\n templates = response.data.ocs.data.templates;\n templatesPath = response.data.ocs.data.template_path;\n }\n catch (error) {\n logger.error('Unable to initialize the templates directory');\n showError(t('files', 'Unable to initialize the templates directory'));\n }\n};\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport MenuIcon from '@mdi/svg/svg/sun-compass.svg?raw';\nimport { FileAction, addNewFileMenuEntry, registerDavProperty, registerFileAction } from '@nextcloud/files';\nimport { action as deleteAction } from './actions/deleteAction';\nimport { action as downloadAction } from './actions/downloadAction';\nimport { action as editLocallyAction } from './actions/editLocallyAction';\nimport { action as favoriteAction } from './actions/favoriteAction';\nimport { action as moveOrCopyAction } from './actions/moveOrCopyAction';\nimport { action as openFolderAction } from './actions/openFolderAction';\nimport { action as openInFilesAction } from './actions/openInFilesAction';\nimport { action as renameAction } from './actions/renameAction';\nimport { action as sidebarAction } from './actions/sidebarAction';\nimport { action as viewInFolderAction } from './actions/viewInFolderAction';\nimport { entry as newFolderEntry } from './newMenu/newFolder';\nimport registerFavoritesView from './views/favorites';\nimport registerRecentView from './views/recent';\nimport registerFilesView from './views/files';\nimport registerPreviewServiceWorker from './services/ServiceWorker.js';\nimport './init-templates';\nimport { initLivePhotos } from './services/LivePhotos';\n// Register file actions\nregisterFileAction(deleteAction);\nregisterFileAction(downloadAction);\nregisterFileAction(editLocallyAction);\nregisterFileAction(favoriteAction);\nregisterFileAction(moveOrCopyAction);\nregisterFileAction(openFolderAction);\nregisterFileAction(openInFilesAction);\nregisterFileAction(renameAction);\nregisterFileAction(sidebarAction);\nregisterFileAction(viewInFolderAction);\n// Register new menu entry\naddNewFileMenuEntry(newFolderEntry);\n// Register files views\nregisterFavoritesView();\nregisterFilesView();\nregisterRecentView();\n// Register preview service worker\nregisterPreviewServiceWorker();\nregisterDavProperty('nc:hidden', { nc: 'http://nextcloud.org/ns' });\ninitLivePhotos();\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { translate as t } from '@nextcloud/l10n';\nimport FolderSvg from '@mdi/svg/svg/folder.svg?raw';\nimport { getContents } from '../services/Files';\nimport { View, getNavigation } from '@nextcloud/files';\nexport default () => {\n const Navigation = getNavigation();\n Navigation.register(new View({\n id: 'files',\n name: t('files', 'All files'),\n caption: t('files', 'List of your files and folders.'),\n icon: FolderSvg,\n order: 0,\n getContents,\n }));\n};\n","/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { translate as t } from '@nextcloud/l10n';\nimport HistorySvg from '@mdi/svg/svg/history.svg?raw';\nimport { getContents } from '../services/Recent';\nimport { View, getNavigation } from '@nextcloud/files';\nexport default () => {\n const Navigation = getNavigation();\n Navigation.register(new View({\n id: 'recent',\n name: t('files', 'Recent'),\n caption: t('files', 'List of recently modified files and folders.'),\n emptyTitle: t('files', 'No recently modified files'),\n emptyCaption: t('files', 'Files and folders you recently modified will show up here.'),\n icon: HistorySvg,\n order: 2,\n defaultSortKey: 'mtime',\n getContents,\n }));\n};\n","/**\n * @copyright Copyright (c) 2019 Gary Kim <gary@garykim.dev>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { generateUrl } from '@nextcloud/router'\nimport logger from '../logger.js'\n\nexport default () => {\n\tif ('serviceWorker' in navigator) {\n\t\t// Use the window load event to keep the page load performant\n\t\twindow.addEventListener('load', async () => {\n\t\t\ttry {\n\t\t\t\tconst url = generateUrl('/apps/files/preview-service-worker.js', {}, { noRewrite: true })\n\t\t\t\tconst registration = await navigator.serviceWorker.register(url, { scope: '/' })\n\t\t\t\tlogger.debug('SW registered: ', { registration })\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error('SW registration failed: ', { error })\n\t\t\t}\n\t\t})\n\t} else {\n\t\tlogger.debug('Service Worker is not enabled on this browser.')\n\t}\n}\n","/**\n * @copyright Copyright (c) 2023 Louis Chmn <louis@chmn.me>\n *\n * @author Louis Chmn <louis@chmn.me>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { Node, registerDavProperty } from '@nextcloud/files';\nexport function initLivePhotos() {\n registerDavProperty('nc:metadata-files-live-photo', { nc: 'http://nextcloud.org/ns' });\n}\n/**\n * @param {Node} node - The node\n */\nexport function isLivePhoto(node) {\n return node.attributes['metadata-files-live-photo'] !== undefined;\n}\n","module.exports = {\n \"100\": \"Continue\",\n \"101\": \"Switching Protocols\",\n \"102\": \"Processing\",\n \"200\": \"OK\",\n \"201\": \"Created\",\n \"202\": \"Accepted\",\n \"203\": \"Non-Authoritative Information\",\n \"204\": \"No Content\",\n \"205\": \"Reset Content\",\n \"206\": \"Partial Content\",\n \"207\": \"Multi-Status\",\n \"208\": \"Already Reported\",\n \"226\": \"IM Used\",\n \"300\": \"Multiple Choices\",\n \"301\": \"Moved Permanently\",\n \"302\": \"Found\",\n \"303\": \"See Other\",\n \"304\": \"Not Modified\",\n \"305\": \"Use Proxy\",\n \"307\": \"Temporary Redirect\",\n \"308\": \"Permanent Redirect\",\n \"400\": \"Bad Request\",\n \"401\": \"Unauthorized\",\n \"402\": \"Payment Required\",\n \"403\": \"Forbidden\",\n \"404\": \"Not Found\",\n \"405\": \"Method Not Allowed\",\n \"406\": \"Not Acceptable\",\n \"407\": \"Proxy Authentication Required\",\n \"408\": \"Request Timeout\",\n \"409\": \"Conflict\",\n \"410\": \"Gone\",\n \"411\": \"Length Required\",\n \"412\": \"Precondition Failed\",\n \"413\": \"Payload Too Large\",\n \"414\": \"URI Too Long\",\n \"415\": \"Unsupported Media Type\",\n \"416\": \"Range Not Satisfiable\",\n \"417\": \"Expectation Failed\",\n \"418\": \"I'm a teapot\",\n \"421\": \"Misdirected Request\",\n \"422\": \"Unprocessable Entity\",\n \"423\": \"Locked\",\n \"424\": \"Failed Dependency\",\n \"425\": \"Unordered Collection\",\n \"426\": \"Upgrade Required\",\n \"428\": \"Precondition Required\",\n \"429\": \"Too Many Requests\",\n \"431\": \"Request Header Fields Too Large\",\n \"451\": \"Unavailable For Legal Reasons\",\n \"500\": \"Internal Server Error\",\n \"501\": \"Not Implemented\",\n \"502\": \"Bad Gateway\",\n \"503\": \"Service Unavailable\",\n \"504\": \"Gateway Timeout\",\n \"505\": \"HTTP Version Not Supported\",\n \"506\": \"Variant Also Negotiates\",\n \"507\": \"Insufficient Storage\",\n \"508\": \"Loop Detected\",\n \"509\": \"Bandwidth Limit Exceeded\",\n \"510\": \"Not Extended\",\n \"511\": \"Network Authentication Required\"\n}\n","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n(function (global, factory) {\n if (typeof define === \"function\" && define.amd) {\n define([\"exports\"], factory);\n } else if (typeof exports !== \"undefined\") {\n factory(exports);\n } else {\n var mod = {\n exports: {}\n };\n factory(mod.exports);\n global.CancelablePromise = mod.exports;\n }\n})(typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : this, function (_exports) {\n \"use strict\";\n\n Object.defineProperty(_exports, \"__esModule\", {\n value: true\n });\n _exports.CancelablePromise = void 0;\n _exports.cancelable = cancelable;\n _exports.default = void 0;\n _exports.isCancelablePromise = isCancelablePromise;\n\n function _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\n function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\n function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\n function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\n function _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\n function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\n function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\n function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\n function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }\n\n function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); } }\n\n function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, \"get\"); return _classApplyDescriptorGet(receiver, descriptor); }\n\n function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; }\n\n function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, \"set\"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }\n\n function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError(\"attempted to \" + action + \" private field on non-instance\"); } return privateMap.get(receiver); }\n\n function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError(\"attempted to set read only private field\"); } descriptor.value = value; } }\n\n var toStringTag = typeof Symbol !== 'undefined' ? Symbol.toStringTag : '@@toStringTag';\n\n var _internals = /*#__PURE__*/new WeakMap();\n\n var _promise = /*#__PURE__*/new WeakMap();\n\n var CancelablePromiseInternal = /*#__PURE__*/function () {\n function CancelablePromiseInternal(_ref) {\n var _ref$executor = _ref.executor,\n executor = _ref$executor === void 0 ? function () {} : _ref$executor,\n _ref$internals = _ref.internals,\n internals = _ref$internals === void 0 ? defaultInternals() : _ref$internals,\n _ref$promise = _ref.promise,\n promise = _ref$promise === void 0 ? new Promise(function (resolve, reject) {\n return executor(resolve, reject, function (onCancel) {\n internals.onCancelList.push(onCancel);\n });\n }) : _ref$promise;\n\n _classCallCheck(this, CancelablePromiseInternal);\n\n _classPrivateFieldInitSpec(this, _internals, {\n writable: true,\n value: void 0\n });\n\n _classPrivateFieldInitSpec(this, _promise, {\n writable: true,\n value: void 0\n });\n\n _defineProperty(this, toStringTag, 'CancelablePromise');\n\n this.cancel = this.cancel.bind(this);\n\n _classPrivateFieldSet(this, _internals, internals);\n\n _classPrivateFieldSet(this, _promise, promise || new Promise(function (resolve, reject) {\n return executor(resolve, reject, function (onCancel) {\n internals.onCancelList.push(onCancel);\n });\n }));\n }\n\n _createClass(CancelablePromiseInternal, [{\n key: \"then\",\n value: function then(onfulfilled, onrejected) {\n return makeCancelable(_classPrivateFieldGet(this, _promise).then(createCallback(onfulfilled, _classPrivateFieldGet(this, _internals)), createCallback(onrejected, _classPrivateFieldGet(this, _internals))), _classPrivateFieldGet(this, _internals));\n }\n }, {\n key: \"catch\",\n value: function _catch(onrejected) {\n return makeCancelable(_classPrivateFieldGet(this, _promise).catch(createCallback(onrejected, _classPrivateFieldGet(this, _internals))), _classPrivateFieldGet(this, _internals));\n }\n }, {\n key: \"finally\",\n value: function _finally(onfinally, runWhenCanceled) {\n var _this = this;\n\n if (runWhenCanceled) {\n _classPrivateFieldGet(this, _internals).onCancelList.push(onfinally);\n }\n\n return makeCancelable(_classPrivateFieldGet(this, _promise).finally(createCallback(function () {\n if (onfinally) {\n if (runWhenCanceled) {\n _classPrivateFieldGet(_this, _internals).onCancelList = _classPrivateFieldGet(_this, _internals).onCancelList.filter(function (callback) {\n return callback !== onfinally;\n });\n }\n\n return onfinally();\n }\n }, _classPrivateFieldGet(this, _internals))), _classPrivateFieldGet(this, _internals));\n }\n }, {\n key: \"cancel\",\n value: function cancel() {\n _classPrivateFieldGet(this, _internals).isCanceled = true;\n\n var callbacks = _classPrivateFieldGet(this, _internals).onCancelList;\n\n _classPrivateFieldGet(this, _internals).onCancelList = [];\n\n var _iterator = _createForOfIteratorHelper(callbacks),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var callback = _step.value;\n\n if (typeof callback === 'function') {\n try {\n callback();\n } catch (err) {\n console.error(err);\n }\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n }, {\n key: \"isCanceled\",\n value: function isCanceled() {\n return _classPrivateFieldGet(this, _internals).isCanceled === true;\n }\n }]);\n\n return CancelablePromiseInternal;\n }();\n\n var CancelablePromise = /*#__PURE__*/function (_CancelablePromiseInt) {\n _inherits(CancelablePromise, _CancelablePromiseInt);\n\n var _super = _createSuper(CancelablePromise);\n\n function CancelablePromise(executor) {\n _classCallCheck(this, CancelablePromise);\n\n return _super.call(this, {\n executor: executor\n });\n }\n\n return _createClass(CancelablePromise);\n }(CancelablePromiseInternal);\n\n _exports.CancelablePromise = CancelablePromise;\n\n _defineProperty(CancelablePromise, \"all\", function all(iterable) {\n return makeAllCancelable(iterable, Promise.all(iterable));\n });\n\n _defineProperty(CancelablePromise, \"allSettled\", function allSettled(iterable) {\n return makeAllCancelable(iterable, Promise.allSettled(iterable));\n });\n\n _defineProperty(CancelablePromise, \"any\", function any(iterable) {\n return makeAllCancelable(iterable, Promise.any(iterable));\n });\n\n _defineProperty(CancelablePromise, \"race\", function race(iterable) {\n return makeAllCancelable(iterable, Promise.race(iterable));\n });\n\n _defineProperty(CancelablePromise, \"resolve\", function resolve(value) {\n return cancelable(Promise.resolve(value));\n });\n\n _defineProperty(CancelablePromise, \"reject\", function reject(reason) {\n return cancelable(Promise.reject(reason));\n });\n\n _defineProperty(CancelablePromise, \"isCancelable\", isCancelablePromise);\n\n var _default = CancelablePromise;\n _exports.default = _default;\n\n function cancelable(promise) {\n return makeCancelable(promise, defaultInternals());\n }\n\n function isCancelablePromise(promise) {\n return promise instanceof CancelablePromise || promise instanceof CancelablePromiseInternal;\n }\n\n function createCallback(onResult, internals) {\n if (onResult) {\n return function (arg) {\n if (!internals.isCanceled) {\n var result = onResult(arg);\n\n if (isCancelablePromise(result)) {\n internals.onCancelList.push(result.cancel);\n }\n\n return result;\n }\n\n return arg;\n };\n }\n }\n\n function makeCancelable(promise, internals) {\n return new CancelablePromiseInternal({\n internals: internals,\n promise: promise\n });\n }\n\n function makeAllCancelable(iterable, promise) {\n var internals = defaultInternals();\n internals.onCancelList.push(function () {\n var _iterator2 = _createForOfIteratorHelper(iterable),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var resolvable = _step2.value;\n\n if (isCancelablePromise(resolvable)) {\n resolvable.cancel();\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n });\n return new CancelablePromiseInternal({\n internals: internals,\n promise: promise\n });\n }\n\n function defaultInternals() {\n return {\n isCanceled: false,\n onCancelList: []\n };\n }\n});\n//# sourceMappingURL=CancelablePromise.js.map","// 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\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMTYiIHdpZHRoPSIxNiI+CiAgPHBhdGggZD0iTTE0IDEyLjNMMTIuMyAxNCA4IDkuNyAzLjcgMTQgMiAxMi4zIDYuMyA4IDIgMy43IDMuNyAyIDggNi4zIDEyLjMgMiAxNCAzLjcgOS43IDh6Ii8+Cjwvc3ZnPgo=\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_1___ = new URL(\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMTYiIHdpZHRoPSIxNiI+CiAgPHBhdGggZD0iTTE0IDEyLjNMMTIuMyAxNCA4IDkuNyAzLjcgMTQgMiAxMi4zIDYuMyA4IDIgMy43IDMuNyAyIDggNi4zIDEyLjMgMiAxNCAzLjcgOS43IDh6IiBzdHlsZT0iZmlsbC1vcGFjaXR5OjE7ZmlsbDojZmZmZmZmIi8+Cjwvc3ZnPgo=\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `@charset \"UTF-8\";\n/**\n * @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n *\n * @author Julius Härtl <jus@bitgrid.net>\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n */\n.toastify.dialogs {\n min-width: 200px;\n background: none;\n background-color: var(--color-main-background);\n color: var(--color-main-text);\n box-shadow: 0 0 6px 0 var(--color-box-shadow);\n padding: 0 12px;\n margin-top: 45px;\n position: fixed;\n z-index: 10100;\n border-radius: var(--border-radius);\n display: flex;\n align-items: center;\n}\n.toastify.dialogs .toast-undo-container {\n display: flex;\n align-items: center;\n}\n.toastify.dialogs .toast-undo-button,\n.toastify.dialogs .toast-close {\n position: static;\n overflow: hidden;\n box-sizing: border-box;\n min-width: 44px;\n height: 100%;\n padding: 12px;\n white-space: nowrap;\n background-repeat: no-repeat;\n background-position: center;\n background-color: transparent;\n min-height: 0;\n}\n.toastify.dialogs .toast-undo-button.toast-close,\n.toastify.dialogs .toast-close.toast-close {\n text-indent: 0;\n opacity: .4;\n border: none;\n min-height: 44px;\n margin-left: 10px;\n font-size: 0;\n}\n.toastify.dialogs .toast-undo-button.toast-close:before,\n.toastify.dialogs .toast-close.toast-close:before {\n background-image: url(${___CSS_LOADER_URL_REPLACEMENT_0___});\n content: \" \";\n filter: var(--background-invert-if-dark);\n display: inline-block;\n width: 16px;\n height: 16px;\n}\n.toastify.dialogs .toast-undo-button.toast-undo-button,\n.toastify.dialogs .toast-close.toast-undo-button {\n height: calc(100% - 6px);\n margin: 3px 3px 3px 12px;\n}\n.toastify.dialogs .toast-undo-button:hover,\n.toastify.dialogs .toast-undo-button:focus,\n.toastify.dialogs .toast-undo-button:active,\n.toastify.dialogs .toast-close:hover,\n.toastify.dialogs .toast-close:focus,\n.toastify.dialogs .toast-close:active {\n cursor: pointer;\n opacity: 1;\n}\n.toastify.dialogs.toastify-top {\n right: 10px;\n}\n.toastify.dialogs.toast-with-click {\n cursor: pointer;\n}\n.toastify.dialogs.toast-error {\n border-left: 3px solid var(--color-error);\n}\n.toastify.dialogs.toast-info {\n border-left: 3px solid var(--color-primary);\n}\n.toastify.dialogs.toast-warning {\n border-left: 3px solid var(--color-warning);\n}\n.toastify.dialogs.toast-success,\n.toastify.dialogs.toast-undo {\n border-left: 3px solid var(--color-success);\n}\n.theme--dark .toastify.dialogs .toast-close.toast-close:before {\n background-image: url(${___CSS_LOADER_URL_REPLACEMENT_1___});\n}\n._file-picker__file-icon_1vgv4_5 {\n width: 32px;\n height: 32px;\n min-width: 32px;\n min-height: 32px;\n background-repeat: no-repeat;\n background-size: contain;\n display: flex;\n justify-content: center;\n}\ntr.file-picker__row[data-v-6aded0d9] {\n height: var(--row-height, 50px);\n}\ntr.file-picker__row td[data-v-6aded0d9] {\n cursor: pointer;\n overflow: hidden;\n text-overflow: ellipsis;\n border-bottom: none;\n}\ntr.file-picker__row td[data-v-6aded0d9]:not(.row-checkbox) {\n padding-inline: 14px 0;\n}\ntr.file-picker__row td.row-size[data-v-6aded0d9] {\n text-align: end;\n padding-inline: 0 14px;\n}\ntr.file-picker__row td.row-name[data-v-6aded0d9] {\n padding-inline: 2px 0;\n}\n@keyframes gradient-6aded0d9 {\n 0% {\n background-position: 0% 50%;\n }\n 50% {\n background-position: 100% 50%;\n }\n to {\n background-position: 0% 50%;\n }\n}\n.loading-row .row-checkbox[data-v-6aded0d9] {\n text-align: center !important;\n}\n.loading-row span[data-v-6aded0d9] {\n display: inline-block;\n height: 24px;\n background: linear-gradient(to right, var(--color-background-darker), var(--color-text-maxcontrast), var(--color-background-darker));\n background-size: 600px 100%;\n border-radius: var(--border-radius);\n animation: gradient-6aded0d9 12s ease infinite;\n}\n.loading-row .row-wrapper[data-v-6aded0d9] {\n display: inline-flex;\n align-items: center;\n}\n.loading-row .row-checkbox span[data-v-6aded0d9] {\n width: 24px;\n}\n.loading-row .row-name span[data-v-6aded0d9]:last-of-type {\n margin-inline-start: 6px;\n width: 130px;\n}\n.loading-row .row-size span[data-v-6aded0d9] {\n width: 80px;\n}\n.loading-row .row-modified span[data-v-6aded0d9] {\n width: 90px;\n}\ntr.file-picker__row[data-v-d337ebac] {\n height: var(--row-height, 50px);\n}\ntr.file-picker__row td[data-v-d337ebac] {\n cursor: pointer;\n overflow: hidden;\n text-overflow: ellipsis;\n border-bottom: none;\n}\ntr.file-picker__row td[data-v-d337ebac]:not(.row-checkbox) {\n padding-inline: 14px 0;\n}\ntr.file-picker__row td.row-size[data-v-d337ebac] {\n text-align: end;\n padding-inline: 0 14px;\n}\ntr.file-picker__row td.row-name[data-v-d337ebac] {\n padding-inline: 2px 0;\n}\n.file-picker__row--selected[data-v-d337ebac] {\n background-color: var(--color-background-dark);\n}\n.file-picker__row[data-v-d337ebac]:hover {\n background-color: var(--color-background-hover);\n}\n.file-picker__name-container[data-v-d337ebac] {\n display: flex;\n justify-content: start;\n align-items: center;\n height: 100%;\n}\n.file-picker__file-name[data-v-d337ebac] {\n padding-inline-start: 6px;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.file-picker__file-extension[data-v-d337ebac] {\n color: var(--color-text-maxcontrast);\n min-width: fit-content;\n}\n.file-picker__header-preview[data-v-ecc68c3c] {\n width: 22px;\n height: 32px;\n flex: 0 0 auto;\n}\n.file-picker__files[data-v-ecc68c3c] {\n margin: 2px;\n margin-inline-start: 12px;\n overflow: scroll auto;\n}\n.file-picker__files table[data-v-ecc68c3c] {\n width: 100%;\n max-height: 100%;\n table-layout: fixed;\n}\n.file-picker__files th[data-v-ecc68c3c] {\n position: -webkit-sticky;\n position: sticky;\n z-index: 1;\n top: 0;\n background-color: var(--color-main-background);\n padding: 2px;\n}\n.file-picker__files th .header-wrapper[data-v-ecc68c3c] {\n display: flex;\n}\n.file-picker__files th.row-checkbox[data-v-ecc68c3c] {\n width: 44px;\n}\n.file-picker__files th.row-name[data-v-ecc68c3c] {\n width: 230px;\n}\n.file-picker__files th.row-size[data-v-ecc68c3c] {\n width: 100px;\n}\n.file-picker__files th.row-modified[data-v-ecc68c3c] {\n width: 120px;\n}\n.file-picker__files th[data-v-ecc68c3c]:not(.row-size) .button-vue__wrapper {\n justify-content: start;\n flex-direction: row-reverse;\n}\n.file-picker__files th[data-v-ecc68c3c]:not(.row-size) .button-vue {\n padding-inline: 16px 4px;\n}\n.file-picker__files th.row-size[data-v-ecc68c3c] .button-vue__wrapper {\n justify-content: end;\n}\n.file-picker__files th[data-v-ecc68c3c] .button-vue__wrapper {\n color: var(--color-text-maxcontrast);\n}\n.file-picker__files th[data-v-ecc68c3c] .button-vue__wrapper .button-vue__text {\n font-weight: 400;\n}\n.file-picker__breadcrumbs[data-v-3bc9efa5] {\n flex-grow: 0 !important;\n}\n.file-picker__side[data-v-fcfd0f23] {\n display: flex;\n flex-direction: column;\n align-items: start;\n gap: .5rem;\n min-width: 200px;\n padding-block: 2px;\n overflow: auto;\n}\n.file-picker__side[data-v-fcfd0f23] .button-vue__wrapper {\n justify-content: start;\n}\n.file-picker__filter-input[data-v-fcfd0f23] {\n margin-block: 7px;\n max-width: 260px;\n}\n@media (max-width: 736px) {\n .file-picker__side[data-v-fcfd0f23] {\n flex-direction: row;\n min-width: unset;\n }\n}\n@media (max-width: 512px) {\n .file-picker__side[data-v-fcfd0f23] {\n flex-direction: row;\n min-width: unset;\n }\n .file-picker__filter-input[data-v-fcfd0f23] {\n max-width: unset;\n }\n}\n.file-picker__navigation {\n padding-inline: 2px;\n}\n.file-picker__navigation,\n.file-picker__navigation * {\n box-sizing: border-box;\n}\n.file-picker__navigation .v-select.select {\n min-width: 220px;\n}\n@media (min-width: 513px) and (max-width: 736px) {\n .file-picker__navigation {\n gap: 11px;\n }\n}\n@media (max-width: 512px) {\n .file-picker__navigation {\n flex-direction: column-reverse !important;\n }\n}\n.file-picker__view[data-v-11d85233] {\n height: 50px;\n display: flex;\n justify-content: start;\n align-items: center;\n}\n.file-picker__view h3[data-v-11d85233] {\n font-weight: 700;\n height: fit-content;\n margin: 0;\n}\n.file-picker__main[data-v-11d85233] {\n box-sizing: border-box;\n width: 100%;\n display: flex;\n flex-direction: column;\n min-height: 0;\n flex: 1;\n padding-inline: 2px;\n}\n.file-picker__main *[data-v-11d85233] {\n box-sizing: border-box;\n}\n[data-v-11d85233] .file-picker {\n height: min(80vh, 800px);\n}\n@media (max-width: 512px) {\n [data-v-11d85233] .file-picker {\n height: calc(100% - 16px - var(--default-clickable-area));\n }\n}\n[data-v-11d85233] .file-picker__content {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./node_modules/@nextcloud/dialogs/dist/style.css\"],\"names\":[],\"mappings\":\"AAAA,gBAAgB;AAChB;;;;;;;;;;;;;;;;;;;;EAoBE;AACF;EACE,gBAAgB;EAChB,gBAAgB;EAChB,8CAA8C;EAC9C,6BAA6B;EAC7B,6CAA6C;EAC7C,eAAe;EACf,gBAAgB;EAChB,eAAe;EACf,cAAc;EACd,mCAAmC;EACnC,aAAa;EACb,mBAAmB;AACrB;AACA;EACE,aAAa;EACb,mBAAmB;AACrB;AACA;;EAEE,gBAAgB;EAChB,gBAAgB;EAChB,sBAAsB;EACtB,eAAe;EACf,YAAY;EACZ,aAAa;EACb,mBAAmB;EACnB,4BAA4B;EAC5B,2BAA2B;EAC3B,6BAA6B;EAC7B,aAAa;AACf;AACA;;EAEE,cAAc;EACd,WAAW;EACX,YAAY;EACZ,gBAAgB;EAChB,iBAAiB;EACjB,YAAY;AACd;AACA;;EAEE,yDAAiR;EACjR,YAAY;EACZ,wCAAwC;EACxC,qBAAqB;EACrB,WAAW;EACX,YAAY;AACd;AACA;;EAEE,wBAAwB;EACxB,wBAAwB;AAC1B;AACA;;;;;;EAME,eAAe;EACf,UAAU;AACZ;AACA;EACE,WAAW;AACb;AACA;EACE,eAAe;AACjB;AACA;EACE,yCAAyC;AAC3C;AACA;EACE,2CAA2C;AAC7C;AACA;EACE,2CAA2C;AAC7C;AACA;;EAEE,2CAA2C;AAC7C;AACA;EACE,yDAAiU;AACnU;AACA;EACE,WAAW;EACX,YAAY;EACZ,eAAe;EACf,gBAAgB;EAChB,4BAA4B;EAC5B,wBAAwB;EACxB,aAAa;EACb,uBAAuB;AACzB;AACA;EACE,+BAA+B;AACjC;AACA;EACE,eAAe;EACf,gBAAgB;EAChB,uBAAuB;EACvB,mBAAmB;AACrB;AACA;EACE,sBAAsB;AACxB;AACA;EACE,eAAe;EACf,sBAAsB;AACxB;AACA;EACE,qBAAqB;AACvB;AACA;EACE;IACE,2BAA2B;EAC7B;EACA;IACE,6BAA6B;EAC/B;EACA;IACE,2BAA2B;EAC7B;AACF;AACA;EACE,6BAA6B;AAC/B;AACA;EACE,qBAAqB;EACrB,YAAY;EACZ,oIAAoI;EACpI,2BAA2B;EAC3B,mCAAmC;EACnC,8CAA8C;AAChD;AACA;EACE,oBAAoB;EACpB,mBAAmB;AACrB;AACA;EACE,WAAW;AACb;AACA;EACE,wBAAwB;EACxB,YAAY;AACd;AACA;EACE,WAAW;AACb;AACA;EACE,WAAW;AACb;AACA;EACE,+BAA+B;AACjC;AACA;EACE,eAAe;EACf,gBAAgB;EAChB,uBAAuB;EACvB,mBAAmB;AACrB;AACA;EACE,sBAAsB;AACxB;AACA;EACE,eAAe;EACf,sBAAsB;AACxB;AACA;EACE,qBAAqB;AACvB;AACA;EACE,8CAA8C;AAChD;AACA;EACE,+CAA+C;AACjD;AACA;EACE,aAAa;EACb,sBAAsB;EACtB,mBAAmB;EACnB,YAAY;AACd;AACA;EACE,yBAAyB;EACzB,YAAY;EACZ,gBAAgB;EAChB,uBAAuB;AACzB;AACA;EACE,oCAAoC;EACpC,sBAAsB;AACxB;AACA;EACE,WAAW;EACX,YAAY;EACZ,cAAc;AAChB;AACA;EACE,WAAW;EACX,yBAAyB;EACzB,qBAAqB;AACvB;AACA;EACE,WAAW;EACX,gBAAgB;EAChB,mBAAmB;AACrB;AACA;EACE,wBAAwB;EACxB,gBAAgB;EAChB,UAAU;EACV,MAAM;EACN,8CAA8C;EAC9C,YAAY;AACd;AACA;EACE,aAAa;AACf;AACA;EACE,WAAW;AACb;AACA;EACE,YAAY;AACd;AACA;EACE,YAAY;AACd;AACA;EACE,YAAY;AACd;AACA;EACE,sBAAsB;EACtB,2BAA2B;AAC7B;AACA;EACE,wBAAwB;AAC1B;AACA;EACE,oBAAoB;AACtB;AACA;EACE,oCAAoC;AACtC;AACA;EACE,gBAAgB;AAClB;AACA;EACE,uBAAuB;AACzB;AACA;EACE,aAAa;EACb,sBAAsB;EACtB,kBAAkB;EAClB,UAAU;EACV,gBAAgB;EAChB,kBAAkB;EAClB,cAAc;AAChB;AACA;EACE,sBAAsB;AACxB;AACA;EACE,iBAAiB;EACjB,gBAAgB;AAClB;AACA;EACE;IACE,mBAAmB;IACnB,gBAAgB;EAClB;AACF;AACA;EACE;IACE,mBAAmB;IACnB,gBAAgB;EAClB;EACA;IACE,gBAAgB;EAClB;AACF;AACA;EACE,mBAAmB;AACrB;AACA;;EAEE,sBAAsB;AACxB;AACA;EACE,gBAAgB;AAClB;AACA;EACE;IACE,SAAS;EACX;AACF;AACA;EACE;IACE,yCAAyC;EAC3C;AACF;AACA;EACE,YAAY;EACZ,aAAa;EACb,sBAAsB;EACtB,mBAAmB;AACrB;AACA;EACE,gBAAgB;EAChB,mBAAmB;EACnB,SAAS;AACX;AACA;EACE,sBAAsB;EACtB,WAAW;EACX,aAAa;EACb,sBAAsB;EACtB,aAAa;EACb,OAAO;EACP,mBAAmB;AACrB;AACA;EACE,sBAAsB;AACxB;AACA;EACE,wBAAwB;AAC1B;AACA;EACE;IACE,yDAAyD;EAC3D;AACF;AACA;EACE,aAAa;EACb,sBAAsB;EACtB,gBAAgB;AAClB\",\"sourcesContent\":[\"@charset \\\"UTF-8\\\";\\n/**\\n * @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\\n *\\n * @author Julius Härtl <jus@bitgrid.net>\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n */\\n.toastify.dialogs {\\n min-width: 200px;\\n background: none;\\n background-color: var(--color-main-background);\\n color: var(--color-main-text);\\n box-shadow: 0 0 6px 0 var(--color-box-shadow);\\n padding: 0 12px;\\n margin-top: 45px;\\n position: fixed;\\n z-index: 10100;\\n border-radius: var(--border-radius);\\n display: flex;\\n align-items: center;\\n}\\n.toastify.dialogs .toast-undo-container {\\n display: flex;\\n align-items: center;\\n}\\n.toastify.dialogs .toast-undo-button,\\n.toastify.dialogs .toast-close {\\n position: static;\\n overflow: hidden;\\n box-sizing: border-box;\\n min-width: 44px;\\n height: 100%;\\n padding: 12px;\\n white-space: nowrap;\\n background-repeat: no-repeat;\\n background-position: center;\\n background-color: transparent;\\n min-height: 0;\\n}\\n.toastify.dialogs .toast-undo-button.toast-close,\\n.toastify.dialogs .toast-close.toast-close {\\n text-indent: 0;\\n opacity: .4;\\n border: none;\\n min-height: 44px;\\n margin-left: 10px;\\n font-size: 0;\\n}\\n.toastify.dialogs .toast-undo-button.toast-close:before,\\n.toastify.dialogs .toast-close.toast-close:before {\\n background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMTYiIHdpZHRoPSIxNiI+CiAgPHBhdGggZD0iTTE0IDEyLjNMMTIuMyAxNCA4IDkuNyAzLjcgMTQgMiAxMi4zIDYuMyA4IDIgMy43IDMuNyAyIDggNi4zIDEyLjMgMiAxNCAzLjcgOS43IDh6Ii8+Cjwvc3ZnPgo=);\\n content: \\\" \\\";\\n filter: var(--background-invert-if-dark);\\n display: inline-block;\\n width: 16px;\\n height: 16px;\\n}\\n.toastify.dialogs .toast-undo-button.toast-undo-button,\\n.toastify.dialogs .toast-close.toast-undo-button {\\n height: calc(100% - 6px);\\n margin: 3px 3px 3px 12px;\\n}\\n.toastify.dialogs .toast-undo-button:hover,\\n.toastify.dialogs .toast-undo-button:focus,\\n.toastify.dialogs .toast-undo-button:active,\\n.toastify.dialogs .toast-close:hover,\\n.toastify.dialogs .toast-close:focus,\\n.toastify.dialogs .toast-close:active {\\n cursor: pointer;\\n opacity: 1;\\n}\\n.toastify.dialogs.toastify-top {\\n right: 10px;\\n}\\n.toastify.dialogs.toast-with-click {\\n cursor: pointer;\\n}\\n.toastify.dialogs.toast-error {\\n border-left: 3px solid var(--color-error);\\n}\\n.toastify.dialogs.toast-info {\\n border-left: 3px solid var(--color-primary);\\n}\\n.toastify.dialogs.toast-warning {\\n border-left: 3px solid var(--color-warning);\\n}\\n.toastify.dialogs.toast-success,\\n.toastify.dialogs.toast-undo {\\n border-left: 3px solid var(--color-success);\\n}\\n.theme--dark .toastify.dialogs .toast-close.toast-close:before {\\n background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMTYiIHdpZHRoPSIxNiI+CiAgPHBhdGggZD0iTTE0IDEyLjNMMTIuMyAxNCA4IDkuNyAzLjcgMTQgMiAxMi4zIDYuMyA4IDIgMy43IDMuNyAyIDggNi4zIDEyLjMgMiAxNCAzLjcgOS43IDh6IiBzdHlsZT0iZmlsbC1vcGFjaXR5OjE7ZmlsbDojZmZmZmZmIi8+Cjwvc3ZnPgo=);\\n}\\n._file-picker__file-icon_1vgv4_5 {\\n width: 32px;\\n height: 32px;\\n min-width: 32px;\\n min-height: 32px;\\n background-repeat: no-repeat;\\n background-size: contain;\\n display: flex;\\n justify-content: center;\\n}\\ntr.file-picker__row[data-v-6aded0d9] {\\n height: var(--row-height, 50px);\\n}\\ntr.file-picker__row td[data-v-6aded0d9] {\\n cursor: pointer;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n border-bottom: none;\\n}\\ntr.file-picker__row td[data-v-6aded0d9]:not(.row-checkbox) {\\n padding-inline: 14px 0;\\n}\\ntr.file-picker__row td.row-size[data-v-6aded0d9] {\\n text-align: end;\\n padding-inline: 0 14px;\\n}\\ntr.file-picker__row td.row-name[data-v-6aded0d9] {\\n padding-inline: 2px 0;\\n}\\n@keyframes gradient-6aded0d9 {\\n 0% {\\n background-position: 0% 50%;\\n }\\n 50% {\\n background-position: 100% 50%;\\n }\\n to {\\n background-position: 0% 50%;\\n }\\n}\\n.loading-row .row-checkbox[data-v-6aded0d9] {\\n text-align: center !important;\\n}\\n.loading-row span[data-v-6aded0d9] {\\n display: inline-block;\\n height: 24px;\\n background: linear-gradient(to right, var(--color-background-darker), var(--color-text-maxcontrast), var(--color-background-darker));\\n background-size: 600px 100%;\\n border-radius: var(--border-radius);\\n animation: gradient-6aded0d9 12s ease infinite;\\n}\\n.loading-row .row-wrapper[data-v-6aded0d9] {\\n display: inline-flex;\\n align-items: center;\\n}\\n.loading-row .row-checkbox span[data-v-6aded0d9] {\\n width: 24px;\\n}\\n.loading-row .row-name span[data-v-6aded0d9]:last-of-type {\\n margin-inline-start: 6px;\\n width: 130px;\\n}\\n.loading-row .row-size span[data-v-6aded0d9] {\\n width: 80px;\\n}\\n.loading-row .row-modified span[data-v-6aded0d9] {\\n width: 90px;\\n}\\ntr.file-picker__row[data-v-d337ebac] {\\n height: var(--row-height, 50px);\\n}\\ntr.file-picker__row td[data-v-d337ebac] {\\n cursor: pointer;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n border-bottom: none;\\n}\\ntr.file-picker__row td[data-v-d337ebac]:not(.row-checkbox) {\\n padding-inline: 14px 0;\\n}\\ntr.file-picker__row td.row-size[data-v-d337ebac] {\\n text-align: end;\\n padding-inline: 0 14px;\\n}\\ntr.file-picker__row td.row-name[data-v-d337ebac] {\\n padding-inline: 2px 0;\\n}\\n.file-picker__row--selected[data-v-d337ebac] {\\n background-color: var(--color-background-dark);\\n}\\n.file-picker__row[data-v-d337ebac]:hover {\\n background-color: var(--color-background-hover);\\n}\\n.file-picker__name-container[data-v-d337ebac] {\\n display: flex;\\n justify-content: start;\\n align-items: center;\\n height: 100%;\\n}\\n.file-picker__file-name[data-v-d337ebac] {\\n padding-inline-start: 6px;\\n min-width: 0;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n}\\n.file-picker__file-extension[data-v-d337ebac] {\\n color: var(--color-text-maxcontrast);\\n min-width: fit-content;\\n}\\n.file-picker__header-preview[data-v-ecc68c3c] {\\n width: 22px;\\n height: 32px;\\n flex: 0 0 auto;\\n}\\n.file-picker__files[data-v-ecc68c3c] {\\n margin: 2px;\\n margin-inline-start: 12px;\\n overflow: scroll auto;\\n}\\n.file-picker__files table[data-v-ecc68c3c] {\\n width: 100%;\\n max-height: 100%;\\n table-layout: fixed;\\n}\\n.file-picker__files th[data-v-ecc68c3c] {\\n position: -webkit-sticky;\\n position: sticky;\\n z-index: 1;\\n top: 0;\\n background-color: var(--color-main-background);\\n padding: 2px;\\n}\\n.file-picker__files th .header-wrapper[data-v-ecc68c3c] {\\n display: flex;\\n}\\n.file-picker__files th.row-checkbox[data-v-ecc68c3c] {\\n width: 44px;\\n}\\n.file-picker__files th.row-name[data-v-ecc68c3c] {\\n width: 230px;\\n}\\n.file-picker__files th.row-size[data-v-ecc68c3c] {\\n width: 100px;\\n}\\n.file-picker__files th.row-modified[data-v-ecc68c3c] {\\n width: 120px;\\n}\\n.file-picker__files th[data-v-ecc68c3c]:not(.row-size) .button-vue__wrapper {\\n justify-content: start;\\n flex-direction: row-reverse;\\n}\\n.file-picker__files th[data-v-ecc68c3c]:not(.row-size) .button-vue {\\n padding-inline: 16px 4px;\\n}\\n.file-picker__files th.row-size[data-v-ecc68c3c] .button-vue__wrapper {\\n justify-content: end;\\n}\\n.file-picker__files th[data-v-ecc68c3c] .button-vue__wrapper {\\n color: var(--color-text-maxcontrast);\\n}\\n.file-picker__files th[data-v-ecc68c3c] .button-vue__wrapper .button-vue__text {\\n font-weight: 400;\\n}\\n.file-picker__breadcrumbs[data-v-3bc9efa5] {\\n flex-grow: 0 !important;\\n}\\n.file-picker__side[data-v-fcfd0f23] {\\n display: flex;\\n flex-direction: column;\\n align-items: start;\\n gap: .5rem;\\n min-width: 200px;\\n padding-block: 2px;\\n overflow: auto;\\n}\\n.file-picker__side[data-v-fcfd0f23] .button-vue__wrapper {\\n justify-content: start;\\n}\\n.file-picker__filter-input[data-v-fcfd0f23] {\\n margin-block: 7px;\\n max-width: 260px;\\n}\\n@media (max-width: 736px) {\\n .file-picker__side[data-v-fcfd0f23] {\\n flex-direction: row;\\n min-width: unset;\\n }\\n}\\n@media (max-width: 512px) {\\n .file-picker__side[data-v-fcfd0f23] {\\n flex-direction: row;\\n min-width: unset;\\n }\\n .file-picker__filter-input[data-v-fcfd0f23] {\\n max-width: unset;\\n }\\n}\\n.file-picker__navigation {\\n padding-inline: 2px;\\n}\\n.file-picker__navigation,\\n.file-picker__navigation * {\\n box-sizing: border-box;\\n}\\n.file-picker__navigation .v-select.select {\\n min-width: 220px;\\n}\\n@media (min-width: 513px) and (max-width: 736px) {\\n .file-picker__navigation {\\n gap: 11px;\\n }\\n}\\n@media (max-width: 512px) {\\n .file-picker__navigation {\\n flex-direction: column-reverse !important;\\n }\\n}\\n.file-picker__view[data-v-11d85233] {\\n height: 50px;\\n display: flex;\\n justify-content: start;\\n align-items: center;\\n}\\n.file-picker__view h3[data-v-11d85233] {\\n font-weight: 700;\\n height: fit-content;\\n margin: 0;\\n}\\n.file-picker__main[data-v-11d85233] {\\n box-sizing: border-box;\\n width: 100%;\\n display: flex;\\n flex-direction: column;\\n min-height: 0;\\n flex: 1;\\n padding-inline: 2px;\\n}\\n.file-picker__main *[data-v-11d85233] {\\n box-sizing: border-box;\\n}\\n[data-v-11d85233] .file-picker {\\n height: min(80vh, 800px);\\n}\\n@media (max-width: 512px) {\\n [data-v-11d85233] .file-picker {\\n height: calc(100% - 16px - var(--default-clickable-area));\\n }\\n}\\n[data-v-11d85233] .file-picker__content {\\n display: flex;\\n flex-direction: column;\\n overflow: hidden;\\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, `.template-picker__item[data-v-0859a92c]{display:flex}.template-picker__label[data-v-0859a92c]{display:flex;align-items:center;flex:1 1;flex-direction:column}.template-picker__label[data-v-0859a92c],.template-picker__label *[data-v-0859a92c]{cursor:pointer;user-select:none}.template-picker__label[data-v-0859a92c]::before{display:none !important}.template-picker__preview[data-v-0859a92c]{display:block;overflow:hidden;flex:1 1;width:var(--width);min-height:var(--height);max-height:var(--height);padding:0;border:var(--border) solid var(--color-border);border-radius:var(--border-radius-large)}input:checked+label>.template-picker__preview[data-v-0859a92c]{border-color:var(--color-primary-element)}.template-picker__preview--failed[data-v-0859a92c]{display:flex}.template-picker__image[data-v-0859a92c]{max-width:100%;background-color:var(--color-main-background);object-fit:cover}.template-picker__preview--failed .template-picker__image[data-v-0859a92c]{width:calc(var(--margin)*8);margin:auto;background-color:rgba(0,0,0,0) !important;object-fit:initial}.template-picker__title[data-v-0859a92c]{overflow:hidden;max-width:calc(var(--width) + 4px);padding:var(--margin);white-space:nowrap;text-overflow:ellipsis}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/components/TemplatePreview.vue\"],\"names\":[],\"mappings\":\"AAGC,wCACC,YAAA,CAGD,yCACC,YAAA,CAEA,kBAAA,CACA,QAAA,CACA,qBAAA,CAEA,oFACC,cAAA,CACA,gBAAA,CAGD,iDACC,uBAAA,CAIF,2CACC,aAAA,CACA,eAAA,CAEA,QAAA,CACA,kBAAA,CACA,wBAAA,CACA,wBAAA,CACA,SAAA,CACA,8CAAA,CACA,wCAAA,CAEA,+DACC,yCAAA,CAGD,mDAEC,YAAA,CAIF,yCACC,cAAA,CACA,6CAAA,CAEA,gBAAA,CAID,2EACC,2BAAA,CAEA,WAAA,CACA,yCAAA,CAEA,kBAAA,CAGD,yCACC,eAAA,CAEA,kCAAA,CACA,qBAAA,CACA,kBAAA,CACA,sBAAA\",\"sourcesContent\":[\"\\n\\n.template-picker {\\n\\t&__item {\\n\\t\\tdisplay: flex;\\n\\t}\\n\\n\\t&__label {\\n\\t\\tdisplay: flex;\\n\\t\\t// Align in the middle of the grid\\n\\t\\talign-items: center;\\n\\t\\tflex: 1 1;\\n\\t\\tflex-direction: column;\\n\\n\\t\\t&, * {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\tuser-select: none;\\n\\t\\t}\\n\\n\\t\\t&::before {\\n\\t\\t\\tdisplay: none !important;\\n\\t\\t}\\n\\t}\\n\\n\\t&__preview {\\n\\t\\tdisplay: block;\\n\\t\\toverflow: hidden;\\n\\t\\t// Stretch so all entries are the same width\\n\\t\\tflex: 1 1;\\n\\t\\twidth: var(--width);\\n\\t\\tmin-height: var(--height);\\n\\t\\tmax-height: var(--height);\\n\\t\\tpadding: 0;\\n\\t\\tborder: var(--border) solid var(--color-border);\\n\\t\\tborder-radius: var(--border-radius-large);\\n\\n\\t\\tinput:checked + label > & {\\n\\t\\t\\tborder-color: var(--color-primary-element);\\n\\t\\t}\\n\\n\\t\\t&--failed {\\n\\t\\t\\t// Make sure to properly center fallback icon\\n\\t\\t\\tdisplay: flex;\\n\\t\\t}\\n\\t}\\n\\n\\t&__image {\\n\\t\\tmax-width: 100%;\\n\\t\\tbackground-color: var(--color-main-background);\\n\\n\\t\\tobject-fit: cover;\\n\\t}\\n\\n\\t// Failed preview, fallback to mime icon\\n\\t&__preview--failed &__image {\\n\\t\\twidth: calc(var(--margin) * 8);\\n\\t\\t// Center mime icon\\n\\t\\tmargin: auto;\\n\\t\\tbackground-color: transparent !important;\\n\\n\\t\\tobject-fit: initial;\\n\\t}\\n\\n\\t&__title {\\n\\t\\toverflow: hidden;\\n\\t\\t// also count preview border\\n\\t\\tmax-width: calc(var(--width) + 2*2px);\\n\\t\\tpadding: var(--margin);\\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, `.templates-picker__form[data-v-48121b39]{padding:calc(var(--margin)*2);padding-bottom:0}.templates-picker__form h2[data-v-48121b39]{text-align:center;font-weight:bold;margin:var(--margin) 0 calc(var(--margin)*2)}.templates-picker__list[data-v-48121b39]{display:grid;grid-gap:calc(var(--margin)*2);grid-auto-columns:1fr;max-width:calc(var(--fullwidth)*6);grid-template-columns:repeat(auto-fit, var(--fullwidth));grid-auto-rows:1fr;justify-content:center}.templates-picker__buttons[data-v-48121b39]{display:flex;justify-content:end;padding:calc(var(--margin)*2) var(--margin);position:sticky;bottom:0;background-image:linear-gradient(0, var(--gradient-main-background))}.templates-picker__buttons button[data-v-48121b39],.templates-picker__buttons input[type=submit][data-v-48121b39]{height:44px}.templates-picker[data-v-48121b39] .modal-container{position:relative}.templates-picker__loading[data-v-48121b39]{position:absolute;top:0;left:0;justify-content:center;width:100%;height:100%;margin:0;background-color:var(--color-main-background-translucent)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/views/TemplatePicker.vue\"],\"names\":[],\"mappings\":\"AAEC,yCACC,6BAAA,CAEA,gBAAA,CAEA,4CACC,iBAAA,CACA,gBAAA,CACA,4CAAA,CAIF,yCACC,YAAA,CACA,8BAAA,CACA,qBAAA,CAEA,kCAAA,CACA,wDAAA,CAEA,kBAAA,CAEA,sBAAA,CAGD,4CACC,YAAA,CACA,mBAAA,CACA,2CAAA,CACA,eAAA,CACA,QAAA,CACA,oEAAA,CAEA,kHACC,WAAA,CAKF,oDACC,iBAAA,CAGD,4CACC,iBAAA,CACA,KAAA,CACA,MAAA,CACA,sBAAA,CACA,UAAA,CACA,WAAA,CACA,QAAA,CACA,yDAAA\",\"sourcesContent\":[\"\\n.templates-picker {\\n\\t&__form {\\n\\t\\tpadding: calc(var(--margin) * 2);\\n\\t\\t// Will be handled by the buttons\\n\\t\\tpadding-bottom: 0;\\n\\n\\t\\th2 {\\n\\t\\t\\ttext-align: center;\\n\\t\\t\\tfont-weight: bold;\\n\\t\\t\\tmargin: var(--margin) 0 calc(var(--margin) * 2);\\n\\t\\t}\\n\\t}\\n\\n\\t&__list {\\n\\t\\tdisplay: grid;\\n\\t\\tgrid-gap: calc(var(--margin) * 2);\\n\\t\\tgrid-auto-columns: 1fr;\\n\\t\\t// We want maximum 5 columns. Putting 6 as we don't count the grid gap. So it will always be lower than 6\\n\\t\\tmax-width: calc(var(--fullwidth) * 6);\\n\\t\\tgrid-template-columns: repeat(auto-fit, var(--fullwidth));\\n\\t\\t// Make sure all rows are the same height\\n\\t\\tgrid-auto-rows: 1fr;\\n\\t\\t// Center the columns set\\n\\t\\tjustify-content: center;\\n\\t}\\n\\n\\t&__buttons {\\n\\t\\tdisplay: flex;\\n\\t\\tjustify-content: end;\\n\\t\\tpadding: calc(var(--margin) * 2) var(--margin);\\n\\t\\tposition: sticky;\\n\\t\\tbottom: 0;\\n\\t\\tbackground-image: linear-gradient(0, var(--gradient-main-background));\\n\\n\\t\\tbutton, input[type='submit'] {\\n\\t\\t\\theight: 44px;\\n\\t\\t}\\n\\t}\\n\\n\\t// Make sure we're relative for the loading emptycontent on top\\n\\t::v-deep .modal-container {\\n\\t\\tposition: relative;\\n\\t}\\n\\n\\t&__loading {\\n\\t\\tposition: absolute;\\n\\t\\ttop: 0;\\n\\t\\tleft: 0;\\n\\t\\tjustify-content: center;\\n\\t\\twidth: 100%;\\n\\t\\theight: 100%;\\n\\t\\tmargin: 0;\\n\\t\\tbackground-color: var(--color-main-background-translucent);\\n\\t}\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","var http = require('http')\nvar url = require('url')\n\nvar https = module.exports\n\nfor (var key in http) {\n if (http.hasOwnProperty(key)) https[key] = http[key]\n}\n\nhttps.request = function (params, cb) {\n params = validateParams(params)\n return http.request.call(this, params, cb)\n}\n\nhttps.get = function (params, cb) {\n params = validateParams(params)\n return http.get.call(this, params, cb)\n}\n\nfunction validateParams (params) {\n if (typeof params === 'string') {\n params = url.parse(params)\n }\n if (!params.protocol) {\n params.protocol = 'https:'\n }\n if (params.protocol !== 'https:') {\n throw new Error('Protocol \"' + params.protocol + '\" not supported. Expected \"https:\"')\n }\n return params\n}\n","'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar codes = {};\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n\n var NodeError =\n /*#__PURE__*/\n function (_Base) {\n _inheritsLoose(NodeError, _Base);\n\n function NodeError(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n\n return NodeError;\n }(Base);\n\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"';\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n var determiner;\n\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n var msg;\n\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n\n msg += \". Received type \".concat(typeof actual);\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented';\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\nmodule.exports.codes = codes;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/*<replacement>*/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n};\n/*</replacement>*/\n\nmodule.exports = Duplex;\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\nrequire('inherits')(Duplex, Readable);\n{\n // Allow the keys array to be GC'ed.\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once('end', onend);\n }\n }\n}\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n process.nextTick(onEndNT, this);\n}\nfunction onEndNT(self) {\n self.end();\n}\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\nvar Transform = require('./_stream_transform');\nrequire('inherits')(PassThrough, Transform);\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n}\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nmodule.exports = Readable;\n\n/*<replacement>*/\nvar Duplex;\n/*</replacement>*/\n\nReadable.ReadableState = ReadableState;\n\n/*<replacement>*/\nvar EE = require('events').EventEmitter;\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/*</replacement>*/\n\n/*<replacement>*/\nvar Stream = require('./internal/streams/stream');\n/*</replacement>*/\n\nvar Buffer = require('buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/*<replacement>*/\nvar debugUtil = require('util');\nvar debug;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/*</replacement>*/\n\nvar BufferList = require('./internal/streams/buffer_list');\nvar destroyImpl = require('./internal/streams/destroy');\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;\n\n// Lazy loaded to improve the startup performance.\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\nrequire('inherits')(Readable, Stream);\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\nfunction ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true;\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = options.emitClose !== false;\n\n // Should .destroy() be called after 'end' (and potentially 'finish')\n this.autoDestroy = !!options.autoDestroy;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n if (!(this instanceof Readable)) return new Readable(options);\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex);\n\n // legacy\n this.readable = true;\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n Stream.call(this);\n}\nObject.defineProperty(Readable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug('readableAddChunk', chunk);\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n }\n\n // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit('data', chunk);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n }\n return er;\n}\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder;\n // If setEncoding(null), decoder.encoding equals utf8\n this._readableState.encoding = this._readableState.decoder.encoding;\n\n // Iterate over current buffer to convert already stored Buffers:\n var p = this._readableState.buffer.head;\n var content = '';\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n this._readableState.buffer.clear();\n if (content !== '') this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n};\n\n// Don't raise the hwm > 1GB\nvar MAX_HWM = 0x40000000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\nfunction onEofChunk(stream, state) {\n debug('onEofChunk');\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n debug('emitReadable', state.needReadable, state.emittedReadable);\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n}\nfunction emitReadable_(stream) {\n var state = stream._readableState;\n debug('emitReadable_', state.destroyed, state.length, state.ended);\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n }\n\n // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n}\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n var ret = dest.write(chunk);\n debug('dest.write', ret);\n if (ret === false) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n return dest;\n};\nfunction pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n for (var i = 0; i < len; i++) dests[i].emit('unpipe', this, {\n hasUnpiped: false\n });\n return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n if (ev === 'data') {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0;\n\n // Try start flowing on next tick if stream isn't explicitly paused\n if (state.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug('on readable', state.length, state.reading);\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\nReadable.prototype.removeListener = function (ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n return res;\n};\nReadable.prototype.removeAllListeners = function (ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n return res;\n};\nfunction updateReadableListening(self) {\n var state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true;\n\n // crude way to check if we should resume\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n }\n}\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n state.paused = false;\n return this;\n};\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n}\nfunction resume_(stream, state) {\n debug('resume', state.reading);\n if (!state.reading) {\n stream.read(0);\n }\n state.resumeScheduled = false;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n this._readableState.paused = true;\n return this;\n};\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null);\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n var state = this._readableState;\n var paused = false;\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n _this.push(null);\n });\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n return this;\n};\nif (typeof Symbol === 'function') {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = require('./internal/streams/async_iterator');\n }\n return createReadableStreamAsyncIterator(this);\n };\n}\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n});\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n}\nfunction endReadable(stream) {\n var state = stream._readableState;\n debug('endReadable', state.endEmitted);\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n}\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length);\n\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n var wState = stream._writableState;\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n}\nif (typeof Symbol === 'function') {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = require('./internal/streams/from');\n }\n return from(Readable, iterable, opts);\n };\n}\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\nvar _require$codes = require('../errors').codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\nvar Duplex = require('./_stream_duplex');\nrequire('inherits')(Transform, Duplex);\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n if (cb === null) {\n return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n }\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null)\n // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\nfunction prefinish() {\n var _this = this;\n if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\nTransform.prototype._destroy = function (err, cb) {\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n });\n};\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null)\n // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\nmodule.exports = Writable;\n\n/* <replacement> */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* </replacement> */\n\n/*<replacement>*/\nvar Duplex;\n/*</replacement>*/\n\nWritable.WritableState = WritableState;\n\n/*<replacement>*/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/*</replacement>*/\n\n/*<replacement>*/\nvar Stream = require('./internal/streams/stream');\n/*</replacement>*/\n\nvar Buffer = require('buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\nvar destroyImpl = require('./internal/streams/destroy');\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nrequire('inherits')(Writable, Stream);\nfunction nop() {}\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = options.emitClose !== false;\n\n // Should .destroy() be called after 'finish' (and potentially 'end')\n this.autoDestroy = !!options.autoDestroy;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex);\n\n // legacy.\n this.writable = true;\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END();\n // TODO: defer error events consistently everywhere, not just the cb\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n return true;\n}\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n return ret;\n}\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n process.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n if (entry === null) state.lastBufferedRequest = null;\n }\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\nWritable.prototype._writev = null;\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\nObject.defineProperty(Writable.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n errorOrDestroy(stream, err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n return need;\n}\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n\n // reuse the free corkReq.\n state.corkedRequestsFree.next = corkReq;\n}\nObject.defineProperty(Writable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\n};","'use strict';\n\nvar _Object$setPrototypeO;\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar finished = require('./end-of-stream');\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\nfunction createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n}\nfunction readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n if (resolve !== null) {\n var data = iter[kStream].read();\n // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n}\nfunction onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n process.nextTick(readAndResolve, iter);\n}\nfunction wrapForNext(lastPromise, iter) {\n return function (resolve, reject) {\n lastPromise.then(function () {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n}\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n next: function next() {\n var _this = this;\n // if we have detected an error in the meanwhile\n // reject straight away\n var error = this[kError];\n if (error !== null) {\n return Promise.reject(error);\n }\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise(function (resolve, reject) {\n process.nextTick(function () {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n }\n\n // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n var lastPromise = this[kLastPromise];\n var promise;\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n var data = this[kStream].read();\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n promise = new Promise(this[kHandlePromise]);\n }\n this[kLastPromise] = promise;\n return promise;\n }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n var _this2 = this;\n // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n return new Promise(function (resolve, reject) {\n _this2[kStream].destroy(null, function (err) {\n if (err) {\n reject(err);\n return;\n }\n resolve(createIterResult(undefined, true));\n });\n });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function (err) {\n if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n var reject = iterator[kLastReject];\n // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n iterator[kError] = err;\n return;\n }\n var resolve = iterator[kLastResolve];\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n};\nmodule.exports = createReadableStreamAsyncIterator;","'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar _require = require('buffer'),\n Buffer = _require.Buffer;\nvar _require2 = require('util'),\n inspect = _require2.inspect;\nvar custom = inspect && inspect.custom || 'inspect';\nfunction copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n}\nmodule.exports = /*#__PURE__*/function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n _createClass(BufferList, [{\n key: \"push\",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: \"join\",\n value: function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) ret += s + p.data;\n return ret;\n }\n }, {\n key: \"concat\",\n value: function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n }\n\n // Consumes a specified amount of bytes or characters from the buffered data.\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n }\n\n // Consumes a specified amount of characters from the buffered data.\n }, {\n key: \"_getString\",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n\n // Consumes a specified amount of bytes from the buffered data.\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n\n // Make sure the linked list only shows the minimal necessary information.\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread(_objectSpread({}, options), {}, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n return BufferList;\n}();","'use strict';\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n return this;\n}\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\n}\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};","// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n\n'use strict';\n\nvar ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n callback.apply(this, args);\n };\n}\nfunction noop() {}\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n var writableEnded = stream._writableState && stream._writableState.finished;\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n var onclose = function onclose() {\n var err;\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\n };\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\nmodule.exports = eos;","module.exports = function () {\n throw new Error('Readable.from is not available in the browser')\n};\n","// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n\n'use strict';\n\nvar eos;\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n callback.apply(void 0, arguments);\n };\n}\nvar _require$codes = require('../../../errors').codes,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\nfunction noop(err) {\n // Rethrow the error if it exists to avoid swallowing it\n if (err) throw err;\n}\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\nfunction destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on('close', function () {\n closed = true;\n });\n if (eos === undefined) eos = require('./end-of-stream');\n eos(stream, {\n readable: reading,\n writable: writing\n }, function (err) {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function (err) {\n if (closed) return;\n if (destroyed) return;\n destroyed = true;\n\n // request.destroy just do .end - .abort is what we want\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === 'function') return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED('pipe'));\n };\n}\nfunction call(fn) {\n fn();\n}\nfunction pipe(from, to) {\n return from.pipe(to);\n}\nfunction popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== 'function') return noop;\n return streams.pop();\n}\nfunction pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n var callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams');\n }\n var error;\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n}\nmodule.exports = pipeline;","'use strict';\n\nvar ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n return Math.floor(hwm);\n }\n\n // Default value\n return state.objectMode ? 16 : 16 * 1024;\n}\nmodule.exports = {\n getHighWaterMark: getHighWaterMark\n};","module.exports = require('events').EventEmitter;\n","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\nexports.finished = require('./lib/internal/streams/end-of-stream.js');\nexports.pipeline = require('./lib/internal/streams/pipeline.js');\n","/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nmodule.exports = Stream;\n\nvar EE = require('events').EventEmitter;\nvar inherits = require('inherits');\n\ninherits(Stream, EE);\nStream.Readable = require('readable-stream/lib/_stream_readable.js');\nStream.Writable = require('readable-stream/lib/_stream_writable.js');\nStream.Duplex = require('readable-stream/lib/_stream_duplex.js');\nStream.Transform = require('readable-stream/lib/_stream_transform.js');\nStream.PassThrough = require('readable-stream/lib/_stream_passthrough.js');\nStream.finished = require('readable-stream/lib/internal/streams/end-of-stream.js')\nStream.pipeline = require('readable-stream/lib/internal/streams/pipeline.js')\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream;\n\n\n\n// old-style streams. Note that the pipe method (the only relevant\n// part of this class) is overridden in the Readable class.\n\nfunction Stream() {\n EE.call(this);\n}\n\nStream.prototype.pipe = function(dest, options) {\n var source = this;\n\n function ondata(chunk) {\n if (dest.writable) {\n if (false === dest.write(chunk) && source.pause) {\n source.pause();\n }\n }\n }\n\n source.on('data', ondata);\n\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume();\n }\n }\n\n dest.on('drain', ondrain);\n\n // If the 'end' option is not supplied, dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on('end', onend);\n source.on('close', onclose);\n }\n\n var didOnEnd = false;\n function onend() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n dest.end();\n }\n\n\n function onclose() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n if (typeof dest.destroy === 'function') dest.destroy();\n }\n\n // don't leave dangling pipes when there are errors.\n function onerror(er) {\n cleanup();\n if (EE.listenerCount(this, 'error') === 0) {\n throw er; // Unhandled stream error in pipe.\n }\n }\n\n source.on('error', onerror);\n dest.on('error', onerror);\n\n // remove all the event listeners that were added.\n function cleanup() {\n source.removeListener('data', ondata);\n dest.removeListener('drain', ondrain);\n\n source.removeListener('end', onend);\n source.removeListener('close', onclose);\n\n source.removeListener('error', onerror);\n dest.removeListener('error', onerror);\n\n source.removeListener('end', cleanup);\n source.removeListener('close', cleanup);\n\n dest.removeListener('close', cleanup);\n }\n\n source.on('end', cleanup);\n source.on('close', cleanup);\n\n dest.on('close', cleanup);\n\n dest.emit('pipe', source);\n\n // Allow for unix-like usage: A.pipe(B).pipe(C)\n return dest;\n};\n","var ClientRequest = require('./lib/request')\nvar response = require('./lib/response')\nvar extend = require('xtend')\nvar statusCodes = require('builtin-status-codes')\nvar url = require('url')\n\nvar http = exports\n\nhttp.request = function (opts, cb) {\n\tif (typeof opts === 'string')\n\t\topts = url.parse(opts)\n\telse\n\t\topts = extend(opts)\n\n\t// Normally, the page is loaded from http or https, so not specifying a protocol\n\t// will result in a (valid) protocol-relative url. However, this won't work if\n\t// the protocol is something else, like 'file:'\n\tvar defaultProtocol = global.location.protocol.search(/^https?:$/) === -1 ? 'http:' : ''\n\n\tvar protocol = opts.protocol || defaultProtocol\n\tvar host = opts.hostname || opts.host\n\tvar port = opts.port\n\tvar path = opts.path || '/'\n\n\t// Necessary for IPv6 addresses\n\tif (host && host.indexOf(':') !== -1)\n\t\thost = '[' + host + ']'\n\n\t// This may be a relative url. The browser should always be able to interpret it correctly.\n\topts.url = (host ? (protocol + '//' + host) : '') + (port ? ':' + port : '') + path\n\topts.method = (opts.method || 'GET').toUpperCase()\n\topts.headers = opts.headers || {}\n\n\t// Also valid opts.auth, opts.mode\n\n\tvar req = new ClientRequest(opts)\n\tif (cb)\n\t\treq.on('response', cb)\n\treturn req\n}\n\nhttp.get = function get (opts, cb) {\n\tvar req = http.request(opts, cb)\n\treq.end()\n\treturn req\n}\n\nhttp.ClientRequest = ClientRequest\nhttp.IncomingMessage = response.IncomingMessage\n\nhttp.Agent = function () {}\nhttp.Agent.defaultMaxSockets = 4\n\nhttp.globalAgent = new http.Agent()\n\nhttp.STATUS_CODES = statusCodes\n\nhttp.METHODS = [\n\t'CHECKOUT',\n\t'CONNECT',\n\t'COPY',\n\t'DELETE',\n\t'GET',\n\t'HEAD',\n\t'LOCK',\n\t'M-SEARCH',\n\t'MERGE',\n\t'MKACTIVITY',\n\t'MKCOL',\n\t'MOVE',\n\t'NOTIFY',\n\t'OPTIONS',\n\t'PATCH',\n\t'POST',\n\t'PROPFIND',\n\t'PROPPATCH',\n\t'PURGE',\n\t'PUT',\n\t'REPORT',\n\t'SEARCH',\n\t'SUBSCRIBE',\n\t'TRACE',\n\t'UNLOCK',\n\t'UNSUBSCRIBE'\n]","exports.fetch = isFunction(global.fetch) && isFunction(global.ReadableStream)\n\nexports.writableStream = isFunction(global.WritableStream)\n\nexports.abortController = isFunction(global.AbortController)\n\n// The xhr request to example.com may violate some restrictive CSP configurations,\n// so if we're running in a browser that supports `fetch`, avoid calling getXHR()\n// and assume support for certain features below.\nvar xhr\nfunction getXHR () {\n\t// Cache the xhr value\n\tif (xhr !== undefined) return xhr\n\n\tif (global.XMLHttpRequest) {\n\t\txhr = new global.XMLHttpRequest()\n\t\t// If XDomainRequest is available (ie only, where xhr might not work\n\t\t// cross domain), use the page location. Otherwise use example.com\n\t\t// Note: this doesn't actually make an http request.\n\t\ttry {\n\t\t\txhr.open('GET', global.XDomainRequest ? '/' : 'https://example.com')\n\t\t} catch(e) {\n\t\t\txhr = null\n\t\t}\n\t} else {\n\t\t// Service workers don't have XHR\n\t\txhr = null\n\t}\n\treturn xhr\n}\n\nfunction checkTypeSupport (type) {\n\tvar xhr = getXHR()\n\tif (!xhr) return false\n\ttry {\n\t\txhr.responseType = type\n\t\treturn xhr.responseType === type\n\t} catch (e) {}\n\treturn false\n}\n\n// If fetch is supported, then arraybuffer will be supported too. Skip calling\n// checkTypeSupport(), since that calls getXHR().\nexports.arraybuffer = exports.fetch || checkTypeSupport('arraybuffer')\n\n// These next two tests unavoidably show warnings in Chrome. Since fetch will always\n// be used if it's available, just return false for these to avoid the warnings.\nexports.msstream = !exports.fetch && checkTypeSupport('ms-stream')\nexports.mozchunkedarraybuffer = !exports.fetch && checkTypeSupport('moz-chunked-arraybuffer')\n\n// If fetch is supported, then overrideMimeType will be supported too. Skip calling\n// getXHR().\nexports.overrideMimeType = exports.fetch || (getXHR() ? isFunction(getXHR().overrideMimeType) : false)\n\nfunction isFunction (value) {\n\treturn typeof value === 'function'\n}\n\nxhr = null // Help gc\n","var capability = require('./capability')\nvar inherits = require('inherits')\nvar response = require('./response')\nvar stream = require('readable-stream')\n\nvar IncomingMessage = response.IncomingMessage\nvar rStates = response.readyStates\n\nfunction decideMode (preferBinary, useFetch) {\n\tif (capability.fetch && useFetch) {\n\t\treturn 'fetch'\n\t} else if (capability.mozchunkedarraybuffer) {\n\t\treturn 'moz-chunked-arraybuffer'\n\t} else if (capability.msstream) {\n\t\treturn 'ms-stream'\n\t} else if (capability.arraybuffer && preferBinary) {\n\t\treturn 'arraybuffer'\n\t} else {\n\t\treturn 'text'\n\t}\n}\n\nvar ClientRequest = module.exports = function (opts) {\n\tvar self = this\n\tstream.Writable.call(self)\n\n\tself._opts = opts\n\tself._body = []\n\tself._headers = {}\n\tif (opts.auth)\n\t\tself.setHeader('Authorization', 'Basic ' + Buffer.from(opts.auth).toString('base64'))\n\tObject.keys(opts.headers).forEach(function (name) {\n\t\tself.setHeader(name, opts.headers[name])\n\t})\n\n\tvar preferBinary\n\tvar useFetch = true\n\tif (opts.mode === 'disable-fetch' || ('requestTimeout' in opts && !capability.abortController)) {\n\t\t// If the use of XHR should be preferred. Not typically needed.\n\t\tuseFetch = false\n\t\tpreferBinary = true\n\t} else if (opts.mode === 'prefer-streaming') {\n\t\t// If streaming is a high priority but binary compatibility and\n\t\t// the accuracy of the 'content-type' header aren't\n\t\tpreferBinary = false\n\t} else if (opts.mode === 'allow-wrong-content-type') {\n\t\t// If streaming is more important than preserving the 'content-type' header\n\t\tpreferBinary = !capability.overrideMimeType\n\t} else if (!opts.mode || opts.mode === 'default' || opts.mode === 'prefer-fast') {\n\t\t// Use binary if text streaming may corrupt data or the content-type header, or for speed\n\t\tpreferBinary = true\n\t} else {\n\t\tthrow new Error('Invalid value for opts.mode')\n\t}\n\tself._mode = decideMode(preferBinary, useFetch)\n\tself._fetchTimer = null\n\tself._socketTimeout = null\n\tself._socketTimer = null\n\n\tself.on('finish', function () {\n\t\tself._onFinish()\n\t})\n}\n\ninherits(ClientRequest, stream.Writable)\n\nClientRequest.prototype.setHeader = function (name, value) {\n\tvar self = this\n\tvar lowerName = name.toLowerCase()\n\t// This check is not necessary, but it prevents warnings from browsers about setting unsafe\n\t// headers. To be honest I'm not entirely sure hiding these warnings is a good thing, but\n\t// http-browserify did it, so I will too.\n\tif (unsafeHeaders.indexOf(lowerName) !== -1)\n\t\treturn\n\n\tself._headers[lowerName] = {\n\t\tname: name,\n\t\tvalue: value\n\t}\n}\n\nClientRequest.prototype.getHeader = function (name) {\n\tvar header = this._headers[name.toLowerCase()]\n\tif (header)\n\t\treturn header.value\n\treturn null\n}\n\nClientRequest.prototype.removeHeader = function (name) {\n\tvar self = this\n\tdelete self._headers[name.toLowerCase()]\n}\n\nClientRequest.prototype._onFinish = function () {\n\tvar self = this\n\n\tif (self._destroyed)\n\t\treturn\n\tvar opts = self._opts\n\n\tif ('timeout' in opts && opts.timeout !== 0) {\n\t\tself.setTimeout(opts.timeout)\n\t}\n\n\tvar headersObj = self._headers\n\tvar body = null\n\tif (opts.method !== 'GET' && opts.method !== 'HEAD') {\n body = new Blob(self._body, {\n type: (headersObj['content-type'] || {}).value || ''\n });\n }\n\n\t// create flattened list of headers\n\tvar headersList = []\n\tObject.keys(headersObj).forEach(function (keyName) {\n\t\tvar name = headersObj[keyName].name\n\t\tvar value = headersObj[keyName].value\n\t\tif (Array.isArray(value)) {\n\t\t\tvalue.forEach(function (v) {\n\t\t\t\theadersList.push([name, v])\n\t\t\t})\n\t\t} else {\n\t\t\theadersList.push([name, value])\n\t\t}\n\t})\n\n\tif (self._mode === 'fetch') {\n\t\tvar signal = null\n\t\tif (capability.abortController) {\n\t\t\tvar controller = new AbortController()\n\t\t\tsignal = controller.signal\n\t\t\tself._fetchAbortController = controller\n\n\t\t\tif ('requestTimeout' in opts && opts.requestTimeout !== 0) {\n\t\t\t\tself._fetchTimer = global.setTimeout(function () {\n\t\t\t\t\tself.emit('requestTimeout')\n\t\t\t\t\tif (self._fetchAbortController)\n\t\t\t\t\t\tself._fetchAbortController.abort()\n\t\t\t\t}, opts.requestTimeout)\n\t\t\t}\n\t\t}\n\n\t\tglobal.fetch(self._opts.url, {\n\t\t\tmethod: self._opts.method,\n\t\t\theaders: headersList,\n\t\t\tbody: body || undefined,\n\t\t\tmode: 'cors',\n\t\t\tcredentials: opts.withCredentials ? 'include' : 'same-origin',\n\t\t\tsignal: signal\n\t\t}).then(function (response) {\n\t\t\tself._fetchResponse = response\n\t\t\tself._resetTimers(false)\n\t\t\tself._connect()\n\t\t}, function (reason) {\n\t\t\tself._resetTimers(true)\n\t\t\tif (!self._destroyed)\n\t\t\t\tself.emit('error', reason)\n\t\t})\n\t} else {\n\t\tvar xhr = self._xhr = new global.XMLHttpRequest()\n\t\ttry {\n\t\t\txhr.open(self._opts.method, self._opts.url, true)\n\t\t} catch (err) {\n\t\t\tprocess.nextTick(function () {\n\t\t\t\tself.emit('error', err)\n\t\t\t})\n\t\t\treturn\n\t\t}\n\n\t\t// Can't set responseType on really old browsers\n\t\tif ('responseType' in xhr)\n\t\t\txhr.responseType = self._mode\n\n\t\tif ('withCredentials' in xhr)\n\t\t\txhr.withCredentials = !!opts.withCredentials\n\n\t\tif (self._mode === 'text' && 'overrideMimeType' in xhr)\n\t\t\txhr.overrideMimeType('text/plain; charset=x-user-defined')\n\n\t\tif ('requestTimeout' in opts) {\n\t\t\txhr.timeout = opts.requestTimeout\n\t\t\txhr.ontimeout = function () {\n\t\t\t\tself.emit('requestTimeout')\n\t\t\t}\n\t\t}\n\n\t\theadersList.forEach(function (header) {\n\t\t\txhr.setRequestHeader(header[0], header[1])\n\t\t})\n\n\t\tself._response = null\n\t\txhr.onreadystatechange = function () {\n\t\t\tswitch (xhr.readyState) {\n\t\t\t\tcase rStates.LOADING:\n\t\t\t\tcase rStates.DONE:\n\t\t\t\t\tself._onXHRProgress()\n\t\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\t// Necessary for streaming in Firefox, since xhr.response is ONLY defined\n\t\t// in onprogress, not in onreadystatechange with xhr.readyState = 3\n\t\tif (self._mode === 'moz-chunked-arraybuffer') {\n\t\t\txhr.onprogress = function () {\n\t\t\t\tself._onXHRProgress()\n\t\t\t}\n\t\t}\n\n\t\txhr.onerror = function () {\n\t\t\tif (self._destroyed)\n\t\t\t\treturn\n\t\t\tself._resetTimers(true)\n\t\t\tself.emit('error', new Error('XHR error'))\n\t\t}\n\n\t\ttry {\n\t\t\txhr.send(body)\n\t\t} catch (err) {\n\t\t\tprocess.nextTick(function () {\n\t\t\t\tself.emit('error', err)\n\t\t\t})\n\t\t\treturn\n\t\t}\n\t}\n}\n\n/**\n * Checks if xhr.status is readable and non-zero, indicating no error.\n * Even though the spec says it should be available in readyState 3,\n * accessing it throws an exception in IE8\n */\nfunction statusValid (xhr) {\n\ttry {\n\t\tvar status = xhr.status\n\t\treturn (status !== null && status !== 0)\n\t} catch (e) {\n\t\treturn false\n\t}\n}\n\nClientRequest.prototype._onXHRProgress = function () {\n\tvar self = this\n\n\tself._resetTimers(false)\n\n\tif (!statusValid(self._xhr) || self._destroyed)\n\t\treturn\n\n\tif (!self._response)\n\t\tself._connect()\n\n\tself._response._onXHRProgress(self._resetTimers.bind(self))\n}\n\nClientRequest.prototype._connect = function () {\n\tvar self = this\n\n\tif (self._destroyed)\n\t\treturn\n\n\tself._response = new IncomingMessage(self._xhr, self._fetchResponse, self._mode, self._resetTimers.bind(self))\n\tself._response.on('error', function(err) {\n\t\tself.emit('error', err)\n\t})\n\n\tself.emit('response', self._response)\n}\n\nClientRequest.prototype._write = function (chunk, encoding, cb) {\n\tvar self = this\n\n\tself._body.push(chunk)\n\tcb()\n}\n\nClientRequest.prototype._resetTimers = function (done) {\n\tvar self = this\n\n\tglobal.clearTimeout(self._socketTimer)\n\tself._socketTimer = null\n\n\tif (done) {\n\t\tglobal.clearTimeout(self._fetchTimer)\n\t\tself._fetchTimer = null\n\t} else if (self._socketTimeout) {\n\t\tself._socketTimer = global.setTimeout(function () {\n\t\t\tself.emit('timeout')\n\t\t}, self._socketTimeout)\n\t}\n}\n\nClientRequest.prototype.abort = ClientRequest.prototype.destroy = function (err) {\n\tvar self = this\n\tself._destroyed = true\n\tself._resetTimers(true)\n\tif (self._response)\n\t\tself._response._destroyed = true\n\tif (self._xhr)\n\t\tself._xhr.abort()\n\telse if (self._fetchAbortController)\n\t\tself._fetchAbortController.abort()\n\n\tif (err)\n\t\tself.emit('error', err)\n}\n\nClientRequest.prototype.end = function (data, encoding, cb) {\n\tvar self = this\n\tif (typeof data === 'function') {\n\t\tcb = data\n\t\tdata = undefined\n\t}\n\n\tstream.Writable.prototype.end.call(self, data, encoding, cb)\n}\n\nClientRequest.prototype.setTimeout = function (timeout, cb) {\n\tvar self = this\n\n\tif (cb)\n\t\tself.once('timeout', cb)\n\n\tself._socketTimeout = timeout\n\tself._resetTimers(false)\n}\n\nClientRequest.prototype.flushHeaders = function () {}\nClientRequest.prototype.setNoDelay = function () {}\nClientRequest.prototype.setSocketKeepAlive = function () {}\n\n// Taken from http://www.w3.org/TR/XMLHttpRequest/#the-setrequestheader%28%29-method\nvar unsafeHeaders = [\n\t'accept-charset',\n\t'accept-encoding',\n\t'access-control-request-headers',\n\t'access-control-request-method',\n\t'connection',\n\t'content-length',\n\t'cookie',\n\t'cookie2',\n\t'date',\n\t'dnt',\n\t'expect',\n\t'host',\n\t'keep-alive',\n\t'origin',\n\t'referer',\n\t'te',\n\t'trailer',\n\t'transfer-encoding',\n\t'upgrade',\n\t'via'\n]\n","var capability = require('./capability')\nvar inherits = require('inherits')\nvar stream = require('readable-stream')\n\nvar rStates = exports.readyStates = {\n\tUNSENT: 0,\n\tOPENED: 1,\n\tHEADERS_RECEIVED: 2,\n\tLOADING: 3,\n\tDONE: 4\n}\n\nvar IncomingMessage = exports.IncomingMessage = function (xhr, response, mode, resetTimers) {\n\tvar self = this\n\tstream.Readable.call(self)\n\n\tself._mode = mode\n\tself.headers = {}\n\tself.rawHeaders = []\n\tself.trailers = {}\n\tself.rawTrailers = []\n\n\t// Fake the 'close' event, but only once 'end' fires\n\tself.on('end', function () {\n\t\t// The nextTick is necessary to prevent the 'request' module from causing an infinite loop\n\t\tprocess.nextTick(function () {\n\t\t\tself.emit('close')\n\t\t})\n\t})\n\n\tif (mode === 'fetch') {\n\t\tself._fetchResponse = response\n\n\t\tself.url = response.url\n\t\tself.statusCode = response.status\n\t\tself.statusMessage = response.statusText\n\t\t\n\t\tresponse.headers.forEach(function (header, key){\n\t\t\tself.headers[key.toLowerCase()] = header\n\t\t\tself.rawHeaders.push(key, header)\n\t\t})\n\n\t\tif (capability.writableStream) {\n\t\t\tvar writable = new WritableStream({\n\t\t\t\twrite: function (chunk) {\n\t\t\t\t\tresetTimers(false)\n\t\t\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\t\t\tif (self._destroyed) {\n\t\t\t\t\t\t\treject()\n\t\t\t\t\t\t} else if(self.push(Buffer.from(chunk))) {\n\t\t\t\t\t\t\tresolve()\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tself._resumeFetch = resolve\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t},\n\t\t\t\tclose: function () {\n\t\t\t\t\tresetTimers(true)\n\t\t\t\t\tif (!self._destroyed)\n\t\t\t\t\t\tself.push(null)\n\t\t\t\t},\n\t\t\t\tabort: function (err) {\n\t\t\t\t\tresetTimers(true)\n\t\t\t\t\tif (!self._destroyed)\n\t\t\t\t\t\tself.emit('error', err)\n\t\t\t\t}\n\t\t\t})\n\n\t\t\ttry {\n\t\t\t\tresponse.body.pipeTo(writable).catch(function (err) {\n\t\t\t\t\tresetTimers(true)\n\t\t\t\t\tif (!self._destroyed)\n\t\t\t\t\t\tself.emit('error', err)\n\t\t\t\t})\n\t\t\t\treturn\n\t\t\t} catch (e) {} // pipeTo method isn't defined. Can't find a better way to feature test this\n\t\t}\n\t\t// fallback for when writableStream or pipeTo aren't available\n\t\tvar reader = response.body.getReader()\n\t\tfunction read () {\n\t\t\treader.read().then(function (result) {\n\t\t\t\tif (self._destroyed)\n\t\t\t\t\treturn\n\t\t\t\tresetTimers(result.done)\n\t\t\t\tif (result.done) {\n\t\t\t\t\tself.push(null)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tself.push(Buffer.from(result.value))\n\t\t\t\tread()\n\t\t\t}).catch(function (err) {\n\t\t\t\tresetTimers(true)\n\t\t\t\tif (!self._destroyed)\n\t\t\t\t\tself.emit('error', err)\n\t\t\t})\n\t\t}\n\t\tread()\n\t} else {\n\t\tself._xhr = xhr\n\t\tself._pos = 0\n\n\t\tself.url = xhr.responseURL\n\t\tself.statusCode = xhr.status\n\t\tself.statusMessage = xhr.statusText\n\t\tvar headers = xhr.getAllResponseHeaders().split(/\\r?\\n/)\n\t\theaders.forEach(function (header) {\n\t\t\tvar matches = header.match(/^([^:]+):\\s*(.*)/)\n\t\t\tif (matches) {\n\t\t\t\tvar key = matches[1].toLowerCase()\n\t\t\t\tif (key === 'set-cookie') {\n\t\t\t\t\tif (self.headers[key] === undefined) {\n\t\t\t\t\t\tself.headers[key] = []\n\t\t\t\t\t}\n\t\t\t\t\tself.headers[key].push(matches[2])\n\t\t\t\t} else if (self.headers[key] !== undefined) {\n\t\t\t\t\tself.headers[key] += ', ' + matches[2]\n\t\t\t\t} else {\n\t\t\t\t\tself.headers[key] = matches[2]\n\t\t\t\t}\n\t\t\t\tself.rawHeaders.push(matches[1], matches[2])\n\t\t\t}\n\t\t})\n\n\t\tself._charset = 'x-user-defined'\n\t\tif (!capability.overrideMimeType) {\n\t\t\tvar mimeType = self.rawHeaders['mime-type']\n\t\t\tif (mimeType) {\n\t\t\t\tvar charsetMatch = mimeType.match(/;\\s*charset=([^;])(;|$)/)\n\t\t\t\tif (charsetMatch) {\n\t\t\t\t\tself._charset = charsetMatch[1].toLowerCase()\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!self._charset)\n\t\t\t\tself._charset = 'utf-8' // best guess\n\t\t}\n\t}\n}\n\ninherits(IncomingMessage, stream.Readable)\n\nIncomingMessage.prototype._read = function () {\n\tvar self = this\n\n\tvar resolve = self._resumeFetch\n\tif (resolve) {\n\t\tself._resumeFetch = null\n\t\tresolve()\n\t}\n}\n\nIncomingMessage.prototype._onXHRProgress = function (resetTimers) {\n\tvar self = this\n\n\tvar xhr = self._xhr\n\n\tvar response = null\n\tswitch (self._mode) {\n\t\tcase 'text':\n\t\t\tresponse = xhr.responseText\n\t\t\tif (response.length > self._pos) {\n\t\t\t\tvar newData = response.substr(self._pos)\n\t\t\t\tif (self._charset === 'x-user-defined') {\n\t\t\t\t\tvar buffer = Buffer.alloc(newData.length)\n\t\t\t\t\tfor (var i = 0; i < newData.length; i++)\n\t\t\t\t\t\tbuffer[i] = newData.charCodeAt(i) & 0xff\n\n\t\t\t\t\tself.push(buffer)\n\t\t\t\t} else {\n\t\t\t\t\tself.push(newData, self._charset)\n\t\t\t\t}\n\t\t\t\tself._pos = response.length\n\t\t\t}\n\t\t\tbreak\n\t\tcase 'arraybuffer':\n\t\t\tif (xhr.readyState !== rStates.DONE || !xhr.response)\n\t\t\t\tbreak\n\t\t\tresponse = xhr.response\n\t\t\tself.push(Buffer.from(new Uint8Array(response)))\n\t\t\tbreak\n\t\tcase 'moz-chunked-arraybuffer': // take whole\n\t\t\tresponse = xhr.response\n\t\t\tif (xhr.readyState !== rStates.LOADING || !response)\n\t\t\t\tbreak\n\t\t\tself.push(Buffer.from(new Uint8Array(response)))\n\t\t\tbreak\n\t\tcase 'ms-stream':\n\t\t\tresponse = xhr.response\n\t\t\tif (xhr.readyState !== rStates.LOADING)\n\t\t\t\tbreak\n\t\t\tvar reader = new global.MSStreamReader()\n\t\t\treader.onprogress = function () {\n\t\t\t\tif (reader.result.byteLength > self._pos) {\n\t\t\t\t\tself.push(Buffer.from(new Uint8Array(reader.result.slice(self._pos))))\n\t\t\t\t\tself._pos = reader.result.byteLength\n\t\t\t\t}\n\t\t\t}\n\t\t\treader.onload = function () {\n\t\t\t\tresetTimers(true)\n\t\t\t\tself.push(null)\n\t\t\t}\n\t\t\t// reader.onerror = ??? // TODO: this\n\t\t\treader.readAsArrayBuffer(response)\n\t\t\tbreak\n\t}\n\n\t// The ms-stream case handles end separately in reader.onload()\n\tif (self._xhr.readyState === rStates.DONE && self._mode !== 'ms-stream') {\n\t\tresetTimers(true)\n\t\tself.push(null)\n\t}\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/*<replacement>*/\n\nvar Buffer = require('safe-buffer').Buffer;\n/*</replacement>*/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","\n/**\n * Module exports.\n */\n\nmodule.exports = deprecate;\n\n/**\n * Mark that a method should not be used.\n * Returns a modified function which warns once by default.\n *\n * If `localStorage.noDeprecation = true` is set, then it is a no-op.\n *\n * If `localStorage.throwDeprecation = true` is set, then deprecated functions\n * will throw an Error when invoked.\n *\n * If `localStorage.traceDeprecation = true` is set, then deprecated functions\n * will invoke `console.trace()` instead of `console.error()`.\n *\n * @param {Function} fn - the function to deprecate\n * @param {String} msg - the string to print to the console when `fn` is invoked\n * @returns {Function} a new \"deprecated\" version of `fn`\n * @api public\n */\n\nfunction deprecate (fn, msg) {\n if (config('noDeprecation')) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config('throwDeprecation')) {\n throw new Error(msg);\n } else if (config('traceDeprecation')) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n}\n\n/**\n * Checks `localStorage` for boolean values for the given `name`.\n *\n * @param {String} name\n * @returns {Boolean}\n * @api private\n */\n\nfunction config (name) {\n // accessing global.localStorage can trigger a DOMException in sandboxed iframes\n try {\n if (!global.localStorage) return false;\n } catch (_) {\n return false;\n }\n var val = global.localStorage[name];\n if (null == val) return false;\n return String(val).toLowerCase() === 'true';\n}\n","module.exports = extend\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction extend() {\n var target = {}\n\n for (var i = 0; i < arguments.length; i++) {\n var source = arguments[i]\n\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n target[key] = source[key]\n }\n }\n }\n\n return target\n}\n","import { getCurrentUser as A, onRequestTokenUpdate as ue, getRequestToken as de } from \"@nextcloud/auth\";\nimport { getLoggerBuilder as q } from \"@nextcloud/logger\";\nimport { getCanonicalLocale as ae } from \"@nextcloud/l10n\";\nimport { join as le, basename as fe, extname as ce, dirname as I } from \"path\";\nimport { encodePath as he } from \"@nextcloud/paths\";\nimport { generateRemoteUrl as pe } from \"@nextcloud/router\";\nimport { createClient as ge, getPatcher as we } from \"webdav\";\n/**\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nconst me = (e) => e === null ? q().setApp(\"files\").build() : q().setApp(\"files\").setUid(e.uid).build(), m = me(A());\n/**\n * @copyright Copyright (c) 2021 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nclass Ne {\n _entries = [];\n registerEntry(t) {\n this.validateEntry(t), this._entries.push(t);\n }\n unregisterEntry(t) {\n const r = typeof t == \"string\" ? this.getEntryIndex(t) : this.getEntryIndex(t.id);\n if (r === -1) {\n m.warn(\"Entry not found, nothing removed\", { entry: t, entries: this.getEntries() });\n return;\n }\n this._entries.splice(r, 1);\n }\n /**\n * Get the list of registered entries\n *\n * @param {Folder} context the creation context. Usually the current folder\n */\n getEntries(t) {\n return t ? this._entries.filter((r) => typeof r.enabled == \"function\" ? r.enabled(t) : !0) : this._entries;\n }\n getEntryIndex(t) {\n return this._entries.findIndex((r) => r.id === t);\n }\n validateEntry(t) {\n if (!t.id || !t.displayName || !(t.iconSvgInline || t.iconClass) || !t.handler)\n throw new Error(\"Invalid entry\");\n if (typeof t.id != \"string\" || typeof t.displayName != \"string\")\n throw new Error(\"Invalid id or displayName property\");\n if (t.iconClass && typeof t.iconClass != \"string\" || t.iconSvgInline && typeof t.iconSvgInline != \"string\")\n throw new Error(\"Invalid icon provided\");\n if (t.enabled !== void 0 && typeof t.enabled != \"function\")\n throw new Error(\"Invalid enabled property\");\n if (typeof t.handler != \"function\")\n throw new Error(\"Invalid handler property\");\n if (\"order\" in t && typeof t.order != \"number\")\n throw new Error(\"Invalid order property\");\n if (this.getEntryIndex(t.id) !== -1)\n throw new Error(\"Duplicate entry\");\n }\n}\nconst F = function() {\n return typeof window._nc_newfilemenu > \"u\" && (window._nc_newfilemenu = new Ne(), m.debug(\"NewFileMenu initialized\")), window._nc_newfilemenu;\n};\n/**\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author Christoph Wurst <christoph@winzerhof-wurst.at>\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nconst C = [\"B\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\"], P = [\"B\", \"KiB\", \"MiB\", \"GiB\", \"TiB\", \"PiB\"];\nfunction Yt(e, t = !1, r = !1, s = !1) {\n r = r && !s, typeof e == \"string\" && (e = Number(e));\n let n = e > 0 ? Math.floor(Math.log(e) / Math.log(s ? 1e3 : 1024)) : 0;\n n = Math.min((r ? P.length : C.length) - 1, n);\n const i = r ? P[n] : C[n];\n let d = (e / Math.pow(s ? 1e3 : 1024, n)).toFixed(1);\n return t === !0 && n === 0 ? (d !== \"0.0\" ? \"< 1 \" : \"0 \") + (r ? P[1] : C[1]) : (n < 2 ? d = parseFloat(d).toFixed(0) : d = parseFloat(d).toLocaleString(ae()), d + \" \" + i);\n}\nfunction Jt(e, t = !1) {\n try {\n e = `${e}`.toLocaleLowerCase().replaceAll(/\\s+/g, \"\").replaceAll(\",\", \".\");\n } catch {\n return null;\n }\n const r = e.match(/^([0-9]*(\\.[0-9]*)?)([kmgtp]?)(i?)b?$/);\n if (r === null || r[1] === \".\" || r[1] === \"\")\n return null;\n const s = {\n \"\": 0,\n k: 1,\n m: 2,\n g: 3,\n t: 4,\n p: 5,\n e: 6\n }, n = `${r[1]}`, i = r[4] === \"i\" || t ? 1024 : 1e3;\n return Math.round(Number.parseFloat(n) * i ** s[r[3]]);\n}\n/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nvar Z = /* @__PURE__ */ ((e) => (e.DEFAULT = \"default\", e.HIDDEN = \"hidden\", e))(Z || {});\nclass Qt {\n _action;\n constructor(t) {\n this.validateAction(t), this._action = t;\n }\n get id() {\n return this._action.id;\n }\n get displayName() {\n return this._action.displayName;\n }\n get title() {\n return this._action.title;\n }\n get iconSvgInline() {\n return this._action.iconSvgInline;\n }\n get enabled() {\n return this._action.enabled;\n }\n get exec() {\n return this._action.exec;\n }\n get execBatch() {\n return this._action.execBatch;\n }\n get order() {\n return this._action.order;\n }\n get parent() {\n return this._action.parent;\n }\n get default() {\n return this._action.default;\n }\n get inline() {\n return this._action.inline;\n }\n get renderInline() {\n return this._action.renderInline;\n }\n validateAction(t) {\n if (!t.id || typeof t.id != \"string\")\n throw new Error(\"Invalid id\");\n if (!t.displayName || typeof t.displayName != \"function\")\n throw new Error(\"Invalid displayName function\");\n if (\"title\" in t && typeof t.title != \"function\")\n throw new Error(\"Invalid title function\");\n if (!t.iconSvgInline || typeof t.iconSvgInline != \"function\")\n throw new Error(\"Invalid iconSvgInline function\");\n if (!t.exec || typeof t.exec != \"function\")\n throw new Error(\"Invalid exec function\");\n if (\"enabled\" in t && typeof t.enabled != \"function\")\n throw new Error(\"Invalid enabled function\");\n if (\"execBatch\" in t && typeof t.execBatch != \"function\")\n throw new Error(\"Invalid execBatch function\");\n if (\"order\" in t && typeof t.order != \"number\")\n throw new Error(\"Invalid order\");\n if (\"parent\" in t && typeof t.parent != \"string\")\n throw new Error(\"Invalid parent\");\n if (t.default && !Object.values(Z).includes(t.default))\n throw new Error(\"Invalid default\");\n if (\"inline\" in t && typeof t.inline != \"function\")\n throw new Error(\"Invalid inline function\");\n if (\"renderInline\" in t && typeof t.renderInline != \"function\")\n throw new Error(\"Invalid renderInline function\");\n }\n}\nconst Dt = function(e) {\n if (typeof window._nc_fileactions > \"u\" && (window._nc_fileactions = [], m.debug(\"FileActions initialized\")), window._nc_fileactions.find((t) => t.id === e.id)) {\n m.error(`FileAction ${e.id} already registered`, { action: e });\n return;\n }\n window._nc_fileactions.push(e);\n}, er = function() {\n return typeof window._nc_fileactions > \"u\" && (window._nc_fileactions = [], m.debug(\"FileActions initialized\")), window._nc_fileactions;\n};\n/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nclass tr {\n _header;\n constructor(t) {\n this.validateHeader(t), this._header = t;\n }\n get id() {\n return this._header.id;\n }\n get order() {\n return this._header.order;\n }\n get enabled() {\n return this._header.enabled;\n }\n get render() {\n return this._header.render;\n }\n get updated() {\n return this._header.updated;\n }\n validateHeader(t) {\n if (!t.id || !t.render || !t.updated)\n throw new Error(\"Invalid header: id, render and updated are required\");\n if (typeof t.id != \"string\")\n throw new Error(\"Invalid id property\");\n if (t.enabled !== void 0 && typeof t.enabled != \"function\")\n throw new Error(\"Invalid enabled property\");\n if (t.render && typeof t.render != \"function\")\n throw new Error(\"Invalid render property\");\n if (t.updated && typeof t.updated != \"function\")\n throw new Error(\"Invalid updated property\");\n }\n}\nconst rr = function(e) {\n if (typeof window._nc_filelistheader > \"u\" && (window._nc_filelistheader = [], m.debug(\"FileListHeaders initialized\")), window._nc_filelistheader.find((t) => t.id === e.id)) {\n m.error(`Header ${e.id} already registered`, { header: e });\n return;\n }\n window._nc_filelistheader.push(e);\n}, nr = function() {\n return typeof window._nc_filelistheader > \"u\" && (window._nc_filelistheader = [], m.debug(\"FileListHeaders initialized\")), window._nc_filelistheader;\n};\n/**\n * @copyright Copyright (c) 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nvar N = /* @__PURE__ */ ((e) => (e[e.NONE = 0] = \"NONE\", e[e.CREATE = 4] = \"CREATE\", e[e.READ = 1] = \"READ\", e[e.UPDATE = 2] = \"UPDATE\", e[e.DELETE = 8] = \"DELETE\", e[e.SHARE = 16] = \"SHARE\", e[e.ALL = 31] = \"ALL\", e))(N || {});\n/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n * @author Ferdinand Thiessen <opensource@fthiessen.de>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nconst j = [\n \"d:getcontentlength\",\n \"d:getcontenttype\",\n \"d:getetag\",\n \"d:getlastmodified\",\n \"d:quota-available-bytes\",\n \"d:resourcetype\",\n \"nc:has-preview\",\n \"nc:is-encrypted\",\n \"nc:mount-type\",\n \"nc:share-attributes\",\n \"oc:comments-unread\",\n \"oc:favorite\",\n \"oc:fileid\",\n \"oc:owner-display-name\",\n \"oc:owner-id\",\n \"oc:permissions\",\n \"oc:share-types\",\n \"oc:size\",\n \"ocs:share-permissions\"\n], Y = {\n d: \"DAV:\",\n nc: \"http://nextcloud.org/ns\",\n oc: \"http://owncloud.org/ns\",\n ocs: \"http://open-collaboration-services.org/ns\"\n}, ir = function(e, t = { nc: \"http://nextcloud.org/ns\" }) {\n typeof window._nc_dav_properties > \"u\" && (window._nc_dav_properties = [...j], window._nc_dav_namespaces = { ...Y });\n const r = { ...window._nc_dav_namespaces, ...t };\n if (window._nc_dav_properties.find((n) => n === e))\n return m.error(`${e} already registered`, { prop: e }), !1;\n if (e.startsWith(\"<\") || e.split(\":\").length !== 2)\n return m.error(`${e} is not valid. See example: 'oc:fileid'`, { prop: e }), !1;\n const s = e.split(\":\")[0];\n return r[s] ? (window._nc_dav_properties.push(e), window._nc_dav_namespaces = r, !0) : (m.error(`${e} namespace unknown`, { prop: e, namespaces: r }), !1);\n}, V = function() {\n return typeof window._nc_dav_properties > \"u\" && (window._nc_dav_properties = [...j]), window._nc_dav_properties.map((e) => `<${e} />`).join(\" \");\n}, L = function() {\n return typeof window._nc_dav_namespaces > \"u\" && (window._nc_dav_namespaces = { ...Y }), Object.keys(window._nc_dav_namespaces).map((e) => `xmlns:${e}=\"${window._nc_dav_namespaces?.[e]}\"`).join(\" \");\n}, sr = function() {\n return `<?xml version=\"1.0\"?>\n\t\t<d:propfind ${L()}>\n\t\t\t<d:prop>\n\t\t\t\t${V()}\n\t\t\t</d:prop>\n\t\t</d:propfind>`;\n}, Ee = function() {\n return `<?xml version=\"1.0\"?>\n\t\t<oc:filter-files ${L()}>\n\t\t\t<d:prop>\n\t\t\t\t${V()}\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}, or = function(e) {\n return `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<d:searchrequest ${L()}\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${V()}\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/${A()?.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>${e}</d:literal>\n\t\t\t\t</d:gt>\n\t\t\t</d:and>\n\t\t</d:where>\n\t\t<d:orderby>\n\t\t\t<d:order>\n\t\t\t\t<d:prop>\n\t\t\t\t\t<d:getlastmodified/>\n\t\t\t\t</d:prop>\n\t\t\t\t<d:descending/>\n\t\t\t</d:order>\n\t\t</d:orderby>\n\t\t<d:limit>\n\t\t\t<d:nresults>100</d:nresults>\n\t\t\t<ns:firstresult>0</ns:firstresult>\n\t\t</d:limit>\n\t</d:basicsearch>\n</d:searchrequest>`;\n};\n/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n * @author Ferdinand Thiessen <opensource@fthiessen.de>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nconst be = function(e = \"\") {\n let t = N.NONE;\n return e && ((e.includes(\"C\") || e.includes(\"K\")) && (t |= N.CREATE), e.includes(\"G\") && (t |= N.READ), (e.includes(\"W\") || e.includes(\"N\") || e.includes(\"V\")) && (t |= N.UPDATE), e.includes(\"D\") && (t |= N.DELETE), e.includes(\"R\") && (t |= N.SHARE)), t;\n};\n/**\n * @copyright Copyright (c) 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nvar R = /* @__PURE__ */ ((e) => (e.Folder = \"folder\", e.File = \"file\", e))(R || {});\n/**\n * @copyright Copyright (c) 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nconst J = function(e, t) {\n return e.match(t) !== null;\n}, X = (e, t) => {\n if (e.id && typeof e.id != \"number\")\n throw new Error(\"Invalid id type of value\");\n if (!e.source)\n throw new Error(\"Missing mandatory source\");\n try {\n new URL(e.source);\n } catch {\n throw new Error(\"Invalid source format, source must be a valid URL\");\n }\n if (!e.source.startsWith(\"http\"))\n throw new Error(\"Invalid source format, only http(s) is supported\");\n if (e.mtime && !(e.mtime instanceof Date))\n throw new Error(\"Invalid mtime type\");\n if (e.crtime && !(e.crtime instanceof Date))\n throw new Error(\"Invalid crtime type\");\n if (!e.mime || typeof e.mime != \"string\" || !e.mime.match(/^[-\\w.]+\\/[-+\\w.]+$/gi))\n throw new Error(\"Missing or invalid mandatory mime\");\n if (\"size\" in e && typeof e.size != \"number\" && e.size !== void 0)\n throw new Error(\"Invalid size type\");\n if (\"permissions\" in e && e.permissions !== void 0 && !(typeof e.permissions == \"number\" && e.permissions >= N.NONE && e.permissions <= N.ALL))\n throw new Error(\"Invalid permissions\");\n if (e.owner && e.owner !== null && typeof e.owner != \"string\")\n throw new Error(\"Invalid owner type\");\n if (e.attributes && typeof e.attributes != \"object\")\n throw new Error(\"Invalid attributes type\");\n if (e.root && typeof e.root != \"string\")\n throw new Error(\"Invalid root type\");\n if (e.root && !e.root.startsWith(\"/\"))\n throw new Error(\"Root must start with a leading slash\");\n if (e.root && !e.source.includes(e.root))\n throw new Error(\"Root must be part of the source\");\n if (e.root && J(e.source, t)) {\n const r = e.source.match(t)[0];\n if (!e.source.includes(le(r, e.root)))\n throw new Error(\"The root must be relative to the service. e.g /files/emma\");\n }\n if (e.status && !Object.values(Q).includes(e.status))\n throw new Error(\"Status must be a valid NodeStatus\");\n};\n/**\n * @copyright Copyright (c) 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nvar Q = /* @__PURE__ */ ((e) => (e.NEW = \"new\", e.FAILED = \"failed\", e.LOADING = \"loading\", e.LOCKED = \"locked\", e))(Q || {});\nclass D {\n _data;\n _attributes;\n _knownDavService = /(remote|public)\\.php\\/(web)?dav/i;\n constructor(t, r) {\n X(t, r || this._knownDavService), this._data = t;\n const s = {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n set: (n, i, d) => (this.updateMtime(), Reflect.set(n, i, d)),\n deleteProperty: (n, i) => (this.updateMtime(), Reflect.deleteProperty(n, i))\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n };\n this._attributes = new Proxy(t.attributes || {}, s), delete this._data.attributes, r && (this._knownDavService = r);\n }\n /**\n * Get the source url to this object\n */\n get source() {\n return this._data.source.replace(/\\/$/i, \"\");\n }\n /**\n * Get the encoded source url to this object for requests purposes\n */\n get encodedSource() {\n const { origin: t } = new URL(this.source);\n return t + he(this.source.slice(t.length));\n }\n /**\n * Get this object name\n */\n get basename() {\n return fe(this.source);\n }\n /**\n * Get this object's extension\n */\n get extension() {\n return ce(this.source);\n }\n /**\n * Get the directory path leading to this object\n * Will use the relative path to root if available\n */\n get dirname() {\n if (this.root) {\n const r = this.source.indexOf(this.root);\n return I(this.source.slice(r + this.root.length) || \"/\");\n }\n const t = new URL(this.source);\n return I(t.pathname);\n }\n /**\n * Get the file mime\n */\n get mime() {\n return this._data.mime;\n }\n /**\n * Get the file modification time\n */\n get mtime() {\n return this._data.mtime;\n }\n /**\n * Get the file creation time\n */\n get crtime() {\n return this._data.crtime;\n }\n /**\n * Get the file size\n */\n get size() {\n return this._data.size;\n }\n /**\n * Get the file attribute\n */\n get attributes() {\n return this._attributes;\n }\n /**\n * Get the file permissions\n */\n get permissions() {\n return this.owner === null && !this.isDavRessource ? N.READ : this._data.permissions !== void 0 ? this._data.permissions : N.NONE;\n }\n /**\n * Get the file owner\n */\n get owner() {\n return this.isDavRessource ? this._data.owner : null;\n }\n /**\n * Is this a dav-related ressource ?\n */\n get isDavRessource() {\n return J(this.source, this._knownDavService);\n }\n /**\n * Get the dav root of this object\n */\n get root() {\n return this._data.root ? this._data.root.replace(/^(.+)\\/$/, \"$1\") : this.isDavRessource && I(this.source).split(this._knownDavService).pop() || null;\n }\n /**\n * Get the absolute path of this object relative to the root\n */\n get path() {\n if (this.root) {\n const t = this.source.indexOf(this.root);\n return this.source.slice(t + this.root.length) || \"/\";\n }\n return (this.dirname + \"/\" + this.basename).replace(/\\/\\//g, \"/\");\n }\n /**\n * Get the node id if defined.\n * Will look for the fileid in attributes if undefined.\n */\n get fileid() {\n return this._data?.id || this.attributes?.fileid;\n }\n /**\n * Get the node status.\n */\n get status() {\n return this._data?.status;\n }\n /**\n * Set the node status.\n */\n set status(t) {\n this._data.status = t;\n }\n /**\n * Move the node to a new destination\n *\n * @param {string} destination the new source.\n * e.g. https://cloud.domain.com/remote.php/dav/files/emma/Photos/picture.jpg\n */\n move(t) {\n X({ ...this._data, source: t }, this._knownDavService), this._data.source = t, this.updateMtime();\n }\n /**\n * Rename the node\n * This aliases the move method for easier usage\n *\n * @param basename The new name of the node\n */\n rename(t) {\n if (t.includes(\"/\"))\n throw new Error(\"Invalid basename\");\n this.move(I(this.source) + \"/\" + t);\n }\n /**\n * Update the mtime if exists.\n */\n updateMtime() {\n this._data.mtime && (this._data.mtime = /* @__PURE__ */ new Date());\n }\n}\n/**\n * @copyright Copyright (c) 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nclass ye extends D {\n get type() {\n return R.File;\n }\n}\n/**\n * @copyright Copyright (c) 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nclass _e extends D {\n constructor(t) {\n super({\n ...t,\n mime: \"httpd/unix-directory\"\n });\n }\n get type() {\n return R.Folder;\n }\n get extension() {\n return null;\n }\n get mime() {\n return \"httpd/unix-directory\";\n }\n}\n/**\n * @copyright Copyright (c) 2023 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n * @author Ferdinand Thiessen <opensource@fthiessen.de>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nconst ee = `/files/${A()?.uid}`, te = pe(\"dav\"), ur = function(e = te) {\n const t = ge(e);\n function r(n) {\n t.setHeaders({\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: n ?? \"\"\n });\n }\n return ue(r), r(de()), we().patch(\"fetch\", (n, i) => {\n const d = i.headers;\n return d?.method && (i.method = d.method, delete d.method), fetch(n, i);\n }), t;\n}, dr = async (e, t = \"/\", r = ee) => (await e.getDirectoryContents(`${r}${t}`, {\n details: !0,\n data: Ee(),\n headers: {\n // see davGetClient for patched webdav client\n method: \"REPORT\"\n },\n includeSelf: !0\n})).data.filter((n) => n.filename !== t).map((n) => ve(n, r)), ve = function(e, t = ee, r = te) {\n const s = e.props, n = be(s?.permissions), i = A()?.uid, d = {\n id: s?.fileid || 0,\n source: `${r}${e.filename}`,\n mtime: new Date(Date.parse(e.lastmod)),\n mime: e.mime,\n size: s?.size || Number.parseInt(s.getcontentlength || \"0\"),\n permissions: n,\n owner: i,\n root: t,\n attributes: {\n ...e,\n ...s,\n hasPreview: s?.[\"has-preview\"]\n }\n };\n return delete d.attributes?.props, e.type === \"file\" ? new ye(d) : new _e(d);\n};\n/**\n * @copyright Copyright (c) 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nclass Te {\n _views = [];\n _currentView = null;\n register(t) {\n if (this._views.find((r) => r.id === t.id))\n throw new Error(`View id ${t.id} is already registered`);\n this._views.push(t);\n }\n remove(t) {\n const r = this._views.findIndex((s) => s.id === t);\n r !== -1 && this._views.splice(r, 1);\n }\n get views() {\n return this._views;\n }\n setActive(t) {\n this._currentView = t;\n }\n get active() {\n return this._currentView;\n }\n}\nconst ar = function() {\n return typeof window._nc_navigation > \"u\" && (window._nc_navigation = new Te(), m.debug(\"Navigation service initialized\")), window._nc_navigation;\n};\n/**\n * @copyright Copyright (c) 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nclass Ie {\n _column;\n constructor(t) {\n Ae(t), this._column = t;\n }\n get id() {\n return this._column.id;\n }\n get title() {\n return this._column.title;\n }\n get render() {\n return this._column.render;\n }\n get sort() {\n return this._column.sort;\n }\n get summary() {\n return this._column.summary;\n }\n}\nconst Ae = function(e) {\n if (!e.id || typeof e.id != \"string\")\n throw new Error(\"A column id is required\");\n if (!e.title || typeof e.title != \"string\")\n throw new Error(\"A column title is required\");\n if (!e.render || typeof e.render != \"function\")\n throw new Error(\"A render function is required\");\n if (e.sort && typeof e.sort != \"function\")\n throw new Error(\"Column sortFunction must be a function\");\n if (e.summary && typeof e.summary != \"function\")\n throw new Error(\"Column summary must be a function\");\n return !0;\n};\nvar S = {}, O = {};\n(function(e) {\n const t = \":A-Za-z_\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\", r = t + \"\\\\-.\\\\d\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040\", s = \"[\" + t + \"][\" + r + \"]*\", n = new RegExp(\"^\" + s + \"$\"), i = function(u, o) {\n const a = [];\n let l = o.exec(u);\n for (; l; ) {\n const f = [];\n f.startIndex = o.lastIndex - l[0].length;\n const c = l.length;\n for (let g = 0; g < c; g++)\n f.push(l[g]);\n a.push(f), l = o.exec(u);\n }\n return a;\n }, d = function(u) {\n const o = n.exec(u);\n return !(o === null || typeof o > \"u\");\n };\n e.isExist = function(u) {\n return typeof u < \"u\";\n }, e.isEmptyObject = function(u) {\n return Object.keys(u).length === 0;\n }, e.merge = function(u, o, a) {\n if (o) {\n const l = Object.keys(o), f = l.length;\n for (let c = 0; c < f; c++)\n a === \"strict\" ? u[l[c]] = [o[l[c]]] : u[l[c]] = o[l[c]];\n }\n }, e.getValue = function(u) {\n return e.isExist(u) ? u : \"\";\n }, e.isName = d, e.getAllMatches = i, e.nameRegexp = s;\n})(O);\nconst M = O, Oe = {\n allowBooleanAttributes: !1,\n //A tag can have attributes without any value\n unpairedTags: []\n};\nS.validate = function(e, t) {\n t = Object.assign({}, Oe, t);\n const r = [];\n let s = !1, n = !1;\n e[0] === \"\\uFEFF\" && (e = e.substr(1));\n for (let i = 0; i < e.length; i++)\n if (e[i] === \"<\" && e[i + 1] === \"?\") {\n if (i += 2, i = G(e, i), i.err)\n return i;\n } else if (e[i] === \"<\") {\n let d = i;\n if (i++, e[i] === \"!\") {\n i = z(e, i);\n continue;\n } else {\n let u = !1;\n e[i] === \"/\" && (u = !0, i++);\n let o = \"\";\n for (; i < e.length && e[i] !== \">\" && e[i] !== \" \" && e[i] !== \"\t\" && e[i] !== `\n` && e[i] !== \"\\r\"; i++)\n o += e[i];\n if (o = o.trim(), o[o.length - 1] === \"/\" && (o = o.substring(0, o.length - 1), i--), !Re(o)) {\n let f;\n return o.trim().length === 0 ? f = \"Invalid space after '<'.\" : f = \"Tag '\" + o + \"' is an invalid name.\", p(\"InvalidTag\", f, w(e, i));\n }\n const a = xe(e, i);\n if (a === !1)\n return p(\"InvalidAttr\", \"Attributes for '\" + o + \"' have open quote.\", w(e, i));\n let l = a.value;\n if (i = a.index, l[l.length - 1] === \"/\") {\n const f = i - l.length;\n l = l.substring(0, l.length - 1);\n const c = H(l, t);\n if (c === !0)\n s = !0;\n else\n return p(c.err.code, c.err.msg, w(e, f + c.err.line));\n } else if (u)\n if (a.tagClosed) {\n if (l.trim().length > 0)\n return p(\"InvalidTag\", \"Closing tag '\" + o + \"' can't have attributes or invalid starting.\", w(e, d));\n {\n const f = r.pop();\n if (o !== f.tagName) {\n let c = w(e, f.tagStartPos);\n return p(\n \"InvalidTag\",\n \"Expected closing tag '\" + f.tagName + \"' (opened in line \" + c.line + \", col \" + c.col + \") instead of closing tag '\" + o + \"'.\",\n w(e, d)\n );\n }\n r.length == 0 && (n = !0);\n }\n } else\n return p(\"InvalidTag\", \"Closing tag '\" + o + \"' doesn't have proper closing.\", w(e, i));\n else {\n const f = H(l, t);\n if (f !== !0)\n return p(f.err.code, f.err.msg, w(e, i - l.length + f.err.line));\n if (n === !0)\n return p(\"InvalidXml\", \"Multiple possible root nodes found.\", w(e, i));\n t.unpairedTags.indexOf(o) !== -1 || r.push({ tagName: o, tagStartPos: d }), s = !0;\n }\n for (i++; i < e.length; i++)\n if (e[i] === \"<\")\n if (e[i + 1] === \"!\") {\n i++, i = z(e, i);\n continue;\n } else if (e[i + 1] === \"?\") {\n if (i = G(e, ++i), i.err)\n return i;\n } else\n break;\n else if (e[i] === \"&\") {\n const f = Ve(e, i);\n if (f == -1)\n return p(\"InvalidChar\", \"char '&' is not expected.\", w(e, i));\n i = f;\n } else if (n === !0 && !U(e[i]))\n return p(\"InvalidXml\", \"Extra text at the end\", w(e, i));\n e[i] === \"<\" && i--;\n }\n } else {\n if (U(e[i]))\n continue;\n return p(\"InvalidChar\", \"char '\" + e[i] + \"' is not expected.\", w(e, i));\n }\n if (s) {\n if (r.length == 1)\n return p(\"InvalidTag\", \"Unclosed tag '\" + r[0].tagName + \"'.\", w(e, r[0].tagStartPos));\n if (r.length > 0)\n return p(\"InvalidXml\", \"Invalid '\" + JSON.stringify(r.map((i) => i.tagName), null, 4).replace(/\\r?\\n/g, \"\") + \"' found.\", { line: 1, col: 1 });\n } else\n return p(\"InvalidXml\", \"Start tag expected.\", 1);\n return !0;\n};\nfunction U(e) {\n return e === \" \" || e === \"\t\" || e === `\n` || e === \"\\r\";\n}\nfunction G(e, t) {\n const r = t;\n for (; t < e.length; t++)\n if (e[t] == \"?\" || e[t] == \" \") {\n const s = e.substr(r, t - r);\n if (t > 5 && s === \"xml\")\n return p(\"InvalidXml\", \"XML declaration allowed only at the start of the document.\", w(e, t));\n if (e[t] == \"?\" && e[t + 1] == \">\") {\n t++;\n break;\n } else\n continue;\n }\n return t;\n}\nfunction z(e, t) {\n if (e.length > t + 5 && e[t + 1] === \"-\" && e[t + 2] === \"-\") {\n for (t += 3; t < e.length; t++)\n if (e[t] === \"-\" && e[t + 1] === \"-\" && e[t + 2] === \">\") {\n t += 2;\n break;\n }\n } else if (e.length > t + 8 && e[t + 1] === \"D\" && e[t + 2] === \"O\" && e[t + 3] === \"C\" && e[t + 4] === \"T\" && e[t + 5] === \"Y\" && e[t + 6] === \"P\" && e[t + 7] === \"E\") {\n let r = 1;\n for (t += 8; t < e.length; t++)\n if (e[t] === \"<\")\n r++;\n else if (e[t] === \">\" && (r--, r === 0))\n break;\n } else if (e.length > t + 9 && e[t + 1] === \"[\" && e[t + 2] === \"C\" && e[t + 3] === \"D\" && e[t + 4] === \"A\" && e[t + 5] === \"T\" && e[t + 6] === \"A\" && e[t + 7] === \"[\") {\n for (t += 8; t < e.length; t++)\n if (e[t] === \"]\" && e[t + 1] === \"]\" && e[t + 2] === \">\") {\n t += 2;\n break;\n }\n }\n return t;\n}\nconst Ce = '\"', Pe = \"'\";\nfunction xe(e, t) {\n let r = \"\", s = \"\", n = !1;\n for (; t < e.length; t++) {\n if (e[t] === Ce || e[t] === Pe)\n s === \"\" ? s = e[t] : s !== e[t] || (s = \"\");\n else if (e[t] === \">\" && s === \"\") {\n n = !0;\n break;\n }\n r += e[t];\n }\n return s !== \"\" ? !1 : {\n value: r,\n index: t,\n tagClosed: n\n };\n}\nconst $e = new RegExp(`(\\\\s*)([^\\\\s=]+)(\\\\s*=)?(\\\\s*(['\"])(([\\\\s\\\\S])*?)\\\\5)?`, \"g\");\nfunction H(e, t) {\n const r = M.getAllMatches(e, $e), s = {};\n for (let n = 0; n < r.length; n++) {\n if (r[n][1].length === 0)\n return p(\"InvalidAttr\", \"Attribute '\" + r[n][2] + \"' has no space in starting.\", v(r[n]));\n if (r[n][3] !== void 0 && r[n][4] === void 0)\n return p(\"InvalidAttr\", \"Attribute '\" + r[n][2] + \"' is without value.\", v(r[n]));\n if (r[n][3] === void 0 && !t.allowBooleanAttributes)\n return p(\"InvalidAttr\", \"boolean attribute '\" + r[n][2] + \"' is not allowed.\", v(r[n]));\n const i = r[n][2];\n if (!Le(i))\n return p(\"InvalidAttr\", \"Attribute '\" + i + \"' is an invalid name.\", v(r[n]));\n if (!s.hasOwnProperty(i))\n s[i] = 1;\n else\n return p(\"InvalidAttr\", \"Attribute '\" + i + \"' is repeated.\", v(r[n]));\n }\n return !0;\n}\nfunction Fe(e, t) {\n let r = /\\d/;\n for (e[t] === \"x\" && (t++, r = /[\\da-fA-F]/); t < e.length; t++) {\n if (e[t] === \";\")\n return t;\n if (!e[t].match(r))\n break;\n }\n return -1;\n}\nfunction Ve(e, t) {\n if (t++, e[t] === \";\")\n return -1;\n if (e[t] === \"#\")\n return t++, Fe(e, t);\n let r = 0;\n for (; t < e.length; t++, r++)\n if (!(e[t].match(/\\w/) && r < 20)) {\n if (e[t] === \";\")\n break;\n return -1;\n }\n return t;\n}\nfunction p(e, t, r) {\n return {\n err: {\n code: e,\n msg: t,\n line: r.line || r,\n col: r.col\n }\n };\n}\nfunction Le(e) {\n return M.isName(e);\n}\nfunction Re(e) {\n return M.isName(e);\n}\nfunction w(e, t) {\n const r = e.substring(0, t).split(/\\r?\\n/);\n return {\n line: r.length,\n // column number is last line's length + 1, because column numbering starts at 1:\n col: r[r.length - 1].length + 1\n };\n}\nfunction v(e) {\n return e.startIndex + e[1].length;\n}\nvar B = {};\nconst re = {\n preserveOrder: !1,\n attributeNamePrefix: \"@_\",\n attributesGroupName: !1,\n textNodeName: \"#text\",\n ignoreAttributes: !0,\n removeNSPrefix: !1,\n // remove NS from tag name or attribute name if true\n allowBooleanAttributes: !1,\n //a tag can have attributes without any value\n //ignoreRootElement : false,\n parseTagValue: !0,\n parseAttributeValue: !1,\n trimValues: !0,\n //Trim string values of tag and attributes\n cdataPropName: !1,\n numberParseOptions: {\n hex: !0,\n leadingZeros: !0,\n eNotation: !0\n },\n tagValueProcessor: function(e, t) {\n return t;\n },\n attributeValueProcessor: function(e, t) {\n return t;\n },\n stopNodes: [],\n //nested tags will not be parsed even for errors\n alwaysCreateTextNode: !1,\n isArray: () => !1,\n commentPropName: !1,\n unpairedTags: [],\n processEntities: !0,\n htmlEntities: !1,\n ignoreDeclaration: !1,\n ignorePiTags: !1,\n transformTagName: !1,\n transformAttributeName: !1,\n updateTag: function(e, t, r) {\n return e;\n }\n // skipEmptyListItem: false\n}, Se = function(e) {\n return Object.assign({}, re, e);\n};\nB.buildOptions = Se;\nB.defaultOptions = re;\nclass Me {\n constructor(t) {\n this.tagname = t, this.child = [], this[\":@\"] = {};\n }\n add(t, r) {\n t === \"__proto__\" && (t = \"#__proto__\"), this.child.push({ [t]: r });\n }\n addChild(t) {\n t.tagname === \"__proto__\" && (t.tagname = \"#__proto__\"), t[\":@\"] && Object.keys(t[\":@\"]).length > 0 ? this.child.push({ [t.tagname]: t.child, \":@\": t[\":@\"] }) : this.child.push({ [t.tagname]: t.child });\n }\n}\nvar Be = Me;\nconst ke = O;\nfunction qe(e, t) {\n const r = {};\n if (e[t + 3] === \"O\" && e[t + 4] === \"C\" && e[t + 5] === \"T\" && e[t + 6] === \"Y\" && e[t + 7] === \"P\" && e[t + 8] === \"E\") {\n t = t + 9;\n let s = 1, n = !1, i = !1, d = \"\";\n for (; t < e.length; t++)\n if (e[t] === \"<\" && !i) {\n if (n && Ge(e, t))\n t += 7, [entityName, val, t] = Xe(e, t + 1), val.indexOf(\"&\") === -1 && (r[We(entityName)] = {\n regx: RegExp(`&${entityName};`, \"g\"),\n val\n });\n else if (n && ze(e, t))\n t += 8;\n else if (n && He(e, t))\n t += 8;\n else if (n && Ke(e, t))\n t += 9;\n else if (Ue)\n i = !0;\n else\n throw new Error(\"Invalid DOCTYPE\");\n s++, d = \"\";\n } else if (e[t] === \">\") {\n if (i ? e[t - 1] === \"-\" && e[t - 2] === \"-\" && (i = !1, s--) : s--, s === 0)\n break;\n } else\n e[t] === \"[\" ? n = !0 : d += e[t];\n if (s !== 0)\n throw new Error(\"Unclosed DOCTYPE\");\n } else\n throw new Error(\"Invalid Tag instead of DOCTYPE\");\n return { entities: r, i: t };\n}\nfunction Xe(e, t) {\n let r = \"\";\n for (; t < e.length && e[t] !== \"'\" && e[t] !== '\"'; t++)\n r += e[t];\n if (r = r.trim(), r.indexOf(\" \") !== -1)\n throw new Error(\"External entites are not supported\");\n const s = e[t++];\n let n = \"\";\n for (; t < e.length && e[t] !== s; t++)\n n += e[t];\n return [r, n, t];\n}\nfunction Ue(e, t) {\n return e[t + 1] === \"!\" && e[t + 2] === \"-\" && e[t + 3] === \"-\";\n}\nfunction Ge(e, t) {\n return e[t + 1] === \"!\" && e[t + 2] === \"E\" && e[t + 3] === \"N\" && e[t + 4] === \"T\" && e[t + 5] === \"I\" && e[t + 6] === \"T\" && e[t + 7] === \"Y\";\n}\nfunction ze(e, t) {\n return e[t + 1] === \"!\" && e[t + 2] === \"E\" && e[t + 3] === \"L\" && e[t + 4] === \"E\" && e[t + 5] === \"M\" && e[t + 6] === \"E\" && e[t + 7] === \"N\" && e[t + 8] === \"T\";\n}\nfunction He(e, t) {\n return e[t + 1] === \"!\" && e[t + 2] === \"A\" && e[t + 3] === \"T\" && e[t + 4] === \"T\" && e[t + 5] === \"L\" && e[t + 6] === \"I\" && e[t + 7] === \"S\" && e[t + 8] === \"T\";\n}\nfunction Ke(e, t) {\n return e[t + 1] === \"!\" && e[t + 2] === \"N\" && e[t + 3] === \"O\" && e[t + 4] === \"T\" && e[t + 5] === \"A\" && e[t + 6] === \"T\" && e[t + 7] === \"I\" && e[t + 8] === \"O\" && e[t + 9] === \"N\";\n}\nfunction We(e) {\n if (ke.isName(e))\n return e;\n throw new Error(`Invalid entity name ${e}`);\n}\nvar Ze = qe;\nconst je = /^[-+]?0x[a-fA-F0-9]+$/, Ye = /^([\\-\\+])?(0*)(\\.[0-9]+([eE]\\-?[0-9]+)?|[0-9]+(\\.[0-9]+([eE]\\-?[0-9]+)?)?)$/;\n!Number.parseInt && window.parseInt && (Number.parseInt = window.parseInt);\n!Number.parseFloat && window.parseFloat && (Number.parseFloat = window.parseFloat);\nconst Je = {\n hex: !0,\n leadingZeros: !0,\n decimalPoint: \".\",\n eNotation: !0\n //skipLike: /regex/\n};\nfunction Qe(e, t = {}) {\n if (t = Object.assign({}, Je, t), !e || typeof e != \"string\")\n return e;\n let r = e.trim();\n if (t.skipLike !== void 0 && t.skipLike.test(r))\n return e;\n if (t.hex && je.test(r))\n return Number.parseInt(r, 16);\n {\n const s = Ye.exec(r);\n if (s) {\n const n = s[1], i = s[2];\n let d = De(s[3]);\n const u = s[4] || s[6];\n if (!t.leadingZeros && i.length > 0 && n && r[2] !== \".\")\n return e;\n if (!t.leadingZeros && i.length > 0 && !n && r[1] !== \".\")\n return e;\n {\n const o = Number(r), a = \"\" + o;\n return a.search(/[eE]/) !== -1 || u ? t.eNotation ? o : e : r.indexOf(\".\") !== -1 ? a === \"0\" && d === \"\" || a === d || n && a === \"-\" + d ? o : e : i ? d === a || n + d === a ? o : e : r === a || r === n + a ? o : e;\n }\n } else\n return e;\n }\n}\nfunction De(e) {\n return e && e.indexOf(\".\") !== -1 && (e = e.replace(/0+$/, \"\"), e === \".\" ? e = \"0\" : e[0] === \".\" ? e = \"0\" + e : e[e.length - 1] === \".\" && (e = e.substr(0, e.length - 1))), e;\n}\nvar et = Qe;\nconst k = O, T = Be, tt = Ze, rt = et;\n\"<((!\\\\[CDATA\\\\[([\\\\s\\\\S]*?)(]]>))|((NAME:)?(NAME))([^>]*)>|((\\\\/)(NAME)\\\\s*>))([^<]*)\".replace(/NAME/g, k.nameRegexp);\nlet nt = class {\n constructor(t) {\n this.options = t, this.currentNode = null, this.tagsNodeStack = [], this.docTypeEntities = {}, this.lastEntities = {\n apos: { regex: /&(apos|#39|#x27);/g, val: \"'\" },\n gt: { regex: /&(gt|#62|#x3E);/g, val: \">\" },\n lt: { regex: /&(lt|#60|#x3C);/g, val: \"<\" },\n quot: { regex: /&(quot|#34|#x22);/g, val: '\"' }\n }, this.ampEntity = { regex: /&(amp|#38|#x26);/g, val: \"&\" }, this.htmlEntities = {\n space: { regex: /&(nbsp|#160);/g, val: \" \" },\n // \"lt\" : { regex: /&(lt|#60);/g, val: \"<\" },\n // \"gt\" : { regex: /&(gt|#62);/g, val: \">\" },\n // \"amp\" : { regex: /&(amp|#38);/g, val: \"&\" },\n // \"quot\" : { regex: /&(quot|#34);/g, val: \"\\\"\" },\n // \"apos\" : { regex: /&(apos|#39);/g, val: \"'\" },\n cent: { regex: /&(cent|#162);/g, val: \"¢\" },\n pound: { regex: /&(pound|#163);/g, val: \"£\" },\n yen: { regex: /&(yen|#165);/g, val: \"¥\" },\n euro: { regex: /&(euro|#8364);/g, val: \"€\" },\n copyright: { regex: /&(copy|#169);/g, val: \"©\" },\n reg: { regex: /&(reg|#174);/g, val: \"®\" },\n inr: { regex: /&(inr|#8377);/g, val: \"₹\" }\n }, this.addExternalEntities = it, this.parseXml = at, this.parseTextData = st, this.resolveNameSpace = ot, this.buildAttributesMap = dt, this.isItStopNode = ht, this.replaceEntitiesValue = ft, this.readStopNodeData = gt, this.saveTextToParentTag = ct, this.addChild = lt;\n }\n};\nfunction it(e) {\n const t = Object.keys(e);\n for (let r = 0; r < t.length; r++) {\n const s = t[r];\n this.lastEntities[s] = {\n regex: new RegExp(\"&\" + s + \";\", \"g\"),\n val: e[s]\n };\n }\n}\nfunction st(e, t, r, s, n, i, d) {\n if (e !== void 0 && (this.options.trimValues && !s && (e = e.trim()), e.length > 0)) {\n d || (e = this.replaceEntitiesValue(e));\n const u = this.options.tagValueProcessor(t, e, r, n, i);\n return u == null ? e : typeof u != typeof e || u !== e ? u : this.options.trimValues ? $(e, this.options.parseTagValue, this.options.numberParseOptions) : e.trim() === e ? $(e, this.options.parseTagValue, this.options.numberParseOptions) : e;\n }\n}\nfunction ot(e) {\n if (this.options.removeNSPrefix) {\n const t = e.split(\":\"), r = e.charAt(0) === \"/\" ? \"/\" : \"\";\n if (t[0] === \"xmlns\")\n return \"\";\n t.length === 2 && (e = r + t[1]);\n }\n return e;\n}\nconst ut = new RegExp(`([^\\\\s=]+)\\\\s*(=\\\\s*(['\"])([\\\\s\\\\S]*?)\\\\3)?`, \"gm\");\nfunction dt(e, t, r) {\n if (!this.options.ignoreAttributes && typeof e == \"string\") {\n const s = k.getAllMatches(e, ut), n = s.length, i = {};\n for (let d = 0; d < n; d++) {\n const u = this.resolveNameSpace(s[d][1]);\n let o = s[d][4], a = this.options.attributeNamePrefix + u;\n if (u.length)\n if (this.options.transformAttributeName && (a = this.options.transformAttributeName(a)), a === \"__proto__\" && (a = \"#__proto__\"), o !== void 0) {\n this.options.trimValues && (o = o.trim()), o = this.replaceEntitiesValue(o);\n const l = this.options.attributeValueProcessor(u, o, t);\n l == null ? i[a] = o : typeof l != typeof o || l !== o ? i[a] = l : i[a] = $(\n o,\n this.options.parseAttributeValue,\n this.options.numberParseOptions\n );\n } else\n this.options.allowBooleanAttributes && (i[a] = !0);\n }\n if (!Object.keys(i).length)\n return;\n if (this.options.attributesGroupName) {\n const d = {};\n return d[this.options.attributesGroupName] = i, d;\n }\n return i;\n }\n}\nconst at = function(e) {\n e = e.replace(/\\r\\n?/g, `\n`);\n const t = new T(\"!xml\");\n let r = t, s = \"\", n = \"\";\n for (let i = 0; i < e.length; i++)\n if (e[i] === \"<\")\n if (e[i + 1] === \"/\") {\n const u = y(e, \">\", i, \"Closing Tag is not closed.\");\n let o = e.substring(i + 2, u).trim();\n if (this.options.removeNSPrefix) {\n const f = o.indexOf(\":\");\n f !== -1 && (o = o.substr(f + 1));\n }\n this.options.transformTagName && (o = this.options.transformTagName(o)), r && (s = this.saveTextToParentTag(s, r, n));\n const a = n.substring(n.lastIndexOf(\".\") + 1);\n if (o && this.options.unpairedTags.indexOf(o) !== -1)\n throw new Error(`Unpaired tag can not be used as closing tag: </${o}>`);\n let l = 0;\n a && this.options.unpairedTags.indexOf(a) !== -1 ? (l = n.lastIndexOf(\".\", n.lastIndexOf(\".\") - 1), this.tagsNodeStack.pop()) : l = n.lastIndexOf(\".\"), n = n.substring(0, l), r = this.tagsNodeStack.pop(), s = \"\", i = u;\n } else if (e[i + 1] === \"?\") {\n let u = x(e, i, !1, \"?>\");\n if (!u)\n throw new Error(\"Pi Tag is not closed.\");\n if (s = this.saveTextToParentTag(s, r, n), !(this.options.ignoreDeclaration && u.tagName === \"?xml\" || this.options.ignorePiTags)) {\n const o = new T(u.tagName);\n o.add(this.options.textNodeName, \"\"), u.tagName !== u.tagExp && u.attrExpPresent && (o[\":@\"] = this.buildAttributesMap(u.tagExp, n, u.tagName)), this.addChild(r, o, n);\n }\n i = u.closeIndex + 1;\n } else if (e.substr(i + 1, 3) === \"!--\") {\n const u = y(e, \"-->\", i + 4, \"Comment is not closed.\");\n if (this.options.commentPropName) {\n const o = e.substring(i + 4, u - 2);\n s = this.saveTextToParentTag(s, r, n), r.add(this.options.commentPropName, [{ [this.options.textNodeName]: o }]);\n }\n i = u;\n } else if (e.substr(i + 1, 2) === \"!D\") {\n const u = tt(e, i);\n this.docTypeEntities = u.entities, i = u.i;\n } else if (e.substr(i + 1, 2) === \"![\") {\n const u = y(e, \"]]>\", i, \"CDATA is not closed.\") - 2, o = e.substring(i + 9, u);\n if (s = this.saveTextToParentTag(s, r, n), this.options.cdataPropName)\n r.add(this.options.cdataPropName, [{ [this.options.textNodeName]: o }]);\n else {\n let a = this.parseTextData(o, r.tagname, n, !0, !1, !0);\n a == null && (a = \"\"), r.add(this.options.textNodeName, a);\n }\n i = u + 2;\n } else {\n let u = x(e, i, this.options.removeNSPrefix), o = u.tagName;\n const a = u.rawTagName;\n let l = u.tagExp, f = u.attrExpPresent, c = u.closeIndex;\n this.options.transformTagName && (o = this.options.transformTagName(o)), r && s && r.tagname !== \"!xml\" && (s = this.saveTextToParentTag(s, r, n, !1));\n const g = r;\n if (g && this.options.unpairedTags.indexOf(g.tagname) !== -1 && (r = this.tagsNodeStack.pop(), n = n.substring(0, n.lastIndexOf(\".\"))), o !== t.tagname && (n += n ? \".\" + o : o), this.isItStopNode(this.options.stopNodes, n, o)) {\n let h = \"\";\n if (l.length > 0 && l.lastIndexOf(\"/\") === l.length - 1)\n i = u.closeIndex;\n else if (this.options.unpairedTags.indexOf(o) !== -1)\n i = u.closeIndex;\n else {\n const E = this.readStopNodeData(e, a, c + 1);\n if (!E)\n throw new Error(`Unexpected end of ${a}`);\n i = E.i, h = E.tagContent;\n }\n const _ = new T(o);\n o !== l && f && (_[\":@\"] = this.buildAttributesMap(l, n, o)), h && (h = this.parseTextData(h, o, n, !0, f, !0, !0)), n = n.substr(0, n.lastIndexOf(\".\")), _.add(this.options.textNodeName, h), this.addChild(r, _, n);\n } else {\n if (l.length > 0 && l.lastIndexOf(\"/\") === l.length - 1) {\n o[o.length - 1] === \"/\" ? (o = o.substr(0, o.length - 1), n = n.substr(0, n.length - 1), l = o) : l = l.substr(0, l.length - 1), this.options.transformTagName && (o = this.options.transformTagName(o));\n const h = new T(o);\n o !== l && f && (h[\":@\"] = this.buildAttributesMap(l, n, o)), this.addChild(r, h, n), n = n.substr(0, n.lastIndexOf(\".\"));\n } else {\n const h = new T(o);\n this.tagsNodeStack.push(r), o !== l && f && (h[\":@\"] = this.buildAttributesMap(l, n, o)), this.addChild(r, h, n), r = h;\n }\n s = \"\", i = c;\n }\n }\n else\n s += e[i];\n return t.child;\n};\nfunction lt(e, t, r) {\n const s = this.options.updateTag(t.tagname, r, t[\":@\"]);\n s === !1 || (typeof s == \"string\" && (t.tagname = s), e.addChild(t));\n}\nconst ft = function(e) {\n if (this.options.processEntities) {\n for (let t in this.docTypeEntities) {\n const r = this.docTypeEntities[t];\n e = e.replace(r.regx, r.val);\n }\n for (let t in this.lastEntities) {\n const r = this.lastEntities[t];\n e = e.replace(r.regex, r.val);\n }\n if (this.options.htmlEntities)\n for (let t in this.htmlEntities) {\n const r = this.htmlEntities[t];\n e = e.replace(r.regex, r.val);\n }\n e = e.replace(this.ampEntity.regex, this.ampEntity.val);\n }\n return e;\n};\nfunction ct(e, t, r, s) {\n return e && (s === void 0 && (s = Object.keys(t.child).length === 0), e = this.parseTextData(\n e,\n t.tagname,\n r,\n !1,\n t[\":@\"] ? Object.keys(t[\":@\"]).length !== 0 : !1,\n s\n ), e !== void 0 && e !== \"\" && t.add(this.options.textNodeName, e), e = \"\"), e;\n}\nfunction ht(e, t, r) {\n const s = \"*.\" + r;\n for (const n in e) {\n const i = e[n];\n if (s === i || t === i)\n return !0;\n }\n return !1;\n}\nfunction pt(e, t, r = \">\") {\n let s, n = \"\";\n for (let i = t; i < e.length; i++) {\n let d = e[i];\n if (s)\n d === s && (s = \"\");\n else if (d === '\"' || d === \"'\")\n s = d;\n else if (d === r[0])\n if (r[1]) {\n if (e[i + 1] === r[1])\n return {\n data: n,\n index: i\n };\n } else\n return {\n data: n,\n index: i\n };\n else\n d === \"\t\" && (d = \" \");\n n += d;\n }\n}\nfunction y(e, t, r, s) {\n const n = e.indexOf(t, r);\n if (n === -1)\n throw new Error(s);\n return n + t.length - 1;\n}\nfunction x(e, t, r, s = \">\") {\n const n = pt(e, t + 1, s);\n if (!n)\n return;\n let i = n.data;\n const d = n.index, u = i.search(/\\s/);\n let o = i, a = !0;\n u !== -1 && (o = i.substr(0, u).replace(/\\s\\s*$/, \"\"), i = i.substr(u + 1));\n const l = o;\n if (r) {\n const f = o.indexOf(\":\");\n f !== -1 && (o = o.substr(f + 1), a = o !== n.data.substr(f + 1));\n }\n return {\n tagName: o,\n tagExp: i,\n closeIndex: d,\n attrExpPresent: a,\n rawTagName: l\n };\n}\nfunction gt(e, t, r) {\n const s = r;\n let n = 1;\n for (; r < e.length; r++)\n if (e[r] === \"<\")\n if (e[r + 1] === \"/\") {\n const i = y(e, \">\", r, `${t} is not closed`);\n if (e.substring(r + 2, i).trim() === t && (n--, n === 0))\n return {\n tagContent: e.substring(s, r),\n i\n };\n r = i;\n } else if (e[r + 1] === \"?\")\n r = y(e, \"?>\", r + 1, \"StopNode is not closed.\");\n else if (e.substr(r + 1, 3) === \"!--\")\n r = y(e, \"-->\", r + 3, \"StopNode is not closed.\");\n else if (e.substr(r + 1, 2) === \"![\")\n r = y(e, \"]]>\", r, \"StopNode is not closed.\") - 2;\n else {\n const i = x(e, r, \">\");\n i && ((i && i.tagName) === t && i.tagExp[i.tagExp.length - 1] !== \"/\" && n++, r = i.closeIndex);\n }\n}\nfunction $(e, t, r) {\n if (t && typeof e == \"string\") {\n const s = e.trim();\n return s === \"true\" ? !0 : s === \"false\" ? !1 : rt(e, r);\n } else\n return k.isExist(e) ? e : \"\";\n}\nvar wt = nt, ne = {};\nfunction mt(e, t) {\n return ie(e, t);\n}\nfunction ie(e, t, r) {\n let s;\n const n = {};\n for (let i = 0; i < e.length; i++) {\n const d = e[i], u = Nt(d);\n let o = \"\";\n if (r === void 0 ? o = u : o = r + \".\" + u, u === t.textNodeName)\n s === void 0 ? s = d[u] : s += \"\" + d[u];\n else {\n if (u === void 0)\n continue;\n if (d[u]) {\n let a = ie(d[u], t, o);\n const l = bt(a, t);\n d[\":@\"] ? Et(a, d[\":@\"], o, t) : Object.keys(a).length === 1 && a[t.textNodeName] !== void 0 && !t.alwaysCreateTextNode ? a = a[t.textNodeName] : Object.keys(a).length === 0 && (t.alwaysCreateTextNode ? a[t.textNodeName] = \"\" : a = \"\"), n[u] !== void 0 && n.hasOwnProperty(u) ? (Array.isArray(n[u]) || (n[u] = [n[u]]), n[u].push(a)) : t.isArray(u, o, l) ? n[u] = [a] : n[u] = a;\n }\n }\n }\n return typeof s == \"string\" ? s.length > 0 && (n[t.textNodeName] = s) : s !== void 0 && (n[t.textNodeName] = s), n;\n}\nfunction Nt(e) {\n const t = Object.keys(e);\n for (let r = 0; r < t.length; r++) {\n const s = t[r];\n if (s !== \":@\")\n return s;\n }\n}\nfunction Et(e, t, r, s) {\n if (t) {\n const n = Object.keys(t), i = n.length;\n for (let d = 0; d < i; d++) {\n const u = n[d];\n s.isArray(u, r + \".\" + u, !0, !0) ? e[u] = [t[u]] : e[u] = t[u];\n }\n }\n}\nfunction bt(e, t) {\n const { textNodeName: r } = t, s = Object.keys(e).length;\n return !!(s === 0 || s === 1 && (e[r] || typeof e[r] == \"boolean\" || e[r] === 0));\n}\nne.prettify = mt;\nconst { buildOptions: yt } = B, _t = wt, { prettify: vt } = ne, Tt = S;\nlet It = class {\n constructor(t) {\n this.externalEntities = {}, this.options = yt(t);\n }\n /**\n * Parse XML dats to JS object \n * @param {string|Buffer} xmlData \n * @param {boolean|Object} validationOption \n */\n parse(t, r) {\n if (typeof t != \"string\")\n if (t.toString)\n t = t.toString();\n else\n throw new Error(\"XML data is accepted in String or Bytes[] form.\");\n if (r) {\n r === !0 && (r = {});\n const i = Tt.validate(t, r);\n if (i !== !0)\n throw Error(`${i.err.msg}:${i.err.line}:${i.err.col}`);\n }\n const s = new _t(this.options);\n s.addExternalEntities(this.externalEntities);\n const n = s.parseXml(t);\n return this.options.preserveOrder || n === void 0 ? n : vt(n, this.options);\n }\n /**\n * Add Entity which is not by default supported by this library\n * @param {string} key \n * @param {string} value \n */\n addEntity(t, r) {\n if (r.indexOf(\"&\") !== -1)\n throw new Error(\"Entity value can't have '&'\");\n if (t.indexOf(\"&\") !== -1 || t.indexOf(\";\") !== -1)\n throw new Error(\"An entity must be set without '&' and ';'. Eg. use '#xD' for '
'\");\n if (r === \"&\")\n throw new Error(\"An entity with value '&' is not permitted\");\n this.externalEntities[t] = r;\n }\n};\nvar At = It;\nconst Ot = `\n`;\nfunction Ct(e, t) {\n let r = \"\";\n return t.format && t.indentBy.length > 0 && (r = Ot), se(e, t, \"\", r);\n}\nfunction se(e, t, r, s) {\n let n = \"\", i = !1;\n for (let d = 0; d < e.length; d++) {\n const u = e[d], o = Pt(u);\n if (o === void 0)\n continue;\n let a = \"\";\n if (r.length === 0 ? a = o : a = `${r}.${o}`, o === t.textNodeName) {\n let h = u[o];\n xt(a, t) || (h = t.tagValueProcessor(o, h), h = oe(h, t)), i && (n += s), n += h, i = !1;\n continue;\n } else if (o === t.cdataPropName) {\n i && (n += s), n += `<![CDATA[${u[o][0][t.textNodeName]}]]>`, i = !1;\n continue;\n } else if (o === t.commentPropName) {\n n += s + `<!--${u[o][0][t.textNodeName]}-->`, i = !0;\n continue;\n } else if (o[0] === \"?\") {\n const h = K(u[\":@\"], t), _ = o === \"?xml\" ? \"\" : s;\n let E = u[o][0][t.textNodeName];\n E = E.length !== 0 ? \" \" + E : \"\", n += _ + `<${o}${E}${h}?>`, i = !0;\n continue;\n }\n let l = s;\n l !== \"\" && (l += t.indentBy);\n const f = K(u[\":@\"], t), c = s + `<${o}${f}`, g = se(u[o], t, a, l);\n t.unpairedTags.indexOf(o) !== -1 ? t.suppressUnpairedNode ? n += c + \">\" : n += c + \"/>\" : (!g || g.length === 0) && t.suppressEmptyNode ? n += c + \"/>\" : g && g.endsWith(\">\") ? n += c + `>${g}${s}</${o}>` : (n += c + \">\", g && s !== \"\" && (g.includes(\"/>\") || g.includes(\"</\")) ? n += s + t.indentBy + g + s : n += g, n += `</${o}>`), i = !0;\n }\n return n;\n}\nfunction Pt(e) {\n const t = Object.keys(e);\n for (let r = 0; r < t.length; r++) {\n const s = t[r];\n if (e.hasOwnProperty(s) && s !== \":@\")\n return s;\n }\n}\nfunction K(e, t) {\n let r = \"\";\n if (e && !t.ignoreAttributes)\n for (let s in e) {\n if (!e.hasOwnProperty(s))\n continue;\n let n = t.attributeValueProcessor(s, e[s]);\n n = oe(n, t), n === !0 && t.suppressBooleanAttributes ? r += ` ${s.substr(t.attributeNamePrefix.length)}` : r += ` ${s.substr(t.attributeNamePrefix.length)}=\"${n}\"`;\n }\n return r;\n}\nfunction xt(e, t) {\n e = e.substr(0, e.length - t.textNodeName.length - 1);\n let r = e.substr(e.lastIndexOf(\".\") + 1);\n for (let s in t.stopNodes)\n if (t.stopNodes[s] === e || t.stopNodes[s] === \"*.\" + r)\n return !0;\n return !1;\n}\nfunction oe(e, t) {\n if (e && e.length > 0 && t.processEntities)\n for (let r = 0; r < t.entities.length; r++) {\n const s = t.entities[r];\n e = e.replace(s.regex, s.val);\n }\n return e;\n}\nvar $t = Ct;\nconst Ft = $t, Vt = {\n attributeNamePrefix: \"@_\",\n attributesGroupName: !1,\n textNodeName: \"#text\",\n ignoreAttributes: !0,\n cdataPropName: !1,\n format: !1,\n indentBy: \" \",\n suppressEmptyNode: !1,\n suppressUnpairedNode: !0,\n suppressBooleanAttributes: !0,\n tagValueProcessor: function(e, t) {\n return t;\n },\n attributeValueProcessor: function(e, t) {\n return t;\n },\n preserveOrder: !1,\n commentPropName: !1,\n unpairedTags: [],\n entities: [\n { regex: new RegExp(\"&\", \"g\"), val: \"&\" },\n //it must be on top\n { regex: new RegExp(\">\", \"g\"), val: \">\" },\n { regex: new RegExp(\"<\", \"g\"), val: \"<\" },\n { regex: new RegExp(\"'\", \"g\"), val: \"'\" },\n { regex: new RegExp('\"', \"g\"), val: \""\" }\n ],\n processEntities: !0,\n stopNodes: [],\n // transformTagName: false,\n // transformAttributeName: false,\n oneListGroup: !1\n};\nfunction b(e) {\n this.options = Object.assign({}, Vt, e), this.options.ignoreAttributes || this.options.attributesGroupName ? this.isAttribute = function() {\n return !1;\n } : (this.attrPrefixLen = this.options.attributeNamePrefix.length, this.isAttribute = St), this.processTextOrObjNode = Lt, this.options.format ? (this.indentate = Rt, this.tagEndChar = `>\n`, this.newLine = `\n`) : (this.indentate = function() {\n return \"\";\n }, this.tagEndChar = \">\", this.newLine = \"\");\n}\nb.prototype.build = function(e) {\n return this.options.preserveOrder ? Ft(e, this.options) : (Array.isArray(e) && this.options.arrayNodeName && this.options.arrayNodeName.length > 1 && (e = {\n [this.options.arrayNodeName]: e\n }), this.j2x(e, 0).val);\n};\nb.prototype.j2x = function(e, t) {\n let r = \"\", s = \"\";\n for (let n in e)\n if (Object.prototype.hasOwnProperty.call(e, n))\n if (typeof e[n] > \"u\")\n this.isAttribute(n) && (s += \"\");\n else if (e[n] === null)\n this.isAttribute(n) ? s += \"\" : n[0] === \"?\" ? s += this.indentate(t) + \"<\" + n + \"?\" + this.tagEndChar : s += this.indentate(t) + \"<\" + n + \"/\" + this.tagEndChar;\n else if (e[n] instanceof Date)\n s += this.buildTextValNode(e[n], n, \"\", t);\n else if (typeof e[n] != \"object\") {\n const i = this.isAttribute(n);\n if (i)\n r += this.buildAttrPairStr(i, \"\" + e[n]);\n else if (n === this.options.textNodeName) {\n let d = this.options.tagValueProcessor(n, \"\" + e[n]);\n s += this.replaceEntitiesValue(d);\n } else\n s += this.buildTextValNode(e[n], n, \"\", t);\n } else if (Array.isArray(e[n])) {\n const i = e[n].length;\n let d = \"\";\n for (let u = 0; u < i; u++) {\n const o = e[n][u];\n typeof o > \"u\" || (o === null ? n[0] === \"?\" ? s += this.indentate(t) + \"<\" + n + \"?\" + this.tagEndChar : s += this.indentate(t) + \"<\" + n + \"/\" + this.tagEndChar : typeof o == \"object\" ? this.options.oneListGroup ? d += this.j2x(o, t + 1).val : d += this.processTextOrObjNode(o, n, t) : d += this.buildTextValNode(o, n, \"\", t));\n }\n this.options.oneListGroup && (d = this.buildObjectNode(d, n, \"\", t)), s += d;\n } else if (this.options.attributesGroupName && n === this.options.attributesGroupName) {\n const i = Object.keys(e[n]), d = i.length;\n for (let u = 0; u < d; u++)\n r += this.buildAttrPairStr(i[u], \"\" + e[n][i[u]]);\n } else\n s += this.processTextOrObjNode(e[n], n, t);\n return { attrStr: r, val: s };\n};\nb.prototype.buildAttrPairStr = function(e, t) {\n return t = this.options.attributeValueProcessor(e, \"\" + t), t = this.replaceEntitiesValue(t), this.options.suppressBooleanAttributes && t === \"true\" ? \" \" + e : \" \" + e + '=\"' + t + '\"';\n};\nfunction Lt(e, t, r) {\n const s = this.j2x(e, r + 1);\n return e[this.options.textNodeName] !== void 0 && Object.keys(e).length === 1 ? this.buildTextValNode(e[this.options.textNodeName], t, s.attrStr, r) : this.buildObjectNode(s.val, t, s.attrStr, r);\n}\nb.prototype.buildObjectNode = function(e, t, r, s) {\n if (e === \"\")\n return t[0] === \"?\" ? this.indentate(s) + \"<\" + t + r + \"?\" + this.tagEndChar : this.indentate(s) + \"<\" + t + r + this.closeTag(t) + this.tagEndChar;\n {\n let n = \"</\" + t + this.tagEndChar, i = \"\";\n return t[0] === \"?\" && (i = \"?\", n = \"\"), (r || r === \"\") && e.indexOf(\"<\") === -1 ? this.indentate(s) + \"<\" + t + r + i + \">\" + e + n : this.options.commentPropName !== !1 && t === this.options.commentPropName && i.length === 0 ? this.indentate(s) + `<!--${e}-->` + this.newLine : this.indentate(s) + \"<\" + t + r + i + this.tagEndChar + e + this.indentate(s) + n;\n }\n};\nb.prototype.closeTag = function(e) {\n let t = \"\";\n return this.options.unpairedTags.indexOf(e) !== -1 ? this.options.suppressUnpairedNode || (t = \"/\") : this.options.suppressEmptyNode ? t = \"/\" : t = `></${e}`, t;\n};\nb.prototype.buildTextValNode = function(e, t, r, s) {\n if (this.options.cdataPropName !== !1 && t === this.options.cdataPropName)\n return this.indentate(s) + `<![CDATA[${e}]]>` + this.newLine;\n if (this.options.commentPropName !== !1 && t === this.options.commentPropName)\n return this.indentate(s) + `<!--${e}-->` + this.newLine;\n if (t[0] === \"?\")\n return this.indentate(s) + \"<\" + t + r + \"?\" + this.tagEndChar;\n {\n let n = this.options.tagValueProcessor(t, e);\n return n = this.replaceEntitiesValue(n), n === \"\" ? this.indentate(s) + \"<\" + t + r + this.closeTag(t) + this.tagEndChar : this.indentate(s) + \"<\" + t + r + \">\" + n + \"</\" + t + this.tagEndChar;\n }\n};\nb.prototype.replaceEntitiesValue = function(e) {\n if (e && e.length > 0 && this.options.processEntities)\n for (let t = 0; t < this.options.entities.length; t++) {\n const r = this.options.entities[t];\n e = e.replace(r.regex, r.val);\n }\n return e;\n};\nfunction Rt(e) {\n return this.options.indentBy.repeat(e);\n}\nfunction St(e) {\n return e.startsWith(this.options.attributeNamePrefix) && e !== this.options.textNodeName ? e.substr(this.attrPrefixLen) : !1;\n}\nvar Mt = b;\nconst Bt = S, kt = At, qt = Mt;\nvar W = {\n XMLParser: kt,\n XMLValidator: Bt,\n XMLBuilder: qt\n};\nfunction Xt(e) {\n if (typeof e != \"string\")\n throw new TypeError(`Expected a \\`string\\`, got \\`${typeof e}\\``);\n if (e = e.trim(), e.length === 0 || W.XMLValidator.validate(e) !== !0)\n return !1;\n let t;\n const r = new W.XMLParser();\n try {\n t = r.parse(e);\n } catch {\n return !1;\n }\n return !(!t || !(\"svg\" in t));\n}\n/**\n * @copyright Copyright (c) 2022 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nclass cr {\n _view;\n constructor(t) {\n Ut(t), this._view = t;\n }\n get id() {\n return this._view.id;\n }\n get name() {\n return this._view.name;\n }\n get caption() {\n return this._view.caption;\n }\n get emptyTitle() {\n return this._view.emptyTitle;\n }\n get emptyCaption() {\n return this._view.emptyCaption;\n }\n get getContents() {\n return this._view.getContents;\n }\n get icon() {\n return this._view.icon;\n }\n set icon(t) {\n this._view.icon = t;\n }\n get order() {\n return this._view.order;\n }\n set order(t) {\n this._view.order = t;\n }\n get params() {\n return this._view.params;\n }\n set params(t) {\n this._view.params = t;\n }\n get columns() {\n return this._view.columns;\n }\n get emptyView() {\n return this._view.emptyView;\n }\n get parent() {\n return this._view.parent;\n }\n get sticky() {\n return this._view.sticky;\n }\n get expanded() {\n return this._view.expanded;\n }\n set expanded(t) {\n this._view.expanded = t;\n }\n get defaultSortKey() {\n return this._view.defaultSortKey;\n }\n}\nconst Ut = function(e) {\n if (!e.id || typeof e.id != \"string\")\n throw new Error(\"View id is required and must be a string\");\n if (!e.name || typeof e.name != \"string\")\n throw new Error(\"View name is required and must be a string\");\n if (e.columns && e.columns.length > 0 && (!e.caption || typeof e.caption != \"string\"))\n throw new Error(\"View caption is required for top-level views and must be a string\");\n if (!e.getContents || typeof e.getContents != \"function\")\n throw new Error(\"View getContents is required and must be a function\");\n if (!e.icon || typeof e.icon != \"string\" || !Xt(e.icon))\n throw new Error(\"View icon is required and must be a valid svg string\");\n if (!(\"order\" in e) || typeof e.order != \"number\")\n throw new Error(\"View order is required and must be a number\");\n if (e.columns && e.columns.forEach((t) => {\n if (!(t instanceof Ie))\n throw new Error(\"View columns must be an array of Column. Invalid column found\");\n }), e.emptyView && typeof e.emptyView != \"function\")\n throw new Error(\"View emptyView must be a function\");\n if (e.parent && typeof e.parent != \"string\")\n throw new Error(\"View parent must be a string\");\n if (\"sticky\" in e && typeof e.sticky != \"boolean\")\n throw new Error(\"View sticky must be a boolean\");\n if (\"expanded\" in e && typeof e.expanded != \"boolean\")\n throw new Error(\"View expanded must be a boolean\");\n if (e.defaultSortKey && typeof e.defaultSortKey != \"string\")\n throw new Error(\"View defaultSortKey must be a string\");\n return !0;\n};\n/**\n * @copyright 2019 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author Christoph Wurst <christoph@winzerhof-wurst.at>\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nconst hr = function(e) {\n return F().registerEntry(e);\n}, pr = function(e) {\n return F().unregisterEntry(e);\n}, gr = function(e) {\n return F().getEntries(e).sort((r, s) => r.order !== void 0 && s.order !== void 0 && r.order !== s.order ? r.order - s.order : r.displayName.localeCompare(s.displayName, void 0, { numeric: !0, sensitivity: \"base\" }));\n};\nexport {\n Ie as Column,\n Z as DefaultType,\n ye as File,\n Qt as FileAction,\n R as FileType,\n _e as Folder,\n tr as Header,\n Te as Navigation,\n D as Node,\n Q as NodeStatus,\n N as Permission,\n cr as View,\n hr as addNewFileMenuEntry,\n ur as davGetClient,\n sr as davGetDefaultPropfind,\n Ee as davGetFavoritesReport,\n or as davGetRecentSearch,\n be as davParsePermissions,\n te as davRemoteURL,\n ve as davResultToNode,\n ee as davRootPath,\n Y as defaultDavNamespaces,\n j as defaultDavProperties,\n Yt as formatFileSize,\n L as getDavNameSpaces,\n V as getDavProperties,\n dr as getFavoriteNodes,\n er as getFileActions,\n nr as getFileListHeaders,\n ar as getNavigation,\n gr as getNewFileMenuEntries,\n Jt as parseFileSize,\n ir as registerDavProperty,\n Dt as registerFileAction,\n rr as registerFileListHeaders,\n pr as removeNewFileMenuEntry\n};\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \"-\" + chunkId + \".js?v=\" + {\"3240\":\"29c327d1e4e42959b82f\",\"3998\":\"a49373c9d79e30e60f7b\",\"9064\":\"8552ff7551ed1b088266\"}[chunkId] + \"\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 9837;","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && !scriptUrl) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t9837: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [7874], () => (__webpack_require__(37876)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","getLoggerBuilder","setApp","detectUser","build","action","FileAction","id","displayName","nodes","view","t","iconSvgInline","enabled","length","map","node","permissions","every","permission","Permission","DELETE","exec","axios","delete","encodedSource","emit","error","logger","source","execBatch","dir","Promise","all","this","order","triggerDownload","url","hiddenElement","document","createElement","download","href","click","downloadNodes","secret","Math","random","toString","substring","generateUrl","files","JSON","stringify","basename","some","type","FileType","Folder","root","startsWith","READ","async","Array","fill","UPDATE","path","link","generateOcsUrl","result","post","uid","getCurrentUser","window","location","host","encodePath","data","ocs","token","showError","openLocalClient","shouldFavorite","attributes","favorite","favoriteNode","willFavorite","tags","OC","TAG_FAVORITE","dirname","Vue","StarSvg","NONE","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","Axios","AxiosError","CanceledError","isCancel","CancelToken","VERSION","Cancel","isAxiosError","spread","toFormData","AxiosHeaders","HttpStatusCode","formToJSON","getAdapter","mergeConfig","name","emits","props","title","String","fillColor","default","size","Number","_vm","_c","_self","_b","staticClass","attrs","on","$event","$emit","$attrs","_v","_s","_e","queue","getQueue","PQueue","concurrency","MoveCopyAction","canMove","reduce","min","ALL","canCopy","parse","attribute","scope","key","canDownload","getActionForNodes","MOVE_OR_COPY","MOVE","COPY","handleCopyMoveNodeTo","destination","method","overwrite","arguments","undefined","Error","relativePath","join","destinationUrl","generateRemoteUrl","debug","NodeStatus","LOADING","add","headers","Destination","encodeURI","Overwrite","response","status","message","FolderMoveSvg","filePicker","getFilePickerBuilder","allowDirectories","setFilter","n","CREATE","fileid","setMimeTypeFilter","setMultiSelect","startAt","resolve","reject","setButtonFactory","buttons","target","push","label","icon","CopyIcon","callback","MoveIcon","pick","catch","openFilePickerForAction","FolderSvg","isDavRessource","OCP","Files","Router","goToRoute","DefaultType","HIDDEN","InformationSvg","OCA","Sidebar","open","File","getUniqueName","names","newName","i","includes","ext","extname","entry","context","handler","content","contentNames","encodeURIComponent","parseInt","createNewFolder","folder","mtime","Date","owner","showSuccess","WorkerGlobalScope","self","globalThis","fetch","bind","Headers","Request","Response","HOT_PATCHER_TYPE","NOOP","createNewItem","original","methods","final","HotPatcher","constructor","_configuration","registry","getEmptyAction","__type__","configuration","newAction","control","allowTargetOverrides","Object","keys","forEach","foreignKey","hasOwnProperty","assign","execute","args","get","item","_this","shift","apply","sequence","isPatched","patch","opts","chain","patchInline","plugin","restore","setFinal","__patcher","NONCE_CHARS","generateDigestAuthHeader","digest","replace","uri","indexOf","slice","toUpperCase","qop","test","ncString","nc","ha1","algorithm","user","realm","pass","nonce","cnonce","ha1Hash","md5","toLowerCase","ha1Compute","username","password","ha2","digestResponse","authValues","opaque","authHeader","k","obj","prototype","call","getPrototypeOf","proto","isPlainObject","setPrototypeOf","merge","output","items","nextItem","mergeObjects","obj1","obj2","isArray","headerPayloads","headerKeys","header","lowerHeader","hasArrayBuffer","ArrayBuffer","objToString","_request","requestOptions","patcher","body","newHeaders","value","isBuffer","isArrayBuffer","requestDataToFetchBody","signal","withCredentials","credentials","httpAgent","httpsAgent","agent","parsedURL","protocol","getFetchOptions","rootPath","defaultRootUrl","getClient","rootUrl","client","createClient","requesttoken","getRequestToken","getPatcher","_digest","hasDigestAuth","Authorization","split","re","match","floor","makeNonce","parseDigestAuth","response2","request","hashCode","str","a","b","charCodeAt","resultToNode","davParsePermissions","filename","nodeData","lastmod","mime","hasPreview","failed","reportPayload","getDavNameSpaces","getDavProperties","getContents","propfindPayload","davGetDefaultPropfind","rootResponse","stat","details","contentsResponse","getDirectoryContents","includeSelf","contents","filter","generateFolderView","index","View","generateIdFromPath","params","parent","columns","lastTwoWeeksTimestamp","round","now","searchPayload","inheritAttrs","required","checked","Boolean","previewUrl","ratio","failedPreview","computed","nameWithoutExt","realPreviewUrl","mimeIcon","getElementById","pathSections","section","encodeFilePath","MimeType","getIconUrl","onCheck","onFailure","domProps","class","extend","components","NcEmptyContent","NcModal","TemplatePreview","loading","opened","provider","extension","emptyTemplate","mimetypes","selectedTemplate","templates","find","template","style","width","margin","border","fetchedProvider","getTemplates","app","onSubmit","close","currentDirectory","URL","searchParams","warn","fileInfo","filePath","templatePath","templateType","createFromTemplate","normalize","openfile","_setupProxy","preventDefault","stopPropagation","_l","mixin","TemplatePickerRoot","appendChild","loadState","templatesPath","TemplatePicker","TemplatePickerView","propsData","$mount","addNewFileMenuEntry","initTemplatesFolder","removeNewFileMenuEntry","iconClass","directory","copySystemTemplates","template_path","registerFileAction","deleteAction","downloadAction","editLocallyAction","favoriteAction","moveOrCopyAction","openFolderAction","openInFilesAction","renameAction","sidebarAction","viewInFolderAction","newFolderEntry","favoriteFolders","favoriteFoldersViews","Navigation","getNavigation","register","caption","emptyTitle","emptyCaption","subscribe","addPathToFavorites","removePathFromFavorites","updateAndSortViews","sort","localeCompare","getLanguage","ignorePunctuation","findIndex","splice","remove","registerFavoritesView","controller","AbortController","CancelablePromise","onCancel","abort","defaultSortKey","deep","navigator","addEventListener","noRewrite","registration","serviceWorker","registerDavProperty","module","exports","_typeof","Symbol","iterator","_exports","_setPrototypeOf","o","p","__proto__","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","valueOf","e","_isNativeReflectConstruct","Super","_getPrototypeOf","NewTarget","TypeError","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","_createForOfIteratorHelper","allowArrayLike","it","minLen","_arrayLikeToArray","from","_unsupportedIterableToArray","F","s","done","f","err","normalCompletion","didErr","step","next","_e2","return","arr","len","arr2","_classCallCheck","instance","Constructor","_defineProperties","descriptor","enumerable","configurable","writable","defineProperty","_createClass","protoProps","staticProps","_defineProperty","_classPrivateFieldInitSpec","privateMap","privateCollection","has","_checkPrivateRedeclaration","set","_classPrivateFieldGet","receiver","_classApplyDescriptorGet","_classExtractFieldDescriptor","_classPrivateFieldSet","_classApplyDescriptorSet","cancelable","isCancelablePromise","toStringTag","_internals","WeakMap","_promise","CancelablePromiseInternal","_ref","_ref$executor","executor","_ref$internals","internals","isCanceled","onCancelList","_ref$promise","promise","cancel","onfulfilled","onrejected","makeCancelable","then","createCallback","onfinally","runWhenCanceled","finally","callbacks","_step","_iterator","console","_CancelablePromiseInt","subClass","superClass","create","_inherits","_super","iterable","makeAllCancelable","allSettled","any","race","reason","_default","onResult","arg","_step2","_iterator2","resolvable","___CSS_LOADER_URL_IMPORT_0___","___CSS_LOADER_URL_IMPORT_1___","___CSS_LOADER_EXPORT___","___CSS_LOADER_URL_REPLACEMENT_0___","___CSS_LOADER_URL_REPLACEMENT_1___","ReflectOwnKeys","R","ReflectApply","Function","ownKeys","getOwnPropertySymbols","getOwnPropertyNames","concat","NumberIsNaN","isNaN","EventEmitter","init","once","emitter","errorListener","removeListener","resolver","eventTargetAgnosticAddListener","flags","addErrorHandlerIfEventEmitter","_events","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","listener","_getMaxListeners","that","_addListener","prepend","m","events","existing","warning","newListener","unshift","warned","w","count","onceWrapper","fired","wrapFn","_onceWrap","state","wrapped","_listeners","unwrap","evlistener","ret","unwrapListeners","arrayClone","listenerCount","copy","wrapListener","removeEventListener","RangeError","setMaxListeners","getMaxListeners","doError","er","listeners","addListener","prependListener","prependOnceListener","list","position","originalListener","pop","spliceOne","off","removeAllListeners","rawListeners","eventNames","http","https","validateParams","cb","codes","createErrorType","code","Base","NodeError","_Base","arg1","arg2","arg3","getMessage","oneOf","expected","thing","actual","determiner","search","msg","start","substr","this_len","endsWith","objectKeys","Duplex","Readable","Writable","v","allowHalfOpen","readable","onend","_writableState","ended","process","nextTick","onEndNT","end","highWaterMark","getBuffer","_readableState","destroyed","PassThrough","Transform","_transform","chunk","encoding","ReadableState","EElistenerCount","Stream","Buffer","OurUint8Array","g","Uint8Array","debugUtil","debuglog","StringDecoder","createReadableStreamAsyncIterator","BufferList","destroyImpl","getHighWaterMark","_require$codes","ERR_INVALID_ARG_TYPE","ERR_STREAM_PUSH_AFTER_EOF","ERR_METHOD_NOT_IMPLEMENTED","ERR_STREAM_UNSHIFT_AFTER_END_EVENT","errorOrDestroy","kProxyEvents","stream","isDuplex","objectMode","readableObjectMode","buffer","pipes","pipesCount","flowing","endEmitted","reading","sync","needReadable","emittedReadable","readableListening","resumeScheduled","paused","emitClose","autoDestroy","defaultEncoding","awaitDrain","readingMore","decoder","read","_read","destroy","_destroy","readableAddChunk","addToFront","skipChunkCheck","emitReadable","emitReadable_","onEofChunk","chunkInvalid","_uint8ArrayToBuffer","addChunk","write","maybeReadMore","_undestroy","undestroy","isPaused","setEncoding","enc","head","clear","MAX_HWM","howMuchToRead","computeNewHighWaterMark","flow","maybeReadMore_","updateReadableListening","resume","nReadingNextTick","resume_","fromList","first","consume","endReadable","endReadableNT","wState","finished","xs","x","l","nOrig","doRead","pipe","dest","pipeOpts","src","endFn","stdout","stderr","unpipe","onunpipe","unpipeInfo","hasUnpiped","onclose","onfinish","ondrain","onerror","ondata","cleanedUp","needDrain","pipeOnDrain","pause","event","fn","dests","ev","res","wrap","asyncIterator","_fromList","ERR_MULTIPLE_CALLBACK","ERR_TRANSFORM_ALREADY_TRANSFORMING","ERR_TRANSFORM_WITH_LENGTH_0","afterTransform","ts","_transformState","transforming","writecb","writechunk","rs","needTransform","writeencoding","transform","flush","_flush","prefinish","_write","err2","CorkedRequest","finish","corkReq","pendingcb","onCorkedFinish","corkedRequestsFree","WritableState","realHasInstance","internalUtil","deprecate","ERR_STREAM_CANNOT_PIPE","ERR_STREAM_DESTROYED","ERR_STREAM_NULL_VALUES","ERR_STREAM_WRITE_AFTER_END","ERR_UNKNOWN_ENCODING","nop","writableObjectMode","finalCalled","ending","noDecode","decodeStrings","writing","corked","bufferProcessing","onwrite","writelen","onwriteStateUpdate","finishMaybe","errorEmitted","onwriteError","needFinish","bufferedRequest","clearBuffer","afterWrite","lastBufferedRequest","prefinished","bufferedRequestCount","writev","_writev","_final","doWrite","onwriteDrain","holder","allBuffers","isBuf","callFinal","need","rState","current","out","_","hasInstance","object","writeAfterEnd","validChunk","newChunk","decodeChunk","last","writeOrBuffer","cork","uncork","setDefaultEncoding","endWritable","_Object$setPrototypeO","input","hint","prim","toPrimitive","_toPrimitive","_toPropertyKey","kLastResolve","kLastReject","kError","kEnded","kLastPromise","kHandlePromise","kStream","createIterResult","readAndResolve","iter","onReadable","AsyncIteratorPrototype","ReadableStreamAsyncIteratorPrototype","lastPromise","wrapForNext","_this2","_Object$create","enumerableOnly","symbols","sym","getOwnPropertyDescriptor","_objectSpread","getOwnPropertyDescriptors","defineProperties","inspect","custom","tail","alloc","offset","allocUnsafe","hasStrings","_getString","_getBuffer","c","nb","buf","depth","customInspect","emitErrorAndCloseNT","emitErrorNT","emitCloseNT","readableDestroyed","writableDestroyed","ERR_STREAM_PREMATURE_CLOSE","noop","eos","called","_len","_key","onlegacyfinish","writableEnded","readableEnded","onrequest","req","setHeader","isRequest","ERR_MISSING_ARGS","to","streams","popCallback","destroys","closed","destroyer","ERR_INVALID_OPT_VALUE","duplexKey","hwm","highWaterMarkFrom","isFinite","pipeline","copyProps","dst","SafeBuffer","encodingOrOffset","allocUnsafeSlow","SlowBuffer","EE","inherits","_isStdio","didOnEnd","cleanup","ClientRequest","statusCodes","defaultProtocol","hostname","port","IncomingMessage","Agent","defaultMaxSockets","globalAgent","STATUS_CODES","METHODS","xhr","getXHR","XMLHttpRequest","XDomainRequest","checkTypeSupport","responseType","isFunction","ReadableStream","writableStream","WritableStream","abortController","arraybuffer","msstream","mozchunkedarraybuffer","overrideMimeType","capability","rStates","readyStates","preferBinary","_opts","_body","_headers","auth","useFetch","mode","_mode","decideMode","_fetchTimer","_socketTimeout","_socketTimer","_onFinish","lowerName","unsafeHeaders","getHeader","removeHeader","_destroyed","timeout","setTimeout","headersObj","Blob","headersList","keyName","_fetchAbortController","requestTimeout","_fetchResponse","_resetTimers","_connect","_xhr","ontimeout","setRequestHeader","_response","onreadystatechange","readyState","DONE","_onXHRProgress","onprogress","send","statusValid","clearTimeout","flushHeaders","setNoDelay","setSocketKeepAlive","UNSENT","OPENED","HEADERS_RECEIVED","resetTimers","rawHeaders","trailers","rawTrailers","statusCode","statusMessage","statusText","_resumeFetch","pipeTo","reader","getReader","_pos","responseURL","getAllResponseHeaders","matches","_charset","mimeType","charsetMatch","responseText","newData","MSStreamReader","byteLength","onload","readAsArrayBuffer","isEncoding","nenc","retried","_normalizeEncoding","normalizeEncoding","text","utf16Text","utf16End","fillLast","utf8FillLast","base64Text","base64End","simpleWrite","simpleEnd","lastNeed","lastTotal","lastChar","utf8CheckByte","byte","r","utf8CheckExtraBytes","total","j","utf8CheckIncomplete","config","localStorage","val","trace","setUid","Ne","_entries","registerEntry","validateEntry","unregisterEntry","getEntryIndex","entries","getEntries","_nc_newfilemenu","C","P","Yt","log","d","pow","toFixed","parseFloat","toLocaleString","Z","DEFAULT","Qt","_action","validateAction","inline","renderInline","values","Dt","_nc_fileactions","N","SHARE","Y","oc","ir","_nc_dav_properties","_nc_dav_namespaces","prop","namespaces","V","L","sr","or","be","J","X","crtime","Q","NEW","FAILED","LOCKED","D","_data","_attributes","_knownDavService","updateMtime","deleteProperty","origin","pathname","move","rename","ye","super","ee","te","ur","setHeaders","dr","ve","getcontentlength","Te","_views","_currentView","views","setActive","active","ar","_nc_navigation","Ie","_column","Ae","render","summary","S","O","RegExp","isExist","u","isEmptyObject","getValue","isName","getAllMatches","startIndex","lastIndex","nameRegexp","M","Oe","allowBooleanAttributes","unpairedTags","U","G","z","validate","trim","Re","xe","H","line","tagClosed","tagName","tagStartPos","col","Ve","Ce","Pe","$e","Le","Fe","B","preserveOrder","attributeNamePrefix","attributesGroupName","textNodeName","ignoreAttributes","removeNSPrefix","parseTagValue","parseAttributeValue","trimValues","cdataPropName","numberParseOptions","hex","leadingZeros","eNotation","tagValueProcessor","attributeValueProcessor","stopNodes","alwaysCreateTextNode","commentPropName","processEntities","htmlEntities","ignoreDeclaration","ignorePiTags","transformTagName","transformAttributeName","updateTag","buildOptions","defaultOptions","ke","Xe","Ue","Ge","ze","He","Ke","We","je","Ye","Je","decimalPoint","T","tagname","child","addChild","tt","entityName","regx","entities","rt","skipLike","De","lastEntities","regex","st","replaceEntitiesValue","$","ot","charAt","ut","dt","resolveNameSpace","at","y","saveTextToParentTag","lastIndexOf","tagsNodeStack","tagExp","attrExpPresent","buildAttributesMap","closeIndex","docTypeEntities","parseTextData","rawTagName","isItStopNode","h","E","readStopNodeData","tagContent","lt","ft","ampEntity","ct","ht","pt","gt","ne","ie","Nt","bt","Et","prettify","yt","_t","currentNode","apos","quot","space","cent","pound","yen","euro","copyright","reg","inr","addExternalEntities","parseXml","vt","Tt","se","Pt","xt","oe","K","indentBy","suppressUnpairedNode","suppressEmptyNode","suppressBooleanAttributes","Ft","format","Vt","oneListGroup","isAttribute","attrPrefixLen","St","processTextOrObjNode","Lt","indentate","Rt","tagEndChar","newLine","j2x","buildTextValNode","attrStr","buildObjectNode","repeat","arrayNodeName","buildAttrPairStr","closeTag","W","XMLParser","externalEntities","addEntity","XMLValidator","XMLBuilder","cr","_view","Ut","emptyView","sticky","expanded","Xt","hr","pr","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","chunkIds","priority","notFulfilled","Infinity","fulfilled","getter","__esModule","definition","chunkId","promises","script","needAttach","scripts","getElementsByTagName","getAttribute","charset","setAttribute","onScriptComplete","prev","doneFns","parentNode","removeChild","nmd","paths","children","scriptUrl","importScripts","currentScript","baseURI","installedChunks","installedChunkData","errorType","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}
\ No newline at end of file |