photos/js/photos-src_mixins_GridConfi...

1 line
25 KiB
Plaintext

{"version":3,"file":"photos-src_mixins_GridConfig_js-src_utils_CancelableRequest_js-src_components_FolderTagPreview_vue.js?v=7eea2efa5035a0a23aa0","mappings":";;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;ACrJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AC9FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACtFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAkBA;AACA;;;;;;;;;;;;;;;;ACvCA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sources":["webpack:///photos/src/components/FolderTagPreview.vue?vue&type=script&lang=js&","webpack:///photos/src/assets/grid-sizes.js","webpack:///photos/src/mixins/GridConfig.js","webpack:///photos/src/services/GridConfig.js","webpack:///photos/src/utils/CancelableRequest.js","webpack:///photos/src/components/FolderTagPreview.vue?vue&type=style&index=0&id=77915c0c&lang=scss&scoped=true&","webpack://photos/./src/components/FolderTagPreview.vue?9ab0","webpack:///photos/src/components/FolderTagPreview.vue","webpack://photos/./src/components/FolderTagPreview.vue?0464","webpack:///photos/src/components/FolderTagPreview.vue?vue&type=template&id=77915c0c&scoped=true&"],"sourcesContent":["//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nimport { generateUrl } from '@nextcloud/router';\nexport default {\n name: 'FolderTagPreview',\n props: {\n icon: {\n type: String,\n default: 'icon-folder'\n },\n id: {\n type: Number,\n required: true\n },\n name: {\n type: String,\n required: true\n },\n path: {\n type: String,\n required: true\n },\n fileList: {\n type: Array,\n default: function _default() {\n return [];\n }\n }\n },\n data: function data() {\n return {\n loaded: false,\n failed: []\n };\n },\n computed: {\n // folder is empty\n isEmpty: function isEmpty() {\n return this.previewList.length === 0;\n },\n ariaUuid: function ariaUuid() {\n return \"folder-\".concat(this.id);\n },\n ariaLabel: function ariaLabel() {\n return t('photos', 'Open the \"{name}\" sub-directory', {\n name: this.name\n });\n },\n\n /**\n * Previews list without the failed ones\n *\n * @return {object[]} the previews fileinfo\n */\n previewList: function previewList() {\n var _this = this;\n\n return this.fileList.filter(function (file) {\n return _this.failed.indexOf(file.fileid) === -1;\n });\n },\n\n /**\n * We do not want encoded slashes when browsing by folder\n * so we generate a new valid route object based on the\n * current named route, get the final url back, decode it\n * and use it as a direct string.\n * Which vue-router does not encode afterwards!\n *\n * @return {string}\n */\n to: function to() {\n // always remove first slash, the router\n // manage it automatically\n var regex = /^\\/?(.+)/i;\n var path = regex.exec(this.path)[1]; // apply to current route\n\n return Object.assign({}, this.$route, {\n params: {\n path: path.split('/')\n }\n });\n }\n },\n methods: {\n generateImgSrc: function generateImgSrc(_ref) {\n var fileid = _ref.fileid,\n etag = _ref.etag;\n // use etag to force cache reload if file changed\n return generateUrl(\"/core/preview?fileId=\".concat(fileid, \"&c=\").concat(etag, \"&x=\", 250, \"&y=\", 250, \"&forceIcon=0&a=0\"));\n },\n onPreviewFail: function onPreviewFail(_ref2) {\n var fileid = _ref2.fileid;\n this.failed.push(fileid);\n }\n }\n};","/**\n * @copyright Copyright (c) 2018 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n// for now we want to keep the same gap everywhere\nvar gap = 8;\n/**\n * Define the max width proportions\n * The number (key) indicate the MAX size\n *\n * needs to be compatible with webpack config\n * so no export default {}\n */\n\nmodule.exports = {\n sizes: {\n 400: {\n marginTop: 66,\n marginW: gap,\n count: 3,\n gap: gap\n },\n 700: {\n marginTop: 66,\n marginW: gap,\n count: 4,\n gap: gap\n },\n 1024: {\n marginTop: 66,\n marginW: 44,\n count: 5,\n gap: gap\n },\n 1280: {\n marginTop: 66,\n marginW: 44,\n count: 4,\n gap: gap\n },\n 1440: {\n marginTop: 88,\n marginW: 66,\n count: 5,\n gap: gap\n },\n 1600: {\n marginTop: 88,\n marginW: 66,\n count: 6,\n gap: gap\n },\n 2048: {\n marginTop: 88,\n marginW: 66,\n count: 7,\n gap: gap\n },\n 2560: {\n marginTop: 88,\n marginW: 88,\n count: 8,\n gap: gap\n },\n 3440: {\n marginTop: 88,\n marginW: 88,\n count: 9,\n gap: gap\n },\n max: {\n marginTop: 88,\n marginW: 88,\n count: 10,\n gap: gap\n }\n }\n};","/**\n * @copyright Copyright (c) 2018 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport getGridConfig from '../services/GridConfig';\n/**\n * Get the current used grid config\n */\n\nexport default {\n data: function data() {\n return {\n gridConfig: {}\n };\n },\n created: function created() {\n var _this = this;\n\n getGridConfig.$on('changed', function (val) {\n _this.gridConfig = val;\n });\n console.debug(\"[\".concat(appName, \"]\"), 'Grid config', Object.assign({}, getGridConfig.gridConfig));\n this.gridConfig = getGridConfig.gridConfig;\n },\n beforeDestroy: function beforeDestroy() {\n getGridConfig.$off('changed', this.gridConfig);\n }\n};","/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport Vue from 'vue';\nimport { sizes } from '../assets/grid-sizes';\nexport default new Vue({\n data: function data() {\n return {\n gridConfig: sizes.max\n };\n },\n watch: {\n gridConfig: function gridConfig(val) {\n this.$emit('changed', val);\n }\n },\n created: function created() {\n window.addEventListener('resize', this.handleWindowResize);\n this.handleWindowResize();\n },\n beforeDestroy: function beforeDestroy() {\n window.removeEventListener('resize', this.handleWindowResize);\n },\n methods: {\n handleWindowResize: function handleWindowResize() {\n // find the first grid size that fit the current window width\n var currentSize = Object.keys(sizes).find(function (size) {\n return size > document.documentElement.clientWidth;\n });\n this.gridConfig = sizes[currentSize] || sizes.max;\n }\n }\n});","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\n/**\n * @copyright Copyright (c) 2019 Marco Ambrosini <marcoambrosini@pm.me>\n *\n * @author Marco Ambrosini <marcoambrosini@pm.me>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport axios from '@nextcloud/axios';\n/**\n * Create a cancel token\n *\n * @return {CancelTokenSource}\n */\n\nvar createCancelToken = function createCancelToken() {\n return axios.CancelToken.source();\n};\n/**\n * Creates a cancelable axios 'request object'.\n *\n * @param {Function} request the axios promise request\n * @return {object}\n */\n\n\nvar CancelableRequest = function CancelableRequest(request) {\n /**\n * Generate an axios cancel token\n */\n var cancelToken = createCancelToken();\n /**\n * Execute the request\n *\n * @param {string} url the url to send the request to\n * @param {object} [options] optional config for the request\n */\n\n var fetch = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(url, options) {\n return regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n return _context.abrupt(\"return\", request(url, Object.assign({\n cancelToken: cancelToken.token\n }, options)));\n\n case 1:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n\n return function fetch(_x, _x2) {\n return _ref.apply(this, arguments);\n };\n }();\n\n return {\n request: fetch,\n cancel: cancelToken.cancel\n };\n};\n\nexport default CancelableRequest;","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"@charset \\\"UTF-8\\\";\\n/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license AGPL-3.0-or-later\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n.file[data-v-77915c0c],\\n.folder[data-v-77915c0c] {\\n position: relative;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n -webkit-user-select: none;\\n user-select: none;\\n border-radius: var(--border-radius);\\n overflow: hidden;\\n}\\n.file .cover[data-v-77915c0c],\\n.folder .cover[data-v-77915c0c] {\\n z-index: 2;\\n width: 100%;\\n padding-bottom: 100%;\\n transition: opacity var(--animation-quick) ease-in-out;\\n opacity: 0;\\n background-color: var(--color-main-text);\\n}\\n.file.active .cover[data-v-77915c0c], .file:active .cover[data-v-77915c0c], .file:hover .cover[data-v-77915c0c], .file:focus .cover[data-v-77915c0c],\\n.folder.active .cover[data-v-77915c0c],\\n.folder:active .cover[data-v-77915c0c],\\n.folder:hover .cover[data-v-77915c0c],\\n.folder:focus .cover[data-v-77915c0c] {\\n opacity: 0.3;\\n}\\n.file--clear.active .cover[data-v-77915c0c], .file--clear:active .cover[data-v-77915c0c], .file--clear:hover .cover[data-v-77915c0c], .file--clear:focus .cover[data-v-77915c0c],\\n.folder--clear.active .cover[data-v-77915c0c],\\n.folder--clear:active .cover[data-v-77915c0c],\\n.folder--clear:hover .cover[data-v-77915c0c],\\n.folder--clear:focus .cover[data-v-77915c0c] {\\n opacity: 0.1;\\n}\\n.fade-enter-active[data-v-77915c0c], .fade-leave-active[data-v-77915c0c] {\\n transition: opacity var(--animation-quick) ease-in-out;\\n}\\n.fade-enter[data-v-77915c0c], .fade-leave-to[data-v-77915c0c] {\\n opacity: 0;\\n}\\n.folder-content[data-v-77915c0c] {\\n position: absolute;\\n display: grid;\\n width: 100%;\\n height: 100%;\\n}\\n.folder-content--grid-1[data-v-77915c0c] {\\n grid-template-columns: 1fr;\\n grid-template-rows: 1fr;\\n}\\n.folder-content--grid-2[data-v-77915c0c] {\\n grid-template-columns: 1fr;\\n grid-template-rows: 1fr 1fr;\\n}\\n.folder-content--grid-3[data-v-77915c0c] {\\n grid-template-columns: 1fr 1fr;\\n grid-template-rows: 1fr 1fr;\\n}\\n.folder-content--grid-3 img[data-v-77915c0c]:first-child {\\n grid-column: span 2;\\n}\\n.folder-content--grid-4[data-v-77915c0c] {\\n grid-template-columns: 1fr 1fr;\\n grid-template-rows: 1fr 1fr;\\n}\\n.folder-content img[data-v-77915c0c] {\\n width: 100%;\\n height: 100%;\\n object-fit: cover;\\n}\\n.folder-name[data-v-77915c0c] {\\n position: absolute;\\n z-index: 3;\\n display: flex;\\n overflow: hidden;\\n flex-direction: column;\\n width: 100%;\\n height: 100%;\\n transition: opacity var(--animation-quick) ease-in-out;\\n opacity: 1;\\n}\\n.folder-name__icon[data-v-77915c0c] {\\n height: 40%;\\n margin-top: calc(30% - 1rem / 2);\\n background-size: 40%;\\n}\\n.folder-name__name[data-v-77915c0c] {\\n overflow: hidden;\\n height: 1rem;\\n padding: 0 10px;\\n text-align: center;\\n white-space: nowrap;\\n text-overflow: ellipsis;\\n color: var(--color-main-background);\\n text-shadow: 0 0 8px var(--color-main-text);\\n font-size: 1rem;\\n line-height: 1rem;\\n}\\n.folder--clear .folder-name__icon[data-v-77915c0c] {\\n opacity: 0.3;\\n}\\n.folder--clear .folder-name__name[data-v-77915c0c] {\\n color: var(--color-main-text);\\n text-shadow: 0 0 8px var(--color-main-background);\\n}\\n.folder:not(.folder--clear) .cover[data-v-77915c0c] {\\n opacity: 0.3;\\n}\\n.folder:not(.folder--clear):active .folder-name[data-v-77915c0c],\\n.folder:not(.folder--clear):active .cover[data-v-77915c0c], .folder:not(.folder--clear):hover .folder-name[data-v-77915c0c],\\n.folder:not(.folder--clear):hover .cover[data-v-77915c0c], .folder:not(.folder--clear):focus .folder-name[data-v-77915c0c],\\n.folder:not(.folder--clear):focus .cover[data-v-77915c0c] {\\n opacity: 0;\\n}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\n import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/dist/cjs.js!../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-2[0].rules[0].use[3]!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FolderTagPreview.vue?vue&type=style&index=0&id=77915c0c&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!./FolderTagPreview.vue?vue&type=style&index=0&id=77915c0c&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./FolderTagPreview.vue?vue&type=template&id=77915c0c&scoped=true&\"\nimport script from \"./FolderTagPreview.vue?vue&type=script&lang=js&\"\nexport * from \"./FolderTagPreview.vue?vue&type=script&lang=js&\"\nimport style0 from \"./FolderTagPreview.vue?vue&type=style&index=0&id=77915c0c&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 \"77915c0c\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/home/louis/workspace/nextcloud/apps/photos/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('77915c0c')) {\n api.createRecord('77915c0c', component.options)\n } else {\n api.reload('77915c0c', component.options)\n }\n module.hot.accept(\"./FolderTagPreview.vue?vue&type=template&id=77915c0c&scoped=true&\", function () {\n api.rerender('77915c0c', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"src/components/FolderTagPreview.vue\"\nexport default component.exports","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FolderTagPreview.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!./FolderTagPreview.vue?vue&type=script&lang=js&\"","var render = function () {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"router-link\",\n {\n staticClass: \"folder\",\n class: { \"folder--clear\": _vm.isEmpty },\n attrs: { to: _vm.to, \"aria-label\": _vm.ariaLabel },\n },\n [\n _c(\"transition\", { attrs: { name: \"fade\" } }, [\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.loaded,\n expression: \"loaded\",\n },\n ],\n staticClass: \"folder-content\",\n class: \"folder-content--grid-\" + _vm.previewList.length,\n attrs: { role: \"none\" },\n },\n _vm._l(_vm.previewList, function (file) {\n return _c(\"img\", {\n key: file.fileid,\n attrs: { src: _vm.generateImgSrc(file), alt: \"\" },\n on: {\n load: function ($event) {\n _vm.loaded = true\n },\n error: function ($event) {\n return _vm.onPreviewFail(file)\n },\n },\n })\n }),\n 0\n ),\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"folder-name\" }, [\n _c(\"span\", {\n staticClass: \"folder-name__icon\",\n class: [!_vm.isEmpty ? \"icon-white\" : \"icon-dark\", _vm.icon],\n attrs: { role: \"img\" },\n }),\n _vm._v(\" \"),\n _c(\n \"p\",\n { staticClass: \"folder-name__name\", attrs: { id: _vm.ariaUuid } },\n [_vm._v(\"\\n\\t\\t\\t\" + _vm._s(_vm.name) + \"\\n\\t\\t\")]\n ),\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"cover\", attrs: { role: \"none\" } }),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }"],"names":[],"sourceRoot":""}