1 |
- {"version":3,"file":"files-sidebar.js?v=4958cfdc8d947150966a","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/apps/files/src/components/SidebarTab.vue","webpack:///nextcloud/apps/files/src/components/SidebarTab.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/files/src/components/SidebarTab.vue?7aea","webpack://nextcloud/./apps/files/src/components/SidebarTab.vue?eddf","webpack:///nextcloud/apps/files/src/components/LegacyView.vue?vue&type=script&lang=js&","webpack:///nextcloud/apps/files/src/components/LegacyView.vue","webpack://nextcloud/./apps/files/src/components/LegacyView.vue?a2e2","webpack://nextcloud/./apps/files/src/components/LegacyView.vue?fb5f","webpack:///nextcloud/apps/systemtags/src/components/SystemTags.vue","webpack:///nextcloud/apps/systemtags/src/services/davClient.ts","webpack:///nextcloud/apps/systemtags/src/utils.ts","webpack:///nextcloud/apps/systemtags/src/logger.ts","webpack:///nextcloud/apps/systemtags/src/services/api.ts","webpack:///nextcloud/apps/systemtags/src/components/SystemTags.vue?vue&type=script&lang=ts&","webpack://nextcloud/./apps/systemtags/src/components/SystemTags.vue?cc32","webpack://nextcloud/./apps/systemtags/src/components/SystemTags.vue?d721","webpack:///nextcloud/apps/files/src/views/Sidebar.vue","webpack:///nextcloud/apps/files/src/views/Sidebar.vue?vue&type=script&lang=js&","webpack:///nextcloud/apps/files/src/services/FileInfo.js","webpack://nextcloud/./apps/files/src/views/Sidebar.vue?b5c5","webpack://nextcloud/./apps/files/src/views/Sidebar.vue?0b21","webpack://nextcloud/./apps/files/src/views/Sidebar.vue?589a","webpack:///nextcloud/apps/files/src/sidebar.js","webpack:///nextcloud/apps/files/src/services/Sidebar.js","webpack:///nextcloud/apps/files/src/models/Tab.js","webpack:///nextcloud/apps/files/src/views/Sidebar.vue?vue&type=style&index=0&id=71c562ec&prod&lang=scss&scoped=true&","webpack:///nextcloud/apps/systemtags/src/components/SystemTags.vue?vue&type=style&index=0&id=78e28406&prod&lang=scss&scoped=true&","webpack:///nextcloud/node_modules/moment/locale|sync|/^\\.\\/.*$","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","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/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};","\n<!--\n - @copyright Copyright (c) 2019 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<template>\n\t<NcAppSidebarTab :id=\"id\"\n\t\tref=\"tab\"\n\t\t:name=\"name\"\n\t\t:icon=\"icon\"\n\t\t@bottomReached=\"onScrollBottomReached\">\n\t\t<template #icon>\n\t\t\t<slot name=\"icon\" />\n\t\t</template>\n\t\t<!-- Fallback loading -->\n\t\t<NcEmptyContent v-if=\"loading\" icon=\"icon-loading\" />\n\n\t\t<!-- Using a dummy div as Vue mount replace the element directly\n\t\t\tIt does NOT append to the content -->\n\t\t<div ref=\"mount\" />\n\t</NcAppSidebarTab>\n</template>\n\n<script>\nimport NcAppSidebarTab from '@nextcloud/vue/dist/Components/NcAppSidebarTab.js'\nimport NcEmptyContent from '@nextcloud/vue/dist/Components/NcEmptyContent.js'\n\nexport default {\n\tname: 'SidebarTab',\n\n\tcomponents: {\n\t\tNcAppSidebarTab,\n\t\tNcEmptyContent,\n\t},\n\n\tprops: {\n\t\tfileInfo: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => {},\n\t\t\trequired: true,\n\t\t},\n\t\tid: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tname: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\ticon: {\n\t\t\ttype: String,\n\t\t\trequired: false,\n\t\t},\n\n\t\t/**\n\t\t * Lifecycle methods.\n\t\t * They are prefixed with `on` to avoid conflict with Vue\n\t\t * methods like this.destroy\n\t\t */\n\t\tonMount: {\n\t\t\ttype: Function,\n\t\t\trequired: true,\n\t\t},\n\t\tonUpdate: {\n\t\t\ttype: Function,\n\t\t\trequired: true,\n\t\t},\n\t\tonDestroy: {\n\t\t\ttype: Function,\n\t\t\trequired: true,\n\t\t},\n\t\tonScrollBottomReached: {\n\t\t\ttype: Function,\n\t\t\tdefault: () => {},\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tloading: true,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\t// TODO: implement a better way to force pass a prop from Sidebar\n\t\tactiveTab() {\n\t\t\treturn this.$parent.activeTab\n\t\t},\n\t},\n\n\twatch: {\n\t\tasync fileInfo(newFile, oldFile) {\n\t\t\t// Update fileInfo on change\n\t\t\tif (newFile.id !== oldFile.id) {\n\t\t\t\tthis.loading = true\n\t\t\t\tawait this.onUpdate(this.fileInfo)\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\t},\n\n\tasync mounted() {\n\t\tthis.loading = true\n\t\t// Mount the tab: mounting point, fileInfo, vue context\n\t\tawait this.onMount(this.$refs.mount, this.fileInfo, this.$refs.tab)\n\t\tthis.loading = false\n\t},\n\n\tasync beforeDestroy() {\n\t\t// unmount the tab\n\t\tawait this.onDestroy()\n\t},\n}\n</script>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarTab.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!./SidebarTab.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SidebarTab.vue?vue&type=template&id=0da8ee1b&\"\nimport script from \"./SidebarTab.vue?vue&type=script&lang=js&\"\nexport * from \"./SidebarTab.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('NcAppSidebarTab',{ref:\"tab\",attrs:{\"id\":_vm.id,\"name\":_vm.name,\"icon\":_vm.icon},on:{\"bottomReached\":_vm.onScrollBottomReached},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_vm._t(\"icon\")]},proxy:true}],null,true)},[_vm._v(\" \"),(_vm.loading)?_c('NcEmptyContent',{attrs:{\"icon\":\"icon-loading\"}}):_vm._e(),_vm._v(\" \"),_c('div',{ref:\"mount\"})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LegacyView.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!./LegacyView.vue?vue&type=script&lang=js&\"","<!--\n - @copyright Copyright (c) 2019 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<div />\n</template>\n<script>\nexport default {\n\tname: 'LegacyView',\n\tprops: {\n\t\tcomponent: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t\tfileInfo: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => {},\n\t\t\trequired: true,\n\t\t},\n\t},\n\twatch: {\n\t\tfileInfo(fileInfo) {\n\t\t\t// update the backbone model FileInfo\n\t\t\tthis.setFileInfo(fileInfo)\n\t\t},\n\t},\n\tmounted() {\n\t\t// append the backbone element and set the FileInfo\n\t\tthis.component.$el.replaceAll(this.$el)\n\t\tthis.setFileInfo(this.fileInfo)\n\t},\n\tmethods: {\n\t\tsetFileInfo(fileInfo) {\n\t\t\tthis.component.setFileInfo(new OCA.Files.FileInfoModel(fileInfo))\n\t\t},\n\t},\n}\n</script>\n<style>\n</style>\n","import { render, staticRenderFns } from \"./LegacyView.vue?vue&type=template&id=2245cbe7&\"\nimport script from \"./LegacyView.vue?vue&type=script&lang=js&\"\nexport * from \"./LegacyView.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div')\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"system-tags\"},[_c('label',{attrs:{\"for\":\"system-tags-input\"}},[_vm._v(_vm._s(_vm.t('systemtags', 'Search or create collaborative tags')))]),_vm._v(\" \"),_c('NcSelectTags',{staticClass:\"system-tags__select\",attrs:{\"input-id\":\"system-tags-input\",\"placeholder\":_vm.t('systemtags', 'Collaborative tags …'),\"options\":_vm.sortedTags,\"value\":_vm.selectedTags,\"create-option\":_vm.createOption,\"taggable\":true,\"passthru\":true,\"fetch-tags\":false,\"loading\":_vm.loading},on:{\"input\":_vm.handleInput,\"option:selected\":_vm.handleSelect,\"option:created\":_vm.handleCreate,\"option:deselected\":_vm.handleDeselect},scopedSlots:_vm._u([{key:\"no-options\",fn:function(){return [_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('systemtags', 'No tags to select, type to create a new tag'))+\"\\n\\t\\t\")]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * @copyright 2023 Christopher Ng <chrng8@gmail.com>\n *\n * @author Christopher Ng <chrng8@gmail.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 { createClient } from 'webdav';\nimport { generateRemoteUrl } from '@nextcloud/router';\nimport { getRequestToken } from '@nextcloud/auth';\nconst rootUrl = generateRemoteUrl('dav');\nexport const davClient = createClient(rootUrl, {\n headers: {\n requesttoken: getRequestToken() ?? '',\n },\n});\n","/**\n * @copyright 2023 Christopher Ng <chrng8@gmail.com>\n *\n * @author Christopher Ng <chrng8@gmail.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 camelCase from 'camelcase';\nexport const parseTags = (tags) => {\n return tags.map(({ props }) => Object.fromEntries(Object.entries(props)\n .map(([key, value]) => [camelCase(key), value])));\n};\n/**\n * Parse id from `Content-Location` header\n */\nexport const parseIdFromLocation = (url) => {\n const queryPos = url.indexOf('?');\n if (queryPos > 0) {\n url = url.substring(0, queryPos);\n }\n const parts = url.split('/');\n let result;\n do {\n result = parts[parts.length - 1];\n parts.pop();\n // note: first result can be empty when there is a trailing slash,\n // so we take the part before that\n } while (!result && parts.length > 0);\n return Number(result);\n};\nexport const formatTag = (initialTag) => {\n const tag = { ...initialTag };\n if (tag.name && !tag.displayName) {\n return tag;\n }\n tag.name = tag.displayName;\n delete tag.displayName;\n return tag;\n};\n","/**\n * @copyright 2023 Christopher Ng <chrng8@gmail.com>\n *\n * @author Christopher Ng <chrng8@gmail.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';\nexport const logger = getLoggerBuilder()\n .setApp('systemtags')\n .detectUser()\n .build();\n","/**\n * @copyright 2023 Christopher Ng <chrng8@gmail.com>\n *\n * @author Christopher Ng <chrng8@gmail.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 axios from '@nextcloud/axios';\nimport { generateUrl } from '@nextcloud/router';\nimport { translate as t } from '@nextcloud/l10n';\nimport { davClient } from './davClient.js';\nimport { formatTag, parseIdFromLocation, parseTags } from '../utils.js';\nimport { logger } from '../logger.js';\nconst fetchTagsBody = `<?xml version=\"1.0\"?>\n<d:propfind xmlns:d=\"DAV:\" xmlns:oc=\"http://owncloud.org/ns\">\n\t<d:prop>\n\t\t<oc:id />\n\t\t<oc:display-name />\n\t\t<oc:user-visible />\n\t\t<oc:user-assignable />\n\t\t<oc:can-assign />\n\t</d:prop>\n</d:propfind>`;\nexport const fetchTags = async () => {\n const path = '/systemtags';\n try {\n const { data: tags } = await davClient.getDirectoryContents(path, {\n data: fetchTagsBody,\n details: true,\n glob: '/systemtags/*', // Filter out first empty tag\n });\n return parseTags(tags);\n }\n catch (error) {\n logger.error(t('systemtags', 'Failed to load tags'), { error });\n throw new Error(t('systemtags', 'Failed to load tags'));\n }\n};\nexport const fetchLastUsedTagIds = async () => {\n const url = generateUrl('/apps/systemtags/lastused');\n try {\n const { data: lastUsedTagIds } = await axios.get(url);\n return lastUsedTagIds.map(Number);\n }\n catch (error) {\n logger.error(t('systemtags', 'Failed to load last used tags'), { error });\n throw new Error(t('systemtags', 'Failed to load last used tags'));\n }\n};\nexport const fetchSelectedTags = async (fileId) => {\n const path = '/systemtags-relations/files/' + fileId;\n try {\n const { data: tags } = await davClient.getDirectoryContents(path, {\n data: fetchTagsBody,\n details: true,\n glob: '/systemtags-relations/files/*/*', // Filter out first empty tag\n });\n return parseTags(tags);\n }\n catch (error) {\n logger.error(t('systemtags', 'Failed to load selected tags'), { error });\n throw new Error(t('systemtags', 'Failed to load selected tags'));\n }\n};\nexport const selectTag = async (fileId, tag) => {\n const path = '/systemtags-relations/files/' + fileId + '/' + tag.id;\n const tagToPut = formatTag(tag);\n try {\n await davClient.customRequest(path, {\n method: 'PUT',\n data: tagToPut,\n });\n }\n catch (error) {\n logger.error(t('systemtags', 'Failed to select tag'), { error });\n throw new Error(t('systemtags', 'Failed to select tag'));\n }\n};\n/**\n * @return created tag id\n */\nexport const createTag = async (fileId, tag) => {\n const path = '/systemtags';\n const tagToPost = formatTag(tag);\n try {\n const { headers } = await davClient.customRequest(path, {\n method: 'POST',\n data: tagToPost,\n });\n const contentLocation = headers.get('content-location');\n if (contentLocation) {\n const tagToPut = {\n ...tagToPost,\n id: parseIdFromLocation(contentLocation),\n };\n await selectTag(fileId, tagToPut);\n return tagToPut.id;\n }\n logger.error(t('systemtags', 'Missing \"Content-Location\" header'));\n throw new Error(t('systemtags', 'Missing \"Content-Location\" header'));\n }\n catch (error) {\n logger.error(t('systemtags', 'Failed to create tag'), { error });\n throw new Error(t('systemtags', 'Failed to create tag'));\n }\n};\nexport const deleteTag = async (fileId, tag) => {\n const path = '/systemtags-relations/files/' + fileId + '/' + tag.id;\n try {\n await davClient.deleteFile(path);\n }\n catch (error) {\n logger.error(t('systemtags', 'Failed to delete tag'), { error });\n throw new Error(t('systemtags', 'Failed to delete tag'));\n }\n};\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SystemTags.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!./SystemTags.vue?vue&type=script&lang=ts&\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SystemTags.vue?vue&type=style&index=0&id=78e28406&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!./SystemTags.vue?vue&type=style&index=0&id=78e28406&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SystemTags.vue?vue&type=template&id=78e28406&scoped=true&\"\nimport script from \"./SystemTags.vue?vue&type=script&lang=ts&\"\nexport * from \"./SystemTags.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SystemTags.vue?vue&type=style&index=0&id=78e28406&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 \"78e28406\",\n null\n \n)\n\nexport default component.exports","<!--\n - @copyright Copyright (c) 2019 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<NcAppSidebar v-if=\"file\"\n\t\tref=\"sidebar\"\n\t\tv-bind=\"appSidebar\"\n\t\t:force-menu=\"true\"\n\t\ttabindex=\"0\"\n\t\t@close=\"close\"\n\t\t@update:active=\"setActiveTab\"\n\t\t@update:starred=\"toggleStarred\"\n\t\t@[defaultActionListener].stop.prevent=\"onDefaultAction\"\n\t\t@opening=\"handleOpening\"\n\t\t@opened=\"handleOpened\"\n\t\t@closing=\"handleClosing\"\n\t\t@closed=\"handleClosed\">\n\t\t<!-- TODO: create a standard to allow multiple elements here? -->\n\t\t<template v-if=\"fileInfo\" #description>\n\t\t\t<div class=\"sidebar__description\">\n\t\t\t\t<SystemTags v-if=\"isSystemTagsEnabled\"\n\t\t\t\t\tv-show=\"showTags\"\n\t\t\t\t\t:file-id=\"fileInfo.id\"\n\t\t\t\t\t@has-tags=\"value => showTags = value\" />\n\t\t\t\t<LegacyView v-for=\"view in views\"\n\t\t\t\t\t:key=\"view.cid\"\n\t\t\t\t\t:component=\"view\"\n\t\t\t\t\t:file-info=\"fileInfo\" />\n\t\t\t</div>\n\t\t</template>\n\n\t\t<!-- Actions menu -->\n\t\t<template v-if=\"fileInfo\" #secondary-actions>\n\t\t\t<!-- TODO: create proper api for apps to register actions\n\t\t\tAnd inject themselves here. -->\n\t\t\t<NcActionButton v-if=\"isSystemTagsEnabled\"\n\t\t\t\t:close-after-click=\"true\"\n\t\t\t\ticon=\"icon-tag\"\n\t\t\t\t@click=\"toggleTags\">\n\t\t\t\t{{ t('files', 'Tags') }}\n\t\t\t</NcActionButton>\n\t\t</template>\n\n\t\t<!-- Error display -->\n\t\t<NcEmptyContent v-if=\"error\" icon=\"icon-error\">\n\t\t\t{{ error }}\n\t\t</NcEmptyContent>\n\n\t\t<!-- If fileInfo fetch is complete, render tabs -->\n\t\t<template v-for=\"tab in tabs\" v-else-if=\"fileInfo\">\n\t\t\t<!-- Hide them if we're loading another file but keep them mounted -->\n\t\t\t<SidebarTab v-if=\"tab.enabled(fileInfo)\"\n\t\t\t\tv-show=\"!loading\"\n\t\t\t\t:id=\"tab.id\"\n\t\t\t\t:key=\"tab.id\"\n\t\t\t\t:name=\"tab.name\"\n\t\t\t\t:icon=\"tab.icon\"\n\t\t\t\t:on-mount=\"tab.mount\"\n\t\t\t\t:on-update=\"tab.update\"\n\t\t\t\t:on-destroy=\"tab.destroy\"\n\t\t\t\t:on-scroll-bottom-reached=\"tab.scrollBottomReached\"\n\t\t\t\t:file-info=\"fileInfo\">\n\t\t\t\t<template v-if=\"tab.iconSvg !== undefined\" #icon>\n\t\t\t\t\t<!-- eslint-disable-next-line vue/no-v-html -->\n\t\t\t\t\t<span class=\"svg-icon\" v-html=\"tab.iconSvg\" />\n\t\t\t\t</template>\n\t\t\t</SidebarTab>\n\t\t</template>\n\t</NcAppSidebar>\n</template>\n<script>\nimport { encodePath } from '@nextcloud/paths'\nimport $ from 'jquery'\nimport axios from '@nextcloud/axios'\nimport { emit } from '@nextcloud/event-bus'\nimport moment from '@nextcloud/moment'\nimport { Type as ShareTypes } from '@nextcloud/sharing'\n\nimport NcAppSidebar from '@nextcloud/vue/dist/Components/NcAppSidebar.js'\nimport NcActionButton from '@nextcloud/vue/dist/Components/NcActionButton.js'\nimport NcEmptyContent from '@nextcloud/vue/dist/Components/NcEmptyContent.js'\n\nimport FileInfo from '../services/FileInfo.js'\nimport SidebarTab from '../components/SidebarTab.vue'\nimport LegacyView from '../components/LegacyView.vue'\nimport SystemTags from '../../../systemtags/src/components/SystemTags.vue'\n\nexport default {\n\tname: 'Sidebar',\n\n\tcomponents: {\n\t\tLegacyView,\n\t\tNcActionButton,\n\t\tNcAppSidebar,\n\t\tNcEmptyContent,\n\t\tSidebarTab,\n\t\tSystemTags,\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\t// reactive state\n\t\t\tSidebar: OCA.Files.Sidebar.state,\n\t\t\tshowTags: false,\n\t\t\terror: null,\n\t\t\tloading: true,\n\t\t\tfileInfo: null,\n\t\t\tstarLoading: false,\n\t\t\tisFullScreen: false,\n\t\t\thasLowHeight: false,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\t/**\n\t\t * Current filename\n\t\t * This is bound to the Sidebar service and\n\t\t * is used to load a new file\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tfile() {\n\t\t\treturn this.Sidebar.file\n\t\t},\n\n\t\t/**\n\t\t * List of all the registered tabs\n\t\t *\n\t\t * @return {Array}\n\t\t */\n\t\ttabs() {\n\t\t\treturn this.Sidebar.tabs\n\t\t},\n\n\t\t/**\n\t\t * List of all the registered views\n\t\t *\n\t\t * @return {Array}\n\t\t */\n\t\tviews() {\n\t\t\treturn this.Sidebar.views\n\t\t},\n\n\t\t/**\n\t\t * Current user dav root path\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tdavPath() {\n\t\t\tconst user = OC.getCurrentUser().uid\n\t\t\treturn OC.linkToRemote(`dav/files/${user}${encodePath(this.file)}`)\n\t\t},\n\n\t\t/**\n\t\t * Current active tab handler\n\t\t *\n\t\t * @param {string} id the tab id to set as active\n\t\t * @return {string} the current active tab\n\t\t */\n\t\tactiveTab() {\n\t\t\treturn this.Sidebar.activeTab\n\t\t},\n\n\t\t/**\n\t\t * Sidebar subtitle\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tsubtitle() {\n\t\t\treturn `${this.size}, ${this.time}`\n\t\t},\n\n\t\t/**\n\t\t * File last modified formatted string\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\ttime() {\n\t\t\treturn OC.Util.relativeModifiedDate(this.fileInfo.mtime)\n\t\t},\n\n\t\t/**\n\t\t * File last modified full string\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tfullTime() {\n\t\t\treturn moment(this.fileInfo.mtime).format('LLL')\n\t\t},\n\n\t\t/**\n\t\t * File size formatted string\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tsize() {\n\t\t\treturn OC.Util.humanFileSize(this.fileInfo.size)\n\t\t},\n\n\t\t/**\n\t\t * File background/figure to illustrate the sidebar header\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tbackground() {\n\t\t\treturn this.getPreviewIfAny(this.fileInfo)\n\t\t},\n\n\t\t/**\n\t\t * App sidebar v-binding object\n\t\t *\n\t\t * @return {object}\n\t\t */\n\t\tappSidebar() {\n\t\t\tif (this.fileInfo) {\n\t\t\t\treturn {\n\t\t\t\t\t'data-mimetype': this.fileInfo.mimetype,\n\t\t\t\t\t'star-loading': this.starLoading,\n\t\t\t\t\tactive: this.activeTab,\n\t\t\t\t\tbackground: this.background,\n\t\t\t\t\tclass: {\n\t\t\t\t\t\t'app-sidebar--has-preview': this.fileInfo.hasPreview && !this.isFullScreen,\n\t\t\t\t\t\t'app-sidebar--full': this.isFullScreen,\n\t\t\t\t\t},\n\t\t\t\t\tcompact: this.hasLowHeight || !this.fileInfo.hasPreview || this.isFullScreen,\n\t\t\t\t\tloading: this.loading,\n\t\t\t\t\tstarred: this.fileInfo.isFavourited,\n\t\t\t\t\tsubtitle: this.subtitle,\n\t\t\t\t\tsubtitleTooltip: this.fullTime,\n\t\t\t\t\ttitle: this.fileInfo.name,\n\t\t\t\t\ttitleTooltip: this.fileInfo.name,\n\t\t\t\t}\n\t\t\t} else if (this.error) {\n\t\t\t\treturn {\n\t\t\t\t\tkey: 'error', // force key to re-render\n\t\t\t\t\tsubtitle: '',\n\t\t\t\t\ttitle: '',\n\t\t\t\t}\n\t\t\t}\n\t\t\t// no fileInfo yet, showing empty data\n\t\t\treturn {\n\t\t\t\tloading: this.loading,\n\t\t\t\tsubtitle: '',\n\t\t\t\ttitle: '',\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Default action object for the current file\n\t\t *\n\t\t * @return {object}\n\t\t */\n\t\tdefaultAction() {\n\t\t\treturn this.fileInfo\n\t\t\t\t&& OCA.Files && OCA.Files.App && OCA.Files.App.fileList\n\t\t\t\t&& OCA.Files.App.fileList.fileActions\n\t\t\t\t&& OCA.Files.App.fileList.fileActions.getDefaultFileAction\n\t\t\t\t&& OCA.Files.App.fileList\n\t\t\t\t\t.fileActions.getDefaultFileAction(this.fileInfo.mimetype, this.fileInfo.type, OC.PERMISSION_READ)\n\n\t\t},\n\n\t\t/**\n\t\t * Dynamic header click listener to ensure\n\t\t * nothing is listening for a click if there\n\t\t * is no default action\n\t\t *\n\t\t * @return {string|null}\n\t\t */\n\t\tdefaultActionListener() {\n\t\t\treturn this.defaultAction ? 'figure-click' : null\n\t\t},\n\n\t\tisSystemTagsEnabled() {\n\t\t\treturn OCA && 'SystemTags' in OCA\n\t\t},\n\t},\n\tcreated() {\n\t\twindow.addEventListener('resize', this.handleWindowResize)\n\t\tthis.handleWindowResize()\n\t},\n\tbeforeDestroy() {\n\t\twindow.removeEventListener('resize', this.handleWindowResize)\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Can this tab be displayed ?\n\t\t *\n\t\t * @param {object} tab a registered tab\n\t\t * @return {boolean}\n\t\t */\n\t\tcanDisplay(tab) {\n\t\t\treturn tab.enabled(this.fileInfo)\n\t\t},\n\t\tresetData() {\n\t\t\tthis.error = null\n\t\t\tthis.fileInfo = null\n\t\t\tthis.$nextTick(() => {\n\t\t\t\tif (this.$refs.tabs) {\n\t\t\t\t\tthis.$refs.tabs.updateTabs()\n\t\t\t\t}\n\t\t\t})\n\t\t},\n\n\t\tgetPreviewIfAny(fileInfo) {\n\t\t\tif (fileInfo.hasPreview && !this.isFullScreen) {\n\t\t\t\treturn OC.generateUrl(`/core/preview?fileId=${fileInfo.id}&x=${screen.width}&y=${screen.height}&a=true`)\n\t\t\t}\n\t\t\treturn this.getIconUrl(fileInfo)\n\t\t},\n\n\t\t/**\n\t\t * Copied from https://github.com/nextcloud/server/blob/16e0887ec63591113ee3f476e0c5129e20180cde/apps/files/js/filelist.js#L1377\n\t\t * TODO: We also need this as a standalone library\n\t\t *\n\t\t * @param {object} fileInfo the fileinfo\n\t\t * @return {string} Url to the icon for mimeType\n\t\t */\n\t\tgetIconUrl(fileInfo) {\n\t\t\tconst mimeType = fileInfo.mimetype || 'application/octet-stream'\n\t\t\tif (mimeType === 'httpd/unix-directory') {\n\t\t\t\t// use default folder icon\n\t\t\t\tif (fileInfo.mountType === 'shared' || fileInfo.mountType === 'shared-root') {\n\t\t\t\t\treturn OC.MimeType.getIconUrl('dir-shared')\n\t\t\t\t} else if (fileInfo.mountType === 'external-root') {\n\t\t\t\t\treturn OC.MimeType.getIconUrl('dir-external')\n\t\t\t\t} else if (fileInfo.mountType !== undefined && fileInfo.mountType !== '') {\n\t\t\t\t\treturn OC.MimeType.getIconUrl('dir-' + fileInfo.mountType)\n\t\t\t\t} else if (fileInfo.shareTypes && (\n\t\t\t\t\tfileInfo.shareTypes.indexOf(ShareTypes.SHARE_TYPE_LINK) > -1\n\t\t\t\t\t|| fileInfo.shareTypes.indexOf(ShareTypes.SHARE_TYPE_EMAIL) > -1)\n\t\t\t\t) {\n\t\t\t\t\treturn OC.MimeType.getIconUrl('dir-public')\n\t\t\t\t} else if (fileInfo.shareTypes && fileInfo.shareTypes.length > 0) {\n\t\t\t\t\treturn OC.MimeType.getIconUrl('dir-shared')\n\t\t\t\t}\n\t\t\t\treturn OC.MimeType.getIconUrl('dir')\n\t\t\t}\n\t\t\treturn OC.MimeType.getIconUrl(mimeType)\n\t\t},\n\n\t\t/**\n\t\t * Set current active tab\n\t\t *\n\t\t * @param {string} id tab unique id\n\t\t */\n\t\tsetActiveTab(id) {\n\t\t\tOCA.Files.Sidebar.setActiveTab(id)\n\t\t},\n\n\t\t/**\n\t\t * Toggle favourite state\n\t\t * TODO: better implementation\n\t\t *\n\t\t * @param {boolean} state favourited or not\n\t\t */\n\t\tasync toggleStarred(state) {\n\t\t\ttry {\n\t\t\t\tthis.starLoading = true\n\t\t\t\tawait axios({\n\t\t\t\t\tmethod: 'PROPPATCH',\n\t\t\t\t\turl: this.davPath,\n\t\t\t\t\tdata: `<?xml version=\"1.0\"?>\n\t\t\t\t\t\t<d:propertyupdate xmlns:d=\"DAV:\" xmlns:oc=\"http://owncloud.org/ns\">\n\t\t\t\t\t\t${state ? '<d:set>' : '<d:remove>'}\n\t\t\t\t\t\t\t<d:prop>\n\t\t\t\t\t\t\t\t<oc:favorite>1</oc:favorite>\n\t\t\t\t\t\t\t</d:prop>\n\t\t\t\t\t\t${state ? '</d:set>' : '</d:remove>'}\n\t\t\t\t\t\t</d:propertyupdate>`,\n\t\t\t\t})\n\n\t\t\t\t// TODO: Obliterate as soon as possible and use events with new files app\n\t\t\t\t// Terrible fallback for legacy files: toggle filelist as well\n\t\t\t\tif (OCA.Files && OCA.Files.App && OCA.Files.App.fileList && OCA.Files.App.fileList.fileActions) {\n\t\t\t\t\tOCA.Files.App.fileList.fileActions.triggerAction('Favorite', OCA.Files.App.fileList.getModelForFile(this.fileInfo.name), OCA.Files.App.fileList)\n\t\t\t\t}\n\n\t\t\t} catch (error) {\n\t\t\t\tOC.Notification.showTemporary(t('files', 'Unable to change the favourite state of the file'))\n\t\t\t\tconsole.error('Unable to change favourite state', error)\n\t\t\t}\n\t\t\tthis.starLoading = false\n\t\t},\n\n\t\tonDefaultAction() {\n\t\t\tif (this.defaultAction) {\n\t\t\t\t// generate fake context\n\t\t\t\tthis.defaultAction.action(this.fileInfo.name, {\n\t\t\t\t\tfileInfo: this.fileInfo,\n\t\t\t\t\tdir: this.fileInfo.dir,\n\t\t\t\t\tfileList: OCA.Files.App.fileList,\n\t\t\t\t\t$file: $('body'),\n\t\t\t\t})\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Toggle the tags selector\n\t\t */\n\t\ttoggleTags() {\n\t\t\tthis.showTags = !this.showTags\n\t\t},\n\n\t\t/**\n\t\t * Open the sidebar for the given file\n\t\t *\n\t\t * @param {string} path the file path to load\n\t\t * @return {Promise}\n\t\t * @throws {Error} loading failure\n\t\t */\n\t\tasync open(path) {\n\t\t\t// update current opened file\n\t\t\tthis.Sidebar.file = path\n\n\t\t\tif (path && path.trim() !== '') {\n\t\t\t\t// reset data, keep old fileInfo to not reload all tabs and just hide them\n\t\t\t\tthis.error = null\n\t\t\t\tthis.loading = true\n\n\t\t\t\ttry {\n\t\t\t\t\tthis.fileInfo = await FileInfo(this.davPath)\n\t\t\t\t\t// adding this as fallback because other apps expect it\n\t\t\t\t\tthis.fileInfo.dir = this.file.split('/').slice(0, -1).join('/')\n\n\t\t\t\t\t// DEPRECATED legacy views\n\t\t\t\t\t// TODO: remove\n\t\t\t\t\tthis.views.forEach(view => {\n\t\t\t\t\t\tview.setFileInfo(this.fileInfo)\n\t\t\t\t\t})\n\n\t\t\t\t\tthis.$nextTick(() => {\n\t\t\t\t\t\tif (this.$refs.tabs) {\n\t\t\t\t\t\t\tthis.$refs.tabs.updateTabs()\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t} catch (error) {\n\t\t\t\t\tthis.error = t('files', 'Error while loading the file data')\n\t\t\t\t\tconsole.error('Error while loading the file data', error)\n\n\t\t\t\t\tthrow new Error(error)\n\t\t\t\t} finally {\n\t\t\t\t\tthis.loading = false\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Close the sidebar\n\t\t */\n\t\tclose() {\n\t\t\tthis.Sidebar.file = ''\n\t\t\tthis.resetData()\n\t\t},\n\n\t\t/**\n\t\t * Allow to set the Sidebar as fullscreen from OCA.Files.Sidebar\n\t\t *\n\t\t * @param {boolean} isFullScreen - Whether or not to render the Sidebar in fullscreen.\n\t\t */\n\t\tsetFullScreenMode(isFullScreen) {\n\t\t\tthis.isFullScreen = isFullScreen\n\t\t\tif (isFullScreen) {\n\t\t\t\tdocument.querySelector('#content')?.classList.add('with-sidebar--full')\n\t\t\t\t\t|| document.querySelector('#content-vue')?.classList.add('with-sidebar--full')\n\t\t\t} else {\n\t\t\t\tdocument.querySelector('#content')?.classList.remove('with-sidebar--full')\n\t\t\t\t\t|| document.querySelector('#content-vue')?.classList.remove('with-sidebar--full')\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Emit SideBar events.\n\t\t */\n\t\thandleOpening() {\n\t\t\temit('files:sidebar:opening')\n\t\t},\n\t\thandleOpened() {\n\t\t\temit('files:sidebar:opened')\n\t\t},\n\t\thandleClosing() {\n\t\t\temit('files:sidebar:closing')\n\t\t},\n\t\thandleClosed() {\n\t\t\temit('files:sidebar:closed')\n\t\t},\n\t\thandleWindowResize() {\n\t\t\tthis.hasLowHeight = document.documentElement.clientHeight < 1024\n\t\t},\n\t},\n}\n</script>\n<style lang=\"scss\" scoped>\n.app-sidebar {\n\t&--has-preview:deep {\n\t\t.app-sidebar-header__figure {\n\t\t\tbackground-size: cover;\n\t\t}\n\n\t\t&[data-mimetype=\"text/plain\"],\n\t\t&[data-mimetype=\"text/markdown\"] {\n\t\t\t.app-sidebar-header__figure {\n\t\t\t\tbackground-size: contain;\n\t\t\t}\n\t\t}\n\t}\n\n\t&--full {\n\t\tposition: fixed !important;\n\t\tz-index: 2025 !important;\n\t\ttop: 0 !important;\n\t\theight: 100% !important;\n\t}\n\n\t:deep {\n\t\t.app-sidebar-header__description {\n\t\t\tmargin: 0 16px 4px 16px !important;\n\t\t}\n\t}\n\n\t.svg-icon {\n\t\t::v-deep svg {\n\t\t\twidth: 20px;\n\t\t\theight: 20px;\n\t\t\tfill: currentColor;\n\t\t}\n\t}\n}\n\n.sidebar__description {\n\tdisplay: flex;\n\tflex-direction: column;\n\twidth: 100%;\n\tgap: 8px 0;\n}\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Sidebar.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!./Sidebar.vue?vue&type=script&lang=js&\"","/**\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 axios from '@nextcloud/axios'\n\n/**\n * @param {any} url -\n */\nexport default async function(url) {\n\tconst response = await axios({\n\t\tmethod: 'PROPFIND',\n\t\turl,\n\t\tdata: `<?xml version=\"1.0\"?>\n\t\t\t<d:propfind xmlns:d=\"DAV:\"\n\t\t\t\txmlns:oc=\"http://owncloud.org/ns\"\n\t\t\t\txmlns:nc=\"http://nextcloud.org/ns\"\n\t\t\t\txmlns:ocs=\"http://open-collaboration-services.org/ns\">\n\t\t\t<d:prop>\n\t\t\t\t<d:getlastmodified />\n\t\t\t\t<d:getetag />\n\t\t\t\t<d:getcontenttype />\n\t\t\t\t<d:resourcetype />\n\t\t\t\t<oc:fileid />\n\t\t\t\t<oc:permissions />\n\t\t\t\t<oc:size />\n\t\t\t\t<d:getcontentlength />\n\t\t\t\t<nc:has-preview />\n\t\t\t\t<nc:mount-type />\n\t\t\t\t<nc:is-encrypted />\n\t\t\t\t<ocs:share-permissions />\n\t\t\t\t<nc:share-attributes />\n\t\t\t\t<oc:tags />\n\t\t\t\t<oc:favorite />\n\t\t\t\t<oc:comments-unread />\n\t\t\t\t<oc:owner-id />\n\t\t\t\t<oc:owner-display-name />\n\t\t\t\t<oc:share-types />\n\t\t\t</d:prop>\n\t\t\t</d:propfind>`,\n\t})\n\n\t// TODO: create new parser or use cdav-lib when available\n\tconst file = OCA.Files.App.fileList.filesClient._client.parseMultiStatus(response.data)\n\t// TODO: create new parser or use cdav-lib when available\n\tconst fileInfo = OCA.Files.App.fileList.filesClient._parseFileInfo(file[0])\n\n\t// TODO remove when no more legacy backbone is used\n\tfileInfo.get = (key) => fileInfo[key]\n\tfileInfo.isDirectory = () => fileInfo.mimetype === 'httpd/unix-directory'\n\n\treturn fileInfo\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!./Sidebar.vue?vue&type=style&index=0&id=71c562ec&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!./Sidebar.vue?vue&type=style&index=0&id=71c562ec&prod&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Sidebar.vue?vue&type=template&id=71c562ec&scoped=true&\"\nimport script from \"./Sidebar.vue?vue&type=script&lang=js&\"\nexport * from \"./Sidebar.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Sidebar.vue?vue&type=style&index=0&id=71c562ec&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 \"71c562ec\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.file)?_c('NcAppSidebar',_vm._b({ref:\"sidebar\",attrs:{\"force-menu\":true,\"tabindex\":\"0\"},on:_vm._d({\"close\":_vm.close,\"update:active\":_vm.setActiveTab,\"update:starred\":_vm.toggleStarred,\"opening\":_vm.handleOpening,\"opened\":_vm.handleOpened,\"closing\":_vm.handleClosing,\"closed\":_vm.handleClosed},[_vm.defaultActionListener,function($event){$event.stopPropagation();$event.preventDefault();return _vm.onDefaultAction.apply(null, arguments)}]),scopedSlots:_vm._u([(_vm.fileInfo)?{key:\"description\",fn:function(){return [_c('div',{staticClass:\"sidebar__description\"},[(_vm.isSystemTagsEnabled)?_c('SystemTags',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showTags),expression:\"showTags\"}],attrs:{\"file-id\":_vm.fileInfo.id},on:{\"has-tags\":value => _vm.showTags = value}}):_vm._e(),_vm._v(\" \"),_vm._l((_vm.views),function(view){return _c('LegacyView',{key:view.cid,attrs:{\"component\":view,\"file-info\":_vm.fileInfo}})})],2)]},proxy:true}:null,(_vm.fileInfo)?{key:\"secondary-actions\",fn:function(){return [(_vm.isSystemTagsEnabled)?_c('NcActionButton',{attrs:{\"close-after-click\":true,\"icon\":\"icon-tag\"},on:{\"click\":_vm.toggleTags}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('files', 'Tags'))+\"\\n\\t\\t\")]):_vm._e()]},proxy:true}:null],null,true)},'NcAppSidebar',_vm.appSidebar,false),[_vm._v(\" \"),_vm._v(\" \"),(_vm.error)?_c('NcEmptyContent',{attrs:{\"icon\":\"icon-error\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.error)+\"\\n\\t\")]):(_vm.fileInfo)?_vm._l((_vm.tabs),function(tab){return [(tab.enabled(_vm.fileInfo))?_c('SidebarTab',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.loading),expression:\"!loading\"}],key:tab.id,attrs:{\"id\":tab.id,\"name\":tab.name,\"icon\":tab.icon,\"on-mount\":tab.mount,\"on-update\":tab.update,\"on-destroy\":tab.destroy,\"on-scroll-bottom-reached\":tab.scrollBottomReached,\"file-info\":_vm.fileInfo},scopedSlots:_vm._u([(tab.iconSvg !== undefined)?{key:\"icon\",fn:function(){return [_c('span',{staticClass:\"svg-icon\",domProps:{\"innerHTML\":_vm._s(tab.iconSvg)}})]},proxy:true}:null],null,true)}):_vm._e()]}):_vm._e()],2):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\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 Vue from 'vue'\nimport { translate as t } from '@nextcloud/l10n'\n\nimport SidebarView from './views/Sidebar.vue'\nimport Sidebar from './services/Sidebar.js'\nimport Tab from './models/Tab.js'\n\nVue.prototype.t = t\n\n// Init Sidebar Service\nif (!window.OCA.Files) {\n\twindow.OCA.Files = {}\n}\nObject.assign(window.OCA.Files, { Sidebar: new Sidebar() })\nObject.assign(window.OCA.Files.Sidebar, { Tab })\n\nconsole.debug('OCA.Files.Sidebar initialized')\n\nwindow.addEventListener('DOMContentLoaded', function() {\n\tconst contentElement = document.querySelector('body > .content')\n\t\t|| document.querySelector('body > #content')\n\n\t// Make sure we have a proper layout\n\tif (contentElement) {\n\t\t// Make sure we have a mountpoint\n\t\tif (!document.getElementById('app-sidebar')) {\n\t\t\tconst sidebarElement = document.createElement('div')\n\t\t\tsidebarElement.id = 'app-sidebar'\n\t\t\tcontentElement.appendChild(sidebarElement)\n\t\t}\n\t}\n\n\t// Init vue app\n\tconst View = Vue.extend(SidebarView)\n\tconst AppSidebar = new View({\n\t\tname: 'SidebarRoot',\n\t})\n\tAppSidebar.$mount('#app-sidebar')\n\twindow.OCA.Files.Sidebar.open = AppSidebar.open\n\twindow.OCA.Files.Sidebar.close = AppSidebar.close\n\twindow.OCA.Files.Sidebar.setFullScreenMode = AppSidebar.setFullScreenMode\n})\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\nexport default class Sidebar {\n\n\t_state\n\n\tconstructor() {\n\t\t// init empty state\n\t\tthis._state = {}\n\n\t\t// init default values\n\t\tthis._state.tabs = []\n\t\tthis._state.views = []\n\t\tthis._state.file = ''\n\t\tthis._state.activeTab = ''\n\t\tconsole.debug('OCA.Files.Sidebar initialized')\n\t}\n\n\t/**\n\t * Get the sidebar state\n\t *\n\t * @readonly\n\t * @memberof Sidebar\n\t * @return {object} the data state\n\t */\n\tget state() {\n\t\treturn this._state\n\t}\n\n\t/**\n\t * Register a new tab view\n\t *\n\t * @memberof Sidebar\n\t * @param {object} tab a new unregistered tab\n\t * @return {boolean}\n\t */\n\tregisterTab(tab) {\n\t\tconst hasDuplicate = this._state.tabs.findIndex(check => check.id === tab.id) > -1\n\t\tif (!hasDuplicate) {\n\t\t\tthis._state.tabs.push(tab)\n\t\t\treturn true\n\t\t}\n\t\tconsole.error(`An tab with the same id ${tab.id} already exists`, tab)\n\t\treturn false\n\t}\n\n\tregisterSecondaryView(view) {\n\t\tconst hasDuplicate = this._state.views.findIndex(check => check.id === view.id) > -1\n\t\tif (!hasDuplicate) {\n\t\t\tthis._state.views.push(view)\n\t\t\treturn true\n\t\t}\n\t\tconsole.error('A similar view already exists', view)\n\t\treturn false\n\t}\n\n\t/**\n\t * Return current opened file\n\t *\n\t * @memberof Sidebar\n\t * @return {string} the current opened file\n\t */\n\tget file() {\n\t\treturn this._state.file\n\t}\n\n\t/**\n\t * Set the current visible sidebar tab\n\t *\n\t * @memberof Sidebar\n\t * @param {string} id the tab unique id\n\t */\n\tsetActiveTab(id) {\n\t\tthis._state.activeTab = id\n\t}\n\n}\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 */\nimport { sanitizeSVG } from '@skjnldsv/sanitize-svg'\n\nexport default class Tab {\n\n\t_id\n\t_name\n\t_icon\n\t_iconSvgSanitized\n\t_mount\n\t_update\n\t_destroy\n\t_enabled\n\t_scrollBottomReached\n\n\t/**\n\t * Create a new tab instance\n\t *\n\t * @param {object} options destructuring object\n\t * @param {string} options.id the unique id of this tab\n\t * @param {string} options.name the translated tab name\n\t * @param {?string} options.icon the icon css class\n\t * @param {?string} options.iconSvg the icon in svg format\n\t * @param {Function} options.mount function to mount the tab\n\t * @param {Function} options.update function to update the tab\n\t * @param {Function} options.destroy function to destroy the tab\n\t * @param {Function} [options.enabled] define conditions whether this tab is active. Must returns a boolean\n\t * @param {Function} [options.scrollBottomReached] executed when the tab is scrolled to the bottom\n\t */\n\tconstructor({ id, name, icon, iconSvg, mount, update, destroy, enabled, scrollBottomReached } = {}) {\n\t\tif (enabled === undefined) {\n\t\t\tenabled = () => true\n\t\t}\n\t\tif (scrollBottomReached === undefined) {\n\t\t\tscrollBottomReached = () => { }\n\t\t}\n\n\t\t// Sanity checks\n\t\tif (typeof id !== 'string' || id.trim() === '') {\n\t\t\tthrow new Error('The id argument is not a valid string')\n\t\t}\n\t\tif (typeof name !== 'string' || name.trim() === '') {\n\t\t\tthrow new Error('The name argument is not a valid string')\n\t\t}\n\t\tif ((typeof icon !== 'string' || icon.trim() === '') && typeof iconSvg !== 'string') {\n\t\t\tthrow new Error('Missing valid string for icon or iconSvg argument')\n\t\t}\n\t\tif (typeof mount !== 'function') {\n\t\t\tthrow new Error('The mount argument should be a function')\n\t\t}\n\t\tif (typeof update !== 'function') {\n\t\t\tthrow new Error('The update argument should be a function')\n\t\t}\n\t\tif (typeof destroy !== 'function') {\n\t\t\tthrow new Error('The destroy argument should be a function')\n\t\t}\n\t\tif (typeof enabled !== 'function') {\n\t\t\tthrow new Error('The enabled argument should be a function')\n\t\t}\n\t\tif (typeof scrollBottomReached !== 'function') {\n\t\t\tthrow new Error('The scrollBottomReached argument should be a function')\n\t\t}\n\n\t\tthis._id = id\n\t\tthis._name = name\n\t\tthis._icon = icon\n\t\tthis._mount = mount\n\t\tthis._update = update\n\t\tthis._destroy = destroy\n\t\tthis._enabled = enabled\n\t\tthis._scrollBottomReached = scrollBottomReached\n\n\t\tif (typeof iconSvg === 'string') {\n\t\t\tsanitizeSVG(iconSvg)\n\t\t\t\t.then(sanitizedSvg => {\n\t\t\t\t\tthis._iconSvgSanitized = sanitizedSvg\n\t\t\t\t})\n\t\t}\n\n\t}\n\n\tget id() {\n\t\treturn this._id\n\t}\n\n\tget name() {\n\t\treturn this._name\n\t}\n\n\tget icon() {\n\t\treturn this._icon\n\t}\n\n\tget iconSvg() {\n\t\treturn this._iconSvgSanitized\n\t}\n\n\tget mount() {\n\t\treturn this._mount\n\t}\n\n\tget update() {\n\t\treturn this._update\n\t}\n\n\tget destroy() {\n\t\treturn this._destroy\n\t}\n\n\tget enabled() {\n\t\treturn this._enabled\n\t}\n\n\tget scrollBottomReached() {\n\t\treturn this._scrollBottomReached\n\t}\n\n}\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".app-sidebar--has-preview[data-v-71c562ec] .app-sidebar-header__figure{background-size:cover}.app-sidebar--has-preview[data-v-71c562ec][data-mimetype=\\\"text/plain\\\"] .app-sidebar-header__figure,.app-sidebar--has-preview[data-v-71c562ec][data-mimetype=\\\"text/markdown\\\"] .app-sidebar-header__figure{background-size:contain}.app-sidebar--full[data-v-71c562ec]{position:fixed !important;z-index:2025 !important;top:0 !important;height:100% !important}.app-sidebar[data-v-71c562ec] .app-sidebar-header__description{margin:0 16px 4px 16px !important}.app-sidebar .svg-icon[data-v-71c562ec] svg{width:20px;height:20px;fill:currentColor}.sidebar__description[data-v-71c562ec]{display:flex;flex-direction:column;width:100%;gap:8px 0}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/files/src/views/Sidebar.vue\"],\"names\":[],\"mappings\":\"AAGE,uEACC,qBAAA,CAKA,yMACC,uBAAA,CAKH,oCACC,yBAAA,CACA,uBAAA,CACA,gBAAA,CACA,sBAAA,CAIA,+DACC,iCAAA,CAKD,4CACC,UAAA,CACA,WAAA,CACA,iBAAA,CAKH,uCACC,YAAA,CACA,qBAAA,CACA,UAAA,CACA,SAAA\",\"sourcesContent\":[\"\\n.app-sidebar {\\n\\t&--has-preview:deep {\\n\\t\\t.app-sidebar-header__figure {\\n\\t\\t\\tbackground-size: cover;\\n\\t\\t}\\n\\n\\t\\t&[data-mimetype=\\\"text/plain\\\"],\\n\\t\\t&[data-mimetype=\\\"text/markdown\\\"] {\\n\\t\\t\\t.app-sidebar-header__figure {\\n\\t\\t\\t\\tbackground-size: contain;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&--full {\\n\\t\\tposition: fixed !important;\\n\\t\\tz-index: 2025 !important;\\n\\t\\ttop: 0 !important;\\n\\t\\theight: 100% !important;\\n\\t}\\n\\n\\t:deep {\\n\\t\\t.app-sidebar-header__description {\\n\\t\\t\\tmargin: 0 16px 4px 16px !important;\\n\\t\\t}\\n\\t}\\n\\n\\t.svg-icon {\\n\\t\\t::v-deep svg {\\n\\t\\t\\twidth: 20px;\\n\\t\\t\\theight: 20px;\\n\\t\\t\\tfill: currentColor;\\n\\t\\t}\\n\\t}\\n}\\n\\n.sidebar__description {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\twidth: 100%;\\n\\tgap: 8px 0;\\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, \".system-tags[data-v-78e28406]{display:flex;flex-direction:column}.system-tags label[for=system-tags-input][data-v-78e28406]{margin-bottom:2px}.system-tags__select[data-v-78e28406]{width:100%}.system-tags__select[data-v-78e28406] .vs__deselect{padding:0}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/systemtags/src/components/SystemTags.vue\"],\"names\":[],\"mappings\":\"AACA,8BACC,YAAA,CACA,qBAAA,CAEA,2DACC,iBAAA,CAGD,sCACC,UAAA,CAEC,oDACC,SAAA\",\"sourcesContent\":[\"\\n.system-tags {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\n\\tlabel[for=\\\"system-tags-input\\\"] {\\n\\t\\tmargin-bottom: 2px;\\n\\t}\\n\\n\\t&__select {\\n\\t\\twidth: 100%;\\n\\t\\t:deep {\\n\\t\\t\\t.vs__deselect {\\n\\t\\t\\t\\tpadding: 0;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","var map = {\n\t\"./af\": 42786,\n\t\"./af.js\": 42786,\n\t\"./ar\": 30867,\n\t\"./ar-dz\": 14130,\n\t\"./ar-dz.js\": 14130,\n\t\"./ar-kw\": 96135,\n\t\"./ar-kw.js\": 96135,\n\t\"./ar-ly\": 56440,\n\t\"./ar-ly.js\": 56440,\n\t\"./ar-ma\": 47702,\n\t\"./ar-ma.js\": 47702,\n\t\"./ar-sa\": 16040,\n\t\"./ar-sa.js\": 16040,\n\t\"./ar-tn\": 37100,\n\t\"./ar-tn.js\": 37100,\n\t\"./ar.js\": 30867,\n\t\"./az\": 31083,\n\t\"./az.js\": 31083,\n\t\"./be\": 9808,\n\t\"./be.js\": 9808,\n\t\"./bg\": 68338,\n\t\"./bg.js\": 68338,\n\t\"./bm\": 67438,\n\t\"./bm.js\": 67438,\n\t\"./bn\": 8905,\n\t\"./bn-bd\": 76225,\n\t\"./bn-bd.js\": 76225,\n\t\"./bn.js\": 8905,\n\t\"./bo\": 11560,\n\t\"./bo.js\": 11560,\n\t\"./br\": 1278,\n\t\"./br.js\": 1278,\n\t\"./bs\": 80622,\n\t\"./bs.js\": 80622,\n\t\"./ca\": 2468,\n\t\"./ca.js\": 2468,\n\t\"./cs\": 5822,\n\t\"./cs.js\": 5822,\n\t\"./cv\": 50877,\n\t\"./cv.js\": 50877,\n\t\"./cy\": 47373,\n\t\"./cy.js\": 47373,\n\t\"./da\": 24780,\n\t\"./da.js\": 24780,\n\t\"./de\": 59740,\n\t\"./de-at\": 60217,\n\t\"./de-at.js\": 60217,\n\t\"./de-ch\": 60894,\n\t\"./de-ch.js\": 60894,\n\t\"./de.js\": 59740,\n\t\"./dv\": 5300,\n\t\"./dv.js\": 5300,\n\t\"./el\": 50837,\n\t\"./el.js\": 50837,\n\t\"./en-au\": 78348,\n\t\"./en-au.js\": 78348,\n\t\"./en-ca\": 77925,\n\t\"./en-ca.js\": 77925,\n\t\"./en-gb\": 22243,\n\t\"./en-gb.js\": 22243,\n\t\"./en-ie\": 46436,\n\t\"./en-ie.js\": 46436,\n\t\"./en-il\": 47207,\n\t\"./en-il.js\": 47207,\n\t\"./en-in\": 44175,\n\t\"./en-in.js\": 44175,\n\t\"./en-nz\": 76319,\n\t\"./en-nz.js\": 76319,\n\t\"./en-sg\": 31662,\n\t\"./en-sg.js\": 31662,\n\t\"./eo\": 92915,\n\t\"./eo.js\": 92915,\n\t\"./es\": 55655,\n\t\"./es-do\": 55251,\n\t\"./es-do.js\": 55251,\n\t\"./es-mx\": 96112,\n\t\"./es-mx.js\": 96112,\n\t\"./es-us\": 71146,\n\t\"./es-us.js\": 71146,\n\t\"./es.js\": 55655,\n\t\"./et\": 5603,\n\t\"./et.js\": 5603,\n\t\"./eu\": 77763,\n\t\"./eu.js\": 77763,\n\t\"./fa\": 76959,\n\t\"./fa.js\": 76959,\n\t\"./fi\": 11897,\n\t\"./fi.js\": 11897,\n\t\"./fil\": 42549,\n\t\"./fil.js\": 42549,\n\t\"./fo\": 94694,\n\t\"./fo.js\": 94694,\n\t\"./fr\": 94470,\n\t\"./fr-ca\": 63049,\n\t\"./fr-ca.js\": 63049,\n\t\"./fr-ch\": 52330,\n\t\"./fr-ch.js\": 52330,\n\t\"./fr.js\": 94470,\n\t\"./fy\": 5044,\n\t\"./fy.js\": 5044,\n\t\"./ga\": 29295,\n\t\"./ga.js\": 29295,\n\t\"./gd\": 2101,\n\t\"./gd.js\": 2101,\n\t\"./gl\": 38794,\n\t\"./gl.js\": 38794,\n\t\"./gom-deva\": 27884,\n\t\"./gom-deva.js\": 27884,\n\t\"./gom-latn\": 23168,\n\t\"./gom-latn.js\": 23168,\n\t\"./gu\": 95349,\n\t\"./gu.js\": 95349,\n\t\"./he\": 24206,\n\t\"./he.js\": 24206,\n\t\"./hi\": 30094,\n\t\"./hi.js\": 30094,\n\t\"./hr\": 30316,\n\t\"./hr.js\": 30316,\n\t\"./hu\": 22138,\n\t\"./hu.js\": 22138,\n\t\"./hy-am\": 11423,\n\t\"./hy-am.js\": 11423,\n\t\"./id\": 29218,\n\t\"./id.js\": 29218,\n\t\"./is\": 90135,\n\t\"./is.js\": 90135,\n\t\"./it\": 90626,\n\t\"./it-ch\": 10150,\n\t\"./it-ch.js\": 10150,\n\t\"./it.js\": 90626,\n\t\"./ja\": 39183,\n\t\"./ja.js\": 39183,\n\t\"./jv\": 24286,\n\t\"./jv.js\": 24286,\n\t\"./ka\": 12105,\n\t\"./ka.js\": 12105,\n\t\"./kk\": 47772,\n\t\"./kk.js\": 47772,\n\t\"./km\": 18758,\n\t\"./km.js\": 18758,\n\t\"./kn\": 79282,\n\t\"./kn.js\": 79282,\n\t\"./ko\": 33730,\n\t\"./ko.js\": 33730,\n\t\"./ku\": 1408,\n\t\"./ku.js\": 1408,\n\t\"./ky\": 33291,\n\t\"./ky.js\": 33291,\n\t\"./lb\": 36841,\n\t\"./lb.js\": 36841,\n\t\"./lo\": 55466,\n\t\"./lo.js\": 55466,\n\t\"./lt\": 57010,\n\t\"./lt.js\": 57010,\n\t\"./lv\": 37595,\n\t\"./lv.js\": 37595,\n\t\"./me\": 39861,\n\t\"./me.js\": 39861,\n\t\"./mi\": 35493,\n\t\"./mi.js\": 35493,\n\t\"./mk\": 95966,\n\t\"./mk.js\": 95966,\n\t\"./ml\": 87341,\n\t\"./ml.js\": 87341,\n\t\"./mn\": 5115,\n\t\"./mn.js\": 5115,\n\t\"./mr\": 10370,\n\t\"./mr.js\": 10370,\n\t\"./ms\": 9847,\n\t\"./ms-my\": 41237,\n\t\"./ms-my.js\": 41237,\n\t\"./ms.js\": 9847,\n\t\"./mt\": 72126,\n\t\"./mt.js\": 72126,\n\t\"./my\": 56165,\n\t\"./my.js\": 56165,\n\t\"./nb\": 64924,\n\t\"./nb.js\": 64924,\n\t\"./ne\": 16744,\n\t\"./ne.js\": 16744,\n\t\"./nl\": 93901,\n\t\"./nl-be\": 59814,\n\t\"./nl-be.js\": 59814,\n\t\"./nl.js\": 93901,\n\t\"./nn\": 83877,\n\t\"./nn.js\": 83877,\n\t\"./oc-lnc\": 92135,\n\t\"./oc-lnc.js\": 92135,\n\t\"./pa-in\": 15858,\n\t\"./pa-in.js\": 15858,\n\t\"./pl\": 64495,\n\t\"./pl.js\": 64495,\n\t\"./pt\": 89520,\n\t\"./pt-br\": 57971,\n\t\"./pt-br.js\": 57971,\n\t\"./pt.js\": 89520,\n\t\"./ro\": 96459,\n\t\"./ro.js\": 96459,\n\t\"./ru\": 21793,\n\t\"./ru.js\": 21793,\n\t\"./sd\": 40950,\n\t\"./sd.js\": 40950,\n\t\"./se\": 10490,\n\t\"./se.js\": 10490,\n\t\"./si\": 90124,\n\t\"./si.js\": 90124,\n\t\"./sk\": 64249,\n\t\"./sk.js\": 64249,\n\t\"./sl\": 14985,\n\t\"./sl.js\": 14985,\n\t\"./sq\": 51104,\n\t\"./sq.js\": 51104,\n\t\"./sr\": 49131,\n\t\"./sr-cyrl\": 79915,\n\t\"./sr-cyrl.js\": 79915,\n\t\"./sr.js\": 49131,\n\t\"./ss\": 85893,\n\t\"./ss.js\": 85893,\n\t\"./sv\": 98760,\n\t\"./sv.js\": 98760,\n\t\"./sw\": 91172,\n\t\"./sw.js\": 91172,\n\t\"./ta\": 27333,\n\t\"./ta.js\": 27333,\n\t\"./te\": 23110,\n\t\"./te.js\": 23110,\n\t\"./tet\": 52095,\n\t\"./tet.js\": 52095,\n\t\"./tg\": 27321,\n\t\"./tg.js\": 27321,\n\t\"./th\": 9041,\n\t\"./th.js\": 9041,\n\t\"./tk\": 19005,\n\t\"./tk.js\": 19005,\n\t\"./tl-ph\": 75768,\n\t\"./tl-ph.js\": 75768,\n\t\"./tlh\": 89444,\n\t\"./tlh.js\": 89444,\n\t\"./tr\": 72397,\n\t\"./tr.js\": 72397,\n\t\"./tzl\": 28254,\n\t\"./tzl.js\": 28254,\n\t\"./tzm\": 51106,\n\t\"./tzm-latn\": 30699,\n\t\"./tzm-latn.js\": 30699,\n\t\"./tzm.js\": 51106,\n\t\"./ug-cn\": 9288,\n\t\"./ug-cn.js\": 9288,\n\t\"./uk\": 67691,\n\t\"./uk.js\": 67691,\n\t\"./ur\": 13795,\n\t\"./ur.js\": 13795,\n\t\"./uz\": 6791,\n\t\"./uz-latn\": 60588,\n\t\"./uz-latn.js\": 60588,\n\t\"./uz.js\": 6791,\n\t\"./vi\": 65666,\n\t\"./vi.js\": 65666,\n\t\"./x-pseudo\": 14378,\n\t\"./x-pseudo.js\": 14378,\n\t\"./yo\": 75805,\n\t\"./yo.js\": 75805,\n\t\"./zh-cn\": 83839,\n\t\"./zh-cn.js\": 83839,\n\t\"./zh-hk\": 55726,\n\t\"./zh-hk.js\": 55726,\n\t\"./zh-mo\": 99807,\n\t\"./zh-mo.js\": 99807,\n\t\"./zh-tw\": 74152,\n\t\"./zh-tw.js\": 74152\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 46700;","// 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__.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 = 4092;","__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\t4092: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\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__(72794)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","name","components","NcAppSidebarTab","NcEmptyContent","props","fileInfo","type","Object","default","required","id","String","icon","onMount","Function","onUpdate","onDestroy","onScrollBottomReached","data","loading","computed","activeTab","$parent","watch","newFile","oldFile","$refs","mount","tab","_vm","this","_c","_self","ref","attrs","on","scopedSlots","_u","key","fn","_t","proxy","_v","_e","component","setFileInfo","mounted","$el","replaceAll","methods","OCA","Files","FileInfoModel","rootUrl","generateRemoteUrl","davClient","createClient","headers","requesttoken","_getRequestToken","getRequestToken","parseTags","tags","map","_ref","fromEntries","entries","_ref2","value","camelCase","parseIdFromLocation","url","queryPos","indexOf","substring","parts","split","result","length","pop","Number","formatTag","initialTag","tag","displayName","logger","getLoggerBuilder","setApp","detectUser","build","fetchTagsBody","selectTag","async","fileId","path","tagToPut","customRequest","method","error","t","Error","defaultBaseTag","userVisible","userAssignable","canAssign","Vue","NcSelectTags","sortedTags","selectedTags","getDirectoryContents","details","glob","fetchTags","lastUsedOrder","generateUrl","lastUsedTagIds","axios","fetchLastUsedTagIds","lastUsedTags","remainingTags","includes","push","sortByLastUsed","a","b","sort","showError","immediate","fetchSelectedTags","$emit","createOption","newDisplayName","baseTag","every","handleInput","filter","selectedTag","Boolean","sortToFront","tagToPost","contentLocation","get","createTag","createdTag","unshift","deleteFile","deleteTag","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","_setupProxy","staticClass","_s","handleSelect","handleCreate","handleDeselect","LegacyView","NcActionButton","NcAppSidebar","SidebarTab","SystemTags","Sidebar","state","showTags","starLoading","isFullScreen","hasLowHeight","file","tabs","views","davPath","user","OC","getCurrentUser","uid","linkToRemote","concat","encodePath","subtitle","size","time","Util","relativeModifiedDate","mtime","fullTime","moment","format","humanFileSize","background","getPreviewIfAny","appSidebar","mimetype","active","class","hasPreview","compact","starred","isFavourited","subtitleTooltip","title","titleTooltip","defaultAction","App","fileList","fileActions","getDefaultFileAction","PERMISSION_READ","defaultActionListener","isSystemTagsEnabled","created","window","addEventListener","handleWindowResize","beforeDestroy","removeEventListener","canDisplay","enabled","resetData","$nextTick","updateTabs","screen","width","height","getIconUrl","mimeType","mountType","MimeType","undefined","shareTypes","ShareTypes","setActiveTab","triggerAction","getModelForFile","Notification","showTemporary","console","onDefaultAction","action","dir","$file","$","toggleTags","trim","response","filesClient","_client","parseMultiStatus","_parseFileInfo","isDirectory","FileInfo","slice","join","forEach","view","close","setFullScreenMode","_document$querySelect","_document$querySelect2","_document$querySelect3","_document$querySelect4","document","querySelector","classList","add","remove","handleOpening","emit","handleOpened","handleClosing","handleClosed","documentElement","clientHeight","_b","_d","toggleStarred","$event","stopPropagation","preventDefault","apply","arguments","directives","rawName","expression","_l","cid","update","destroy","scrollBottomReached","iconSvg","domProps","assign","constructor","_state","debug","registerTab","findIndex","check","registerSecondaryView","Tab","_defineProperty","_id","_name","_icon","_mount","_update","_destroy","_enabled","_scrollBottomReached","sanitizeSVG","then","sanitizedSvg","_iconSvgSanitized","contentElement","getElementById","sidebarElement","createElement","appendChild","AppSidebar","SidebarView","$mount","open","___CSS_LOADER_EXPORT___","module","webpackContext","req","webpackContextResolve","__webpack_require__","o","e","code","keys","resolve","exports","__webpack_module_cache__","moduleId","cachedModule","loaded","__webpack_modules__","call","m","O","chunkIds","priority","notFulfilled","Infinity","i","fulfilled","j","splice","r","n","getter","__esModule","d","definition","defineProperty","enumerable","g","globalThis","obj","prop","prototype","hasOwnProperty","Symbol","toStringTag","nmd","paths","children","baseURI","self","location","href","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","bind","nc","__webpack_exports__"],"sourceRoot":""}
|