photos/js/photos-src_components_Empty...

1 line
40 KiB
Plaintext

{"version":3,"file":"photos-src_components_EmptyContent_vue-src_components_File_vue-src_components_Navigation_vue.js?v=ef1b6dc77d90582dab62","mappings":";;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;AC5IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;AClJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;AClJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAkBA;AACA;;;;;;;;;;;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAkBA;AACA;;;;;;;;;;;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAkBA;AACA;;;;;;;;;;;;;;;;ACvCA;;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC/DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sources":["webpack:///photos/src/components/EmptyContent.vue?vue&type=script&lang=js&","webpack:///photos/src/components/File.vue?vue&type=script&lang=js&","webpack:///photos/src/components/Navigation.vue?vue&type=script&lang=js&","webpack:///photos/src/components/EmptyContent.vue?vue&type=style&index=0&lang=scss&","webpack:///photos/src/components/File.vue?vue&type=style&index=0&id=ab80f8a8&lang=scss&scoped=true&","webpack:///photos/src/components/Navigation.vue?vue&type=style&index=0&id=81440b78&lang=scss&scoped=true&","webpack://photos/./src/components/EmptyContent.vue?7390","webpack://photos/./src/components/File.vue?737e","webpack://photos/./src/components/Navigation.vue?dd49","webpack:///photos/src/components/EmptyContent.vue","webpack:///photos/src/components/File.vue","webpack:///photos/src/components/Navigation.vue","webpack://photos/./src/components/EmptyContent.vue?2b0c","webpack://photos/./src/components/File.vue?5012","webpack://photos/./src/components/Navigation.vue?edc7","webpack:///photos/src/components/EmptyContent.vue?vue&type=template&id=6c3ea49c&","webpack:///photos/src/components/File.vue?vue&type=template&id=ab80f8a8&scoped=true&","webpack:///photos/src/components/Navigation.vue?vue&type=template&id=81440b78&scoped=true&","webpack:///photos/src/assets/Illustrations|lazy|/^\\.\\/.*\\.svg$/|groupOptions: {}|namespace object"],"sourcesContent":["function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nexport default {\n name: 'EmptyContent',\n props: {\n illustrationName: {\n type: String,\n default: ''\n }\n },\n data: function data() {\n return {\n illustration: ''\n };\n },\n computed: {\n /**\n * Does this component have an illustration\n *\n * @return {boolean}\n */\n haveIllustration: function haveIllustration() {\n return this.illustrationName !== '';\n },\n\n /**\n * Is the illustration loaded\n *\n * @return {boolean}\n */\n isLoaded: function isLoaded() {\n if (!this.haveIllustration) {\n return true;\n }\n\n return this.illustration !== '';\n },\n\n /**\n * The component is ready if the illustration\n * is done loading or if there is none\n *\n * @return {boolean}\n */\n isReady: function isReady() {\n return !this.haveIllustration || this.haveIllustration && this.isLoaded;\n }\n },\n\n /**\n * Fetch the new illustration as soon as it changes\n */\n watch: {\n illustrationName: function illustrationName() {\n this.getIllustration();\n }\n },\n beforeMount: function beforeMount() {\n this.getIllustration();\n },\n methods: {\n /**\n * Fetch the illustration as webpack chunk\n */\n getIllustration: function getIllustration() {\n var _this = this;\n\n return _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {\n var illustration;\n return regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _this.illustration = '';\n\n if (!(_this.illustrationName !== '')) {\n _context.next = 12;\n break;\n }\n\n _context.prev = 2;\n _context.next = 5;\n return import(\"../assets/Illustrations/\".concat(_this.illustrationName, \".svg\"));\n\n case 5:\n illustration = _context.sent;\n _this.illustration = illustration.default;\n _context.next = 12;\n break;\n\n case 9:\n _context.prev = 9;\n _context.t0 = _context[\"catch\"](2);\n console.error('Could not get the error illustration', _context.t0);\n\n case 12:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, null, [[2, 9]]);\n }))();\n }\n }\n};","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nimport { generateRemoteUrl, generateUrl } from '@nextcloud/router';\nimport { getCurrentUser } from '@nextcloud/auth';\nimport UserConfig from '../mixins/UserConfig';\nexport default {\n name: 'File',\n mixins: [UserConfig],\n inheritAttrs: false,\n props: {\n item: {\n type: Object,\n required: true\n }\n },\n data: function data() {\n return {\n loaded: false,\n error: false\n };\n },\n computed: {\n davPath: function davPath() {\n return generateRemoteUrl(\"dav/files/\".concat(getCurrentUser().uid)) + this.item.injected.filename;\n },\n ariaUuid: function ariaUuid() {\n return \"image-\".concat(this.item.injected.fileid);\n },\n ariaLabel: function ariaLabel() {\n return t('photos', 'Open the full size \"{name}\" image', {\n name: this.item.injected.basename\n });\n },\n isImage: function isImage() {\n return this.item.injected.mime.startsWith('image');\n },\n decodedEtag: function decodedEtag() {\n return this.item.injected.etag.replace('&quot;', '').replace('&quot;', '');\n },\n src: function src() {\n return generateUrl(\"/core/preview?fileId=\".concat(this.item.injected.fileid, \"&c=\").concat(this.decodedEtag, \"&x=\", 250, \"&y=\", 250, \"&forceIcon=0&a=\").concat(this.croppedLayout ? '0' : '1'));\n }\n },\n beforeDestroy: function beforeDestroy() {\n // cancel any pending load\n this.$refs.src = '';\n },\n methods: {\n openViewer: function openViewer() {\n var _this = this;\n\n OCA.Viewer.open({\n path: this.item.injected.filename,\n list: this.item.injected.list,\n loadMore: this.item.injected.loadMore ? /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {\n return regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return _this.item.injected.loadMore(true);\n\n case 2:\n return _context.abrupt(\"return\", _context.sent);\n\n case 3:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n })) : function () {\n return [];\n },\n canLoop: this.item.injected.canLoop\n });\n },\n\n /** When the image is fully loaded by browser we remove the placeholder */\n onLoad: function onLoad() {\n this.loaded = true;\n },\n onError: function onError() {\n this.error = true;\n }\n }\n};","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nimport Actions from '@nextcloud/vue/dist/Components/Actions';\nimport ActionButton from '@nextcloud/vue/dist/Components/ActionButton';\nexport default {\n name: 'Navigation',\n components: {\n ActionButton: ActionButton,\n Actions: Actions\n },\n inheritAttrs: false,\n props: {\n basename: {\n type: String,\n required: true\n },\n filename: {\n type: String,\n required: true\n },\n showActions: {\n type: Boolean,\n default: false\n },\n rootTitle: {\n type: String,\n default: t('photos', 'Photos')\n }\n },\n computed: {\n isRoot: function isRoot() {\n return this.filename === '/';\n },\n name: function name() {\n if (this.isRoot) {\n return this.rootTitle;\n }\n\n return this.basename;\n },\n parentPath: function parentPath() {\n var path = this.filename.split('/');\n path.pop();\n var parent = path.join('/');\n return this.isRoot || parent.trim() === '' ? '/' : path.join('/');\n },\n parentName: function parentName() {\n return this.parentPath && this.parentPath.split('/').pop();\n },\n backToText: function backToText() {\n if (this.parentPath === '/') {\n return t('photos', 'Back to {folder}', {\n folder: this.rootTitle\n });\n }\n\n return t('photos', 'Back to {folder}', {\n folder: this.parentName\n });\n },\n\n /**\n * We do not want encoded slashes when browsing by folder\n * so we generate a new valid route object, get the final url back\n * decode it and use it as a direct string, which vue-router\n * does not encode afterwards\n *\n * @return {string|object}\n */\n to: function to() {\n // always remove first slash, the router\n // manage it automatically\n var regex = /^\\/?(.*)/i;\n var path = regex.exec(this.parentPath)[1]; // apply to current route\n\n var _Object$assign = Object.assign({}, this.$route, {\n params: {\n path: path\n }\n }),\n name = _Object$assign.name,\n params = _Object$assign.params; // return the full object as we don't care about\n // an empty path if this is route\n\n\n if (path === '') {\n return {\n name: name\n };\n } // returning a string prevent vue-router to encode it again\n\n\n return decodeURIComponent(this.$router.resolve({\n name: name,\n params: params\n }).resolved.path);\n }\n },\n methods: {\n folderUp: function folderUp() {\n this.$router.push(this.to);\n },\n showSidebar: function showSidebar() {\n OCA.Files.Sidebar.open(this.filename);\n }\n }\n};","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/noSourceMaps.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_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".emptycontent {\\n grid-column: 1/-1;\\n margin-top: 20vh;\\n}\\n.illustration {\\n min-width: 200px;\\n max-width: 15%;\\n width: 300px;\\n margin: auto;\\n margin-bottom: 20px;\\n position: relative;\\n}\\n.illustration svg {\\n width: 100%;\\n height: 100%;\\n max-height: 40vh;\\n}\\n.illustration [fill*=\\\"6c63ff\\\"] {\\n fill: var(--color-primary-element);\\n}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/noSourceMaps.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_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"@charset \\\"UTF-8\\\";\\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.file[data-v-ab80f8a8],\\n.folder[data-v-ab80f8a8] {\\n position: relative;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n -webkit-user-select: none;\\n user-select: none;\\n border-radius: var(--border-radius);\\n overflow: hidden;\\n}\\n.file .cover[data-v-ab80f8a8],\\n.folder .cover[data-v-ab80f8a8] {\\n z-index: 2;\\n width: 100%;\\n padding-bottom: 100%;\\n transition: opacity var(--animation-quick) ease-in-out;\\n opacity: 0;\\n background-color: var(--color-main-text);\\n}\\n.file.active .cover[data-v-ab80f8a8], .file:active .cover[data-v-ab80f8a8], .file:hover .cover[data-v-ab80f8a8], .file:focus .cover[data-v-ab80f8a8],\\n.folder.active .cover[data-v-ab80f8a8],\\n.folder:active .cover[data-v-ab80f8a8],\\n.folder:hover .cover[data-v-ab80f8a8],\\n.folder:focus .cover[data-v-ab80f8a8] {\\n opacity: 0.3;\\n}\\n.file--clear.active .cover[data-v-ab80f8a8], .file--clear:active .cover[data-v-ab80f8a8], .file--clear:hover .cover[data-v-ab80f8a8], .file--clear:focus .cover[data-v-ab80f8a8],\\n.folder--clear.active .cover[data-v-ab80f8a8],\\n.folder--clear:active .cover[data-v-ab80f8a8],\\n.folder--clear:hover .cover[data-v-ab80f8a8],\\n.folder--clear:focus .cover[data-v-ab80f8a8] {\\n opacity: 0.1;\\n}\\n.fade-enter-active[data-v-ab80f8a8], .fade-leave-active[data-v-ab80f8a8] {\\n transition: opacity var(--animation-quick) ease-in-out;\\n}\\n.fade-enter[data-v-ab80f8a8], .fade-leave-to[data-v-ab80f8a8] {\\n opacity: 0;\\n}\\n.transition-group[data-v-ab80f8a8] {\\n display: contents;\\n}\\n.icon-video-white[data-v-ab80f8a8] {\\n position: absolute;\\n top: 10px;\\n right: 10px;\\n z-index: 20;\\n}\\nimg[data-v-ab80f8a8] {\\n position: absolute;\\n width: 100%;\\n height: 100%;\\n z-index: 10;\\n color: transparent;\\n object-fit: contain;\\n}\\n.file--cropped img[data-v-ab80f8a8] {\\n object-fit: cover;\\n}\\nsvg[data-v-ab80f8a8] {\\n position: absolute;\\n width: 70%;\\n height: 70%;\\n}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/noSourceMaps.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_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"@charset \\\"UTF-8\\\";\\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.icon-confirm[data-v-81440b78] {\\n -webkit-transform: rotate(180deg);\\n transform: rotate(180deg);\\n}\\n.photos-navigation[data-v-81440b78] {\\n display: flex;\\n position: block;\\n height: 44px;\\n padding: 0 40px;\\n align-items: center;\\n max-width: 100%;\\n}\\n.photos-navigation__title[data-v-81440b78] {\\n margin: 0;\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n}\\n.photos-navigation__share[data-v-81440b78] {\\n margin-left: 10px;\\n}\\n.photos-navigation__back[data-v-81440b78], .photos-navigation__share[data-v-81440b78] {\\n flex-grow: 0;\\n flex-shrink: 0;\\n}\\n@media (min-width: 0px) and (max-width: 400px) {\\n.photos-navigation[data-v-81440b78] {\\n margin-top: -7.3333333333px;\\n}\\n.photos-navigation--root .photos-navigation__title[data-v-81440b78] {\\n padding-left: -36px;\\n}\\n}\\n@media (min-width: 400px) and (max-width: 700px) {\\n.photos-navigation[data-v-81440b78] {\\n margin-top: -7.3333333333px;\\n}\\n.photos-navigation--root .photos-navigation__title[data-v-81440b78] {\\n padding-left: -36px;\\n}\\n}\\n@media (min-width: 700px) and (max-width: 1024px) {\\n.photos-navigation[data-v-81440b78] {\\n margin-top: -7.3333333333px;\\n}\\n.photos-navigation__back[data-v-81440b78] {\\n margin: 0 0px;\\n}\\n.photos-navigation--root .photos-navigation__title[data-v-81440b78] {\\n padding-left: 0px;\\n}\\n}\\n@media (min-width: 1024px) and (max-width: 1280px) {\\n.photos-navigation[data-v-81440b78] {\\n margin-top: -7.3333333333px;\\n}\\n.photos-navigation__back[data-v-81440b78] {\\n margin: 0 0px;\\n}\\n.photos-navigation--root .photos-navigation__title[data-v-81440b78] {\\n padding-left: 0px;\\n}\\n}\\n@media (min-width: 1280px) and (max-width: 1440px) {\\n.photos-navigation[data-v-81440b78] {\\n margin-top: 0px;\\n}\\n.photos-navigation__back[data-v-81440b78] {\\n margin: 0 11px;\\n}\\n.photos-navigation--root .photos-navigation__title[data-v-81440b78] {\\n padding-left: 22px;\\n}\\n}\\n@media (min-width: 1440px) and (max-width: 1600px) {\\n.photos-navigation[data-v-81440b78] {\\n margin-top: 0px;\\n}\\n.photos-navigation__back[data-v-81440b78] {\\n margin: 0 11px;\\n}\\n.photos-navigation--root .photos-navigation__title[data-v-81440b78] {\\n padding-left: 22px;\\n}\\n}\\n@media (min-width: 1600px) and (max-width: 2048px) {\\n.photos-navigation[data-v-81440b78] {\\n margin-top: 0px;\\n}\\n.photos-navigation__back[data-v-81440b78] {\\n margin: 0 11px;\\n}\\n.photos-navigation--root .photos-navigation__title[data-v-81440b78] {\\n padding-left: 22px;\\n}\\n}\\n@media (min-width: 2048px) and (max-width: 2560px) {\\n.photos-navigation[data-v-81440b78] {\\n margin-top: 0px;\\n}\\n.photos-navigation__back[data-v-81440b78] {\\n margin: 0 22px;\\n}\\n.photos-navigation--root .photos-navigation__title[data-v-81440b78] {\\n padding-left: 44px;\\n}\\n}\\n@media (min-width: 2560px) and (max-width: 3440px) {\\n.photos-navigation[data-v-81440b78] {\\n margin-top: 0px;\\n}\\n.photos-navigation__back[data-v-81440b78] {\\n margin: 0 22px;\\n}\\n.photos-navigation--root .photos-navigation__title[data-v-81440b78] {\\n padding-left: 44px;\\n}\\n}\\n@media (min-width: 3440px) {\\n.photos-navigation[data-v-81440b78] {\\n margin-top: 0px;\\n}\\n.photos-navigation__back[data-v-81440b78] {\\n margin: 0 22px;\\n}\\n.photos-navigation--root .photos-navigation__title[data-v-81440b78] {\\n padding-left: 44px;\\n}\\n}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\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/postcss-loader/dist/cjs.js!../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-2[0].rules[0].use[3]!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EmptyContent.vue?vue&type=style&index=0&lang=scss&\";\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/postcss-loader/dist/cjs.js!../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-2[0].rules[0].use[3]!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EmptyContent.vue?vue&type=style&index=0&lang=scss&\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/dist/cjs.js!../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-2[0].rules[0].use[3]!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./File.vue?vue&type=style&index=0&id=ab80f8a8&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/postcss-loader/dist/cjs.js!../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-2[0].rules[0].use[3]!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./File.vue?vue&type=style&index=0&id=ab80f8a8&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/dist/cjs.js!../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-2[0].rules[0].use[3]!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Navigation.vue?vue&type=style&index=0&id=81440b78&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/postcss-loader/dist/cjs.js!../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-2[0].rules[0].use[3]!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Navigation.vue?vue&type=style&index=0&id=81440b78&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./EmptyContent.vue?vue&type=template&id=6c3ea49c&\"\nimport script from \"./EmptyContent.vue?vue&type=script&lang=js&\"\nexport * from \"./EmptyContent.vue?vue&type=script&lang=js&\"\nimport style0 from \"./EmptyContent.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/home/louis/workspace/nextcloud/apps/photos/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('6c3ea49c')) {\n api.createRecord('6c3ea49c', component.options)\n } else {\n api.reload('6c3ea49c', component.options)\n }\n module.hot.accept(\"./EmptyContent.vue?vue&type=template&id=6c3ea49c&\", function () {\n api.rerender('6c3ea49c', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"src/components/EmptyContent.vue\"\nexport default component.exports","import { render, staticRenderFns } from \"./File.vue?vue&type=template&id=ab80f8a8&scoped=true&\"\nimport script from \"./File.vue?vue&type=script&lang=js&\"\nexport * from \"./File.vue?vue&type=script&lang=js&\"\nimport style0 from \"./File.vue?vue&type=style&index=0&id=ab80f8a8&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 \"ab80f8a8\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/home/louis/workspace/nextcloud/apps/photos/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('ab80f8a8')) {\n api.createRecord('ab80f8a8', component.options)\n } else {\n api.reload('ab80f8a8', component.options)\n }\n module.hot.accept(\"./File.vue?vue&type=template&id=ab80f8a8&scoped=true&\", function () {\n api.rerender('ab80f8a8', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"src/components/File.vue\"\nexport default component.exports","import { render, staticRenderFns } from \"./Navigation.vue?vue&type=template&id=81440b78&scoped=true&\"\nimport script from \"./Navigation.vue?vue&type=script&lang=js&\"\nexport * from \"./Navigation.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Navigation.vue?vue&type=style&index=0&id=81440b78&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 \"81440b78\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/home/louis/workspace/nextcloud/apps/photos/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('81440b78')) {\n api.createRecord('81440b78', component.options)\n } else {\n api.reload('81440b78', component.options)\n }\n module.hot.accept(\"./Navigation.vue?vue&type=template&id=81440b78&scoped=true&\", function () {\n api.rerender('81440b78', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"src/components/Navigation.vue\"\nexport default component.exports","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EmptyContent.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!./EmptyContent.vue?vue&type=script&lang=js&\"","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./File.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!./File.vue?vue&type=script&lang=js&\"","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Navigation.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!./Navigation.vue?vue&type=script&lang=js&\"","var render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _vm.isReady\n ? _c(\"div\", { staticClass: \"emptycontent\" }, [\n _vm.haveIllustration\n ? _c(\"div\", {\n staticClass: \"illustration\",\n domProps: { innerHTML: _vm._s(_vm.illustration) },\n })\n : _c(\"div\", { staticClass: \"icon-error\" }),\n _vm._v(\" \"),\n _c(\"h2\", [_vm._t(\"default\")], 2),\n _vm._v(\" \"),\n _c(\n \"p\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.$slots.desc,\n expression: \"$slots.desc\",\n },\n ],\n },\n [_vm._t(\"desc\")],\n 2\n ),\n ])\n : _vm._e()\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"a\",\n {\n staticClass: \"file\",\n class: {\n \"file--cropped\": _vm.croppedLayout,\n },\n attrs: { href: _vm.davPath, \"aria-label\": _vm.ariaLabel },\n on: {\n click: function ($event) {\n $event.preventDefault()\n return _vm.openViewer.apply(null, arguments)\n },\n },\n },\n [\n _vm.item.injected.mime.includes(\"video\") && _vm.item.injected.hasPreview\n ? _c(\"div\", { staticClass: \"icon-video-white\" })\n : _vm._e(),\n _vm._v(\" \"),\n _c(\n \"transition-group\",\n { staticClass: \"transition-group\", attrs: { name: \"fade\" } },\n [\n !_vm.error\n ? _c(\"img\", {\n key: _vm.item.injected.basename + \"-img\",\n ref: \"img\",\n attrs: {\n src: _vm.src,\n alt: _vm.item.injected.basename,\n \"aria-describedby\": _vm.ariaUuid,\n },\n on: { load: _vm.onLoad, error: _vm.onError },\n })\n : _vm._e(),\n _vm._v(\" \"),\n !_vm.loaded || _vm.error\n ? _c(\n \"svg\",\n {\n key: _vm.item.injected.basename + \"-svg\",\n attrs: {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 32 32\",\n fill: \"url(#placeholder__gradient)\",\n },\n },\n [\n _vm.isImage\n ? _c(\"use\", { attrs: { href: \"#placeholder--img\" } })\n : _c(\"use\", { attrs: { href: \"#placeholder--video\" } }),\n ]\n )\n : _vm._e(),\n ]\n ),\n _vm._v(\" \"),\n _c(\"p\", { staticClass: \"hidden-visually\", attrs: { id: _vm.ariaUuid } }, [\n _vm._v(_vm._s(_vm.item.injected.basename)),\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"cover\", attrs: { role: \"none\" } }),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n {\n staticClass: \"photos-navigation\",\n class: { \"photos-navigation--root\": _vm.isRoot },\n attrs: { role: \"toolbar\" },\n },\n [\n !_vm.isRoot\n ? _c(\n \"Actions\",\n { staticClass: \"photos-navigation__back\" },\n [\n _c(\n \"ActionButton\",\n {\n attrs: { icon: \"icon-confirm\" },\n on: { click: _vm.folderUp },\n },\n [_vm._v(\"\\n\\t\\t\\t\" + _vm._s(_vm.backToText) + \"\\n\\t\\t\")]\n ),\n ],\n 1\n )\n : _vm._e(),\n _vm._v(\" \"),\n _c(\"h2\", { staticClass: \"photos-navigation__title\" }, [\n _vm._v(\"\\n\\t\\t\" + _vm._s(_vm.name) + \"\\n\\t\"),\n ]),\n _vm._v(\" \"),\n !_vm.isRoot && _vm.showActions\n ? _c(\n \"Actions\",\n { staticClass: \"photos-navigation__share\" },\n [\n _c(\n \"ActionButton\",\n {\n attrs: { icon: \"icon-shared\" },\n on: { click: _vm.showSidebar },\n },\n [\n _vm._v(\n \"\\n\\t\\t\\t\" +\n _vm._s(_vm.t(\"photos\", \"Share this folder\")) +\n \"\\n\\t\\t\"\n ),\n ]\n ),\n ],\n 1\n )\n : _vm._e(),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var map = {\n\t\"./empty.svg\": [\n\t\t\"./src/assets/Illustrations/empty.svg\",\n\t\t\"src_assets_Illustrations_empty_svg\"\n\t],\n\t\"./folder.svg\": [\n\t\t\"./src/assets/Illustrations/folder.svg\",\n\t\t\"src_assets_Illustrations_folder_svg\"\n\t],\n\t\"./images.svg\": [\n\t\t\"./src/assets/Illustrations/images.svg\",\n\t\t\"src_assets_Illustrations_images_svg\"\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(() => {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(() => {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = () => (Object.keys(map));\nwebpackAsyncContext.id = \"./src/assets/Illustrations lazy recursive ^\\\\.\\\\/.*\\\\.svg$\";\nmodule.exports = webpackAsyncContext;"],"names":[],"sourceRoot":""}