photos/js/photos-node_modules_vue-mat...

1 line
24 KiB
XML

{"version":3,"file":"photos-node_modules_vue-material-design-icons_AlertCircle_vue-node_modules_vue-material-design-icons-ba67e6.js?v=eae1edefcbc60023fef7","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;;;;;;;;;;;;;;;;;;;;;;;AC5EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACxHA;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;AAkBA;AACA;;;;;;;;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAkBA;AACA;;;;;;;;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAkBA;AACA;;;;;;;;;;;;;;;ACvCA;;;;;;;;;;;;;;;;;;;;;;;;;;;AEAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AEAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AGAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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/views/SharedAlbums.vue?vue&type=script&lang=js&","webpack:///photos/src/mixins/FetchSharedAlbumsMixin.js","webpack:///photos/src/views/SharedAlbums.vue?vue&type=style&index=0&id=3a88853a&lang=scss&scoped=true&","webpack://photos/./src/views/SharedAlbums.vue?7c9e","webpack:///photos/node_modules/vue-material-design-icons/AlertCircle.vue","webpack:///photos/node_modules/vue-material-design-icons/AlertCircle.vue?vue&type=script&lang=js&","webpack:///photos/node_modules/vue-material-design-icons/ImageMultiple.vue","webpack:///photos/node_modules/vue-material-design-icons/ImageMultiple.vue?vue&type=script&lang=js&","webpack:///photos/src/views/SharedAlbums.vue","webpack://photos/./src/views/SharedAlbums.vue?59a4","webpack://photos/./src/views/SharedAlbums.vue?14cb","webpack://photos/./node_modules/vue-material-design-icons/AlertCircle.vue?5363","webpack:///photos/node_modules/vue-material-design-icons/AlertCircle.vue?vue&type=template&id=7b52a7d0&","webpack://photos/./node_modules/vue-material-design-icons/ImageMultiple.vue?1443","webpack:///photos/node_modules/vue-material-design-icons/ImageMultiple.vue?vue&type=template&id=1fff908f&","webpack:///photos/src/views/SharedAlbums.vue?vue&type=template&id=3a88853a&scoped=true&","webpack://photos/./node_modules/vue-material-design-icons/AlertCircle.vue?d55e","webpack://photos/./node_modules/vue-material-design-icons/ImageMultiple.vue?eba6","webpack://photos/./src/views/SharedAlbums.vue?03bd"],"sourcesContent":["//\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 FolderMultipleImage from 'vue-material-design-icons/FolderMultipleImage';\nimport { generateUrl } from '@nextcloud/router';\nimport { NcEmptyContent } from '@nextcloud/vue';\nimport FetchSharedAlbumsMixin from '../mixins/FetchSharedAlbumsMixin.js';\nimport CollectionsList from '../components/Collection/CollectionsList.vue';\nimport CollectionCover from '../components/Collection/CollectionCover.vue';\nexport default {\n name: 'SharedAlbums',\n components: {\n FolderMultipleImage,\n NcEmptyContent,\n CollectionsList,\n CollectionCover\n },\n filters: {\n /**\n * @param {string} lastPhoto The album's last photos.\n */\n coverUrl(lastPhoto) {\n if (lastPhoto === -1) {\n return '';\n }\n\n return generateUrl(`/apps/photos/api/v1/preview/${lastPhoto}?x=${512}&y=${512}`);\n }\n\n },\n mixins: [FetchSharedAlbumsMixin]\n};","/**\n * @copyright Copyright (c) 2022 Louis Chemineau <louis@chmn.me>\n *\n * @author Louis Chemineau <louis@chmn.me>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { mapGetters } from 'vuex';\nimport moment from '@nextcloud/moment';\nimport { showError } from '@nextcloud/dialogs';\nimport { getCurrentUser } from '@nextcloud/auth';\nimport client from '../services/DavClient.js';\nimport logger from '../services/logger.js';\nimport { genFileInfo } from '../utils/fileUtils.js';\nimport AbortControllerMixin from './AbortControllerMixin.js';\nexport default {\n name: 'FetchSharedAlbumsMixin',\n\n data() {\n return {\n errorFetchingAlbums: null,\n loadingAlbums: false\n };\n },\n\n mixins: [AbortControllerMixin],\n\n async beforeMount() {\n this.fetchAlbums();\n },\n\n computed: { ...mapGetters(['sharedAlbums'])\n },\n methods: {\n async fetchAlbums() {\n if (this.loadingAlbums) {\n return;\n }\n\n try {\n this.loadingAlbums = true;\n this.errorFetchingAlbums = null;\n const response = await client.getDirectoryContents(`/photos/${getCurrentUser()?.uid}/sharedalbums`, {\n data: `<?xml version=\"1.0\"?>\n\t\t\t\t\t\t\t<d:propfind xmlns:d=\"DAV:\"\n\t\t\t\t\t\t\t\txmlns:oc=\"http://owncloud.org/ns\"\n\t\t\t\t\t\t\t\txmlns:nc=\"http://nextcloud.org/ns\"\n\t\t\t\t\t\t\t\txmlns:ocs=\"http://open-collaboration-services.org/ns\">\n\t\t\t\t\t\t\t\t<d:prop>\n\t\t\t\t\t\t\t\t\t<nc:last-photo />\n\t\t\t\t\t\t\t\t\t<nc:nbItems />\n\t\t\t\t\t\t\t\t\t<nc:location />\n\t\t\t\t\t\t\t\t\t<nc:dateRange />\n\t\t\t\t\t\t\t\t\t<nc:collaborators />\n\t\t\t\t\t\t\t\t</d:prop>\n\t\t\t\t\t\t\t</d:propfind>`,\n // TODO: implement public sharing\n // <nc:publicLink />\n details: true,\n signal: this.abortController.signal\n });\n const albums = response.data.filter(album => album.filename !== `/photos/${getCurrentUser()?.uid}/sharedalbums`).map(album => genFileInfo(album)).map(album => {\n album.collaborators = album.collaborators === '' ? [] : album.collaborators;\n const dateRange = JSON.parse(album.dateRange?.replace(/&quot;/g, '\"') ?? '{}');\n\n if (dateRange.start === null) {\n dateRange.start = moment().unix();\n dateRange.end = moment().unix();\n }\n\n const dateRangeFormated = {\n startDate: moment.unix(dateRange.start).format('MMMM YYYY'),\n endDate: moment.unix(dateRange.end).format('MMMM YYYY')\n };\n\n if (dateRangeFormated.startDate === dateRangeFormated.endDate) {\n return { ...album,\n date: dateRangeFormated.startDate\n };\n } else {\n return { ...album,\n date: this.t('photos', '{startDate} to {endDate}', dateRangeFormated)\n };\n }\n });\n this.$store.dispatch('addSharedAlbums', {\n albums\n });\n logger.debug(`[FetchSharedAlbumsMixin] Fetched ${albums.length} new files: `, albums);\n } catch (error) {\n if (error.response?.status === 404) {\n this.errorFetchingAlbums = 404;\n } else if (error.code === 'ERR_CANCELED') {\n return;\n } else {\n this.errorFetchingAlbums = error;\n }\n\n logger.error(t('photos', 'Failed to fetch albums list.'), error);\n showError(t('photos', 'Failed to fetch albums list.'));\n } finally {\n this.loadingAlbums = false;\n }\n }\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, \".albums-list[data-v-3a88853a] {\\n display: flex;\\n flex-direction: column;\\n}\\n.albums-list .album__name[data-v-3a88853a] {\\n font-weight: normal;\\n overflow: hidden;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\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!./SharedAlbums.vue?vue&type=style&index=0&id=3a88853a&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!./SharedAlbums.vue?vue&type=style&index=0&id=3a88853a&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AlertCircle.vue?vue&type=template&id=7b52a7d0&\"\nimport script from \"./AlertCircle.vue?vue&type=script&lang=js&\"\nexport * from \"./AlertCircle.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\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('7b52a7d0')) {\n api.createRecord('7b52a7d0', component.options)\n } else {\n api.reload('7b52a7d0', component.options)\n }\n module.hot.accept(\"./AlertCircle.vue?vue&type=template&id=7b52a7d0&\", function () {\n api.rerender('7b52a7d0', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"node_modules/vue-material-design-icons/AlertCircle.vue\"\nexport default component.exports","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nexport default {\n name: \"AlertCircleIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n","import { render, staticRenderFns } from \"./ImageMultiple.vue?vue&type=template&id=1fff908f&\"\nimport script from \"./ImageMultiple.vue?vue&type=script&lang=js&\"\nexport * from \"./ImageMultiple.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\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('1fff908f')) {\n api.createRecord('1fff908f', component.options)\n } else {\n api.reload('1fff908f', component.options)\n }\n module.hot.accept(\"./ImageMultiple.vue?vue&type=template&id=1fff908f&\", function () {\n api.rerender('1fff908f', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"node_modules/vue-material-design-icons/ImageMultiple.vue\"\nexport default component.exports","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nexport default {\n name: \"ImageMultipleIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n","import { render, staticRenderFns } from \"./SharedAlbums.vue?vue&type=template&id=3a88853a&scoped=true&\"\nimport script from \"./SharedAlbums.vue?vue&type=script&lang=js&\"\nexport * from \"./SharedAlbums.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SharedAlbums.vue?vue&type=style&index=0&id=3a88853a&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 \"3a88853a\",\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('3a88853a')) {\n api.createRecord('3a88853a', component.options)\n } else {\n api.reload('3a88853a', component.options)\n }\n module.hot.accept(\"./SharedAlbums.vue?vue&type=template&id=3a88853a&scoped=true&\", function () {\n api.rerender('3a88853a', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"src/views/SharedAlbums.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!./SharedAlbums.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!./SharedAlbums.vue?vue&type=script&lang=js&\"","export * from \"-!../../node_modules/style-loader/dist/cjs.js!../../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!./SharedAlbums.vue?vue&type=style&index=0&id=3a88853a&lang=scss&scoped=true&\"","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./AlertCircle.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./AlertCircle.vue?vue&type=script&lang=js&\"","export * from \"-!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib/index.js??vue-loader-options!./AlertCircle.vue?vue&type=template&id=7b52a7d0&\"","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ImageMultiple.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ImageMultiple.vue?vue&type=script&lang=js&\"","export * from \"-!../vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../vue-loader/lib/index.js??vue-loader-options!./ImageMultiple.vue?vue&type=template&id=1fff908f&\"","export * from \"-!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharedAlbums.vue?vue&type=template&id=3a88853a&scoped=true&\"","var render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"span\",\n _vm._b(\n {\n staticClass: \"material-design-icon alert-circle-icon\",\n attrs: {\n \"aria-hidden\": !_vm.title,\n \"aria-label\": _vm.title,\n role: \"img\",\n },\n on: {\n click: function ($event) {\n return _vm.$emit(\"click\", $event)\n },\n },\n },\n \"span\",\n _vm.$attrs,\n false\n ),\n [\n _c(\n \"svg\",\n {\n staticClass: \"material-design-icon__svg\",\n attrs: {\n fill: _vm.fillColor,\n width: _vm.size,\n height: _vm.size,\n viewBox: \"0 0 24 24\",\n },\n },\n [\n _c(\n \"path\",\n {\n attrs: {\n d: \"M13,13H11V7H13M13,17H11V15H13M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\",\n },\n },\n [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()]\n ),\n ]\n ),\n ]\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 \"span\",\n _vm._b(\n {\n staticClass: \"material-design-icon image-multiple-icon\",\n attrs: {\n \"aria-hidden\": !_vm.title,\n \"aria-label\": _vm.title,\n role: \"img\",\n },\n on: {\n click: function ($event) {\n return _vm.$emit(\"click\", $event)\n },\n },\n },\n \"span\",\n _vm.$attrs,\n false\n ),\n [\n _c(\n \"svg\",\n {\n staticClass: \"material-design-icon__svg\",\n attrs: {\n fill: _vm.fillColor,\n width: _vm.size,\n height: _vm.size,\n viewBox: \"0 0 24 24\",\n },\n },\n [\n _c(\n \"path\",\n {\n attrs: {\n d: \"M22,16V4A2,2 0 0,0 20,2H8A2,2 0 0,0 6,4V16A2,2 0 0,0 8,18H20A2,2 0 0,0 22,16M11,12L13.03,14.71L16,11L20,16H8M2,6V20A2,2 0 0,0 4,22H18V20H4V6\",\n },\n },\n [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()]\n ),\n ]\n ),\n ]\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 \"CollectionsList\",\n {\n staticClass: \"albums-list\",\n attrs: {\n collections: _vm.sharedAlbums,\n loading: _vm.loadingAlbums,\n \"collection-title\": _vm.t(\"photos\", \"Shared albums\"),\n \"collection-root\": _vm.t(\"photos\", \"Shared albums\"),\n error: _vm.errorFetchingAlbums,\n },\n scopedSlots: _vm._u([\n {\n key: \"default\",\n fn: function (ref) {\n var collection = ref.collection\n return _c(\n \"CollectionCover\",\n {\n key: collection.basename,\n attrs: {\n link: \"/sharedalbums/\" + collection.basename,\n \"alt-img\": _vm.t(\n \"photos\",\n \"Cover photo for shared album {albumName}.\",\n { albumName: collection.basename }\n ),\n \"cover-url\": _vm._f(\"coverUrl\")(collection.lastPhoto),\n },\n },\n [\n _c(\"h2\", { staticClass: \"album__name\" }, [\n _vm._v(\"\\n\\t\\t\\t\" + _vm._s(collection.basename) + \"\\n\\t\\t\"),\n ]),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"album__details\",\n attrs: { slot: \"subtitle\" },\n slot: \"subtitle\",\n },\n [\n _vm._v(\n \"\\n\\t\\t\\t\" +\n _vm._s(collection.date) +\n \" ⸱ \" +\n _vm._s(\n _vm.n(\n \"photos\",\n \"%n item\",\n \"%n photos and videos\",\n collection.nbItems\n )\n ) +\n \"\\n\\t\\t\"\n ),\n ]\n ),\n ]\n )\n },\n },\n ]),\n },\n [\n _vm._v(\" \"),\n _c(\n \"NcEmptyContent\",\n {\n attrs: {\n slot: \"empty-collections-list\",\n title: _vm.t(\"photos\", \"There is no album yet!\"),\n },\n slot: \"empty-collections-list\",\n },\n [_c(\"FolderMultipleImage\", { attrs: { slot: \"icon\" }, slot: \"icon\" })],\n 1\n ),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }"],"names":[],"sourceRoot":""}