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_TagContent_vue.js.map')
-rw-r--r--js/photos-src_views_TagContent_vue.js.map2
1 files changed, 1 insertions, 1 deletions
diff --git a/js/photos-src_views_TagContent_vue.js.map b/js/photos-src_views_TagContent_vue.js.map
index 14332c51..ed733fc5 100644
--- a/js/photos-src_views_TagContent_vue.js.map
+++ b/js/photos-src_views_TagContent_vue.js.map
@@ -1 +1 @@
-{"version":3,"file":"photos-src_views_TagContent_vue.js?v=1cb49390a7063cb8fbd4","mappings":"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","sources":["webpack:///photos/src/views/TagContent.vue?vue&type=style&index=0&id=64772592&scoped=true&lang=scss&","webpack:///photos/src/views/TagContent.vue?vue&type=template&id=64772592&scoped=true&","webpack:///photos/src/views/TagContent.vue","webpack:///photos/src/views/TagContent.vue?vue&type=script&lang=js&","webpack://photos/./src/views/TagContent.vue?eb5f","webpack://photos/./src/views/TagContent.vue?bc74"],"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, \".loader[data-v-64772592]{margin-top:30vh}.photos-navigation[data-v-64772592]{display:flex;height:44px;padding:0 40px;align-items:center;max-width:100%}.photos-navigation h2[data-v-64772592]{padding:0;margin:0}.heading-subline[data-v-64772592]{margin-left:85px;margin-top:-11px;color:var(--color-text-maxcontrast)}.tag__photos[data-v-64772592]{padding:0 64px}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/views/TagContent.vue\"],\"names\":[],\"mappings\":\"AA2LA,yBACC,eAAA,CAGD,oCACC,YAAA,CACA,WAAA,CACA,cAAA,CACA,kBAAA,CACA,cAAA,CAEA,uCACC,SAAA,CACA,QAAA,CAIF,kCACC,gBAAA,CACA,gBAAA,CACA,mCAAA,CAGD,8BACC,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\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n.loader {\\n\\tmargin-top: 30vh;\\n}\\n\\n.photos-navigation {\\n\\tdisplay: flex;\\n\\theight: 44px;\\n\\tpadding: 0 40px;\\n\\talign-items: center;\\n\\tmax-width: 100%;\\n\\n\\th2 {\\n\\t\\tpadding: 0;\\n\\t\\tmargin: 0;\\n\\t}\\n}\\n\\n.heading-subline {\\n\\tmargin-left: 85px;\\n\\tmargin-top: -11px;\\n\\tcolor: var(--color-text-maxcontrast);\\n}\\n\\n.tag__photos {\\n\\tpadding: 0 64px;\\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 (_vm.error)?_c('NcEmptyContent',{attrs:{\"title\":_vm.t('photos', 'An error occurred')}}):(_vm.loading)?_c('NcLoadingIcon',{staticClass:\"loader\"}):_c('div',[_c('div',{staticClass:\"photos-navigation\"},[_c('NcActions',{staticClass:\"photos-navigation__back\"},[_c('NcActionButton',{on:{\"click\":function($event){return _vm.$router.push({name: 'tags'})}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('ArrowLeft')]},proxy:true}])},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('photos', 'Back to tags overview'))+\"\\n\\t\\t\\t\")])],1),_vm._v(\" \"),_c('h2',{staticClass:\"photos-navigation__title\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.path)+\"\\n\\t\\t\")])],1),_vm._v(\" \"),_c('div',{staticClass:\"heading-subline\"},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.n('photos', '%n photo', '%n photos', _vm.fileIds.length))+\"\\n\\t\")]),_vm._v(\" \"),(_vm.isEmpty)?_c('NcEmptyContent',{attrs:{\"title\":_vm.t('photos', 'No photos with this tag yet')}}):_vm._e(),_vm._v(\" \"),_c('FilesListViewer',{staticClass:\"tag__photos\",attrs:{\"use-window\":true,\"file-ids\":_vm.fileIds,\"base-height\":_vm.isMobile ? 120 : 200,\"loading\":_vm.loading},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}})}}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n - @author Corentin Mors <medias@pixelswap.fr>\n - @author Marcel Klehr <mklehr@gmx.net>\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<!-- Errors handlers-->\n\t<NcEmptyContent v-if=\"error\" :title=\"t('photos', 'An error occurred')\" />\n\n\t<NcLoadingIcon v-else-if=\"loading\" class=\"loader\" />\n\n\t<!-- Folder content -->\n\t<div v-else>\n\t\t<div class=\"photos-navigation\">\n\t\t\t<NcActions class=\"photos-navigation__back\">\n\t\t\t\t<NcActionButton @click=\"$router.push({name: 'tags'})\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<ArrowLeft />\n\t\t\t\t\t</template>\n\t\t\t\t\t{{ t('photos', 'Back to tags overview') }}\n\t\t\t\t</NcActionButton>\n\t\t\t</NcActions>\n\t\t\t<h2 class=\"photos-navigation__title\">\n\t\t\t\t{{ path }}\n\t\t\t</h2>\n\t\t</div>\n\t\t<div class=\"heading-subline\">\n\t\t\t{{ n('photos', '%n photo', '%n photos', fileIds.length,) }}\n\t\t</div>\n\t\t<NcEmptyContent v-if=\"isEmpty\" :title=\"t('photos', 'No photos with this tag yet')\" />\n\n\t\t<FilesListViewer class=\"tag__photos\"\n\t\t\t:use-window=\"true\"\n\t\t\t:file-ids=\"fileIds\"\n\t\t\t:base-height=\"isMobile ? 120 : 200\"\n\t\t\t:loading=\"loading\">\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\t</div>\n</template>\n\n<script>\nimport { mapGetters } from 'vuex'\nimport ArrowLeft from 'vue-material-design-icons/ArrowLeft'\n\nimport { NcEmptyContent, NcActions, NcActionButton, NcLoadingIcon, isMobile } from '@nextcloud/vue'\n\nimport File from '../components/File.vue'\nimport FilesListViewer from '../components/FilesListViewer.vue'\n\nimport SemaphoreWithPriority from '../utils/semaphoreWithPriority.js'\nimport FilesSelectionMixin from '../mixins/FilesSelectionMixin.js'\nimport AbortControllerMixin from '../mixins/AbortControllerMixin.js'\n\nexport default {\n\tname: 'TagContent',\n\tcomponents: {\n\t\tFile,\n\t\tFilesListViewer,\n\t\tNcEmptyContent,\n\t\tNcActions,\n\t\tNcActionButton,\n\t\tNcLoadingIcon,\n\t\tArrowLeft,\n\t},\n\tmixins: [\n\t\tisMobile,\n\t\tFilesSelectionMixin,\n\t\tAbortControllerMixin,\n\t],\n\tprops: {\n\t\tpath: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\terror: null,\n\t\t\tloading: false,\n\t\t\tsemaphore: new SemaphoreWithPriority(30),\n\t\t}\n\t},\n\n\tcomputed: {\n\t\t// global lists\n\t\t...mapGetters([\n\t\t\t'files',\n\t\t\t'tags',\n\t\t\t'tagsNames',\n\t\t]),\n\n\t\t// current tag id from current path\n\t\ttagId() {\n\t\t\treturn this.$store.getters.tagId(this.path)\n\t\t},\n\n\t\t// current tag\n\t\ttag() {\n\t\t\treturn this.tags[this.tagId]\n\t\t},\n\n\t\t// files list of the current tag\n\t\tfileIds() {\n\t\t\treturn this.tag ? this.tag.files : []\n\t\t},\n\n\t\tisEmpty() {\n\t\t\treturn this.fileIds.length === 0\n\t\t},\n\t},\n\n\twatch: {\n\t\tasync path() {\n\t\t\tthis.fetchContent()\n\t\t},\n\t},\n\n\tasync beforeMount() {\n\t\tthis.fetchContent()\n\t},\n\n\tmethods: {\n\t\tasync fetchContent() {\n\t\t\t// close any potential opened viewer\n\t\t\tOCA.Viewer.close()\n\n\t\t\tthis.loading = true\n\t\t\tthis.error = null\n\n\t\t\ttry {\n\t\t\t\t// if we don't already have some cached data let's show a loader\n\t\t\t\tif (!this.tags[this.tagId]) {\n\t\t\t\t\tawait this.$store.dispatch('fetchAllTags', { signal: this.abortController.signal })\n\t\t\t\t}\n\n\t\t\t\tawait this.$store.dispatch('fetchTagFiles', { id: this.tagId, signal: this.abortController.signal })\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error(error)\n\t\t\t\tthis.error = true\n\t\t\t} finally {\n\t\t\t\t// done loading\n\t\t\t\tthis.loading = false\n\t\t\t}\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.fileIds.map(fileId => this.files[fileId]),\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\t},\n}\n</script>\n<style scoped lang=\"scss\">\n.loader {\n\tmargin-top: 30vh;\n}\n\n.photos-navigation {\n\tdisplay: flex;\n\theight: 44px;\n\tpadding: 0 40px;\n\talign-items: center;\n\tmax-width: 100%;\n\n\th2 {\n\t\tpadding: 0;\n\t\tmargin: 0;\n\t}\n}\n\n.heading-subline {\n\tmargin-left: 85px;\n\tmargin-top: -11px;\n\tcolor: var(--color-text-maxcontrast);\n}\n\n.tag__photos {\n\tpadding: 0 64px;\n}\n</style>\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TagContent.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!./TagContent.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!./TagContent.vue?vue&type=style&index=0&id=64772592&scoped=true&lang=scss&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/dist/cjs.js!../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-2[0].rules[0].use[3]!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TagContent.vue?vue&type=style&index=0&id=64772592&scoped=true&lang=scss&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./TagContent.vue?vue&type=template&id=64772592&scoped=true&\"\nimport script from \"./TagContent.vue?vue&type=script&lang=js&\"\nexport * from \"./TagContent.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TagContent.vue?vue&type=style&index=0&id=64772592&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"64772592\",\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","attrs","t","staticClass","on","$event","$router","name","scopedSlots","_u","key","fn","proxy","_v","_s","path","n","fileIds","length","_e","isMobile","loading","ref","file","visibility","files","selection","semaphore","openViewer","onFileSelectToggle"],"sourceRoot":""} \ No newline at end of file
+{"version":3,"file":"photos-src_views_TagContent_vue.js?v=341b751c4cc5def20ed8","mappings":"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","sources":["webpack:///photos/src/views/TagContent.vue?vue&type=style&index=0&id=6fbc0ee6&scoped=true&lang=scss&","webpack:///photos/src/views/TagContent.vue?vue&type=template&id=6fbc0ee6&scoped=true&","webpack:///photos/src/views/TagContent.vue","webpack:///photos/src/views/TagContent.vue?vue&type=script&lang=js&","webpack://photos/./src/views/TagContent.vue?f1e2","webpack://photos/./src/views/TagContent.vue?bc74"],"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, \".loader[data-v-6fbc0ee6]{margin-top:30vh}.photos-navigation[data-v-6fbc0ee6]{display:flex;height:44px;padding:0 40px;align-items:center;max-width:100%}.photos-navigation h2[data-v-6fbc0ee6]{padding:0;margin:0}.heading-subline[data-v-6fbc0ee6]{margin-left:85px;margin-top:-11px;color:var(--color-text-maxcontrast)}.tag__photos[data-v-6fbc0ee6]{padding:0 64px}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/views/TagContent.vue\"],\"names\":[],\"mappings\":\"AA4LA,yBACC,eAAA,CAGD,oCACC,YAAA,CACA,WAAA,CACA,cAAA,CACA,kBAAA,CACA,cAAA,CAEA,uCACC,SAAA,CACA,QAAA,CAIF,kCACC,gBAAA,CACA,gBAAA,CACA,mCAAA,CAGD,8BACC,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\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n.loader {\\n\\tmargin-top: 30vh;\\n}\\n\\n.photos-navigation {\\n\\tdisplay: flex;\\n\\theight: 44px;\\n\\tpadding: 0 40px;\\n\\talign-items: center;\\n\\tmax-width: 100%;\\n\\n\\th2 {\\n\\t\\tpadding: 0;\\n\\t\\tmargin: 0;\\n\\t}\\n}\\n\\n.heading-subline {\\n\\tmargin-left: 85px;\\n\\tmargin-top: -11px;\\n\\tcolor: var(--color-text-maxcontrast);\\n}\\n\\n.tag__photos {\\n\\tpadding: 0 64px;\\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 (_vm.error)?_c('NcEmptyContent',{attrs:{\"title\":_vm.t('photos', 'An error occurred')}}):(_vm.loading)?_c('NcLoadingIcon',{staticClass:\"loader\"}):_c('div',[_c('div',{staticClass:\"photos-navigation\"},[_c('NcActions',{staticClass:\"photos-navigation__back\"},[_c('NcActionButton',{on:{\"click\":function($event){return _vm.$router.push({name: 'tags'})}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('ArrowLeft')]},proxy:true}])},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('photos', 'Back to tags overview'))+\"\\n\\t\\t\\t\")])],1),_vm._v(\" \"),_c('h2',{staticClass:\"photos-navigation__title\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.path)+\"\\n\\t\\t\")])],1),_vm._v(\" \"),_c('div',{staticClass:\"heading-subline\"},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.n('photos', '%n photo', '%n photos', _vm.fileIds.length))+\"\\n\\t\")]),_vm._v(\" \"),(_vm.isEmpty)?_c('NcEmptyContent',{attrs:{\"title\":_vm.t('photos', 'No photos with this tag yet')}}):_vm._e(),_vm._v(\" \"),_c('FilesListViewer',{staticClass:\"tag__photos\",attrs:{\"container-element\":_vm.appContent,\"file-ids\":_vm.fileIds,\"base-height\":_vm.isMobile ? 120 : 200,\"loading\":_vm.loading},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}})}}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n - @author Corentin Mors <medias@pixelswap.fr>\n - @author Marcel Klehr <mklehr@gmx.net>\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<!-- Errors handlers-->\n\t<NcEmptyContent v-if=\"error\" :title=\"t('photos', 'An error occurred')\" />\n\n\t<NcLoadingIcon v-else-if=\"loading\" class=\"loader\" />\n\n\t<!-- Folder content -->\n\t<div v-else>\n\t\t<div class=\"photos-navigation\">\n\t\t\t<NcActions class=\"photos-navigation__back\">\n\t\t\t\t<NcActionButton @click=\"$router.push({name: 'tags'})\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<ArrowLeft />\n\t\t\t\t\t</template>\n\t\t\t\t\t{{ t('photos', 'Back to tags overview') }}\n\t\t\t\t</NcActionButton>\n\t\t\t</NcActions>\n\t\t\t<h2 class=\"photos-navigation__title\">\n\t\t\t\t{{ path }}\n\t\t\t</h2>\n\t\t</div>\n\t\t<div class=\"heading-subline\">\n\t\t\t{{ n('photos', '%n photo', '%n photos', fileIds.length,) }}\n\t\t</div>\n\t\t<NcEmptyContent v-if=\"isEmpty\" :title=\"t('photos', 'No photos with this tag yet')\" />\n\n\t\t<FilesListViewer class=\"tag__photos\"\n\t\t\t:container-element=\"appContent\"\n\t\t\t:file-ids=\"fileIds\"\n\t\t\t:base-height=\"isMobile ? 120 : 200\"\n\t\t\t:loading=\"loading\">\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\t</div>\n</template>\n\n<script>\nimport { mapGetters } from 'vuex'\nimport ArrowLeft from 'vue-material-design-icons/ArrowLeft'\n\nimport { NcEmptyContent, NcActions, NcActionButton, NcLoadingIcon, isMobile } from '@nextcloud/vue'\n\nimport File from '../components/File.vue'\nimport FilesListViewer from '../components/FilesListViewer.vue'\n\nimport SemaphoreWithPriority from '../utils/semaphoreWithPriority.js'\nimport FilesSelectionMixin from '../mixins/FilesSelectionMixin.js'\nimport AbortControllerMixin from '../mixins/AbortControllerMixin.js'\n\nexport default {\n\tname: 'TagContent',\n\tcomponents: {\n\t\tFile,\n\t\tFilesListViewer,\n\t\tNcEmptyContent,\n\t\tNcActions,\n\t\tNcActionButton,\n\t\tNcLoadingIcon,\n\t\tArrowLeft,\n\t},\n\tmixins: [\n\t\tisMobile,\n\t\tFilesSelectionMixin,\n\t\tAbortControllerMixin,\n\t],\n\tprops: {\n\t\tpath: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\terror: null,\n\t\t\tloading: false,\n\t\t\tsemaphore: new SemaphoreWithPriority(30),\n\t\t\tappContent: document.getElementById('app-content-vue'),\n\t\t}\n\t},\n\n\tcomputed: {\n\t\t// global lists\n\t\t...mapGetters([\n\t\t\t'files',\n\t\t\t'tags',\n\t\t\t'tagsNames',\n\t\t]),\n\n\t\t// current tag id from current path\n\t\ttagId() {\n\t\t\treturn this.$store.getters.tagId(this.path)\n\t\t},\n\n\t\t// current tag\n\t\ttag() {\n\t\t\treturn this.tags[this.tagId]\n\t\t},\n\n\t\t// files list of the current tag\n\t\tfileIds() {\n\t\t\treturn this.tag ? this.tag.files : []\n\t\t},\n\n\t\tisEmpty() {\n\t\t\treturn this.fileIds.length === 0\n\t\t},\n\t},\n\n\twatch: {\n\t\tasync path() {\n\t\t\tthis.fetchContent()\n\t\t},\n\t},\n\n\tasync beforeMount() {\n\t\tthis.fetchContent()\n\t},\n\n\tmethods: {\n\t\tasync fetchContent() {\n\t\t\t// close any potential opened viewer\n\t\t\tOCA.Viewer.close()\n\n\t\t\tthis.loading = true\n\t\t\tthis.error = null\n\n\t\t\ttry {\n\t\t\t\t// if we don't already have some cached data let's show a loader\n\t\t\t\tif (!this.tags[this.tagId]) {\n\t\t\t\t\tawait this.$store.dispatch('fetchAllTags', { signal: this.abortController.signal })\n\t\t\t\t}\n\n\t\t\t\tawait this.$store.dispatch('fetchTagFiles', { id: this.tagId, signal: this.abortController.signal })\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error(error)\n\t\t\t\tthis.error = true\n\t\t\t} finally {\n\t\t\t\t// done loading\n\t\t\t\tthis.loading = false\n\t\t\t}\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.fileIds.map(fileId => this.files[fileId]),\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\t},\n}\n</script>\n<style scoped lang=\"scss\">\n.loader {\n\tmargin-top: 30vh;\n}\n\n.photos-navigation {\n\tdisplay: flex;\n\theight: 44px;\n\tpadding: 0 40px;\n\talign-items: center;\n\tmax-width: 100%;\n\n\th2 {\n\t\tpadding: 0;\n\t\tmargin: 0;\n\t}\n}\n\n.heading-subline {\n\tmargin-left: 85px;\n\tmargin-top: -11px;\n\tcolor: var(--color-text-maxcontrast);\n}\n\n.tag__photos {\n\tpadding: 0 64px;\n}\n</style>\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TagContent.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!./TagContent.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!./TagContent.vue?vue&type=style&index=0&id=6fbc0ee6&scoped=true&lang=scss&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/dist/cjs.js!../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-2[0].rules[0].use[3]!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TagContent.vue?vue&type=style&index=0&id=6fbc0ee6&scoped=true&lang=scss&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./TagContent.vue?vue&type=template&id=6fbc0ee6&scoped=true&\"\nimport script from \"./TagContent.vue?vue&type=script&lang=js&\"\nexport * from \"./TagContent.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TagContent.vue?vue&type=style&index=0&id=6fbc0ee6&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6fbc0ee6\",\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","attrs","t","staticClass","on","$event","$router","name","scopedSlots","_u","key","fn","proxy","_v","_s","path","n","fileIds","length","_e","appContent","isMobile","loading","ref","file","visibility","files","selection","semaphore","openViewer","onFileSelectToggle"],"sourceRoot":""} \ No newline at end of file