aboutsummaryrefslogtreecommitdiffstats
path: root/dist/dashboard-dashboard-main.js.map
diff options
context:
space:
mode:
Diffstat (limited to 'dist/dashboard-dashboard-main.js.map')
-rw-r--r--dist/dashboard-dashboard-main.js.map1
1 files changed, 0 insertions, 1 deletions
diff --git a/dist/dashboard-dashboard-main.js.map b/dist/dashboard-dashboard-main.js.map
deleted file mode 100644
index 530307407a5..00000000000
--- a/dist/dashboard-dashboard-main.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"dashboard-dashboard-main.js?v=c13b5fed857155f8c15e","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;;;;;;;;;;;;;;;AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;;;;;;;;;;;;;;;;;;;;;;;;;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;AC1cA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC3JA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAkBA;AACA;;;;;;;;;;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAkBA;AACA;;;;;;;;;;;;;;;ACvCA;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACvVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACzFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AC7BA;AACA;AACA;;;;;ACFA;;;;;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;;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACPA;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACNA;AACA;AACA;AACA;AACA;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AElDA;AACA;AACA;AACA;AACA","sources":["webpack:///nextcloud/apps/dashboard/src/helpers/getBackgroundUrl.js","webpack:///nextcloud/apps/dashboard/src/helpers/prefixWithBaseUrl.js","webpack:///nextcloud/apps/dashboard/src/main.js","webpack:///nextcloud/apps/dashboard/src/mixins/isMobile.js","webpack:///nextcloud/apps/dashboard/src/App.vue?vue&type=script&lang=js&","webpack:///nextcloud/apps/dashboard/src/components/BackgroundSettings.vue?vue&type=script&lang=js&","webpack:///nextcloud/apps/dashboard/src/App.vue?vue&type=style&index=0&id=47e146e8&lang=scss&scoped=true&","webpack:///nextcloud/apps/dashboard/src/components/BackgroundSettings.vue?vue&type=style&index=0&id=7e3f4375&scoped=true&lang=scss&","webpack://nextcloud/./apps/dashboard/src/App.vue?8b87","webpack://nextcloud/./apps/dashboard/src/components/BackgroundSettings.vue?18ed","webpack:///nextcloud/apps/dashboard/src/App.vue","webpack:///nextcloud/apps/dashboard/src/components/BackgroundSettings.vue","webpack://nextcloud/./apps/dashboard/src/App.vue?8fcd","webpack://nextcloud/./apps/dashboard/src/components/BackgroundSettings.vue?9d11","webpack:///nextcloud/apps/dashboard/src/App.vue?vue&type=template&id=47e146e8&scoped=true&","webpack:///nextcloud/apps/dashboard/src/components/BackgroundSettings.vue?vue&type=template&id=7e3f4375&scoped=true&","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/amd define","webpack:///nextcloud/webpack/runtime/amd options","webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/before-startup","webpack:///nextcloud/webpack/startup","webpack:///nextcloud/webpack/after-startup"],"sourcesContent":["/**\n * @copyright Copyright (c) 2020 Julius Härtl <jus@bitgrid.net>\n *\n * @author Avior <florian.bouillon@delta-wings.net>\n * @author Julien Veyssier <eneiluj@posteo.net>\n * @author Julius Härtl <jus@bitgrid.net>\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 { generateUrl } from '@nextcloud/router';\nimport prefixWithBaseUrl from './prefixWithBaseUrl';\nexport default (function (background) {\n let time = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n let themingDefaultBackground = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';\n\n if (background === 'default') {\n if (themingDefaultBackground && themingDefaultBackground !== 'backgroundColor') {\n return generateUrl('/apps/theming/image/background') + '?v=' + window.OCA.Theming.cacheBuster;\n }\n\n if (window.OCA.Accessibility && window.OCA.Accessibility.theme === 'dark') {\n return prefixWithBaseUrl('eduardo-neves-pedra-azul.jpg');\n }\n\n return prefixWithBaseUrl('kamil-porembinski-clouds.jpg');\n } else if (background === 'custom') {\n return generateUrl('/apps/dashboard/background') + '?v=' + time;\n }\n\n return prefixWithBaseUrl(background);\n});","/**\n * @copyright Copyright (c) 2020 Julius Härtl <jus@bitgrid.net>\n *\n * @author Julius Härtl <jus@bitgrid.net>\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 { generateFilePath } from '@nextcloud/router';\nexport default (url => generateFilePath('dashboard', '', 'img/') + url);","/**\n * @copyright Copyright (c) 2016 Julius Härtl <jus@bitgrid.net>\n *\n * @author Julius Härtl <jus@bitgrid.net>\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 App from './App.vue';\nimport { translate as t } from '@nextcloud/l10n';\nimport VTooltip from '@nextcloud/vue/dist/Directives/Tooltip';\nimport { getRequestToken } from '@nextcloud/auth'; // eslint-disable-next-line camelcase\n\n__webpack_nonce__ = btoa(getRequestToken());\nVue.directive('Tooltip', VTooltip);\nVue.prototype.t = t; // FIXME workaround to make the sidebar work\n\nif (!window.OCA.Files) {\n window.OCA.Files = {};\n}\n\nObject.assign(window.OCA.Files, {\n App: {\n fileList: {\n filesClient: OC.Files.getClient()\n }\n }\n}, window.OCA.Files);\nconst Dashboard = Vue.extend(App);\nconst Instance = new Dashboard({}).$mount('#app-content-vue');\nwindow.OCA.Dashboard = {\n register: (app, callback) => Instance.register(app, callback),\n registerStatus: (app, callback) => Instance.registerStatus(app, callback)\n};","/**\n * @copyright Copyright (c) 2020 Julius Härtl <jus@bitgrid.net>\n *\n * @author Julius Härtl <jus@bitgrid.net>\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 */\nexport default {\n data() {\n return {\n isMobile: this._isMobile()\n };\n },\n\n beforeMount() {\n window.addEventListener('resize', this._onResize);\n },\n\n beforeDestroy() {\n window.removeEventListener('resize', this._onResize);\n },\n\n methods: {\n _onResize() {\n // Update mobile mode\n this.isMobile = this._isMobile();\n },\n\n _isMobile() {\n // check if content width is under 768px\n return document.documentElement.clientWidth < 768;\n }\n\n }\n};","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\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 Vue from 'vue';\nimport { loadState } from '@nextcloud/initial-state';\nimport { getCurrentUser } from '@nextcloud/auth';\nimport Modal from '@nextcloud/vue/dist/Components/Modal';\nimport Draggable from 'vuedraggable';\nimport axios from '@nextcloud/axios';\nimport { generateUrl } from '@nextcloud/router';\nimport isMobile from './mixins/isMobile';\nimport BackgroundSettings from './components/BackgroundSettings';\nimport getBackgroundUrl from './helpers/getBackgroundUrl';\nconst panels = loadState('dashboard', 'panels');\nconst firstRun = loadState('dashboard', 'firstRun');\nconst background = loadState('dashboard', 'background');\nconst themingDefaultBackground = loadState('dashboard', 'themingDefaultBackground');\nconst version = loadState('dashboard', 'version');\nconst shippedBackgroundList = loadState('dashboard', 'shippedBackgrounds');\nconst statusInfo = {\n weather: {\n text: t('dashboard', 'Weather'),\n icon: 'icon-weather-status'\n },\n status: {\n text: t('dashboard', 'Status'),\n icon: 'icon-user-status-online'\n }\n};\nexport default {\n name: 'App',\n components: {\n Modal,\n Draggable,\n BackgroundSettings\n },\n mixins: [isMobile],\n\n data() {\n var _getCurrentUser, _getCurrentUser2;\n\n return {\n isAdmin: getCurrentUser().isAdmin,\n timer: new Date(),\n registeredStatus: [],\n callbacks: {},\n callbacksStatus: {},\n allCallbacksStatus: {},\n statusInfo,\n enabledStatuses: loadState('dashboard', 'statuses'),\n panels,\n firstRun,\n displayName: (_getCurrentUser = getCurrentUser()) === null || _getCurrentUser === void 0 ? void 0 : _getCurrentUser.displayName,\n uid: (_getCurrentUser2 = getCurrentUser()) === null || _getCurrentUser2 === void 0 ? void 0 : _getCurrentUser2.uid,\n layout: loadState('dashboard', 'layout').filter(panelId => panels[panelId]),\n modal: false,\n appStoreUrl: generateUrl('/settings/apps/dashboard'),\n statuses: {},\n background,\n themingDefaultBackground,\n version\n };\n },\n\n computed: {\n backgroundImage() {\n return getBackgroundUrl(this.background, this.version, this.themingDefaultBackground);\n },\n\n backgroundStyle() {\n if (this.background === 'default' && this.themingDefaultBackground === 'backgroundColor' || this.background.match(/#[0-9A-Fa-f]{6}/g)) {\n return null;\n }\n\n return {\n backgroundImage: \"url(\".concat(this.backgroundImage, \")\")\n };\n },\n\n greeting() {\n const time = this.timer.getHours(); // Determine part of the day\n\n let partOfDay;\n\n if (time >= 22 || time < 5) {\n partOfDay = 'night';\n } else if (time >= 18) {\n partOfDay = 'evening';\n } else if (time >= 12) {\n partOfDay = 'afternoon';\n } else {\n partOfDay = 'morning';\n } // Define the greetings\n\n\n const good = {\n morning: {\n generic: t('dashboard', 'Good morning'),\n withName: t('dashboard', 'Good morning, {name}', {\n name: this.displayName\n }, undefined, {\n escape: false\n })\n },\n afternoon: {\n generic: t('dashboard', 'Good afternoon'),\n withName: t('dashboard', 'Good afternoon, {name}', {\n name: this.displayName\n }, undefined, {\n escape: false\n })\n },\n evening: {\n generic: t('dashboard', 'Good evening'),\n withName: t('dashboard', 'Good evening, {name}', {\n name: this.displayName\n }, undefined, {\n escape: false\n })\n },\n night: {\n // Don't use \"Good night\" as it's not a greeting\n generic: t('dashboard', 'Hello'),\n withName: t('dashboard', 'Hello, {name}', {\n name: this.displayName\n }, undefined, {\n escape: false\n })\n }\n }; // Figure out which greeting to show\n\n const shouldShowName = this.displayName && this.uid !== this.displayName;\n return {\n text: shouldShowName ? good[partOfDay].withName : good[partOfDay].generic\n };\n },\n\n isActive() {\n return panel => this.layout.indexOf(panel.id) > -1;\n },\n\n isStatusActive() {\n return status => !(status in this.enabledStatuses) || this.enabledStatuses[status];\n },\n\n sortedAllStatuses() {\n return Object.keys(this.allCallbacksStatus).slice().sort(this.sortStatuses);\n },\n\n sortedPanels() {\n return Object.values(this.panels).sort((a, b) => {\n const indexA = this.layout.indexOf(a.id);\n const indexB = this.layout.indexOf(b.id);\n\n if (indexA === -1 || indexB === -1) {\n return indexB - indexA || a.id - b.id;\n }\n\n return indexA - indexB || a.id - b.id;\n });\n },\n\n sortedRegisteredStatus() {\n return this.registeredStatus.slice().sort(this.sortStatuses);\n }\n\n },\n watch: {\n callbacks() {\n this.rerenderPanels();\n },\n\n callbacksStatus() {\n for (const app in this.callbacksStatus) {\n const element = this.$refs['status-' + app];\n\n if (this.statuses[app] && this.statuses[app].mounted) {\n continue;\n }\n\n if (element) {\n this.callbacksStatus[app](element[0]);\n Vue.set(this.statuses, app, {\n mounted: true\n });\n } else {\n console.error('Failed to register panel in the frontend as no backend data was provided for ' + app);\n }\n }\n }\n\n },\n\n mounted() {\n this.updateGlobalStyles();\n this.updateSkipLink();\n window.addEventListener('scroll', this.handleScroll);\n setInterval(() => {\n this.timer = new Date();\n }, 30000);\n\n if (this.firstRun) {\n window.addEventListener('scroll', this.disableFirstrunHint);\n }\n },\n\n destroyed() {\n window.removeEventListener('scroll', this.handleScroll);\n },\n\n methods: {\n /**\n * Method to register panels that will be called by the integrating apps\n *\n * @param {string} app The unique app id for the widget\n * @param {Function} callback The callback function to register a panel which gets the DOM element passed as parameter\n */\n register(app, callback) {\n Vue.set(this.callbacks, app, callback);\n },\n\n registerStatus(app, callback) {\n // always save callbacks in case user enables the status later\n Vue.set(this.allCallbacksStatus, app, callback); // register only if status is enabled or missing from config\n\n if (this.isStatusActive(app)) {\n this.registeredStatus.push(app);\n this.$nextTick(() => {\n Vue.set(this.callbacksStatus, app, callback);\n });\n }\n },\n\n rerenderPanels() {\n for (const app in this.callbacks) {\n const element = this.$refs[app];\n\n if (this.layout.indexOf(app) === -1) {\n continue;\n }\n\n if (this.panels[app] && this.panels[app].mounted) {\n continue;\n }\n\n if (element) {\n this.callbacks[app](element[0], {\n widget: this.panels[app]\n });\n Vue.set(this.panels[app], 'mounted', true);\n } else {\n console.error('Failed to register panel in the frontend as no backend data was provided for ' + app);\n }\n }\n },\n\n saveLayout() {\n axios.post(generateUrl('/apps/dashboard/layout'), {\n layout: this.layout.join(',')\n });\n },\n\n saveStatuses() {\n axios.post(generateUrl('/apps/dashboard/statuses'), {\n statuses: JSON.stringify(this.enabledStatuses)\n });\n },\n\n showModal() {\n this.modal = true;\n this.firstRun = false;\n },\n\n closeModal() {\n this.modal = false;\n },\n\n updateCheckbox(panel, currentValue) {\n const index = this.layout.indexOf(panel.id);\n\n if (!currentValue && index > -1) {\n this.layout.splice(index, 1);\n } else {\n this.layout.push(panel.id);\n }\n\n Vue.set(this.panels[panel.id], 'mounted', false);\n this.saveLayout();\n this.$nextTick(() => this.rerenderPanels());\n },\n\n disableFirstrunHint() {\n window.removeEventListener('scroll', this.disableFirstrunHint);\n setTimeout(() => {\n this.firstRun = false;\n }, 1000);\n },\n\n updateBackground(data) {\n this.background = data.type === 'custom' || data.type === 'default' ? data.type : data.value;\n this.version = data.version;\n this.updateGlobalStyles();\n },\n\n updateGlobalStyles() {\n document.body.setAttribute('data-dashboard-background', this.background);\n\n if (window.OCA.Theming.inverted) {\n document.body.classList.add('dashboard--inverted');\n }\n\n const shippedBackgroundTheme = shippedBackgroundList[this.background] ? shippedBackgroundList[this.background].theming : 'light';\n\n if (shippedBackgroundTheme === 'dark') {\n document.body.classList.add('dashboard--dark');\n } else {\n document.body.classList.remove('dashboard--dark');\n }\n },\n\n updateSkipLink() {\n // Make sure \"Skip to main content\" link points to the app content\n document.getElementsByClassName('skip-navigation')[0].setAttribute('href', '#app-dashboard');\n },\n\n updateStatusCheckbox(app, checked) {\n if (checked) {\n this.enableStatus(app);\n } else {\n this.disableStatus(app);\n }\n },\n\n enableStatus(app) {\n this.enabledStatuses[app] = true;\n this.registerStatus(app, this.allCallbacksStatus[app]);\n this.saveStatuses();\n },\n\n disableStatus(app) {\n this.enabledStatuses[app] = false;\n const i = this.registeredStatus.findIndex(s => s === app);\n\n if (i !== -1) {\n this.registeredStatus.splice(i, 1);\n Vue.set(this.statuses, app, {\n mounted: false\n });\n this.$nextTick(() => {\n Vue.delete(this.callbacksStatus, app);\n });\n }\n\n this.saveStatuses();\n },\n\n sortStatuses(a, b) {\n const al = a.toLowerCase();\n const bl = b.toLowerCase();\n return al > bl ? 1 : al < bl ? -1 : 0;\n },\n\n handleScroll() {\n if (window.scrollY > 70) {\n document.body.classList.add('dashboard--scrolled');\n } else {\n document.body.classList.remove('dashboard--scrolled');\n }\n }\n\n }\n};","//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\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 axios from '@nextcloud/axios';\nimport { generateUrl } from '@nextcloud/router';\nimport { loadState } from '@nextcloud/initial-state';\nimport getBackgroundUrl from './../helpers/getBackgroundUrl';\nimport prefixWithBaseUrl from './../helpers/prefixWithBaseUrl';\nconst shippedBackgroundList = loadState('dashboard', 'shippedBackgrounds');\nexport default {\n name: 'BackgroundSettings',\n props: {\n background: {\n type: String,\n default: 'default'\n },\n themingDefaultBackground: {\n type: String,\n default: ''\n }\n },\n\n data() {\n return {\n backgroundImage: generateUrl('/apps/dashboard/background') + '?v=' + Date.now(),\n loading: false\n };\n },\n\n computed: {\n shippedBackgrounds() {\n return Object.keys(shippedBackgroundList).map(item => {\n return {\n name: item,\n url: prefixWithBaseUrl(item),\n preview: prefixWithBaseUrl('previews/' + item),\n details: shippedBackgroundList[item]\n };\n });\n }\n\n },\n methods: {\n async update(data) {\n const background = data.type === 'custom' || data.type === 'default' ? data.type : data.value;\n this.backgroundImage = getBackgroundUrl(background, data.version, this.themingDefaultBackground);\n\n if (data.type === 'color' || data.type === 'default' && this.themingDefaultBackground === 'backgroundColor') {\n this.$emit('update:background', data);\n this.loading = false;\n return;\n }\n\n const image = new Image();\n\n image.onload = () => {\n this.$emit('update:background', data);\n this.loading = false;\n };\n\n image.src = this.backgroundImage;\n },\n\n async setDefault() {\n this.loading = 'default';\n const result = await axios.post(generateUrl('/apps/dashboard/background/default'));\n this.update(result.data);\n },\n\n async setShipped(shipped) {\n this.loading = shipped;\n const result = await axios.post(generateUrl('/apps/dashboard/background/shipped'), {\n value: shipped\n });\n this.update(result.data);\n },\n\n async setFile(path) {\n this.loading = 'custom';\n const result = await axios.post(generateUrl('/apps/dashboard/background/custom'), {\n value: path\n });\n this.update(result.data);\n },\n\n async pickColor() {\n this.loading = 'color';\n const color = OCA && OCA.Theming ? OCA.Theming.color : '#0082c9';\n const result = await axios.post(generateUrl('/apps/dashboard/background/color'), {\n value: color\n });\n this.update(result.data);\n },\n\n pickFile() {\n window.OC.dialogs.filepicker(t('dashboard', 'Insert from {productName}', {\n productName: OC.theme.name\n }), (path, type) => {\n if (type === OC.dialogs.FILEPICKER_TYPE_CHOOSE) {\n this.setFile(path);\n }\n }, false, ['image/png', 'image/gif', 'image/jpeg', 'image/svg'], true, OC.dialogs.FILEPICKER_TYPE_CHOOSE);\n }\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___(function(i){return i[1]});\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"#app-dashboard[data-v-47e146e8] {\\n width: 100%;\\n min-height: 100vh;\\n background-size: cover;\\n background-position: center center;\\n background-repeat: no-repeat;\\n background-attachment: fixed;\\n background-color: var(--color-primary);\\n --color-background-translucent: rgba(255, 255, 255, 0.8);\\n --background-blur: blur(10px);\\n}\\n#body-user.theme--dark #app-dashboard[data-v-47e146e8] {\\n background-color: var(--color-main-background);\\n --color-background-translucent: rgba(24, 24, 24, 0.8);\\n}\\n#body-user.theme--highcontrast #app-dashboard[data-v-47e146e8] {\\n background-color: var(--color-main-background);\\n --color-background-translucent: var(--color-main-background);\\n}\\n#app-dashboard > h2[data-v-47e146e8] {\\n color: var(--color-primary-text);\\n text-align: center;\\n font-size: 32px;\\n line-height: 130%;\\n padding: 10vh 16px 0px;\\n}\\n.panels[data-v-47e146e8] {\\n width: auto;\\n margin: auto;\\n max-width: 1500px;\\n display: flex;\\n justify-content: center;\\n flex-direction: row;\\n align-items: flex-start;\\n flex-wrap: wrap;\\n}\\n.panel[data-v-47e146e8], .panels > div[data-v-47e146e8] {\\n width: 320px;\\n max-width: 100%;\\n margin: 16px;\\n background-color: var(--color-background-translucent);\\n -webkit-backdrop-filter: var(--background-blur);\\n backdrop-filter: var(--background-blur);\\n border-radius: var(--border-radius-large);\\n}\\n#body-user.theme--highcontrast .panel[data-v-47e146e8], #body-user.theme--highcontrast .panels > div[data-v-47e146e8] {\\n border: 2px solid var(--color-border);\\n}\\n.panel.sortable-ghost[data-v-47e146e8], .panels > div.sortable-ghost[data-v-47e146e8] {\\n opacity: 0.1;\\n}\\n.panel > .panel--header[data-v-47e146e8], .panels > div > .panel--header[data-v-47e146e8] {\\n display: flex;\\n z-index: 1;\\n top: 50px;\\n padding: 16px;\\n cursor: grab;\\n}\\n.panel > .panel--header[data-v-47e146e8], .panel > .panel--header[data-v-47e146e8] *, .panels > div > .panel--header[data-v-47e146e8], .panels > div > .panel--header[data-v-47e146e8] * {\\n -webkit-touch-callout: none;\\n -webkit-user-select: none;\\n -khtml-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n}\\n.panel > .panel--header[data-v-47e146e8]:active, .panels > div > .panel--header[data-v-47e146e8]:active {\\n cursor: grabbing;\\n}\\n.panel > .panel--header a[data-v-47e146e8], .panels > div > .panel--header a[data-v-47e146e8] {\\n flex-grow: 1;\\n}\\n.panel > .panel--header > h2[data-v-47e146e8], .panels > div > .panel--header > h2[data-v-47e146e8] {\\n display: block;\\n flex-grow: 1;\\n margin: 0;\\n font-size: 20px;\\n line-height: 24px;\\n font-weight: bold;\\n background-size: 32px;\\n background-position: 14px 12px;\\n padding: 16px 8px 16px 60px;\\n height: 56px;\\n white-space: nowrap;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n cursor: grab;\\n}\\n.panel > .panel--content[data-v-47e146e8], .panels > div > .panel--content[data-v-47e146e8] {\\n margin: 0 16px 16px 16px;\\n height: 420px;\\n overflow: hidden;\\n}\\n@media only screen and (max-width: 709px) {\\n.panel > .panel--content[data-v-47e146e8], .panels > div > .panel--content[data-v-47e146e8] {\\n height: auto;\\n}\\n}\\n.footer[data-v-47e146e8] {\\n text-align: center;\\n transition: bottom var(--animation-slow) ease-in-out;\\n bottom: 0;\\n padding: 44px 0;\\n}\\n.edit-panels[data-v-47e146e8] {\\n display: inline-block;\\n margin: auto;\\n background-position: 16px center;\\n padding: 12px 16px;\\n padding-left: 36px;\\n border-radius: var(--border-radius-pill);\\n max-width: 200px;\\n opacity: 1;\\n text-align: center;\\n}\\n.edit-panels[data-v-47e146e8],\\n.statuses[data-v-47e146e8] .action-item .action-item__menutoggle,\\n.statuses[data-v-47e146e8] .action-item.action-item--open .action-item__menutoggle {\\n background-color: var(--color-background-translucent);\\n -webkit-backdrop-filter: var(--background-blur);\\n backdrop-filter: var(--background-blur);\\n}\\n.edit-panels[data-v-47e146e8]:hover, .edit-panels[data-v-47e146e8]:focus, .edit-panels[data-v-47e146e8]:active,\\n.statuses[data-v-47e146e8] .action-item .action-item__menutoggle:hover,\\n.statuses[data-v-47e146e8] .action-item .action-item__menutoggle:focus,\\n.statuses[data-v-47e146e8] .action-item .action-item__menutoggle:active,\\n.statuses[data-v-47e146e8] .action-item.action-item--open .action-item__menutoggle:hover,\\n.statuses[data-v-47e146e8] .action-item.action-item--open .action-item__menutoggle:focus,\\n.statuses[data-v-47e146e8] .action-item.action-item--open .action-item__menutoggle:active {\\n background-color: var(--color-background-hover);\\n}\\n.modal__content[data-v-47e146e8] {\\n padding: 32px 16px;\\n max-height: 70vh;\\n text-align: center;\\n overflow: auto;\\n}\\n.modal__content ol[data-v-47e146e8] {\\n display: flex;\\n flex-direction: row;\\n justify-content: center;\\n list-style-type: none;\\n padding-bottom: 16px;\\n}\\n.modal__content li label[data-v-47e146e8] {\\n display: block;\\n padding: 48px 8px 16px 8px;\\n margin: 8px;\\n width: 160px;\\n background-color: var(--color-background-hover);\\n border: 2px solid var(--color-main-background);\\n border-radius: var(--border-radius-large);\\n background-size: 24px;\\n background-position: center 16px;\\n text-align: center;\\n}\\n.modal__content li label[data-v-47e146e8]:hover {\\n border-color: var(--color-primary);\\n}\\n.modal__content li input:focus + label[data-v-47e146e8] {\\n border-color: var(--color-primary);\\n}\\n.modal__content h3[data-v-47e146e8] {\\n font-weight: bold;\\n}\\n.modal__content h3[data-v-47e146e8]:not(:first-of-type) {\\n margin-top: 64px;\\n}\\n.modal__content .button[data-v-47e146e8] {\\n display: inline-block;\\n padding: 10px 16px;\\n margin: 0;\\n}\\n.modal__content p[data-v-47e146e8] {\\n max-width: 650px;\\n margin: 0 auto;\\n}\\n.modal__content p a[data-v-47e146e8]:hover,\\n.modal__content p a[data-v-47e146e8]:focus {\\n border-bottom: 2px solid var(--color-border);\\n}\\n.modal__content .credits--end[data-v-47e146e8] {\\n padding-bottom: 32px;\\n color: var(--color-text-maxcontrast);\\n}\\n.modal__content .credits--end a[data-v-47e146e8] {\\n color: var(--color-text-maxcontrast);\\n}\\n.flip-list-move[data-v-47e146e8] {\\n transition: transform var(--animation-slow);\\n}\\n.statuses[data-v-47e146e8] {\\n display: flex;\\n flex-direction: row;\\n justify-content: center;\\n flex-wrap: wrap;\\n margin-bottom: 36px;\\n}\\n.statuses > div[data-v-47e146e8] {\\n margin: 8px;\\n}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(function(i){return i[1]});\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".background-selector[data-v-7e3f4375] {\\n display: flex;\\n flex-wrap: wrap;\\n justify-content: center;\\n}\\n.background-selector .background[data-v-7e3f4375] {\\n width: 176px;\\n height: 96px;\\n margin: 8px;\\n background-size: cover;\\n background-position: center center;\\n text-align: center;\\n border-radius: var(--border-radius-large);\\n border: 2px solid var(--color-main-background);\\n overflow: hidden;\\n}\\n.background-selector .background.current[data-v-7e3f4375] {\\n background-image: var(--color-background-dark);\\n}\\n.background-selector .background.filepicker[data-v-7e3f4375], .background-selector .background.default[data-v-7e3f4375], .background-selector .background.color[data-v-7e3f4375] {\\n border-color: var(--color-border);\\n}\\n.background-selector .background.color[data-v-7e3f4375] {\\n background-color: var(--color-primary);\\n color: var(--color-primary-text);\\n}\\n.background-selector .background.active[data-v-7e3f4375], .background-selector .background[data-v-7e3f4375]:hover, .background-selector .background[data-v-7e3f4375]:focus {\\n border: 2px solid var(--color-primary);\\n}\\n.background-selector .background.active[data-v-7e3f4375]:not(.icon-loading):after {\\n background-image: var(--icon-checkmark-fff);\\n background-repeat: no-repeat;\\n background-position: center;\\n background-size: 44px;\\n content: \\\"\\\";\\n display: block;\\n height: 100%;\\n}\\nbody.theme--dark .background-selector .background.active[data-v-7e3f4375]:not(.icon-loading):after {\\n background-image: var(--icon-checkmark-000);\\n}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","import api from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&id=47e146e8&lang=scss&scoped=true&\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import api from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BackgroundSettings.vue?vue&type=style&index=0&id=7e3f4375&scoped=true&lang=scss&\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=47e146e8&scoped=true&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&id=47e146e8&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 \"47e146e8\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/home/louis/workspace/nextcloud/server/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('47e146e8')) {\n api.createRecord('47e146e8', component.options)\n } else {\n api.reload('47e146e8', component.options)\n }\n module.hot.accept(\"./App.vue?vue&type=template&id=47e146e8&scoped=true&\", function () {\n api.rerender('47e146e8', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"apps/dashboard/src/App.vue\"\nexport default component.exports","import { render, staticRenderFns } from \"./BackgroundSettings.vue?vue&type=template&id=7e3f4375&scoped=true&\"\nimport script from \"./BackgroundSettings.vue?vue&type=script&lang=js&\"\nexport * from \"./BackgroundSettings.vue?vue&type=script&lang=js&\"\nimport style0 from \"./BackgroundSettings.vue?vue&type=style&index=0&id=7e3f4375&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7e3f4375\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/home/louis/workspace/nextcloud/server/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('7e3f4375')) {\n api.createRecord('7e3f4375', component.options)\n } else {\n api.reload('7e3f4375', component.options)\n }\n module.hot.accept(\"./BackgroundSettings.vue?vue&type=template&id=7e3f4375&scoped=true&\", function () {\n api.rerender('7e3f4375', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"apps/dashboard/src/components/BackgroundSettings.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!./App.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!./App.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BackgroundSettings.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!./BackgroundSettings.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 \"div\",\n { style: _vm.backgroundStyle, attrs: { id: \"app-dashboard\" } },\n [\n _c(\"h2\", [_vm._v(_vm._s(_vm.greeting.text))]),\n _vm._v(\" \"),\n _c(\n \"ul\",\n { staticClass: \"statuses\" },\n _vm._l(_vm.sortedRegisteredStatus, function(status) {\n return _c(\"div\", { key: status, attrs: { id: \"status-\" + status } }, [\n _c(\"div\", { ref: \"status-\" + status, refInFor: true })\n ])\n }),\n 0\n ),\n _vm._v(\" \"),\n _c(\n \"Draggable\",\n _vm._b(\n {\n staticClass: \"panels\",\n attrs: { handle: \".panel--header\" },\n on: { end: _vm.saveLayout },\n model: {\n value: _vm.layout,\n callback: function($$v) {\n _vm.layout = $$v\n },\n expression: \"layout\"\n }\n },\n \"Draggable\",\n {\n swapThreshold: 0.3,\n delay: 500,\n delayOnTouchOnly: true,\n touchStartThreshold: 3\n },\n false\n ),\n _vm._l(_vm.layout, function(panelId) {\n return _c(\n \"div\",\n { key: _vm.panels[panelId].id, staticClass: \"panel\" },\n [\n _c(\"div\", { staticClass: \"panel--header\" }, [\n _c(\"h2\", { class: _vm.panels[panelId].iconClass }, [\n _vm._v(\n \"\\n\\t\\t\\t\\t\\t\" +\n _vm._s(_vm.panels[panelId].title) +\n \"\\n\\t\\t\\t\\t\"\n )\n ])\n ]),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"panel--content\",\n class: { loading: !_vm.panels[panelId].mounted }\n },\n [\n _c(\"div\", {\n ref: _vm.panels[panelId].id,\n refInFor: true,\n attrs: { \"data-id\": _vm.panels[panelId].id }\n })\n ]\n )\n ]\n )\n }),\n 0\n ),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"footer\" }, [\n _c(\n \"a\",\n {\n staticClass: \"edit-panels icon-rename\",\n attrs: { tabindex: \"0\" },\n on: {\n click: _vm.showModal,\n keyup: [\n function($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k($event.keyCode, \"enter\", 13, $event.key, \"Enter\")\n ) {\n return null\n }\n return _vm.showModal.apply(null, arguments)\n },\n function($event) {\n if (\n !$event.type.indexOf(\"key\") &&\n _vm._k($event.keyCode, \"space\", 32, $event.key, [\n \" \",\n \"Spacebar\"\n ])\n ) {\n return null\n }\n return _vm.showModal.apply(null, arguments)\n }\n ]\n }\n },\n [_vm._v(_vm._s(_vm.t(\"dashboard\", \"Customize\")))]\n )\n ]),\n _vm._v(\" \"),\n _vm.modal\n ? _c(\"Modal\", { on: { close: _vm.closeModal } }, [\n _c(\n \"div\",\n { staticClass: \"modal__content\" },\n [\n _c(\"h3\", [_vm._v(_vm._s(_vm.t(\"dashboard\", \"Edit widgets\")))]),\n _vm._v(\" \"),\n _c(\n \"ol\",\n { staticClass: \"panels\" },\n _vm._l(_vm.sortedAllStatuses, function(status) {\n return _c(\"li\", { key: status }, [\n _c(\"input\", {\n staticClass: \"checkbox\",\n attrs: {\n id: \"status-checkbox-\" + status,\n type: \"checkbox\"\n },\n domProps: { checked: _vm.isStatusActive(status) },\n on: {\n input: function($event) {\n return _vm.updateStatusCheckbox(\n status,\n $event.target.checked\n )\n }\n }\n }),\n _vm._v(\" \"),\n _c(\n \"label\",\n {\n class: _vm.statusInfo[status].icon,\n attrs: { for: \"status-checkbox-\" + status }\n },\n [\n _vm._v(\n \"\\n\\t\\t\\t\\t\\t\\t\" +\n _vm._s(_vm.statusInfo[status].text) +\n \"\\n\\t\\t\\t\\t\\t\"\n )\n ]\n )\n ])\n }),\n 0\n ),\n _vm._v(\" \"),\n _c(\n \"Draggable\",\n _vm._b(\n {\n staticClass: \"panels\",\n attrs: { tag: \"ol\", handle: \".draggable\" },\n on: { end: _vm.saveLayout },\n model: {\n value: _vm.layout,\n callback: function($$v) {\n _vm.layout = $$v\n },\n expression: \"layout\"\n }\n },\n \"Draggable\",\n {\n swapThreshold: 0.3,\n delay: 500,\n delayOnTouchOnly: true,\n touchStartThreshold: 3\n },\n false\n ),\n _vm._l(_vm.sortedPanels, function(panel) {\n return _c(\"li\", { key: panel.id }, [\n _c(\"input\", {\n staticClass: \"checkbox\",\n attrs: {\n id: \"panel-checkbox-\" + panel.id,\n type: \"checkbox\"\n },\n domProps: { checked: _vm.isActive(panel) },\n on: {\n input: function($event) {\n return _vm.updateCheckbox(\n panel,\n $event.target.checked\n )\n }\n }\n }),\n _vm._v(\" \"),\n _c(\n \"label\",\n {\n class: _vm.isActive(panel)\n ? \"draggable \" + panel.iconClass\n : panel.iconClass,\n attrs: { for: \"panel-checkbox-\" + panel.id }\n },\n [\n _vm._v(\n \"\\n\\t\\t\\t\\t\\t\\t\" +\n _vm._s(panel.title) +\n \"\\n\\t\\t\\t\\t\\t\"\n )\n ]\n )\n ])\n }),\n 0\n ),\n _vm._v(\" \"),\n _vm.isAdmin\n ? _c(\n \"a\",\n {\n staticClass: \"button\",\n attrs: { href: _vm.appStoreUrl }\n },\n [\n _vm._v(\n _vm._s(\n _vm.t(\n \"dashboard\",\n \"Get more widgets from the App Store\"\n )\n )\n )\n ]\n )\n : _vm._e(),\n _vm._v(\" \"),\n _c(\"h3\", [\n _vm._v(_vm._s(_vm.t(\"dashboard\", \"Change background image\")))\n ]),\n _vm._v(\" \"),\n _c(\"BackgroundSettings\", {\n attrs: {\n background: _vm.background,\n \"theming-default-background\": _vm.themingDefaultBackground\n },\n on: { \"update:background\": _vm.updateBackground }\n }),\n _vm._v(\" \"),\n _c(\"h3\", [\n _vm._v(_vm._s(_vm.t(\"dashboard\", \"Weather service\")))\n ]),\n _vm._v(\" \"),\n _c(\"p\", [\n _vm._v(\n \"\\n\\t\\t\\t\\t\" +\n _vm._s(\n _vm.t(\n \"dashboard\",\n \"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information.\"\n )\n ) +\n \"\\n\\t\\t\\t\"\n )\n ]),\n _vm._v(\" \"),\n _c(\"p\", { staticClass: \"credits--end\" }, [\n _c(\n \"a\",\n {\n attrs: {\n href: \"https://api.met.no/doc/TermsOfService\",\n target: \"_blank\",\n rel: \"noopener\"\n }\n },\n [\n _vm._v(\n _vm._s(_vm.t(\"dashboard\", \"Weather data from Met.no\"))\n )\n ]\n ),\n _vm._v(\",\\n\\t\\t\\t\\t\"),\n _c(\n \"a\",\n {\n attrs: {\n href:\n \"https://wiki.osmfoundation.org/wiki/Privacy_Policy\",\n target: \"_blank\",\n rel: \"noopener\"\n }\n },\n [\n _vm._v(\n _vm._s(_vm.t(\"dashboard\", \"geocoding with Nominatim\"))\n )\n ]\n ),\n _vm._v(\",\\n\\t\\t\\t\\t\"),\n _c(\n \"a\",\n {\n attrs: {\n href: \"https://www.opentopodata.org/#public-api\",\n target: \"_blank\",\n rel: \"noopener\"\n }\n },\n [\n _vm._v(\n _vm._s(\n _vm.t(\"dashboard\", \"elevation data from OpenTopoData\")\n )\n )\n ]\n ),\n _vm._v(\".\\n\\t\\t\\t\")\n ])\n ],\n 1\n )\n ])\n : _vm._e()\n ],\n 1\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 _c(\n \"div\",\n { staticClass: \"background-selector\" },\n [\n _c(\n \"button\",\n {\n staticClass: \"background filepicker\",\n class: { active: _vm.background === \"custom\" },\n attrs: { tabindex: \"0\" },\n on: { click: _vm.pickFile }\n },\n [\n _vm._v(\n \"\\n\\t\\t\" + _vm._s(_vm.t(\"dashboard\", \"Pick from Files\")) + \"\\n\\t\"\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"button\",\n {\n staticClass: \"background default\",\n class: {\n \"icon-loading\": _vm.loading === \"default\",\n active: _vm.background === \"default\"\n },\n attrs: { tabindex: \"0\" },\n on: { click: _vm.setDefault }\n },\n [\n _vm._v(\n \"\\n\\t\\t\" + _vm._s(_vm.t(\"dashboard\", \"Default images\")) + \"\\n\\t\"\n )\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"button\",\n {\n staticClass: \"background color\",\n class: { active: _vm.background === \"custom\" },\n attrs: { tabindex: \"0\" },\n on: { click: _vm.pickColor }\n },\n [\n _vm._v(\n \"\\n\\t\\t\" + _vm._s(_vm.t(\"dashboard\", \"Plain background\")) + \"\\n\\t\"\n )\n ]\n ),\n _vm._v(\" \"),\n _vm._l(_vm.shippedBackgrounds, function(shippedBackground) {\n return _c(\"button\", {\n directives: [\n {\n name: \"tooltip\",\n rawName: \"v-tooltip\",\n value: shippedBackground.details.attribution,\n expression: \"shippedBackground.details.attribution\"\n }\n ],\n key: shippedBackground.name,\n staticClass: \"background\",\n class: {\n \"icon-loading\": _vm.loading === shippedBackground.name,\n active: _vm.background === shippedBackground.name\n },\n style: {\n \"background-image\": \"url(\" + shippedBackground.preview + \")\"\n },\n attrs: { tabindex: \"0\" },\n on: {\n click: function($event) {\n return _vm.setShipped(shippedBackground.name)\n }\n }\n })\n })\n ],\n 2\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdD = function () {\n\tthrow new Error('define cannot be used indirect');\n};","__webpack_require__.amdO = {};","var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t\"dashboard-dashboard-main\": 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkIds[i]] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [\"core-common\"], () => (__webpack_require__(\"./apps/dashboard/src/main.js\")))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n",""],"names":[],"sourceRoot":""} \ No newline at end of file