Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/photos.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'js/photos-src_views_SharedAlbums_vue.js.map')
-rw-r--r--js/photos-src_views_SharedAlbums_vue.js.map2
1 files changed, 1 insertions, 1 deletions
diff --git a/js/photos-src_views_SharedAlbums_vue.js.map b/js/photos-src_views_SharedAlbums_vue.js.map
index b23d2c76..ed1c031b 100644
--- a/js/photos-src_views_SharedAlbums_vue.js.map
+++ b/js/photos-src_views_SharedAlbums_vue.js.map
@@ -1 +1 @@
-{"version":3,"file":"photos-src_views_SharedAlbums_vue.js?v=9d9d9aaecc4756009735","mappings":"6KAGIA,E,MAA0B,GAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,4LAA6L,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,0CAA0C,MAAQ,GAAG,SAAW,+EAA+E,eAAiB,CAAC,m7BAAmgC,WAAa,MAEl7C,S,gDCPA,I,6ECkEA,MClE6K,EDkE7K,CACA,oBACA,YACA,wBACA,gCACA,oBACA,oBACA,sBAGA,SAIA,SAJA,SAIA,GACA,aACA,IAGA,8EACA,GAGA,QACA,KAGA,SACA,UADA,WAEA,kBACA,I,qIErFIC,EAAU,CAAC,EAEfA,EAAQC,kBAAoB,IAC5BD,EAAQE,cAAgB,IAElBF,EAAQG,OAAS,SAAc,KAAM,QAE3CH,EAAQI,OAAS,IACjBJ,EAAQK,mBAAqB,IAEhB,IAAI,IAASL,GAKJ,KAAW,YAAiB,WCPlD,SAXgB,E,SAAA,GACd,GJTW,WAAa,IAAIM,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,kBAAkB,CAACE,YAAY,cAAcC,MAAM,CAAC,YAAcP,EAAIQ,aAAa,QAAUR,EAAIS,cAAc,mBAAmBT,EAAIU,EAAE,SAAU,iBAAiB,kBAAkBV,EAAIU,EAAE,SAAU,iBAAiB,MAAQV,EAAIW,qBAAqBC,YAAYZ,EAAIa,GAAG,CAAC,CAACC,IAAI,UAAUC,GAAG,SAASC,GACzY,IAAIC,EAAaD,EAAIC,WACrB,OAAOb,EAAG,kBAAkB,CAACU,IAAIG,EAAWC,SAASX,MAAM,CAAC,KAAQ,iBAAoBU,EAAmB,SAAG,UAAUjB,EAAIU,EAAE,SAAU,4CAA6C,CAAES,UAAWF,EAAWC,WAAY,YAAYlB,EAAIoB,GAAG,WAAPpB,CAAmBiB,EAAWI,aAAa,CAACjB,EAAG,KAAK,CAACE,YAAY,eAAe,CAACN,EAAIsB,GAAG,WAAWtB,EAAIuB,GAAGN,EAAWC,UAAU,YAAYlB,EAAIsB,GAAG,KAAKlB,EAAG,MAAM,CAACE,YAAY,iBAAiBC,MAAM,CAAC,KAAO,YAAYiB,KAAK,YAAY,CAACxB,EAAIsB,GAAG,WAAWtB,EAAIuB,GAAGN,EAAWQ,MAAM,MAAMzB,EAAIuB,GAAGvB,EAAI0B,EAAE,SAAU,UAAW,uBAAwBT,EAAWU,UAAU,aAAa,MAAM,CAACvB,EAAG,mBAAmB,CAACU,IAAI,aAAaP,MAAM,CAAC,KAAO,SAAS,QAAUP,EAAIS,cAAc,MAAQT,EAAIU,EAAE,SAAU,iBAAiB,aAAaV,EAAIU,EAAE,SAAU,kBAAkBkB,GAAG,CAAC,QAAU5B,EAAI6B,WAAWL,KAAK,WAAWxB,EAAIsB,GAAG,KAAKtB,EAAIsB,GAAG,KAAKlB,EAAG,iBAAiB,CAACG,MAAM,CAAC,KAAO,yBAAyB,MAAQP,EAAIU,EAAE,SAAU,2BAA2Bc,KAAK,0BAA0B,CAACpB,EAAG,sBAAsB,CAACG,MAAM,CAAC,KAAO,QAAQiB,KAAK,UAAU,IAAI,EAAE,GACxhC,IISpB,EACA,KACA,WACA,MAI8B,O","sources":["webpack:///photos/src/views/SharedAlbums.vue?vue&type=style&index=0&id=cca18204&lang=scss&scoped=true&","webpack:///photos/src/views/SharedAlbums.vue?vue&type=template&id=cca18204&scoped=true&","webpack:///photos/src/views/SharedAlbums.vue","webpack:///photos/src/views/SharedAlbums.vue?vue&type=script&lang=js&","webpack://photos/./src/views/SharedAlbums.vue?d044","webpack://photos/./src/views/SharedAlbums.vue?dd2f"],"sourcesContent":["// 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, \".albums-list[data-v-cca18204]{display:flex;flex-direction:column}.albums-list .album__name[data-v-cca18204]{font-weight:normal;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/views/SharedAlbums.vue\"],\"names\":[],\"mappings\":\"AAsGA,8BACC,YAAA,CACA,qBAAA,CAEA,2CACC,kBAAA,CACA,eAAA,CACA,kBAAA,CACA,sBAAA\",\"sourcesContent\":[\"$sizes: (\\\"400\\\": (\\\"count\\\": 3, \\\"marginTop\\\": 66, \\\"marginW\\\": 8), \\\"700\\\": (\\\"count\\\": 4, \\\"marginTop\\\": 66, \\\"marginW\\\": 8), \\\"1024\\\": (\\\"count\\\": 5, \\\"marginTop\\\": 66, \\\"marginW\\\": 44), \\\"1280\\\": (\\\"count\\\": 4, \\\"marginTop\\\": 66, \\\"marginW\\\": 44), \\\"1440\\\": (\\\"count\\\": 5, \\\"marginTop\\\": 88, \\\"marginW\\\": 66), \\\"1600\\\": (\\\"count\\\": 6, \\\"marginTop\\\": 88, \\\"marginW\\\": 66), \\\"2048\\\": (\\\"count\\\": 7, \\\"marginTop\\\": 88, \\\"marginW\\\": 66), \\\"2560\\\": (\\\"count\\\": 8, \\\"marginTop\\\": 88, \\\"marginW\\\": 88), \\\"3440\\\": (\\\"count\\\": 9, \\\"marginTop\\\": 88, \\\"marginW\\\": 88), \\\"max\\\": (\\\"count\\\": 10, \\\"marginTop\\\": 88, \\\"marginW\\\": 88));\\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\\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.albums-list {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\n\\t.album__name {\\n\\t\\tfont-weight: normal;\\n\\t\\toverflow: hidden;\\n\\t\\twhite-space: nowrap;\\n\\t\\ttext-overflow: ellipsis;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('CollectionsList',{staticClass:\"albums-list\",attrs:{\"collections\":_vm.sharedAlbums,\"loading\":_vm.loadingAlbums,\"collection-title\":_vm.t('photos', 'Shared albums'),\"collection-root\":_vm.t('photos', 'Shared albums'),\"error\":_vm.errorFetchingAlbums},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar collection = ref.collection;\nreturn _c('CollectionCover',{key:collection.basename,attrs:{\"link\":(\"/sharedalbums/\" + (collection.basename)),\"alt-img\":_vm.t('photos', 'Cover photo for shared album {albumName}.', { albumName: collection.basename }),\"cover-url\":_vm._f(\"coverUrl\")(collection.lastPhoto)}},[_c('h2',{staticClass:\"album__name\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(collection.basename)+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('div',{staticClass:\"album__details\",attrs:{\"slot\":\"subtitle\"},slot:\"subtitle\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(collection.date)+\" ⸱ \"+_vm._s(_vm.n('photos', '%n item', '%n photos and videos', collection.nbItems))+\"\\n\\t\\t\")])])}}])},[_c('HeaderNavigation',{key:\"navigation\",attrs:{\"slot\":\"header\",\"loading\":_vm.loadingAlbums,\"title\":_vm.t('photos', 'Shared albums'),\"root-title\":_vm.t('photos', 'Shared albums')},on:{\"refresh\":_vm.onRefresh},slot:\"header\"}),_vm._v(\" \"),_vm._v(\" \"),_c('NcEmptyContent',{attrs:{\"slot\":\"empty-collections-list\",\"title\":_vm.t('photos', 'There is no album yet!')},slot:\"empty-collections-list\"},[_c('FolderMultipleImage',{attrs:{\"slot\":\"icon\"},slot:\"icon\"})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\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 -->\n<template>\n\t<CollectionsList :collections=\"sharedAlbums\"\n\t\t:loading=\"loadingAlbums\"\n\t\t:collection-title=\"t('photos', 'Shared albums')\"\n\t\t:collection-root=\"t('photos', 'Shared albums')\"\n\t\t:error=\"errorFetchingAlbums\"\n\t\tclass=\"albums-list\">\n\t\t<HeaderNavigation key=\"navigation\"\n\t\t\tslot=\"header\"\n\t\t\t:loading=\"loadingAlbums\"\n\t\t\t:title=\"t('photos', 'Shared albums')\"\n\t\t\t:root-title=\"t('photos', 'Shared albums')\"\n\t\t\t@refresh=\"onRefresh\" />\n\n\t\t<CollectionCover :key=\"collection.basename\"\n\t\t\tslot-scope=\"{collection}\"\n\t\t\t:link=\"`/sharedalbums/${collection.basename}`\"\n\t\t\t:alt-img=\"t('photos', 'Cover photo for shared album {albumName}.', { albumName: collection.basename })\"\n\t\t\t:cover-url=\"collection.lastPhoto | coverUrl\">\n\t\t\t<h2 class=\"album__name\">\n\t\t\t\t{{ collection.basename }}\n\t\t\t</h2>\n\n\t\t\t<div slot=\"subtitle\" class=\"album__details\">\n\t\t\t\t{{ collection.date }} ⸱ {{ n('photos', '%n item', '%n photos and videos', collection.nbItems,) }}\n\t\t\t</div>\n\t\t</CollectionCover>\n\n\t\t<NcEmptyContent slot=\"empty-collections-list\" :title=\"t('photos', 'There is no album yet!')\">\n\t\t\t<FolderMultipleImage slot=\"icon\" />\n\t\t</NcEmptyContent>\n\t</CollectionsList>\n</template>\n\n<script>\nimport FolderMultipleImage from 'vue-material-design-icons/FolderMultipleImage'\n\nimport { generateUrl } from '@nextcloud/router'\nimport { NcEmptyContent } from '@nextcloud/vue'\n\nimport FetchSharedAlbumsMixin from '../mixins/FetchSharedAlbumsMixin.js'\nimport CollectionsList from '../components/Collection/CollectionsList.vue'\nimport CollectionCover from '../components/Collection/CollectionCover.vue'\nimport HeaderNavigation from '../components/HeaderNavigation.vue'\n\nexport default {\n\tname: 'SharedAlbums',\n\tcomponents: {\n\t\tFolderMultipleImage,\n\t\tNcEmptyContent,\n\t\tCollectionsList,\n\t\tCollectionCover,\n\t\tHeaderNavigation,\n\t},\n\n\tfilters: {\n\t\t/**\n\t\t * @param {string} lastPhoto The album's last photos.\n\t\t */\n\t\tcoverUrl(lastPhoto) {\n\t\t\tif (lastPhoto === -1) {\n\t\t\t\treturn ''\n\t\t\t}\n\n\t\t\treturn generateUrl(`/apps/photos/api/v1/preview/${lastPhoto}?x=${512}&y=${512}`)\n\t\t},\n\t},\n\n\tmixins: [\n\t\tFetchSharedAlbumsMixin,\n\t],\n\n\tmethods: {\n\t\tonRefresh() {\n\t\t\tthis.fetchAlbums()\n\t\t},\n\t},\n}\n</script>\n<style lang=\"scss\" scoped>\n.albums-list {\n\tdisplay: flex;\n\tflex-direction: column;\n\n\t.album__name {\n\t\tfont-weight: normal;\n\t\toverflow: hidden;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t}\n}\n</style>\n","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&\"","\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=cca18204&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=cca18204&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharedAlbums.vue?vue&type=template&id=cca18204&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=cca18204&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 \"cca18204\",\n null\n \n)\n\nexport default component.exports"],"names":["___CSS_LOADER_EXPORT___","push","module","id","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","_vm","this","_h","$createElement","_c","_self","staticClass","attrs","sharedAlbums","loadingAlbums","t","errorFetchingAlbums","scopedSlots","_u","key","fn","ref","collection","basename","albumName","_f","lastPhoto","_v","_s","slot","date","n","nbItems","on","onRefresh"],"sourceRoot":""} \ No newline at end of file
+{"version":3,"file":"photos-src_views_SharedAlbums_vue.js?v=cdf4332ceca78be4fea0","mappings":"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","sources":["webpack:///photos/src/mixins/AbortControllerMixin.js","webpack:///photos/src/mixins/FetchSharedAlbumsMixin.js","webpack:///photos/src/components/Collection/CollectionCover.vue?vue&type=style&index=0&id=6668e758&lang=scss&scoped=true&","webpack:///photos/src/components/Collection/CollectionsList.vue?vue&type=style&index=0&id=71e04184&lang=scss&scoped=true&","webpack:///photos/src/views/SharedAlbums.vue?vue&type=style&index=0&id=2d5a57ea&lang=scss&scoped=true&","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/AlertCircle.vue?489a","webpack:///photos/node_modules/vue-material-design-icons/AlertCircle.vue?vue&type=template&id=2a2453f8&","webpack:///photos/node_modules/vue-material-design-icons/FolderMultipleImage.vue","webpack:///photos/node_modules/vue-material-design-icons/FolderMultipleImage.vue?vue&type=script&lang=js&","webpack://photos/./node_modules/vue-material-design-icons/FolderMultipleImage.vue?f9dd","webpack:///photos/node_modules/vue-material-design-icons/FolderMultipleImage.vue?vue&type=template&id=497205fa&","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/./node_modules/vue-material-design-icons/ImageMultiple.vue?126d","webpack:///photos/node_modules/vue-material-design-icons/ImageMultiple.vue?vue&type=template&id=21a95e74&","webpack:///photos/src/components/Collection/CollectionCover.vue?vue&type=template&id=6668e758&scoped=true&","webpack:///photos/src/components/Collection/CollectionCover.vue","webpack:///photos/src/components/Collection/CollectionCover.vue?vue&type=script&lang=js&","webpack://photos/./src/components/Collection/CollectionCover.vue?1364","webpack://photos/./src/components/Collection/CollectionCover.vue?4a0b","webpack:///photos/src/components/Collection/CollectionsList.vue?vue&type=template&id=71e04184&scoped=true&","webpack:///photos/src/components/Collection/CollectionsList.vue","webpack:///photos/src/components/Collection/CollectionsList.vue?vue&type=script&lang=js&","webpack://photos/./src/components/Collection/CollectionsList.vue?02a1","webpack://photos/./src/components/Collection/CollectionsList.vue?a92d","webpack:///photos/src/views/SharedAlbums.vue?vue&type=template&id=2d5a57ea&scoped=true&","webpack:///photos/src/views/SharedAlbums.vue","webpack:///photos/src/views/SharedAlbums.vue?vue&type=script&lang=js&","webpack://photos/./src/views/SharedAlbums.vue?514e","webpack://photos/./src/views/SharedAlbums.vue?dd2f"],"sourcesContent":["/**\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 */\n\nexport default {\n\tname: 'AbortControllerMixin',\n\n\tdata() {\n\t\treturn {\n\t\t\tabortController: new AbortController(),\n\t\t}\n\t},\n\n\tbeforeDestroy() {\n\t\tthis.abortController.abort()\n\t},\n\n\tbeforeRouteLeave(from, to, next) {\n\t\tthis.abortController.abort()\n\t\tthis.abortController = new AbortController()\n\t\tnext()\n\t},\n}\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 */\n\nimport { mapGetters, mapActions } from 'vuex'\n\nimport { getCurrentUser } from '@nextcloud/auth'\n\nimport AbortControllerMixin from './AbortControllerMixin.js'\nimport { fetchAlbums } from '../services/Albums.js'\n\nexport default {\n\tname: 'FetchSharedAlbumsMixin',\n\n\tdata() {\n\t\treturn {\n\t\t\terrorFetchingAlbums: null,\n\t\t\tloadingAlbums: false,\n\t\t}\n\t},\n\n\tmixins: [\n\t\tAbortControllerMixin,\n\t],\n\n\tasync beforeMount() {\n\t\tthis.fetchAlbums()\n\t},\n\n\tcomputed: {\n\t\t...mapGetters([\n\t\t\t'sharedAlbums',\n\t\t]),\n\t},\n\n\tmethods: {\n\t\t...mapActions([\n\t\t\t'addSharedAlbums',\n\t\t]),\n\n\t\tasync fetchAlbums() {\n\t\t\tif (this.loadingAlbums) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tthis.loadingAlbums = true\n\t\t\t\tthis.errorFetchingAlbums = null\n\n\t\t\t\tconst albums = await fetchAlbums(`/photos/${getCurrentUser()?.uid}/sharedalbums`, this.abortController.signal)\n\n\t\t\t\tthis.addSharedAlbums({ albums })\n\t\t\t} catch (error) {\n\t\t\t\tif (error.response?.status === 404) {\n\t\t\t\t\tthis.errorFetchingAlbums = 404\n\t\t\t\t} else {\n\t\t\t\t\tthis.errorFetchingAlbums = error\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\tthis.loadingAlbums = false\n\t\t\t}\n\t\t},\n\t},\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, \".collection-cover[data-v-6668e758]{display:flex;flex-direction:column;padding:16px;border-radius:var(--border-radius-large)}.collection-cover[data-v-6668e758]:hover,.collection-cover[data-v-6668e758]:focus{background:var(--color-background-dark)}.collection-cover__image[data-v-6668e758]{width:350px;height:350px;object-fit:none;border-radius:var(--border-radius-large)}@media only screen and (max-width: 1200px){.collection-cover__image[data-v-6668e758]{width:250px;height:250px}}.collection-cover__image--placeholder[data-v-6668e758]{background:var(--color-primary-light)}.collection-cover__image--placeholder[data-v-6668e758] .material-design-icon{width:100%;height:100%}.collection-cover__image--placeholder[data-v-6668e758] .material-design-icon .material-design-icon__svg{fill:var(--color-primary)}.collection-cover__details[data-v-6668e758]{display:flex;flex-direction:column;margin-top:16px;width:350px}@media only screen and (max-width: 1200px){.collection-cover__details[data-v-6668e758]{width:250px}}.collection-cover__details__title[data-v-6668e758]{display:flex}.collection-cover__details__subtitle[data-v-6668e758]{display:flex;color:var(--color-text-lighter)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/Collection/CollectionCover.vue\"],\"names\":[],\"mappings\":\"AAqFA,mCACC,YAAA,CACA,qBAAA,CACA,YAAA,CACA,wCAAA,CAEA,kFACC,uCAAA,CAGD,0CACC,WAAA,CACA,YAAA,CACA,eAAA,CACA,wCAAA,CAEA,2CAND,0CAOE,WAAA,CACA,YAAA,CAAA,CAGD,uDACC,qCAAA,CAEA,8EACC,UAAA,CACA,WAAA,CAEA,yGACC,yBAAA,CAMJ,4CACC,YAAA,CACA,qBAAA,CACA,eAAA,CACA,WAAA,CAEA,2CAND,4CAOE,WAAA,CAAA,CAGD,mDACC,YAAA,CAGD,sDACC,YAAA,CACA,+BAAA\",\"sourcesContent\":[\"$sizes: (\\\"400\\\": (\\\"count\\\": 3, \\\"marginTop\\\": 66, \\\"marginW\\\": 8), \\\"700\\\": (\\\"count\\\": 4, \\\"marginTop\\\": 66, \\\"marginW\\\": 8), \\\"1024\\\": (\\\"count\\\": 5, \\\"marginTop\\\": 66, \\\"marginW\\\": 44), \\\"1280\\\": (\\\"count\\\": 4, \\\"marginTop\\\": 66, \\\"marginW\\\": 44), \\\"1440\\\": (\\\"count\\\": 5, \\\"marginTop\\\": 88, \\\"marginW\\\": 66), \\\"1600\\\": (\\\"count\\\": 6, \\\"marginTop\\\": 88, \\\"marginW\\\": 66), \\\"2048\\\": (\\\"count\\\": 7, \\\"marginTop\\\": 88, \\\"marginW\\\": 66), \\\"2560\\\": (\\\"count\\\": 8, \\\"marginTop\\\": 88, \\\"marginW\\\": 88), \\\"3440\\\": (\\\"count\\\": 9, \\\"marginTop\\\": 88, \\\"marginW\\\": 88), \\\"max\\\": (\\\"count\\\": 10, \\\"marginTop\\\": 88, \\\"marginW\\\": 88));\\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\\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.collection-cover {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\tpadding: 16px;\\n\\tborder-radius: var(--border-radius-large);\\n\\n\\t&:hover, &:focus {\\n\\t\\tbackground: var(--color-background-dark);\\n\\t}\\n\\n\\t&__image {\\n\\t\\twidth: 350px;\\n\\t\\theight: 350px;\\n\\t\\tobject-fit: none;\\n\\t\\tborder-radius: var(--border-radius-large);\\n\\n\\t\\t@media only screen and (max-width: 1200px) {\\n\\t\\t\\twidth: 250px;\\n\\t\\t\\theight: 250px;\\n\\t\\t}\\n\\n\\t\\t&--placeholder {\\n\\t\\t\\tbackground: var(--color-primary-light);\\n\\n\\t\\t\\t::v-deep .material-design-icon {\\n\\t\\t\\t\\twidth: 100%;\\n\\t\\t\\t\\theight: 100%;\\n\\n\\t\\t\\t\\t.material-design-icon__svg {\\n\\t\\t\\t\\t\\tfill: var(--color-primary);\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&__details {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\tmargin-top: 16px;\\n\\t\\twidth: 350px;\\n\\n\\t\\t@media only screen and (max-width: 1200px) {\\n\\t\\t\\twidth: 250px;\\n\\t\\t}\\n\\n\\t\\t&__title {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t}\\n\\n\\t\\t&__subtitle {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\tcolor: var(--color-text-lighter);\\n\\t\\t}\\n\\t}\\n\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".collections[data-v-71e04184]{display:flex;flex-direction:column;height:100%}.collections__list[data-v-71e04184]{padding:32px 48px;flex-grow:1;display:flex;flex-wrap:wrap;gap:16px;align-items:flex-start;height:calc(100% - 60px);overflow-x:scroll}@media only screen and (max-width: 1200px){.collections__list[data-v-71e04184]{padding:32px 12px;justify-content:center}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/Collection/CollectionsList.vue\"],\"names\":[],\"mappings\":\"AAmFA,8BACC,YAAA,CACA,qBAAA,CACA,WAAA,CAEA,oCACC,iBAAA,CACA,WAAA,CACA,YAAA,CACA,cAAA,CACA,QAAA,CACA,sBAAA,CACA,wBAAA,CACA,iBAAA,CAEA,2CAVD,oCAWE,iBAAA,CACA,sBAAA,CAAA\",\"sourcesContent\":[\"$sizes: (\\\"400\\\": (\\\"count\\\": 3, \\\"marginTop\\\": 66, \\\"marginW\\\": 8), \\\"700\\\": (\\\"count\\\": 4, \\\"marginTop\\\": 66, \\\"marginW\\\": 8), \\\"1024\\\": (\\\"count\\\": 5, \\\"marginTop\\\": 66, \\\"marginW\\\": 44), \\\"1280\\\": (\\\"count\\\": 4, \\\"marginTop\\\": 66, \\\"marginW\\\": 44), \\\"1440\\\": (\\\"count\\\": 5, \\\"marginTop\\\": 88, \\\"marginW\\\": 66), \\\"1600\\\": (\\\"count\\\": 6, \\\"marginTop\\\": 88, \\\"marginW\\\": 66), \\\"2048\\\": (\\\"count\\\": 7, \\\"marginTop\\\": 88, \\\"marginW\\\": 66), \\\"2560\\\": (\\\"count\\\": 8, \\\"marginTop\\\": 88, \\\"marginW\\\": 88), \\\"3440\\\": (\\\"count\\\": 9, \\\"marginTop\\\": 88, \\\"marginW\\\": 88), \\\"max\\\": (\\\"count\\\": 10, \\\"marginTop\\\": 88, \\\"marginW\\\": 88));\\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\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n.collections {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\theight: 100%;\\n\\n\\t&__list {\\n\\t\\tpadding: 32px 48px;\\n\\t\\tflex-grow: 1;\\n\\t\\tdisplay: flex;\\n\\t\\tflex-wrap: wrap;\\n\\t\\tgap: 16px;\\n\\t\\talign-items: flex-start;\\n\\t\\theight: calc(100% - 60px);\\n\\t\\toverflow-x: scroll;\\n\\n\\t\\t@media only screen and (max-width: 1200px) {\\n\\t\\t\\tpadding: 32px 12px;\\n\\t\\t\\tjustify-content: center;\\n\\t\\t}\\n\\t}\\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, \".albums-list[data-v-2d5a57ea]{display:flex;flex-direction:column}.albums-list .album__name[data-v-2d5a57ea]{font-weight:normal;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/views/SharedAlbums.vue\"],\"names\":[],\"mappings\":\"AA8FA,8BACC,YAAA,CACA,qBAAA,CAEA,2CACC,kBAAA,CACA,eAAA,CACA,kBAAA,CACA,sBAAA\",\"sourcesContent\":[\"$sizes: (\\\"400\\\": (\\\"count\\\": 3, \\\"marginTop\\\": 66, \\\"marginW\\\": 8), \\\"700\\\": (\\\"count\\\": 4, \\\"marginTop\\\": 66, \\\"marginW\\\": 8), \\\"1024\\\": (\\\"count\\\": 5, \\\"marginTop\\\": 66, \\\"marginW\\\": 44), \\\"1280\\\": (\\\"count\\\": 4, \\\"marginTop\\\": 66, \\\"marginW\\\": 44), \\\"1440\\\": (\\\"count\\\": 5, \\\"marginTop\\\": 88, \\\"marginW\\\": 66), \\\"1600\\\": (\\\"count\\\": 6, \\\"marginTop\\\": 88, \\\"marginW\\\": 66), \\\"2048\\\": (\\\"count\\\": 7, \\\"marginTop\\\": 88, \\\"marginW\\\": 66), \\\"2560\\\": (\\\"count\\\": 8, \\\"marginTop\\\": 88, \\\"marginW\\\": 88), \\\"3440\\\": (\\\"count\\\": 9, \\\"marginTop\\\": 88, \\\"marginW\\\": 88), \\\"max\\\": (\\\"count\\\": 10, \\\"marginTop\\\": 88, \\\"marginW\\\": 88));\\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\\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.albums-list {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\n\\t.album__name {\\n\\t\\tfont-weight: normal;\\n\\t\\toverflow: hidden;\\n\\t\\twhite-space: nowrap;\\n\\t\\ttext-overflow: ellipsis;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"!title\"\n :aria-label=\"title\"\n class=\"material-design-icon alert-circle-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"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 <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\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</script>","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&\"","import { render, staticRenderFns } from \"./AlertCircle.vue?vue&type=template&id=2a2453f8&\"\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\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',_vm._b({staticClass:\"material-design-icon alert-circle-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"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\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"!title\"\n :aria-label=\"title\"\n class=\"material-design-icon folder-multiple-image-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M7,15L11.5,9L15,13.5L17.5,10.5L21,15M22,4H14L12,2H6A2,2 0 0,0 4,4V16A2,2 0 0,0 6,18H22A2,2 0 0,0 24,16V6A2,2 0 0,0 22,4M2,6H0V11H0V20A2,2 0 0,0 2,22H20V20H2V6Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"FolderMultipleImageIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./FolderMultipleImage.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./FolderMultipleImage.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FolderMultipleImage.vue?vue&type=template&id=497205fa&\"\nimport script from \"./FolderMultipleImage.vue?vue&type=script&lang=js&\"\nexport * from \"./FolderMultipleImage.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',_vm._b({staticClass:\"material-design-icon folder-multiple-image-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M7,15L11.5,9L15,13.5L17.5,10.5L21,15M22,4H14L12,2H6A2,2 0 0,0 4,4V16A2,2 0 0,0 6,18H22A2,2 0 0,0 24,16V6A2,2 0 0,0 22,4M2,6H0V11H0V20A2,2 0 0,0 2,22H20V20H2V6Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"!title\"\n :aria-label=\"title\"\n class=\"material-design-icon image-multiple-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"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 <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\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</script>","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&\"","import { render, staticRenderFns } from \"./ImageMultiple.vue?vue&type=template&id=21a95e74&\"\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\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',_vm._b({staticClass:\"material-design-icon image-multiple-icon\",attrs:{\"aria-hidden\":!_vm.title,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"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\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',[_c('router-link',{staticClass:\"collection-cover\",attrs:{\"to\":_vm.link}},[(_vm.coverUrl !== '')?_c('img',{staticClass:\"collection-cover__image\",attrs:{\"src\":_vm.coverUrl,\"alt\":_vm.altImg}}):_c('div',{staticClass:\"collection-cover__image collection-cover__image--placeholder\"},[_c('ImageMultiple',{attrs:{\"size\":128}})],1),_vm._v(\" \"),_c('div',{staticClass:\"collection-cover__details\"},[_c('div',{staticClass:\"collection-cover__details__title\"},[_vm._t(\"default\")],2),_vm._v(\" \"),_c('div',{staticClass:\"collection-cover__details__subtitle\"},[_vm._t(\"subtitle\")],2)])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\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 -->\n\n<template>\n\t<li>\n\t\t<router-link class=\"collection-cover\" :to=\"link\">\n\t\t\t<img v-if=\"coverUrl !== ''\"\n\t\t\t\tclass=\"collection-cover__image\"\n\t\t\t\t:src=\"coverUrl\"\n\t\t\t\t:alt=\"altImg\">\n\n\t\t\t<div v-else class=\"collection-cover__image collection-cover__image--placeholder\">\n\t\t\t\t<ImageMultiple :size=\"128\" />\n\t\t\t</div>\n\t\t\t<div class=\"collection-cover__details\">\n\t\t\t\t<div class=\"collection-cover__details__title\">\n\t\t\t\t\t<slot name=\"default\" />\n\t\t\t\t</div>\n\t\t\t\t<div class=\"collection-cover__details__subtitle\">\n\t\t\t\t\t<slot name=\"subtitle\" />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</router-link>\n\t</li>\n</template>\n\n<script>\n\nimport { mapGetters } from 'vuex'\n// import ShareVariant from 'vue-material-design-icons/ShareVariant'\n// import AccountMultiple from 'vue-material-design-icons/AccountMultiple'\nimport ImageMultiple from 'vue-material-design-icons/ImageMultiple'\n\nexport default {\n\tname: 'CollectionCover',\n\n\tcomponents: {\n\t\tImageMultiple,\n\t},\n\n\tprops: {\n\t\tcoverUrl: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\taltImg: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tlink: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\tcomputed: {\n\t\t...mapGetters([\n\t\t\t'files',\n\t\t\t'albums',\n\t\t]),\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.collection-cover {\n\tdisplay: flex;\n\tflex-direction: column;\n\tpadding: 16px;\n\tborder-radius: var(--border-radius-large);\n\n\t&:hover, &:focus {\n\t\tbackground: var(--color-background-dark);\n\t}\n\n\t&__image {\n\t\twidth: 350px;\n\t\theight: 350px;\n\t\tobject-fit: none;\n\t\tborder-radius: var(--border-radius-large);\n\n\t\t@media only screen and (max-width: 1200px) {\n\t\t\twidth: 250px;\n\t\t\theight: 250px;\n\t\t}\n\n\t\t&--placeholder {\n\t\t\tbackground: var(--color-primary-light);\n\n\t\t\t::v-deep .material-design-icon {\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\n\t\t\t\t.material-design-icon__svg {\n\t\t\t\t\tfill: var(--color-primary);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t&__details {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tmargin-top: 16px;\n\t\twidth: 350px;\n\n\t\t@media only screen and (max-width: 1200px) {\n\t\t\twidth: 250px;\n\t\t}\n\n\t\t&__title {\n\t\t\tdisplay: flex;\n\t\t}\n\n\t\t&__subtitle {\n\t\t\tdisplay: flex;\n\t\t\tcolor: var(--color-text-lighter);\n\t\t}\n\t}\n\n}\n</style>\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CollectionCover.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!./CollectionCover.vue?vue&type=script&lang=js&\"","\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!./CollectionCover.vue?vue&type=style&index=0&id=6668e758&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!./CollectionCover.vue?vue&type=style&index=0&id=6668e758&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./CollectionCover.vue?vue&type=template&id=6668e758&scoped=true&\"\nimport script from \"./CollectionCover.vue?vue&type=script&lang=js&\"\nexport * from \"./CollectionCover.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CollectionCover.vue?vue&type=style&index=0&id=6668e758&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 \"6668e758\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.error)?_c('NcEmptyContent',{attrs:{\"title\":_vm.t('photos', 'An error occurred')}},[_c('AlertCircle',{attrs:{\"slot\":\"icon\"},slot:\"icon\"})],1):_c('div',{staticClass:\"collections\"},[_vm._t(\"header\"),_vm._v(\" \"),(_vm.noCollection && !_vm.loading)?_vm._t(\"empty-collections-list\"):(!_vm.noCollection)?_c('ul',{staticClass:\"collections__list\"},[_vm._l((_vm.collections),function(collection){return _vm._t(\"default\",null,{\"collection\":collection})})],2):_vm._e()],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\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 -->\n<template>\n\t<!-- Errors handlers-->\n\t<NcEmptyContent v-if=\"error\" :title=\"t('photos', 'An error occurred') \">\n\t\t<AlertCircle slot=\"icon\" />\n\t</NcEmptyContent>\n\n\t<div v-else class=\"collections\">\n\t\t<!-- Collection header -->\n\t\t<slot name=\"header\" />\n\n\t\t<!-- No collections -->\n\t\t<slot v-if=\"noCollection && !loading\" name=\"empty-collections-list\" class=\"collections__empty\" />\n\n\t\t<!-- List -->\n\t\t<ul v-else-if=\"!noCollection\" class=\"collections__list\">\n\t\t\t<slot v-for=\"collection in collections\"\n\t\t\t\t:collection=\"collection\"\n\t\t\t\tclass=\"collection\" />\n\t\t</ul>\n\t</div>\n</template>\n\n<script>\nimport AlertCircle from 'vue-material-design-icons/AlertCircle'\n\nimport { NcEmptyContent } from '@nextcloud/vue'\n\nexport default {\n\tname: 'CollectionsList',\n\n\tcomponents: {\n\t\tAlertCircle,\n\t\tNcEmptyContent,\n\t},\n\n\tprops: {\n\t\tcollections: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t\tloading: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\terror: {\n\t\t\ttype: Error,\n\t\t\tdefault: null,\n\t\t},\n\t},\n\n\tcomputed: {\n\t\t/**\n\t\t * @return {boolean} Whether the list of collections is empty or not.\n\t\t */\n\t\tnoCollection() {\n\t\t\treturn Object.keys(this.collections).length === 0\n\t\t},\n\t},\n}\n</script>\n<style lang=\"scss\" scoped>\n.collections {\n\tdisplay: flex;\n\tflex-direction: column;\n\theight: 100%;\n\n\t&__list {\n\t\tpadding: 32px 48px;\n\t\tflex-grow: 1;\n\t\tdisplay: flex;\n\t\tflex-wrap: wrap;\n\t\tgap: 16px;\n\t\talign-items: flex-start;\n\t\theight: calc(100% - 60px);\n\t\toverflow-x: scroll;\n\n\t\t@media only screen and (max-width: 1200px) {\n\t\t\tpadding: 32px 12px;\n\t\t\tjustify-content: center;\n\t\t}\n\t}\n}\n</style>\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CollectionsList.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!./CollectionsList.vue?vue&type=script&lang=js&\"","\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!./CollectionsList.vue?vue&type=style&index=0&id=71e04184&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!./CollectionsList.vue?vue&type=style&index=0&id=71e04184&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./CollectionsList.vue?vue&type=template&id=71e04184&scoped=true&\"\nimport script from \"./CollectionsList.vue?vue&type=script&lang=js&\"\nexport * from \"./CollectionsList.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CollectionsList.vue?vue&type=style&index=0&id=71e04184&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 \"71e04184\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('CollectionsList',{staticClass:\"albums-list\",attrs:{\"collections\":_vm.sharedAlbums,\"loading\":_vm.loadingAlbums,\"error\":_vm.errorFetchingAlbums},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar collection = ref.collection;\nreturn _c('CollectionCover',{key:collection.basename,attrs:{\"link\":(\"/sharedalbums/\" + (collection.basename)),\"alt-img\":_vm.t('photos', 'Cover photo for shared album {albumName}.', { albumName: collection.basename }),\"cover-url\":_vm._f(\"coverUrl\")(collection.lastPhoto)}},[_c('h2',{staticClass:\"album__name\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(collection.basename)+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('div',{staticClass:\"album__details\",attrs:{\"slot\":\"subtitle\"},slot:\"subtitle\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(collection.date)+\" ⸱ \"+_vm._s(_vm.n('photos', '%n item', '%n photos and videos', collection.nbItems))+\"\\n\\t\\t\")])])}}])},[_c('HeaderNavigation',{key:\"navigation\",attrs:{\"slot\":\"header\",\"loading\":_vm.loadingAlbums,\"title\":_vm.t('photos', 'Shared albums'),\"root-title\":_vm.t('photos', 'Shared albums')},on:{\"refresh\":_vm.fetchAlbums},slot:\"header\"}),_vm._v(\" \"),_vm._v(\" \"),_c('NcEmptyContent',{attrs:{\"slot\":\"empty-collections-list\",\"title\":_vm.t('photos', 'There is no album yet!')},slot:\"empty-collections-list\"},[_c('FolderMultipleImage',{attrs:{\"slot\":\"icon\"},slot:\"icon\"})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\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 -->\n<template>\n\t<CollectionsList :collections=\"sharedAlbums\"\n\t\t:loading=\"loadingAlbums\"\n\t\t:error=\"errorFetchingAlbums\"\n\t\tclass=\"albums-list\">\n\t\t<HeaderNavigation key=\"navigation\"\n\t\t\tslot=\"header\"\n\t\t\t:loading=\"loadingAlbums\"\n\t\t\t:title=\"t('photos', 'Shared albums')\"\n\t\t\t:root-title=\"t('photos', 'Shared albums')\"\n\t\t\t@refresh=\"fetchAlbums\" />\n\n\t\t<CollectionCover :key=\"collection.basename\"\n\t\t\tslot-scope=\"{collection}\"\n\t\t\t:link=\"`/sharedalbums/${collection.basename}`\"\n\t\t\t:alt-img=\"t('photos', 'Cover photo for shared album {albumName}.', { albumName: collection.basename })\"\n\t\t\t:cover-url=\"collection.lastPhoto | coverUrl\">\n\t\t\t<h2 class=\"album__name\">\n\t\t\t\t{{ collection.basename }}\n\t\t\t</h2>\n\n\t\t\t<div slot=\"subtitle\" class=\"album__details\">\n\t\t\t\t{{ collection.date }} ⸱ {{ n('photos', '%n item', '%n photos and videos', collection.nbItems,) }}\n\t\t\t</div>\n\t\t</CollectionCover>\n\n\t\t<NcEmptyContent slot=\"empty-collections-list\" :title=\"t('photos', 'There is no album yet!')\">\n\t\t\t<FolderMultipleImage slot=\"icon\" />\n\t\t</NcEmptyContent>\n\t</CollectionsList>\n</template>\n\n<script>\nimport FolderMultipleImage from 'vue-material-design-icons/FolderMultipleImage'\n\nimport { generateUrl } from '@nextcloud/router'\nimport { NcEmptyContent } from '@nextcloud/vue'\n\nimport FetchSharedAlbumsMixin from '../mixins/FetchSharedAlbumsMixin.js'\nimport CollectionsList from '../components/Collection/CollectionsList.vue'\nimport CollectionCover from '../components/Collection/CollectionCover.vue'\nimport HeaderNavigation from '../components/HeaderNavigation.vue'\n\nexport default {\n\tname: 'SharedAlbums',\n\tcomponents: {\n\t\tFolderMultipleImage,\n\t\tNcEmptyContent,\n\t\tCollectionsList,\n\t\tCollectionCover,\n\t\tHeaderNavigation,\n\t},\n\n\tfilters: {\n\t\t/**\n\t\t * @param {string} lastPhoto The album's last photos.\n\t\t */\n\t\tcoverUrl(lastPhoto) {\n\t\t\tif (lastPhoto === -1) {\n\t\t\t\treturn ''\n\t\t\t}\n\n\t\t\treturn generateUrl(`/apps/photos/api/v1/preview/${lastPhoto}?x=${512}&y=${512}`)\n\t\t},\n\t},\n\n\tmixins: [\n\t\tFetchSharedAlbumsMixin,\n\t],\n}\n</script>\n<style lang=\"scss\" scoped>\n.albums-list {\n\tdisplay: flex;\n\tflex-direction: column;\n\n\t.album__name {\n\t\tfont-weight: normal;\n\t\toverflow: hidden;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t}\n}\n</style>\n","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&\"","\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=2d5a57ea&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=2d5a57ea&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./SharedAlbums.vue?vue&type=template&id=2d5a57ea&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=2d5a57ea&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 \"2d5a57ea\",\n null\n \n)\n\nexport default component.exports"],"names":["name","data","abortController","AbortController","beforeDestroy","this","abort","beforeRouteLeave","from","to","next","errorFetchingAlbums","loadingAlbums","mixins","AbortControllerMixin","beforeMount","fetchAlbums","computed","mapGetters","methods","mapActions","getCurrentUser","uid","signal","albums","addSharedAlbums","response","status","___CSS_LOADER_EXPORT___","push","module","id","emits","props","title","type","String","fillColor","default","size","Number","_vm","_h","$createElement","_c","_self","_b","staticClass","attrs","on","$event","$emit","$attrs","_v","_s","_e","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","link","coverUrl","altImg","_t","t","slot","noCollection","loading","_l","collection","sharedAlbums","scopedSlots","_u","key","fn","ref","basename","albumName","_f","lastPhoto","date","n","nbItems"],"sourceRoot":""} \ No newline at end of file