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

photos-src_mixins_GridConfig_js-src_utils_CancelableRequest_js-src_components_FolderTagPreview_vue.js.map « js - github.com/nextcloud/photos.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 0524b000a7ca8a24e338ebb2bf87ff38d259584f (plain)
1
{"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":""}