photos/js/photos-src_views_AlbumConte...

1 line
81 KiB
Plaintext

{"version":3,"file":"photos-src_views_AlbumContent_vue.js?v=29ae2068957e6809ed69","mappings":"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","sources":["webpack:///photos/src/mixins/FilesByMonthMixin.js","webpack:///photos/src/components/FilesPicker.vue?vue&type=style&index=0&id=de65aff0&lang=scss&scoped=true&","webpack:///photos/src/views/AlbumContent.vue?vue&type=style&index=0&id=afb02eaa&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=5938211a&","webpack:///photos/node_modules/vue-material-design-icons/Delete.vue","webpack:///photos/node_modules/vue-material-design-icons/Delete.vue?vue&type=script&lang=js&","webpack://photos/./node_modules/vue-material-design-icons/Delete.vue?92e1","webpack:///photos/node_modules/vue-material-design-icons/Delete.vue?vue&type=template&id=238388be&","webpack:///photos/src/views/AlbumContent.vue?vue&type=template&id=afb02eaa&scoped=true&","webpack:///photos/node_modules/vue-material-design-icons/ImagePlus.vue","webpack:///photos/node_modules/vue-material-design-icons/ImagePlus.vue?vue&type=script&lang=js&","webpack://photos/./node_modules/vue-material-design-icons/ImagePlus.vue?8b12","webpack:///photos/node_modules/vue-material-design-icons/ImagePlus.vue?vue&type=template&id=76d14cff&","webpack:///photos/node_modules/vue-material-design-icons/DownloadMultiple.vue","webpack:///photos/node_modules/vue-material-design-icons/DownloadMultiple.vue?vue&type=script&lang=js&","webpack://photos/./node_modules/vue-material-design-icons/DownloadMultiple.vue?2e77","webpack:///photos/node_modules/vue-material-design-icons/DownloadMultiple.vue?vue&type=template&id=35229f50&","webpack:///photos/node_modules/vue-material-design-icons/Upload.vue","webpack:///photos/node_modules/vue-material-design-icons/Upload.vue?vue&type=script&lang=js&","webpack://photos/./node_modules/vue-material-design-icons/Upload.vue?19d8","webpack:///photos/node_modules/vue-material-design-icons/Upload.vue?vue&type=template&id=d33e6f3a&","webpack:///photos/src/components/FilesPicker.vue","webpack:///photos/src/components/FilesPicker.vue?vue&type=script&lang=js&","webpack://photos/./src/components/FilesPicker.vue?d5fd","webpack://photos/./src/components/FilesPicker.vue?2782","webpack:///photos/src/components/FilesPicker.vue?vue&type=template&id=de65aff0&scoped=true&","webpack:///photos/src/components/ShareAlbumForm.vue","webpack:///photos/src/components/ShareAlbumForm.vue?vue&type=script&lang=js&","webpack://photos/./src/components/ShareAlbumForm.vue?5842","webpack:///photos/src/components/ShareAlbumForm.vue?vue&type=template&id=fa7a3006&","webpack:///photos/src/views/AlbumContent.vue","webpack:///photos/src/views/AlbumContent.vue?vue&type=script&lang=js&","webpack://photos/./src/views/AlbumContent.vue?0b84","webpack://photos/./src/views/AlbumContent.vue?df0e"],"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: 'FilesByMonthMixin',\n\n\tcomputed: {\n\t\t/**\n\t\t * @return {object<String, []>}\n\t\t */\n\t\tfileIdsByMonth() {\n\t\t\tconst filesByMonth = {}\n\t\t\tfor (const fileId of this.fetchedFileIds) {\n\t\t\t\tconst file = this.files[fileId]\n\t\t\t\tfilesByMonth[file.month] = filesByMonth[file.month] ?? []\n\t\t\t\tfilesByMonth[file.month].push(file.fileid)\n\t\t\t}\n\n\t\t\t// Sort files in sections.\n\t\t\tObject.keys(filesByMonth)\n\t\t\t\t.forEach(month => filesByMonth[month].sort(this.sortFilesByTimestamp))\n\n\t\t\treturn filesByMonth\n\t\t},\n\n\t\t/**\n\t\t * @return {string[]}\n\t\t */\n\t\tmonthsList() {\n\t\t\treturn Object\n\t\t\t\t.keys(this.fileIdsByMonth)\n\t\t\t\t.sort((month1, month2) => month1 > month2 ? -1 : 1)\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, \".file-picker[data-v-de65aff0]{display:flex;flex-direction:column;padding:12px}.file-picker__content[data-v-de65aff0]{display:flex;align-items:flex-start;flex-grow:1;height:500px}.file-picker__navigation[data-v-de65aff0]{flex-basis:200px;overflow:scroll;margin-right:8px;padding-right:8px;height:100%}@media only screen and (max-width: 1200px){.file-picker__navigation[data-v-de65aff0]{flex-basis:80px}}.file-picker__navigation--loading[data-v-de65aff0]{background:var(--color-primary-light);border-radius:16px}.file-picker__navigation__month[data-v-de65aff0]{font-weight:bold;font-size:16px;border-radius:48px;padding:8px 16px;margin:4px 0;cursor:pointer}@media only screen and (max-width: 1200px){.file-picker__navigation__month[data-v-de65aff0]{text-align:center}}.file-picker__navigation__month[data-v-de65aff0]:hover{background:var(--color-background-dark)}.file-picker__navigation__month.selected[data-v-de65aff0]{background:var(--color-primary-element-lighter)}.file-picker__file-list[data-v-de65aff0]{flex-grow:1;min-width:0;height:100%}.file-picker__file-list--loading[data-v-de65aff0]{background:var(--color-primary-light);border-radius:16px}.file-picker__file-list .section-header[data-v-de65aff0]{font-weight:bold;font-size:20px;padding:8px 0 4px 0}.file-picker__actions[data-v-de65aff0]{display:flex;justify-content:space-between;justify-items:center;padding-top:16px}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/components/FilesPicker.vue\"],\"names\":[],\"mappings\":\"AA+KA,8BACC,YAAA,CACA,qBAAA,CACA,YAAA,CAEA,uCACC,YAAA,CACA,sBAAA,CACA,WAAA,CACA,YAAA,CAGD,0CACC,gBAAA,CACA,eAAA,CACA,gBAAA,CACA,iBAAA,CACA,WAAA,CAEA,2CAPD,0CAQE,eAAA,CAAA,CAGD,mDACC,qCAAA,CACA,kBAAA,CAGD,iDACC,gBAAA,CACA,cAAA,CACA,kBAAA,CACA,gBAAA,CACA,YAAA,CACA,cAAA,CAEA,2CARD,iDASE,iBAAA,CAAA,CAGD,uDACC,uCAAA,CAGD,0DACC,+CAAA,CAKH,yCACC,WAAA,CACA,WAAA,CACA,WAAA,CAEA,kDACC,qCAAA,CACA,kBAAA,CAGD,yDACC,gBAAA,CACA,cAAA,CACA,mBAAA,CAIF,uCACC,YAAA,CACA,6BAAA,CACA,oBAAA,CACA,gBAAA\",\"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\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n.file-picker {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\tpadding: 12px;\\n\\n\\t&__content {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: flex-start;\\n\\t\\tflex-grow: 1;\\n\\t\\theight: 500px;\\n\\t}\\n\\n\\t&__navigation {\\n\\t\\tflex-basis: 200px;\\n\\t\\toverflow: scroll;\\n\\t\\tmargin-right: 8px;\\n\\t\\tpadding-right: 8px;\\n\\t\\theight: 100%;\\n\\n\\t\\t@media only screen and (max-width: 1200px) {\\n\\t\\t\\tflex-basis: 80px;\\n\\t\\t}\\n\\n\\t\\t&--loading {\\n\\t\\t\\tbackground: var(--color-primary-light);\\n\\t\\t\\tborder-radius: 16px;\\n\\t\\t}\\n\\n\\t\\t&__month {\\n\\t\\t\\tfont-weight: bold;\\n\\t\\t\\tfont-size: 16px;\\n\\t\\t\\tborder-radius: 48px;\\n\\t\\t\\tpadding: 8px 16px;\\n\\t\\t\\tmargin: 4px 0;\\n\\t\\t\\tcursor: pointer;\\n\\n\\t\\t\\t@media only screen and (max-width: 1200px) {\\n\\t\\t\\t\\ttext-align: center;\\n\\t\\t\\t}\\n\\n\\t\\t\\t&:hover {\\n\\t\\t\\t\\tbackground: var(--color-background-dark);\\n\\t\\t\\t}\\n\\n\\t\\t\\t&.selected {\\n\\t\\t\\t\\tbackground: var(--color-primary-element-lighter);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&__file-list {\\n\\t\\tflex-grow: 1;\\n\\t\\tmin-width: 0;\\n\\t\\theight: 100%;\\n\\n\\t\\t&--loading {\\n\\t\\t\\tbackground: var(--color-primary-light);\\n\\t\\t\\tborder-radius: 16px;\\n\\t\\t}\\n\\n\\t\\t.section-header {\\n\\t\\t\\tfont-weight: bold;\\n\\t\\t\\tfont-size: 20px;\\n\\t\\t\\tpadding: 8px 0 4px 0;\\n\\t\\t}\\n\\t}\\n\\n\\t&__actions {\\n\\t\\tdisplay: flex;\\n\\t\\tjustify-content: space-between;\\n\\t\\tjustify-items: center;\\n\\t\\tpadding-top: 16px;\\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, \".album[data-v-afb02eaa]{display:flex;flex-direction:column}.album__empty[data-v-afb02eaa]{display:flex;flex-direction:column;align-items:center}.album__empty__button[data-v-afb02eaa]{margin-top:32px}.album__location[data-v-afb02eaa]{margin-left:-4px;display:flex;color:var(--color-text-lighter)}.album__name[data-v-afb02eaa]{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.album__header[data-v-afb02eaa]{display:flex;min-height:60px;align-items:center;justify-content:space-between;position:-webkit-sticky;position:sticky;top:var(--header-height);z-index:3;background:var(--color-main-background);padding:8px 64px 32px 64px}@media only screen and (max-width: 1200px){.album__header[data-v-afb02eaa]{padding:8px 48px 32px 48px}}.album__header__left[data-v-afb02eaa]{height:100%;display:flex;align-items:center;min-width:0}.album__header__title[data-v-afb02eaa]{min-width:0}.album__header__loader[data-v-afb02eaa]{margin-left:32px}.album__header__loader[data-v-afb02eaa]{margin-left:32px}.album__header__actions[data-v-afb02eaa]{display:flex;align-items:center}.album__header__actions button[data-v-afb02eaa]{margin-left:16px}.album__photos[data-v-afb02eaa]{height:100%;min-height:0;padding:0 64px}@media only screen and (max-width: 1200px){.album__photos[data-v-afb02eaa]{padding:0 4px}}.empty-content-with-illustration[data-v-afb02eaa] .empty-content__icon{width:200px;height:200px}.empty-content-with-illustration[data-v-afb02eaa] .empty-content__icon svg{width:200px;height:200px}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/views/AlbumContent.vue\"],\"names\":[],\"mappings\":\"AAmdA,wBACC,YAAA,CACA,qBAAA,CAEA,+BACC,YAAA,CACA,qBAAA,CACA,kBAAA,CAEA,uCACC,eAAA,CAKF,kCACC,gBAAA,CACA,YAAA,CACA,+BAAA,CAGD,8BACC,eAAA,CACA,kBAAA,CACA,sBAAA,CAGD,gCACC,YAAA,CACA,eAAA,CACA,kBAAA,CACA,6BAAA,CACA,uBAAA,CAAA,eAAA,CACA,wBAAA,CACA,SAAA,CACA,uCAAA,CACA,0BAAA,CAEA,2CAXD,gCAYE,0BAAA,CAAA,CAGD,sCACC,WAAA,CACA,YAAA,CACA,kBAAA,CACA,WAAA,CAGD,uCACC,WAAA,CAGD,wCACC,gBAAA,CAGD,wCACC,gBAAA,CAGD,yCACC,YAAA,CACA,kBAAA,CAEA,gDACC,gBAAA,CAKH,gCACC,WAAA,CACA,YAAA,CACA,cAAA,CAEA,2CALD,gCAME,aAAA,CAAA,CAMH,wEACC,WAAA,CACA,YAAA,CAEA,4EACC,WAAA,CACA,YAAA\",\"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\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n.album {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\n\\t&__empty {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-direction: column;\\n\\t\\talign-items: center;\\n\\n\\t\\t&__button {\\n\\t\\t\\tmargin-top: 32px;\\n\\t\\t}\\n\\n\\t}\\n\\n\\t&__location {\\n\\t\\tmargin-left: -4px;\\n\\t\\tdisplay: flex;\\n\\t\\tcolor: var(--color-text-lighter);\\n\\t}\\n\\n\\t&__name {\\n\\t\\toverflow: hidden;\\n\\t\\twhite-space: nowrap;\\n\\t\\ttext-overflow: ellipsis;\\n\\t}\\n\\n\\t&__header {\\n\\t\\tdisplay: flex;\\n\\t\\tmin-height: 60px;\\n\\t\\talign-items: center;\\n\\t\\tjustify-content: space-between;\\n\\t\\tposition: sticky;\\n\\t\\ttop: var(--header-height);\\n\\t\\tz-index: 3;\\n\\t\\tbackground: var(--color-main-background);\\n\\t\\tpadding: 8px 64px 32px 64px;\\n\\n\\t\\t@media only screen and (max-width: 1200px) {\\n\\t\\t\\tpadding: 8px 48px 32px 48px;\\n\\t\\t}\\n\\n\\t\\t&__left {\\n\\t\\t\\theight: 100%;\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tmin-width: 0;\\n\\t\\t}\\n\\n\\t\\t&__title {\\n\\t\\t\\tmin-width: 0;\\n\\t\\t}\\n\\n\\t\\t&__loader {\\n\\t\\t\\tmargin-left: 32px;\\n\\t\\t}\\n\\n\\t\\t&__loader {\\n\\t\\t\\tmargin-left: 32px;\\n\\t\\t}\\n\\n\\t\\t&__actions {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\n\\n\\t\\t\\tbutton {\\n\\t\\t\\t\\tmargin-left: 16px;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&__photos {\\n\\t\\theight: 100%;\\n\\t\\tmin-height: 0; // Prevent it from overflowing in a flex context.\\n\\t\\tpadding: 0 64px;\\n\\n\\t\\t@media only screen and (max-width: 1200px) {\\n\\t\\t\\tpadding: 0 4px;\\n\\t\\t}\\n\\n\\t}\\n}\\n\\n.empty-content-with-illustration ::v-deep .empty-content__icon {\\n\\twidth: 200px;\\n\\theight: 200px;\\n\\n\\tsvg {\\n\\t\\twidth: 200px;\\n\\t\\theight: 200px;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","<template>\n <span :aria-hidden=\"!title\"\n :aria-label=\"title\"\n class=\"material-design-icon alert-circle-icon\"\n role=\"img\"\n v-bind=\"$attrs\"\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 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=5938211a&\"\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 :aria-hidden=\"!title\"\n :aria-label=\"title\"\n class=\"material-design-icon delete-icon\"\n role=\"img\"\n v-bind=\"$attrs\"\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=\"M19,4H15.5L14.5,3H9.5L8.5,4H5V6H19M6,19A2,2 0 0,0 8,21H16A2,2 0 0,0 18,19V7H6V19Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"DeleteIcon\",\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!./Delete.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Delete.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Delete.vue?vue&type=template&id=238388be&\"\nimport script from \"./Delete.vue?vue&type=script&lang=js&\"\nexport * from \"./Delete.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 delete-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\":\"M19,4H15.5L14.5,3H9.5L8.5,4H5V6H19M6,19A2,2 0 0,0 8,21H16A2,2 0 0,0 18,19V7H6V19Z\"}},[(_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 (_vm.album === undefined && !_vm.loadingAlbums)?_c('EmptyContent',{staticClass:\"empty-content-with-illustration\",scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('span',{staticClass:\"empty-content-illustration\",domProps:{\"innerHTML\":_vm._s(_vm.FolderIllustration)}})]},proxy:true}],null,false,3945105199)},[_vm._v(\"\\n\\t\"+_vm._s(_vm.t('photos', 'This album does not exist'))+\"\\n\")]):(_vm.errorFetchingFiles || _vm.errorFetchingAlbums)?_c('EmptyContent',{scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('AlertCircle')]},proxy:true}])},[_vm._v(\"\\n\\t\"+_vm._s(_vm.t('photos', 'An error occurred'))+\"\\n\")]):_c('div',{staticClass:\"album\"},[_c('div',{staticClass:\"album__header\"},[_c('div',{staticClass:\"album__header__left\"},[_c('div',{staticClass:\"album__header__title\"},[(_vm.album !== undefined)?_c('h2',{staticClass:\"album__name\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.album.basename)+\"\\n\\t\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.album !== undefined && _vm.album.location !== '')?_c('div',{staticClass:\"album__location\"},[_c('MapMarker'),_vm._v(_vm._s(_vm.album.location)+\"\\n\\t\\t\\t\\t\")],1):_vm._e()]),_vm._v(\" \"),(_vm.loadingCount > 0)?_c('Loader',{staticClass:\"album__header__loader\"}):_vm._e()],1),_vm._v(\" \"),(_vm.album !== undefined)?_c('div',{staticClass:\"album__header__actions\"},[(_vm.album.nbItems !== 0)?_c('Button',{attrs:{\"type\":\"tertiary\",\"aria-label\":_vm.t('photos', 'Add photos to this album')},on:{\"click\":function($event){_vm.showAddPhotosModal = true}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Plus')]},proxy:true}],null,false,1489515321)}):_vm._e(),_vm._v(\" \"),_c('Actions',{attrs:{\"force-menu\":true}},[_c('ActionButton',{attrs:{\"close-after-click\":true,\"aria-label\":_vm.t('photos', 'Edit album\\'s details')},on:{\"click\":function($event){_vm.showEditAlbumForm = true}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('photos', 'Edit album\\'s details'))+\"\\n\\t\\t\\t\\t\\t\"),_c('Pencil',{attrs:{\"slot\":\"icon\"},slot:\"icon\"})],1),_vm._v(\" \"),(_vm.albumFileIds.length > 0)?_c('ActionButton',{attrs:{\"close-after-click\":true,\"aria-label\":_vm.t('photos', 'Download all files in album')},on:{\"click\":_vm.downloadAllFiles}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('photos', 'Download all files in album'))+\"\\n\\t\\t\\t\\t\\t\"),_c('DownloadMultiple',{attrs:{\"slot\":\"icon\"},slot:\"icon\"})],1):_vm._e(),_vm._v(\" \"),(_vm.selectedFileIds.length > 0)?[_c('ActionButton',{attrs:{\"close-after-click\":true,\"aria-label\":_vm.t('photos', 'Download selection')},on:{\"click\":_vm.downloadSelection}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('photos', 'Download selected files'))+\"\\n\\t\\t\\t\\t\\t\\t\"),_c('Download',{attrs:{\"slot\":\"icon\"},slot:\"icon\"})],1),_vm._v(\" \"),(_vm.shouldFavoriteSelection)?_c('ActionButton',{attrs:{\"close-after-click\":true,\"aria-label\":_vm.t('photos', 'Mark selection as favorite')},on:{\"click\":_vm.favoriteSelection}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('photos', 'Favorite'))+\"\\n\\t\\t\\t\\t\\t\\t\"),_c('Star',{attrs:{\"slot\":\"icon\"},slot:\"icon\"})],1):_c('ActionButton',{attrs:{\"close-after-click\":true,\"aria-label\":_vm.t('photos', 'Remove selection from favorites')},on:{\"click\":_vm.unFavoriteSelection}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('photos', 'Remove from favorites'))+\"\\n\\t\\t\\t\\t\\t\\t\"),_c('Star',{attrs:{\"slot\":\"icon\"},slot:\"icon\"})],1),_vm._v(\" \"),_c('ActionButton',{attrs:{\"close-after-click\":true},on:{\"click\":function($event){return _vm.handleRemoveFilesFromAlbum(_vm.selectedFileIds)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Close')]},proxy:true}],null,false,1051939733)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.n('photos', 'Remove item from album', 'Remove selection from album', _vm.selection.length))+\"\\n\\t\\t\\t\\t\\t\\t\")])]:_vm._e(),_vm._v(\" \"),_c('ActionButton',{attrs:{\"close-after-click\":true},on:{\"click\":_vm.handleDeleteAlbum}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('photos', 'Delete album'))+\"\\n\\t\\t\\t\\t\\t\"),_c('Delete',{attrs:{\"slot\":\"icon\"},slot:\"icon\"})],1)],2)],1):_vm._e()]),_vm._v(\" \"),(_vm.album !== undefined && _vm.album.nbItems === 0 && !(_vm.loadingFiles || _vm.loadingAlbums))?_c('div',{staticClass:\"album__empty\"},[_c('EmptyContent',{scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('ImagePlus')]},proxy:true},{key:\"desc\",fn:function(){return [_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('photos', \"This album doesn't have any photos or videos yet!\"))+\"\\n\\t\\t\\t\")]},proxy:true}],null,false,589841004)}),_vm._v(\" \"),_c('Button',{staticClass:\"album__empty__button\",attrs:{\"type\":\"primary\",\"aria-label\":_vm.t('photos', 'Add photos to this album')},on:{\"click\":function($event){_vm.showAddPhotosModal = true}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Plus')]},proxy:true}],null,false,1489515321)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('photos', \"Add\"))+\"\\n\\t\\t\")])],1):_vm._e(),_vm._v(\" \"),(_vm.album !== undefined)?_c('FilesListViewer',{staticClass:\"album__photos\",attrs:{\"use-window\":true,\"file-ids\":_vm.albumFileIds,\"base-height\":_vm.isMobile ? 120 : 200,\"loading\":_vm.loadingFiles || _vm.loadingAlbums},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar file = ref.file;\nvar visibility = ref.visibility;\nreturn _c('File',{attrs:{\"file\":_vm.files[file.id],\"allow-selection\":true,\"selected\":_vm.selection[file.id] === true,\"visibility\":visibility,\"semaphore\":_vm.semaphore},on:{\"click\":_vm.openViewer,\"select-toggled\":_vm.onFileSelectToggle}})}}],null,false,3592900521)}):_vm._e(),_vm._v(\" \"),(_vm.showAddPhotosModal)?_c('Modal',{attrs:{\"size\":\"large\",\"title\":_vm.t('photos', 'Add photos to the album')},on:{\"close\":function($event){_vm.showAddPhotosModal = false}}},[_c('FilesPicker',{attrs:{\"destination\":_vm.album.basename,\"blacklist-ids\":_vm.albumFileIds,\"loading\":_vm.loadingAddFilesToAlbum},on:{\"files-picked\":_vm.handleFilesPicked}})],1):(_vm.showShareModal)?_c('Modal',{attrs:{\"title\":_vm.t('photos', 'Share the album')},on:{\"close\":function($event){_vm.showShareModal = false}}},[_c('ShareAlbumForm',{on:{\"albumShared\":function($event){_vm.showShareModal = false}}})],1):_vm._e(),_vm._v(\" \"),(_vm.showEditAlbumForm)?_c('Modal',{attrs:{\"title\":_vm.t('photos', 'Edit album\\'s details')},on:{\"close\":function($event){_vm.showEditAlbumForm = false}}},[_c('AlbumForm',{attrs:{\"album\":_vm.album},on:{\"done\":_vm.redirectToNewName}})],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <span :aria-hidden=\"!title\"\n :aria-label=\"title\"\n class=\"material-design-icon image-plus-icon\"\n role=\"img\"\n v-bind=\"$attrs\"\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=\"M5,3A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H14.09C14.03,20.67 14,20.34 14,20C14,19.32 14.12,18.64 14.35,18H5L8.5,13.5L11,16.5L14.5,12L16.73,14.97C17.7,14.34 18.84,14 20,14C20.34,14 20.67,14.03 21,14.09V5C21,3.89 20.1,3 19,3H5M19,16V19H16V21H19V24H21V21H24V19H21V16H19Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"ImagePlusIcon\",\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!./ImagePlus.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ImagePlus.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ImagePlus.vue?vue&type=template&id=76d14cff&\"\nimport script from \"./ImagePlus.vue?vue&type=script&lang=js&\"\nexport * from \"./ImagePlus.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-plus-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\":\"M5,3A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H14.09C14.03,20.67 14,20.34 14,20C14,19.32 14.12,18.64 14.35,18H5L8.5,13.5L11,16.5L14.5,12L16.73,14.97C17.7,14.34 18.84,14 20,14C20.34,14 20.67,14.03 21,14.09V5C21,3.89 20.1,3 19,3H5M19,16V19H16V21H19V24H21V21H24V19H21V16H19Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <span :aria-hidden=\"!title\"\n :aria-label=\"title\"\n class=\"material-design-icon download-multiple-icon\"\n role=\"img\"\n v-bind=\"$attrs\"\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=\"M9,1V7H5L12,14L19,7H15V1H9M5,16V18H19V16H5M5,20V22H19V20H5Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"DownloadMultipleIcon\",\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!./DownloadMultiple.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./DownloadMultiple.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./DownloadMultiple.vue?vue&type=template&id=35229f50&\"\nimport script from \"./DownloadMultiple.vue?vue&type=script&lang=js&\"\nexport * from \"./DownloadMultiple.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 download-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\":\"M9,1V7H5L12,14L19,7H15V1H9M5,16V18H19V16H5M5,20V22H19V20H5Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <span :aria-hidden=\"!title\"\n :aria-label=\"title\"\n class=\"material-design-icon upload-icon\"\n role=\"img\"\n v-bind=\"$attrs\"\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=\"M9,16V10H5L12,3L19,10H15V16H9M5,20V18H19V20H5Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"UploadIcon\",\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!./Upload.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Upload.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Upload.vue?vue&type=template&id=d33e6f3a&\"\nimport script from \"./Upload.vue?vue&type=script&lang=js&\"\nexport * from \"./Upload.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 upload-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\":\"M9,16V10H5L12,3L19,10H15V16H9M5,20V18H19V20H5Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])}\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<div class=\"file-picker\">\n\t\t<div class=\"file-picker__content\">\n\t\t\t<div class=\"file-picker__navigation\"\n\t\t\t\t:class=\"{'file-picker__navigation--loading': loadingFiles && monthsList.length === 0}\">\n\t\t\t\t<div v-for=\"month in monthsList\"\n\t\t\t\t\t:key=\"month\"\n\t\t\t\t\tclass=\"file-picker__navigation__month\"\n\t\t\t\t\t:class=\"{selected: targetMonth === month}\"\n\t\t\t\t\t@click=\"targetMonth = month\">\n\t\t\t\t\t{{ month | dateMonthAndYear }}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<FilesListViewer class=\"file-picker__file-list\"\n\t\t\t\t:class=\"{'file-picker__file-list--loading': loadingFiles && monthsList.length === 0}\"\n\t\t\t\t:file-ids-by-section=\"fileIdsByMonth\"\n\t\t\t\t:sections=\"monthsList\"\n\t\t\t\t:loading=\"loadingFiles\"\n\t\t\t\t:base-height=\"100\"\n\t\t\t\t:section-header-height=\"50\"\n\t\t\t\t:scroll-to-section=\"targetMonth\"\n\t\t\t\t@need-content=\"getFiles\">\n\t\t\t\t<template slot-scope=\"{file, height, visibility}\">\n\t\t\t\t\t<h3 v-if=\"file.sectionHeader\"\n\t\t\t\t\t\t:id=\"`file-picker-section-header-${file.id}`\"\n\t\t\t\t\t\t:style=\"{ height: `${height}px`}\"\n\t\t\t\t\t\tclass=\"section-header\">\n\t\t\t\t\t\t{{ file.id | dateMonthAndYear }}\n\t\t\t\t\t</h3>\n\t\t\t\t\t<File v-else\n\t\t\t\t\t\t:file=\"files[file.id]\"\n\t\t\t\t\t\t:allow-selection=\"true\"\n\t\t\t\t\t\t:selected=\"selection[file.id] === true\"\n\t\t\t\t\t\t:visibility=\"visibility\"\n\t\t\t\t\t\t:semaphore=\"semaphore\"\n\t\t\t\t\t\t@select-toggled=\"onFileSelectToggle\" />\n\t\t\t\t</template>\n\t\t\t</FilesListViewer>\n\t\t</div>\n\t\t<div class=\"file-picker__actions\">\n\t\t\t<!-- TODO: Implement upload -->\n\t\t\t<Button type=\"tertiary\" :disabled=\"loading\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Upload />\n\t\t\t\t</template>\n\t\t\t\t{{ t('photos', 'Upload from computer') }}\n\t\t\t</Button>\n\t\t\t<Button type=\"primary\" :disabled=\"loading || selectedFileIds.length === 0\" @click=\"emitPickedEvent\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<ImagePlus v-if=\"!loading\" />\n\t\t\t\t\t<Loader v-if=\"loading\" />\n\t\t\t\t</template>\n\t\t\t\t{{ t('photos', 'Add to {destination}', { destination }) }}\n\t\t\t</Button>\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nimport { mapGetters } from 'vuex'\n\nimport ImagePlus from 'vue-material-design-icons/ImagePlus'\nimport Upload from 'vue-material-design-icons/Upload'\nimport moment from '@nextcloud/moment'\nimport { Button } from '@nextcloud/vue'\n\nimport FetchFilesMixin from '../mixins/FetchFilesMixin.js'\nimport FilesSelectionMixin from '../mixins/FilesSelectionMixin.js'\nimport FilesListViewer from './FilesListViewer.vue'\nimport Loader from './Loader.vue'\nimport File from './File.vue'\nimport FilesByMonthMixin from '../mixins/FilesByMonthMixin.js'\n\nexport default {\n\tname: 'FilesPicker',\n\n\tcomponents: {\n\t\tImagePlus,\n\t\tUpload,\n\t\tButton,\n\t\tFilesListViewer,\n\t\tFile,\n\t\tLoader,\n\t},\n\n\tfilters: {\n\t\t/**\n\t\t * @param {string} date - In the following format: YYYYMM\n\t\t */\n\t\tdateMonthAndYear(date) {\n\t\t\treturn moment(date, 'YYYYMM').format('MMMM YYYY')\n\t\t},\n\t},\n\n\tmixins: [\n\t\tFetchFilesMixin,\n\t\tFilesByMonthMixin,\n\t\tFilesSelectionMixin,\n\t],\n\n\tprops: {\n\t\t// Label to show in the submit button.\n\t\tdestination: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\n\t\t// List of file ids to not show.\n\t\tblacklistIds: {\n\t\t\ttype: Array,\n\t\t\tdefault: () => [],\n\t\t},\n\n\t\t// Whether we should disable the submit button and show a spinner.\n\t\tloading: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\ttargetMonth: null,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\t...mapGetters([\n\t\t\t'files',\n\t\t]),\n\t},\n\n\twatch: {\n\t\tmonthsList(value) {\n\t\t\tif (this.targetMonth === null) {\n\t\t\t\tthis.targetMonth = value[0]\n\t\t\t}\n\t\t},\n\t},\n\n\tmethods: {\n\t\tgetFiles() {\n\t\t\tthis.fetchFiles('', {}, this.blacklistIds)\n\t\t},\n\n\t\temitPickedEvent() {\n\t\t\tthis.$emit('files-picked', this.selectedFileIds)\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.file-picker {\n\tdisplay: flex;\n\tflex-direction: column;\n\tpadding: 12px;\n\n\t&__content {\n\t\tdisplay: flex;\n\t\talign-items: flex-start;\n\t\tflex-grow: 1;\n\t\theight: 500px;\n\t}\n\n\t&__navigation {\n\t\tflex-basis: 200px;\n\t\toverflow: scroll;\n\t\tmargin-right: 8px;\n\t\tpadding-right: 8px;\n\t\theight: 100%;\n\n\t\t@media only screen and (max-width: 1200px) {\n\t\t\tflex-basis: 80px;\n\t\t}\n\n\t\t&--loading {\n\t\t\tbackground: var(--color-primary-light);\n\t\t\tborder-radius: 16px;\n\t\t}\n\n\t\t&__month {\n\t\t\tfont-weight: bold;\n\t\t\tfont-size: 16px;\n\t\t\tborder-radius: 48px;\n\t\t\tpadding: 8px 16px;\n\t\t\tmargin: 4px 0;\n\t\t\tcursor: pointer;\n\n\t\t\t@media only screen and (max-width: 1200px) {\n\t\t\t\ttext-align: center;\n\t\t\t}\n\n\t\t\t&:hover {\n\t\t\t\tbackground: var(--color-background-dark);\n\t\t\t}\n\n\t\t\t&.selected {\n\t\t\t\tbackground: var(--color-primary-element-lighter);\n\t\t\t}\n\t\t}\n\t}\n\n\t&__file-list {\n\t\tflex-grow: 1;\n\t\tmin-width: 0;\n\t\theight: 100%;\n\n\t\t&--loading {\n\t\t\tbackground: var(--color-primary-light);\n\t\t\tborder-radius: 16px;\n\t\t}\n\n\t\t.section-header {\n\t\t\tfont-weight: bold;\n\t\t\tfont-size: 20px;\n\t\t\tpadding: 8px 0 4px 0;\n\t\t}\n\t}\n\n\t&__actions {\n\t\tdisplay: flex;\n\t\tjustify-content: space-between;\n\t\tjustify-items: center;\n\t\tpadding-top: 16px;\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!./FilesPicker.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!./FilesPicker.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!./FilesPicker.vue?vue&type=style&index=0&id=de65aff0&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!./FilesPicker.vue?vue&type=style&index=0&id=de65aff0&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FilesPicker.vue?vue&type=template&id=de65aff0&scoped=true&\"\nimport script from \"./FilesPicker.vue?vue&type=script&lang=js&\"\nexport * from \"./FilesPicker.vue?vue&type=script&lang=js&\"\nimport style0 from \"./FilesPicker.vue?vue&type=style&index=0&id=de65aff0&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 \"de65aff0\",\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('div',{staticClass:\"file-picker\"},[_c('div',{staticClass:\"file-picker__content\"},[_c('div',{staticClass:\"file-picker__navigation\",class:{'file-picker__navigation--loading': _vm.loadingFiles && _vm.monthsList.length === 0}},_vm._l((_vm.monthsList),function(month){return _c('div',{key:month,staticClass:\"file-picker__navigation__month\",class:{selected: _vm.targetMonth === month},on:{\"click\":function($event){_vm.targetMonth = month}}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm._f(\"dateMonthAndYear\")(month))+\"\\n\\t\\t\\t\")])}),0),_vm._v(\" \"),_c('FilesListViewer',{staticClass:\"file-picker__file-list\",class:{'file-picker__file-list--loading': _vm.loadingFiles && _vm.monthsList.length === 0},attrs:{\"file-ids-by-section\":_vm.fileIdsByMonth,\"sections\":_vm.monthsList,\"loading\":_vm.loadingFiles,\"base-height\":100,\"section-header-height\":50,\"scroll-to-section\":_vm.targetMonth},on:{\"need-content\":_vm.getFiles},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar file = ref.file;\nvar height = ref.height;\nvar visibility = ref.visibility;\nreturn [(file.sectionHeader)?_c('h3',{staticClass:\"section-header\",style:({ height: (height + \"px\")}),attrs:{\"id\":(\"file-picker-section-header-\" + (file.id))}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm._f(\"dateMonthAndYear\")(file.id))+\"\\n\\t\\t\\t\\t\")]):_c('File',{attrs:{\"file\":_vm.files[file.id],\"allow-selection\":true,\"selected\":_vm.selection[file.id] === true,\"visibility\":visibility,\"semaphore\":_vm.semaphore},on:{\"select-toggled\":_vm.onFileSelectToggle}})]}}])})],1),_vm._v(\" \"),_c('div',{staticClass:\"file-picker__actions\"},[_c('Button',{attrs:{\"type\":\"tertiary\",\"disabled\":_vm.loading},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Upload')]},proxy:true}])},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('photos', 'Upload from computer'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('Button',{attrs:{\"type\":\"primary\",\"disabled\":_vm.loading || _vm.selectedFileIds.length === 0},on:{\"click\":_vm.emitPickedEvent},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(!_vm.loading)?_c('ImagePlus'):_vm._e(),_vm._v(\" \"),(_vm.loading)?_c('Loader'):_vm._e()]},proxy:true}])},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('photos', 'Add to {destination}', { destination: _vm.destination }))+\"\\n\\t\\t\")])],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n\t<div>ShareAlbumForm</div>\n</template>\n\n<script>\nexport default {\n\tname: 'ShareAlbumForm',\n}\n</script>\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShareAlbumForm.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!./ShareAlbumForm.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ShareAlbumForm.vue?vue&type=template&id=fa7a3006&\"\nimport script from \"./ShareAlbumForm.vue?vue&type=script&lang=js&\"\nexport * from \"./ShareAlbumForm.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_vm._v(\"ShareAlbumForm\")])}\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<EmptyContent v-if=\"album === undefined && !loadingAlbums\" class=\"empty-content-with-illustration\">\n\t\t<template #icon>\n\t\t\t<!-- eslint-disable-next-line vue/no-v-html -->\n\t\t\t<span class=\"empty-content-illustration\" v-html=\"FolderIllustration\" />\n\t\t</template>\n\t\t{{ t('photos', 'This album does not exist') }}\n\t</EmptyContent>\n\t<EmptyContent v-else-if=\"errorFetchingFiles || errorFetchingAlbums\">\n\t\t<template #icon>\n\t\t\t<AlertCircle />\n\t\t</template>\n\t\t{{ t('photos', 'An error occurred') }}\n\t</EmptyContent>\n\n\t<div v-else class=\"album\">\n\t\t<div class=\"album__header\">\n\t\t\t<div class=\"album__header__left\">\n\t\t\t\t<div class=\"album__header__title\">\n\t\t\t\t\t<h2 v-if=\"album !== undefined\" class=\"album__name\">\n\t\t\t\t\t\t{{ album.basename }}\n\t\t\t\t\t</h2>\n\t\t\t\t\t<div v-if=\"album !== undefined && album.location !== ''\" class=\"album__location\">\n\t\t\t\t\t\t<MapMarker />{{ album.location }}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t<Loader v-if=\"loadingCount > 0\" class=\"album__header__loader\" />\n\t\t\t</div>\n\t\t\t<div v-if=\"album !== undefined\" class=\"album__header__actions\">\n\t\t\t\t<Button v-if=\"album.nbItems !== 0\"\n\t\t\t\t\ttype=\"tertiary\"\n\t\t\t\t\t:aria-label=\"t('photos', 'Add photos to this album')\"\n\t\t\t\t\t@click=\"showAddPhotosModal = true\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<Plus />\n\t\t\t\t\t</template>\n\t\t\t\t</Button>\n\t\t\t\t<!-- <Button type=\"tertiary\" :aria-label=\"t('photos', 'Share this album')\" @click=\"showShareModal = true\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<ShareVariant />\n\t\t\t\t\t</template>\n\t\t\t\t</Button> -->\n\t\t\t\t<Actions :force-menu=\"true\">\n\t\t\t\t\t<ActionButton :close-after-click=\"true\"\n\t\t\t\t\t\t:aria-label=\"t('photos', 'Edit album\\'s details')\"\n\t\t\t\t\t\t@click=\"showEditAlbumForm = true\">\n\t\t\t\t\t\t{{ t('photos', 'Edit album\\'s details') }}\n\t\t\t\t\t\t<Pencil slot=\"icon\" />\n\t\t\t\t\t</ActionButton>\n\t\t\t\t\t<ActionButton v-if=\"albumFileIds.length > 0\"\n\t\t\t\t\t\t:close-after-click=\"true\"\n\t\t\t\t\t\t:aria-label=\"t('photos', 'Download all files in album')\"\n\t\t\t\t\t\t@click=\"downloadAllFiles\">\n\t\t\t\t\t\t{{ t('photos', 'Download all files in album') }}\n\t\t\t\t\t\t<DownloadMultiple slot=\"icon\" />\n\t\t\t\t\t</ActionButton>\n\t\t\t\t\t<template v-if=\"selectedFileIds.length > 0\">\n\t\t\t\t\t\t<ActionButton :close-after-click=\"true\"\n\t\t\t\t\t\t\t:aria-label=\"t('photos', 'Download selection')\"\n\t\t\t\t\t\t\t@click=\"downloadSelection\">\n\t\t\t\t\t\t\t{{ t('photos', 'Download selected files') }}\n\t\t\t\t\t\t\t<Download slot=\"icon\" />\n\t\t\t\t\t\t</ActionButton>\n\t\t\t\t\t\t<ActionButton v-if=\"shouldFavoriteSelection\"\n\t\t\t\t\t\t\t:close-after-click=\"true\"\n\t\t\t\t\t\t\t:aria-label=\"t('photos', 'Mark selection as favorite')\"\n\t\t\t\t\t\t\t@click=\"favoriteSelection\">\n\t\t\t\t\t\t\t{{ t('photos', 'Favorite') }}\n\t\t\t\t\t\t\t<Star slot=\"icon\" />\n\t\t\t\t\t\t</ActionButton>\n\t\t\t\t\t\t<ActionButton v-else\n\t\t\t\t\t\t\t:close-after-click=\"true\"\n\t\t\t\t\t\t\t:aria-label=\"t('photos', 'Remove selection from favorites')\"\n\t\t\t\t\t\t\t@click=\"unFavoriteSelection\">\n\t\t\t\t\t\t\t{{ t('photos', 'Remove from favorites') }}\n\t\t\t\t\t\t\t<Star slot=\"icon\" />\n\t\t\t\t\t\t</ActionButton>\n\t\t\t\t\t\t<ActionButton :close-after-click=\"true\"\n\t\t\t\t\t\t\t@click=\"handleRemoveFilesFromAlbum(selectedFileIds)\">\n\t\t\t\t\t\t\t{{ n('photos', 'Remove item from album', 'Remove selection from album', selection.length) }}\n\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t<Close />\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t</ActionButton>\n\t\t\t\t\t</template>\n\t\t\t\t\t<ActionButton :close-after-click=\"true\"\n\t\t\t\t\t\t@click=\"handleDeleteAlbum\">\n\t\t\t\t\t\t{{ t('photos', 'Delete album') }}\n\t\t\t\t\t\t<Delete slot=\"icon\" />\n\t\t\t\t\t</ActionButton>\n\t\t\t\t</Actions>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div v-if=\"album !== undefined && album.nbItems === 0 && !(loadingFiles || loadingAlbums)\" class=\"album__empty\">\n\t\t\t<EmptyContent>\n\t\t\t\t<template #icon>\n\t\t\t\t\t<ImagePlus />\n\t\t\t\t</template>\n\t\t\t\t<template #desc>\n\t\t\t\t\t{{ t('photos', \"This album doesn't have any photos or videos yet!\") }}\n\t\t\t\t</template>\n\t\t\t</EmptyContent>\n\n\t\t\t<Button class=\"album__empty__button\"\n\t\t\t\ttype=\"primary\"\n\t\t\t\t:aria-label=\"t('photos', 'Add photos to this album')\"\n\t\t\t\t@click=\"showAddPhotosModal = true\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Plus />\n\t\t\t\t</template>\n\t\t\t\t{{ t('photos', \"Add\") }}\n\t\t\t</Button>\n\t\t</div>\n\n\t\t<FilesListViewer v-if=\"album !== undefined\"\n\t\t\tclass=\"album__photos\"\n\t\t\t:use-window=\"true\"\n\t\t\t:file-ids=\"albumFileIds\"\n\t\t\t:base-height=\"isMobile ? 120 : 200\"\n\t\t\t:loading=\"loadingFiles || loadingAlbums\">\n\t\t\t<File slot-scope=\"{file, visibility}\"\n\t\t\t\t:file=\"files[file.id]\"\n\t\t\t\t:allow-selection=\"true\"\n\t\t\t\t:selected=\"selection[file.id] === true\"\n\t\t\t\t:visibility=\"visibility\"\n\t\t\t\t:semaphore=\"semaphore\"\n\t\t\t\t@click=\"openViewer\"\n\t\t\t\t@select-toggled=\"onFileSelectToggle\" />\n\t\t</FilesListViewer>\n\n\t\t<Modal v-if=\"showAddPhotosModal\"\n\t\t\tsize=\"large\"\n\t\t\t:title=\"t('photos', 'Add photos to the album')\"\n\t\t\t@close=\"showAddPhotosModal = false\">\n\t\t\t<FilesPicker :destination=\"album.basename\"\n\t\t\t\t:blacklist-ids=\"albumFileIds\"\n\t\t\t\t:loading=\"loadingAddFilesToAlbum\"\n\t\t\t\t@files-picked=\"handleFilesPicked\" />\n\t\t</Modal>\n\n\t\t<Modal v-else-if=\"showShareModal\"\n\t\t\t:title=\"t('photos', 'Share the album')\"\n\t\t\t@close=\"showShareModal = false\">\n\t\t\t<ShareAlbumForm @albumShared=\"showShareModal = false\" />\n\t\t</Modal>\n\n\t\t<Modal v-if=\"showEditAlbumForm\"\n\t\t\t:title=\"t('photos', 'Edit album\\'s details')\"\n\t\t\t@close=\"showEditAlbumForm = false\">\n\t\t\t<AlbumForm :album=\"album\" @done=\"redirectToNewName\" />\n\t\t</Modal>\n\t</div>\n</template>\n\n<script>\nimport { mapActions, mapGetters } from 'vuex'\nimport MapMarker from 'vue-material-design-icons/MapMarker'\n// import ShareVariant from 'vue-material-design-icons/ShareVariant'\nimport Plus from 'vue-material-design-icons/Plus'\nimport Pencil from 'vue-material-design-icons/Pencil'\nimport Delete from 'vue-material-design-icons/Delete'\nimport ImagePlus from 'vue-material-design-icons/ImagePlus'\nimport AlertCircle from 'vue-material-design-icons/AlertCircle'\nimport Star from 'vue-material-design-icons/Star'\nimport Close from 'vue-material-design-icons/Close'\nimport Download from 'vue-material-design-icons/Download'\nimport DownloadMultiple from 'vue-material-design-icons/DownloadMultiple'\n\nimport { Actions, ActionButton, Button, Modal, EmptyContent, isMobile } from '@nextcloud/vue'\nimport { getCurrentUser } from '@nextcloud/auth'\n\nimport FetchAlbumsMixin from '../mixins/FetchAlbumsMixin.js'\nimport FetchFilesMixin from '../mixins/FetchFilesMixin.js'\nimport FilesSelectionMixin from '../mixins/FilesSelectionMixin.js'\nimport FilesListViewer from '../components/FilesListViewer.vue'\nimport File from '../components/File.vue'\nimport Loader from '../components/Loader.vue'\nimport FilesPicker from '../components/FilesPicker.vue'\nimport ShareAlbumForm from '../components/ShareAlbumForm.vue'\nimport AlbumForm from '../components/AlbumForm.vue'\nimport FolderIllustration from '../assets/Illustrations/folder.svg'\nimport logger from '../services/logger.js'\nimport client from '../services/DavClient.js'\nimport DavRequest from '../services/DavRequest.js'\nimport cancelableRequest from '../utils/CancelableRequest.js'\nimport { genFileInfo } from '../utils/fileUtils.js'\n\nexport default {\n\tname: 'AlbumContent',\n\tcomponents: {\n\t\tMapMarker,\n\t\t// ShareVariant,\n\t\tPlus,\n\t\tPencil,\n\t\tStar,\n\t\tClose,\n\t\tDownload,\n\t\tDownloadMultiple,\n\t\tDelete,\n\t\tImagePlus,\n\t\tAlertCircle,\n\t\tFilesListViewer,\n\t\tFile,\n\t\tAlbumForm,\n\t\tEmptyContent,\n\t\tLoader,\n\t\tActions,\n\t\tActionButton,\n\t\tButton,\n\t\tModal,\n\t\tFilesPicker,\n\t\tShareAlbumForm,\n\t},\n\n\tmixins: [\n\t\tFetchAlbumsMixin,\n\t\tFetchFilesMixin,\n\t\tFilesSelectionMixin,\n\t\tisMobile,\n\t],\n\n\tprops: {\n\t\talbumName: {\n\t\t\ttype: String,\n\t\t\tdefault: '/',\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tshowAddPhotosModal: false,\n\t\t\tshowShareModal: false,\n\t\t\tshowEditAlbumForm: false,\n\t\t\tFolderIllustration,\n\t\t\tloadingCount: 0,\n\t\t\tloadingAddFilesToAlbum: false,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\t...mapGetters([\n\t\t\t'files',\n\t\t\t'albumsFiles',\n\t\t]),\n\n\t\t/**\n\t\t * @return {string[]} The album information for the current albumName.\n\t\t */\n\t\talbum() {\n\t\t\treturn this.albums[this.albumName]\n\t\t},\n\n\t\t/**\n\t\t * @return {string[]} The list of files for the current albumName.\n\t\t */\n\t\talbumFileIds() {\n\t\t\treturn this.albumsFiles[this.albumName] || []\n\t\t},\n\n\t\t/** @type {boolean} */\n\t\tshouldFavoriteSelection() {\n\t\t\t// Favorite all selection if at least one file is not on the favorites.\n\t\t\treturn this.selectedFileIds.some((fileId) => this.$store.state.files.files[fileId].favorite === 0)\n\t\t},\n\t},\n\n\twatch: {\n\t\talbum() {\n\t\t\tthis.fetchAlbumContent()\n\t\t},\n\t},\n\n\tmethods: {\n\t\t...mapActions([\n\t\t\t'appendFiles',\n\t\t\t'deleteAlbum',\n\t\t\t'addFilesToAlbum',\n\t\t\t'removeFilesFromAlbum',\n\t\t\t'toggleFavoriteForFiles',\n\t\t\t'downloadFiles',\n\t\t]),\n\n\t\tasync fetchAlbumContent() {\n\t\t\tif (this.loadingFiles || this.showEditAlbumForm) {\n\t\t\t\treturn []\n\t\t\t}\n\n\t\t\tconst semaphoreSymbol = await this.semaphore.acquire(() => 0, 'fetchFiles')\n\t\t\tconst fetchSemaphoreSymbol = await this.fetchSemaphore.acquire()\n\n\t\t\ttry {\n\t\t\t\tthis.errorFetchingFiles = null\n\t\t\t\tthis.loadingFiles = true\n\t\t\t\tthis.semaphoreSymbol = semaphoreSymbol\n\n\t\t\t\tconst { request, cancel } = cancelableRequest(client.getDirectoryContents)\n\t\t\t\tthis.cancelFilesRequest = cancel\n\n\t\t\t\tconst response = await request(\n\t\t\t\t\t`/photos/${getCurrentUser()?.uid}/albums/${this.albumName}`,\n\t\t\t\t\t{\n\t\t\t\t\t\tdata: DavRequest,\n\t\t\t\t\t\tdetails: true,\n\t\t\t\t\t}\n\t\t\t\t)\n\n\t\t\t\tconst fetchedFiles = response.data\n\t\t\t\t\t.map(file => genFileInfo(file))\n\t\t\t\t\t.map(file => ({ ...file, filename: file.realpath.replace(`/${getCurrentUser().uid}/files`, '') }))\n\n\t\t\t\tconst fileIds = fetchedFiles\n\t\t\t\t\t.map(file => file.fileid)\n\t\t\t\t\t.map((fileId) => fileId.toString())\n\n\t\t\t\tthis.appendFiles(fetchedFiles)\n\n\t\t\t\tif (fetchedFiles.length > 0) {\n\t\t\t\t\tawait this.$store.commit('addFilesToAlbum', { albumName: this.albumName, fileIdsToAdd: fileIds })\n\t\t\t\t}\n\n\t\t\t\tlogger.debug(`[AlbumContent] Fetched ${fileIds.length} new files: `, fileIds)\n\t\t\t} catch (error) {\n\t\t\t\tif (error.response?.status === 404) {\n\t\t\t\t\tthis.errorFetchingFiles = 404\n\t\t\t\t} else if (error.code === 'ERR_CANCELED') {\n\t\t\t\t\treturn\n\t\t\t\t} else {\n\t\t\t\t\tthis.errorFetchingFiles = error\n\t\t\t\t}\n\n\t\t\t\t// cancelled request, moving on...\n\t\t\t\tlogger.error('Error fetching album files', error)\n\t\t\t} finally {\n\t\t\t\tthis.loadingFiles = false\n\t\t\t\tthis.cancelFilesRequest = () => { }\n\t\t\t\tthis.semaphore.release(semaphoreSymbol)\n\t\t\t\tthis.fetchSemaphore.release(fetchSemaphoreSymbol)\n\t\t\t}\n\n\t\t\treturn []\n\t\t},\n\n\t\topenViewer(fileId) {\n\t\t\tconst file = this.files[fileId]\n\t\t\tOCA.Viewer.open({\n\t\t\t\tpath: file.filename,\n\t\t\t\tlist: this.albumFileIds.map(fileId => this.files[fileId]).filter(file => !file.sectionHeader),\n\t\t\t\tloadMore: file.loadMore ? async () => await file.loadMore(true) : () => [],\n\t\t\t\tcanLoop: file.canLoop,\n\t\t\t})\n\t\t},\n\n\t\tredirectToNewName({ album }) {\n\t\t\tthis.showEditAlbumForm = false\n\n\t\t\tif (this.album.basename !== album.basename) {\n\t\t\t\tthis.$router.push(`/albums/${album.basename}`)\n\t\t\t}\n\t\t},\n\n\t\tasync handleFilesPicked(fileIds) {\n\t\t\ttry {\n\t\t\t\tthis.loadingAddFilesToAlbum = true\n\t\t\t\tawait this.addFilesToAlbum({ albumName: this.albumName, fileIdsToAdd: fileIds })\n\t\t\t\tthis.showAddPhotosModal = false\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error(error)\n\t\t\t} finally {\n\t\t\t\tthis.loadingAddFilesToAlbum = false\n\t\t\t}\n\t\t},\n\n\t\tasync handleRemoveFilesFromAlbum(fileIds) {\n\t\t\ttry {\n\t\t\t\tthis.loadingCount++\n\t\t\t\tawait this.removeFilesFromAlbum({ albumName: this.albumName, fileIdsToRemove: fileIds })\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error(error)\n\t\t\t} finally {\n\t\t\t\tthis.loadingCount--\n\t\t\t}\n\t\t},\n\n\t\tasync handleDeleteAlbum() {\n\t\t\ttry {\n\t\t\t\tthis.loadingCount++\n\t\t\t\tawait this.deleteAlbum({ albumName: this.albumName })\n\t\t\t\tthis.$router.push('/albums')\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error(error)\n\t\t\t} finally {\n\t\t\t\tthis.loadingCount--\n\t\t\t}\n\t\t},\n\n\t\tasync favoriteSelection() {\n\t\t\ttry {\n\t\t\t\tthis.loadingCount++\n\t\t\t\tawait this.toggleFavoriteForFiles({ fileIds: this.selectedFileIds, favoriteState: true })\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error(error)\n\t\t\t} finally {\n\t\t\t\tthis.loadingCount--\n\t\t\t}\n\t\t},\n\n\t\tasync unFavoriteSelection() {\n\t\t\ttry {\n\t\t\t\tthis.loadingCount++\n\t\t\t\tawait this.toggleFavoriteForFiles({ fileIds: this.selectedFileIds, favoriteState: false })\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error(error)\n\t\t\t} finally {\n\t\t\t\tthis.loadingCount--\n\t\t\t}\n\t\t},\n\n\t\tasync downloadAllFiles() {\n\t\t\ttry {\n\t\t\t\tthis.loadingCount++\n\t\t\t\tawait this.downloadFiles(this.albumFileIds)\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error(error)\n\t\t\t} finally {\n\t\t\t\tthis.loadingCount--\n\t\t\t}\n\t\t},\n\n\t\tasync downloadSelection() {\n\t\t\ttry {\n\t\t\t\tthis.loadingCount++\n\t\t\t\tawait this.downloadFiles(this.selectedFileIds)\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error(error)\n\t\t\t} finally {\n\t\t\t\tthis.loadingCount--\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n<style lang=\"scss\" scoped>\n.album {\n\tdisplay: flex;\n\tflex-direction: column;\n\n\t&__empty {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\talign-items: center;\n\n\t\t&__button {\n\t\t\tmargin-top: 32px;\n\t\t}\n\n\t}\n\n\t&__location {\n\t\tmargin-left: -4px;\n\t\tdisplay: flex;\n\t\tcolor: var(--color-text-lighter);\n\t}\n\n\t&__name {\n\t\toverflow: hidden;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t}\n\n\t&__header {\n\t\tdisplay: flex;\n\t\tmin-height: 60px;\n\t\talign-items: center;\n\t\tjustify-content: space-between;\n\t\tposition: sticky;\n\t\ttop: var(--header-height);\n\t\tz-index: 3;\n\t\tbackground: var(--color-main-background);\n\t\tpadding: 8px 64px 32px 64px;\n\n\t\t@media only screen and (max-width: 1200px) {\n\t\t\tpadding: 8px 48px 32px 48px;\n\t\t}\n\n\t\t&__left {\n\t\t\theight: 100%;\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tmin-width: 0;\n\t\t}\n\n\t\t&__title {\n\t\t\tmin-width: 0;\n\t\t}\n\n\t\t&__loader {\n\t\t\tmargin-left: 32px;\n\t\t}\n\n\t\t&__loader {\n\t\t\tmargin-left: 32px;\n\t\t}\n\n\t\t&__actions {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\n\t\t\tbutton {\n\t\t\t\tmargin-left: 16px;\n\t\t\t}\n\t\t}\n\t}\n\n\t&__photos {\n\t\theight: 100%;\n\t\tmin-height: 0; // Prevent it from overflowing in a flex context.\n\t\tpadding: 0 64px;\n\n\t\t@media only screen and (max-width: 1200px) {\n\t\t\tpadding: 0 4px;\n\t\t}\n\n\t}\n}\n\n.empty-content-with-illustration ::v-deep .empty-content__icon {\n\twidth: 200px;\n\theight: 200px;\n\n\tsvg {\n\t\twidth: 200px;\n\t\theight: 200px;\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!./AlbumContent.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!./AlbumContent.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!./AlbumContent.vue?vue&type=style&index=0&id=afb02eaa&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!./AlbumContent.vue?vue&type=style&index=0&id=afb02eaa&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AlbumContent.vue?vue&type=template&id=afb02eaa&scoped=true&\"\nimport script from \"./AlbumContent.vue?vue&type=script&lang=js&\"\nexport * from \"./AlbumContent.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AlbumContent.vue?vue&type=style&index=0&id=afb02eaa&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 \"afb02eaa\",\n null\n \n)\n\nexport default component.exports"],"names":["name","computed","fileIdsByMonth","filesByMonth","this","fetchedFileIds","fileId","file","files","month","push","fileid","Object","keys","forEach","sort","sortFilesByTimestamp","monthsList","month1","month2","___CSS_LOADER_EXPORT___","module","id","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","class","loadingFiles","length","_l","key","selected","targetMonth","_f","getFiles","scopedSlots","_u","fn","ref","height","visibility","style","selection","semaphore","onFileSelectToggle","loading","proxy","t","selectedFileIds","emitPickedEvent","destination","undefined","album","loadingAlbums","errorFetchingFiles","errorFetchingAlbums","basename","location","loadingCount","nbItems","showAddPhotosModal","showEditAlbumForm","slot","albumFileIds","downloadAllFiles","downloadSelection","favoriteSelection","unFavoriteSelection","handleRemoveFilesFromAlbum","n","handleDeleteAlbum","isMobile","openViewer","loadingAddFilesToAlbum","handleFilesPicked","showShareModal","redirectToNewName","domProps","FolderIllustration"],"sourceRoot":""}