Server IP : 184.154.167.98 / Your IP : 3.137.177.116 Web Server : Apache System : Linux pink.dnsnetservice.com 4.18.0-553.22.1.lve.1.el8.x86_64 #1 SMP Tue Oct 8 15:52:54 UTC 2024 x86_64 User : puertode ( 1767) PHP Version : 7.2.34 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /home/puertode/public_html/fotografico/apps/photos/js/ |
Upload File : |
{"version":3,"file":"photos-11.js?v=d2fa0deec7b86dcbd507","sources":["webpack:///./node_modules/@essentials/raf/dist/module/index.js","webpack:///./node_modules/@essentials/request-timeout/dist/module/index.js","webpack:///./src/components/VirtualGrid.vue?1345","webpack:///./src/views/Timeline.vue?9e76","webpack:///./src/components/VirtualGrid.vue?9f9c","webpack:///./src/components/VirtualGrid.vue?433c","webpack:///./src/components/VirtualGrid.vue?9131","webpack:///./src/views/Timeline.vue?83ef","webpack:///./src/assets/grid-sizes.js","webpack:///./src/components/VirtualGrid.vue","webpack:///./src/components/VirtualGrid.vue?d88f","webpack:///./src/components/VirtualGrid.vue?0a73","webpack:///./src/components/VirtualGrid.vue?96a3","webpack:///./src/mixins/GridConfig.js","webpack:///./src/services/DavClient.js","webpack:///./src/services/DavRequest.js","webpack:///./src/services/GridConfig.js","webpack:///./src/services/PhotoSearch.js","webpack:///./src/views/Timeline.vue","webpack:///./src/views/Timeline.vue?21b8","webpack:///./src/views/Timeline.vue?d68f"],"sourcesContent":["let u = 'undefined',\n win = typeof window !== u ? window : {},\n p = typeof performance !== u ? performance : Date,\n now = () => p.now(),\n af = 'AnimationFrame',\n Caf = 'cancel' + af,\n Raf = 'request' + af,\n raf = win[Raf] && /*#__PURE__*/win[Raf].bind(win),\n caf = win[Caf] && /*#__PURE__*/win[Caf].bind(win);\n\nfunction _ref(h) {\n return clearTimeout(h);\n}\n\nif (!raf || !caf) {\n let lastTime = 0;\n\n raf = callback => {\n let curr = now(),\n next = Math.max(lastTime + 1000 / 60, curr);\n return setTimeout(() => {\n callback(lastTime = next);\n }, next - curr);\n };\n\n caf = _ref;\n}\n\nexport { raf, caf, now };","/**\n * Copyright 2011, Joe Lambert.\n * Free to use under the MIT license.\n * http://www.opensource.org/licenses/mit-license.php\n **/\nimport { raf, caf, now } from '@essentials/raf';\nexport var clearRequestTimeout = function clearRequestTimeout(handle) {\n caf(handle.v || -1);\n};\nexport var requestTimeout = function requestTimeout(fn, ms) {\n var start = now(),\n handle = {};\n\n var loop = function loop() {\n now() - start >= ms ? fn.call(null) : handle.v = raf(loop);\n };\n\n handle.v = raf(loop);\n return handle;\n};\nexport default requestTimeout;","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\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 { requestTimeout, clearRequestTimeout } from '@essentials/request-timeout';\nimport Grid from './Grid';\nimport GridConfigMixin from '../mixins/GridConfig';\n/**\n * Specifies the number of miliseconds during which to disable pointer events while a scroll is in progress.\n * This improves performance and makes scrolling smoother.\n */\n\nexport var DEFAULT_SCROLLING_RESET_TIME_INTERVAL = 150;\nexport default {\n name: 'VirtualGrid',\n components: {\n Grid: Grid\n },\n mixins: [GridConfigMixin],\n props: {\n list: {\n type: Array,\n default: function _default() {\n return [];\n }\n },\n props: {\n type: Function,\n default: function _default() {\n return {};\n }\n },\n component: {\n type: Function,\n required: true\n },\n loadingPage: {\n type: Boolean,\n default: false\n }\n },\n data: function data() {\n return {\n shownFirstRow: 0,\n shownLastRow: this.getRowNumber(this.list.length - 1)\n };\n },\n computed: {\n shownList: function shownList() {\n var _this = this;\n\n return this.list.filter(function (item, index) {\n return _this.isVisible(index);\n });\n },\n\n /**\n * Calculate the top filler needed padding\n * to compensate for the hidden items\n * @returns {string}\n */\n topPadding: function topPadding() {\n return \"\".concat(this.shownFirstRow * 100, \"%\");\n },\n\n /**\n * Calculate the bottom filler needed padding\n * to compensate for the hidden items\n * Because bottomShift indicate the index of the last visible item,\n * we need to calcuta ehow any rows there is to compensate\n * between bottomShift and the end of the list\n * @returns {string}\n */\n bottomPadding: function bottomPadding() {\n return \"\".concat((this.lastRow - this.shownLastRow) * 100, \"%\");\n },\n lastRow: function lastRow() {\n return this.getRowNumber(this.list.length - 1);\n }\n },\n created: function created() {\n window.addEventListener('resize', this.onDocumentScroll);\n window.addEventListener('scroll', this.onDocumentScroll);\n },\n mounted: function mounted() {\n this.onDocumentScroll();\n },\n beforeDestroy: function beforeDestroy() {\n window.removeEventListener('resize', this.onDocumentScroll);\n window.removeEventListener('scroll', this.onDocumentScroll);\n },\n methods: {\n /**\n * Request an animation frame and debounce the onScroll method\n */\n debounceOnDocumentScroll: function debounceOnDocumentScroll() {\n if (this.debounceOnDocumentScrollRequest) {\n clearRequestTimeout(this.debounceOnDocumentScrollRequest);\n }\n\n this.debounceOnDocumentScrollRequest = requestTimeout(this.onDocumentScroll, DEFAULT_SCROLLING_RESET_TIME_INTERVAL //\n );\n },\n\n /**\n * Handle document scroll\n * Detect first visible/hidden to implement virtual scrolling\n */\n onDocumentScroll: function onDocumentScroll() {\n // get the row height\n var gridContainer = this.$refs.grid.$el;\n var gridStyles = getComputedStyle(gridContainer);\n var rowHeight = parseFloat(gridStyles.gridTemplateColumns.split(' ')[0], 10); // scrolled content\n // rounding up to tens to make sure we only detect changes by steps of 10px\n\n var scrolled = this.roundToTen(window.pageYOffset - this.gridConfig.marginTop); // adding one above and one under to have a trigger area of one row\n\n var shownFirstRow = Math.floor(scrolled / (rowHeight + this.gridConfig.gap)) - 1;\n var shownLastRow = Math.ceil(window.innerHeight / rowHeight) + shownFirstRow + 1;\n this.shownFirstRow = Math.max(shownFirstRow, 0); // the first shown row cannot be negative\n\n this.shownLastRow = Math.min(shownLastRow, this.lastRow); // the last shown row cannot be lower than the last row\n\n if (this.shownLastRow >= this.lastRow) {\n this.$emit('bottomReached');\n }\n },\n isVisible: function isVisible(index) {\n var row = this.getRowNumber(index);\n return row >= this.shownFirstRow && row < this.shownLastRow + 1;\n },\n\n /**\n * Return the row number of the provided index\n *\n * @param {number} index the index\n * @returns {number}\n */\n getRowNumber: function getRowNumber(index) {\n // in case the grid config is not here yet, let's\n var count = this.gridConfig ? this.gridConfig.count : this.list.length;\n return Math.floor(index / count);\n },\n\n /**\n * Round the provided number to a tens of its value\n *\n * @param {number} number the number to round\n * @returns {number}\n */\n roundToTen: function roundToTen(number) {\n return Math.floor(number / 10) * 10;\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\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\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 { mapGetters } from 'vuex';\nimport debounce from 'debounce';\nimport getPhotos from '../services/PhotoSearch';\nimport EmptyContent from '../components/EmptyContent';\nimport File from '../components/File';\nimport VirtualGrid from '../components/VirtualGrid';\nimport Navigation from '../components/Navigation';\nimport cancelableRequest from '../utils/CancelableRequest';\nimport GridConfigMixin from '../mixins/GridConfig';\nexport default {\n name: 'Timeline',\n components: {\n EmptyContent: EmptyContent,\n VirtualGrid: VirtualGrid,\n Navigation: Navigation\n },\n mixins: [GridConfigMixin],\n props: {\n loading: {\n type: Boolean,\n required: true\n },\n onlyFavorites: {\n type: Boolean,\n default: false\n },\n rootTitle: {\n type: String,\n required: true\n },\n path: {\n type: String,\n default: ''\n }\n },\n data: function data() {\n return {\n cancelRequest: null,\n done: false,\n error: null,\n loadingPage: false,\n page: 0\n };\n },\n computed: _objectSpread(_objectSpread({}, mapGetters(['files', 'timeline'])), {}, {\n fileList: function fileList() {\n var _this = this;\n\n return this.timeline.map(function (id) {\n return _this.files[id];\n }).filter(function (file) {\n return !!file;\n });\n },\n // is current folder empty?\n isEmpty: function isEmpty() {\n return this.fileList.length === 0;\n }\n }),\n watch: {\n onlyFavorites: function onlyFavorites() {\n var _this2 = this;\n\n return _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {\n return regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n // reset component\n _this2.resetState(); // content is completely different\n\n\n _this2.$emit('update:loading', true);\n\n _this2.fetchContent();\n\n case 3:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }))();\n }\n },\n beforeMount: function beforeMount() {\n var _this3 = this;\n\n return _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() {\n return regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _this3.resetState();\n\n _this3.fetchContent();\n\n case 2:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }))();\n },\n beforeDestroy: function beforeDestroy() {\n // cancel any pending requests\n if (this.cancelRequest) {\n this.cancelRequest('Changed view');\n }\n },\n methods: {\n fetchContent: function fetchContent() {\n var _this4 = this;\n\n return _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3() {\n var _cancelableRequest, request, cancel, files;\n\n return regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n if (!_this4.loadingPage) {\n _context3.next = 2;\n break;\n }\n\n return _context3.abrupt(\"return\");\n\n case 2:\n // cancel any pending requests\n if (_this4.cancelRequest) {\n _this4.cancelRequest('Changed view');\n } // if we don't already have some cached data let's show a loader\n\n\n if (_this4.timeline.length === 0) {\n _this4.$emit('update:loading', true);\n }\n\n _this4.error = null;\n _this4.loadingPage = true; // init cancellable request\n\n _cancelableRequest = cancelableRequest(getPhotos), request = _cancelableRequest.request, cancel = _cancelableRequest.cancel;\n _this4.cancelRequest = cancel;\n _context3.prev = 8;\n _context3.next = 11;\n return request(_this4.onlyFavorites, {\n page: _this4.page,\n perPage: _this4.gridConfig.count * 5 // we load 5 rows,\n\n });\n\n case 11:\n files = _context3.sent;\n\n _this4.$store.dispatch('updateTimeline', files);\n\n _this4.$store.dispatch('appendFiles', files); // next time we load this script, we load the next page if the list returned\n\n\n if (files.length === _this4.gridConfig.count * 5) {\n _this4.page++;\n } else {\n console.debug('We loaded the last page');\n _this4.done = true;\n } // return for the viewer loadMore method\n\n\n return _context3.abrupt(\"return\", files);\n\n case 18:\n _context3.prev = 18;\n _context3.t0 = _context3[\"catch\"](8);\n\n if (_context3.t0.response && _context3.t0.response.status) {\n if (_context3.t0.response.status === 404) {\n _this4.error = 404;\n setTimeout(function () {\n _this4.$router.push({\n name: _this4.$route.name\n });\n }, 3000);\n } else {\n _this4.error = _context3.t0;\n }\n } // cancelled request, moving on...\n\n\n console.error('Error fetching timeline', _context3.t0);\n\n case 22:\n _context3.prev = 22;\n\n // done loading even with errors\n _this4.$emit('update:loading', false);\n\n _this4.loadingPage = false;\n _this4.cancelRequest = null;\n return _context3.finish(22);\n\n case 27:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3, null, [[8, 18, 22, 27]]);\n }))();\n },\n\n /**\n * Return the props based on the element\n * Here we want to bind the full fileinfo\n * object so we stupidly return it whole!\n *\n * @param {Object} item the scoped item from the VirtualGrid\n * @returns {Object}\n */\n getProps: function getProps(item) {\n return Object.assign({}, item, {\n loadMore: this.fetchContent\n });\n },\n\n /**\n * Return the component based on the element\n * We only have files in the Timeline,\n * so we return Files!\n *\n * @returns {Object}\n */\n getComponent: function getComponent() {\n return File;\n },\n debounceOnBottomReached: debounce(function () {\n this.onBottomReached();\n }, 1000),\n\n /**\n * When virtual grid reach the bottom,\n * we load the next page\n */\n onBottomReached: function onBottomReached() {\n // if we're currently loading or if a previous\n // request returned the last page, we stop\n if (this.loadingPage || this.done) {\n return;\n }\n\n console.debug('Loading next page', this.page);\n this.fetchContent();\n },\n\n /**\n * Reset this component data to a pristine state\n */\n resetState: function resetState() {\n this.$store.dispatch('resetTimeline');\n this.done = false;\n this.error = null;\n this.loadingPage = false;\n this.page = 0;\n this.page = 0;\n }\n }\n};","// Imports\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(false);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".grid-filler[data-v-178c031e] {\\n grid-column-end: -1;\\n}\\n.grid-loading[data-v-178c031e] {\\n grid-column: 1/-1;\\n height: 88px;\\n}\\n\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","var api = require(\"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../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??ref--1-3!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VirtualGrid.vue?vue&type=style&index=0&id=178c031e&lang=scss&scoped=true&\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","var render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"Grid\",\n { ref: \"grid\" },\n [\n _c(\"span\", {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.shownFirstRow > 0,\n expression: \"shownFirstRow > 0\"\n }\n ],\n key: \"filler-top\",\n ref: \"filler-top\",\n staticClass: \"grid-filler grid-filler--top\",\n style: { paddingBottom: _vm.topPadding },\n attrs: { role: \"none\" }\n }),\n _vm._v(\" \"),\n _vm._l(_vm.shownList, function(item, index) {\n return _c(\n _vm.component(item),\n _vm._b(\n {\n key: item.fileid,\n ref: \"item-\" + index,\n refInFor: true,\n tag: \"component\",\n class: \"row-\" + _vm.getRowNumber(index),\n attrs: { list: _vm.list }\n },\n \"component\",\n _vm.props(item),\n false\n )\n )\n }),\n _vm._v(\" \"),\n _vm.loadingPage\n ? _c(\"div\", {\n key: \"grid-loading\",\n staticClass: \"grid-loading icon-loading\",\n attrs: { role: \"none\" }\n })\n : _vm._e(),\n _vm._v(\" \"),\n _c(\"span\", {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.shownLastRow < _vm.lastRow,\n expression: \"shownLastRow < lastRow\"\n }\n ],\n key: \"filler-bottom\",\n ref: \"filler-bottom\",\n staticClass: \"grid-filler grid-filler--bottom\",\n style: { paddingBottom: _vm.bottomPadding },\n attrs: { role: \"none\" }\n })\n ],\n 2\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _vm.error === 404\n ? _c(\"EmptyContent\", { attrs: { \"illustration-name\": \"folder\" } }, [\n _vm._v(\n \"\\n\\t\" + _vm._s(_vm.t(\"photos\", \"This folder does not exists\")) + \"\\n\"\n )\n ])\n : _vm.error\n ? _c(\"EmptyContent\", [\n _vm._v(\"\\n\\t\" + _vm._s(_vm.t(\"photos\", \"An error occurred\")) + \"\\n\")\n ])\n : !_vm.loading && _vm.isEmpty\n ? _c(\"EmptyContent\", { attrs: { \"illustration-name\": \"empty\" } }, [\n _vm._v(\"\\n\\t\" + _vm._s(_vm.t(\"photos\", \"No photos in here\")) + \"\\n\")\n ])\n : !_vm.loading\n ? _c(\n \"div\",\n [\n _c(\"Navigation\", {\n key: \"navigation\",\n attrs: {\n basename: _vm.path,\n filename: \"/\",\n \"root-title\": _vm.rootTitle\n }\n }),\n _vm._v(\" \"),\n _c(\"VirtualGrid\", {\n attrs: {\n component: _vm.getComponent,\n list: _vm.fileList,\n \"loading-page\": _vm.loadingPage,\n props: _vm.getProps\n },\n on: { bottomReached: _vm.onBottomReached }\n })\n ],\n 1\n )\n : _vm._e()\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","/**\n * @copyright Copyright (c) 2018 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\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 ompatible with webpack config\n * so no export default {}\n */\n\nmodule.exports = {\n sizes: {\n 400: {\n marginTop: 66,\n // same as grid-gap\n marginW: gap,\n // same as grid-gap\n count: 3,\n gap: gap\n },\n 700: {\n marginTop: 66,\n marginW: 8,\n // same as grid-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};","import { render, staticRenderFns } from \"./VirtualGrid.vue?vue&type=template&id=178c031e&scoped=true&\"\nimport script from \"./VirtualGrid.vue?vue&type=script&lang=js&\"\nexport * from \"./VirtualGrid.vue?vue&type=script&lang=js&\"\nimport style0 from \"./VirtualGrid.vue?vue&type=style&index=0&id=178c031e&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 \"178c031e\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/home/admin/Docker/apps2/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('178c031e')) {\n api.createRecord('178c031e', component.options)\n } else {\n api.reload('178c031e', component.options)\n }\n module.hot.accept(\"./VirtualGrid.vue?vue&type=template&id=178c031e&scoped=true&\", function () {\n api.rerender('178c031e', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"src/components/VirtualGrid.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!./VirtualGrid.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!./VirtualGrid.vue?vue&type=script&lang=js&\"","import mod from \"-!../../node_modules/style-loader/dist/cjs.js!../../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??ref--1-3!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VirtualGrid.vue?vue&type=style&index=0&id=178c031e&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../node_modules/style-loader/dist/cjs.js!../../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??ref--1-3!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VirtualGrid.vue?vue&type=style&index=0&id=178c031e&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VirtualGrid.vue?vue&type=template&id=178c031e&scoped=true&\"","/**\n * @copyright Copyright (c) 2018 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\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('Current grid config', 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 GNU AGPL version 3 or any later version\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 webdav from 'webdav';\nimport axios from '@nextcloud/axios';\nimport parseUrl from 'url-parse';\nimport { generateRemoteUrl } from '@nextcloud/router'; // force our axios\n\nvar patcher = webdav.getPatcher();\npatcher.patch('request', axios); // init webdav client on default dav endpoint\n\nvar remote = generateRemoteUrl('dav');\nvar client = webdav.createClient(remote);\nexport var remotePath = parseUrl(remote).pathname;\nexport default client;","/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\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 */\nvar props = \"\\n\\t<oc:fileid />\\n\\t<d:getlastmodified />\\n\\t<d:getetag />\\n\\t<d:getcontenttype />\\n\\t<d:getcontentlength />\\n\\t<nc:has-preview />\\n\\t<oc:favorite />\\n\\t<d:resourcetype />\";\nexport { props };\nexport default \"<?xml version=\\\"1.0\\\"?>\\n\\t\\t\\t<d:propfind xmlns:d=\\\"DAV:\\\"\\n\\t\\t\\t\\txmlns:oc=\\\"http://owncloud.org/ns\\\"\\n\\t\\t\\t\\txmlns:nc=\\\"http://nextcloud.org/ns\\\"\\n\\t\\t\\t\\txmlns:ocs=\\\"http://open-collaboration-services.org/ns\\\">\\n\\t\\t\\t\\t<d:prop>\\n\\t\\t\\t\\t\\t\".concat(props, \"\\n\\t\\t\\t\\t</d:prop>\\n\\t\\t\\t</d:propfind>\");","/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\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];\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 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\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 { genFileInfo } from '../utils/fileUtils';\nimport { getCurrentUser } from '@nextcloud/auth';\nimport allowedMimes from './AllowedMimes';\nimport client from './DavClient';\nimport { props } from './DavRequest';\nimport { sizes } from '../assets/grid-sizes';\n/**\n * List files from a folder and filter out unwanted mimes\n *\n * @param {boolean} [onlyFavorites=false] not used\n * @param {Object} [options] used for the cancellable requests\n * @param {number} [options.page=0] which page to start (starts at 0)\n * @param {number} [options.perPage] how many to display per page default is 5 times the max number per line from the grid-sizes config file\n * @param {boolean} [options.full=false] get full data of the files\n * @returns {Array} the file list\n */\n\nexport default function () {\n return _ref.apply(this, arguments);\n}\n\nfunction _ref() {\n _ref = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {\n var onlyFavorites,\n options,\n prefixPath,\n orMime,\n eqFavorites,\n response,\n _args = arguments;\n return regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n onlyFavorites = _args.length > 0 && _args[0] !== undefined ? _args[0] : false;\n options = _args.length > 1 && _args[1] !== undefined ? _args[1] : {};\n // default function options\n options = Object.assign({}, {\n page: 0,\n // start at the first page\n perPage: sizes.max.count * 10 // ten rows of the max width\n\n }, options);\n prefixPath = \"/files/\".concat(getCurrentUser().uid); // generating the search or condition\n // based on the allowed mimetypes\n\n orMime = allowedMimes.reduce(function (str, mime) {\n return \"\".concat(str, \"\\n\\t\\t<d:eq>\\n\\t\\t\\t<d:prop>\\n\\t\\t\\t\\t<d:getcontenttype/>\\n\\t\\t\\t</d:prop>\\n\\t\\t\\t<d:literal>\").concat(mime, \"</d:literal>\\n\\t\\t</d:eq>\\n\\t\");\n }, '');\n eqFavorites = onlyFavorites ? \"<d:eq>\\n\\t\\t\\t\\t<d:prop>\\n\\t\\t\\t\\t\\t<oc:favorite/>\\n\\t\\t\\t\\t</d:prop>\\n\\t\\t\\t\\t<d:literal>1</d:literal>\\n\\t\\t\\t</d:eq>\" : '';\n options = Object.assign({\n method: 'SEARCH',\n headers: {\n 'content-Type': 'text/xml'\n },\n data: \"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?>\\n\\t\\t\\t<d:searchrequest xmlns:d=\\\"DAV:\\\"\\n\\t\\t\\t\\txmlns:oc=\\\"http://owncloud.org/ns\\\"\\n\\t\\t\\t\\txmlns:nc=\\\"http://nextcloud.org/ns\\\"\\n\\t\\t\\t\\txmlns:ns=\\\"https://github.com/icewind1991/SearchDAV/ns\\\"\\n\\t\\t\\t\\txmlns:ocs=\\\"http://open-collaboration-services.org/ns\\\">\\n\\t\\t\\t\\t<d:basicsearch>\\n\\t\\t\\t\\t\\t<d:select>\\n\\t\\t\\t\\t\\t\\t<d:prop>\\n\\t\\t\\t\\t\\t\\t\\t\".concat(props, \"\\n\\t\\t\\t\\t\\t\\t</d:prop>\\n\\t\\t\\t\\t\\t</d:select>\\n\\t\\t\\t\\t\\t<d:from>\\n\\t\\t\\t\\t\\t\\t<d:scope>\\n\\t\\t\\t\\t\\t\\t\\t<d:href>\").concat(prefixPath, \"</d:href>\\n\\t\\t\\t\\t\\t\\t\\t<d:depth>infinity</d:depth>\\n\\t\\t\\t\\t\\t\\t</d:scope>\\n\\t\\t\\t\\t\\t</d:from>\\n\\t\\t\\t\\t\\t<d:where>\\n\\t\\t\\t\\t\\t\\t<d:and>\\n\\t\\t\\t\\t\\t\\t\\t<d:or>\\n\\t\\t\\t\\t\\t\\t\\t\\t\").concat(orMime, \"\\n\\t\\t\\t\\t\\t\\t\\t</d:or>\\n\\t\\t\\t\\t\\t\\t\\t\").concat(eqFavorites, \"\\n\\t\\t\\t\\t\\t\\t\\t<d:eq>\\n\\t\\t\\t\\t\\t\\t\\t\\t<d:prop>\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t<oc:owner-id/>\\n\\t\\t\\t\\t\\t\\t\\t\\t</d:prop>\\n\\t\\t\\t\\t\\t\\t\\t\\t<d:literal>\").concat(getCurrentUser().uid, \"</d:literal>\\n\\t\\t\\t\\t\\t\\t\\t</d:eq>\\n\\t\\t\\t\\t\\t\\t</d:and>\\n\\t\\t\\t\\t\\t</d:where>\\n\\t\\t\\t\\t\\t<d:orderby>\\n\\t\\t\\t\\t\\t\\t<d:order>\\n\\t\\t\\t\\t\\t\\t\\t<d:prop><d:getlastmodified/></d:prop>\\n\\t\\t\\t\\t\\t\\t\\t<d:descending/>\\n\\t\\t\\t\\t\\t\\t</d:order>\\n\\t\\t\\t\\t\\t</d:orderby>\\n\\t\\t\\t\\t\\t<d:limit>\\n\\t\\t\\t\\t\\t\\t<d:nresults>\").concat(options.perPage, \"</d:nresults>\\n\\t\\t\\t\\t\\t\\t<ns:firstresult>\").concat(options.page * options.perPage, \"</ns:firstresult>\\n\\t\\t\\t\\t\\t</d:limit>\\n\\t\\t\\t\\t</d:basicsearch>\\n\\t\\t\\t</d:searchrequest>\"),\n deep: true,\n details: true\n }, options);\n _context.next = 9;\n return client.getDirectoryContents('', options);\n\n case 9:\n response = _context.sent;\n return _context.abrupt(\"return\", response.data.map(function (data) {\n return genFileInfo(data);\n }) // remove prefix path from full file path\n .map(function (data) {\n return Object.assign({}, data, {\n filename: data.filename.replace(prefixPath, '')\n });\n }));\n\n case 11:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n return _ref.apply(this, arguments);\n}","import { render, staticRenderFns } from \"./Timeline.vue?vue&type=template&id=e945440a&\"\nimport script from \"./Timeline.vue?vue&type=script&lang=js&\"\nexport * from \"./Timeline.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\n/* hot reload */\nif (module.hot) {\n var api = require(\"/home/admin/Docker/apps2/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('e945440a')) {\n api.createRecord('e945440a', component.options)\n } else {\n api.reload('e945440a', component.options)\n }\n module.hot.accept(\"./Timeline.vue?vue&type=template&id=e945440a&\", function () {\n api.rerender('e945440a', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"src/views/Timeline.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!./Timeline.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!./Timeline.vue?vue&type=script&lang=js&\"","export * from \"-!../../node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Timeline.vue?vue&type=template&id=e945440a&\""],"mappings":";;;;;;;;;;AAAA;AAAA;AAAA;AAAA;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;;;;;;;;;;;;;AC3BA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACpBA;AAAA;AAAA;AAAA;AAAA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC1LA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACtUA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;AClBA;AAAA;AAAA;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;;;;;;;;;;;;;ACxEA;AAAA;AAAA;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;;;;;;;;;;;;;;;;;;;;;;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACjGA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAiBA;AACA;AACA;;;;;;;;;;;;ACvCA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;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;;;;;;;;;;;;AC5CA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;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;;;;;;;;;;;;AChCA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACvBA;AAAA;AAAA;AAAA;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;;;;;;;;;;;;AClDA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;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;;;;;;;;;;;;AC1GA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAiBA;AACA;AACA;;;;;;;;;;;;ACtCA;AAAA;AAAA;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;A","sourceRoot":""}