From 837622cb87aedaf0a6b753d92b00a2fe3475ea2c Mon Sep 17 00:00:00 2001 From: Julius Härtl Date: Wed, 5 Apr 2023 11:40:40 +0200 Subject: fix: Adjust filepicker breadcrumb structure to recent a11y changes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Julius Härtl --- core/src/OC/dialogs.js | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'core/src') diff --git a/core/src/OC/dialogs.js b/core/src/OC/dialogs.js index 45e9e99049d..54d81171679 100644 --- a/core/src/OC/dialogs.js +++ b/core/src/OC/dialogs.js @@ -1290,11 +1290,13 @@ const Dialogs = { this.$dirTree.empty() var self = this + self.$dirTree.append('') self.$dirTree.append(addButton) var dir var path = this.$filePicker.data('path') - var $template = $('
{name}
').addClass('crumb') + var $template = $('
  • {name}
  • ').addClass('crumb') + var $breadcrumbs = $('') if (path) { var paths = path.split('/') $.each(paths, function(index, dir) { @@ -1302,18 +1304,20 @@ const Dialogs = { if (dir === '') { return false } - self.$dirTree.prepend($template.octemplate({ + $breadcrumbs.append($template.octemplate({ dir: paths.join('/') + '/' + dir, name: dir })) }) } - $template.octemplate({ dir: '', name: t('core', 'Home'), - }, { escapeFunction: null }).prependTo(this.$dirTree) + classList: 'icon-home' + }, { escapeFunction: null }).addClass('crumb svg crumbhome').prependTo($breadcrumbs) + + this.$dirTree.find('nav').prepend($breadcrumbs) }, /** * handle selection made in the tree list -- cgit v1.2.3 From 29a7f7f6efd2a9791fdcfb9f9f7e862bafd8da82 Mon Sep 17 00:00:00 2001 From: John Molakvoæ Date: Fri, 13 Jan 2023 17:32:57 +0100 Subject: feat(files_trashbin): migrate to vue MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: John Molakvoæ --- apps/files/js/app.js | 5 +- apps/files/src/components/BreadCrumbs.vue | 58 +++ apps/files/src/components/FileEntry.vue | 134 +++++++ apps/files/src/components/FilesListHeader.vue | 122 +++++++ apps/files/src/components/FilesListVirtual.vue | 124 +++++++ apps/files/src/main.js | 15 + apps/files/src/mixins/fileslist-row.scss | 63 ++++ apps/files/src/services/Navigation.ts | 31 +- apps/files/src/store/files.ts | 97 +++++ apps/files/src/store/index.ts | 16 + apps/files/src/store/paths.ts | 71 ++++ apps/files/src/store/selection.ts | 51 +++ apps/files/src/types.ts | 56 +++ apps/files/src/views/FilesList.vue | 318 +++++++++++++++++ apps/files/src/views/Navigation.vue | 33 +- apps/files/templates/appnavigation.php | 10 +- apps/files/templates/index.php | 6 +- .../composer/composer/autoload_classmap.php | 1 + .../composer/composer/autoload_static.php | 1 + apps/files_trashbin/lib/AppInfo/Application.php | 19 +- .../lib/Listeners/LoadAdditionalScripts.php | 41 +++ apps/files_trashbin/src/files_trashbin.js | 27 -- apps/files_trashbin/src/main.ts | 39 ++ apps/files_trashbin/src/services/client.ts | 33 ++ apps/files_trashbin/src/services/trashbin.ts | 95 +++++ apps/files_trashbin/src/trash.scss | 22 -- apps/files_trashbin/tests/js/appSpec.js | 70 ---- apps/files_trashbin/tests/js/filelistSpec.js | 397 --------------------- babel.config.js | 1 + core/src/OC/apps.js | 135 ------- core/src/OC/index.js | 30 +- core/src/OC/util-history.js | 2 + core/src/main.js | 2 - custom.d.ts | 31 ++ cypress.d.ts | 34 ++ cypress/support/component.ts | 16 +- package.json | 7 +- tsconfig.json | 4 +- webpack.common.js | 1 + webpack.modules.js | 2 +- 40 files changed, 1496 insertions(+), 724 deletions(-) create mode 100644 apps/files/src/components/BreadCrumbs.vue create mode 100644 apps/files/src/components/FileEntry.vue create mode 100644 apps/files/src/components/FilesListHeader.vue create mode 100644 apps/files/src/components/FilesListVirtual.vue create mode 100644 apps/files/src/mixins/fileslist-row.scss create mode 100644 apps/files/src/store/files.ts create mode 100644 apps/files/src/store/index.ts create mode 100644 apps/files/src/store/paths.ts create mode 100644 apps/files/src/store/selection.ts create mode 100644 apps/files/src/types.ts create mode 100644 apps/files/src/views/FilesList.vue create mode 100644 apps/files_trashbin/lib/Listeners/LoadAdditionalScripts.php delete mode 100644 apps/files_trashbin/src/files_trashbin.js create mode 100644 apps/files_trashbin/src/main.ts create mode 100644 apps/files_trashbin/src/services/client.ts create mode 100644 apps/files_trashbin/src/services/trashbin.ts delete mode 100644 apps/files_trashbin/src/trash.scss delete mode 100644 apps/files_trashbin/tests/js/appSpec.js delete mode 100644 apps/files_trashbin/tests/js/filelistSpec.js delete mode 100644 core/src/OC/apps.js create mode 100644 custom.d.ts create mode 100644 cypress.d.ts (limited to 'core/src') diff --git a/apps/files/js/app.js b/apps/files/js/app.js index f0c3ac5c212..75967ef5753 100644 --- a/apps/files/js/app.js +++ b/apps/files/js/app.js @@ -51,7 +51,6 @@ * Initializes the files app */ initialize: function() { - this.navigation = OCP.Files.Navigation; this.$showHiddenFiles = $('input#showhiddenfilesToggle'); var showHidden = $('#showHiddenFiles').val() === "1"; this.$showHiddenFiles.prop('checked', showHidden); @@ -135,8 +134,6 @@ OC.Plugins.attach('OCA.Files.App', this); this._setupEvents(); - // trigger URL change event handlers - this._onPopState({ ...OC.Util.History.parseUrlQuery(), view: this.navigation?.active?.id }); this._debouncedPersistShowHiddenFilesState = _.debounce(this._persistShowHiddenFilesState, 1200); this._debouncedPersistCropImagePreviewsState = _.debounce(this._persistCropImagePreviewsState, 1200); @@ -145,6 +142,8 @@ OCP.WhatsNew.query(); // for Nextcloud server sessionStorage.setItem('WhatsNewServerCheck', Date.now()); } + + window._nc_event_bus.emit('files:legacy-view:initialized', this); }, /** diff --git a/apps/files/src/components/BreadCrumbs.vue b/apps/files/src/components/BreadCrumbs.vue new file mode 100644 index 00000000000..15fd35667ec --- /dev/null +++ b/apps/files/src/components/BreadCrumbs.vue @@ -0,0 +1,58 @@ + + + + + diff --git a/apps/files/src/components/FileEntry.vue b/apps/files/src/components/FileEntry.vue new file mode 100644 index 00000000000..de340917b69 --- /dev/null +++ b/apps/files/src/components/FileEntry.vue @@ -0,0 +1,134 @@ + + + + + + diff --git a/apps/files/src/components/FilesListHeader.vue b/apps/files/src/components/FilesListHeader.vue new file mode 100644 index 00000000000..588d86709da --- /dev/null +++ b/apps/files/src/components/FilesListHeader.vue @@ -0,0 +1,122 @@ + + + + + + diff --git a/apps/files/src/components/FilesListVirtual.vue b/apps/files/src/components/FilesListVirtual.vue new file mode 100644 index 00000000000..9228179a96c --- /dev/null +++ b/apps/files/src/components/FilesListVirtual.vue @@ -0,0 +1,124 @@ + + + + + + diff --git a/apps/files/src/main.js b/apps/files/src/main.js index 3099a4c619c..3d1c88755f0 100644 --- a/apps/files/src/main.js +++ b/apps/files/src/main.js @@ -4,12 +4,15 @@ import processLegacyFilesViews from './legacy/navigationMapper.js' import Vue from 'vue' import NavigationService from './services/Navigation.ts' + import NavigationView from './views/Navigation.vue' +import FilesListView from './views/FilesList.vue' import SettingsService from './services/Settings.js' import SettingsModel from './models/Setting.js' import router from './router/router.js' +import store from './store/index.ts' // Init private and public Files namespace window.OCA.Files = window.OCA.Files ?? {} @@ -35,5 +38,17 @@ const FilesNavigationRoot = new View({ }) FilesNavigationRoot.$mount('#app-navigation-files') +// Init content list view +const ListView = Vue.extend(FilesListView) +const FilesList = new ListView({ + name: 'FilesListRoot', + propsData: { + Navigation, + }, + router, + store, +}) +FilesList.$mount('#app-content-vue') + // Init legacy files views processLegacyFilesViews() diff --git a/apps/files/src/mixins/fileslist-row.scss b/apps/files/src/mixins/fileslist-row.scss new file mode 100644 index 00000000000..9b0c3197b76 --- /dev/null +++ b/apps/files/src/mixins/fileslist-row.scss @@ -0,0 +1,63 @@ +/** + * @copyright Copyright (c) 2023 John Molakvoæ + * + * @author John Molakvoæ + * + * @license AGPL-3.0-or-later + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ +td, th { + height: var(--row-height); + vertical-align: middle; + padding: 0px; + border: none; +} + +.files-list__row-checkbox { + width: var(--row-height); + &::v-deep .checkbox-radio-switch { + --icon-size: var(--checkbox-size); + + display: flex; + justify-content: center; + + label.checkbox-radio-switch__label { + margin: 0; + height: var(--clickable-area); + width: var(--clickable-area); + padding: calc((var(--clickable-area) - var(--checkbox-size)) / 2) + } + + .checkbox-radio-switch__icon { + margin: 0 !important; + } + } +} + +.files-list__row-icon { + // Remove left padding to look nicer with the checkbox + // => ico preview size + one checkbox td padding + width: calc(var(--icon-preview-size) + var(--checkbox-padding)); + padding-right: var(--checkbox-padding); + color: var(--color-primary-element); + & > span { + justify-content: flex-start; + } + &::v-deep svg { + width: var(--icon-preview-size); + height: var(--icon-preview-size); + } +} diff --git a/apps/files/src/services/Navigation.ts b/apps/files/src/services/Navigation.ts index 9efed538825..01b6e701c72 100644 --- a/apps/files/src/services/Navigation.ts +++ b/apps/files/src/services/Navigation.ts @@ -19,19 +19,27 @@ * along with this program. If not, see . * */ -import type Node from '@nextcloud/files/dist/files/node' +/* eslint-disable */ +import type { Folder, Node } from '@nextcloud/files' import isSvg from 'is-svg' import logger from '../logger.js' +export type ContentsWithRoot = { + folder: Folder, + contents: Node[] +} + export interface Column { /** Unique column ID */ id: string /** Translated column title */ title: string - /** Property key from Node main or additional attributes. - Will be used if no custom sort function is provided. - Sorting will be done by localCompare */ + /** + * Property key from Node main or additional attributes. + * Will be used if no custom sort function is provided. + * Sorting will be done by localCompare + */ property: string /** Special function used to sort Nodes between them */ sortFunction?: (nodeA: Node, nodeB: Node) => number; @@ -45,8 +53,15 @@ export interface Navigation { id: string /** Translated view name */ name: string - /** Method return the content of the provided path */ - getFiles: (path: string) => Node[] + /** + * Method return the content of the provided path + * This ideally should be a cancellable promise. + * promise.cancel(reason) will be called when the directory + * change and the promise is not resolved yet. + * You _must_ also return the current directory + * information alongside with its content. + */ + getContents: (path: string) => Promise /** The view icon as an inline svg */ icon: string /** The view order */ @@ -150,8 +165,8 @@ const isValidNavigation = function(view: Navigation): boolean { * TODO: remove when support for legacy views is removed */ if (!view.legacy) { - if (!view.getFiles || typeof view.getFiles !== 'function') { - throw new Error('Navigation getFiles is required and must be a function') + if (!view.getContents || typeof view.getContents !== 'function') { + throw new Error('Navigation getContents is required and must be a function') } if (!view.icon || typeof view.icon !== 'string' || !isSvg(view.icon)) { diff --git a/apps/files/src/store/files.ts b/apps/files/src/store/files.ts new file mode 100644 index 00000000000..e9760e2bc85 --- /dev/null +++ b/apps/files/src/store/files.ts @@ -0,0 +1,97 @@ +/** + * @copyright Copyright (c) 2023 John Molakvoæ + * + * @author John Molakvoæ + * + * @license AGPL-3.0-or-later + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ +/* eslint-disable */ +import type { Folder, Node } from '@nextcloud/files' +import Vue from 'vue' +import type { FileStore, RootStore, RootOptions, Service } from '../types' + +const state = { + files: {} as FileStore, + roots: {} as RootStore, +} + +const getters = { + /** + * Get a file or folder by id + */ + getNode: (state) => (id: number): Node|undefined => state.files[id], + + /** + * Get a list of files or folders by their IDs + * Does not return undefined values + */ + getNodes: (state) => (ids: number[]): Node[] => ids + .map(id => state.files[id]) + .filter(Boolean), + /** + * Get a file or folder by id + */ + getRoot: (state) => (service: Service): Folder|undefined => state.roots[service], +} + +const mutations = { + updateNodes: (state, nodes: Node[]) => { + nodes.forEach(node => { + if (!node.attributes.fileid) { + return + } + Vue.set(state.files, node.attributes.fileid, node) + // state.files = { + // ...state.files, + // [node.attributes.fileid]: node, + // } + }) + }, + + setRoot: (state, { service, root }: RootOptions) => { + state.roots = { + ...state.roots, + [service]: root, + } + } +} + +const actions = { + /** + * Insert valid nodes into the store. + * Roots (that does _not_ have a fileid) should + * be defined in the roots store + */ + addNodes: (context, nodes: Node[]) => { + context.commit('updateNodes', nodes) + }, + + /** + * Set the root of a service + */ + setRoot(context, { service, root }: RootOptions) { + context.commit('setRoot', { service, root }) + } +} + +export default { + namespaced: true, + state, + getters, + mutations, + actions, +} diff --git a/apps/files/src/store/index.ts b/apps/files/src/store/index.ts new file mode 100644 index 00000000000..52007fef892 --- /dev/null +++ b/apps/files/src/store/index.ts @@ -0,0 +1,16 @@ +import Vue from 'vue' +import Vuex, { Store } from 'vuex' + +import files from './files' +import paths from './paths' +import selection from './selection' + +Vue.use(Vuex) + +export default new Store({ + modules: { + files, + paths, + selection, + }, +}) diff --git a/apps/files/src/store/paths.ts b/apps/files/src/store/paths.ts new file mode 100644 index 00000000000..d6b23578da7 --- /dev/null +++ b/apps/files/src/store/paths.ts @@ -0,0 +1,71 @@ +/** + * @copyright Copyright (c) 2023 John Molakvoæ + * + * @author John Molakvoæ + * + * @license AGPL-3.0-or-later + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ +/* eslint-disable */ +import type { Folder } from '@nextcloud/files' +import Vue from 'vue' +import type { PathOptions, ServicePaths, ServiceStore } from '../types' + +const module = { + state: { + services: { + files: {} as ServicePaths, + } as ServiceStore, + }, + + getters: { + getPath(state: { services: ServiceStore }) { + return (service: string, path: string): number|undefined => { + if (!state.services[service]) { + return undefined + } + return state.services[service][path] + } + }, + }, + + mutations: { + addPath: (state, opts: PathOptions) => { + // If it doesn't exists, init the service state + if (!state.services[opts.service]) { + // TODO: investigate why Vue.set is not working + state.services = { + [opts.service]: {} as ServicePaths, + ...state.services + } + } + + // Now we can set the path + Vue.set(state.services[opts.service], opts.path, opts.fileid) + } + }, + + actions: { + addPath: (context, opts: PathOptions) => { + context.commit('addPath', opts) + }, + } +} + +export default { + namespaced: true, + ...module, +} diff --git a/apps/files/src/store/selection.ts b/apps/files/src/store/selection.ts new file mode 100644 index 00000000000..3ec61848c98 --- /dev/null +++ b/apps/files/src/store/selection.ts @@ -0,0 +1,51 @@ +/** + * @copyright Copyright (c) 2023 John Molakvoæ + * + * @author John Molakvoæ + * + * @license AGPL-3.0-or-later + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ +/* eslint-disable */ +import type { Folder } from '@nextcloud/files' +import Vue from 'vue' +import type { PathOptions, ServicePaths, ServiceStore } from '../types' + +const module = { + state: { + selected: [] as number[] + }, + + mutations: { + set: (state, selection: number[]) => { + Vue.set(state, 'selected', selection) + } + }, + + actions: { + set: (context, selection = [] as number[]) => { + context.commit('set', selection) + }, + reset(context) { + context.commit('set', []) + } + } +} + +export default { + namespaced: true, + ...module, +} diff --git a/apps/files/src/types.ts b/apps/files/src/types.ts new file mode 100644 index 00000000000..1c7068985d8 --- /dev/null +++ b/apps/files/src/types.ts @@ -0,0 +1,56 @@ +/** + * @copyright Copyright (c) 2023 John Molakvoæ + * + * @author John Molakvoæ + * + * @license AGPL-3.0-or-later + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ +/* eslint-disable */ +import type { Folder } from '@nextcloud/files' +import type { Node } from '@nextcloud/files' + +// Global definitions +export type Service = string + +// Files store +export type FileStore = { + [id: number]: Node +} + +export type RootStore = { + [service: Service]: Folder +} + +export interface RootOptions { + root: Folder + service: Service +} + +// Paths store +export type ServicePaths = { + [path: string]: number +} + +export type ServiceStore = { + [service: Service]: ServicePaths +} + +export interface PathOptions { + service: Service + path: string + fileid: number +} diff --git a/apps/files/src/views/FilesList.vue b/apps/files/src/views/FilesList.vue new file mode 100644 index 00000000000..adc8a3bcb0f --- /dev/null +++ b/apps/files/src/views/FilesList.vue @@ -0,0 +1,318 @@ + + + + + + diff --git a/apps/files/src/views/Navigation.vue b/apps/files/src/views/Navigation.vue index d9fdfa7fe02..9a2e82d1bc6 100644 --- a/apps/files/src/views/Navigation.vue +++ b/apps/files/src/views/Navigation.vue @@ -32,13 +32,20 @@ :title="view.name" :to="generateToNavigation(view)" @update:open="onToggleExpand(view)"> + + + + + :to="generateToNavigation(child)"> + + + @@ -74,6 +81,7 @@ import axios from '@nextcloud/axios' import Cog from 'vue-material-design-icons/Cog.vue' import NcAppNavigation from '@nextcloud/vue/dist/Components/NcAppNavigation.js' import NcAppNavigationItem from '@nextcloud/vue/dist/Components/NcAppNavigationItem.js' +import NcIconSvgWrapper from '@nextcloud/vue/dist/Components/NcIconSvgWrapper.js' import logger from '../logger.js' import Navigation from '../services/Navigation.ts' @@ -86,10 +94,11 @@ export default { components: { Cog, + NavigationQuota, NcAppNavigation, NcAppNavigationItem, + NcIconSvgWrapper, SettingsModal, - NavigationQuota, }, props: { @@ -151,7 +160,16 @@ export default { watch: { currentView(view, oldView) { - logger.debug('View changed', { id: view.id, view }) + // If undefined, it means we're initializing the view + // This is handled by the legacy-view:initialized event + if (view?.id === oldView?.id) { + return + } + + this.Navigation.setActive(view.id) + logger.debug('Navigation changed', { id: view.id, view }) + + // debugger this.showView(view, oldView) }, }, @@ -163,6 +181,12 @@ export default { } subscribe('files:legacy-navigation:changed', this.onLegacyNavigationChanged) + + // TODO: remove this once the legacy navigation is gone + subscribe('files:legacy-view:initialized', () => { + logger.debug('Legacy view initialized', { ...this.currentView }) + this.showView(this.currentView) + }) }, methods: { @@ -174,7 +198,7 @@ export default { // Closing any opened sidebar window?.OCA?.Files?.Sidebar?.close?.() - if (view.legacy) { + if (view?.legacy) { const newAppContent = document.querySelector('#app-content #app-content-' + this.currentView.id + '.viewcontainer') document.querySelectorAll('#app-content .viewcontainer').forEach(el => { el.classList.add('hidden') @@ -188,7 +212,6 @@ export default { logger.debug('Triggering legacy navigation event', params) window.jQuery(newAppContent).trigger(new window.jQuery.Event('show', params)) window.jQuery(newAppContent).trigger(new window.jQuery.Event('urlChanged', params)) - } this.Navigation.setActive(view) diff --git a/apps/files/templates/appnavigation.php b/apps/files/templates/appnavigation.php index f316ccbf773..96df2b91a84 100644 --- a/apps/files/templates/appnavigation.php +++ b/apps/files/templates/appnavigation.php @@ -1,13 +1,11 @@ diff --git a/apps/files/templates/index.php b/apps/files/templates/index.php index 80eca84ed65..c6f145bfe40 100644 --- a/apps/files/templates/index.php +++ b/apps/files/templates/index.php @@ -1,5 +1,9 @@ printPage(); ?> + + + +
    - - diff --git a/apps/files_trashbin/composer/composer/autoload_classmap.php b/apps/files_trashbin/composer/composer/autoload_classmap.php index 760044d4f87..01f602448d4 100644 --- a/apps/files_trashbin/composer/composer/autoload_classmap.php +++ b/apps/files_trashbin/composer/composer/autoload_classmap.php @@ -21,6 +21,7 @@ return array( 'OCA\\Files_Trashbin\\Expiration' => $baseDir . '/../lib/Expiration.php', 'OCA\\Files_Trashbin\\Helper' => $baseDir . '/../lib/Helper.php', 'OCA\\Files_Trashbin\\Hooks' => $baseDir . '/../lib/Hooks.php', + 'OCA\\Files_Trashbin\\Listeners\\LoadAdditionalScripts' => $baseDir . '/../lib/Listeners/LoadAdditionalScripts.php', 'OCA\\Files_Trashbin\\Migration\\Version1010Date20200630192639' => $baseDir . '/../lib/Migration/Version1010Date20200630192639.php', 'OCA\\Files_Trashbin\\Sabre\\AbstractTrash' => $baseDir . '/../lib/Sabre/AbstractTrash.php', 'OCA\\Files_Trashbin\\Sabre\\AbstractTrashFile' => $baseDir . '/../lib/Sabre/AbstractTrashFile.php', diff --git a/apps/files_trashbin/composer/composer/autoload_static.php b/apps/files_trashbin/composer/composer/autoload_static.php index ef52ac0e1e7..40f3310c663 100644 --- a/apps/files_trashbin/composer/composer/autoload_static.php +++ b/apps/files_trashbin/composer/composer/autoload_static.php @@ -36,6 +36,7 @@ class ComposerStaticInitFiles_Trashbin 'OCA\\Files_Trashbin\\Expiration' => __DIR__ . '/..' . '/../lib/Expiration.php', 'OCA\\Files_Trashbin\\Helper' => __DIR__ . '/..' . '/../lib/Helper.php', 'OCA\\Files_Trashbin\\Hooks' => __DIR__ . '/..' . '/../lib/Hooks.php', + 'OCA\\Files_Trashbin\\Listeners\\LoadAdditionalScripts' => __DIR__ . '/..' . '/../lib/Listeners/LoadAdditionalScripts.php', 'OCA\\Files_Trashbin\\Migration\\Version1010Date20200630192639' => __DIR__ . '/..' . '/../lib/Migration/Version1010Date20200630192639.php', 'OCA\\Files_Trashbin\\Sabre\\AbstractTrash' => __DIR__ . '/..' . '/../lib/Sabre/AbstractTrash.php', 'OCA\\Files_Trashbin\\Sabre\\AbstractTrashFile' => __DIR__ . '/..' . '/../lib/Sabre/AbstractTrashFile.php', diff --git a/apps/files_trashbin/lib/AppInfo/Application.php b/apps/files_trashbin/lib/AppInfo/Application.php index 41466a865ac..461eade6802 100644 --- a/apps/files_trashbin/lib/AppInfo/Application.php +++ b/apps/files_trashbin/lib/AppInfo/Application.php @@ -26,8 +26,10 @@ namespace OCA\Files_Trashbin\AppInfo; use OCA\DAV\Connector\Sabre\Principal; +use OCA\Files\Event\LoadAdditionalScriptsEvent; use OCA\Files_Trashbin\Capabilities; use OCA\Files_Trashbin\Expiration; +use OCA\Files_Trashbin\Listeners\LoadAdditionalScripts; use OCA\Files_Trashbin\Trash\ITrashManager; use OCA\Files_Trashbin\Trash\TrashManager; use OCA\Files_Trashbin\UserMigration\TrashbinMigrator; @@ -55,6 +57,11 @@ class Application extends App implements IBootstrap { $context->registerServiceAlias('principalBackend', Principal::class); $context->registerUserMigrator(TrashbinMigrator::class); + + $context->registerEventListener( + LoadAdditionalScriptsEvent::class, + LoadAdditionalScripts::class + ); } public function boot(IBootContext $context): void { @@ -68,18 +75,6 @@ class Application extends App implements IBootstrap { \OCP\Util::connectHook('OC_Filesystem', 'post_write', 'OCA\Files_Trashbin\Hooks', 'post_write_hook'); // pre and post-rename, disable trash logic for the copy+unlink case \OCP\Util::connectHook('OC_Filesystem', 'delete', 'OCA\Files_Trashbin\Trashbin', 'ensureFileScannedHook'); - - \OCA\Files\App::getNavigationManager()->add(function () { - $l = \OC::$server->getL10N(self::APP_ID); - return [ - 'id' => 'trashbin', - 'appname' => self::APP_ID, - 'script' => 'list.php', - 'order' => 50, - 'name' => $l->t('Deleted files'), - 'classes' => 'pinned', - ]; - }); } public function registerTrashBackends(IServerContainer $serverContainer, ILogger $logger, IAppManager $appManager, ITrashManager $trashManager) { diff --git a/apps/files_trashbin/lib/Listeners/LoadAdditionalScripts.php b/apps/files_trashbin/lib/Listeners/LoadAdditionalScripts.php new file mode 100644 index 00000000000..33b1b2de1cc --- /dev/null +++ b/apps/files_trashbin/lib/Listeners/LoadAdditionalScripts.php @@ -0,0 +1,41 @@ + + * + * @author John Molakvoæ + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ +namespace OCA\Files_Trashbin\Listeners; + +use OCA\Files_Trashbin\AppInfo\Application; +use OCA\Files\Event\LoadAdditionalScriptsEvent; +use OCP\EventDispatcher\Event; +use OCP\EventDispatcher\IEventListener; +use OCP\Util; + +class LoadAdditionalScripts implements IEventListener { + public function handle(Event $event): void { + if (!($event instanceof LoadAdditionalScriptsEvent)) { + return; + } + + Util::addScript(Application::APP_ID, 'main'); + } +} diff --git a/apps/files_trashbin/src/files_trashbin.js b/apps/files_trashbin/src/files_trashbin.js deleted file mode 100644 index f66e78905f6..00000000000 --- a/apps/files_trashbin/src/files_trashbin.js +++ /dev/null @@ -1,27 +0,0 @@ -/** - * @copyright Copyright (c) 2016 Roeland Jago Douma - * - * @author Roeland Jago Douma - * - * @license AGPL-3.0-or-later - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ - -import './app.js' -import './filelist.js' -import './trash.scss' - -window.OCA.Trashbin = OCA.Trashbin diff --git a/apps/files_trashbin/src/main.ts b/apps/files_trashbin/src/main.ts new file mode 100644 index 00000000000..626b9ef813d --- /dev/null +++ b/apps/files_trashbin/src/main.ts @@ -0,0 +1,39 @@ +/** + * @copyright Copyright (c) 2023 John Molakvoæ + * + * @author John Molakvoæ + * + * @license AGPL-3.0-or-later + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ +import type NavigationService from '../../files/src/services/Navigation' + +import { translate as t } from '@nextcloud/l10n' +import DeleteSvg from '@mdi/svg/svg/delete.svg?raw' + +import getContents from './services/trashbin' + +const Navigation = window.OCP.Files.Navigation as NavigationService +Navigation.register({ + id: 'trashbin', + name: t('files_trashbin', 'Deleted files'), + + icon: DeleteSvg, + order: 50, + sticky: true, + + getContents, +}) diff --git a/apps/files_trashbin/src/services/client.ts b/apps/files_trashbin/src/services/client.ts new file mode 100644 index 00000000000..9fb3361839a --- /dev/null +++ b/apps/files_trashbin/src/services/client.ts @@ -0,0 +1,33 @@ +/** + * @copyright Copyright (c) 2023 John Molakvoæ + * + * @author John Molakvoæ + * + * @license AGPL-3.0-or-later + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ +import { createClient } from 'webdav' +import { generateRemoteUrl } from '@nextcloud/router' +import { getCurrentUser, getRequestToken } from '@nextcloud/auth' + +export const rootPath = `/trashbin/${getCurrentUser()?.uid}/trash` +export const rootUrl = generateRemoteUrl('dav' + rootPath) +const client = createClient(rootUrl, { + headers: { + requesttoken: getRequestToken(), + }, +}) +export default client diff --git a/apps/files_trashbin/src/services/trashbin.ts b/apps/files_trashbin/src/services/trashbin.ts new file mode 100644 index 00000000000..2070cfc92b0 --- /dev/null +++ b/apps/files_trashbin/src/services/trashbin.ts @@ -0,0 +1,95 @@ +/** + * @copyright Copyright (c) 2023 John Molakvoæ + * + * @author John Molakvoæ + * + * @license AGPL-3.0-or-later + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ +/* eslint-disable */ +import { getCurrentUser } from '@nextcloud/auth' +import { File, Folder, parseWebdavPermissions } from '@nextcloud/files' +import { generateRemoteUrl } from '@nextcloud/router' + +import type { FileStat, ResponseDataDetailed } from 'webdav' +import type { ContentsWithRoot } from '../../../files/src/services/Navigation' + +import client, { rootPath } from './client' + +const data = ` + + + + + + + + + + + + + + + +` + +const resultToNode = function(node: FileStat): File | Folder { + const permissions = parseWebdavPermissions(node.props?.permissions) + const owner = getCurrentUser()?.uid as string + + const nodeData = { + id: node.props?.fileid as number || 0, + source: generateRemoteUrl('dav' + rootPath + node.filename), + mtime: new Date(node.lastmod), + mime: node.mime as string, + size: node.props?.size as number || 0, + permissions, + owner, + root: rootPath, + attributes: { + ...node, + ...node.props, + // Override displayed name on the list + displayName: node.props?.['trashbin-filename'], + }, + } + + return node.type === 'file' + ? new File(nodeData) + : new Folder(nodeData) +} + +export default async (path: string = '/'): Promise => { + // TODO: use only one request when webdav-client supports it + // @see https://github.com/perry-mitchell/webdav-client/pull/334 + const rootResponse = await client.stat(path, { + details: true, + data, + }) as ResponseDataDetailed + + const contentsResponse = await client.getDirectoryContents(path, { + details: true, + data, + }) as ResponseDataDetailed + + return { + folder: resultToNode(rootResponse.data) as Folder, + contents: contentsResponse.data.map(resultToNode), + } +} diff --git a/apps/files_trashbin/src/trash.scss b/apps/files_trashbin/src/trash.scss deleted file mode 100644 index 633107c9d6d..00000000000 --- a/apps/files_trashbin/src/trash.scss +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright (c) 2014 - * - * This file is licensed under the Affero General Public License version 3 - * or later. - * - * See the COPYING-README file. - * - */ -#app-content-trashbin tbody tr[data-type="file"] td a.name, -#app-content-trashbin tbody tr[data-type="file"] td a.name span.nametext, -#app-content-trashbin tbody tr[data-type="file"] td a.name span.nametext span { - cursor: default; -} - -#app-content-trashbin .summary :last-child { - padding: 0; -} -#app-content-trashbin .files-filestable .summary .filesize { - display: none; -} - diff --git a/apps/files_trashbin/tests/js/appSpec.js b/apps/files_trashbin/tests/js/appSpec.js deleted file mode 100644 index 281e7bbc2ba..00000000000 --- a/apps/files_trashbin/tests/js/appSpec.js +++ /dev/null @@ -1,70 +0,0 @@ -/** -* @copyright 2014 Vincent Petry - * - * @author Vincent Petry - * - * @license AGPL-3.0-or-later - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ - -describe('OCA.Trashbin.App tests', function() { - var App = OCA.Trashbin.App; - - beforeEach(function() { - $('#testArea').append( - '
    ' + - '
    ' + - '
    ' + - '' + - '' + - '
    ' + - '
    ' - ); - App.initialize($('#app-content-trashbin')); - }); - afterEach(function() { - App._initialized = false; - App.fileList = null; - }); - - describe('initialization', function() { - it('creates a custom filelist instance', function() { - App.initialize(); - expect(App.fileList).toBeDefined(); - expect(App.fileList.$el.is('#app-content-trashbin')).toEqual(true); - }); - - it('registers custom file actions', function() { - var fileActions; - App.initialize(); - - fileActions = App.fileList.fileActions; - - expect(fileActions.actions.all).toBeDefined(); - expect(fileActions.actions.all.Restore).toBeDefined(); - expect(fileActions.actions.all.Delete).toBeDefined(); - - expect(fileActions.actions.all.Rename).not.toBeDefined(); - expect(fileActions.actions.all.Download).not.toBeDefined(); - - expect(fileActions.defaults.dir).toEqual('Open'); - }); - }); -}); diff --git a/apps/files_trashbin/tests/js/filelistSpec.js b/apps/files_trashbin/tests/js/filelistSpec.js deleted file mode 100644 index 9e27188efb8..00000000000 --- a/apps/files_trashbin/tests/js/filelistSpec.js +++ /dev/null @@ -1,397 +0,0 @@ -/** - * @copyright 2014 Vincent Petry - * - * @author Abijeet - * @author Christoph Wurst - * @author Jan C. Borchardt - * @author Jan-Christoph Borchardt - * @author John Molakvoæ - * @author Robin Appelman - * @author Vincent Petry - * - * @license AGPL-3.0-or-later - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ - -describe('OCA.Trashbin.FileList tests', function () { - var testFiles, alertStub, notificationStub, fileList, client; - - beforeEach(function () { - alertStub = sinon.stub(OC.dialogs, 'alert'); - notificationStub = sinon.stub(OC.Notification, 'show'); - - client = new OC.Files.Client({ - host: 'localhost', - port: 80, - root: '/remote.php/dav/trashbin/user', - useHTTPS: OC.getProtocol() === 'https' - }); - - // init parameters and test table elements - $('#testArea').append( - '
    ' + - // set this but it shouldn't be used (could be the one from the - // files app) - '' + - // dummy controls - '
    ' + - '
    ' + - '
    ' + - '
    ' + - // dummy table - // TODO: at some point this will be rendered by the fileList class itself! - '' + - '' + - '' + - '' + - '
    ' + - '
    Empty content message
    ' + - '
    ' - ); - - testFiles = [{ - id: 1, - type: 'file', - name: 'One.txt.d11111', - displayName: 'One.txt', - mtime: 11111000, - mimetype: 'text/plain', - etag: 'abc' - }, { - id: 2, - type: 'file', - name: 'Two.jpg.d22222', - displayName: 'Two.jpg', - mtime: 22222000, - mimetype: 'image/jpeg', - etag: 'def', - }, { - id: 3, - type: 'file', - name: 'Three.pdf.d33333', - displayName: 'Three.pdf', - mtime: 33333000, - mimetype: 'application/pdf', - etag: '123', - }, { - id: 4, - type: 'dir', - mtime: 99999000, - name: 'somedir.d99999', - displayName: 'somedir', - mimetype: 'httpd/unix-directory', - etag: '456' - }]; - - // register file actions like the trashbin App does - var fileActions = OCA.Trashbin.App._createFileActions(fileList); - fileList = new OCA.Trashbin.FileList( - $('#app-content'), { - fileActions: fileActions, - multiSelectMenu: [{ - name: 'restore', - displayName: t('files', 'Restore'), - iconClass: 'icon-history', - }, - { - name: 'delete', - displayName: t('files', 'Delete'), - iconClass: 'icon-delete', - } - ], - client: client - } - ); - }); - afterEach(function () { - testFiles = undefined; - fileList.destroy(); - fileList = undefined; - - notificationStub.restore(); - alertStub.restore(); - }); - describe('Initialization', function () { - it('Sorts by mtime by default', function () { - expect(fileList._sort).toEqual('mtime'); - expect(fileList._sortDirection).toEqual('desc'); - }); - it('Always returns read and delete permission', function () { - expect(fileList.getDirectoryPermissions()).toEqual(OC.PERMISSION_READ | OC.PERMISSION_DELETE); - }); - }); - describe('Breadcrumbs', function () { - beforeEach(function () { - var data = { - status: 'success', - data: { - files: testFiles, - permissions: 1 - } - }; - fakeServer.respondWith(/\/index\.php\/apps\/files_trashbin\/ajax\/list.php\?dir=%2Fsubdir/, [ - 200, { - "Content-Type": "application/json" - }, - JSON.stringify(data) - ]); - }); - it('links the breadcrumb to the trashbin view', function () { - fileList.changeDirectory('/subdir', false, true); - fakeServer.respond(); - var $crumbs = fileList.$el.find('.files-controls .crumb'); - expect($crumbs.length).toEqual(3); - expect($crumbs.eq(1).find('a').text()).toEqual('Home'); - expect($crumbs.eq(1).find('a').attr('href')) - .toEqual(OC.getRootPath() + '/index.php/apps/files?view=trashbin&dir=/'); - expect($crumbs.eq(2).find('a').text()).toEqual('subdir'); - expect($crumbs.eq(2).find('a').attr('href')) - .toEqual(OC.getRootPath() + '/index.php/apps/files?view=trashbin&dir=/subdir'); - }); - }); - describe('Rendering rows', function () { - it('renders rows with the correct data when in root', function () { - // dir listing is false when in root - fileList.setFiles(testFiles); - var $rows = fileList.$el.find('tbody tr'); - var $tr = $rows.eq(0); - expect($rows.length).toEqual(4); - expect($tr.attr('data-id')).toEqual('1'); - expect($tr.attr('data-type')).toEqual('file'); - expect($tr.attr('data-file')).toEqual('One.txt.d11111'); - expect($tr.attr('data-size')).not.toBeDefined(); - expect($tr.attr('data-etag')).toEqual('abc'); - expect($tr.attr('data-permissions')).toEqual('9'); // read and delete - expect($tr.attr('data-mime')).toEqual('text/plain'); - expect($tr.attr('data-mtime')).toEqual('11111000'); - expect($tr.find('a.name').attr('href')).toEqual('#'); - - expect($tr.find('.nametext').text().trim()).toEqual('One.txt'); - - expect(fileList.findFileEl('One.txt.d11111')[0]).toEqual($tr[0]); - }); - it('renders rows with the correct data when in root after calling setFiles with the same data set', function () { - // dir listing is false when in root - fileList.setFiles(testFiles); - fileList.setFiles(fileList.files); - var $rows = fileList.$el.find('tbody tr'); - var $tr = $rows.eq(0); - expect($rows.length).toEqual(4); - expect($tr.attr('data-id')).toEqual('1'); - expect($tr.attr('data-type')).toEqual('file'); - expect($tr.attr('data-file')).toEqual('One.txt.d11111'); - expect($tr.attr('data-size')).not.toBeDefined(); - expect($tr.attr('data-etag')).toEqual('abc'); - expect($tr.attr('data-permissions')).toEqual('9'); // read and delete - expect($tr.attr('data-mime')).toEqual('text/plain'); - expect($tr.attr('data-mtime')).toEqual('11111000'); - expect($tr.find('a.name').attr('href')).toEqual('#'); - - expect($tr.find('.nametext').text().trim()).toEqual('One.txt'); - - expect(fileList.findFileEl('One.txt.d11111')[0]).toEqual($tr[0]); - }); - it('renders rows with the correct data when in subdirectory', function () { - fileList.setFiles(testFiles.map(function (file) { - file.name = file.displayName; - return file; - })); - var $rows = fileList.$el.find('tbody tr'); - var $tr = $rows.eq(0); - expect($rows.length).toEqual(4); - expect($tr.attr('data-id')).toEqual('1'); - expect($tr.attr('data-type')).toEqual('file'); - expect($tr.attr('data-file')).toEqual('One.txt'); - expect($tr.attr('data-size')).not.toBeDefined(); - expect($tr.attr('data-etag')).toEqual('abc'); - expect($tr.attr('data-permissions')).toEqual('9'); // read and delete - expect($tr.attr('data-mime')).toEqual('text/plain'); - expect($tr.attr('data-mtime')).toEqual('11111000'); - expect($tr.find('a.name').attr('href')).toEqual('#'); - - expect($tr.find('.nametext').text().trim()).toEqual('One.txt'); - - expect(fileList.findFileEl('One.txt')[0]).toEqual($tr[0]); - }); - it('does not render a size column', function () { - expect(fileList.$el.find('tbody tr .filesize').length).toEqual(0); - }); - }); - describe('File actions', function () { - describe('Deleting single files', function () { - // TODO: checks ajax call - // TODO: checks spinner - // TODO: remove item after delete - // TODO: bring back item if delete failed - }); - describe('Restoring single files', function () { - // TODO: checks ajax call - // TODO: checks spinner - // TODO: remove item after restore - // TODO: bring back item if restore failed - }); - }); - describe('file previews', function () { - // TODO: check that preview URL is going through files_trashbin - }); - describe('loading file list', function () { - // TODO: check that ajax URL is going through files_trashbin - }); - describe('breadcrumbs', function () { - // TODO: test label + URL - }); - describe('elementToFile', function () { - var $tr; - - beforeEach(function () { - fileList.setFiles(testFiles); - $tr = fileList.findFileEl('One.txt.d11111'); - }); - - it('converts data attributes to file info structure', function () { - var fileInfo = fileList.elementToFile($tr); - expect(fileInfo.id).toEqual(1); - expect(fileInfo.name).toEqual('One.txt.d11111'); - expect(fileInfo.displayName).toEqual('One.txt'); - expect(fileInfo.mtime).toEqual(11111000); - expect(fileInfo.etag).toEqual('abc'); - expect(fileInfo.permissions).toEqual(OC.PERMISSION_READ | OC.PERMISSION_DELETE); - expect(fileInfo.mimetype).toEqual('text/plain'); - expect(fileInfo.type).toEqual('file'); - }); - }); - describe('Global Actions', function () { - beforeEach(function () { - fileList.setFiles(testFiles); - fileList.findFileEl('One.txt.d11111').find('input:checkbox').click(); - fileList.findFileEl('Three.pdf.d33333').find('input:checkbox').click(); - fileList.findFileEl('somedir.d99999').find('input:checkbox').click(); - fileList.$el.find('.actions-selected').click(); - }); - - afterEach(function () { - fileList.$el.find('.actions-selected').click(); - }); - - describe('Delete', function () { - it('Shows trashbin actions', function () { - // visible because a few files were selected - expect($('.selectedActions').is(':visible')).toEqual(true); - expect($('.selectedActions .item-delete').is(':visible')).toEqual(true); - expect($('.selectedActions .item-restore').is(':visible')).toEqual(true); - - // check - fileList.$el.find('.select-all').click(); - - // stays visible - expect($('.selectedActions').is(':visible')).toEqual(true); - expect($('.selectedActions .item-delete').is(':visible')).toEqual(true); - expect($('.selectedActions .item-restore').is(':visible')).toEqual(true); - - // uncheck - fileList.$el.find('.select-all').click(); - - // becomes hidden now - expect($('.selectedActions').is(':visible')).toEqual(false); - expect($('.selectedActions .item-delete').is(':visible')).toEqual(false); - expect($('.selectedActions .item-restore').is(':visible')).toEqual(false); - }); - it('Deletes selected files when "Delete" clicked', function (done) { - var request; - var promise = fileList._onClickDeleteSelected({ - preventDefault: function () { - } - }); - var files = ["One.txt.d11111", "Three.pdf.d33333", "somedir.d99999"]; - expect(fakeServer.requests.length).toEqual(files.length); - for (var i = 0; i < files.length; i++) { - request = fakeServer.requests[i]; - expect(request.url).toEqual(OC.getRootPath() + '/remote.php/dav/trashbin/user/trash/' + files[i]); - request.respond(200); - } - return promise.then(function () { - expect(fileList.findFileEl('One.txt.d11111').length).toEqual(0); - expect(fileList.findFileEl('Three.pdf.d33333').length).toEqual(0); - expect(fileList.findFileEl('somedir.d99999').length).toEqual(0); - expect(fileList.findFileEl('Two.jpg.d22222').length).toEqual(1); - }).then(done, done); - }); - it('Deletes all files when all selected when "Delete" clicked', function (done) { - var request; - $('.select-all').click(); - var promise = fileList._onClickDeleteSelected({ - preventDefault: function () { - } - }); - expect(fakeServer.requests.length).toEqual(1); - request = fakeServer.requests[0]; - expect(request.url).toEqual(OC.getRootPath() + '/remote.php/dav/trashbin/user/trash'); - request.respond(200); - return promise.then(function () { - expect(fileList.isEmpty).toEqual(true); - }).then(done, done); - }); - }); - describe('Restore', function () { - it('Restores selected files when "Restore" clicked', function (done) { - var request; - var promise = fileList._onClickRestoreSelected({ - preventDefault: function () { - } - }); - var files = ["One.txt.d11111", "Three.pdf.d33333", "somedir.d99999"]; - expect(fakeServer.requests.length).toEqual(files.length); - for (var i = 0; i < files.length; i++) { - request = fakeServer.requests[i]; - expect(request.url).toEqual(OC.getRootPath() + '/remote.php/dav/trashbin/user/trash/' + files[i]); - expect(request.requestHeaders.Destination).toEqual(OC.getRootPath() + '/remote.php/dav/trashbin/user/restore/' + files[i]); - request.respond(200); - } - return promise.then(function() { - expect(fileList.findFileEl('One.txt.d11111').length).toEqual(0); - expect(fileList.findFileEl('Three.pdf.d33333').length).toEqual(0); - expect(fileList.findFileEl('somedir.d99999').length).toEqual(0); - expect(fileList.findFileEl('Two.jpg.d22222').length).toEqual(1); - }).then(done, done); - }); - it('Restores all files when all selected when "Restore" clicked', function (done) { - var request; - $('.select-all').click(); - var promise = fileList._onClickRestoreSelected({ - preventDefault: function () { - } - }); - var files = ["One.txt.d11111", "Two.jpg.d22222", "Three.pdf.d33333", "somedir.d99999"]; - expect(fakeServer.requests.length).toEqual(files.length); - for (var i = 0; i < files.length; i++) { - request = fakeServer.requests[i]; - expect(request.url).toEqual(OC.getRootPath() + '/remote.php/dav/trashbin/user/trash/' + files[i]); - expect(request.requestHeaders.Destination).toEqual(OC.getRootPath() + '/remote.php/dav/trashbin/user/restore/' + files[i]); - request.respond(200); - } - return promise.then(function() { - expect(fileList.isEmpty).toEqual(true); - }).then(done, done); - }); - }); - }); -}); diff --git a/babel.config.js b/babel.config.js index 1d5dc3b6de0..3f523a8d2af 100644 --- a/babel.config.js +++ b/babel.config.js @@ -10,6 +10,7 @@ module.exports = { '@babel/preset-env', { useBuiltIns: false, + modules: 'auto', }, ], ], diff --git a/core/src/OC/apps.js b/core/src/OC/apps.js deleted file mode 100644 index bbda177409e..00000000000 --- a/core/src/OC/apps.js +++ /dev/null @@ -1,135 +0,0 @@ -/** - * @copyright Bernhard Posselt 2014 - * - * @author Christoph Wurst - * @author John Molakvoæ - * - * @license AGPL-3.0-or-later - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ - -import $ from 'jquery' - -let dynamicSlideToggleEnabled = false - -const Apps = { - enableDynamicSlideToggle() { - dynamicSlideToggleEnabled = true - }, -} - -/** - * Shows the #app-sidebar and add .with-app-sidebar to subsequent siblings - * - * @param {object} [$el] sidebar element to show, defaults to $('#app-sidebar') - */ -Apps.showAppSidebar = function($el) { - const $appSidebar = $el || $('#app-sidebar') - $appSidebar.removeClass('disappear').show() - $('#app-content').trigger(new $.Event('appresized')) -} - -/** - * Shows the #app-sidebar and removes .with-app-sidebar from subsequent - * siblings - * - * @param {object} [$el] sidebar element to hide, defaults to $('#app-sidebar') - */ -Apps.hideAppSidebar = function($el) { - const $appSidebar = $el || $('#app-sidebar') - $appSidebar.hide().addClass('disappear') - $('#app-content').trigger(new $.Event('appresized')) -} - -/** - * Provides a way to slide down a target area through a button and slide it - * up if the user clicks somewhere else. Used for the news app settings and - * add new field. - * - * Usage: - * - *
    I'm sliding up
    - */ -export const registerAppsSlideToggle = () => { - let buttons = $('[data-apps-slide-toggle]') - - if (buttons.length === 0) { - $('#app-navigation').addClass('without-app-settings') - } - - $(document).click(function(event) { - - if (dynamicSlideToggleEnabled) { - buttons = $('[data-apps-slide-toggle]') - } - - buttons.each(function(index, button) { - - const areaSelector = $(button).data('apps-slide-toggle') - const area = $(areaSelector) - - /** - * - */ - function hideArea() { - area.slideUp(OC.menuSpeed * 4, function() { - area.trigger(new $.Event('hide')) - }) - area.removeClass('opened') - $(button).removeClass('opened') - } - - /** - * - */ - function showArea() { - area.slideDown(OC.menuSpeed * 4, function() { - area.trigger(new $.Event('show')) - }) - area.addClass('opened') - $(button).addClass('opened') - const input = $(areaSelector + ' [autofocus]') - if (input.length === 1) { - input.focus() - } - } - - // do nothing if the area is animated - if (!area.is(':animated')) { - - // button toggles the area - if ($(button).is($(event.target).closest('[data-apps-slide-toggle]'))) { - if (area.is(':visible')) { - hideArea() - } else { - showArea() - } - - // all other areas that have not been clicked but are open - // should be slid up - } else { - const closest = $(event.target).closest(areaSelector) - if (area.is(':visible') && closest[0] !== area[0]) { - hideArea() - } - } - } - }) - - }) -} - -export default Apps diff --git a/core/src/OC/index.js b/core/src/OC/index.js index cc70bb550a7..e8f4b199103 100644 --- a/core/src/OC/index.js +++ b/core/src/OC/index.js @@ -30,7 +30,6 @@ import { processAjaxError, registerXHRForErrorProcessing, } from './xhr-error.js' -import Apps from './apps.js' import { AppConfig, appConfig } from './appconfig.js' import { appSettings } from './appsettings.js' import appswebroots from './appswebroots.js' @@ -45,8 +44,8 @@ import { import { build as buildQueryString, parse as parseQueryString, -} from './query-string.js' -import Config from './config.js' +} from './query-string' +import Config from './config' import { coreApps, menuSpeed, @@ -58,30 +57,30 @@ import { PERMISSION_SHARE, PERMISSION_UPDATE, TAG_FAVORITE, -} from './constants.js' -import ContactsMenu from './contactsmenu.js' -import { currentUser, getCurrentUser } from './currentuser.js' -import Dialogs from './dialogs.js' -import EventSource from './eventsource.js' -import { get, set } from './get_set.js' -import { getCapabilities } from './capabilities.js' +} from './constants' +import ContactsMenu from './contactsmenu' +import { currentUser, getCurrentUser } from './currentuser' +import Dialogs from './dialogs' +import EventSource from './eventsource' +import { get, set } from './get_set' +import { getCapabilities } from './capabilities' import { getHost, getHostName, getPort, getProtocol, -} from './host.js' +} from './host' import { getToken as getRequestToken, -} from './requesttoken.js' +} from './requesttoken' import { hideMenus, registerMenu, showMenu, unregisterMenu, -} from './menu.js' -import { isUserAdmin } from './admin.js' -import L10N from './l10n.js' +} from './menu' +import { isUserAdmin } from './admin' +import L10N from './l10n' import { getCanonicalLocale, getLanguage, @@ -141,7 +140,6 @@ export default { addScript, addStyle, - Apps, AppConfig, appConfig, appSettings, diff --git a/core/src/OC/util-history.js b/core/src/OC/util-history.js index d18b8743936..e5f9ff9447b 100644 --- a/core/src/OC/util-history.js +++ b/core/src/OC/util-history.js @@ -165,6 +165,8 @@ export default { }, _onPopState(e) { + debugger + if (this._cancelPop) { this._cancelPop = false return diff --git a/core/src/main.js b/core/src/main.js index f76d4f0b8e1..11a7ece6114 100644 --- a/core/src/main.js +++ b/core/src/main.js @@ -35,11 +35,9 @@ import OC from './OC/index.js' import './globals.js' import './jquery/index.js' import { initCore } from './init.js' -import { registerAppsSlideToggle } from './OC/apps.js' window.addEventListener('DOMContentLoaded', function() { initCore() - registerAppsSlideToggle() // fallback to hashchange when no history support if (window.history.pushState) { diff --git a/custom.d.ts b/custom.d.ts new file mode 100644 index 00000000000..80fc7ccf9e1 --- /dev/null +++ b/custom.d.ts @@ -0,0 +1,31 @@ +/** + * @copyright Copyright (c) 2023 John Molakvoæ + * + * @author John Molakvoæ + * + * @license AGPL-3.0-or-later + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ +declare module '*.svg' { + const content: any + export default content +} + +declare module '*.vue' { + import Vue from 'vue' + export default Vue +} + diff --git a/cypress.d.ts b/cypress.d.ts new file mode 100644 index 00000000000..b19af267631 --- /dev/null +++ b/cypress.d.ts @@ -0,0 +1,34 @@ +/** + * @copyright Copyright (c) 2023 John Molakvoæ + * + * @author John Molakvoæ + * + * @license AGPL-3.0-or-later + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ +/* eslint-disable */ +import { mount } from 'cypress/vue2' + +type MountParams = Parameters; +type OptionsParam = MountParams[1]; + +declare global { + namespace Cypress { + interface Chainable { + mount: typeof mount; + } + } +} diff --git a/cypress/support/component.ts b/cypress/support/component.ts index be4b8c94b1b..b56c3dc3604 100644 --- a/cypress/support/component.ts +++ b/cypress/support/component.ts @@ -19,21 +19,9 @@ * along with this program. If not, see . * */ +/* eslint-disable */ import { mount } from 'cypress/vue2' - -// Augment the Cypress namespace to include type definitions for -// your custom command. -// Alternatively, can be defined in cypress/support/component.d.ts -// with a at the top of your spec. -declare global { - // eslint-disable-next-line @typescript-eslint/no-namespace - namespace Cypress { - interface Chainable { - mount: typeof mount - } - } -} - + // Example use: // cy.mount(MyComponent) Cypress.Commands.add('mount', (component, optionsOrProps) => { diff --git a/package.json b/package.json index a40dc0daa97..69c54664300 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ "@nextcloud/capabilities": "^1.0.4", "@nextcloud/dialogs": "^4.0.0-beta.2", "@nextcloud/event-bus": "^3.0.2", - "@nextcloud/files": "^3.0.0-beta.5", + "@nextcloud/files": "^3.0.0-beta.7", "@nextcloud/initial-state": "^2.0.0", "@nextcloud/l10n": "^2.1.0", "@nextcloud/logger": "^2.5.0", @@ -99,15 +99,17 @@ "vue": "^2.7.14", "vue-click-outside": "^1.1.0", "vue-cropperjs": "^4.2.0", + "vue-fragment": "^1.6.0", "vue-infinite-loading": "^2.4.5", "vue-localstorage": "^0.6.2", "vue-material-design-icons": "^5.0.0", "vue-multiselect": "^2.1.6", "vue-router": "^3.6.5", + "vue-virtual-scroll-list": "github:skjnldsv/vue-virtual-scroll-list#feat/table", "vuedraggable": "^2.24.3", "vuex": "^3.6.2", "vuex-router-sync": "^5.0.0", - "webdav": "^4.11.0" + "webdav": "^5.0.0-r1" }, "devDependencies": { "@babel/node": "^7.20.7", @@ -160,6 +162,7 @@ "sass-loader": "^13.2.0", "sinon": "<= 5.0.7", "style-loader": "^3.3.1", + "ts-loader": "^9.4.2", "ts-node": "^10.9.1", "tslib": "^2.4.1", "typescript": "^4.9.3", diff --git a/tsconfig.json b/tsconfig.json index 8a0ceb144a9..d8f4257afe4 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,8 +1,8 @@ { "extends": "@vue/tsconfig/tsconfig.json", - "include": ["./apps/**/*.ts", "./core/**/*.ts"], + "include": ["./apps/**/*.ts", "./core/**/*.ts", "./*.d.ts"], "compilerOptions": { - "types": ["node"], + "types": ["cypress", "node", "vue"], "outDir": "./dist/", "target": "ESNext", "module": "esnext", diff --git a/webpack.common.js b/webpack.common.js index b76763a136e..1c589a6ce8d 100644 --- a/webpack.common.js +++ b/webpack.common.js @@ -171,6 +171,7 @@ module.exports = { alias: { // make sure to use the handlebar runtime when importing handlebars: 'handlebars/runtime', + vue$: path.resolve('./node_modules/vue'), }, extensions: ['*', '.ts', '.js', '.vue'], symlinks: true, diff --git a/webpack.modules.js b/webpack.modules.js index 8bc42d81e3a..045bcaacc82 100644 --- a/webpack.modules.js +++ b/webpack.modules.js @@ -63,7 +63,7 @@ module.exports = { 'personal-settings': path.join(__dirname, 'apps/files_sharing/src', 'personal-settings.js'), }, files_trashbin: { - files_trashbin: path.join(__dirname, 'apps/files_trashbin/src', 'files_trashbin.js'), + main: path.join(__dirname, 'apps/files_trashbin/src', 'main.ts'), }, files_versions: { files_versions: path.join(__dirname, 'apps/files_versions/src', 'files_versions_tab.js'), -- cgit v1.2.3 From a66cae02efcc27d962d867ba9a9e5da0441333e5 Mon Sep 17 00:00:00 2001 From: John Molakvoæ Date: Fri, 31 Mar 2023 14:56:11 +0200 Subject: fix(deps): update webdav 5 usage MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: John Molakvoæ --- apps/comments/src/services/DavClient.js | 21 +++---- apps/comments/src/services/GetComments.js | 92 ---------------------------- apps/comments/src/services/GetComments.ts | 83 +++++++++++++++++++++++++ apps/comments/src/utils/cancelableRequest.js | 22 ++----- apps/comments/src/views/Comments.vue | 10 +-- apps/dav/src/service/CalendarService.js | 2 +- apps/files_versions/src/utils/davClient.js | 17 ++--- apps/files_versions/src/views/VersionTab.vue | 1 + core/src/OC/index.js | 28 ++++----- core/src/OC/util-history.js | 2 - package.json | 2 +- 11 files changed, 131 insertions(+), 149 deletions(-) delete mode 100644 apps/comments/src/services/GetComments.js create mode 100644 apps/comments/src/services/GetComments.ts (limited to 'core/src') diff --git a/apps/comments/src/services/DavClient.js b/apps/comments/src/services/DavClient.js index 6837ce90c56..5c2fc96e4db 100644 --- a/apps/comments/src/services/DavClient.js +++ b/apps/comments/src/services/DavClient.js @@ -20,19 +20,18 @@ * */ -import { createClient, getPatcher } from 'webdav' -import axios from '@nextcloud/axios' - +import { createClient } from 'webdav' import { getRootPath } from '../utils/davUtils.js' - -// Add this so the server knows it is an request from the browser -axios.defaults.headers['X-Requested-With'] = 'XMLHttpRequest' - -// force our axios -const patcher = getPatcher() -patcher.patch('request', axios) +import { getRequestToken } from '@nextcloud/auth' // init webdav client -const client = createClient(getRootPath()) +const client = createClient(getRootPath(), { + headers: { + // Add this so the server knows it is an request from the browser + 'X-Requested-With': 'XMLHttpRequest', + // Inject user auth + requesttoken: getRequestToken() ?? '', + }, +}) export default client diff --git a/apps/comments/src/services/GetComments.js b/apps/comments/src/services/GetComments.js deleted file mode 100644 index 4bdab9046a2..00000000000 --- a/apps/comments/src/services/GetComments.js +++ /dev/null @@ -1,92 +0,0 @@ -/** - * @copyright Copyright (c) 2020 John Molakvoæ - * - * @author John Molakvoæ - * - * @license AGPL-3.0-or-later - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ - -import { parseXML, prepareFileFromProps } from 'webdav/dist/node/tools/dav.js' -import { processResponsePayload } from 'webdav/dist/node/response.js' -import { decodeHtmlEntities } from '../utils/decodeHtmlEntities.js' -import client from './DavClient.js' - -export const DEFAULT_LIMIT = 20 -/** - * Retrieve the comments list - * - * @param {object} data destructuring object - * @param {string} data.commentsType the ressource type - * @param {number} data.ressourceId the ressource ID - * @param {object} [options] optional options for axios - * @return {object[]} the comments list - */ -export default async function({ commentsType, ressourceId }, options = {}) { - let response = null - const ressourcePath = ['', commentsType, ressourceId].join('/') - - return await client.customRequest(ressourcePath, Object.assign({ - method: 'REPORT', - data: ` - - ${DEFAULT_LIMIT} - ${options.offset || 0} - `, - }, options)) - // See example on how it's done normally - // https://github.com/perry-mitchell/webdav-client/blob/9de2da4a2599e06bd86c2778145b7ade39fe0b3c/source/interface/stat.js#L19 - // Waiting for proper REPORT integration https://github.com/perry-mitchell/webdav-client/issues/207 - .then(res => { - response = res - return res.data - }) - .then(parseXML) - .then(xml => processMultistatus(xml, true)) - .then(comments => processResponsePayload(response, comments, true)) - .then(response => response.data) -} - -// https://github.com/perry-mitchell/webdav-client/blob/9de2da4a2599e06bd86c2778145b7ade39fe0b3c/source/interface/directoryContents.js#L32 -/** - * @param {any} result - - * @param {any} isDetailed - - */ -function processMultistatus(result, isDetailed = false) { - // Extract the response items (directory contents) - const { - multistatus: { response: responseItems }, - } = result - return responseItems.map(item => { - // Each item should contain a stat object - const { - propstat: { prop: props }, - } = item - // Decode HTML entities - const decodedProps = { - ...props, - // Decode twice to handle potentially double-encoded entities - // FIXME Remove this once https://github.com/nextcloud/server/issues/29306 is resolved - actorDisplayName: decodeHtmlEntities(props.actorDisplayName, 2), - message: decodeHtmlEntities(props.message, 2), - } - return prepareFileFromProps(decodedProps, decodedProps.id.toString(), isDetailed) - }) -} diff --git a/apps/comments/src/services/GetComments.ts b/apps/comments/src/services/GetComments.ts new file mode 100644 index 00000000000..d74e92bce68 --- /dev/null +++ b/apps/comments/src/services/GetComments.ts @@ -0,0 +1,83 @@ +/** + * @copyright Copyright (c) 2020 John Molakvoæ + * + * @author John Molakvoæ + * + * @license AGPL-3.0-or-later + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + +import { parseXML, type DAVResult, type FileStat } from 'webdav' + +// https://github.com/perry-mitchell/webdav-client/issues/339 +import { processResponsePayload } from '../../../../node_modules/webdav/dist/node/response.js' +import { prepareFileFromProps } from '../../../../node_modules/webdav/dist/node/tools/dav.js' +import client from './DavClient.js' + +export const DEFAULT_LIMIT = 20 + +/** + * Retrieve the comments list + * + * @param {object} data destructuring object + * @param {string} data.commentsType the ressource type + * @param {number} data.ressourceId the ressource ID + * @param {object} [options] optional options for axios + * @param {number} [options.offset] the pagination offset + * @return {object[]} the comments list + */ +export const getComments = async function({ commentsType, ressourceId }, options: { offset: number }) { + const ressourcePath = ['', commentsType, ressourceId].join('/') + + const response = await client.customRequest(ressourcePath, Object.assign({ + method: 'REPORT', + data: ` + + ${DEFAULT_LIMIT} + ${options.offset || 0} + `, + }, options)) + + const responseData = await response.text() + const result = await parseXML(responseData) + const stat = getDirectoryFiles(result, true) + return processResponsePayload(response, stat, true) +} + +// https://github.com/perry-mitchell/webdav-client/blob/8d9694613c978ce7404e26a401c39a41f125f87f/source/operations/directoryContents.ts +const getDirectoryFiles = function( + result: DAVResult, + isDetailed = false, +): Array { + // Extract the response items (directory contents) + const { + multistatus: { response: responseItems }, + } = result + + // Map all items to a consistent output structure (results) + return responseItems.map(item => { + // Each item should contain a stat object + const { + propstat: { prop: props }, + } = item + + return prepareFileFromProps(props, props.id.toString(), isDetailed) + }) +} diff --git a/apps/comments/src/utils/cancelableRequest.js b/apps/comments/src/utils/cancelableRequest.js index cdb31441926..1973de38903 100644 --- a/apps/comments/src/utils/cancelableRequest.js +++ b/apps/comments/src/utils/cancelableRequest.js @@ -20,15 +20,6 @@ * */ -import axios from '@nextcloud/axios' - -/** - * Create a cancel token - * - * @return {import('axios').CancelTokenSource} - */ -const createCancelToken = () => axios.CancelToken.source() - /** * Creates a cancelable axios 'request object'. * @@ -36,10 +27,8 @@ const createCancelToken = () => axios.CancelToken.source() * @return {object} */ const cancelableRequest = function(request) { - /** - * Generate an axios cancel token - */ - const cancelToken = createCancelToken() + const controller = new AbortController() + const signal = controller.signal /** * Execute the request @@ -48,15 +37,16 @@ const cancelableRequest = function(request) { * @param {object} [options] optional config for the request */ const fetch = async function(url, options) { - return request( + const response = await request( url, - Object.assign({ cancelToken: cancelToken.token }, options) + Object.assign({ signal }, options) ) + return response } return { request: fetch, - cancel: cancelToken.cancel, + abort: () => controller.abort(), } } diff --git a/apps/comments/src/views/Comments.vue b/apps/comments/src/views/Comments.vue index b3b75a92dca..55f735d566d 100644 --- a/apps/comments/src/views/Comments.vue +++ b/apps/comments/src/views/Comments.vue @@ -94,7 +94,7 @@ import MessageReplyTextIcon from 'vue-material-design-icons/MessageReplyText.vue import AlertCircleOutlineIcon from 'vue-material-design-icons/AlertCircleOutline.vue' import Comment from '../components/Comment.vue' -import getComments, { DEFAULT_LIMIT } from '../services/GetComments.js' +import { getComments, DEFAULT_LIMIT } from '../services/GetComments.ts' import cancelableRequest from '../utils/cancelableRequest.js' Vue.use(VTooltip) @@ -206,14 +206,14 @@ export default { this.error = '' // Init cancellable request - const { request, cancel } = cancelableRequest(getComments) - this.cancelRequest = cancel + const { request, abort } = cancelableRequest(getComments) + this.cancelRequest = abort // Fetch comments - const comments = await request({ + const { data: comments } = await request({ commentsType: this.commentsType, ressourceId: this.ressourceId, - }, { offset: this.offset }) + }, { offset: this.offset }) || { data: [] } this.logger.debug(`Processed ${comments.length} comments`, { comments }) diff --git a/apps/dav/src/service/CalendarService.js b/apps/dav/src/service/CalendarService.js index 9faad92f418..46c92436d6b 100644 --- a/apps/dav/src/service/CalendarService.js +++ b/apps/dav/src/service/CalendarService.js @@ -20,7 +20,7 @@ */ import { getClient } from '../dav/client.js' import logger from './logger.js' -import { parseXML } from 'webdav/dist/node/tools/dav.js' +import { parseXML } from 'webdav' import { slotsToVavailability, diff --git a/apps/files_versions/src/utils/davClient.js b/apps/files_versions/src/utils/davClient.js index e4bfeb10411..022d34bbba4 100644 --- a/apps/files_versions/src/utils/davClient.js +++ b/apps/files_versions/src/utils/davClient.js @@ -19,16 +19,19 @@ * along with this program. If not, see . */ -import { createClient, getPatcher } from 'webdav' +import { createClient } from 'webdav' import { generateRemoteUrl } from '@nextcloud/router' -import axios from '@nextcloud/axios' +import { getRequestToken } from '@nextcloud/auth' const rootPath = 'dav' -// force our axios -const patcher = getPatcher() -patcher.patch('request', axios) - // init webdav client on default dav endpoint const remote = generateRemoteUrl(rootPath) -export default createClient(remote) +export default createClient(remote, { + headers: { + // Add this so the server knows it is an request from the browser + 'X-Requested-With': 'XMLHttpRequest', + // Inject user auth + requesttoken: getRequestToken() ?? '', + }, +}) diff --git a/apps/files_versions/src/views/VersionTab.vue b/apps/files_versions/src/views/VersionTab.vue index f2e9576abd0..04b6ecf1add 100644 --- a/apps/files_versions/src/views/VersionTab.vue +++ b/apps/files_versions/src/views/VersionTab.vue @@ -68,6 +68,7 @@ export default { /** * Return the mtime of the first version to display "Initial version" label + * * @return {number} */ initialVersionMtime() { diff --git a/core/src/OC/index.js b/core/src/OC/index.js index e8f4b199103..32c31c2c3a3 100644 --- a/core/src/OC/index.js +++ b/core/src/OC/index.js @@ -44,8 +44,8 @@ import { import { build as buildQueryString, parse as parseQueryString, -} from './query-string' -import Config from './config' +} from './query-string.js' +import Config from './config.js' import { coreApps, menuSpeed, @@ -57,30 +57,30 @@ import { PERMISSION_SHARE, PERMISSION_UPDATE, TAG_FAVORITE, -} from './constants' -import ContactsMenu from './contactsmenu' -import { currentUser, getCurrentUser } from './currentuser' -import Dialogs from './dialogs' -import EventSource from './eventsource' -import { get, set } from './get_set' -import { getCapabilities } from './capabilities' +} from './constants.js' +import ContactsMenu from './contactsmenu.js' +import { currentUser, getCurrentUser } from './currentuser.js' +import Dialogs from './dialogs.js' +import EventSource from './eventsource.js' +import { get, set } from './get_set.js' +import { getCapabilities } from './capabilities.js' import { getHost, getHostName, getPort, getProtocol, -} from './host' +} from './host.js' import { getToken as getRequestToken, -} from './requesttoken' +} from './requesttoken.js' import { hideMenus, registerMenu, showMenu, unregisterMenu, -} from './menu' -import { isUserAdmin } from './admin' -import L10N from './l10n' +} from './menu.js' +import { isUserAdmin } from './admin.js' +import L10N from './l10n.js' import { getCanonicalLocale, getLanguage, diff --git a/core/src/OC/util-history.js b/core/src/OC/util-history.js index e5f9ff9447b..d18b8743936 100644 --- a/core/src/OC/util-history.js +++ b/core/src/OC/util-history.js @@ -165,8 +165,6 @@ export default { }, _onPopState(e) { - debugger - if (this._cancelPop) { this._cancelPop = false return diff --git a/package.json b/package.json index 8df2826e368..2c2bbf28eaa 100644 --- a/package.json +++ b/package.json @@ -111,7 +111,7 @@ "vuedraggable": "^2.24.3", "vuex": "^3.6.2", "vuex-router-sync": "^5.0.0", - "webdav": "^5.0.0-r1" + "webdav": "^5.0.0-r3" }, "devDependencies": { "@babel/node": "^7.20.7", -- cgit v1.2.3 From 389c6dc30b70f7099b171339f56714496f317ee3 Mon Sep 17 00:00:00 2001 From: Julius Härtl Date: Fri, 7 Apr 2023 16:02:19 +0200 Subject: fix: Fix filepicker breadcrumbs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Julius Härtl --- core/css/server.css | 2 +- core/css/server.css.map | 2 +- core/css/styles.css | 2 +- core/css/styles.css.map | 2 +- core/css/styles.scss | 1 + core/src/OC/dialogs.js | 6 +++--- dist/core-login.js | 4 ++-- dist/core-login.js.map | 2 +- dist/core-main.js | 4 ++-- dist/core-main.js.map | 2 +- 10 files changed, 14 insertions(+), 13 deletions(-) (limited to 'core/src') diff --git a/core/css/server.css b/core/css/server.css index 5e34f34cc74..1732fdf1623 100644 --- a/core/css/server.css +++ b/core/css/server.css @@ -1 +1 @@ -@import"../../dist/icons.css";html,body,div,span,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,code,del,dfn,em,img,q,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,dialog,figure,footer,header,hgroup,nav,section,main{margin:0;padding:0;border:0;font-weight:inherit;font-size:100%;font-family:inherit;vertical-align:baseline;cursor:default;scrollbar-color:var(--color-border-dark) rgba(0,0,0,0);scrollbar-width:thin}.js-focus-visible :focus:not(.focus-visible){outline:none}.content:not(#content-vue) :focus-visible,.app-navigation:not(#app-navigation-vue) :focus-visible{box-shadow:inset 0 0 0 2px var(--color-primary);outline:none}html,body{height:100%}article,aside,dialog,figure,footer,header,hgroup,nav,section{display:block}body{line-height:1.5}table{border-collapse:separate;border-spacing:0;white-space:nowrap}caption,th,td{text-align:left;font-weight:normal}table,td,th{vertical-align:middle}a{border:0;color:var(--color-main-text);text-decoration:none;cursor:pointer}a *{cursor:pointer}a.external{margin:0 3px;text-decoration:underline}input{cursor:pointer}input *{cursor:pointer}select,.button span,label{cursor:pointer}ul{list-style:none}body{font-weight:normal;font-size:var(--default-font-size);line-height:var(--default-line-height);font-family:var(--font-face);color:var(--color-main-text)}.two-factor-header{text-align:center}.two-factor-provider{text-align:center;width:100% !important;display:inline-block;margin-bottom:0 !important;background-color:var(--color-background-darker) !important;border:none !important}.two-factor-link{display:inline-block;padding:12px;color:var(--color-text-lighter)}.float-spinner{height:32px;display:none}#nojavascript{position:fixed;top:0;bottom:0;left:0;height:100%;width:100%;z-index:9000;text-align:center;background-color:var(--color-background-darker);color:var(--color-primary-text);line-height:125%;font-size:24px}#nojavascript div{display:block;position:relative;width:50%;top:35%;margin:0px auto}#nojavascript a{color:var(--color-primary-text);border-bottom:2px dotted var(--color-main-background)}#nojavascript a:hover,#nojavascript a:focus{color:var(--color-primary-text-dark)}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-corner{background-color:rgba(0,0,0,0)}::-webkit-scrollbar-track-piece{background-color:rgba(0,0,0,0)}::-webkit-scrollbar-thumb{background:var(--color-scrollbar);border-radius:var(--border-radius-large);border:2px solid rgba(0,0,0,0);background-clip:content-box}::selection{background-color:var(--color-primary-element);color:var(--color-primary-text)}#app-navigation *{box-sizing:border-box}#emptycontent,.emptycontent{color:var(--color-text-maxcontrast);text-align:center;margin-top:30vh;width:100%}#app-sidebar #emptycontent,#app-sidebar .emptycontent{margin-top:10vh}#emptycontent .emptycontent-search,.emptycontent .emptycontent-search{position:static}#emptycontent h2,.emptycontent h2{margin-bottom:10px}#emptycontent [class^=icon-],#emptycontent [class*=icon-],.emptycontent [class^=icon-],.emptycontent [class*=icon-]{background-size:64px;height:64px;width:64px;margin:0 auto 15px}#emptycontent [class^=icon-]:not([class^=icon-loading]),#emptycontent [class^=icon-]:not([class*=icon-loading]),#emptycontent [class*=icon-]:not([class^=icon-loading]),#emptycontent [class*=icon-]:not([class*=icon-loading]),.emptycontent [class^=icon-]:not([class^=icon-loading]),.emptycontent [class^=icon-]:not([class*=icon-loading]),.emptycontent [class*=icon-]:not([class^=icon-loading]),.emptycontent [class*=icon-]:not([class*=icon-loading]){opacity:.4}#datadirContent label{width:100%}.grouptop,.groupmiddle,.groupbottom{position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#show,#dbpassword{position:absolute;right:1em;top:.8em;float:right}#show+label,#dbpassword+label{right:21px;top:15px !important;margin:-14px !important;padding:14px !important}#show:checked+label,#dbpassword:checked+label,#personal-show:checked+label{opacity:.8}#show:focus-visible+label,#dbpassword-toggle:focus-visible+label,#personal-show:focus-visible+label{box-shadow:var(--color-primary) 0 0 0 2px;opacity:1;border-radius:9999px}#show+label,#dbpassword+label,#personal-show+label{position:absolute !important;height:20px;width:24px;background-image:var(--icon-toggle-dark);background-repeat:no-repeat;background-position:center;opacity:.3}#show:focus+label,#dbpassword:focus+label,#personal-show:focus+label{opacity:1}#show+label:hover,#dbpassword+label:hover,#personal-show+label:hover{opacity:1}#show+label:before,#dbpassword+label:before,#personal-show+label:before{display:none}#pass2,input[name=personal-password-clone]{padding-right:30px}.personal-show-container{position:relative;display:inline-block;margin-right:6px}#personal-show+label{display:block;right:0;margin-top:-43px;margin-right:-4px;padding:22px}#body-user .warning,#body-settings .warning{margin-top:8px;padding:5px;border-radius:var(--border-radius);color:var(--color-main-text);background-color:rgba(var(--color-warning-rgb), 0.2)}.warning legend,.warning a{font-weight:bold !important}.error:not(.toastify) a{color:#fff !important;font-weight:bold !important}.error:not(.toastify) a.button{color:var(--color-text-lighter) !important;display:inline-block;text-align:center}.error:not(.toastify) pre{white-space:pre-wrap;text-align:left}.error-wide{width:700px;margin-left:-200px !important}.error-wide .button{color:#000 !important}.warning-input{border-color:var(--color-error) !important}.avatar,.avatardiv{border-radius:50%;flex-shrink:0}.avatar>img,.avatardiv>img{border-radius:50%;flex-shrink:0}td.avatar{border-radius:0}tr .action:not(.permanent),.selectedActions>a{opacity:0}tr:hover .action:not(.menuitem),tr:focus .action:not(.menuitem),tr .action.permanent:not(.menuitem){opacity:.5}.selectedActions>a{opacity:.5;position:relative;top:2px}.selectedActions>a:hover,.selectedActions>a:focus{opacity:1}tr .action{width:16px;height:16px}.header-action{opacity:.8}tr:hover .action:hover,tr:focus .action:focus{opacity:1}.selectedActions a:hover,.selectedActions a:focus{opacity:1}.header-action:hover,.header-action:focus{opacity:1}tbody tr:hover,tbody tr:focus,tbody tr:active{background-color:var(--color-background-dark)}code{font-family:"Lucida Console","Lucida Sans Typewriter","DejaVu Sans Mono",monospace}.pager{list-style:none;float:right;display:inline;margin:.7em 13em 0 0}.pager li{display:inline-block}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{overflow:hidden;text-overflow:ellipsis}.ui-icon-circle-triangle-e{background-image:url("../img/actions/play-next.svg?v=1")}.ui-icon-circle-triangle-w{background-image:url("../img/actions/play-previous.svg?v=1")}.ui-widget.ui-datepicker{margin-top:10px;padding:4px 8px;width:auto;border-radius:var(--border-radius);border:none;z-index:1600 !important}.ui-widget.ui-datepicker .ui-state-default,.ui-widget.ui-datepicker .ui-widget-content .ui-state-default,.ui-widget.ui-datepicker .ui-widget-header .ui-state-default{border:1px solid rgba(0,0,0,0);background:inherit}.ui-widget.ui-datepicker .ui-widget-header{padding:7px;font-size:13px;border:none;background-color:var(--color-main-background);color:var(--color-main-text)}.ui-widget.ui-datepicker .ui-widget-header .ui-datepicker-title{line-height:1;font-weight:normal}.ui-widget.ui-datepicker .ui-widget-header .ui-icon{opacity:.5}.ui-widget.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-e{background:url("../img/actions/arrow-right.svg") center center no-repeat}.ui-widget.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-w{background:url("../img/actions/arrow-left.svg") center center no-repeat}.ui-widget.ui-datepicker .ui-widget-header .ui-state-hover .ui-icon{opacity:1}.ui-widget.ui-datepicker .ui-datepicker-calendar th{font-weight:normal;color:var(--color-text-lighter);opacity:.8;width:26px;padding:2px}.ui-widget.ui-datepicker .ui-datepicker-calendar tr:hover{background-color:inherit}.ui-widget.ui-datepicker .ui-datepicker-calendar td.ui-datepicker-today a:not(.ui-state-hover){background-color:var(--color-background-darker)}.ui-widget.ui-datepicker .ui-datepicker-calendar td.ui-datepicker-current-day a.ui-state-active,.ui-widget.ui-datepicker .ui-datepicker-calendar td .ui-state-hover,.ui-widget.ui-datepicker .ui-datepicker-calendar td .ui-state-focus{background-color:var(--color-primary);color:var(--color-primary-text);font-weight:bold}.ui-widget.ui-datepicker .ui-datepicker-calendar td.ui-datepicker-week-end:not(.ui-state-disabled) :not(.ui-state-hover),.ui-widget.ui-datepicker .ui-datepicker-calendar td .ui-priority-secondary:not(.ui-state-hover){color:var(--color-text-lighter);opacity:.8}.ui-datepicker-prev,.ui-datepicker-next{border:var(--color-border-dark);background:var(--color-main-background)}.ui-widget.ui-timepicker{margin-top:10px !important;width:auto !important;border-radius:var(--border-radius);z-index:1600 !important}.ui-widget.ui-timepicker .ui-widget-content{border:none !important}.ui-widget.ui-timepicker .ui-state-default,.ui-widget.ui-timepicker .ui-widget-content .ui-state-default,.ui-widget.ui-timepicker .ui-widget-header .ui-state-default{border:1px solid rgba(0,0,0,0);background:inherit}.ui-widget.ui-timepicker .ui-widget-header{padding:7px;font-size:13px;border:none;background-color:var(--color-main-background);color:var(--color-main-text)}.ui-widget.ui-timepicker .ui-widget-header .ui-timepicker-title{line-height:1;font-weight:normal}.ui-widget.ui-timepicker table.ui-timepicker tr .ui-timepicker-hour-cell:first-child{margin-left:30px}.ui-widget.ui-timepicker .ui-timepicker-table th{font-weight:normal;color:var(--color-text-lighter);opacity:.8}.ui-widget.ui-timepicker .ui-timepicker-table th.periods{padding:0;width:30px;line-height:30px}.ui-widget.ui-timepicker .ui-timepicker-table tr:hover{background-color:inherit}.ui-widget.ui-timepicker .ui-timepicker-table td.ui-timepicker-hour-cell a.ui-state-active,.ui-widget.ui-timepicker .ui-timepicker-table td.ui-timepicker-minute-cell a.ui-state-active,.ui-widget.ui-timepicker .ui-timepicker-table td .ui-state-hover,.ui-widget.ui-timepicker .ui-timepicker-table td .ui-state-focus{background-color:var(--color-primary);color:var(--color-primary-text);font-weight:bold}.ui-widget.ui-timepicker .ui-timepicker-table td.ui-timepicker-minutes:not(.ui-state-hover){color:var(--color-text-lighter)}.ui-widget.ui-timepicker .ui-timepicker-table td.ui-timepicker-hours{border-right:1px solid var(--color-border)}.ui-widget.ui-datepicker .ui-datepicker-calendar tr,.ui-widget.ui-timepicker table.ui-timepicker tr{display:flex;flex-wrap:nowrap;justify-content:space-between}.ui-widget.ui-datepicker .ui-datepicker-calendar tr td,.ui-widget.ui-timepicker table.ui-timepicker tr td{flex:1 1 auto;margin:0;padding:2px;height:26px;width:26px;display:flex;align-items:center;justify-content:center}.ui-widget.ui-datepicker .ui-datepicker-calendar tr td>*,.ui-widget.ui-timepicker table.ui-timepicker tr td>*{border-radius:50%;text-align:center;font-weight:normal;color:var(--color-main-text);display:block;line-height:18px;width:18px;height:18px;padding:3px;font-size:.9em}#oc-dialog-filepicker-content{position:relative;display:flex;flex-direction:column}#oc-dialog-filepicker-content .dirtree{flex-wrap:wrap;box-sizing:border-box;padding-right:140px}#oc-dialog-filepicker-content .dirtree div:first-child a{font-size:0px;background-image:var(--icon-home-dark);background-repeat:no-repeat;background-position:left center}#oc-dialog-filepicker-content .dirtree span:not(:last-child){cursor:pointer}#oc-dialog-filepicker-content .dirtree span:last-child{font-weight:bold}#oc-dialog-filepicker-content .dirtree span:not(:last-child)::after{content:">";padding:3px}#oc-dialog-filepicker-content #picker-showgridview{position:absolute;background-color:rgba(0,0,0,0);border:none;margin:0;padding:22px;opacity:.5;right:0;top:0}#oc-dialog-filepicker-content #picker-showgridview:hover,#oc-dialog-filepicker-content #picker-showgridview:active,#oc-dialog-filepicker-content #picker-showgridview:focus{box-shadow:0 0 0 2px var(--color-primary);opacity:1}#oc-dialog-filepicker-content .actions.creatable{flex-wrap:wrap;padding:0px;box-sizing:border-box;display:inline-flex;float:none;max-height:36px;max-width:36px;background-color:var(--color-background-dark);border:1px solid var(--color-border-dark);border-radius:var(--border-radius-pill);position:relative;left:15px;top:3px;order:1}#oc-dialog-filepicker-content .actions.creatable .icon.icon-add{background-image:var(--icon-add-dark);background-size:16px 16px;width:34px;height:34px;margin:0px;opacity:.5}#oc-dialog-filepicker-content .actions.creatable a{width:36px;padding:0px;position:static}#oc-dialog-filepicker-content .actions.creatable .menu{top:100%;margin-top:10px}#oc-dialog-filepicker-content .actions.creatable .menu form{display:flex;margin:10px}#oc-dialog-filepicker-content .filelist-container{box-sizing:border-box;display:inline-block;overflow-y:auto;flex:1;width:100%;overflow-x:hidden}#oc-dialog-filepicker-content .emptycontent{color:var(--color-text-maxcontrast);text-align:center;margin-top:80px;width:100%;display:none}#oc-dialog-filepicker-content .filelist{background-color:var(--color-main-background);width:100%}#oc-dialog-filepicker-content #picker-filestable.filelist{min-width:initial;margin-bottom:50px}#oc-dialog-filepicker-content #picker-filestable.filelist thead tr{border-bottom:1px solid var(--color-border);background-color:var(--color-main-background)}#oc-dialog-filepicker-content #picker-filestable.filelist thead tr th{width:80%;border:none}#oc-dialog-filepicker-content #picker-filestable.filelist th .columntitle{display:block;padding:15px;height:50px;box-sizing:border-box;-moz-box-sizing:border-box;vertical-align:middle}#oc-dialog-filepicker-content #picker-filestable.filelist th .columntitle.name{padding-left:5px;margin-left:50px}#oc-dialog-filepicker-content #picker-filestable.filelist th .sort-indicator{width:10px;height:8px;margin-left:5px;display:inline-block;vertical-align:text-bottom;opacity:.3}#oc-dialog-filepicker-content #picker-filestable.filelist .sort-indicator.hidden,#oc-dialog-filepicker-content #picker-filestable.filelist th:hover .sort-indicator.hidden,#oc-dialog-filepicker-content #picker-filestable.filelist th:focus .sort-indicator.hidden{visibility:hidden}#oc-dialog-filepicker-content #picker-filestable.filelist th:hover .sort-indicator.hidden,#oc-dialog-filepicker-content #picker-filestable.filelist th:focus .sort-indicator.hidden{visibility:visible}#oc-dialog-filepicker-content #picker-filestable.filelist td{padding:14px;border-bottom:1px solid var(--color-border)}#oc-dialog-filepicker-content #picker-filestable.filelist tr:last-child td{border-bottom:none}#oc-dialog-filepicker-content #picker-filestable.filelist .filename{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;background-size:32px;background-repeat:no-repeat;padding-left:51px;background-position:7px 7px;cursor:pointer;max-width:0}#oc-dialog-filepicker-content #picker-filestable.filelist .filename .filename-parts{display:flex}#oc-dialog-filepicker-content #picker-filestable.filelist .filename .filename-parts__first{overflow:hidden;white-space:pre;text-overflow:ellipsis}#oc-dialog-filepicker-content #picker-filestable.filelist .filename .filename-parts__last{white-space:pre}#oc-dialog-filepicker-content #picker-filestable.filelist .filesize,#oc-dialog-filepicker-content #picker-filestable.filelist .date{width:80px}#oc-dialog-filepicker-content #picker-filestable.filelist .filesize{text-align:right}#oc-dialog-filepicker-content #picker-filestable.filelist.view-grid{display:flex;flex-direction:column}#oc-dialog-filepicker-content #picker-filestable.filelist.view-grid tbody{display:grid;grid-template-columns:repeat(auto-fill, 120px);justify-content:space-around;row-gap:15px;margin:15px 0}#oc-dialog-filepicker-content #picker-filestable.filelist.view-grid tbody tr{display:block;position:relative;border-radius:var(--border-radius);padding:10px;display:flex;flex-direction:column;width:100px}#oc-dialog-filepicker-content #picker-filestable.filelist.view-grid tbody tr td{border:none;padding:0;text-align:center;border-radius:var(--border-radius)}#oc-dialog-filepicker-content #picker-filestable.filelist.view-grid tbody tr td.filename{padding:100px 0 0 0;background-position:center top;background-size:contain;line-height:30px;max-width:none}#oc-dialog-filepicker-content #picker-filestable.filelist.view-grid tbody tr td.filename .filename-parts{justify-content:center}#oc-dialog-filepicker-content #picker-filestable.filelist.view-grid tbody tr td.filesize{line-height:10px;width:100%}#oc-dialog-filepicker-content #picker-filestable.filelist.view-grid tbody tr td.date{display:none}#oc-dialog-filepicker-content .filepicker_element_selected{background-color:var(--color-background-darker)}.ui-dialog{position:fixed !important}span.ui-icon{float:left;margin:3px 7px 30px 0}.extra-data{padding-right:5px !important}#tagsdialog .content{width:100%;height:280px}#tagsdialog .scrollarea{overflow:auto;border:1px solid var(--color-background-darker);width:100%;height:240px}#tagsdialog .bottombuttons{width:100%;height:30px}#tagsdialog .bottombuttons *{float:left}#tagsdialog .taglist li{background:var(--color-background-dark);padding:.3em .8em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-webkit-transition:background-color 500ms;transition:background-color 500ms}#tagsdialog .taglist li:hover,#tagsdialog .taglist li:active{background:var(--color-background-darker)}#tagsdialog .addinput{width:90%;clear:both}.breadcrumb{display:inline-flex;height:50px}li.crumb{display:inline-flex;background-image:url("../img/breadcrumb.svg?v=1");background-repeat:no-repeat;background-position:right center;height:44px;background-size:auto 24px;flex:0 0 auto;order:1;padding-right:7px}li.crumb.crumbmenu{order:2;position:relative}li.crumb.crumbmenu a{opacity:.5}li.crumb.crumbmenu.canDropChildren .popovermenu,li.crumb.crumbmenu.canDrop .popovermenu{display:block}li.crumb.crumbmenu .popovermenu{top:100%;margin-right:3px}li.crumb.crumbmenu .popovermenu ul{max-height:345px;overflow-y:auto;overflow-x:hidden;padding-right:5px}li.crumb.crumbmenu .popovermenu ul li.canDrop span:first-child{background-image:url("../img/filetypes/folder-drag-accept.svg?v=1") !important}li.crumb.crumbmenu .popovermenu .in-breadcrumb{display:none}li.crumb.hidden{display:none}li.crumb.hidden~.crumb{order:3}li.crumb>a,li.crumb>span{position:relative;padding:12px;opacity:.5;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;flex:0 0 auto;max-width:200px}li.crumb>a.icon-home,li.crumb>a.icon-delete,li.crumb>span.icon-home,li.crumb>span.icon-delete{text-indent:-9999px}li.crumb>a[class^=icon-]{padding:0;width:44px}li.crumb:last-child{font-weight:bold;margin-right:10px}li.crumb:last-child a~span{padding-left:0}li.crumb:hover,li.crumb:focus,li.crumb a:focus,li.crumb:active{opacity:1}li.crumb:hover>a,li.crumb:hover>span,li.crumb:focus>a,li.crumb:focus>span,li.crumb a:focus>a,li.crumb a:focus>span,li.crumb:active>a,li.crumb:active>span{opacity:.7}.appear{opacity:1;-webkit-transition:opacity 500ms ease 0s;-moz-transition:opacity 500ms ease 0s;-ms-transition:opacity 500ms ease 0s;-o-transition:opacity 500ms ease 0s;transition:opacity 500ms ease 0s}.appear.transparent{opacity:0}fieldset.warning legend,fieldset.update legend{top:18px;position:relative}fieldset.warning legend+p,fieldset.update legend+p{margin-top:12px}@-ms-viewport{width:device-width}.hiddenuploadfield{display:none;width:0;height:0;opacity:0}input,textarea,select,button,div[contenteditable=true],div[contenteditable=false]{font-family:var(--font-face)}.select2-container-multi .select2-choices .select2-search-field input,.select2-search input,.ui-widget{font-family:var(--font-face) !important}.select2-container.select2-drop-above .select2-choice{background-image:unset !important}select,button:not(.button-vue,[class^=vs__]),input,textarea,div[contenteditable=true],div[contenteditable=false]{width:130px;min-height:36px;box-sizing:border-box}input:not([type=range]){outline:none}div.select2-drop .select2-search input,input[type=submit],input[type=button],input[type=reset],button:not(.button-vue,[class^=vs__]),.button,.pager li a{margin:3px 3px 3px 0;padding:7px 14px;font-size:13px;background-color:var(--color-main-background);color:var(--color-main-text);border:1px solid var(--color-border-dark);font-size:var(--default-font-size);outline:none;border-radius:var(--border-radius);cursor:text}div.select2-drop .select2-search input:not(:disabled):not(.primary):hover,div.select2-drop .select2-search input:not(:disabled):not(.primary):focus,div.select2-drop .select2-search input:not(:disabled):not(.primary).active,input[type=submit]:not(:disabled):not(.primary):hover,input[type=submit]:not(:disabled):not(.primary):focus,input[type=submit]:not(:disabled):not(.primary).active,input[type=button]:not(:disabled):not(.primary):hover,input[type=button]:not(:disabled):not(.primary):focus,input[type=button]:not(:disabled):not(.primary).active,input[type=reset]:not(:disabled):not(.primary):hover,input[type=reset]:not(:disabled):not(.primary):focus,input[type=reset]:not(:disabled):not(.primary).active,button:not(.button-vue,[class^=vs__]):not(:disabled):not(.primary):hover,button:not(.button-vue,[class^=vs__]):not(:disabled):not(.primary):focus,button:not(.button-vue,[class^=vs__]):not(:disabled):not(.primary).active,.button:not(:disabled):not(.primary):hover,.button:not(:disabled):not(.primary):focus,.button:not(:disabled):not(.primary).active,.pager li a:not(:disabled):not(.primary):hover,.pager li a:not(:disabled):not(.primary):focus,.pager li a:not(:disabled):not(.primary).active{border-color:var(--color-primary-element);outline:none}div.select2-drop .select2-search input:not(:disabled):not(.primary):active,input[type=submit]:not(:disabled):not(.primary):active,input[type=button]:not(:disabled):not(.primary):active,input[type=reset]:not(:disabled):not(.primary):active,button:not(.button-vue,[class^=vs__]):not(:disabled):not(.primary):active,.button:not(:disabled):not(.primary):active,.pager li a:not(:disabled):not(.primary):active{outline:none;background-color:var(--color-main-background);color:var(--color-text-light)}div.select2-drop .select2-search input:not(:disabled):not(.primary):focus-visible,input[type=submit]:not(:disabled):not(.primary):focus-visible,input[type=button]:not(:disabled):not(.primary):focus-visible,input[type=reset]:not(:disabled):not(.primary):focus-visible,button:not(.button-vue,[class^=vs__]):not(:disabled):not(.primary):focus-visible,.button:not(:disabled):not(.primary):focus-visible,.pager li a:not(:disabled):not(.primary):focus-visible{box-shadow:0 0 0 2px var(--color-primary)}div.select2-drop .select2-search input:disabled,input[type=submit]:disabled,input[type=button]:disabled,input[type=reset]:disabled,button:not(.button-vue,[class^=vs__]):disabled,.button:disabled,.pager li a:disabled{background-color:var(--color-background-dark);color:var(--color-main-text);cursor:default;opacity:.5}div.select2-drop .select2-search input:required,input[type=submit]:required,input[type=button]:required,input[type=reset]:required,button:not(.button-vue,[class^=vs__]):required,.button:required,.pager li a:required{box-shadow:none}div.select2-drop .select2-search input:user-invalid,input[type=submit]:user-invalid,input[type=button]:user-invalid,input[type=reset]:user-invalid,button:not(.button-vue,[class^=vs__]):user-invalid,.button:user-invalid,.pager li a:user-invalid{box-shadow:0 0 0 2px var(--color-error) !important}div.select2-drop .select2-search input.primary,input[type=submit].primary,input[type=button].primary,input[type=reset].primary,button:not(.button-vue,[class^=vs__]).primary,.button.primary,.pager li a.primary{background-color:var(--color-primary-element);border-color:var(--color-primary-element);color:var(--color-primary-text);cursor:pointer}#body-login :not(.body-login-container) div.select2-drop .select2-search input.primary,#header div.select2-drop .select2-search input.primary,#body-login :not(.body-login-container) input[type=submit].primary,#header input[type=submit].primary,#body-login :not(.body-login-container) input[type=button].primary,#header input[type=button].primary,#body-login :not(.body-login-container) input[type=reset].primary,#header input[type=reset].primary,#body-login :not(.body-login-container) button:not(.button-vue,[class^=vs__]).primary,#header button:not(.button-vue,[class^=vs__]).primary,#body-login :not(.body-login-container) .button.primary,#header .button.primary,#body-login :not(.body-login-container) .pager li a.primary,#header .pager li a.primary{border-color:var(--color-primary-text)}div.select2-drop .select2-search input.primary:not(:disabled):hover,div.select2-drop .select2-search input.primary:not(:disabled):focus,div.select2-drop .select2-search input.primary:not(:disabled):active,input[type=submit].primary:not(:disabled):hover,input[type=submit].primary:not(:disabled):focus,input[type=submit].primary:not(:disabled):active,input[type=button].primary:not(:disabled):hover,input[type=button].primary:not(:disabled):focus,input[type=button].primary:not(:disabled):active,input[type=reset].primary:not(:disabled):hover,input[type=reset].primary:not(:disabled):focus,input[type=reset].primary:not(:disabled):active,button:not(.button-vue,[class^=vs__]).primary:not(:disabled):hover,button:not(.button-vue,[class^=vs__]).primary:not(:disabled):focus,button:not(.button-vue,[class^=vs__]).primary:not(:disabled):active,.button.primary:not(:disabled):hover,.button.primary:not(:disabled):focus,.button.primary:not(:disabled):active,.pager li a.primary:not(:disabled):hover,.pager li a.primary:not(:disabled):focus,.pager li a.primary:not(:disabled):active{background-color:var(--color-primary-element-hover);border-color:var(--color-primary-element-hover)}div.select2-drop .select2-search input.primary:not(:disabled):focus,div.select2-drop .select2-search input.primary:not(:disabled):focus-visible,input[type=submit].primary:not(:disabled):focus,input[type=submit].primary:not(:disabled):focus-visible,input[type=button].primary:not(:disabled):focus,input[type=button].primary:not(:disabled):focus-visible,input[type=reset].primary:not(:disabled):focus,input[type=reset].primary:not(:disabled):focus-visible,button:not(.button-vue,[class^=vs__]).primary:not(:disabled):focus,button:not(.button-vue,[class^=vs__]).primary:not(:disabled):focus-visible,.button.primary:not(:disabled):focus,.button.primary:not(:disabled):focus-visible,.pager li a.primary:not(:disabled):focus,.pager li a.primary:not(:disabled):focus-visible{box-shadow:0 0 0 2px var(--color-main-text)}div.select2-drop .select2-search input.primary:not(:disabled):active,input[type=submit].primary:not(:disabled):active,input[type=button].primary:not(:disabled):active,input[type=reset].primary:not(:disabled):active,button:not(.button-vue,[class^=vs__]).primary:not(:disabled):active,.button.primary:not(:disabled):active,.pager li a.primary:not(:disabled):active{color:var(--color-primary-text-dark)}div.select2-drop .select2-search input.primary:disabled,input[type=submit].primary:disabled,input[type=button].primary:disabled,input[type=reset].primary:disabled,button:not(.button-vue,[class^=vs__]).primary:disabled,.button.primary:disabled,.pager li a.primary:disabled{background-color:var(--color-primary-element);color:var(--color-primary-text-dark);cursor:default}div[contenteditable=false]{margin:3px 3px 3px 0;padding:7px 6px;font-size:13px;background-color:var(--color-main-background);color:var(--color-text-lighter);border:1px solid var(--color-background-darker);outline:none;border-radius:var(--border-radius);background-color:var(--color-background-dark);color:var(--color-text-lighter);cursor:default;opacity:.5}input:not([type=radio]):not([type=checkbox]):not([type=range]):not([type=submit]):not([type=button]):not([type=reset]):not([type=color]):not([type=file]):not([type=image]){-webkit-appearance:textfield;-moz-appearance:textfield;height:36px}input[type=radio],input[type=checkbox],input[type=file],input[type=image]{height:auto;width:auto}input[type=color]{margin:3px;padding:0 2px;min-height:30px;width:40px;cursor:pointer}input[type=hidden]{height:0;width:0}input[type=time]{width:initial}select,button:not(.button-vue,[class^=vs__]),.button,input[type=button],input[type=submit],input[type=reset]{padding:8px 14px;font-size:var(--default-font-size);width:auto;min-height:36px;cursor:pointer;box-sizing:border-box;background-color:var(--color-background-dark)}select:disabled,button:not(.button-vue,[class^=vs__]):disabled,.button:disabled,input[type=button]:disabled,input[type=submit]:disabled,input[type=reset]:disabled{cursor:default}input:not([type=range],.input-field__input,[type=submit],[type=button],[type=reset],.multiselect__input,.select2-input,.action-input__input,[class^=vs__]),select,div[contenteditable=true],textarea{margin:3px 3px 3px 0;padding:0 12px;font-size:var(--default-font-size);background-color:var(--color-main-background);color:var(--color-main-text);border:2px solid var(--color-border-maxcontrast);height:36px;outline:none;border-radius:var(--border-radius-large);text-overflow:ellipsis;cursor:pointer}input:not([type=range],.input-field__input,[type=submit],[type=button],[type=reset],.multiselect__input,.select2-input,.action-input__input,[class^=vs__]):not(:disabled):hover,input:not([type=range],.input-field__input,[type=submit],[type=button],[type=reset],.multiselect__input,.select2-input,.action-input__input,[class^=vs__]):not(:disabled):focus,input:not([type=range],.input-field__input,[type=submit],[type=button],[type=reset],.multiselect__input,.select2-input,.action-input__input,[class^=vs__]):not(:disabled):active,select:not(:disabled):hover,select:not(:disabled):focus,select:not(:disabled):active,div[contenteditable=true]:not(:disabled):hover,div[contenteditable=true]:not(:disabled):focus,div[contenteditable=true]:not(:disabled):active,textarea:not(:disabled):hover,textarea:not(:disabled):focus,textarea:not(:disabled):active{border-color:var(--color-primary-element)}input:not([type=range],.input-field__input,[type=submit],[type=button],[type=reset],.multiselect__input,.select2-input,.action-input__input,[class^=vs__]):not(:disabled):focus,select:not(:disabled):focus,div[contenteditable=true]:not(:disabled):focus,textarea:not(:disabled):focus{cursor:text}.multiselect__input,.select2-input{background-color:var(--color-main-background);color:var(--color-main-text)}textarea,div[contenteditable=true]{padding:12px;height:auto}select{background:var(--icon-triangle-s-dark) no-repeat right 8px center;appearance:none;background-color:var(--color-main-background);padding-right:28px !important}select *,button:not(.button-vue,[class^=vs__]) *,.button *{cursor:pointer}select:disabled *,button:not(.button-vue,[class^=vs__]):disabled *,.button:disabled *{cursor:default}button:not(.button-vue,[class^=vs__]),.button,input[type=button],input[type=submit],input[type=reset]{font-weight:bold;border-radius:var(--border-radius-pill)}button:not(.button-vue,[class^=vs__])::-moz-focus-inner,.button::-moz-focus-inner,input[type=button]::-moz-focus-inner,input[type=submit]::-moz-focus-inner,input[type=reset]::-moz-focus-inner{border:0}button:not(.button-vue,[class^=vs__]).error,.button.error,input[type=button].error,input[type=submit].error,input[type=reset].error{background-color:var(--color-error) !important;border-color:var(--color-error) !important;color:#fff !important}button:not(.button-vue,.action-button,[class^=vs__])>span[class^=icon-],button:not(.button-vue,.action-button,[class^=vs__])>span[class*=" icon-"],.button>span[class^=icon-],.button>span[class*=" icon-"]{display:inline-block;vertical-align:text-bottom;opacity:.5}input[type=text]+.icon-confirm,input[type=password]+.icon-confirm,input[type=email]+.icon-confirm{margin-left:-13px !important;border-left-color:rgba(0,0,0,0) !important;border-radius:0 var(--border-radius-large) var(--border-radius-large) 0 !important;border-width:2px;background-clip:padding-box;background-color:var(--color-main-background) !important;opacity:1;height:36px;width:36px;padding:7px 6px;cursor:pointer;margin-right:0}input[type=text]+.icon-confirm:disabled,input[type=password]+.icon-confirm:disabled,input[type=email]+.icon-confirm:disabled{cursor:default;background-image:var(--icon-confirm-fade-dark)}input[type=text]:not(:active):not(:hover):not(:focus):invalid+.icon-confirm,input[type=password]:not(:active):not(:hover):not(:focus):invalid+.icon-confirm,input[type=email]:not(:active):not(:hover):not(:focus):invalid+.icon-confirm{border-color:var(--color-error)}input[type=text]:not(:active):not(:hover):not(:focus)+.icon-confirm:active,input[type=text]:not(:active):not(:hover):not(:focus)+.icon-confirm:hover,input[type=text]:not(:active):not(:hover):not(:focus)+.icon-confirm:focus,input[type=password]:not(:active):not(:hover):not(:focus)+.icon-confirm:active,input[type=password]:not(:active):not(:hover):not(:focus)+.icon-confirm:hover,input[type=password]:not(:active):not(:hover):not(:focus)+.icon-confirm:focus,input[type=email]:not(:active):not(:hover):not(:focus)+.icon-confirm:active,input[type=email]:not(:active):not(:hover):not(:focus)+.icon-confirm:hover,input[type=email]:not(:active):not(:hover):not(:focus)+.icon-confirm:focus{border-color:var(--color-primary-element) !important;border-radius:var(--border-radius) !important}input[type=text]:not(:active):not(:hover):not(:focus)+.icon-confirm:active:disabled,input[type=text]:not(:active):not(:hover):not(:focus)+.icon-confirm:hover:disabled,input[type=text]:not(:active):not(:hover):not(:focus)+.icon-confirm:focus:disabled,input[type=password]:not(:active):not(:hover):not(:focus)+.icon-confirm:active:disabled,input[type=password]:not(:active):not(:hover):not(:focus)+.icon-confirm:hover:disabled,input[type=password]:not(:active):not(:hover):not(:focus)+.icon-confirm:focus:disabled,input[type=email]:not(:active):not(:hover):not(:focus)+.icon-confirm:active:disabled,input[type=email]:not(:active):not(:hover):not(:focus)+.icon-confirm:hover:disabled,input[type=email]:not(:active):not(:hover):not(:focus)+.icon-confirm:focus:disabled{border-color:var(--color-background-darker) !important}input[type=text]:active+.icon-confirm,input[type=text]:hover+.icon-confirm,input[type=text]:focus+.icon-confirm,input[type=password]:active+.icon-confirm,input[type=password]:hover+.icon-confirm,input[type=password]:focus+.icon-confirm,input[type=email]:active+.icon-confirm,input[type=email]:hover+.icon-confirm,input[type=email]:focus+.icon-confirm{border-color:var(--color-primary-element) !important;border-left-color:rgba(0,0,0,0) !important;z-index:2}button img,.button img{cursor:pointer}select,.button.multiselect{font-weight:normal}input[type=checkbox].radio,input[type=checkbox].checkbox,input[type=radio].radio,input[type=radio].checkbox{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}input[type=checkbox].radio+label,input[type=checkbox].checkbox+label,input[type=radio].radio+label,input[type=radio].checkbox+label{user-select:none}input[type=checkbox].radio:disabled+label,input[type=checkbox].radio:disabled+label:before,input[type=checkbox].checkbox:disabled+label,input[type=checkbox].checkbox:disabled+label:before,input[type=radio].radio:disabled+label,input[type=radio].radio:disabled+label:before,input[type=radio].checkbox:disabled+label,input[type=radio].checkbox:disabled+label:before{cursor:default}input[type=checkbox].radio+label:before,input[type=checkbox].checkbox+label:before,input[type=radio].radio+label:before,input[type=radio].checkbox+label:before{content:"";display:inline-block;height:14px;width:14px;vertical-align:middle;border-radius:50%;margin:0 6px 3px 3px;border:1px solid var(--color-text-lighter)}input[type=checkbox].radio:not(:disabled):not(:checked)+label:hover:before,input[type=checkbox].radio:focus+label:before,input[type=checkbox].checkbox:not(:disabled):not(:checked)+label:hover:before,input[type=checkbox].checkbox:focus+label:before,input[type=radio].radio:not(:disabled):not(:checked)+label:hover:before,input[type=radio].radio:focus+label:before,input[type=radio].checkbox:not(:disabled):not(:checked)+label:hover:before,input[type=radio].checkbox:focus+label:before{border-color:var(--color-primary-element)}input[type=checkbox].radio:focus-visible+label,input[type=checkbox].checkbox:focus-visible+label,input[type=radio].radio:focus-visible+label,input[type=radio].checkbox:focus-visible+label{outline-style:solid;outline-color:var(--color-main-text);outline-width:1px;outline-offset:2px}input[type=checkbox].radio:checked+label:before,input[type=checkbox].radio.checkbox:indeterminate+label:before,input[type=checkbox].checkbox:checked+label:before,input[type=checkbox].checkbox.checkbox:indeterminate+label:before,input[type=radio].radio:checked+label:before,input[type=radio].radio.checkbox:indeterminate+label:before,input[type=radio].checkbox:checked+label:before,input[type=radio].checkbox.checkbox:indeterminate+label:before{box-shadow:inset 0px 0px 0px 2px var(--color-main-background);background-color:var(--color-primary-element);border-color:var(--color-primary-element)}input[type=checkbox].radio:disabled+label:before,input[type=checkbox].checkbox:disabled+label:before,input[type=radio].radio:disabled+label:before,input[type=radio].checkbox:disabled+label:before{border:1px solid var(--color-text-lighter);background-color:var(--color-text-maxcontrast) !important}input[type=checkbox].radio:checked:disabled+label:before,input[type=checkbox].checkbox:checked:disabled+label:before,input[type=radio].radio:checked:disabled+label:before,input[type=radio].checkbox:checked:disabled+label:before{background-color:var(--color-text-maxcontrast)}input[type=checkbox].radio+label~em,input[type=checkbox].checkbox+label~em,input[type=radio].radio+label~em,input[type=radio].checkbox+label~em{display:inline-block;margin-left:25px}input[type=checkbox].radio+label~em:last-of-type,input[type=checkbox].checkbox+label~em:last-of-type,input[type=radio].radio+label~em:last-of-type,input[type=radio].checkbox+label~em:last-of-type{margin-bottom:14px}input[type=checkbox].checkbox+label:before,input[type=radio].checkbox+label:before{border-radius:1px;height:14px;width:14px;box-shadow:none !important;background-position:center}input[type=checkbox].checkbox:checked+label:before,input[type=radio].checkbox:checked+label:before{background-image:url("../img/actions/checkbox-mark.svg")}input[type=checkbox].checkbox:indeterminate+label:before,input[type=radio].checkbox:indeterminate+label:before{background-image:url("../img/actions/checkbox-mixed.svg")}input[type=checkbox].radio--white+label:before,input[type=checkbox].radio--white:focus+label:before,input[type=checkbox].checkbox--white+label:before,input[type=checkbox].checkbox--white:focus+label:before,input[type=radio].radio--white+label:before,input[type=radio].radio--white:focus+label:before,input[type=radio].checkbox--white+label:before,input[type=radio].checkbox--white:focus+label:before{border-color:#bababa}input[type=checkbox].radio--white:not(:disabled):not(:checked)+label:hover:before,input[type=checkbox].checkbox--white:not(:disabled):not(:checked)+label:hover:before,input[type=radio].radio--white:not(:disabled):not(:checked)+label:hover:before,input[type=radio].checkbox--white:not(:disabled):not(:checked)+label:hover:before{border-color:#fff}input[type=checkbox].radio--white:checked+label:before,input[type=checkbox].checkbox--white:checked+label:before,input[type=radio].radio--white:checked+label:before,input[type=radio].checkbox--white:checked+label:before{box-shadow:inset 0px 0px 0px 2px var(--color-main-background);background-color:#dbdbdb;border-color:#dbdbdb}input[type=checkbox].radio--white:disabled+label:before,input[type=checkbox].checkbox--white:disabled+label:before,input[type=radio].radio--white:disabled+label:before,input[type=radio].checkbox--white:disabled+label:before{background-color:#bababa !important;border-color:rgba(255,255,255,.4) !important}input[type=checkbox].radio--white:checked:disabled+label:before,input[type=checkbox].checkbox--white:checked:disabled+label:before,input[type=radio].radio--white:checked:disabled+label:before,input[type=radio].checkbox--white:checked:disabled+label:before{box-shadow:inset 0px 0px 0px 2px var(--color-main-background);border-color:rgba(255,255,255,.4) !important;background-color:#bababa}input[type=checkbox].checkbox--white:checked+label:before,input[type=checkbox].checkbox--white:indeterminate+label:before,input[type=radio].checkbox--white:checked+label:before,input[type=radio].checkbox--white:indeterminate+label:before{background-color:rgba(0,0,0,0) !important;border-color:#fff !important;background-image:url("../img/actions/checkbox-mark-white.svg")}input[type=checkbox].checkbox--white:indeterminate+label:before,input[type=radio].checkbox--white:indeterminate+label:before{background-image:url("../img/actions/checkbox-mixed-white.svg")}input[type=checkbox].checkbox--white:disabled+label:before,input[type=radio].checkbox--white:disabled+label:before{opacity:.7}div.select2-drop{margin-top:-2px;background-color:var(--color-main-background)}div.select2-drop.select2-drop-active{border-color:var(--color-border-dark)}div.select2-drop .avatar{display:inline-block;margin-right:8px;vertical-align:middle}div.select2-drop .avatar img{cursor:pointer}div.select2-drop .select2-search input{min-height:auto;background:var(--icon-search-dark) no-repeat right center !important;background-origin:content-box !important}div.select2-drop .select2-results{max-height:250px;margin:0;padding:0}div.select2-drop .select2-results .select2-result-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}div.select2-drop .select2-results .select2-result-label span{cursor:pointer}div.select2-drop .select2-results .select2-result-label span em{cursor:inherit;background:unset}div.select2-drop .select2-results .select2-result,div.select2-drop .select2-results .select2-no-results,div.select2-drop .select2-results .select2-searching{position:relative;display:list-item;padding:12px;background-color:rgba(0,0,0,0);cursor:pointer;color:var(--color-text-lighter)}div.select2-drop .select2-results .select2-result.select2-selected{background-color:var(--color-background-dark)}div.select2-drop .select2-results .select2-highlighted{background-color:var(--color-background-dark);color:var(--color-main-text)}.select2-chosen .avatar,.select2-chosen .avatar img,#select2-drop .avatar,#select2-drop .avatar img{cursor:pointer}div.select2-container-multi .select2-choices,div.select2-container-multi.select2-container-active .select2-choices{box-shadow:none;white-space:nowrap;text-overflow:ellipsis;background:var(--color-main-background);color:var(--color-text-lighter) !important;box-sizing:content-box;border-radius:var(--border-radius-large);border:2px solid var(--color-border-dark);margin:0;padding:6px;min-height:44px}div.select2-container-multi .select2-choices:focus-within,div.select2-container-multi.select2-container-active .select2-choices:focus-within{border-color:var(--color-primary)}div.select2-container-multi .select2-choices .select2-search-choice,div.select2-container-multi.select2-container-active .select2-choices .select2-search-choice{line-height:20px;padding-left:5px}div.select2-container-multi .select2-choices .select2-search-choice.select2-search-choice-focus,div.select2-container-multi .select2-choices .select2-search-choice:hover,div.select2-container-multi .select2-choices .select2-search-choice:active,div.select2-container-multi .select2-choices .select2-search-choice,div.select2-container-multi.select2-container-active .select2-choices .select2-search-choice.select2-search-choice-focus,div.select2-container-multi.select2-container-active .select2-choices .select2-search-choice:hover,div.select2-container-multi.select2-container-active .select2-choices .select2-search-choice:active,div.select2-container-multi.select2-container-active .select2-choices .select2-search-choice{background-image:none;background-color:var(--color-main-background);color:var(--color-text-lighter);border:1px solid var(--color-border-dark)}div.select2-container-multi .select2-choices .select2-search-choice .select2-search-choice-close,div.select2-container-multi.select2-container-active .select2-choices .select2-search-choice .select2-search-choice-close{display:none}div.select2-container-multi .select2-choices .select2-search-field input,div.select2-container-multi.select2-container-active .select2-choices .select2-search-field input{line-height:20px;min-height:28px;max-height:28px;color:var(--color-main-text)}div.select2-container-multi .select2-choices .select2-search-field input.select2-active,div.select2-container-multi.select2-container-active .select2-choices .select2-search-field input.select2-active{background:none !important}div.select2-container{margin:3px 3px 3px 0}div.select2-container.select2-container-multi .select2-choices{display:flex;flex-wrap:wrap}div.select2-container.select2-container-multi .select2-choices li{float:none}div.select2-container a.select2-choice{box-shadow:none;white-space:nowrap;text-overflow:ellipsis;background:var(--color-main-background);color:var(--color-text-lighter) !important;box-sizing:content-box;border-radius:var(--border-radius-large);border:2px solid var(--color-border-dark);margin:0;padding:6px 12px;min-height:44px}div.select2-container a.select2-choice:focus-within{border-color:var(--color-primary)}div.select2-container a.select2-choice .select2-search-choice{line-height:20px;padding-left:5px;background-image:none;background-color:var(--color-background-dark);border-color:var(--color-background-dark)}div.select2-container a.select2-choice .select2-search-choice .select2-search-choice-close{display:none}div.select2-container a.select2-choice .select2-search-choice.select2-search-choice-focus,div.select2-container a.select2-choice .select2-search-choice:hover{background-color:var(--color-border);border-color:var(--color-border)}div.select2-container a.select2-choice .select2-arrow{background:none;border-radius:0;border:none}div.select2-container a.select2-choice .select2-arrow b{background:var(--icon-triangle-s-dark) no-repeat center !important;opacity:.5}div.select2-container a.select2-choice:hover .select2-arrow b,div.select2-container a.select2-choice:focus .select2-arrow b,div.select2-container a.select2-choice:active .select2-arrow b{opacity:.7}div.select2-container a.select2-choice .select2-search-field input{line-height:20px}.v-select{margin:3px 3px 3px 0;display:inline-block}.v-select .dropdown-toggle{display:flex !important;flex-wrap:wrap}.v-select .dropdown-toggle .selected-tag{line-height:20px;padding-left:5px;background-image:none;background-color:var(--color-main-background);color:var(--color-text-lighter);border:1px solid var(--color-border-dark);display:inline-flex;align-items:center}.v-select .dropdown-toggle .selected-tag .close{margin-left:3px}.v-select .dropdown-menu{padding:0}.v-select .dropdown-menu li{padding:5px;position:relative;display:list-item;background-color:rgba(0,0,0,0);cursor:pointer;color:var(--color-text-lighter)}.v-select .dropdown-menu li a{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;height:25px;padding:3px 7px 4px 2px;margin:0;cursor:pointer;min-height:1em;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:inline-flex;align-items:center;background-color:rgba(0,0,0,0) !important;color:inherit !important}.v-select .dropdown-menu li a::before{content:" ";background-image:var(--icon-checkmark-dark);background-repeat:no-repeat;background-position:center;min-width:16px;min-height:16px;display:block;opacity:.5;margin-right:5px;visibility:hidden}.v-select .dropdown-menu li.highlight{color:var(--color-main-text)}.v-select .dropdown-menu li.active>a{background-color:var(--color-background-dark);color:var(--color-main-text)}.v-select .dropdown-menu li.active>a::before{visibility:visible}progress:not(.vue){display:block;width:100%;padding:0;border:0 none;background-color:var(--color-background-dark);border-radius:var(--border-radius);flex-basis:100%;height:5px;overflow:hidden}progress:not(.vue).warn::-moz-progress-bar{background:var(--color-error)}progress:not(.vue).warn::-webkit-progress-value{background:var(--color-error)}progress:not(.vue)::-webkit-progress-bar{background:rgba(0,0,0,0)}progress:not(.vue)::-moz-progress-bar{border-radius:var(--border-radius);background:var(--color-primary);transition:250ms all ease-in-out}progress:not(.vue)::-webkit-progress-value{border-radius:var(--border-radius);background:var(--color-primary);transition:250ms all ease-in-out}@keyframes shake{10%,90%{transform:translate(-1px)}20%,80%{transform:translate(2px)}30%,50%,70%{transform:translate(-4px)}40%,60%{transform:translate(4px)}}.shake{animation-name:shake;animation-duration:.7s;animation-timing-function:ease-out}label.infield{position:absolute;left:-10000px;top:-10000px;width:1px;height:1px;overflow:hidden}::placeholder,::-ms-input-placeholder,::-webkit-input-placeholder{color:var(--color-text-maxcontrast);font-size:var(--default-font-size)}#header,#expanddiv{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}#header a:not(.button):focus-visible,#header button:not(.button-vue):focus-visible,#header div[role=button]:focus-visible,#expanddiv a:not(.button):focus-visible,#expanddiv button:not(.button-vue):focus-visible,#expanddiv div[role=button]:focus-visible{outline:none}#header a:not(.button):focus-visible::after,#header .button-vue:focus-visible::after,#header div[role=button]:focus-visible::after,#expanddiv a:not(.button):focus-visible::after,#expanddiv .button-vue:focus-visible::after,#expanddiv div[role=button]:focus-visible::after{content:" ";position:absolute;transform:translateX(-50%);width:12px;height:2px;border-radius:3px;background-color:var(--color-primary-text);left:50%;opacity:1}#header a:not(.button):focus-visible::after,#header .button-vue:focus-visible::after,#expanddiv a:not(.button):focus-visible::after,#expanddiv .button-vue:focus-visible::after{bottom:2px}#header .header-right a:not(.button):focus-visible::after,#header .header-right div[role=button]:focus-visible::after,#expanddiv .header-right a:not(.button):focus-visible::after,#expanddiv .header-right div[role=button]:focus-visible::after{bottom:4px}#header .header-right #expand.menutoggle:focus-visible::after,#expanddiv .header-right #expand.menutoggle:focus-visible::after{left:40%}#body-user #header,#body-settings #header,#body-public #header{display:inline-flex;position:absolute;top:0;width:100%;z-index:2000;height:50px;box-sizing:border-box;justify-content:space-between}#nextcloud{padding:5px 0;padding-left:86px;position:relative;height:calc(100% - 4px);box-sizing:border-box;opacity:1;align-items:center;display:flex;flex-wrap:wrap;overflow:hidden;margin:2px}#nextcloud:hover,#nextcloud:active{opacity:1}#header .header-right>div>.menu{background-color:var(--color-main-background);filter:drop-shadow(0 1px 5px var(--color-box-shadow));border-radius:var(--border-radius-large);box-sizing:border-box;z-index:2000;position:absolute;max-width:350px;min-height:66px;max-height:calc(100vh - 50px - 8px);right:8px;top:50px;margin:0;overflow-y:auto}#header .header-right>div>.menu:not(.popovermenu){display:none}#header .header-right>div>.menu:after{border:10px solid rgba(0,0,0,0);border-bottom-color:var(--color-main-background);bottom:100%;content:" ";height:0;width:0;position:absolute;pointer-events:none;right:10px}#header .header-right>div>.menu>div,#header .header-right>div>.menu>ul{-webkit-overflow-scrolling:touch;min-height:66px;max-height:calc(100vh - 50px - 8px)}#header .logo{display:inline-flex;background-image:var(--image-logoheader, var(--image-logo, url("../img/logo/logo.svg")));background-repeat:no-repeat;background-size:contain;background-position:center;width:62px;position:absolute;left:12px;top:1px;bottom:1px;filter:var(--image-logoheader-custom, var(--background-image-invert-if-bright))}#header .header-appname-container{display:none;padding-right:10px;flex-shrink:0}#header #header-left,#header .header-left,#header #header-right,#header .header-right{display:inline-flex;align-items:center}#header #header-left,#header .header-left{flex:1 0;white-space:nowrap;min-width:0}#header #header-right,#header .header-right{justify-content:flex-end;flex-shrink:1}#header .header-right>div,#header .header-right>form{height:100%;position:relative}#header .header-right>div>.menutoggle,#header .header-right>form>.menutoggle{display:flex;justify-content:center;align-items:center;width:50px;height:44px;cursor:pointer;opacity:.85;padding:0;margin:2px 0}#header .header-right>div>.menutoggle:focus,#header .header-right>form>.menutoggle:focus{opacity:1}#header .header-right>div>.menutoggle:focus-visible,#header .header-right>form>.menutoggle:focus-visible{outline:none}.header-appname-container .header-appname{opacity:.75}.header-appname{color:var(--color-primary-text);font-size:16px;font-weight:bold;margin:0;padding:0;padding-right:5px;overflow:hidden;text-overflow:ellipsis;flex:1 1 100%}.header-shared-by{color:var(--color-primary-text);position:relative;font-weight:300;font-size:11px;line-height:11px;overflow:hidden;text-overflow:ellipsis}#skip-actions{position:absolute;overflow:hidden;z-index:9999;top:-999px;left:3px;height:50px;padding:11px}#skip-actions:focus-within{top:50px}header #emptycontent h2,header .emptycontent h2{font-weight:normal;font-size:16px}header #emptycontent [class^=icon-],header #emptycontent [class*=icon-],header .emptycontent [class^=icon-],header .emptycontent [class*=icon-]{background-size:48px;height:48px;width:48px}[class^=icon-],[class*=" icon-"]{background-repeat:no-repeat;background-position:center;min-width:16px;min-height:16px}.icon-breadcrumb{background-image:url("../img/breadcrumb.svg?v=1")}.loading,.loading-small,.icon-loading,.icon-loading-dark,.icon-loading-small,.icon-loading-small-dark{position:relative}.loading:after,.loading-small:after,.icon-loading:after,.icon-loading-dark:after,.icon-loading-small:after,.icon-loading-small-dark:after{z-index:2;content:"";height:28px;width:28px;margin:-16px 0 0 -16px;position:absolute;top:50%;left:50%;border-radius:100%;-webkit-animation:rotate .8s infinite linear;animation:rotate .8s infinite linear;-webkit-transform-origin:center;-ms-transform-origin:center;transform-origin:center;border:2px solid var(--color-loading-light);border-top-color:var(--color-loading-dark);filter:var(--background-invert-if-dark)}.primary .loading:after,.primary+.loading:after,.primary .loading-small:after,.primary+.loading-small:after,.primary .icon-loading:after,.primary+.icon-loading:after,.primary .icon-loading-dark:after,.primary+.icon-loading-dark:after,.primary .icon-loading-small:after,.primary+.icon-loading-small:after,.primary .icon-loading-small-dark:after,.primary+.icon-loading-small-dark:after{filter:var(--primary-invert-if-bright)}.icon-loading-dark:after,.icon-loading-small-dark:after{border:2px solid var(--color-loading-dark);border-top-color:var(--color-loading-light)}.icon-loading-small:after,.icon-loading-small-dark:after{height:12px;width:12px;margin:-8px 0 0 -8px}audio.icon-loading,canvas.icon-loading,embed.icon-loading,iframe.icon-loading,img.icon-loading,input.icon-loading,object.icon-loading,video.icon-loading{background-image:url("../img/loading.gif")}audio.icon-loading-dark,canvas.icon-loading-dark,embed.icon-loading-dark,iframe.icon-loading-dark,img.icon-loading-dark,input.icon-loading-dark,object.icon-loading-dark,video.icon-loading-dark{background-image:url("../img/loading-dark.gif")}audio.icon-loading-small,canvas.icon-loading-small,embed.icon-loading-small,iframe.icon-loading-small,img.icon-loading-small,input.icon-loading-small,object.icon-loading-small,video.icon-loading-small{background-image:url("../img/loading-small.gif")}audio.icon-loading-small-dark,canvas.icon-loading-small-dark,embed.icon-loading-small-dark,iframe.icon-loading-small-dark,img.icon-loading-small-dark,input.icon-loading-small-dark,object.icon-loading-small-dark,video.icon-loading-small-dark{background-image:url("../img/loading-small-dark.gif")}@keyframes rotate{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}.icon-32{background-size:32px !important}.icon-white.icon-shadow,.icon-audio-white,.icon-audio-off-white,.icon-fullscreen-white,.icon-screen-white,.icon-screen-off-white,.icon-video-white,.icon-video-off-white{filter:drop-shadow(1px 1px 4px var(--color-box-shadow))}:root{--body-container-margin: calc(var(--default-grid-baseline) * 2);--body-container-radius: calc(var(--default-clickable-area) / 2 + var(--default-grid-baseline) * 2 - 2px);--body-height: calc(100% - env(safe-area-inset-bottom) - 50px - var(--body-container-margin))}@media screen and (max-width: 1024px){:root{--body-container-margin: 0px;--body-container-radius: 0px}}html{width:100%;height:100%;position:absolute;background-color:var(--color-background-plain, var(--color-main-background))}body{background-color:var(--color-background-plain, var(--color-main-background));background-image:var(--image-background, var(--image-background-default));background-size:cover;background-position:center;position:fixed;width:100%;height:calc(100vh - env(safe-area-inset-bottom))}h2{font-weight:bold;font-size:20px;margin-bottom:12px;line-height:30px;color:var(--color-text-light)}h3{font-size:16px;margin:12px 0;color:var(--color-text-light)}h4{font-size:14px}em{font-style:normal;color:var(--color-text-lighter)}dl{padding:12px 0}dt,dd{display:inline-block;padding:12px;padding-left:0}dt{width:130px;white-space:nowrap;text-align:right}kbd{padding:4px 10px;border:1px solid #ccc;box-shadow:0 1px 0 rgba(0,0,0,.2);border-radius:var(--border-radius);display:inline-block;white-space:nowrap}#content[class*=app-] *{box-sizing:border-box}#app-navigation:not(.vue){--border-radius-pill: calc(var(--default-clickable-area) / 2);width:300px;z-index:500;overflow-y:auto;overflow-x:hidden;background-color:var(--color-main-background-blur);backdrop-filter:var(--filter-background-blur);-webkit-backdrop-filter:var(--filter-background-blur);-webkit-user-select:none;position:sticky;height:100%;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;flex-direction:column;flex-grow:0;flex-shrink:0}#app-navigation:not(.vue) .app-navigation-new{display:block;padding:calc(var(--default-grid-baseline)*2)}#app-navigation:not(.vue) .app-navigation-new button{display:inline-block;width:100%;padding:10px;padding-left:34px;background-position:10px center;text-align:left;margin:0}#app-navigation:not(.vue) li{position:relative}#app-navigation:not(.vue)>ul{position:relative;height:100%;width:100%;overflow-x:hidden;overflow-y:auto;box-sizing:border-box;display:flex;flex-direction:column;padding:calc(var(--default-grid-baseline)*2);padding-bottom:0}#app-navigation:not(.vue)>ul:last-child{padding-bottom:calc(var(--default-grid-baseline)*2)}#app-navigation:not(.vue)>ul>li{display:inline-flex;flex-wrap:wrap;order:1;flex-shrink:0;margin:0;margin-bottom:3px;width:100%;border-radius:var(--border-radius-pill)}#app-navigation:not(.vue)>ul>li.pinned{order:2}#app-navigation:not(.vue)>ul>li.pinned.first-pinned{margin-top:auto !important}#app-navigation:not(.vue)>ul>li>.app-navigation-entry-deleted{padding-left:44px !important}#app-navigation:not(.vue)>ul>li>.app-navigation-entry-edit{padding-left:38px !important}#app-navigation:not(.vue)>ul>li a:hover,#app-navigation:not(.vue)>ul>li a:hover>a,#app-navigation:not(.vue)>ul>li a:focus,#app-navigation:not(.vue)>ul>li a:focus>a{background-color:var(--color-background-hover)}#app-navigation:not(.vue)>ul>li a:focus-visible{box-shadow:var(--color-primary) inset 0 0 0 2px;outline:none}#app-navigation:not(.vue)>ul>li.active,#app-navigation:not(.vue)>ul>li.active>a,#app-navigation:not(.vue)>ul>li a:active,#app-navigation:not(.vue)>ul>li a:active>a,#app-navigation:not(.vue)>ul>li a.selected,#app-navigation:not(.vue)>ul>li a.selected>a,#app-navigation:not(.vue)>ul>li a.active,#app-navigation:not(.vue)>ul>li a.active>a{background-color:var(--color-primary-light)}#app-navigation:not(.vue)>ul>li.icon-loading-small:after{left:22px;top:22px}#app-navigation:not(.vue)>ul>li.deleted>ul,#app-navigation:not(.vue)>ul>li.collapsible:not(.open)>ul{display:none}#app-navigation:not(.vue)>ul>li.app-navigation-caption{font-weight:bold;line-height:44px;padding:0 44px;white-space:nowrap;text-overflow:ellipsis;box-shadow:none !important;user-select:none;pointer-events:none}#app-navigation:not(.vue)>ul>li.app-navigation-caption:not(:first-child){margin-top:22px}#app-navigation:not(.vue)>ul>li>ul{flex:0 1 auto;width:100%;position:relative}#app-navigation:not(.vue)>ul>li>ul>li{display:inline-flex;flex-wrap:wrap;padding-left:44px;width:100%;margin-bottom:3px}#app-navigation:not(.vue)>ul>li>ul>li:hover,#app-navigation:not(.vue)>ul>li>ul>li:hover>a,#app-navigation:not(.vue)>ul>li>ul>li:focus,#app-navigation:not(.vue)>ul>li>ul>li:focus>a{border-radius:var(--border-radius-pill);background-color:var(--color-background-hover)}#app-navigation:not(.vue)>ul>li>ul>li.active,#app-navigation:not(.vue)>ul>li>ul>li.active>a,#app-navigation:not(.vue)>ul>li>ul>li a.selected,#app-navigation:not(.vue)>ul>li>ul>li a.selected>a{border-radius:var(--border-radius-pill);background-color:var(--color-primary-light)}#app-navigation:not(.vue)>ul>li>ul>li.icon-loading-small:after{left:22px}#app-navigation:not(.vue)>ul>li>ul>li>.app-navigation-entry-deleted{margin-left:4px;padding-left:84px}#app-navigation:not(.vue)>ul>li>ul>li>.app-navigation-entry-edit{margin-left:4px;padding-left:78px !important}#app-navigation:not(.vue)>ul>li,#app-navigation:not(.vue)>ul>li>ul>li{position:relative;box-sizing:border-box}#app-navigation:not(.vue)>ul>li.icon-loading-small>a,#app-navigation:not(.vue)>ul>li.icon-loading-small>.app-navigation-entry-bullet,#app-navigation:not(.vue)>ul>li>ul>li.icon-loading-small>a,#app-navigation:not(.vue)>ul>li>ul>li.icon-loading-small>.app-navigation-entry-bullet{background:rgba(0,0,0,0) !important}#app-navigation:not(.vue)>ul>li>a,#app-navigation:not(.vue)>ul>li>ul>li>a{background-size:16px 16px;background-position:14px center;background-repeat:no-repeat;display:block;justify-content:space-between;line-height:44px;min-height:44px;padding:0 12px 0 14px;overflow:hidden;box-sizing:border-box;white-space:nowrap;text-overflow:ellipsis;border-radius:var(--border-radius-pill);color:var(--color-main-text);flex:1 1 0px;z-index:100}#app-navigation:not(.vue)>ul>li>a.svg,#app-navigation:not(.vue)>ul>li>ul>li>a.svg{padding:0 12px 0 44px}#app-navigation:not(.vue)>ul>li>a.svg :focus-visible,#app-navigation:not(.vue)>ul>li>ul>li>a.svg :focus-visible{padding:0 8px 0 42px}#app-navigation:not(.vue)>ul>li>a:first-child img,#app-navigation:not(.vue)>ul>li>ul>li>a:first-child img{margin-right:11px;width:16px;height:16px;filter:var(--background-invert-if-dark)}#app-navigation:not(.vue)>ul>li>a>.app-navigation-entry-utils,#app-navigation:not(.vue)>ul>li>ul>li>a>.app-navigation-entry-utils{display:inline-block;float:right}#app-navigation:not(.vue)>ul>li>a>.app-navigation-entry-utils .app-navigation-entry-utils-counter,#app-navigation:not(.vue)>ul>li>ul>li>a>.app-navigation-entry-utils .app-navigation-entry-utils-counter{padding-right:0 !important}#app-navigation:not(.vue)>ul>li>.app-navigation-entry-bullet,#app-navigation:not(.vue)>ul>li>ul>li>.app-navigation-entry-bullet{position:absolute;display:block;margin:16px;width:12px;height:12px;border:none;border-radius:50%;cursor:pointer;transition:background 100ms ease-in-out}#app-navigation:not(.vue)>ul>li>.app-navigation-entry-bullet+a,#app-navigation:not(.vue)>ul>li>ul>li>.app-navigation-entry-bullet+a{background:rgba(0,0,0,0) !important}#app-navigation:not(.vue)>ul>li>.app-navigation-entry-menu,#app-navigation:not(.vue)>ul>li>ul>li>.app-navigation-entry-menu{top:44px}#app-navigation:not(.vue)>ul>li.editing .app-navigation-entry-edit,#app-navigation:not(.vue)>ul>li>ul>li.editing .app-navigation-entry-edit{opacity:1;z-index:250}#app-navigation:not(.vue)>ul>li.deleted .app-navigation-entry-deleted,#app-navigation:not(.vue)>ul>li>ul>li.deleted .app-navigation-entry-deleted{transform:translateX(0);z-index:250}#app-navigation:not(.vue).hidden{display:none}#app-navigation:not(.vue) .app-navigation-entry-utils .app-navigation-entry-utils-menu-button>button,#app-navigation:not(.vue) .app-navigation-entry-deleted .app-navigation-entry-deleted-button{border:0;opacity:.5;background-color:rgba(0,0,0,0);background-repeat:no-repeat;background-position:center}#app-navigation:not(.vue) .app-navigation-entry-utils .app-navigation-entry-utils-menu-button>button:hover,#app-navigation:not(.vue) .app-navigation-entry-utils .app-navigation-entry-utils-menu-button>button:focus,#app-navigation:not(.vue) .app-navigation-entry-deleted .app-navigation-entry-deleted-button:hover,#app-navigation:not(.vue) .app-navigation-entry-deleted .app-navigation-entry-deleted-button:focus{background-color:rgba(0,0,0,0);opacity:1}#app-navigation:not(.vue) .collapsible .collapse{opacity:0;position:absolute;width:44px;height:44px;margin:0;z-index:110;left:0}#app-navigation:not(.vue) .collapsible .collapse:focus-visible{opacity:1;border-width:0;box-shadow:inset 0 0 0 2px var(--color-primary);background:none}#app-navigation:not(.vue) .collapsible:before{position:absolute;height:44px;width:44px;margin:0;padding:0;background:none;background-image:var(--icon-triangle-s-dark);background-size:16px;background-repeat:no-repeat;background-position:center;border:none;border-radius:0;outline:none !important;box-shadow:none;content:" ";opacity:0;-webkit-transform:rotate(-90deg);-ms-transform:rotate(-90deg);transform:rotate(-90deg);z-index:105;border-radius:50%;transition:opacity 100ms ease-in-out}#app-navigation:not(.vue) .collapsible>a:first-child{padding-left:44px}#app-navigation:not(.vue) .collapsible:hover:before,#app-navigation:not(.vue) .collapsible:focus:before{opacity:1}#app-navigation:not(.vue) .collapsible:hover>a,#app-navigation:not(.vue) .collapsible:focus>a{background-image:none}#app-navigation:not(.vue) .collapsible:hover>.app-navigation-entry-bullet,#app-navigation:not(.vue) .collapsible:focus>.app-navigation-entry-bullet{background:rgba(0,0,0,0) !important}#app-navigation:not(.vue) .collapsible.open:before{-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0)}#app-navigation:not(.vue) .app-navigation-entry-utils{flex:0 1 auto}#app-navigation:not(.vue) .app-navigation-entry-utils ul{display:flex !important;align-items:center;justify-content:flex-end}#app-navigation:not(.vue) .app-navigation-entry-utils li{width:44px !important;height:44px}#app-navigation:not(.vue) .app-navigation-entry-utils button{height:100%;width:100%;margin:0;box-shadow:none}#app-navigation:not(.vue) .app-navigation-entry-utils .app-navigation-entry-utils-menu-button button:not([class^=icon-]):not([class*=" icon-"]){background-image:var(--icon-more-dark)}#app-navigation:not(.vue) .app-navigation-entry-utils .app-navigation-entry-utils-menu-button:hover button,#app-navigation:not(.vue) .app-navigation-entry-utils .app-navigation-entry-utils-menu-button:focus button{background-color:rgba(0,0,0,0);opacity:1}#app-navigation:not(.vue) .app-navigation-entry-utils .app-navigation-entry-utils-counter{overflow:hidden;text-align:right;font-size:9pt;line-height:44px;padding:0 12px}#app-navigation:not(.vue) .app-navigation-entry-utils .app-navigation-entry-utils-counter.highlighted{padding:0;text-align:center}#app-navigation:not(.vue) .app-navigation-entry-utils .app-navigation-entry-utils-counter.highlighted span{padding:2px 5px;border-radius:10px;background-color:var(--color-primary);color:var(--color-primary-text)}#app-navigation:not(.vue) .app-navigation-entry-edit{padding-left:5px;padding-right:5px;display:block;width:calc(100% - 1px);transition:opacity 250ms ease-in-out;opacity:0;position:absolute;background-color:var(--color-main-background);z-index:-1}#app-navigation:not(.vue) .app-navigation-entry-edit form,#app-navigation:not(.vue) .app-navigation-entry-edit div{display:inline-flex;width:100%}#app-navigation:not(.vue) .app-navigation-entry-edit input{padding:5px;margin-right:0;height:38px}#app-navigation:not(.vue) .app-navigation-entry-edit input:hover,#app-navigation:not(.vue) .app-navigation-entry-edit input:focus{z-index:1}#app-navigation:not(.vue) .app-navigation-entry-edit input[type=text]{width:100%;min-width:0;border-bottom-right-radius:0;border-top-right-radius:0}#app-navigation:not(.vue) .app-navigation-entry-edit button,#app-navigation:not(.vue) .app-navigation-entry-edit input:not([type=text]){width:36px;height:38px;flex:0 0 36px}#app-navigation:not(.vue) .app-navigation-entry-edit button:not(:last-child),#app-navigation:not(.vue) .app-navigation-entry-edit input:not([type=text]):not(:last-child){border-radius:0 !important}#app-navigation:not(.vue) .app-navigation-entry-edit button:not(:first-child),#app-navigation:not(.vue) .app-navigation-entry-edit input:not([type=text]):not(:first-child){margin-left:-1px}#app-navigation:not(.vue) .app-navigation-entry-edit button:last-child,#app-navigation:not(.vue) .app-navigation-entry-edit input:not([type=text]):last-child{border-bottom-right-radius:var(--border-radius);border-top-right-radius:var(--border-radius);border-bottom-left-radius:0;border-top-left-radius:0}#app-navigation:not(.vue) .app-navigation-entry-deleted{display:inline-flex;padding-left:44px;transform:translateX(300px)}#app-navigation:not(.vue) .app-navigation-entry-deleted .app-navigation-entry-deleted-description{position:relative;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;flex:1 1 0px;line-height:44px}#app-navigation:not(.vue) .app-navigation-entry-deleted .app-navigation-entry-deleted-button{margin:0;height:44px;width:44px;line-height:44px}#app-navigation:not(.vue) .app-navigation-entry-deleted .app-navigation-entry-deleted-button:hover,#app-navigation:not(.vue) .app-navigation-entry-deleted .app-navigation-entry-deleted-button:focus{opacity:1}#app-navigation:not(.vue) .app-navigation-entry-edit,#app-navigation:not(.vue) .app-navigation-entry-deleted{width:calc(100% - 1px);transition:transform 250ms ease-in-out,opacity 250ms ease-in-out,z-index 250ms ease-in-out;position:absolute;left:0;background-color:var(--color-main-background);box-sizing:border-box}#app-navigation:not(.vue) .drag-and-drop{-webkit-transition:padding-bottom 500ms ease 0s;transition:padding-bottom 500ms ease 0s;padding-bottom:40px}#app-navigation:not(.vue) .error{color:var(--color-error)}#app-navigation:not(.vue) .app-navigation-entry-utils ul,#app-navigation:not(.vue) .app-navigation-entry-menu ul{list-style-type:none}#content{box-sizing:border-box;position:static;margin:var(--body-container-margin);margin-top:50px;padding:0;display:flex;width:calc(100% - var(--body-container-margin)*2);height:var(--body-height);border-radius:var(--body-container-radius);overflow:clip}#content:not(.with-sidebar--full){position:fixed}@media only screen and (max-width: 1024px){#content{border-top-left-radius:var(--border-radius-large);border-top-right-radius:var(--border-radius-large)}#app-navigation{border-top-left-radius:var(--border-radius-large)}#app-sidebar{border-top-right-radius:var(--border-radius-large)}}#app-content{z-index:1000;background-color:var(--color-main-background);flex-basis:100vw;overflow:auto;position:initial;height:100%}#app-content>.section:first-child{border-top:none}#app-content #app-content-wrapper{display:flex;position:relative;align-items:stretch;min-height:100%}#app-content #app-content-wrapper .app-content-details{flex:1 1 524px}#app-content #app-content-wrapper .app-content-details #app-navigation-toggle-back{display:none}#app-sidebar{width:27vw;min-width:300px;max-width:500px;display:block;position:-webkit-sticky;position:sticky;top:50px;right:0;overflow-y:auto;overflow-x:hidden;z-index:1500;opacity:.7px;height:calc(100vh - 50px);background:var(--color-main-background);border-left:1px solid var(--color-border);flex-shrink:0}#app-sidebar.disappear{display:none}#app-settings{margin-top:auto}#app-settings.open #app-settings-content,#app-settings.opened #app-settings-content{display:block}#app-settings-content{display:none;padding:calc(var(--default-grid-baseline)*2);padding-top:0;padding-left:calc(var(--default-grid-baseline)*4);max-height:300px;overflow-y:auto;box-sizing:border-box}#app-settings-content input[type=text]{width:93%}#app-settings-content .info-text{padding:5px 0 7px 22px;color:var(--color-text-lighter)}#app-settings-content input[type=checkbox].radio+label,#app-settings-content input[type=checkbox].checkbox+label,#app-settings-content input[type=radio].radio+label,#app-settings-content input[type=radio].checkbox+label{display:inline-block;width:100%;padding:5px 0}#app-settings-header{box-sizing:border-box;background-color:rgba(0,0,0,0);overflow:hidden;border-radius:calc(var(--default-clickable-area)/2);padding:calc(var(--default-grid-baseline)*2);padding-top:0}#app-settings-header .settings-button{display:flex;align-items:center;height:44px;width:100%;padding:0;margin:0;background-color:rgba(0,0,0,0);box-shadow:none;border:0;border-radius:calc(var(--default-clickable-area)/2);text-align:left;font-weight:normal;font-size:100%;opacity:.8;color:var(--color-main-text)}#app-settings-header .settings-button.opened{border-top:solid 1px var(--color-border);background-color:var(--color-main-background);margin-top:8px}#app-settings-header .settings-button:hover,#app-settings-header .settings-button:focus{background-color:var(--color-background-hover)}#app-settings-header .settings-button::before{background-image:var(--icon-settings-dark);background-position:14px center;background-repeat:no-repeat;content:"";width:44px;height:44px;top:0;left:0;display:block}#app-settings-header .settings-button:focus-visible{box-shadow:0 0 0 2px inset var(--color-primary) !important;background-position:12px center}.section{display:block;padding:30px;margin-bottom:24px}.section.hidden{display:none !important}.section input[type=checkbox],.section input[type=radio]{vertical-align:-2px;margin-right:4px}.sub-section{position:relative;margin-top:10px;margin-left:27px;margin-bottom:10px}.appear{opacity:1;-webkit-transition:opacity 500ms ease 0s;-moz-transition:opacity 500ms ease 0s;-ms-transition:opacity 500ms ease 0s;-o-transition:opacity 500ms ease 0s;transition:opacity 500ms ease 0s}.appear.transparent{opacity:0}.tabHeaders{display:flex;margin-bottom:16px}.tabHeaders .tabHeader{display:flex;flex-direction:column;flex-grow:1;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;color:var(--color-text-lighter);margin-bottom:1px;padding:5px}.tabHeaders .tabHeader.hidden{display:none}.tabHeaders .tabHeader:first-child{padding-left:15px}.tabHeaders .tabHeader:last-child{padding-right:15px}.tabHeaders .tabHeader .icon{display:inline-block;width:100%;height:16px;background-size:16px;vertical-align:middle;margin-top:-2px;margin-right:3px;opacity:.7;cursor:pointer}.tabHeaders .tabHeader a{color:var(--color-text-lighter);margin-bottom:1px;overflow:hidden;text-overflow:ellipsis}.tabHeaders .tabHeader.selected{font-weight:bold}.tabHeaders .tabHeader.selected,.tabHeaders .tabHeader:hover,.tabHeaders .tabHeader:focus{margin-bottom:0px;color:var(--color-main-text);border-bottom:1px solid var(--color-text-lighter)}.tabsContainer{clear:left}.tabsContainer .tab{padding:0 15px 15px}.contact .popovermenu ul>li>a>img,.popover__menu>li>a>img{filter:var(--background-invert-if-dark)}.contact .popovermenu ul>li>a>img[src^=data],.popover__menu>li>a>img[src^=data]{filter:none}.bubble,.app-navigation-entry-menu,.popovermenu{position:absolute;background-color:var(--color-main-background);color:var(--color-main-text);border-radius:var(--border-radius-large);padding:3px;z-index:110;margin:5px;margin-top:-5px;right:0;filter:drop-shadow(0 1px 3px var(--color-box-shadow));display:none;will-change:filter}.bubble:after,.app-navigation-entry-menu:after,.popovermenu:after{bottom:100%;right:7px;border:solid rgba(0,0,0,0);content:" ";height:0;width:0;position:absolute;pointer-events:none;border-bottom-color:var(--color-main-background);border-width:9px}.bubble.menu-center,.app-navigation-entry-menu.menu-center,.popovermenu.menu-center{transform:translateX(50%);right:50%;margin-right:0}.bubble.menu-center:after,.app-navigation-entry-menu.menu-center:after,.popovermenu.menu-center:after{right:50%;transform:translateX(50%)}.bubble.menu-left,.app-navigation-entry-menu.menu-left,.popovermenu.menu-left{right:auto;left:0;margin-right:0}.bubble.menu-left:after,.app-navigation-entry-menu.menu-left:after,.popovermenu.menu-left:after{left:6px;right:auto}.bubble.open,.app-navigation-entry-menu.open,.popovermenu.open{display:block}.bubble.contactsmenu-popover,.app-navigation-entry-menu.contactsmenu-popover,.popovermenu.contactsmenu-popover{margin:0}.bubble ul,.app-navigation-entry-menu ul,.popovermenu ul{display:flex !important;flex-direction:column}.bubble li,.app-navigation-entry-menu li,.popovermenu li{display:flex;flex:0 0 auto}.bubble li.hidden,.app-navigation-entry-menu li.hidden,.popovermenu li.hidden{display:none}.bubble li>button,.bubble li>a,.bubble li>.menuitem,.app-navigation-entry-menu li>button,.app-navigation-entry-menu li>a,.app-navigation-entry-menu li>.menuitem,.popovermenu li>button,.popovermenu li>a,.popovermenu li>.menuitem{cursor:pointer;line-height:44px;border:0;border-radius:var(--border-radius-large);background-color:rgba(0,0,0,0);display:flex;align-items:flex-start;height:auto;margin:0;font-weight:normal;box-shadow:none;width:100%;color:var(--color-main-text);white-space:nowrap}.bubble li>button span[class^=icon-],.bubble li>button span[class*=" icon-"],.bubble li>button[class^=icon-],.bubble li>button[class*=" icon-"],.bubble li>a span[class^=icon-],.bubble li>a span[class*=" icon-"],.bubble li>a[class^=icon-],.bubble li>a[class*=" icon-"],.bubble li>.menuitem span[class^=icon-],.bubble li>.menuitem span[class*=" icon-"],.bubble li>.menuitem[class^=icon-],.bubble li>.menuitem[class*=" icon-"],.app-navigation-entry-menu li>button span[class^=icon-],.app-navigation-entry-menu li>button span[class*=" icon-"],.app-navigation-entry-menu li>button[class^=icon-],.app-navigation-entry-menu li>button[class*=" icon-"],.app-navigation-entry-menu li>a span[class^=icon-],.app-navigation-entry-menu li>a span[class*=" icon-"],.app-navigation-entry-menu li>a[class^=icon-],.app-navigation-entry-menu li>a[class*=" icon-"],.app-navigation-entry-menu li>.menuitem span[class^=icon-],.app-navigation-entry-menu li>.menuitem span[class*=" icon-"],.app-navigation-entry-menu li>.menuitem[class^=icon-],.app-navigation-entry-menu li>.menuitem[class*=" icon-"],.popovermenu li>button span[class^=icon-],.popovermenu li>button span[class*=" icon-"],.popovermenu li>button[class^=icon-],.popovermenu li>button[class*=" icon-"],.popovermenu li>a span[class^=icon-],.popovermenu li>a span[class*=" icon-"],.popovermenu li>a[class^=icon-],.popovermenu li>a[class*=" icon-"],.popovermenu li>.menuitem span[class^=icon-],.popovermenu li>.menuitem span[class*=" icon-"],.popovermenu li>.menuitem[class^=icon-],.popovermenu li>.menuitem[class*=" icon-"]{min-width:0;min-height:0;background-position:14px center;background-size:16px}.bubble li>button span[class^=icon-],.bubble li>button span[class*=" icon-"],.bubble li>a span[class^=icon-],.bubble li>a span[class*=" icon-"],.bubble li>.menuitem span[class^=icon-],.bubble li>.menuitem span[class*=" icon-"],.app-navigation-entry-menu li>button span[class^=icon-],.app-navigation-entry-menu li>button span[class*=" icon-"],.app-navigation-entry-menu li>a span[class^=icon-],.app-navigation-entry-menu li>a span[class*=" icon-"],.app-navigation-entry-menu li>.menuitem span[class^=icon-],.app-navigation-entry-menu li>.menuitem span[class*=" icon-"],.popovermenu li>button span[class^=icon-],.popovermenu li>button span[class*=" icon-"],.popovermenu li>a span[class^=icon-],.popovermenu li>a span[class*=" icon-"],.popovermenu li>.menuitem span[class^=icon-],.popovermenu li>.menuitem span[class*=" icon-"]{padding:22px 0 22px 44px}.bubble li>button:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.bubble li>button:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.bubble li>button:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child,.bubble li>a:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.bubble li>a:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.bubble li>a:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child,.bubble li>.menuitem:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.bubble li>.menuitem:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.bubble li>.menuitem:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>button:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>button:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>button:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>a:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>a:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>a:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>.menuitem:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>.menuitem:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>.menuitem:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>button:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>button:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>button:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>a:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>a:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>a:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>.menuitem:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>.menuitem:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>.menuitem:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child{margin-left:44px}.bubble li>button[class^=icon-],.bubble li>button[class*=" icon-"],.bubble li>a[class^=icon-],.bubble li>a[class*=" icon-"],.bubble li>.menuitem[class^=icon-],.bubble li>.menuitem[class*=" icon-"],.app-navigation-entry-menu li>button[class^=icon-],.app-navigation-entry-menu li>button[class*=" icon-"],.app-navigation-entry-menu li>a[class^=icon-],.app-navigation-entry-menu li>a[class*=" icon-"],.app-navigation-entry-menu li>.menuitem[class^=icon-],.app-navigation-entry-menu li>.menuitem[class*=" icon-"],.popovermenu li>button[class^=icon-],.popovermenu li>button[class*=" icon-"],.popovermenu li>a[class^=icon-],.popovermenu li>a[class*=" icon-"],.popovermenu li>.menuitem[class^=icon-],.popovermenu li>.menuitem[class*=" icon-"]{padding:0 14px 0 44px !important}.bubble li>button:hover,.bubble li>button:focus,.bubble li>a:hover,.bubble li>a:focus,.bubble li>.menuitem:hover,.bubble li>.menuitem:focus,.app-navigation-entry-menu li>button:hover,.app-navigation-entry-menu li>button:focus,.app-navigation-entry-menu li>a:hover,.app-navigation-entry-menu li>a:focus,.app-navigation-entry-menu li>.menuitem:hover,.app-navigation-entry-menu li>.menuitem:focus,.popovermenu li>button:hover,.popovermenu li>button:focus,.popovermenu li>a:hover,.popovermenu li>a:focus,.popovermenu li>.menuitem:hover,.popovermenu li>.menuitem:focus{background-color:var(--color-background-hover)}.bubble li>button:focus,.bubble li>button:focus-visible,.bubble li>a:focus,.bubble li>a:focus-visible,.bubble li>.menuitem:focus,.bubble li>.menuitem:focus-visible,.app-navigation-entry-menu li>button:focus,.app-navigation-entry-menu li>button:focus-visible,.app-navigation-entry-menu li>a:focus,.app-navigation-entry-menu li>a:focus-visible,.app-navigation-entry-menu li>.menuitem:focus,.app-navigation-entry-menu li>.menuitem:focus-visible,.popovermenu li>button:focus,.popovermenu li>button:focus-visible,.popovermenu li>a:focus,.popovermenu li>a:focus-visible,.popovermenu li>.menuitem:focus,.popovermenu li>.menuitem:focus-visible{box-shadow:0 0 0 2px var(--color-primary-element)}.bubble li>button.active,.bubble li>a.active,.bubble li>.menuitem.active,.app-navigation-entry-menu li>button.active,.app-navigation-entry-menu li>a.active,.app-navigation-entry-menu li>.menuitem.active,.popovermenu li>button.active,.popovermenu li>a.active,.popovermenu li>.menuitem.active{border-radius:var(--border-radius-pill);background-color:var(--color-primary-light)}.bubble li>button.action,.bubble li>a.action,.bubble li>.menuitem.action,.app-navigation-entry-menu li>button.action,.app-navigation-entry-menu li>a.action,.app-navigation-entry-menu li>.menuitem.action,.popovermenu li>button.action,.popovermenu li>a.action,.popovermenu li>.menuitem.action{padding:inherit !important}.bubble li>button>span,.bubble li>a>span,.bubble li>.menuitem>span,.app-navigation-entry-menu li>button>span,.app-navigation-entry-menu li>a>span,.app-navigation-entry-menu li>.menuitem>span,.popovermenu li>button>span,.popovermenu li>a>span,.popovermenu li>.menuitem>span{cursor:pointer;white-space:nowrap}.bubble li>button>p,.bubble li>a>p,.bubble li>.menuitem>p,.app-navigation-entry-menu li>button>p,.app-navigation-entry-menu li>a>p,.app-navigation-entry-menu li>.menuitem>p,.popovermenu li>button>p,.popovermenu li>a>p,.popovermenu li>.menuitem>p{width:150px;line-height:1.6em;padding:8px 0;white-space:normal}.bubble li>button>select,.bubble li>a>select,.bubble li>.menuitem>select,.app-navigation-entry-menu li>button>select,.app-navigation-entry-menu li>a>select,.app-navigation-entry-menu li>.menuitem>select,.popovermenu li>button>select,.popovermenu li>a>select,.popovermenu li>.menuitem>select{margin:0;margin-left:6px}.bubble li>button:not(:empty),.bubble li>a:not(:empty),.bubble li>.menuitem:not(:empty),.app-navigation-entry-menu li>button:not(:empty),.app-navigation-entry-menu li>a:not(:empty),.app-navigation-entry-menu li>.menuitem:not(:empty),.popovermenu li>button:not(:empty),.popovermenu li>a:not(:empty),.popovermenu li>.menuitem:not(:empty){padding-right:14px !important}.bubble li>button>img,.bubble li>a>img,.bubble li>.menuitem>img,.app-navigation-entry-menu li>button>img,.app-navigation-entry-menu li>a>img,.app-navigation-entry-menu li>.menuitem>img,.popovermenu li>button>img,.popovermenu li>a>img,.popovermenu li>.menuitem>img{width:16px;padding:14px}.bubble li>button>input.radio+label,.bubble li>button>input.checkbox+label,.bubble li>a>input.radio+label,.bubble li>a>input.checkbox+label,.bubble li>.menuitem>input.radio+label,.bubble li>.menuitem>input.checkbox+label,.app-navigation-entry-menu li>button>input.radio+label,.app-navigation-entry-menu li>button>input.checkbox+label,.app-navigation-entry-menu li>a>input.radio+label,.app-navigation-entry-menu li>a>input.checkbox+label,.app-navigation-entry-menu li>.menuitem>input.radio+label,.app-navigation-entry-menu li>.menuitem>input.checkbox+label,.popovermenu li>button>input.radio+label,.popovermenu li>button>input.checkbox+label,.popovermenu li>a>input.radio+label,.popovermenu li>a>input.checkbox+label,.popovermenu li>.menuitem>input.radio+label,.popovermenu li>.menuitem>input.checkbox+label{padding:0 !important;width:100%}.bubble li>button>input.checkbox+label::before,.bubble li>a>input.checkbox+label::before,.bubble li>.menuitem>input.checkbox+label::before,.app-navigation-entry-menu li>button>input.checkbox+label::before,.app-navigation-entry-menu li>a>input.checkbox+label::before,.app-navigation-entry-menu li>.menuitem>input.checkbox+label::before,.popovermenu li>button>input.checkbox+label::before,.popovermenu li>a>input.checkbox+label::before,.popovermenu li>.menuitem>input.checkbox+label::before{margin:-2px 13px 0}.bubble li>button>input.radio+label::before,.bubble li>a>input.radio+label::before,.bubble li>.menuitem>input.radio+label::before,.app-navigation-entry-menu li>button>input.radio+label::before,.app-navigation-entry-menu li>a>input.radio+label::before,.app-navigation-entry-menu li>.menuitem>input.radio+label::before,.popovermenu li>button>input.radio+label::before,.popovermenu li>a>input.radio+label::before,.popovermenu li>.menuitem>input.radio+label::before{margin:-2px 12px 0}.bubble li>button>input:not([type=radio]):not([type=checkbox]):not([type=image]),.bubble li>a>input:not([type=radio]):not([type=checkbox]):not([type=image]),.bubble li>.menuitem>input:not([type=radio]):not([type=checkbox]):not([type=image]),.app-navigation-entry-menu li>button>input:not([type=radio]):not([type=checkbox]):not([type=image]),.app-navigation-entry-menu li>a>input:not([type=radio]):not([type=checkbox]):not([type=image]),.app-navigation-entry-menu li>.menuitem>input:not([type=radio]):not([type=checkbox]):not([type=image]),.popovermenu li>button>input:not([type=radio]):not([type=checkbox]):not([type=image]),.popovermenu li>a>input:not([type=radio]):not([type=checkbox]):not([type=image]),.popovermenu li>.menuitem>input:not([type=radio]):not([type=checkbox]):not([type=image]){width:150px}.bubble li>button form,.bubble li>a form,.bubble li>.menuitem form,.app-navigation-entry-menu li>button form,.app-navigation-entry-menu li>a form,.app-navigation-entry-menu li>.menuitem form,.popovermenu li>button form,.popovermenu li>a form,.popovermenu li>.menuitem form{display:flex;flex:1 1 auto;align-items:center}.bubble li>button form:not(:first-child),.bubble li>a form:not(:first-child),.bubble li>.menuitem form:not(:first-child),.app-navigation-entry-menu li>button form:not(:first-child),.app-navigation-entry-menu li>a form:not(:first-child),.app-navigation-entry-menu li>.menuitem form:not(:first-child),.popovermenu li>button form:not(:first-child),.popovermenu li>a form:not(:first-child),.popovermenu li>.menuitem form:not(:first-child){margin-left:5px}.bubble li>button>span.hidden+form,.bubble li>button>span[style*="display:none"]+form,.bubble li>a>span.hidden+form,.bubble li>a>span[style*="display:none"]+form,.bubble li>.menuitem>span.hidden+form,.bubble li>.menuitem>span[style*="display:none"]+form,.app-navigation-entry-menu li>button>span.hidden+form,.app-navigation-entry-menu li>button>span[style*="display:none"]+form,.app-navigation-entry-menu li>a>span.hidden+form,.app-navigation-entry-menu li>a>span[style*="display:none"]+form,.app-navigation-entry-menu li>.menuitem>span.hidden+form,.app-navigation-entry-menu li>.menuitem>span[style*="display:none"]+form,.popovermenu li>button>span.hidden+form,.popovermenu li>button>span[style*="display:none"]+form,.popovermenu li>a>span.hidden+form,.popovermenu li>a>span[style*="display:none"]+form,.popovermenu li>.menuitem>span.hidden+form,.popovermenu li>.menuitem>span[style*="display:none"]+form{margin-left:0}.bubble li>button input,.bubble li>a input,.bubble li>.menuitem input,.app-navigation-entry-menu li>button input,.app-navigation-entry-menu li>a input,.app-navigation-entry-menu li>.menuitem input,.popovermenu li>button input,.popovermenu li>a input,.popovermenu li>.menuitem input{min-width:44px;max-height:40px;margin:2px 0;flex:1 1 auto}.bubble li>button input:not(:first-child),.bubble li>a input:not(:first-child),.bubble li>.menuitem input:not(:first-child),.app-navigation-entry-menu li>button input:not(:first-child),.app-navigation-entry-menu li>a input:not(:first-child),.app-navigation-entry-menu li>.menuitem input:not(:first-child),.popovermenu li>button input:not(:first-child),.popovermenu li>a input:not(:first-child),.popovermenu li>.menuitem input:not(:first-child){margin-left:5px}.bubble li:not(.hidden):not([style*="display:none"]):first-of-type>button>form,.bubble li:not(.hidden):not([style*="display:none"]):first-of-type>button>input,.bubble li:not(.hidden):not([style*="display:none"]):first-of-type>a>form,.bubble li:not(.hidden):not([style*="display:none"]):first-of-type>a>input,.bubble li:not(.hidden):not([style*="display:none"]):first-of-type>.menuitem>form,.bubble li:not(.hidden):not([style*="display:none"]):first-of-type>.menuitem>input,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):first-of-type>button>form,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):first-of-type>button>input,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):first-of-type>a>form,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):first-of-type>a>input,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):first-of-type>.menuitem>form,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):first-of-type>.menuitem>input,.popovermenu li:not(.hidden):not([style*="display:none"]):first-of-type>button>form,.popovermenu li:not(.hidden):not([style*="display:none"]):first-of-type>button>input,.popovermenu li:not(.hidden):not([style*="display:none"]):first-of-type>a>form,.popovermenu li:not(.hidden):not([style*="display:none"]):first-of-type>a>input,.popovermenu li:not(.hidden):not([style*="display:none"]):first-of-type>.menuitem>form,.popovermenu li:not(.hidden):not([style*="display:none"]):first-of-type>.menuitem>input{margin-top:12px}.bubble li:not(.hidden):not([style*="display:none"]):last-of-type>button>form,.bubble li:not(.hidden):not([style*="display:none"]):last-of-type>button>input,.bubble li:not(.hidden):not([style*="display:none"]):last-of-type>a>form,.bubble li:not(.hidden):not([style*="display:none"]):last-of-type>a>input,.bubble li:not(.hidden):not([style*="display:none"]):last-of-type>.menuitem>form,.bubble li:not(.hidden):not([style*="display:none"]):last-of-type>.menuitem>input,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):last-of-type>button>form,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):last-of-type>button>input,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):last-of-type>a>form,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):last-of-type>a>input,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):last-of-type>.menuitem>form,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):last-of-type>.menuitem>input,.popovermenu li:not(.hidden):not([style*="display:none"]):last-of-type>button>form,.popovermenu li:not(.hidden):not([style*="display:none"]):last-of-type>button>input,.popovermenu li:not(.hidden):not([style*="display:none"]):last-of-type>a>form,.popovermenu li:not(.hidden):not([style*="display:none"]):last-of-type>a>input,.popovermenu li:not(.hidden):not([style*="display:none"]):last-of-type>.menuitem>form,.popovermenu li:not(.hidden):not([style*="display:none"]):last-of-type>.menuitem>input{margin-bottom:0px}.bubble li>button,.app-navigation-entry-menu li>button,.popovermenu li>button{padding:0}.bubble li>button span,.app-navigation-entry-menu li>button span,.popovermenu li>button span{opacity:1}.popovermenu li>button>img,.popovermenu li>a>img,.popovermenu li>.menuitem>img{width:44px;height:44px}#contactsmenu .contact .popovermenu li>a>img{width:16px;height:16px}.app-content-list{position:-webkit-sticky;position:relative;top:0;border-right:1px solid var(--color-border);display:flex;flex-direction:column;transition:transform 250ms ease-in-out;min-height:100%;max-height:100%;overflow-y:auto;overflow-x:hidden;flex:1 1 200px;min-width:200px;max-width:300px}.app-content-list .app-content-list-item{position:relative;height:68px;cursor:pointer;padding:10px 7px;display:flex;flex-wrap:wrap;align-items:center;flex:0 0 auto}.app-content-list .app-content-list-item>[class^=icon-],.app-content-list .app-content-list-item>[class*=" icon-"],.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-],.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"]{order:4;width:24px;height:24px;margin:-7px;padding:22px;opacity:.3;cursor:pointer}.app-content-list .app-content-list-item>[class^=icon-]:hover,.app-content-list .app-content-list-item>[class^=icon-]:focus,.app-content-list .app-content-list-item>[class*=" icon-"]:hover,.app-content-list .app-content-list-item>[class*=" icon-"]:focus,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-]:hover,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-]:focus,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"]:hover,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"]:focus{opacity:.7}.app-content-list .app-content-list-item>[class^=icon-][class^=icon-star],.app-content-list .app-content-list-item>[class^=icon-][class*=" icon-star"],.app-content-list .app-content-list-item>[class*=" icon-"][class^=icon-star],.app-content-list .app-content-list-item>[class*=" icon-"][class*=" icon-star"],.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-][class^=icon-star],.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-][class*=" icon-star"],.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"][class^=icon-star],.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"][class*=" icon-star"]{opacity:.7}.app-content-list .app-content-list-item>[class^=icon-][class^=icon-star]:hover,.app-content-list .app-content-list-item>[class^=icon-][class^=icon-star]:focus,.app-content-list .app-content-list-item>[class^=icon-][class*=" icon-star"]:hover,.app-content-list .app-content-list-item>[class^=icon-][class*=" icon-star"]:focus,.app-content-list .app-content-list-item>[class*=" icon-"][class^=icon-star]:hover,.app-content-list .app-content-list-item>[class*=" icon-"][class^=icon-star]:focus,.app-content-list .app-content-list-item>[class*=" icon-"][class*=" icon-star"]:hover,.app-content-list .app-content-list-item>[class*=" icon-"][class*=" icon-star"]:focus,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-][class^=icon-star]:hover,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-][class^=icon-star]:focus,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-][class*=" icon-star"]:hover,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-][class*=" icon-star"]:focus,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"][class^=icon-star]:hover,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"][class^=icon-star]:focus,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"][class*=" icon-star"]:hover,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"][class*=" icon-star"]:focus{opacity:1}.app-content-list .app-content-list-item>[class^=icon-].icon-starred,.app-content-list .app-content-list-item>[class*=" icon-"].icon-starred,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-].icon-starred,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"].icon-starred{opacity:1}.app-content-list .app-content-list-item:hover,.app-content-list .app-content-list-item:focus,.app-content-list .app-content-list-item.active{background-color:var(--color-background-dark)}.app-content-list .app-content-list-item:hover .app-content-list-item-checkbox.checkbox+label,.app-content-list .app-content-list-item:focus .app-content-list-item-checkbox.checkbox+label,.app-content-list .app-content-list-item.active .app-content-list-item-checkbox.checkbox+label{display:flex}.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox+label,.app-content-list .app-content-list-item .app-content-list-item-star{position:absolute;height:40px;width:40px;z-index:50}.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox:checked+label,.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox:hover+label,.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox:focus+label,.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox.active+label{display:flex}.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox:checked+label+.app-content-list-item-icon,.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox:hover+label+.app-content-list-item-icon,.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox:focus+label+.app-content-list-item-icon,.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox.active+label+.app-content-list-item-icon{opacity:.7}.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox+label{top:14px;left:7px;display:none}.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox+label::before{margin:0}.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox+label~.app-content-list-item-star{display:none}.app-content-list .app-content-list-item .app-content-list-item-star{display:flex;top:10px;left:32px;background-size:16px;height:20px;width:20px;margin:0;padding:0}.app-content-list .app-content-list-item .app-content-list-item-icon{position:absolute;display:inline-block;height:40px;width:40px;line-height:40px;border-radius:50%;vertical-align:middle;margin-right:10px;color:#fff;text-align:center;font-size:1.5em;text-transform:capitalize;object-fit:cover;user-select:none;cursor:pointer;top:50%;margin-top:-20px}.app-content-list .app-content-list-item .app-content-list-item-line-one,.app-content-list .app-content-list-item .app-content-list-item-line-two{display:block;padding-left:50px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;order:1;flex:1 1 0px;padding-right:10px;cursor:pointer}.app-content-list .app-content-list-item .app-content-list-item-line-two{opacity:.5;order:3;flex:1 0;flex-basis:calc(100% - 44px)}.app-content-list .app-content-list-item .app-content-list-item-details{order:2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100px;opacity:.5;font-size:80%;user-select:none}.app-content-list .app-content-list-item .app-content-list-item-menu{order:4;position:relative}.app-content-list .app-content-list-item .app-content-list-item-menu .popovermenu{margin:0;right:-2px}.app-content-list.selection .app-content-list-item-checkbox.checkbox+label{display:flex}.pull-left{float:left}.pull-right{float:right}.clear-left{clear:left}.clear-right{clear:right}.clear-both{clear:both}.hidden{display:none}.hidden-visually{position:absolute;left:-10000px;top:-10000px;width:1px;height:1px;overflow:hidden}.bold{font-weight:600}.center{text-align:center}.inlineblock{display:inline-block}::-moz-focus-inner{border:0}@media only screen and (width < 1024px){#dropdown{margin-right:10% !important;width:80% !important}.ui-autocomplete{z-index:1000 !important}.error-wide{width:100%;margin-left:0 !important;box-sizing:border-box}#app-navigation:not(.vue){transform:translateX(-300px);position:fixed;height:var(--body-height)}.snapjs-left #app-navigation{transform:translateX(0)}#app-navigation:not(.hidden)+#app-content{margin-left:0}.skip-navigation.skip-content{left:3px;margin-left:0}.app-content-list{background:var(--color-main-background);flex:1 1 100%;max-height:unset;max-width:100%}.app-content-list+.app-content-details{display:none}.app-content-list.showdetails{display:none}.app-content-list.showdetails+.app-content-details{display:initial}#app-content.showdetails #app-navigation-toggle{transform:translateX(-44px)}#app-content.showdetails #app-navigation-toggle-back{position:fixed;display:inline-block !important;top:50px;left:0;width:44px;height:44px;z-index:1050;background-color:rgba(255,255,255,.7);cursor:pointer;opacity:.6;transform:rotate(90deg)}#app-content.showdetails .app-content-list{transform:translateX(-100%)}#app-navigation-toggle{position:fixed;display:inline-block !important;left:0;width:44px;height:44px;z-index:1050;cursor:pointer;opacity:.6}#app-navigation-toggle:hover,#app-navigation-toggle:focus{opacity:1}#app-navigation+#app-content .files-controls{padding-left:44px}#body-user .app-files.viewer-mode .files-controls{padding-left:0 !important}.app-files.viewer-mode #app-navigation-toggle{display:none !important}table.multiselect thead{left:0 !important}#usersearchform{display:none}#body-settings .files-controls{min-width:1024px !important}#oc-dialog-filepicker-content .filelist .column-size,#oc-dialog-filepicker-content .filelist .column-mtime,#oc-dialog-filepicker-content .filelist .filesize,#oc-dialog-filepicker-content .filelist .date{display:none}#oc-dialog-filepicker-content .filelist .filename{max-width:100%}.snapjs-left table.multiselect thead{top:44px}}@media only screen and (max-width: 480px){#header .header-right>div>.menu{max-width:calc(100vw - 10px);position:fixed}#header .header-right>div>.menu::after{display:none !important}#header .header-right>div.openedMenu::after{display:block}#header .header-right>div::after{border:10px solid rgba(0,0,0,0);border-bottom-color:var(--color-main-background);bottom:0;content:" ";height:0;width:0;position:absolute;pointer-events:none;right:15px;z-index:2001;display:none}#header .header-right>div#settings::after{right:27px}}.tooltip{position:absolute;display:block;font-family:var(--font-face);font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.6;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;overflow-wrap:anywhere;font-size:12px;opacity:0;z-index:100000;margin-top:-3px;padding:10px 0;filter:drop-shadow(0 1px 10px var(--color-box-shadow))}.tooltip.in,.tooltip.show,.tooltip.tooltip[aria-hidden=false]{visibility:visible;opacity:1;transition:opacity .15s}.tooltip.top .tooltip-arrow,.tooltip[x-placement^=top]{left:50%;margin-left:-10px}.tooltip.bottom,.tooltip[x-placement^=bottom]{margin-top:3px;padding:10px 0}.tooltip.right,.tooltip[x-placement^=right]{margin-left:3px;padding:0 10px}.tooltip.right .tooltip-arrow,.tooltip[x-placement^=right] .tooltip-arrow{top:50%;left:0;margin-top:-10px;border-width:10px 10px 10px 0;border-right-color:var(--color-main-background)}.tooltip.left,.tooltip[x-placement^=left]{margin-left:-3px;padding:0 5px}.tooltip.left .tooltip-arrow,.tooltip[x-placement^=left] .tooltip-arrow{top:50%;right:0;margin-top:-10px;border-width:10px 0 10px 10px;border-left-color:var(--color-main-background)}.tooltip.top .tooltip-arrow,.tooltip.top .arrow,.tooltip.top-left .tooltip-arrow,.tooltip.top-left .arrow,.tooltip[x-placement^=top] .tooltip-arrow,.tooltip[x-placement^=top] .arrow,.tooltip.top-right .tooltip-arrow,.tooltip.top-right .arrow{bottom:0;border-width:10px 10px 0;border-top-color:var(--color-main-background)}.tooltip.top-left .tooltip-arrow{right:10px;margin-bottom:-10px}.tooltip.top-right .tooltip-arrow{left:10px;margin-bottom:-10px}.tooltip.bottom .tooltip-arrow,.tooltip.bottom .arrow,.tooltip[x-placement^=bottom] .tooltip-arrow,.tooltip[x-placement^=bottom] .arrow,.tooltip.bottom-left .tooltip-arrow,.tooltip.bottom-left .arrow,.tooltip.bottom-right .tooltip-arrow,.tooltip.bottom-right .arrow{top:0;border-width:0 10px 10px;border-bottom-color:var(--color-main-background)}.tooltip[x-placement^=bottom] .tooltip-arrow,.tooltip.bottom .tooltip-arrow{left:50%;margin-left:-10px}.tooltip.bottom-left .tooltip-arrow{right:10px;margin-top:-10px}.tooltip.bottom-right .tooltip-arrow{left:10px;margin-top:-10px}.tooltip-inner{max-width:350px;padding:5px 8px;background-color:var(--color-main-background);color:var(--color-main-text);text-align:center;border-radius:var(--border-radius)}.tooltip-arrow,.tooltip .arrow{position:absolute;width:0;height:0;border-color:rgba(0,0,0,0);border-style:solid}.toastify.dialogs{min-width:200px;background:none;background-color:var(--color-main-background);color:var(--color-main-text);box-shadow:0 0 6px 0 var(--color-box-shadow);padding:0 12px;margin-top:45px;position:fixed;z-index:10100;border-radius:var(--border-radius);display:flex;align-items:center}.toastify.dialogs .toast-undo-container{display:flex;align-items:center}.toastify.dialogs .toast-undo-button,.toastify.dialogs .toast-close{position:static;overflow:hidden;box-sizing:border-box;min-width:44px;height:100%;padding:12px;white-space:nowrap;background-repeat:no-repeat;background-position:center;background-color:transparent;min-height:0}.toastify.dialogs .toast-undo-button.toast-close,.toastify.dialogs .toast-close.toast-close{text-indent:0;opacity:.4;border:none;min-height:44px;margin-left:10px;font-size:0}.toastify.dialogs .toast-undo-button.toast-close::before,.toastify.dialogs .toast-close.toast-close::before{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMTYiIHdpZHRoPSIxNiI+CiAgPHBhdGggZD0iTTE0IDEyLjNMMTIuMyAxNCA4IDkuNyAzLjcgMTQgMiAxMi4zIDYuMyA4IDIgMy43IDMuNyAyIDggNi4zIDEyLjMgMiAxNCAzLjcgOS43IDh6Ii8+Cjwvc3ZnPgo=");content:" ";filter:var(--background-invert-if-dark);display:inline-block;width:16px;height:16px}.toastify.dialogs .toast-undo-button.toast-undo-button,.toastify.dialogs .toast-close.toast-undo-button{margin:3px;height:calc(100% - 6px);margin-left:12px}.toastify.dialogs .toast-undo-button:hover,.toastify.dialogs .toast-undo-button:focus,.toastify.dialogs .toast-undo-button:active,.toastify.dialogs .toast-close:hover,.toastify.dialogs .toast-close:focus,.toastify.dialogs .toast-close:active{cursor:pointer;opacity:1}.toastify.dialogs.toastify-top{right:10px}.toastify.dialogs.toast-with-click{cursor:pointer}.toastify.dialogs.toast-error{border-left:3px solid var(--color-error)}.toastify.dialogs.toast-info{border-left:3px solid var(--color-primary)}.toastify.dialogs.toast-warning{border-left:3px solid var(--color-warning)}.toastify.dialogs.toast-success{border-left:3px solid var(--color-success)}.toastify.dialogs.toast-undo{border-left:3px solid var(--color-success)}.theme--dark .toastify.dialogs .toast-close.toast-close::before{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMTYiIHdpZHRoPSIxNiI+CiAgPHBhdGggZD0iTTE0IDEyLjNMMTIuMyAxNCA4IDkuNyAzLjcgMTQgMiAxMi4zIDYuMyA4IDIgMy43IDMuNyAyIDggNi4zIDEyLjMgMiAxNCAzLjcgOS43IDh6IiBzdHlsZT0iZmlsbC1vcGFjaXR5OjE7ZmlsbDojZmZmZmZmIi8+Cjwvc3ZnPgo=")}#body-public .header-right #header-primary-action a{color:var(--color-primary-text)}#body-public .header-right #header-secondary-action ul li{min-width:270px}#body-public .header-right #header-secondary-action #header-actions-toggle{background-color:rgba(0,0,0,0);border-color:rgba(0,0,0,0);filter:var(--background-invert-if-dark)}#body-public .header-right #header-secondary-action #header-actions-toggle:hover,#body-public .header-right #header-secondary-action #header-actions-toggle:focus,#body-public .header-right #header-secondary-action #header-actions-toggle:active{opacity:1}#body-public .header-right #header-secondary-action #external-share-menu-item form{display:flex}#body-public .header-right #header-secondary-action #external-share-menu-item .hidden{display:none}#body-public .header-right #header-secondary-action #external-share-menu-item #save-button-confirm{flex-grow:0}#body-public #content{min-height:calc(100% - 65px)}#body-public.layout-base #content{padding-top:0}#body-public p.info{margin:20px auto;text-shadow:0 0 2px rgba(0,0,0,.4);-moz-user-select:none;-ms-user-select:none;user-select:none}#body-public p.info,#body-public form fieldset legend,#body-public #datadirContent label,#body-public form fieldset .warning-info,#body-public form input[type=checkbox]+label{text-align:center}#body-public footer{position:fixed;display:flex;align-items:center;justify-content:center;height:65px;flex-direction:column;bottom:0;width:calc(100% - 16px);margin:8px;background-color:var(--color-main-background);border-radius:var(--border-radius-large)}#body-public footer p{text-align:center;color:var(--color-text-lighter)}#body-public footer p a{color:var(--color-text-lighter);font-weight:bold;white-space:nowrap;padding:10px;margin:-10px;line-height:200%}/*# sourceMappingURL=server.css.map */ +@import"../../dist/icons.css";html,body,div,span,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,code,del,dfn,em,img,q,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,dialog,figure,footer,header,hgroup,nav,section,main{margin:0;padding:0;border:0;font-weight:inherit;font-size:100%;font-family:inherit;vertical-align:baseline;cursor:default;scrollbar-color:var(--color-border-dark) rgba(0,0,0,0);scrollbar-width:thin}.js-focus-visible :focus:not(.focus-visible){outline:none}.content:not(#content-vue) :focus-visible,.app-navigation:not(#app-navigation-vue) :focus-visible{box-shadow:inset 0 0 0 2px var(--color-primary);outline:none}html,body{height:100%}article,aside,dialog,figure,footer,header,hgroup,nav,section{display:block}body{line-height:1.5}table{border-collapse:separate;border-spacing:0;white-space:nowrap}caption,th,td{text-align:left;font-weight:normal}table,td,th{vertical-align:middle}a{border:0;color:var(--color-main-text);text-decoration:none;cursor:pointer}a *{cursor:pointer}a.external{margin:0 3px;text-decoration:underline}input{cursor:pointer}input *{cursor:pointer}select,.button span,label{cursor:pointer}ul{list-style:none}body{font-weight:normal;font-size:var(--default-font-size);line-height:var(--default-line-height);font-family:var(--font-face);color:var(--color-main-text)}.two-factor-header{text-align:center}.two-factor-provider{text-align:center;width:100% !important;display:inline-block;margin-bottom:0 !important;background-color:var(--color-background-darker) !important;border:none !important}.two-factor-link{display:inline-block;padding:12px;color:var(--color-text-lighter)}.float-spinner{height:32px;display:none}#nojavascript{position:fixed;top:0;bottom:0;left:0;height:100%;width:100%;z-index:9000;text-align:center;background-color:var(--color-background-darker);color:var(--color-primary-text);line-height:125%;font-size:24px}#nojavascript div{display:block;position:relative;width:50%;top:35%;margin:0px auto}#nojavascript a{color:var(--color-primary-text);border-bottom:2px dotted var(--color-main-background)}#nojavascript a:hover,#nojavascript a:focus{color:var(--color-primary-text-dark)}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-corner{background-color:rgba(0,0,0,0)}::-webkit-scrollbar-track-piece{background-color:rgba(0,0,0,0)}::-webkit-scrollbar-thumb{background:var(--color-scrollbar);border-radius:var(--border-radius-large);border:2px solid rgba(0,0,0,0);background-clip:content-box}::selection{background-color:var(--color-primary-element);color:var(--color-primary-text)}#app-navigation *{box-sizing:border-box}#emptycontent,.emptycontent{color:var(--color-text-maxcontrast);text-align:center;margin-top:30vh;width:100%}#app-sidebar #emptycontent,#app-sidebar .emptycontent{margin-top:10vh}#emptycontent .emptycontent-search,.emptycontent .emptycontent-search{position:static}#emptycontent h2,.emptycontent h2{margin-bottom:10px}#emptycontent [class^=icon-],#emptycontent [class*=icon-],.emptycontent [class^=icon-],.emptycontent [class*=icon-]{background-size:64px;height:64px;width:64px;margin:0 auto 15px}#emptycontent [class^=icon-]:not([class^=icon-loading]),#emptycontent [class^=icon-]:not([class*=icon-loading]),#emptycontent [class*=icon-]:not([class^=icon-loading]),#emptycontent [class*=icon-]:not([class*=icon-loading]),.emptycontent [class^=icon-]:not([class^=icon-loading]),.emptycontent [class^=icon-]:not([class*=icon-loading]),.emptycontent [class*=icon-]:not([class^=icon-loading]),.emptycontent [class*=icon-]:not([class*=icon-loading]){opacity:.4}#datadirContent label{width:100%}.grouptop,.groupmiddle,.groupbottom{position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#show,#dbpassword{position:absolute;right:1em;top:.8em;float:right}#show+label,#dbpassword+label{right:21px;top:15px !important;margin:-14px !important;padding:14px !important}#show:checked+label,#dbpassword:checked+label,#personal-show:checked+label{opacity:.8}#show:focus-visible+label,#dbpassword-toggle:focus-visible+label,#personal-show:focus-visible+label{box-shadow:var(--color-primary) 0 0 0 2px;opacity:1;border-radius:9999px}#show+label,#dbpassword+label,#personal-show+label{position:absolute !important;height:20px;width:24px;background-image:var(--icon-toggle-dark);background-repeat:no-repeat;background-position:center;opacity:.3}#show:focus+label,#dbpassword:focus+label,#personal-show:focus+label{opacity:1}#show+label:hover,#dbpassword+label:hover,#personal-show+label:hover{opacity:1}#show+label:before,#dbpassword+label:before,#personal-show+label:before{display:none}#pass2,input[name=personal-password-clone]{padding-right:30px}.personal-show-container{position:relative;display:inline-block;margin-right:6px}#personal-show+label{display:block;right:0;margin-top:-43px;margin-right:-4px;padding:22px}#body-user .warning,#body-settings .warning{margin-top:8px;padding:5px;border-radius:var(--border-radius);color:var(--color-main-text);background-color:rgba(var(--color-warning-rgb), 0.2)}.warning legend,.warning a{font-weight:bold !important}.error:not(.toastify) a{color:#fff !important;font-weight:bold !important}.error:not(.toastify) a.button{color:var(--color-text-lighter) !important;display:inline-block;text-align:center}.error:not(.toastify) pre{white-space:pre-wrap;text-align:left}.error-wide{width:700px;margin-left:-200px !important}.error-wide .button{color:#000 !important}.warning-input{border-color:var(--color-error) !important}.avatar,.avatardiv{border-radius:50%;flex-shrink:0}.avatar>img,.avatardiv>img{border-radius:50%;flex-shrink:0}td.avatar{border-radius:0}tr .action:not(.permanent),.selectedActions>a{opacity:0}tr:hover .action:not(.menuitem),tr:focus .action:not(.menuitem),tr .action.permanent:not(.menuitem){opacity:.5}.selectedActions>a{opacity:.5;position:relative;top:2px}.selectedActions>a:hover,.selectedActions>a:focus{opacity:1}tr .action{width:16px;height:16px}.header-action{opacity:.8}tr:hover .action:hover,tr:focus .action:focus{opacity:1}.selectedActions a:hover,.selectedActions a:focus{opacity:1}.header-action:hover,.header-action:focus{opacity:1}tbody tr:hover,tbody tr:focus,tbody tr:active{background-color:var(--color-background-dark)}code{font-family:"Lucida Console","Lucida Sans Typewriter","DejaVu Sans Mono",monospace}.pager{list-style:none;float:right;display:inline;margin:.7em 13em 0 0}.pager li{display:inline-block}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{overflow:hidden;text-overflow:ellipsis}.ui-icon-circle-triangle-e{background-image:url("../img/actions/play-next.svg?v=1")}.ui-icon-circle-triangle-w{background-image:url("../img/actions/play-previous.svg?v=1")}.ui-widget.ui-datepicker{margin-top:10px;padding:4px 8px;width:auto;border-radius:var(--border-radius);border:none;z-index:1600 !important}.ui-widget.ui-datepicker .ui-state-default,.ui-widget.ui-datepicker .ui-widget-content .ui-state-default,.ui-widget.ui-datepicker .ui-widget-header .ui-state-default{border:1px solid rgba(0,0,0,0);background:inherit}.ui-widget.ui-datepicker .ui-widget-header{padding:7px;font-size:13px;border:none;background-color:var(--color-main-background);color:var(--color-main-text)}.ui-widget.ui-datepicker .ui-widget-header .ui-datepicker-title{line-height:1;font-weight:normal}.ui-widget.ui-datepicker .ui-widget-header .ui-icon{opacity:.5}.ui-widget.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-e{background:url("../img/actions/arrow-right.svg") center center no-repeat}.ui-widget.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-w{background:url("../img/actions/arrow-left.svg") center center no-repeat}.ui-widget.ui-datepicker .ui-widget-header .ui-state-hover .ui-icon{opacity:1}.ui-widget.ui-datepicker .ui-datepicker-calendar th{font-weight:normal;color:var(--color-text-lighter);opacity:.8;width:26px;padding:2px}.ui-widget.ui-datepicker .ui-datepicker-calendar tr:hover{background-color:inherit}.ui-widget.ui-datepicker .ui-datepicker-calendar td.ui-datepicker-today a:not(.ui-state-hover){background-color:var(--color-background-darker)}.ui-widget.ui-datepicker .ui-datepicker-calendar td.ui-datepicker-current-day a.ui-state-active,.ui-widget.ui-datepicker .ui-datepicker-calendar td .ui-state-hover,.ui-widget.ui-datepicker .ui-datepicker-calendar td .ui-state-focus{background-color:var(--color-primary);color:var(--color-primary-text);font-weight:bold}.ui-widget.ui-datepicker .ui-datepicker-calendar td.ui-datepicker-week-end:not(.ui-state-disabled) :not(.ui-state-hover),.ui-widget.ui-datepicker .ui-datepicker-calendar td .ui-priority-secondary:not(.ui-state-hover){color:var(--color-text-lighter);opacity:.8}.ui-datepicker-prev,.ui-datepicker-next{border:var(--color-border-dark);background:var(--color-main-background)}.ui-widget.ui-timepicker{margin-top:10px !important;width:auto !important;border-radius:var(--border-radius);z-index:1600 !important}.ui-widget.ui-timepicker .ui-widget-content{border:none !important}.ui-widget.ui-timepicker .ui-state-default,.ui-widget.ui-timepicker .ui-widget-content .ui-state-default,.ui-widget.ui-timepicker .ui-widget-header .ui-state-default{border:1px solid rgba(0,0,0,0);background:inherit}.ui-widget.ui-timepicker .ui-widget-header{padding:7px;font-size:13px;border:none;background-color:var(--color-main-background);color:var(--color-main-text)}.ui-widget.ui-timepicker .ui-widget-header .ui-timepicker-title{line-height:1;font-weight:normal}.ui-widget.ui-timepicker table.ui-timepicker tr .ui-timepicker-hour-cell:first-child{margin-left:30px}.ui-widget.ui-timepicker .ui-timepicker-table th{font-weight:normal;color:var(--color-text-lighter);opacity:.8}.ui-widget.ui-timepicker .ui-timepicker-table th.periods{padding:0;width:30px;line-height:30px}.ui-widget.ui-timepicker .ui-timepicker-table tr:hover{background-color:inherit}.ui-widget.ui-timepicker .ui-timepicker-table td.ui-timepicker-hour-cell a.ui-state-active,.ui-widget.ui-timepicker .ui-timepicker-table td.ui-timepicker-minute-cell a.ui-state-active,.ui-widget.ui-timepicker .ui-timepicker-table td .ui-state-hover,.ui-widget.ui-timepicker .ui-timepicker-table td .ui-state-focus{background-color:var(--color-primary);color:var(--color-primary-text);font-weight:bold}.ui-widget.ui-timepicker .ui-timepicker-table td.ui-timepicker-minutes:not(.ui-state-hover){color:var(--color-text-lighter)}.ui-widget.ui-timepicker .ui-timepicker-table td.ui-timepicker-hours{border-right:1px solid var(--color-border)}.ui-widget.ui-datepicker .ui-datepicker-calendar tr,.ui-widget.ui-timepicker table.ui-timepicker tr{display:flex;flex-wrap:nowrap;justify-content:space-between}.ui-widget.ui-datepicker .ui-datepicker-calendar tr td,.ui-widget.ui-timepicker table.ui-timepicker tr td{flex:1 1 auto;margin:0;padding:2px;height:26px;width:26px;display:flex;align-items:center;justify-content:center}.ui-widget.ui-datepicker .ui-datepicker-calendar tr td>*,.ui-widget.ui-timepicker table.ui-timepicker tr td>*{border-radius:50%;text-align:center;font-weight:normal;color:var(--color-main-text);display:block;line-height:18px;width:18px;height:18px;padding:3px;font-size:.9em}#oc-dialog-filepicker-content{position:relative;display:flex;flex-direction:column}#oc-dialog-filepicker-content .dirtree{flex-wrap:wrap;box-sizing:border-box;padding-right:140px;display:flex}#oc-dialog-filepicker-content .dirtree div:first-child a{font-size:0px;background-image:var(--icon-home-dark);background-repeat:no-repeat;background-position:left center}#oc-dialog-filepicker-content .dirtree span:not(:last-child){cursor:pointer}#oc-dialog-filepicker-content .dirtree span:last-child{font-weight:bold}#oc-dialog-filepicker-content .dirtree span:not(:last-child)::after{content:">";padding:3px}#oc-dialog-filepicker-content #picker-showgridview{position:absolute;background-color:rgba(0,0,0,0);border:none;margin:0;padding:22px;opacity:.5;right:0;top:0}#oc-dialog-filepicker-content #picker-showgridview:hover,#oc-dialog-filepicker-content #picker-showgridview:active,#oc-dialog-filepicker-content #picker-showgridview:focus{box-shadow:0 0 0 2px var(--color-primary);opacity:1}#oc-dialog-filepicker-content .actions.creatable{flex-wrap:wrap;padding:0px;box-sizing:border-box;display:inline-flex;float:none;max-height:36px;max-width:36px;background-color:var(--color-background-dark);border:1px solid var(--color-border-dark);border-radius:var(--border-radius-pill);position:relative;left:15px;top:3px;order:1}#oc-dialog-filepicker-content .actions.creatable .icon.icon-add{background-image:var(--icon-add-dark);background-size:16px 16px;width:34px;height:34px;margin:0px;opacity:.5}#oc-dialog-filepicker-content .actions.creatable a{width:36px;padding:0px;position:static}#oc-dialog-filepicker-content .actions.creatable .menu{top:100%;margin-top:10px}#oc-dialog-filepicker-content .actions.creatable .menu form{display:flex;margin:10px}#oc-dialog-filepicker-content .filelist-container{box-sizing:border-box;display:inline-block;overflow-y:auto;flex:1;width:100%;overflow-x:hidden}#oc-dialog-filepicker-content .emptycontent{color:var(--color-text-maxcontrast);text-align:center;margin-top:80px;width:100%;display:none}#oc-dialog-filepicker-content .filelist{background-color:var(--color-main-background);width:100%}#oc-dialog-filepicker-content #picker-filestable.filelist{min-width:initial;margin-bottom:50px}#oc-dialog-filepicker-content #picker-filestable.filelist thead tr{border-bottom:1px solid var(--color-border);background-color:var(--color-main-background)}#oc-dialog-filepicker-content #picker-filestable.filelist thead tr th{width:80%;border:none}#oc-dialog-filepicker-content #picker-filestable.filelist th .columntitle{display:block;padding:15px;height:50px;box-sizing:border-box;-moz-box-sizing:border-box;vertical-align:middle}#oc-dialog-filepicker-content #picker-filestable.filelist th .columntitle.name{padding-left:5px;margin-left:50px}#oc-dialog-filepicker-content #picker-filestable.filelist th .sort-indicator{width:10px;height:8px;margin-left:5px;display:inline-block;vertical-align:text-bottom;opacity:.3}#oc-dialog-filepicker-content #picker-filestable.filelist .sort-indicator.hidden,#oc-dialog-filepicker-content #picker-filestable.filelist th:hover .sort-indicator.hidden,#oc-dialog-filepicker-content #picker-filestable.filelist th:focus .sort-indicator.hidden{visibility:hidden}#oc-dialog-filepicker-content #picker-filestable.filelist th:hover .sort-indicator.hidden,#oc-dialog-filepicker-content #picker-filestable.filelist th:focus .sort-indicator.hidden{visibility:visible}#oc-dialog-filepicker-content #picker-filestable.filelist td{padding:14px;border-bottom:1px solid var(--color-border)}#oc-dialog-filepicker-content #picker-filestable.filelist tr:last-child td{border-bottom:none}#oc-dialog-filepicker-content #picker-filestable.filelist .filename{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;background-size:32px;background-repeat:no-repeat;padding-left:51px;background-position:7px 7px;cursor:pointer;max-width:0}#oc-dialog-filepicker-content #picker-filestable.filelist .filename .filename-parts{display:flex}#oc-dialog-filepicker-content #picker-filestable.filelist .filename .filename-parts__first{overflow:hidden;white-space:pre;text-overflow:ellipsis}#oc-dialog-filepicker-content #picker-filestable.filelist .filename .filename-parts__last{white-space:pre}#oc-dialog-filepicker-content #picker-filestable.filelist .filesize,#oc-dialog-filepicker-content #picker-filestable.filelist .date{width:80px}#oc-dialog-filepicker-content #picker-filestable.filelist .filesize{text-align:right}#oc-dialog-filepicker-content #picker-filestable.filelist.view-grid{display:flex;flex-direction:column}#oc-dialog-filepicker-content #picker-filestable.filelist.view-grid tbody{display:grid;grid-template-columns:repeat(auto-fill, 120px);justify-content:space-around;row-gap:15px;margin:15px 0}#oc-dialog-filepicker-content #picker-filestable.filelist.view-grid tbody tr{display:block;position:relative;border-radius:var(--border-radius);padding:10px;display:flex;flex-direction:column;width:100px}#oc-dialog-filepicker-content #picker-filestable.filelist.view-grid tbody tr td{border:none;padding:0;text-align:center;border-radius:var(--border-radius)}#oc-dialog-filepicker-content #picker-filestable.filelist.view-grid tbody tr td.filename{padding:100px 0 0 0;background-position:center top;background-size:contain;line-height:30px;max-width:none}#oc-dialog-filepicker-content #picker-filestable.filelist.view-grid tbody tr td.filename .filename-parts{justify-content:center}#oc-dialog-filepicker-content #picker-filestable.filelist.view-grid tbody tr td.filesize{line-height:10px;width:100%}#oc-dialog-filepicker-content #picker-filestable.filelist.view-grid tbody tr td.date{display:none}#oc-dialog-filepicker-content .filepicker_element_selected{background-color:var(--color-background-darker)}.ui-dialog{position:fixed !important}span.ui-icon{float:left;margin:3px 7px 30px 0}.extra-data{padding-right:5px !important}#tagsdialog .content{width:100%;height:280px}#tagsdialog .scrollarea{overflow:auto;border:1px solid var(--color-background-darker);width:100%;height:240px}#tagsdialog .bottombuttons{width:100%;height:30px}#tagsdialog .bottombuttons *{float:left}#tagsdialog .taglist li{background:var(--color-background-dark);padding:.3em .8em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-webkit-transition:background-color 500ms;transition:background-color 500ms}#tagsdialog .taglist li:hover,#tagsdialog .taglist li:active{background:var(--color-background-darker)}#tagsdialog .addinput{width:90%;clear:both}.breadcrumb{display:inline-flex;height:50px}li.crumb{display:inline-flex;background-image:url("../img/breadcrumb.svg?v=1");background-repeat:no-repeat;background-position:right center;height:44px;background-size:auto 24px;flex:0 0 auto;order:1;padding-right:7px}li.crumb.crumbmenu{order:2;position:relative}li.crumb.crumbmenu a{opacity:.5}li.crumb.crumbmenu.canDropChildren .popovermenu,li.crumb.crumbmenu.canDrop .popovermenu{display:block}li.crumb.crumbmenu .popovermenu{top:100%;margin-right:3px}li.crumb.crumbmenu .popovermenu ul{max-height:345px;overflow-y:auto;overflow-x:hidden;padding-right:5px}li.crumb.crumbmenu .popovermenu ul li.canDrop span:first-child{background-image:url("../img/filetypes/folder-drag-accept.svg?v=1") !important}li.crumb.crumbmenu .popovermenu .in-breadcrumb{display:none}li.crumb.hidden{display:none}li.crumb.hidden~.crumb{order:3}li.crumb>a,li.crumb>span{position:relative;padding:12px;opacity:.5;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;flex:0 0 auto;max-width:200px}li.crumb>a.icon-home,li.crumb>a.icon-delete,li.crumb>span.icon-home,li.crumb>span.icon-delete{text-indent:-9999px}li.crumb>a[class^=icon-]{padding:0;width:44px}li.crumb:last-child{font-weight:bold;margin-right:10px}li.crumb:last-child a~span{padding-left:0}li.crumb:hover,li.crumb:focus,li.crumb a:focus,li.crumb:active{opacity:1}li.crumb:hover>a,li.crumb:hover>span,li.crumb:focus>a,li.crumb:focus>span,li.crumb a:focus>a,li.crumb a:focus>span,li.crumb:active>a,li.crumb:active>span{opacity:.7}.appear{opacity:1;-webkit-transition:opacity 500ms ease 0s;-moz-transition:opacity 500ms ease 0s;-ms-transition:opacity 500ms ease 0s;-o-transition:opacity 500ms ease 0s;transition:opacity 500ms ease 0s}.appear.transparent{opacity:0}fieldset.warning legend,fieldset.update legend{top:18px;position:relative}fieldset.warning legend+p,fieldset.update legend+p{margin-top:12px}@-ms-viewport{width:device-width}.hiddenuploadfield{display:none;width:0;height:0;opacity:0}input,textarea,select,button,div[contenteditable=true],div[contenteditable=false]{font-family:var(--font-face)}.select2-container-multi .select2-choices .select2-search-field input,.select2-search input,.ui-widget{font-family:var(--font-face) !important}.select2-container.select2-drop-above .select2-choice{background-image:unset !important}select,button:not(.button-vue,[class^=vs__]),input,textarea,div[contenteditable=true],div[contenteditable=false]{width:130px;min-height:36px;box-sizing:border-box}input:not([type=range]){outline:none}div.select2-drop .select2-search input,input[type=submit],input[type=button],input[type=reset],button:not(.button-vue,[class^=vs__]),.button,.pager li a{margin:3px 3px 3px 0;padding:7px 14px;font-size:13px;background-color:var(--color-main-background);color:var(--color-main-text);border:1px solid var(--color-border-dark);font-size:var(--default-font-size);outline:none;border-radius:var(--border-radius);cursor:text}div.select2-drop .select2-search input:not(:disabled):not(.primary):hover,div.select2-drop .select2-search input:not(:disabled):not(.primary):focus,div.select2-drop .select2-search input:not(:disabled):not(.primary).active,input[type=submit]:not(:disabled):not(.primary):hover,input[type=submit]:not(:disabled):not(.primary):focus,input[type=submit]:not(:disabled):not(.primary).active,input[type=button]:not(:disabled):not(.primary):hover,input[type=button]:not(:disabled):not(.primary):focus,input[type=button]:not(:disabled):not(.primary).active,input[type=reset]:not(:disabled):not(.primary):hover,input[type=reset]:not(:disabled):not(.primary):focus,input[type=reset]:not(:disabled):not(.primary).active,button:not(.button-vue,[class^=vs__]):not(:disabled):not(.primary):hover,button:not(.button-vue,[class^=vs__]):not(:disabled):not(.primary):focus,button:not(.button-vue,[class^=vs__]):not(:disabled):not(.primary).active,.button:not(:disabled):not(.primary):hover,.button:not(:disabled):not(.primary):focus,.button:not(:disabled):not(.primary).active,.pager li a:not(:disabled):not(.primary):hover,.pager li a:not(:disabled):not(.primary):focus,.pager li a:not(:disabled):not(.primary).active{border-color:var(--color-primary-element);outline:none}div.select2-drop .select2-search input:not(:disabled):not(.primary):active,input[type=submit]:not(:disabled):not(.primary):active,input[type=button]:not(:disabled):not(.primary):active,input[type=reset]:not(:disabled):not(.primary):active,button:not(.button-vue,[class^=vs__]):not(:disabled):not(.primary):active,.button:not(:disabled):not(.primary):active,.pager li a:not(:disabled):not(.primary):active{outline:none;background-color:var(--color-main-background);color:var(--color-text-light)}div.select2-drop .select2-search input:not(:disabled):not(.primary):focus-visible,input[type=submit]:not(:disabled):not(.primary):focus-visible,input[type=button]:not(:disabled):not(.primary):focus-visible,input[type=reset]:not(:disabled):not(.primary):focus-visible,button:not(.button-vue,[class^=vs__]):not(:disabled):not(.primary):focus-visible,.button:not(:disabled):not(.primary):focus-visible,.pager li a:not(:disabled):not(.primary):focus-visible{box-shadow:0 0 0 2px var(--color-primary)}div.select2-drop .select2-search input:disabled,input[type=submit]:disabled,input[type=button]:disabled,input[type=reset]:disabled,button:not(.button-vue,[class^=vs__]):disabled,.button:disabled,.pager li a:disabled{background-color:var(--color-background-dark);color:var(--color-main-text);cursor:default;opacity:.5}div.select2-drop .select2-search input:required,input[type=submit]:required,input[type=button]:required,input[type=reset]:required,button:not(.button-vue,[class^=vs__]):required,.button:required,.pager li a:required{box-shadow:none}div.select2-drop .select2-search input:user-invalid,input[type=submit]:user-invalid,input[type=button]:user-invalid,input[type=reset]:user-invalid,button:not(.button-vue,[class^=vs__]):user-invalid,.button:user-invalid,.pager li a:user-invalid{box-shadow:0 0 0 2px var(--color-error) !important}div.select2-drop .select2-search input.primary,input[type=submit].primary,input[type=button].primary,input[type=reset].primary,button:not(.button-vue,[class^=vs__]).primary,.button.primary,.pager li a.primary{background-color:var(--color-primary-element);border-color:var(--color-primary-element);color:var(--color-primary-text);cursor:pointer}#body-login :not(.body-login-container) div.select2-drop .select2-search input.primary,#header div.select2-drop .select2-search input.primary,#body-login :not(.body-login-container) input[type=submit].primary,#header input[type=submit].primary,#body-login :not(.body-login-container) input[type=button].primary,#header input[type=button].primary,#body-login :not(.body-login-container) input[type=reset].primary,#header input[type=reset].primary,#body-login :not(.body-login-container) button:not(.button-vue,[class^=vs__]).primary,#header button:not(.button-vue,[class^=vs__]).primary,#body-login :not(.body-login-container) .button.primary,#header .button.primary,#body-login :not(.body-login-container) .pager li a.primary,#header .pager li a.primary{border-color:var(--color-primary-text)}div.select2-drop .select2-search input.primary:not(:disabled):hover,div.select2-drop .select2-search input.primary:not(:disabled):focus,div.select2-drop .select2-search input.primary:not(:disabled):active,input[type=submit].primary:not(:disabled):hover,input[type=submit].primary:not(:disabled):focus,input[type=submit].primary:not(:disabled):active,input[type=button].primary:not(:disabled):hover,input[type=button].primary:not(:disabled):focus,input[type=button].primary:not(:disabled):active,input[type=reset].primary:not(:disabled):hover,input[type=reset].primary:not(:disabled):focus,input[type=reset].primary:not(:disabled):active,button:not(.button-vue,[class^=vs__]).primary:not(:disabled):hover,button:not(.button-vue,[class^=vs__]).primary:not(:disabled):focus,button:not(.button-vue,[class^=vs__]).primary:not(:disabled):active,.button.primary:not(:disabled):hover,.button.primary:not(:disabled):focus,.button.primary:not(:disabled):active,.pager li a.primary:not(:disabled):hover,.pager li a.primary:not(:disabled):focus,.pager li a.primary:not(:disabled):active{background-color:var(--color-primary-element-hover);border-color:var(--color-primary-element-hover)}div.select2-drop .select2-search input.primary:not(:disabled):focus,div.select2-drop .select2-search input.primary:not(:disabled):focus-visible,input[type=submit].primary:not(:disabled):focus,input[type=submit].primary:not(:disabled):focus-visible,input[type=button].primary:not(:disabled):focus,input[type=button].primary:not(:disabled):focus-visible,input[type=reset].primary:not(:disabled):focus,input[type=reset].primary:not(:disabled):focus-visible,button:not(.button-vue,[class^=vs__]).primary:not(:disabled):focus,button:not(.button-vue,[class^=vs__]).primary:not(:disabled):focus-visible,.button.primary:not(:disabled):focus,.button.primary:not(:disabled):focus-visible,.pager li a.primary:not(:disabled):focus,.pager li a.primary:not(:disabled):focus-visible{box-shadow:0 0 0 2px var(--color-main-text)}div.select2-drop .select2-search input.primary:not(:disabled):active,input[type=submit].primary:not(:disabled):active,input[type=button].primary:not(:disabled):active,input[type=reset].primary:not(:disabled):active,button:not(.button-vue,[class^=vs__]).primary:not(:disabled):active,.button.primary:not(:disabled):active,.pager li a.primary:not(:disabled):active{color:var(--color-primary-text-dark)}div.select2-drop .select2-search input.primary:disabled,input[type=submit].primary:disabled,input[type=button].primary:disabled,input[type=reset].primary:disabled,button:not(.button-vue,[class^=vs__]).primary:disabled,.button.primary:disabled,.pager li a.primary:disabled{background-color:var(--color-primary-element);color:var(--color-primary-text-dark);cursor:default}div[contenteditable=false]{margin:3px 3px 3px 0;padding:7px 6px;font-size:13px;background-color:var(--color-main-background);color:var(--color-text-lighter);border:1px solid var(--color-background-darker);outline:none;border-radius:var(--border-radius);background-color:var(--color-background-dark);color:var(--color-text-lighter);cursor:default;opacity:.5}input:not([type=radio]):not([type=checkbox]):not([type=range]):not([type=submit]):not([type=button]):not([type=reset]):not([type=color]):not([type=file]):not([type=image]){-webkit-appearance:textfield;-moz-appearance:textfield;height:36px}input[type=radio],input[type=checkbox],input[type=file],input[type=image]{height:auto;width:auto}input[type=color]{margin:3px;padding:0 2px;min-height:30px;width:40px;cursor:pointer}input[type=hidden]{height:0;width:0}input[type=time]{width:initial}select,button:not(.button-vue,[class^=vs__]),.button,input[type=button],input[type=submit],input[type=reset]{padding:8px 14px;font-size:var(--default-font-size);width:auto;min-height:36px;cursor:pointer;box-sizing:border-box;background-color:var(--color-background-dark)}select:disabled,button:not(.button-vue,[class^=vs__]):disabled,.button:disabled,input[type=button]:disabled,input[type=submit]:disabled,input[type=reset]:disabled{cursor:default}input:not([type=range],.input-field__input,[type=submit],[type=button],[type=reset],.multiselect__input,.select2-input,.action-input__input,[class^=vs__]),select,div[contenteditable=true],textarea{margin:3px 3px 3px 0;padding:0 12px;font-size:var(--default-font-size);background-color:var(--color-main-background);color:var(--color-main-text);border:2px solid var(--color-border-maxcontrast);height:36px;outline:none;border-radius:var(--border-radius-large);text-overflow:ellipsis;cursor:pointer}input:not([type=range],.input-field__input,[type=submit],[type=button],[type=reset],.multiselect__input,.select2-input,.action-input__input,[class^=vs__]):not(:disabled):hover,input:not([type=range],.input-field__input,[type=submit],[type=button],[type=reset],.multiselect__input,.select2-input,.action-input__input,[class^=vs__]):not(:disabled):focus,input:not([type=range],.input-field__input,[type=submit],[type=button],[type=reset],.multiselect__input,.select2-input,.action-input__input,[class^=vs__]):not(:disabled):active,select:not(:disabled):hover,select:not(:disabled):focus,select:not(:disabled):active,div[contenteditable=true]:not(:disabled):hover,div[contenteditable=true]:not(:disabled):focus,div[contenteditable=true]:not(:disabled):active,textarea:not(:disabled):hover,textarea:not(:disabled):focus,textarea:not(:disabled):active{border-color:var(--color-primary-element)}input:not([type=range],.input-field__input,[type=submit],[type=button],[type=reset],.multiselect__input,.select2-input,.action-input__input,[class^=vs__]):not(:disabled):focus,select:not(:disabled):focus,div[contenteditable=true]:not(:disabled):focus,textarea:not(:disabled):focus{cursor:text}.multiselect__input,.select2-input{background-color:var(--color-main-background);color:var(--color-main-text)}textarea,div[contenteditable=true]{padding:12px;height:auto}select{background:var(--icon-triangle-s-dark) no-repeat right 8px center;appearance:none;background-color:var(--color-main-background);padding-right:28px !important}select *,button:not(.button-vue,[class^=vs__]) *,.button *{cursor:pointer}select:disabled *,button:not(.button-vue,[class^=vs__]):disabled *,.button:disabled *{cursor:default}button:not(.button-vue,[class^=vs__]),.button,input[type=button],input[type=submit],input[type=reset]{font-weight:bold;border-radius:var(--border-radius-pill)}button:not(.button-vue,[class^=vs__])::-moz-focus-inner,.button::-moz-focus-inner,input[type=button]::-moz-focus-inner,input[type=submit]::-moz-focus-inner,input[type=reset]::-moz-focus-inner{border:0}button:not(.button-vue,[class^=vs__]).error,.button.error,input[type=button].error,input[type=submit].error,input[type=reset].error{background-color:var(--color-error) !important;border-color:var(--color-error) !important;color:#fff !important}button:not(.button-vue,.action-button,[class^=vs__])>span[class^=icon-],button:not(.button-vue,.action-button,[class^=vs__])>span[class*=" icon-"],.button>span[class^=icon-],.button>span[class*=" icon-"]{display:inline-block;vertical-align:text-bottom;opacity:.5}input[type=text]+.icon-confirm,input[type=password]+.icon-confirm,input[type=email]+.icon-confirm{margin-left:-13px !important;border-left-color:rgba(0,0,0,0) !important;border-radius:0 var(--border-radius-large) var(--border-radius-large) 0 !important;border-width:2px;background-clip:padding-box;background-color:var(--color-main-background) !important;opacity:1;height:36px;width:36px;padding:7px 6px;cursor:pointer;margin-right:0}input[type=text]+.icon-confirm:disabled,input[type=password]+.icon-confirm:disabled,input[type=email]+.icon-confirm:disabled{cursor:default;background-image:var(--icon-confirm-fade-dark)}input[type=text]:not(:active):not(:hover):not(:focus):invalid+.icon-confirm,input[type=password]:not(:active):not(:hover):not(:focus):invalid+.icon-confirm,input[type=email]:not(:active):not(:hover):not(:focus):invalid+.icon-confirm{border-color:var(--color-error)}input[type=text]:not(:active):not(:hover):not(:focus)+.icon-confirm:active,input[type=text]:not(:active):not(:hover):not(:focus)+.icon-confirm:hover,input[type=text]:not(:active):not(:hover):not(:focus)+.icon-confirm:focus,input[type=password]:not(:active):not(:hover):not(:focus)+.icon-confirm:active,input[type=password]:not(:active):not(:hover):not(:focus)+.icon-confirm:hover,input[type=password]:not(:active):not(:hover):not(:focus)+.icon-confirm:focus,input[type=email]:not(:active):not(:hover):not(:focus)+.icon-confirm:active,input[type=email]:not(:active):not(:hover):not(:focus)+.icon-confirm:hover,input[type=email]:not(:active):not(:hover):not(:focus)+.icon-confirm:focus{border-color:var(--color-primary-element) !important;border-radius:var(--border-radius) !important}input[type=text]:not(:active):not(:hover):not(:focus)+.icon-confirm:active:disabled,input[type=text]:not(:active):not(:hover):not(:focus)+.icon-confirm:hover:disabled,input[type=text]:not(:active):not(:hover):not(:focus)+.icon-confirm:focus:disabled,input[type=password]:not(:active):not(:hover):not(:focus)+.icon-confirm:active:disabled,input[type=password]:not(:active):not(:hover):not(:focus)+.icon-confirm:hover:disabled,input[type=password]:not(:active):not(:hover):not(:focus)+.icon-confirm:focus:disabled,input[type=email]:not(:active):not(:hover):not(:focus)+.icon-confirm:active:disabled,input[type=email]:not(:active):not(:hover):not(:focus)+.icon-confirm:hover:disabled,input[type=email]:not(:active):not(:hover):not(:focus)+.icon-confirm:focus:disabled{border-color:var(--color-background-darker) !important}input[type=text]:active+.icon-confirm,input[type=text]:hover+.icon-confirm,input[type=text]:focus+.icon-confirm,input[type=password]:active+.icon-confirm,input[type=password]:hover+.icon-confirm,input[type=password]:focus+.icon-confirm,input[type=email]:active+.icon-confirm,input[type=email]:hover+.icon-confirm,input[type=email]:focus+.icon-confirm{border-color:var(--color-primary-element) !important;border-left-color:rgba(0,0,0,0) !important;z-index:2}button img,.button img{cursor:pointer}select,.button.multiselect{font-weight:normal}input[type=checkbox].radio,input[type=checkbox].checkbox,input[type=radio].radio,input[type=radio].checkbox{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}input[type=checkbox].radio+label,input[type=checkbox].checkbox+label,input[type=radio].radio+label,input[type=radio].checkbox+label{user-select:none}input[type=checkbox].radio:disabled+label,input[type=checkbox].radio:disabled+label:before,input[type=checkbox].checkbox:disabled+label,input[type=checkbox].checkbox:disabled+label:before,input[type=radio].radio:disabled+label,input[type=radio].radio:disabled+label:before,input[type=radio].checkbox:disabled+label,input[type=radio].checkbox:disabled+label:before{cursor:default}input[type=checkbox].radio+label:before,input[type=checkbox].checkbox+label:before,input[type=radio].radio+label:before,input[type=radio].checkbox+label:before{content:"";display:inline-block;height:14px;width:14px;vertical-align:middle;border-radius:50%;margin:0 6px 3px 3px;border:1px solid var(--color-text-lighter)}input[type=checkbox].radio:not(:disabled):not(:checked)+label:hover:before,input[type=checkbox].radio:focus+label:before,input[type=checkbox].checkbox:not(:disabled):not(:checked)+label:hover:before,input[type=checkbox].checkbox:focus+label:before,input[type=radio].radio:not(:disabled):not(:checked)+label:hover:before,input[type=radio].radio:focus+label:before,input[type=radio].checkbox:not(:disabled):not(:checked)+label:hover:before,input[type=radio].checkbox:focus+label:before{border-color:var(--color-primary-element)}input[type=checkbox].radio:focus-visible+label,input[type=checkbox].checkbox:focus-visible+label,input[type=radio].radio:focus-visible+label,input[type=radio].checkbox:focus-visible+label{outline-style:solid;outline-color:var(--color-main-text);outline-width:1px;outline-offset:2px}input[type=checkbox].radio:checked+label:before,input[type=checkbox].radio.checkbox:indeterminate+label:before,input[type=checkbox].checkbox:checked+label:before,input[type=checkbox].checkbox.checkbox:indeterminate+label:before,input[type=radio].radio:checked+label:before,input[type=radio].radio.checkbox:indeterminate+label:before,input[type=radio].checkbox:checked+label:before,input[type=radio].checkbox.checkbox:indeterminate+label:before{box-shadow:inset 0px 0px 0px 2px var(--color-main-background);background-color:var(--color-primary-element);border-color:var(--color-primary-element)}input[type=checkbox].radio:disabled+label:before,input[type=checkbox].checkbox:disabled+label:before,input[type=radio].radio:disabled+label:before,input[type=radio].checkbox:disabled+label:before{border:1px solid var(--color-text-lighter);background-color:var(--color-text-maxcontrast) !important}input[type=checkbox].radio:checked:disabled+label:before,input[type=checkbox].checkbox:checked:disabled+label:before,input[type=radio].radio:checked:disabled+label:before,input[type=radio].checkbox:checked:disabled+label:before{background-color:var(--color-text-maxcontrast)}input[type=checkbox].radio+label~em,input[type=checkbox].checkbox+label~em,input[type=radio].radio+label~em,input[type=radio].checkbox+label~em{display:inline-block;margin-left:25px}input[type=checkbox].radio+label~em:last-of-type,input[type=checkbox].checkbox+label~em:last-of-type,input[type=radio].radio+label~em:last-of-type,input[type=radio].checkbox+label~em:last-of-type{margin-bottom:14px}input[type=checkbox].checkbox+label:before,input[type=radio].checkbox+label:before{border-radius:1px;height:14px;width:14px;box-shadow:none !important;background-position:center}input[type=checkbox].checkbox:checked+label:before,input[type=radio].checkbox:checked+label:before{background-image:url("../img/actions/checkbox-mark.svg")}input[type=checkbox].checkbox:indeterminate+label:before,input[type=radio].checkbox:indeterminate+label:before{background-image:url("../img/actions/checkbox-mixed.svg")}input[type=checkbox].radio--white+label:before,input[type=checkbox].radio--white:focus+label:before,input[type=checkbox].checkbox--white+label:before,input[type=checkbox].checkbox--white:focus+label:before,input[type=radio].radio--white+label:before,input[type=radio].radio--white:focus+label:before,input[type=radio].checkbox--white+label:before,input[type=radio].checkbox--white:focus+label:before{border-color:#bababa}input[type=checkbox].radio--white:not(:disabled):not(:checked)+label:hover:before,input[type=checkbox].checkbox--white:not(:disabled):not(:checked)+label:hover:before,input[type=radio].radio--white:not(:disabled):not(:checked)+label:hover:before,input[type=radio].checkbox--white:not(:disabled):not(:checked)+label:hover:before{border-color:#fff}input[type=checkbox].radio--white:checked+label:before,input[type=checkbox].checkbox--white:checked+label:before,input[type=radio].radio--white:checked+label:before,input[type=radio].checkbox--white:checked+label:before{box-shadow:inset 0px 0px 0px 2px var(--color-main-background);background-color:#dbdbdb;border-color:#dbdbdb}input[type=checkbox].radio--white:disabled+label:before,input[type=checkbox].checkbox--white:disabled+label:before,input[type=radio].radio--white:disabled+label:before,input[type=radio].checkbox--white:disabled+label:before{background-color:#bababa !important;border-color:rgba(255,255,255,.4) !important}input[type=checkbox].radio--white:checked:disabled+label:before,input[type=checkbox].checkbox--white:checked:disabled+label:before,input[type=radio].radio--white:checked:disabled+label:before,input[type=radio].checkbox--white:checked:disabled+label:before{box-shadow:inset 0px 0px 0px 2px var(--color-main-background);border-color:rgba(255,255,255,.4) !important;background-color:#bababa}input[type=checkbox].checkbox--white:checked+label:before,input[type=checkbox].checkbox--white:indeterminate+label:before,input[type=radio].checkbox--white:checked+label:before,input[type=radio].checkbox--white:indeterminate+label:before{background-color:rgba(0,0,0,0) !important;border-color:#fff !important;background-image:url("../img/actions/checkbox-mark-white.svg")}input[type=checkbox].checkbox--white:indeterminate+label:before,input[type=radio].checkbox--white:indeterminate+label:before{background-image:url("../img/actions/checkbox-mixed-white.svg")}input[type=checkbox].checkbox--white:disabled+label:before,input[type=radio].checkbox--white:disabled+label:before{opacity:.7}div.select2-drop{margin-top:-2px;background-color:var(--color-main-background)}div.select2-drop.select2-drop-active{border-color:var(--color-border-dark)}div.select2-drop .avatar{display:inline-block;margin-right:8px;vertical-align:middle}div.select2-drop .avatar img{cursor:pointer}div.select2-drop .select2-search input{min-height:auto;background:var(--icon-search-dark) no-repeat right center !important;background-origin:content-box !important}div.select2-drop .select2-results{max-height:250px;margin:0;padding:0}div.select2-drop .select2-results .select2-result-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}div.select2-drop .select2-results .select2-result-label span{cursor:pointer}div.select2-drop .select2-results .select2-result-label span em{cursor:inherit;background:unset}div.select2-drop .select2-results .select2-result,div.select2-drop .select2-results .select2-no-results,div.select2-drop .select2-results .select2-searching{position:relative;display:list-item;padding:12px;background-color:rgba(0,0,0,0);cursor:pointer;color:var(--color-text-lighter)}div.select2-drop .select2-results .select2-result.select2-selected{background-color:var(--color-background-dark)}div.select2-drop .select2-results .select2-highlighted{background-color:var(--color-background-dark);color:var(--color-main-text)}.select2-chosen .avatar,.select2-chosen .avatar img,#select2-drop .avatar,#select2-drop .avatar img{cursor:pointer}div.select2-container-multi .select2-choices,div.select2-container-multi.select2-container-active .select2-choices{box-shadow:none;white-space:nowrap;text-overflow:ellipsis;background:var(--color-main-background);color:var(--color-text-lighter) !important;box-sizing:content-box;border-radius:var(--border-radius-large);border:2px solid var(--color-border-dark);margin:0;padding:6px;min-height:44px}div.select2-container-multi .select2-choices:focus-within,div.select2-container-multi.select2-container-active .select2-choices:focus-within{border-color:var(--color-primary)}div.select2-container-multi .select2-choices .select2-search-choice,div.select2-container-multi.select2-container-active .select2-choices .select2-search-choice{line-height:20px;padding-left:5px}div.select2-container-multi .select2-choices .select2-search-choice.select2-search-choice-focus,div.select2-container-multi .select2-choices .select2-search-choice:hover,div.select2-container-multi .select2-choices .select2-search-choice:active,div.select2-container-multi .select2-choices .select2-search-choice,div.select2-container-multi.select2-container-active .select2-choices .select2-search-choice.select2-search-choice-focus,div.select2-container-multi.select2-container-active .select2-choices .select2-search-choice:hover,div.select2-container-multi.select2-container-active .select2-choices .select2-search-choice:active,div.select2-container-multi.select2-container-active .select2-choices .select2-search-choice{background-image:none;background-color:var(--color-main-background);color:var(--color-text-lighter);border:1px solid var(--color-border-dark)}div.select2-container-multi .select2-choices .select2-search-choice .select2-search-choice-close,div.select2-container-multi.select2-container-active .select2-choices .select2-search-choice .select2-search-choice-close{display:none}div.select2-container-multi .select2-choices .select2-search-field input,div.select2-container-multi.select2-container-active .select2-choices .select2-search-field input{line-height:20px;min-height:28px;max-height:28px;color:var(--color-main-text)}div.select2-container-multi .select2-choices .select2-search-field input.select2-active,div.select2-container-multi.select2-container-active .select2-choices .select2-search-field input.select2-active{background:none !important}div.select2-container{margin:3px 3px 3px 0}div.select2-container.select2-container-multi .select2-choices{display:flex;flex-wrap:wrap}div.select2-container.select2-container-multi .select2-choices li{float:none}div.select2-container a.select2-choice{box-shadow:none;white-space:nowrap;text-overflow:ellipsis;background:var(--color-main-background);color:var(--color-text-lighter) !important;box-sizing:content-box;border-radius:var(--border-radius-large);border:2px solid var(--color-border-dark);margin:0;padding:6px 12px;min-height:44px}div.select2-container a.select2-choice:focus-within{border-color:var(--color-primary)}div.select2-container a.select2-choice .select2-search-choice{line-height:20px;padding-left:5px;background-image:none;background-color:var(--color-background-dark);border-color:var(--color-background-dark)}div.select2-container a.select2-choice .select2-search-choice .select2-search-choice-close{display:none}div.select2-container a.select2-choice .select2-search-choice.select2-search-choice-focus,div.select2-container a.select2-choice .select2-search-choice:hover{background-color:var(--color-border);border-color:var(--color-border)}div.select2-container a.select2-choice .select2-arrow{background:none;border-radius:0;border:none}div.select2-container a.select2-choice .select2-arrow b{background:var(--icon-triangle-s-dark) no-repeat center !important;opacity:.5}div.select2-container a.select2-choice:hover .select2-arrow b,div.select2-container a.select2-choice:focus .select2-arrow b,div.select2-container a.select2-choice:active .select2-arrow b{opacity:.7}div.select2-container a.select2-choice .select2-search-field input{line-height:20px}.v-select{margin:3px 3px 3px 0;display:inline-block}.v-select .dropdown-toggle{display:flex !important;flex-wrap:wrap}.v-select .dropdown-toggle .selected-tag{line-height:20px;padding-left:5px;background-image:none;background-color:var(--color-main-background);color:var(--color-text-lighter);border:1px solid var(--color-border-dark);display:inline-flex;align-items:center}.v-select .dropdown-toggle .selected-tag .close{margin-left:3px}.v-select .dropdown-menu{padding:0}.v-select .dropdown-menu li{padding:5px;position:relative;display:list-item;background-color:rgba(0,0,0,0);cursor:pointer;color:var(--color-text-lighter)}.v-select .dropdown-menu li a{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;height:25px;padding:3px 7px 4px 2px;margin:0;cursor:pointer;min-height:1em;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:inline-flex;align-items:center;background-color:rgba(0,0,0,0) !important;color:inherit !important}.v-select .dropdown-menu li a::before{content:" ";background-image:var(--icon-checkmark-dark);background-repeat:no-repeat;background-position:center;min-width:16px;min-height:16px;display:block;opacity:.5;margin-right:5px;visibility:hidden}.v-select .dropdown-menu li.highlight{color:var(--color-main-text)}.v-select .dropdown-menu li.active>a{background-color:var(--color-background-dark);color:var(--color-main-text)}.v-select .dropdown-menu li.active>a::before{visibility:visible}progress:not(.vue){display:block;width:100%;padding:0;border:0 none;background-color:var(--color-background-dark);border-radius:var(--border-radius);flex-basis:100%;height:5px;overflow:hidden}progress:not(.vue).warn::-moz-progress-bar{background:var(--color-error)}progress:not(.vue).warn::-webkit-progress-value{background:var(--color-error)}progress:not(.vue)::-webkit-progress-bar{background:rgba(0,0,0,0)}progress:not(.vue)::-moz-progress-bar{border-radius:var(--border-radius);background:var(--color-primary);transition:250ms all ease-in-out}progress:not(.vue)::-webkit-progress-value{border-radius:var(--border-radius);background:var(--color-primary);transition:250ms all ease-in-out}@keyframes shake{10%,90%{transform:translate(-1px)}20%,80%{transform:translate(2px)}30%,50%,70%{transform:translate(-4px)}40%,60%{transform:translate(4px)}}.shake{animation-name:shake;animation-duration:.7s;animation-timing-function:ease-out}label.infield{position:absolute;left:-10000px;top:-10000px;width:1px;height:1px;overflow:hidden}::placeholder,::-ms-input-placeholder,::-webkit-input-placeholder{color:var(--color-text-maxcontrast);font-size:var(--default-font-size)}#header,#expanddiv{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}#header a:not(.button):focus-visible,#header button:not(.button-vue):focus-visible,#header div[role=button]:focus-visible,#expanddiv a:not(.button):focus-visible,#expanddiv button:not(.button-vue):focus-visible,#expanddiv div[role=button]:focus-visible{outline:none}#header a:not(.button):focus-visible::after,#header .button-vue:focus-visible::after,#header div[role=button]:focus-visible::after,#expanddiv a:not(.button):focus-visible::after,#expanddiv .button-vue:focus-visible::after,#expanddiv div[role=button]:focus-visible::after{content:" ";position:absolute;transform:translateX(-50%);width:12px;height:2px;border-radius:3px;background-color:var(--color-primary-text);left:50%;opacity:1}#header a:not(.button):focus-visible::after,#header .button-vue:focus-visible::after,#expanddiv a:not(.button):focus-visible::after,#expanddiv .button-vue:focus-visible::after{bottom:2px}#header .header-right a:not(.button):focus-visible::after,#header .header-right div[role=button]:focus-visible::after,#expanddiv .header-right a:not(.button):focus-visible::after,#expanddiv .header-right div[role=button]:focus-visible::after{bottom:4px}#header .header-right #expand.menutoggle:focus-visible::after,#expanddiv .header-right #expand.menutoggle:focus-visible::after{left:40%}#body-user #header,#body-settings #header,#body-public #header{display:inline-flex;position:absolute;top:0;width:100%;z-index:2000;height:50px;box-sizing:border-box;justify-content:space-between}#nextcloud{padding:5px 0;padding-left:86px;position:relative;height:calc(100% - 4px);box-sizing:border-box;opacity:1;align-items:center;display:flex;flex-wrap:wrap;overflow:hidden;margin:2px}#nextcloud:hover,#nextcloud:active{opacity:1}#header .header-right>div>.menu{background-color:var(--color-main-background);filter:drop-shadow(0 1px 5px var(--color-box-shadow));border-radius:var(--border-radius-large);box-sizing:border-box;z-index:2000;position:absolute;max-width:350px;min-height:66px;max-height:calc(100vh - 50px - 8px);right:8px;top:50px;margin:0;overflow-y:auto}#header .header-right>div>.menu:not(.popovermenu){display:none}#header .header-right>div>.menu:after{border:10px solid rgba(0,0,0,0);border-bottom-color:var(--color-main-background);bottom:100%;content:" ";height:0;width:0;position:absolute;pointer-events:none;right:10px}#header .header-right>div>.menu>div,#header .header-right>div>.menu>ul{-webkit-overflow-scrolling:touch;min-height:66px;max-height:calc(100vh - 50px - 8px)}#header .logo{display:inline-flex;background-image:var(--image-logoheader, var(--image-logo, url("../img/logo/logo.svg")));background-repeat:no-repeat;background-size:contain;background-position:center;width:62px;position:absolute;left:12px;top:1px;bottom:1px;filter:var(--image-logoheader-custom, var(--background-image-invert-if-bright))}#header .header-appname-container{display:none;padding-right:10px;flex-shrink:0}#header #header-left,#header .header-left,#header #header-right,#header .header-right{display:inline-flex;align-items:center}#header #header-left,#header .header-left{flex:1 0;white-space:nowrap;min-width:0}#header #header-right,#header .header-right{justify-content:flex-end;flex-shrink:1}#header .header-right>div,#header .header-right>form{height:100%;position:relative}#header .header-right>div>.menutoggle,#header .header-right>form>.menutoggle{display:flex;justify-content:center;align-items:center;width:50px;height:44px;cursor:pointer;opacity:.85;padding:0;margin:2px 0}#header .header-right>div>.menutoggle:focus,#header .header-right>form>.menutoggle:focus{opacity:1}#header .header-right>div>.menutoggle:focus-visible,#header .header-right>form>.menutoggle:focus-visible{outline:none}.header-appname-container .header-appname{opacity:.75}.header-appname{color:var(--color-primary-text);font-size:16px;font-weight:bold;margin:0;padding:0;padding-right:5px;overflow:hidden;text-overflow:ellipsis;flex:1 1 100%}.header-shared-by{color:var(--color-primary-text);position:relative;font-weight:300;font-size:11px;line-height:11px;overflow:hidden;text-overflow:ellipsis}#skip-actions{position:absolute;overflow:hidden;z-index:9999;top:-999px;left:3px;height:50px;padding:11px}#skip-actions:focus-within{top:50px}header #emptycontent h2,header .emptycontent h2{font-weight:normal;font-size:16px}header #emptycontent [class^=icon-],header #emptycontent [class*=icon-],header .emptycontent [class^=icon-],header .emptycontent [class*=icon-]{background-size:48px;height:48px;width:48px}[class^=icon-],[class*=" icon-"]{background-repeat:no-repeat;background-position:center;min-width:16px;min-height:16px}.icon-breadcrumb{background-image:url("../img/breadcrumb.svg?v=1")}.loading,.loading-small,.icon-loading,.icon-loading-dark,.icon-loading-small,.icon-loading-small-dark{position:relative}.loading:after,.loading-small:after,.icon-loading:after,.icon-loading-dark:after,.icon-loading-small:after,.icon-loading-small-dark:after{z-index:2;content:"";height:28px;width:28px;margin:-16px 0 0 -16px;position:absolute;top:50%;left:50%;border-radius:100%;-webkit-animation:rotate .8s infinite linear;animation:rotate .8s infinite linear;-webkit-transform-origin:center;-ms-transform-origin:center;transform-origin:center;border:2px solid var(--color-loading-light);border-top-color:var(--color-loading-dark);filter:var(--background-invert-if-dark)}.primary .loading:after,.primary+.loading:after,.primary .loading-small:after,.primary+.loading-small:after,.primary .icon-loading:after,.primary+.icon-loading:after,.primary .icon-loading-dark:after,.primary+.icon-loading-dark:after,.primary .icon-loading-small:after,.primary+.icon-loading-small:after,.primary .icon-loading-small-dark:after,.primary+.icon-loading-small-dark:after{filter:var(--primary-invert-if-bright)}.icon-loading-dark:after,.icon-loading-small-dark:after{border:2px solid var(--color-loading-dark);border-top-color:var(--color-loading-light)}.icon-loading-small:after,.icon-loading-small-dark:after{height:12px;width:12px;margin:-8px 0 0 -8px}audio.icon-loading,canvas.icon-loading,embed.icon-loading,iframe.icon-loading,img.icon-loading,input.icon-loading,object.icon-loading,video.icon-loading{background-image:url("../img/loading.gif")}audio.icon-loading-dark,canvas.icon-loading-dark,embed.icon-loading-dark,iframe.icon-loading-dark,img.icon-loading-dark,input.icon-loading-dark,object.icon-loading-dark,video.icon-loading-dark{background-image:url("../img/loading-dark.gif")}audio.icon-loading-small,canvas.icon-loading-small,embed.icon-loading-small,iframe.icon-loading-small,img.icon-loading-small,input.icon-loading-small,object.icon-loading-small,video.icon-loading-small{background-image:url("../img/loading-small.gif")}audio.icon-loading-small-dark,canvas.icon-loading-small-dark,embed.icon-loading-small-dark,iframe.icon-loading-small-dark,img.icon-loading-small-dark,input.icon-loading-small-dark,object.icon-loading-small-dark,video.icon-loading-small-dark{background-image:url("../img/loading-small-dark.gif")}@keyframes rotate{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}.icon-32{background-size:32px !important}.icon-white.icon-shadow,.icon-audio-white,.icon-audio-off-white,.icon-fullscreen-white,.icon-screen-white,.icon-screen-off-white,.icon-video-white,.icon-video-off-white{filter:drop-shadow(1px 1px 4px var(--color-box-shadow))}:root{--body-container-margin: calc(var(--default-grid-baseline) * 2);--body-container-radius: calc(var(--default-clickable-area) / 2 + var(--default-grid-baseline) * 2 - 2px);--body-height: calc(100% - env(safe-area-inset-bottom) - 50px - var(--body-container-margin))}@media screen and (max-width: 1024px){:root{--body-container-margin: 0px;--body-container-radius: 0px}}html{width:100%;height:100%;position:absolute;background-color:var(--color-background-plain, var(--color-main-background))}body{background-color:var(--color-background-plain, var(--color-main-background));background-image:var(--image-background, var(--image-background-default));background-size:cover;background-position:center;position:fixed;width:100%;height:calc(100vh - env(safe-area-inset-bottom))}h2{font-weight:bold;font-size:20px;margin-bottom:12px;line-height:30px;color:var(--color-text-light)}h3{font-size:16px;margin:12px 0;color:var(--color-text-light)}h4{font-size:14px}em{font-style:normal;color:var(--color-text-lighter)}dl{padding:12px 0}dt,dd{display:inline-block;padding:12px;padding-left:0}dt{width:130px;white-space:nowrap;text-align:right}kbd{padding:4px 10px;border:1px solid #ccc;box-shadow:0 1px 0 rgba(0,0,0,.2);border-radius:var(--border-radius);display:inline-block;white-space:nowrap}#content[class*=app-] *{box-sizing:border-box}#app-navigation:not(.vue){--border-radius-pill: calc(var(--default-clickable-area) / 2);width:300px;z-index:500;overflow-y:auto;overflow-x:hidden;background-color:var(--color-main-background-blur);backdrop-filter:var(--filter-background-blur);-webkit-backdrop-filter:var(--filter-background-blur);-webkit-user-select:none;position:sticky;height:100%;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;flex-direction:column;flex-grow:0;flex-shrink:0}#app-navigation:not(.vue) .app-navigation-new{display:block;padding:calc(var(--default-grid-baseline)*2)}#app-navigation:not(.vue) .app-navigation-new button{display:inline-block;width:100%;padding:10px;padding-left:34px;background-position:10px center;text-align:left;margin:0}#app-navigation:not(.vue) li{position:relative}#app-navigation:not(.vue)>ul{position:relative;height:100%;width:100%;overflow-x:hidden;overflow-y:auto;box-sizing:border-box;display:flex;flex-direction:column;padding:calc(var(--default-grid-baseline)*2);padding-bottom:0}#app-navigation:not(.vue)>ul:last-child{padding-bottom:calc(var(--default-grid-baseline)*2)}#app-navigation:not(.vue)>ul>li{display:inline-flex;flex-wrap:wrap;order:1;flex-shrink:0;margin:0;margin-bottom:3px;width:100%;border-radius:var(--border-radius-pill)}#app-navigation:not(.vue)>ul>li.pinned{order:2}#app-navigation:not(.vue)>ul>li.pinned.first-pinned{margin-top:auto !important}#app-navigation:not(.vue)>ul>li>.app-navigation-entry-deleted{padding-left:44px !important}#app-navigation:not(.vue)>ul>li>.app-navigation-entry-edit{padding-left:38px !important}#app-navigation:not(.vue)>ul>li a:hover,#app-navigation:not(.vue)>ul>li a:hover>a,#app-navigation:not(.vue)>ul>li a:focus,#app-navigation:not(.vue)>ul>li a:focus>a{background-color:var(--color-background-hover)}#app-navigation:not(.vue)>ul>li a:focus-visible{box-shadow:var(--color-primary) inset 0 0 0 2px;outline:none}#app-navigation:not(.vue)>ul>li.active,#app-navigation:not(.vue)>ul>li.active>a,#app-navigation:not(.vue)>ul>li a:active,#app-navigation:not(.vue)>ul>li a:active>a,#app-navigation:not(.vue)>ul>li a.selected,#app-navigation:not(.vue)>ul>li a.selected>a,#app-navigation:not(.vue)>ul>li a.active,#app-navigation:not(.vue)>ul>li a.active>a{background-color:var(--color-primary-light)}#app-navigation:not(.vue)>ul>li.icon-loading-small:after{left:22px;top:22px}#app-navigation:not(.vue)>ul>li.deleted>ul,#app-navigation:not(.vue)>ul>li.collapsible:not(.open)>ul{display:none}#app-navigation:not(.vue)>ul>li.app-navigation-caption{font-weight:bold;line-height:44px;padding:0 44px;white-space:nowrap;text-overflow:ellipsis;box-shadow:none !important;user-select:none;pointer-events:none}#app-navigation:not(.vue)>ul>li.app-navigation-caption:not(:first-child){margin-top:22px}#app-navigation:not(.vue)>ul>li>ul{flex:0 1 auto;width:100%;position:relative}#app-navigation:not(.vue)>ul>li>ul>li{display:inline-flex;flex-wrap:wrap;padding-left:44px;width:100%;margin-bottom:3px}#app-navigation:not(.vue)>ul>li>ul>li:hover,#app-navigation:not(.vue)>ul>li>ul>li:hover>a,#app-navigation:not(.vue)>ul>li>ul>li:focus,#app-navigation:not(.vue)>ul>li>ul>li:focus>a{border-radius:var(--border-radius-pill);background-color:var(--color-background-hover)}#app-navigation:not(.vue)>ul>li>ul>li.active,#app-navigation:not(.vue)>ul>li>ul>li.active>a,#app-navigation:not(.vue)>ul>li>ul>li a.selected,#app-navigation:not(.vue)>ul>li>ul>li a.selected>a{border-radius:var(--border-radius-pill);background-color:var(--color-primary-light)}#app-navigation:not(.vue)>ul>li>ul>li.icon-loading-small:after{left:22px}#app-navigation:not(.vue)>ul>li>ul>li>.app-navigation-entry-deleted{margin-left:4px;padding-left:84px}#app-navigation:not(.vue)>ul>li>ul>li>.app-navigation-entry-edit{margin-left:4px;padding-left:78px !important}#app-navigation:not(.vue)>ul>li,#app-navigation:not(.vue)>ul>li>ul>li{position:relative;box-sizing:border-box}#app-navigation:not(.vue)>ul>li.icon-loading-small>a,#app-navigation:not(.vue)>ul>li.icon-loading-small>.app-navigation-entry-bullet,#app-navigation:not(.vue)>ul>li>ul>li.icon-loading-small>a,#app-navigation:not(.vue)>ul>li>ul>li.icon-loading-small>.app-navigation-entry-bullet{background:rgba(0,0,0,0) !important}#app-navigation:not(.vue)>ul>li>a,#app-navigation:not(.vue)>ul>li>ul>li>a{background-size:16px 16px;background-position:14px center;background-repeat:no-repeat;display:block;justify-content:space-between;line-height:44px;min-height:44px;padding:0 12px 0 14px;overflow:hidden;box-sizing:border-box;white-space:nowrap;text-overflow:ellipsis;border-radius:var(--border-radius-pill);color:var(--color-main-text);flex:1 1 0px;z-index:100}#app-navigation:not(.vue)>ul>li>a.svg,#app-navigation:not(.vue)>ul>li>ul>li>a.svg{padding:0 12px 0 44px}#app-navigation:not(.vue)>ul>li>a.svg :focus-visible,#app-navigation:not(.vue)>ul>li>ul>li>a.svg :focus-visible{padding:0 8px 0 42px}#app-navigation:not(.vue)>ul>li>a:first-child img,#app-navigation:not(.vue)>ul>li>ul>li>a:first-child img{margin-right:11px;width:16px;height:16px;filter:var(--background-invert-if-dark)}#app-navigation:not(.vue)>ul>li>a>.app-navigation-entry-utils,#app-navigation:not(.vue)>ul>li>ul>li>a>.app-navigation-entry-utils{display:inline-block;float:right}#app-navigation:not(.vue)>ul>li>a>.app-navigation-entry-utils .app-navigation-entry-utils-counter,#app-navigation:not(.vue)>ul>li>ul>li>a>.app-navigation-entry-utils .app-navigation-entry-utils-counter{padding-right:0 !important}#app-navigation:not(.vue)>ul>li>.app-navigation-entry-bullet,#app-navigation:not(.vue)>ul>li>ul>li>.app-navigation-entry-bullet{position:absolute;display:block;margin:16px;width:12px;height:12px;border:none;border-radius:50%;cursor:pointer;transition:background 100ms ease-in-out}#app-navigation:not(.vue)>ul>li>.app-navigation-entry-bullet+a,#app-navigation:not(.vue)>ul>li>ul>li>.app-navigation-entry-bullet+a{background:rgba(0,0,0,0) !important}#app-navigation:not(.vue)>ul>li>.app-navigation-entry-menu,#app-navigation:not(.vue)>ul>li>ul>li>.app-navigation-entry-menu{top:44px}#app-navigation:not(.vue)>ul>li.editing .app-navigation-entry-edit,#app-navigation:not(.vue)>ul>li>ul>li.editing .app-navigation-entry-edit{opacity:1;z-index:250}#app-navigation:not(.vue)>ul>li.deleted .app-navigation-entry-deleted,#app-navigation:not(.vue)>ul>li>ul>li.deleted .app-navigation-entry-deleted{transform:translateX(0);z-index:250}#app-navigation:not(.vue).hidden{display:none}#app-navigation:not(.vue) .app-navigation-entry-utils .app-navigation-entry-utils-menu-button>button,#app-navigation:not(.vue) .app-navigation-entry-deleted .app-navigation-entry-deleted-button{border:0;opacity:.5;background-color:rgba(0,0,0,0);background-repeat:no-repeat;background-position:center}#app-navigation:not(.vue) .app-navigation-entry-utils .app-navigation-entry-utils-menu-button>button:hover,#app-navigation:not(.vue) .app-navigation-entry-utils .app-navigation-entry-utils-menu-button>button:focus,#app-navigation:not(.vue) .app-navigation-entry-deleted .app-navigation-entry-deleted-button:hover,#app-navigation:not(.vue) .app-navigation-entry-deleted .app-navigation-entry-deleted-button:focus{background-color:rgba(0,0,0,0);opacity:1}#app-navigation:not(.vue) .collapsible .collapse{opacity:0;position:absolute;width:44px;height:44px;margin:0;z-index:110;left:0}#app-navigation:not(.vue) .collapsible .collapse:focus-visible{opacity:1;border-width:0;box-shadow:inset 0 0 0 2px var(--color-primary);background:none}#app-navigation:not(.vue) .collapsible:before{position:absolute;height:44px;width:44px;margin:0;padding:0;background:none;background-image:var(--icon-triangle-s-dark);background-size:16px;background-repeat:no-repeat;background-position:center;border:none;border-radius:0;outline:none !important;box-shadow:none;content:" ";opacity:0;-webkit-transform:rotate(-90deg);-ms-transform:rotate(-90deg);transform:rotate(-90deg);z-index:105;border-radius:50%;transition:opacity 100ms ease-in-out}#app-navigation:not(.vue) .collapsible>a:first-child{padding-left:44px}#app-navigation:not(.vue) .collapsible:hover:before,#app-navigation:not(.vue) .collapsible:focus:before{opacity:1}#app-navigation:not(.vue) .collapsible:hover>a,#app-navigation:not(.vue) .collapsible:focus>a{background-image:none}#app-navigation:not(.vue) .collapsible:hover>.app-navigation-entry-bullet,#app-navigation:not(.vue) .collapsible:focus>.app-navigation-entry-bullet{background:rgba(0,0,0,0) !important}#app-navigation:not(.vue) .collapsible.open:before{-webkit-transform:rotate(0);-ms-transform:rotate(0);transform:rotate(0)}#app-navigation:not(.vue) .app-navigation-entry-utils{flex:0 1 auto}#app-navigation:not(.vue) .app-navigation-entry-utils ul{display:flex !important;align-items:center;justify-content:flex-end}#app-navigation:not(.vue) .app-navigation-entry-utils li{width:44px !important;height:44px}#app-navigation:not(.vue) .app-navigation-entry-utils button{height:100%;width:100%;margin:0;box-shadow:none}#app-navigation:not(.vue) .app-navigation-entry-utils .app-navigation-entry-utils-menu-button button:not([class^=icon-]):not([class*=" icon-"]){background-image:var(--icon-more-dark)}#app-navigation:not(.vue) .app-navigation-entry-utils .app-navigation-entry-utils-menu-button:hover button,#app-navigation:not(.vue) .app-navigation-entry-utils .app-navigation-entry-utils-menu-button:focus button{background-color:rgba(0,0,0,0);opacity:1}#app-navigation:not(.vue) .app-navigation-entry-utils .app-navigation-entry-utils-counter{overflow:hidden;text-align:right;font-size:9pt;line-height:44px;padding:0 12px}#app-navigation:not(.vue) .app-navigation-entry-utils .app-navigation-entry-utils-counter.highlighted{padding:0;text-align:center}#app-navigation:not(.vue) .app-navigation-entry-utils .app-navigation-entry-utils-counter.highlighted span{padding:2px 5px;border-radius:10px;background-color:var(--color-primary);color:var(--color-primary-text)}#app-navigation:not(.vue) .app-navigation-entry-edit{padding-left:5px;padding-right:5px;display:block;width:calc(100% - 1px);transition:opacity 250ms ease-in-out;opacity:0;position:absolute;background-color:var(--color-main-background);z-index:-1}#app-navigation:not(.vue) .app-navigation-entry-edit form,#app-navigation:not(.vue) .app-navigation-entry-edit div{display:inline-flex;width:100%}#app-navigation:not(.vue) .app-navigation-entry-edit input{padding:5px;margin-right:0;height:38px}#app-navigation:not(.vue) .app-navigation-entry-edit input:hover,#app-navigation:not(.vue) .app-navigation-entry-edit input:focus{z-index:1}#app-navigation:not(.vue) .app-navigation-entry-edit input[type=text]{width:100%;min-width:0;border-bottom-right-radius:0;border-top-right-radius:0}#app-navigation:not(.vue) .app-navigation-entry-edit button,#app-navigation:not(.vue) .app-navigation-entry-edit input:not([type=text]){width:36px;height:38px;flex:0 0 36px}#app-navigation:not(.vue) .app-navigation-entry-edit button:not(:last-child),#app-navigation:not(.vue) .app-navigation-entry-edit input:not([type=text]):not(:last-child){border-radius:0 !important}#app-navigation:not(.vue) .app-navigation-entry-edit button:not(:first-child),#app-navigation:not(.vue) .app-navigation-entry-edit input:not([type=text]):not(:first-child){margin-left:-1px}#app-navigation:not(.vue) .app-navigation-entry-edit button:last-child,#app-navigation:not(.vue) .app-navigation-entry-edit input:not([type=text]):last-child{border-bottom-right-radius:var(--border-radius);border-top-right-radius:var(--border-radius);border-bottom-left-radius:0;border-top-left-radius:0}#app-navigation:not(.vue) .app-navigation-entry-deleted{display:inline-flex;padding-left:44px;transform:translateX(300px)}#app-navigation:not(.vue) .app-navigation-entry-deleted .app-navigation-entry-deleted-description{position:relative;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;flex:1 1 0px;line-height:44px}#app-navigation:not(.vue) .app-navigation-entry-deleted .app-navigation-entry-deleted-button{margin:0;height:44px;width:44px;line-height:44px}#app-navigation:not(.vue) .app-navigation-entry-deleted .app-navigation-entry-deleted-button:hover,#app-navigation:not(.vue) .app-navigation-entry-deleted .app-navigation-entry-deleted-button:focus{opacity:1}#app-navigation:not(.vue) .app-navigation-entry-edit,#app-navigation:not(.vue) .app-navigation-entry-deleted{width:calc(100% - 1px);transition:transform 250ms ease-in-out,opacity 250ms ease-in-out,z-index 250ms ease-in-out;position:absolute;left:0;background-color:var(--color-main-background);box-sizing:border-box}#app-navigation:not(.vue) .drag-and-drop{-webkit-transition:padding-bottom 500ms ease 0s;transition:padding-bottom 500ms ease 0s;padding-bottom:40px}#app-navigation:not(.vue) .error{color:var(--color-error)}#app-navigation:not(.vue) .app-navigation-entry-utils ul,#app-navigation:not(.vue) .app-navigation-entry-menu ul{list-style-type:none}#content{box-sizing:border-box;position:static;margin:var(--body-container-margin);margin-top:50px;padding:0;display:flex;width:calc(100% - var(--body-container-margin)*2);height:var(--body-height);border-radius:var(--body-container-radius);overflow:clip}#content:not(.with-sidebar--full){position:fixed}@media only screen and (max-width: 1024px){#content{border-top-left-radius:var(--border-radius-large);border-top-right-radius:var(--border-radius-large)}#app-navigation{border-top-left-radius:var(--border-radius-large)}#app-sidebar{border-top-right-radius:var(--border-radius-large)}}#app-content{z-index:1000;background-color:var(--color-main-background);flex-basis:100vw;overflow:auto;position:initial;height:100%}#app-content>.section:first-child{border-top:none}#app-content #app-content-wrapper{display:flex;position:relative;align-items:stretch;min-height:100%}#app-content #app-content-wrapper .app-content-details{flex:1 1 524px}#app-content #app-content-wrapper .app-content-details #app-navigation-toggle-back{display:none}#app-sidebar{width:27vw;min-width:300px;max-width:500px;display:block;position:-webkit-sticky;position:sticky;top:50px;right:0;overflow-y:auto;overflow-x:hidden;z-index:1500;opacity:.7px;height:calc(100vh - 50px);background:var(--color-main-background);border-left:1px solid var(--color-border);flex-shrink:0}#app-sidebar.disappear{display:none}#app-settings{margin-top:auto}#app-settings.open #app-settings-content,#app-settings.opened #app-settings-content{display:block}#app-settings-content{display:none;padding:calc(var(--default-grid-baseline)*2);padding-top:0;padding-left:calc(var(--default-grid-baseline)*4);max-height:300px;overflow-y:auto;box-sizing:border-box}#app-settings-content input[type=text]{width:93%}#app-settings-content .info-text{padding:5px 0 7px 22px;color:var(--color-text-lighter)}#app-settings-content input[type=checkbox].radio+label,#app-settings-content input[type=checkbox].checkbox+label,#app-settings-content input[type=radio].radio+label,#app-settings-content input[type=radio].checkbox+label{display:inline-block;width:100%;padding:5px 0}#app-settings-header{box-sizing:border-box;background-color:rgba(0,0,0,0);overflow:hidden;border-radius:calc(var(--default-clickable-area)/2);padding:calc(var(--default-grid-baseline)*2);padding-top:0}#app-settings-header .settings-button{display:flex;align-items:center;height:44px;width:100%;padding:0;margin:0;background-color:rgba(0,0,0,0);box-shadow:none;border:0;border-radius:calc(var(--default-clickable-area)/2);text-align:left;font-weight:normal;font-size:100%;opacity:.8;color:var(--color-main-text)}#app-settings-header .settings-button.opened{border-top:solid 1px var(--color-border);background-color:var(--color-main-background);margin-top:8px}#app-settings-header .settings-button:hover,#app-settings-header .settings-button:focus{background-color:var(--color-background-hover)}#app-settings-header .settings-button::before{background-image:var(--icon-settings-dark);background-position:14px center;background-repeat:no-repeat;content:"";width:44px;height:44px;top:0;left:0;display:block}#app-settings-header .settings-button:focus-visible{box-shadow:0 0 0 2px inset var(--color-primary) !important;background-position:12px center}.section{display:block;padding:30px;margin-bottom:24px}.section.hidden{display:none !important}.section input[type=checkbox],.section input[type=radio]{vertical-align:-2px;margin-right:4px}.sub-section{position:relative;margin-top:10px;margin-left:27px;margin-bottom:10px}.appear{opacity:1;-webkit-transition:opacity 500ms ease 0s;-moz-transition:opacity 500ms ease 0s;-ms-transition:opacity 500ms ease 0s;-o-transition:opacity 500ms ease 0s;transition:opacity 500ms ease 0s}.appear.transparent{opacity:0}.tabHeaders{display:flex;margin-bottom:16px}.tabHeaders .tabHeader{display:flex;flex-direction:column;flex-grow:1;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;color:var(--color-text-lighter);margin-bottom:1px;padding:5px}.tabHeaders .tabHeader.hidden{display:none}.tabHeaders .tabHeader:first-child{padding-left:15px}.tabHeaders .tabHeader:last-child{padding-right:15px}.tabHeaders .tabHeader .icon{display:inline-block;width:100%;height:16px;background-size:16px;vertical-align:middle;margin-top:-2px;margin-right:3px;opacity:.7;cursor:pointer}.tabHeaders .tabHeader a{color:var(--color-text-lighter);margin-bottom:1px;overflow:hidden;text-overflow:ellipsis}.tabHeaders .tabHeader.selected{font-weight:bold}.tabHeaders .tabHeader.selected,.tabHeaders .tabHeader:hover,.tabHeaders .tabHeader:focus{margin-bottom:0px;color:var(--color-main-text);border-bottom:1px solid var(--color-text-lighter)}.tabsContainer{clear:left}.tabsContainer .tab{padding:0 15px 15px}.contact .popovermenu ul>li>a>img,.popover__menu>li>a>img{filter:var(--background-invert-if-dark)}.contact .popovermenu ul>li>a>img[src^=data],.popover__menu>li>a>img[src^=data]{filter:none}.bubble,.app-navigation-entry-menu,.popovermenu{position:absolute;background-color:var(--color-main-background);color:var(--color-main-text);border-radius:var(--border-radius-large);padding:3px;z-index:110;margin:5px;margin-top:-5px;right:0;filter:drop-shadow(0 1px 3px var(--color-box-shadow));display:none;will-change:filter}.bubble:after,.app-navigation-entry-menu:after,.popovermenu:after{bottom:100%;right:7px;border:solid rgba(0,0,0,0);content:" ";height:0;width:0;position:absolute;pointer-events:none;border-bottom-color:var(--color-main-background);border-width:9px}.bubble.menu-center,.app-navigation-entry-menu.menu-center,.popovermenu.menu-center{transform:translateX(50%);right:50%;margin-right:0}.bubble.menu-center:after,.app-navigation-entry-menu.menu-center:after,.popovermenu.menu-center:after{right:50%;transform:translateX(50%)}.bubble.menu-left,.app-navigation-entry-menu.menu-left,.popovermenu.menu-left{right:auto;left:0;margin-right:0}.bubble.menu-left:after,.app-navigation-entry-menu.menu-left:after,.popovermenu.menu-left:after{left:6px;right:auto}.bubble.open,.app-navigation-entry-menu.open,.popovermenu.open{display:block}.bubble.contactsmenu-popover,.app-navigation-entry-menu.contactsmenu-popover,.popovermenu.contactsmenu-popover{margin:0}.bubble ul,.app-navigation-entry-menu ul,.popovermenu ul{display:flex !important;flex-direction:column}.bubble li,.app-navigation-entry-menu li,.popovermenu li{display:flex;flex:0 0 auto}.bubble li.hidden,.app-navigation-entry-menu li.hidden,.popovermenu li.hidden{display:none}.bubble li>button,.bubble li>a,.bubble li>.menuitem,.app-navigation-entry-menu li>button,.app-navigation-entry-menu li>a,.app-navigation-entry-menu li>.menuitem,.popovermenu li>button,.popovermenu li>a,.popovermenu li>.menuitem{cursor:pointer;line-height:44px;border:0;border-radius:var(--border-radius-large);background-color:rgba(0,0,0,0);display:flex;align-items:flex-start;height:auto;margin:0;font-weight:normal;box-shadow:none;width:100%;color:var(--color-main-text);white-space:nowrap}.bubble li>button span[class^=icon-],.bubble li>button span[class*=" icon-"],.bubble li>button[class^=icon-],.bubble li>button[class*=" icon-"],.bubble li>a span[class^=icon-],.bubble li>a span[class*=" icon-"],.bubble li>a[class^=icon-],.bubble li>a[class*=" icon-"],.bubble li>.menuitem span[class^=icon-],.bubble li>.menuitem span[class*=" icon-"],.bubble li>.menuitem[class^=icon-],.bubble li>.menuitem[class*=" icon-"],.app-navigation-entry-menu li>button span[class^=icon-],.app-navigation-entry-menu li>button span[class*=" icon-"],.app-navigation-entry-menu li>button[class^=icon-],.app-navigation-entry-menu li>button[class*=" icon-"],.app-navigation-entry-menu li>a span[class^=icon-],.app-navigation-entry-menu li>a span[class*=" icon-"],.app-navigation-entry-menu li>a[class^=icon-],.app-navigation-entry-menu li>a[class*=" icon-"],.app-navigation-entry-menu li>.menuitem span[class^=icon-],.app-navigation-entry-menu li>.menuitem span[class*=" icon-"],.app-navigation-entry-menu li>.menuitem[class^=icon-],.app-navigation-entry-menu li>.menuitem[class*=" icon-"],.popovermenu li>button span[class^=icon-],.popovermenu li>button span[class*=" icon-"],.popovermenu li>button[class^=icon-],.popovermenu li>button[class*=" icon-"],.popovermenu li>a span[class^=icon-],.popovermenu li>a span[class*=" icon-"],.popovermenu li>a[class^=icon-],.popovermenu li>a[class*=" icon-"],.popovermenu li>.menuitem span[class^=icon-],.popovermenu li>.menuitem span[class*=" icon-"],.popovermenu li>.menuitem[class^=icon-],.popovermenu li>.menuitem[class*=" icon-"]{min-width:0;min-height:0;background-position:14px center;background-size:16px}.bubble li>button span[class^=icon-],.bubble li>button span[class*=" icon-"],.bubble li>a span[class^=icon-],.bubble li>a span[class*=" icon-"],.bubble li>.menuitem span[class^=icon-],.bubble li>.menuitem span[class*=" icon-"],.app-navigation-entry-menu li>button span[class^=icon-],.app-navigation-entry-menu li>button span[class*=" icon-"],.app-navigation-entry-menu li>a span[class^=icon-],.app-navigation-entry-menu li>a span[class*=" icon-"],.app-navigation-entry-menu li>.menuitem span[class^=icon-],.app-navigation-entry-menu li>.menuitem span[class*=" icon-"],.popovermenu li>button span[class^=icon-],.popovermenu li>button span[class*=" icon-"],.popovermenu li>a span[class^=icon-],.popovermenu li>a span[class*=" icon-"],.popovermenu li>.menuitem span[class^=icon-],.popovermenu li>.menuitem span[class*=" icon-"]{padding:22px 0 22px 44px}.bubble li>button:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.bubble li>button:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.bubble li>button:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child,.bubble li>a:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.bubble li>a:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.bubble li>a:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child,.bubble li>.menuitem:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.bubble li>.menuitem:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.bubble li>.menuitem:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>button:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>button:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>button:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>a:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>a:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>a:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>.menuitem:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>.menuitem:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.app-navigation-entry-menu li>.menuitem:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>button:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>button:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>button:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>a:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>a:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>a:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>.menuitem:not([class^=icon-]):not([class*=icon-])>span:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>.menuitem:not([class^=icon-]):not([class*=icon-])>input:not([class^=icon-]):not([class*=icon-]):first-child,.popovermenu li>.menuitem:not([class^=icon-]):not([class*=icon-])>form:not([class^=icon-]):not([class*=icon-]):first-child{margin-left:44px}.bubble li>button[class^=icon-],.bubble li>button[class*=" icon-"],.bubble li>a[class^=icon-],.bubble li>a[class*=" icon-"],.bubble li>.menuitem[class^=icon-],.bubble li>.menuitem[class*=" icon-"],.app-navigation-entry-menu li>button[class^=icon-],.app-navigation-entry-menu li>button[class*=" icon-"],.app-navigation-entry-menu li>a[class^=icon-],.app-navigation-entry-menu li>a[class*=" icon-"],.app-navigation-entry-menu li>.menuitem[class^=icon-],.app-navigation-entry-menu li>.menuitem[class*=" icon-"],.popovermenu li>button[class^=icon-],.popovermenu li>button[class*=" icon-"],.popovermenu li>a[class^=icon-],.popovermenu li>a[class*=" icon-"],.popovermenu li>.menuitem[class^=icon-],.popovermenu li>.menuitem[class*=" icon-"]{padding:0 14px 0 44px !important}.bubble li>button:hover,.bubble li>button:focus,.bubble li>a:hover,.bubble li>a:focus,.bubble li>.menuitem:hover,.bubble li>.menuitem:focus,.app-navigation-entry-menu li>button:hover,.app-navigation-entry-menu li>button:focus,.app-navigation-entry-menu li>a:hover,.app-navigation-entry-menu li>a:focus,.app-navigation-entry-menu li>.menuitem:hover,.app-navigation-entry-menu li>.menuitem:focus,.popovermenu li>button:hover,.popovermenu li>button:focus,.popovermenu li>a:hover,.popovermenu li>a:focus,.popovermenu li>.menuitem:hover,.popovermenu li>.menuitem:focus{background-color:var(--color-background-hover)}.bubble li>button:focus,.bubble li>button:focus-visible,.bubble li>a:focus,.bubble li>a:focus-visible,.bubble li>.menuitem:focus,.bubble li>.menuitem:focus-visible,.app-navigation-entry-menu li>button:focus,.app-navigation-entry-menu li>button:focus-visible,.app-navigation-entry-menu li>a:focus,.app-navigation-entry-menu li>a:focus-visible,.app-navigation-entry-menu li>.menuitem:focus,.app-navigation-entry-menu li>.menuitem:focus-visible,.popovermenu li>button:focus,.popovermenu li>button:focus-visible,.popovermenu li>a:focus,.popovermenu li>a:focus-visible,.popovermenu li>.menuitem:focus,.popovermenu li>.menuitem:focus-visible{box-shadow:0 0 0 2px var(--color-primary-element)}.bubble li>button.active,.bubble li>a.active,.bubble li>.menuitem.active,.app-navigation-entry-menu li>button.active,.app-navigation-entry-menu li>a.active,.app-navigation-entry-menu li>.menuitem.active,.popovermenu li>button.active,.popovermenu li>a.active,.popovermenu li>.menuitem.active{border-radius:var(--border-radius-pill);background-color:var(--color-primary-light)}.bubble li>button.action,.bubble li>a.action,.bubble li>.menuitem.action,.app-navigation-entry-menu li>button.action,.app-navigation-entry-menu li>a.action,.app-navigation-entry-menu li>.menuitem.action,.popovermenu li>button.action,.popovermenu li>a.action,.popovermenu li>.menuitem.action{padding:inherit !important}.bubble li>button>span,.bubble li>a>span,.bubble li>.menuitem>span,.app-navigation-entry-menu li>button>span,.app-navigation-entry-menu li>a>span,.app-navigation-entry-menu li>.menuitem>span,.popovermenu li>button>span,.popovermenu li>a>span,.popovermenu li>.menuitem>span{cursor:pointer;white-space:nowrap}.bubble li>button>p,.bubble li>a>p,.bubble li>.menuitem>p,.app-navigation-entry-menu li>button>p,.app-navigation-entry-menu li>a>p,.app-navigation-entry-menu li>.menuitem>p,.popovermenu li>button>p,.popovermenu li>a>p,.popovermenu li>.menuitem>p{width:150px;line-height:1.6em;padding:8px 0;white-space:normal}.bubble li>button>select,.bubble li>a>select,.bubble li>.menuitem>select,.app-navigation-entry-menu li>button>select,.app-navigation-entry-menu li>a>select,.app-navigation-entry-menu li>.menuitem>select,.popovermenu li>button>select,.popovermenu li>a>select,.popovermenu li>.menuitem>select{margin:0;margin-left:6px}.bubble li>button:not(:empty),.bubble li>a:not(:empty),.bubble li>.menuitem:not(:empty),.app-navigation-entry-menu li>button:not(:empty),.app-navigation-entry-menu li>a:not(:empty),.app-navigation-entry-menu li>.menuitem:not(:empty),.popovermenu li>button:not(:empty),.popovermenu li>a:not(:empty),.popovermenu li>.menuitem:not(:empty){padding-right:14px !important}.bubble li>button>img,.bubble li>a>img,.bubble li>.menuitem>img,.app-navigation-entry-menu li>button>img,.app-navigation-entry-menu li>a>img,.app-navigation-entry-menu li>.menuitem>img,.popovermenu li>button>img,.popovermenu li>a>img,.popovermenu li>.menuitem>img{width:16px;padding:14px}.bubble li>button>input.radio+label,.bubble li>button>input.checkbox+label,.bubble li>a>input.radio+label,.bubble li>a>input.checkbox+label,.bubble li>.menuitem>input.radio+label,.bubble li>.menuitem>input.checkbox+label,.app-navigation-entry-menu li>button>input.radio+label,.app-navigation-entry-menu li>button>input.checkbox+label,.app-navigation-entry-menu li>a>input.radio+label,.app-navigation-entry-menu li>a>input.checkbox+label,.app-navigation-entry-menu li>.menuitem>input.radio+label,.app-navigation-entry-menu li>.menuitem>input.checkbox+label,.popovermenu li>button>input.radio+label,.popovermenu li>button>input.checkbox+label,.popovermenu li>a>input.radio+label,.popovermenu li>a>input.checkbox+label,.popovermenu li>.menuitem>input.radio+label,.popovermenu li>.menuitem>input.checkbox+label{padding:0 !important;width:100%}.bubble li>button>input.checkbox+label::before,.bubble li>a>input.checkbox+label::before,.bubble li>.menuitem>input.checkbox+label::before,.app-navigation-entry-menu li>button>input.checkbox+label::before,.app-navigation-entry-menu li>a>input.checkbox+label::before,.app-navigation-entry-menu li>.menuitem>input.checkbox+label::before,.popovermenu li>button>input.checkbox+label::before,.popovermenu li>a>input.checkbox+label::before,.popovermenu li>.menuitem>input.checkbox+label::before{margin:-2px 13px 0}.bubble li>button>input.radio+label::before,.bubble li>a>input.radio+label::before,.bubble li>.menuitem>input.radio+label::before,.app-navigation-entry-menu li>button>input.radio+label::before,.app-navigation-entry-menu li>a>input.radio+label::before,.app-navigation-entry-menu li>.menuitem>input.radio+label::before,.popovermenu li>button>input.radio+label::before,.popovermenu li>a>input.radio+label::before,.popovermenu li>.menuitem>input.radio+label::before{margin:-2px 12px 0}.bubble li>button>input:not([type=radio]):not([type=checkbox]):not([type=image]),.bubble li>a>input:not([type=radio]):not([type=checkbox]):not([type=image]),.bubble li>.menuitem>input:not([type=radio]):not([type=checkbox]):not([type=image]),.app-navigation-entry-menu li>button>input:not([type=radio]):not([type=checkbox]):not([type=image]),.app-navigation-entry-menu li>a>input:not([type=radio]):not([type=checkbox]):not([type=image]),.app-navigation-entry-menu li>.menuitem>input:not([type=radio]):not([type=checkbox]):not([type=image]),.popovermenu li>button>input:not([type=radio]):not([type=checkbox]):not([type=image]),.popovermenu li>a>input:not([type=radio]):not([type=checkbox]):not([type=image]),.popovermenu li>.menuitem>input:not([type=radio]):not([type=checkbox]):not([type=image]){width:150px}.bubble li>button form,.bubble li>a form,.bubble li>.menuitem form,.app-navigation-entry-menu li>button form,.app-navigation-entry-menu li>a form,.app-navigation-entry-menu li>.menuitem form,.popovermenu li>button form,.popovermenu li>a form,.popovermenu li>.menuitem form{display:flex;flex:1 1 auto;align-items:center}.bubble li>button form:not(:first-child),.bubble li>a form:not(:first-child),.bubble li>.menuitem form:not(:first-child),.app-navigation-entry-menu li>button form:not(:first-child),.app-navigation-entry-menu li>a form:not(:first-child),.app-navigation-entry-menu li>.menuitem form:not(:first-child),.popovermenu li>button form:not(:first-child),.popovermenu li>a form:not(:first-child),.popovermenu li>.menuitem form:not(:first-child){margin-left:5px}.bubble li>button>span.hidden+form,.bubble li>button>span[style*="display:none"]+form,.bubble li>a>span.hidden+form,.bubble li>a>span[style*="display:none"]+form,.bubble li>.menuitem>span.hidden+form,.bubble li>.menuitem>span[style*="display:none"]+form,.app-navigation-entry-menu li>button>span.hidden+form,.app-navigation-entry-menu li>button>span[style*="display:none"]+form,.app-navigation-entry-menu li>a>span.hidden+form,.app-navigation-entry-menu li>a>span[style*="display:none"]+form,.app-navigation-entry-menu li>.menuitem>span.hidden+form,.app-navigation-entry-menu li>.menuitem>span[style*="display:none"]+form,.popovermenu li>button>span.hidden+form,.popovermenu li>button>span[style*="display:none"]+form,.popovermenu li>a>span.hidden+form,.popovermenu li>a>span[style*="display:none"]+form,.popovermenu li>.menuitem>span.hidden+form,.popovermenu li>.menuitem>span[style*="display:none"]+form{margin-left:0}.bubble li>button input,.bubble li>a input,.bubble li>.menuitem input,.app-navigation-entry-menu li>button input,.app-navigation-entry-menu li>a input,.app-navigation-entry-menu li>.menuitem input,.popovermenu li>button input,.popovermenu li>a input,.popovermenu li>.menuitem input{min-width:44px;max-height:40px;margin:2px 0;flex:1 1 auto}.bubble li>button input:not(:first-child),.bubble li>a input:not(:first-child),.bubble li>.menuitem input:not(:first-child),.app-navigation-entry-menu li>button input:not(:first-child),.app-navigation-entry-menu li>a input:not(:first-child),.app-navigation-entry-menu li>.menuitem input:not(:first-child),.popovermenu li>button input:not(:first-child),.popovermenu li>a input:not(:first-child),.popovermenu li>.menuitem input:not(:first-child){margin-left:5px}.bubble li:not(.hidden):not([style*="display:none"]):first-of-type>button>form,.bubble li:not(.hidden):not([style*="display:none"]):first-of-type>button>input,.bubble li:not(.hidden):not([style*="display:none"]):first-of-type>a>form,.bubble li:not(.hidden):not([style*="display:none"]):first-of-type>a>input,.bubble li:not(.hidden):not([style*="display:none"]):first-of-type>.menuitem>form,.bubble li:not(.hidden):not([style*="display:none"]):first-of-type>.menuitem>input,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):first-of-type>button>form,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):first-of-type>button>input,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):first-of-type>a>form,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):first-of-type>a>input,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):first-of-type>.menuitem>form,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):first-of-type>.menuitem>input,.popovermenu li:not(.hidden):not([style*="display:none"]):first-of-type>button>form,.popovermenu li:not(.hidden):not([style*="display:none"]):first-of-type>button>input,.popovermenu li:not(.hidden):not([style*="display:none"]):first-of-type>a>form,.popovermenu li:not(.hidden):not([style*="display:none"]):first-of-type>a>input,.popovermenu li:not(.hidden):not([style*="display:none"]):first-of-type>.menuitem>form,.popovermenu li:not(.hidden):not([style*="display:none"]):first-of-type>.menuitem>input{margin-top:12px}.bubble li:not(.hidden):not([style*="display:none"]):last-of-type>button>form,.bubble li:not(.hidden):not([style*="display:none"]):last-of-type>button>input,.bubble li:not(.hidden):not([style*="display:none"]):last-of-type>a>form,.bubble li:not(.hidden):not([style*="display:none"]):last-of-type>a>input,.bubble li:not(.hidden):not([style*="display:none"]):last-of-type>.menuitem>form,.bubble li:not(.hidden):not([style*="display:none"]):last-of-type>.menuitem>input,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):last-of-type>button>form,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):last-of-type>button>input,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):last-of-type>a>form,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):last-of-type>a>input,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):last-of-type>.menuitem>form,.app-navigation-entry-menu li:not(.hidden):not([style*="display:none"]):last-of-type>.menuitem>input,.popovermenu li:not(.hidden):not([style*="display:none"]):last-of-type>button>form,.popovermenu li:not(.hidden):not([style*="display:none"]):last-of-type>button>input,.popovermenu li:not(.hidden):not([style*="display:none"]):last-of-type>a>form,.popovermenu li:not(.hidden):not([style*="display:none"]):last-of-type>a>input,.popovermenu li:not(.hidden):not([style*="display:none"]):last-of-type>.menuitem>form,.popovermenu li:not(.hidden):not([style*="display:none"]):last-of-type>.menuitem>input{margin-bottom:0px}.bubble li>button,.app-navigation-entry-menu li>button,.popovermenu li>button{padding:0}.bubble li>button span,.app-navigation-entry-menu li>button span,.popovermenu li>button span{opacity:1}.popovermenu li>button>img,.popovermenu li>a>img,.popovermenu li>.menuitem>img{width:44px;height:44px}#contactsmenu .contact .popovermenu li>a>img{width:16px;height:16px}.app-content-list{position:-webkit-sticky;position:relative;top:0;border-right:1px solid var(--color-border);display:flex;flex-direction:column;transition:transform 250ms ease-in-out;min-height:100%;max-height:100%;overflow-y:auto;overflow-x:hidden;flex:1 1 200px;min-width:200px;max-width:300px}.app-content-list .app-content-list-item{position:relative;height:68px;cursor:pointer;padding:10px 7px;display:flex;flex-wrap:wrap;align-items:center;flex:0 0 auto}.app-content-list .app-content-list-item>[class^=icon-],.app-content-list .app-content-list-item>[class*=" icon-"],.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-],.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"]{order:4;width:24px;height:24px;margin:-7px;padding:22px;opacity:.3;cursor:pointer}.app-content-list .app-content-list-item>[class^=icon-]:hover,.app-content-list .app-content-list-item>[class^=icon-]:focus,.app-content-list .app-content-list-item>[class*=" icon-"]:hover,.app-content-list .app-content-list-item>[class*=" icon-"]:focus,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-]:hover,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-]:focus,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"]:hover,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"]:focus{opacity:.7}.app-content-list .app-content-list-item>[class^=icon-][class^=icon-star],.app-content-list .app-content-list-item>[class^=icon-][class*=" icon-star"],.app-content-list .app-content-list-item>[class*=" icon-"][class^=icon-star],.app-content-list .app-content-list-item>[class*=" icon-"][class*=" icon-star"],.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-][class^=icon-star],.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-][class*=" icon-star"],.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"][class^=icon-star],.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"][class*=" icon-star"]{opacity:.7}.app-content-list .app-content-list-item>[class^=icon-][class^=icon-star]:hover,.app-content-list .app-content-list-item>[class^=icon-][class^=icon-star]:focus,.app-content-list .app-content-list-item>[class^=icon-][class*=" icon-star"]:hover,.app-content-list .app-content-list-item>[class^=icon-][class*=" icon-star"]:focus,.app-content-list .app-content-list-item>[class*=" icon-"][class^=icon-star]:hover,.app-content-list .app-content-list-item>[class*=" icon-"][class^=icon-star]:focus,.app-content-list .app-content-list-item>[class*=" icon-"][class*=" icon-star"]:hover,.app-content-list .app-content-list-item>[class*=" icon-"][class*=" icon-star"]:focus,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-][class^=icon-star]:hover,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-][class^=icon-star]:focus,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-][class*=" icon-star"]:hover,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-][class*=" icon-star"]:focus,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"][class^=icon-star]:hover,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"][class^=icon-star]:focus,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"][class*=" icon-star"]:hover,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"][class*=" icon-star"]:focus{opacity:1}.app-content-list .app-content-list-item>[class^=icon-].icon-starred,.app-content-list .app-content-list-item>[class*=" icon-"].icon-starred,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class^=icon-].icon-starred,.app-content-list .app-content-list-item>.app-content-list-item-menu>[class*=" icon-"].icon-starred{opacity:1}.app-content-list .app-content-list-item:hover,.app-content-list .app-content-list-item:focus,.app-content-list .app-content-list-item.active{background-color:var(--color-background-dark)}.app-content-list .app-content-list-item:hover .app-content-list-item-checkbox.checkbox+label,.app-content-list .app-content-list-item:focus .app-content-list-item-checkbox.checkbox+label,.app-content-list .app-content-list-item.active .app-content-list-item-checkbox.checkbox+label{display:flex}.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox+label,.app-content-list .app-content-list-item .app-content-list-item-star{position:absolute;height:40px;width:40px;z-index:50}.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox:checked+label,.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox:hover+label,.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox:focus+label,.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox.active+label{display:flex}.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox:checked+label+.app-content-list-item-icon,.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox:hover+label+.app-content-list-item-icon,.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox:focus+label+.app-content-list-item-icon,.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox.active+label+.app-content-list-item-icon{opacity:.7}.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox+label{top:14px;left:7px;display:none}.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox+label::before{margin:0}.app-content-list .app-content-list-item .app-content-list-item-checkbox.checkbox+label~.app-content-list-item-star{display:none}.app-content-list .app-content-list-item .app-content-list-item-star{display:flex;top:10px;left:32px;background-size:16px;height:20px;width:20px;margin:0;padding:0}.app-content-list .app-content-list-item .app-content-list-item-icon{position:absolute;display:inline-block;height:40px;width:40px;line-height:40px;border-radius:50%;vertical-align:middle;margin-right:10px;color:#fff;text-align:center;font-size:1.5em;text-transform:capitalize;object-fit:cover;user-select:none;cursor:pointer;top:50%;margin-top:-20px}.app-content-list .app-content-list-item .app-content-list-item-line-one,.app-content-list .app-content-list-item .app-content-list-item-line-two{display:block;padding-left:50px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;order:1;flex:1 1 0px;padding-right:10px;cursor:pointer}.app-content-list .app-content-list-item .app-content-list-item-line-two{opacity:.5;order:3;flex:1 0;flex-basis:calc(100% - 44px)}.app-content-list .app-content-list-item .app-content-list-item-details{order:2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100px;opacity:.5;font-size:80%;user-select:none}.app-content-list .app-content-list-item .app-content-list-item-menu{order:4;position:relative}.app-content-list .app-content-list-item .app-content-list-item-menu .popovermenu{margin:0;right:-2px}.app-content-list.selection .app-content-list-item-checkbox.checkbox+label{display:flex}.pull-left{float:left}.pull-right{float:right}.clear-left{clear:left}.clear-right{clear:right}.clear-both{clear:both}.hidden{display:none}.hidden-visually{position:absolute;left:-10000px;top:-10000px;width:1px;height:1px;overflow:hidden}.bold{font-weight:600}.center{text-align:center}.inlineblock{display:inline-block}::-moz-focus-inner{border:0}@media only screen and (width < 1024px){#dropdown{margin-right:10% !important;width:80% !important}.ui-autocomplete{z-index:1000 !important}.error-wide{width:100%;margin-left:0 !important;box-sizing:border-box}#app-navigation:not(.vue){transform:translateX(-300px);position:fixed;height:var(--body-height)}.snapjs-left #app-navigation{transform:translateX(0)}#app-navigation:not(.hidden)+#app-content{margin-left:0}.skip-navigation.skip-content{left:3px;margin-left:0}.app-content-list{background:var(--color-main-background);flex:1 1 100%;max-height:unset;max-width:100%}.app-content-list+.app-content-details{display:none}.app-content-list.showdetails{display:none}.app-content-list.showdetails+.app-content-details{display:initial}#app-content.showdetails #app-navigation-toggle{transform:translateX(-44px)}#app-content.showdetails #app-navigation-toggle-back{position:fixed;display:inline-block !important;top:50px;left:0;width:44px;height:44px;z-index:1050;background-color:rgba(255,255,255,.7);cursor:pointer;opacity:.6;transform:rotate(90deg)}#app-content.showdetails .app-content-list{transform:translateX(-100%)}#app-navigation-toggle{position:fixed;display:inline-block !important;left:0;width:44px;height:44px;z-index:1050;cursor:pointer;opacity:.6}#app-navigation-toggle:hover,#app-navigation-toggle:focus{opacity:1}#app-navigation+#app-content .files-controls{padding-left:44px}#body-user .app-files.viewer-mode .files-controls{padding-left:0 !important}.app-files.viewer-mode #app-navigation-toggle{display:none !important}table.multiselect thead{left:0 !important}#usersearchform{display:none}#body-settings .files-controls{min-width:1024px !important}#oc-dialog-filepicker-content .filelist .column-size,#oc-dialog-filepicker-content .filelist .column-mtime,#oc-dialog-filepicker-content .filelist .filesize,#oc-dialog-filepicker-content .filelist .date{display:none}#oc-dialog-filepicker-content .filelist .filename{max-width:100%}.snapjs-left table.multiselect thead{top:44px}}@media only screen and (max-width: 480px){#header .header-right>div>.menu{max-width:calc(100vw - 10px);position:fixed}#header .header-right>div>.menu::after{display:none !important}#header .header-right>div.openedMenu::after{display:block}#header .header-right>div::after{border:10px solid rgba(0,0,0,0);border-bottom-color:var(--color-main-background);bottom:0;content:" ";height:0;width:0;position:absolute;pointer-events:none;right:15px;z-index:2001;display:none}#header .header-right>div#settings::after{right:27px}}.tooltip{position:absolute;display:block;font-family:var(--font-face);font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.6;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;overflow-wrap:anywhere;font-size:12px;opacity:0;z-index:100000;margin-top:-3px;padding:10px 0;filter:drop-shadow(0 1px 10px var(--color-box-shadow))}.tooltip.in,.tooltip.show,.tooltip.tooltip[aria-hidden=false]{visibility:visible;opacity:1;transition:opacity .15s}.tooltip.top .tooltip-arrow,.tooltip[x-placement^=top]{left:50%;margin-left:-10px}.tooltip.bottom,.tooltip[x-placement^=bottom]{margin-top:3px;padding:10px 0}.tooltip.right,.tooltip[x-placement^=right]{margin-left:3px;padding:0 10px}.tooltip.right .tooltip-arrow,.tooltip[x-placement^=right] .tooltip-arrow{top:50%;left:0;margin-top:-10px;border-width:10px 10px 10px 0;border-right-color:var(--color-main-background)}.tooltip.left,.tooltip[x-placement^=left]{margin-left:-3px;padding:0 5px}.tooltip.left .tooltip-arrow,.tooltip[x-placement^=left] .tooltip-arrow{top:50%;right:0;margin-top:-10px;border-width:10px 0 10px 10px;border-left-color:var(--color-main-background)}.tooltip.top .tooltip-arrow,.tooltip.top .arrow,.tooltip.top-left .tooltip-arrow,.tooltip.top-left .arrow,.tooltip[x-placement^=top] .tooltip-arrow,.tooltip[x-placement^=top] .arrow,.tooltip.top-right .tooltip-arrow,.tooltip.top-right .arrow{bottom:0;border-width:10px 10px 0;border-top-color:var(--color-main-background)}.tooltip.top-left .tooltip-arrow{right:10px;margin-bottom:-10px}.tooltip.top-right .tooltip-arrow{left:10px;margin-bottom:-10px}.tooltip.bottom .tooltip-arrow,.tooltip.bottom .arrow,.tooltip[x-placement^=bottom] .tooltip-arrow,.tooltip[x-placement^=bottom] .arrow,.tooltip.bottom-left .tooltip-arrow,.tooltip.bottom-left .arrow,.tooltip.bottom-right .tooltip-arrow,.tooltip.bottom-right .arrow{top:0;border-width:0 10px 10px;border-bottom-color:var(--color-main-background)}.tooltip[x-placement^=bottom] .tooltip-arrow,.tooltip.bottom .tooltip-arrow{left:50%;margin-left:-10px}.tooltip.bottom-left .tooltip-arrow{right:10px;margin-top:-10px}.tooltip.bottom-right .tooltip-arrow{left:10px;margin-top:-10px}.tooltip-inner{max-width:350px;padding:5px 8px;background-color:var(--color-main-background);color:var(--color-main-text);text-align:center;border-radius:var(--border-radius)}.tooltip-arrow,.tooltip .arrow{position:absolute;width:0;height:0;border-color:rgba(0,0,0,0);border-style:solid}.toastify.dialogs{min-width:200px;background:none;background-color:var(--color-main-background);color:var(--color-main-text);box-shadow:0 0 6px 0 var(--color-box-shadow);padding:0 12px;margin-top:45px;position:fixed;z-index:10100;border-radius:var(--border-radius);display:flex;align-items:center}.toastify.dialogs .toast-undo-container{display:flex;align-items:center}.toastify.dialogs .toast-undo-button,.toastify.dialogs .toast-close{position:static;overflow:hidden;box-sizing:border-box;min-width:44px;height:100%;padding:12px;white-space:nowrap;background-repeat:no-repeat;background-position:center;background-color:transparent;min-height:0}.toastify.dialogs .toast-undo-button.toast-close,.toastify.dialogs .toast-close.toast-close{text-indent:0;opacity:.4;border:none;min-height:44px;margin-left:10px;font-size:0}.toastify.dialogs .toast-undo-button.toast-close::before,.toastify.dialogs .toast-close.toast-close::before{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMTYiIHdpZHRoPSIxNiI+CiAgPHBhdGggZD0iTTE0IDEyLjNMMTIuMyAxNCA4IDkuNyAzLjcgMTQgMiAxMi4zIDYuMyA4IDIgMy43IDMuNyAyIDggNi4zIDEyLjMgMiAxNCAzLjcgOS43IDh6Ii8+Cjwvc3ZnPgo=");content:" ";filter:var(--background-invert-if-dark);display:inline-block;width:16px;height:16px}.toastify.dialogs .toast-undo-button.toast-undo-button,.toastify.dialogs .toast-close.toast-undo-button{margin:3px;height:calc(100% - 6px);margin-left:12px}.toastify.dialogs .toast-undo-button:hover,.toastify.dialogs .toast-undo-button:focus,.toastify.dialogs .toast-undo-button:active,.toastify.dialogs .toast-close:hover,.toastify.dialogs .toast-close:focus,.toastify.dialogs .toast-close:active{cursor:pointer;opacity:1}.toastify.dialogs.toastify-top{right:10px}.toastify.dialogs.toast-with-click{cursor:pointer}.toastify.dialogs.toast-error{border-left:3px solid var(--color-error)}.toastify.dialogs.toast-info{border-left:3px solid var(--color-primary)}.toastify.dialogs.toast-warning{border-left:3px solid var(--color-warning)}.toastify.dialogs.toast-success{border-left:3px solid var(--color-success)}.toastify.dialogs.toast-undo{border-left:3px solid var(--color-success)}.theme--dark .toastify.dialogs .toast-close.toast-close::before{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMTYiIHdpZHRoPSIxNiI+CiAgPHBhdGggZD0iTTE0IDEyLjNMMTIuMyAxNCA4IDkuNyAzLjcgMTQgMiAxMi4zIDYuMyA4IDIgMy43IDMuNyAyIDggNi4zIDEyLjMgMiAxNCAzLjcgOS43IDh6IiBzdHlsZT0iZmlsbC1vcGFjaXR5OjE7ZmlsbDojZmZmZmZmIi8+Cjwvc3ZnPgo=")}#body-public .header-right #header-primary-action a{color:var(--color-primary-text)}#body-public .header-right #header-secondary-action ul li{min-width:270px}#body-public .header-right #header-secondary-action #header-actions-toggle{background-color:rgba(0,0,0,0);border-color:rgba(0,0,0,0);filter:var(--background-invert-if-dark)}#body-public .header-right #header-secondary-action #header-actions-toggle:hover,#body-public .header-right #header-secondary-action #header-actions-toggle:focus,#body-public .header-right #header-secondary-action #header-actions-toggle:active{opacity:1}#body-public .header-right #header-secondary-action #external-share-menu-item form{display:flex}#body-public .header-right #header-secondary-action #external-share-menu-item .hidden{display:none}#body-public .header-right #header-secondary-action #external-share-menu-item #save-button-confirm{flex-grow:0}#body-public #content{min-height:calc(100% - 65px)}#body-public.layout-base #content{padding-top:0}#body-public p.info{margin:20px auto;text-shadow:0 0 2px rgba(0,0,0,.4);-moz-user-select:none;-ms-user-select:none;user-select:none}#body-public p.info,#body-public form fieldset legend,#body-public #datadirContent label,#body-public form fieldset .warning-info,#body-public form input[type=checkbox]+label{text-align:center}#body-public footer{position:fixed;display:flex;align-items:center;justify-content:center;height:65px;flex-direction:column;bottom:0;width:calc(100% - 16px);margin:8px;background-color:var(--color-main-background);border-radius:var(--border-radius-large)}#body-public footer p{text-align:center;color:var(--color-text-lighter)}#body-public footer p a{color:var(--color-text-lighter);font-weight:bold;white-space:nowrap;padding:10px;margin:-10px;line-height:200%}/*# sourceMappingURL=server.css.map */ diff --git a/core/css/server.css.map b/core/css/server.css.map index a85a301a82f..c532d68d25b 100644 --- a/core/css/server.css.map +++ b/core/css/server.css.map @@ -1 +1 @@ -{"version":3,"sourceRoot":"","sources":["icons.scss","styles.scss","inputs.scss","functions.scss","header.scss","variables.scss","apps.scss","global.scss","fixes.scss","mobile.scss","tooltip.scss","../../node_modules/@nextcloud/dialogs/dist/index.css","public.scss"],"names":[],"mappings":"AA8IQ,8BC5HR,yQACC,SACA,UACA,SACA,oBACA,eACA,oBACA,wBACA,eACA,uDACA,qBAGD,6CACC,aAID,kGAEC,gDACA,aAGD,UACC,YAGD,6DACC,cAGD,KACC,gBAGD,MACC,yBACA,iBACA,mBAGD,cACC,gBACA,mBAGD,YACC,sBAGD,EACC,SACA,6BACA,qBACA,eACA,IACC,eAIF,WACC,aACA,0BAGD,MACC,eACA,QACC,eAIF,0BACC,eAGD,GACC,gBAGD,KACC,mBAEA,mCACA,uCACA,6BACA,6BAGD,mBACC,kBAGD,qBACC,kBACA,sBACA,qBACA,2BACA,2DACA,uBAGD,iBACC,qBACA,aACA,gCAGD,eACC,YACA,aAGD,cACC,eACA,MACA,SACA,OACA,YACA,WACA,aACA,kBACA,gDACA,gCACA,iBACA,eACA,kBACC,cACA,kBACA,UACA,QACA,gBAED,gBACC,gCACA,sDACA,4CACC,qCAOH,oBACC,WACA,YAGD,2BACC,+BAGD,gCACC,+BAGD,0BACC,kCACA,yCACA,+BACA,4BAMD,YACC,8CACA,gCAMD,kBACC,sBAKD,4BAEC,oCACA,kBACA,gBACA,WACA,sDACC,gBAED,sEACC,gBAED,kCACC,mBAED,oHAEC,qBACA,YACA,WACA,mBACA,gcAEC,WAOH,sBACC,WASD,oCACC,kBACA,yBACA,sBACA,qBACA,iBAKD,kBACC,kBACA,UACA,SACA,YAGD,8BACC,WACA,oBACA,wBACA,wBAGD,2EACC,WAED,oGACC,0CACA,UACA,qBAGD,mDACC,6BACA,YACA,WACA,yCACA,4BACA,2BACA,WAOA,qEACC,UAED,qEACC,UAIF,wEACC,aAGD,2CACC,mBAGD,yBACC,kBACA,qBACA,iBAED,qBACC,cACA,QACA,iBACA,kBACA,aAKD,4CACC,eACA,YACA,mCACA,6BACA,qDAIA,2BACC,4BAKD,wBACC,sBACA,4BACA,+BACC,2CACA,qBACA,kBAGF,0BACC,qBACA,gBAIF,YACC,YACA,8BACA,oBACC,sBAIF,eACC,2CAUD,mBACC,kBACA,cACA,2BACC,kBACA,cAIF,UACC,gBAGD,8CACC,UAIA,oGAGC,WAIF,mBACC,WACA,kBACA,QAEA,kDACC,UAIF,WACC,WACA,YAGD,eACC,WAIA,8CACC,UAKD,kDACC,UAKD,0CACC,UAKD,8CACC,8CAIF,KACC,mFAGD,OACC,gBACA,YACA,eACA,qBACA,UACC,qBAIF,2FACC,gBACA,uBAGD,2BACC,yDAGD,2BACC,6DAID,yBACC,gBACA,gBACA,WACA,mCACA,YACA,wBAEA,sKAGC,+BACA,mBAED,2CACC,YACA,eACA,YACA,8CACA,6BAEA,gEACC,cACA,mBAED,oDACC,WAEA,8EACC,yEAED,8EACC,wEAGF,oEACC,UAID,oDACC,mBACA,gCACA,WACA,WACA,YAED,0DACC,yBAGA,+FACC,gDAGD,wOAGC,sCACA,gCACA,iBAGD,yNAEC,gCACA,WAMJ,wCACC,gCACA,wCAKD,yBACC,2BACA,sBACA,mCACA,wBAEA,4CACC,uBAGD,sKAGC,+BACA,mBAED,2CACC,YACA,eACA,YACA,8CACA,6BAEA,gEACC,cACA,mBAIF,qFACC,iBAGA,iDACC,mBACA,gCACA,WACA,yDACC,UACA,WACA,iBAGF,uDACC,yBAGA,0TAIC,sCACA,gCACA,iBAGD,4FACC,gCAGD,qEACC,2CASH,oGACC,aACA,iBACA,8BACA,0GACC,cACA,SACA,YACA,YACA,WACA,aACA,mBACA,uBACA,8GACC,kBACA,kBACA,mBACA,6BACA,cACA,iBACA,WACA,YACA,YACA,eAOJ,8BACC,kBACA,aACA,sBAEA,uCACC,eACA,sBACA,oBAEA,yDACC,cACA,uCACA,4BACA,gCAGA,6DACC,eAED,uDACC,iBAED,oEACC,YACA,YAKH,mDACC,kBACA,+BACA,YACA,SACA,aACA,WACA,QACA,MAEA,4KAGC,0CACA,UAIF,iDACC,eACA,YACA,sBACA,oBACA,WACA,gBACA,eACA,8CACA,0CACA,wCACA,kBACA,UACA,QACA,QAEA,gEACC,sCACA,0BACA,WACA,YACA,WACA,WAGD,mDACC,WACA,YACA,gBAGD,uDACC,SACA,gBACA,4DACC,aACA,YAMH,kDACC,sBACA,qBACA,gBACA,OAGA,WACA,kBAED,4CACC,oCACA,kBACA,gBACA,WACA,aAED,wCACC,8CACA,WAED,0DAEC,kBACA,mBAEC,mEACC,4CACA,8CACA,sEACC,UACA,YAIH,0EACC,cACA,aACA,YACA,sBACA,2BACA,sBAED,+EACC,iBACA,iBAGD,6EACC,WACA,WACA,gBACA,qBACA,2BACA,WAED,qQAGC,kBAED,oLAEC,mBAGD,6DACC,aACA,4CAED,2EACC,mBAED,oEACC,gBACA,mBACA,uBACA,qBACA,4BACA,kBACA,4BACA,eAEA,YACA,oFACC,aACA,2FACC,gBACA,gBACA,uBAED,0FACC,gBAIH,oIACC,WAED,oEACC,iBAED,oEAIC,aACA,sBAEA,0EACC,aACA,+CACA,6BACA,aACA,cAEA,6EACC,cACA,kBACA,mCACA,QAhBS,KAiBT,aACA,sBACA,YAGA,gFACC,YACA,UACA,kBACA,mCAEA,yFACC,oBACA,+BACA,wBACA,YA/BU,KAgCV,eACA,yGACC,uBAGF,yFACC,iBACA,WAED,qFACC,aAON,2DACC,gDAIF,WACC,0BAGD,aACC,WACA,sBAKD,YACC,6BAMA,qBACC,WACA,aAED,wBACC,cACA,gDACA,WACA,aAED,2BACC,WACA,YACA,6BACC,WAGF,wBACC,wCACA,kBACA,mBACA,gBACA,uBACA,0CACA,kCACA,6DACC,0CAGF,sBACC,UACA,WAKF,YACC,oBACA,YAED,SACC,oBACA,kDACA,4BACA,iCACA,YACA,0BACA,cACA,QACA,kBACA,mBACC,QACA,kBACA,qBACC,WAIA,wFACC,cAIF,gCACC,SACA,iBACA,mCACC,iBACA,gBACA,kBACA,kBACA,+DACC,+EAGF,+CACC,aAIH,gBACC,aACA,uBACC,QAGF,yBAEC,kBACA,aACA,WACA,uBACA,mBACA,gBACA,cAEA,gBAEA,8FAGC,oBAGF,yBACC,UACA,WAID,oBACC,iBACA,kBAEA,2BACC,eAGF,+DACC,UAEA,0JAEC,WAOH,QACC,UACA,yCACA,sCACA,qCACA,oCACA,iCACA,oBACC,UAOD,+CACC,SACA,kBAED,mDACC,gBAKF,cACC,mBAMD,mBACC,aACA,QACA,SACA,UCliCD,kFACC,6BAED,uGACC,wCAED,sDACI,kCAMJ,iHAUC,YACA,WAdgB,KAehB,sBASD,wBACI,aAIJ,yJAUC,qBACA,iBACA,eACA,8CACA,6BACA,0CACA,mCACA,aACA,mCACA,YAEC,irCAIC,0CACA,aAED,qZACC,aACA,8CACA,8BAED,scACC,0CAGF,wNACC,8CACA,6BACA,eACA,WAED,wNACC,gBAED,oPACC,mDAGD,iNACC,8CACA,0CACA,gCACA,eAGA,kvBAEC,uCAIA,mjCAGC,oDACA,gDAED,gwBAEC,4CAED,2WACC,qCAGF,gRAEC,8CACA,qCACA,eAKH,2BACC,qBACA,gBACA,eACA,8CACA,gCACA,gDACA,aACA,mCAEA,8CACA,gCACA,eACA,WAKA,4KACC,6BACA,0BAEA,OAzIe,KA2IhB,0EAIC,YACA,WAID,kBACC,WACA,cACA,gBACA,WACA,eAED,mBACC,SACA,QAED,iBACC,cAKF,6GASC,iBACA,mCACA,WACA,WAjLgB,KAkLhB,eACA,sBACA,8CAEA,mKACC,eAIF,qMAcC,qBACA,eACA,mCACA,8CACA,6BACA,iDACA,YACA,aACA,yCACA,uBACA,eACA,+0BACC,0CAED,yRACC,YAIF,mCACC,8CACA,6BAGD,mCACC,aACA,YAID,OACC,kEACA,gBACA,8CACA,8BASA,2DACC,eAIA,sFACC,eAMH,sGAQC,iBACA,wCAGA,gMACC,SAGD,oIACC,+CACA,2CACA,sBAWA,4MAEC,qBACA,2BACA,WAUD,kGACC,6BACA,2CACA,mFACA,iBACA,4BAEA,yDACA,UACA,OArTc,KAsTd,MAtTc,KAuTd,gBACA,eACA,eACA,6HACC,eCrRH,+CD6RG,yOACC,gCAID,4qBAGC,qDACA,8CACA,6vBACC,uDAQH,+VACC,qDACA,2CAEA,UAQJ,uBAEC,eAED,2BAEC,mBAUC,4GAEC,kBACA,cACA,SACA,UACA,WACA,gBACA,oIACC,iBAED,4WAEC,eAED,gKACC,WACA,qBACA,OAxBkB,KAyBlB,MAzBkB,KA0BlB,sBACA,kBACA,qBACA,2CAED,oeAEC,0CAED,4LACC,oBACA,qCACA,kBACA,mBAED,4bAIC,8DACA,8CACA,0CAED,oMACC,2CACA,0DAED,oOACC,+CAID,gJACC,qBACA,iBAED,oMACC,cA/DkB,KAmEnB,mFACC,kBACA,OArEkB,KAsElB,MAtEkB,KAuElB,2BACA,2BAED,mGACC,yDAED,+GACC,0DAOD,gZAEC,qBAED,wUACC,aAzFyB,KA2F1B,4NACC,8DACA,yBACA,qBAED,gOACC,oCACA,6CAED,gQACC,8DACA,6CACA,yBAID,8OAEC,0CACA,6BACA,+DAED,6HACC,gEAED,mHACC,WAOJ,iBACC,gBACA,8CACA,qCACC,sCAED,yBACC,qBACA,iBACA,sBACA,6BACC,eAGF,uCACC,gBACA,qEACA,yCAED,kCACC,iBACA,SACA,UACA,wDACC,mBACA,gBACA,uBACA,6DACC,eACA,gEACC,eACA,iBAIH,6JAGC,kBACA,kBACA,aACA,+BACA,eACA,gCAGA,mEACC,8CAGF,uDACE,8CACA,6BAMH,oGAEC,eAID,mHAEC,gBACA,mBACA,uBACA,wCACA,2CACA,uBACA,yCACA,0CACA,SACA,YACA,gBACA,6IACC,kCAED,iKACC,iBACA,iBACA,stBAIC,sBACA,8CACA,gCACA,0CAED,2NACC,aAGF,2KACC,iBACA,gBACA,gBACA,6BACA,yMACC,2BAKJ,sBACC,qBACA,+DACC,aACA,eACA,kEACC,WAGF,uCACC,gBACA,mBACA,uBACA,wCACA,2CACA,uBACA,yCACA,0CACA,SACA,iBACA,gBACA,oDACC,kCAED,8DACC,iBACA,iBACA,sBACA,8CACA,0CACA,2FACC,aAED,8JAEC,qCACA,iCAGF,sDACC,gBACA,gBACA,YACA,wDACC,mEACA,WAGF,2LAGC,WAED,mEACC,iBAMH,UACC,qBACA,qBACA,2BACC,wBACA,eACA,yCACC,iBACA,iBACA,sBACA,8CACA,gCACA,0CACA,oBACA,mBACA,gDACC,gBAIH,yBACC,UACA,4BACC,YACA,kBACA,kBACA,+BACA,eACA,gCACA,8BACC,mBACA,gBACA,uBACA,YACA,wBACA,SACA,eACA,eACA,2BACA,yBACA,sBACA,qBACA,iBACA,oBACA,mBACA,0CACA,yBACA,sCACC,YACA,4CACA,4BACA,2BACA,eACA,gBACA,cACA,WACA,iBACA,kBAGF,sCACC,6BAED,qCACC,8CACA,6BACA,6CACC,mBAQL,mBACC,cACA,WACA,UACA,cACA,8CACA,mCACA,gBACA,WACA,gBAEC,2CACC,8BAED,gDACC,8BAGF,yCACC,yBAED,sCACC,mCACA,gCACA,iCAED,2CACC,mCACA,gCACA,iCAKF,iBACC,QAEC,0BAED,QAEC,yBAED,YAGC,0BAED,QAEC,0BAGF,OACC,qBACA,uBACA,mCAKD,cACC,kBACA,cACA,aACA,UACA,WACA,gBAGD,kEAGC,oCACG,mCE/yBJ,mBAEC,yBACA,sBACA,qBACA,6PACC,aAGD,+QACC,YACA,kBACA,2BACA,WACA,WACA,kBACA,2CACA,SACA,UAGD,gLACC,WAIA,kPACC,WAGD,+HACC,SAOH,+DAGC,oBACA,kBACA,MACA,WACA,aACA,OC2Ce,KD1Cf,sBACA,8BAID,WACC,cACA,kBACA,kBACA,wBACA,sBACA,UACA,mBACA,aACA,eACA,gBACA,WAEA,mCACC,UAaD,gCACC,8CACA,sDACA,yCACA,sBACA,aACA,kBACA,gBAfD,gBACA,oCAgBC,UACA,SACA,SACA,gBAEA,kDACC,aAID,sCACC,gCACA,iDACA,YACA,YACA,SACA,QACA,kBACA,oBACA,WAGD,uEAEC,iCAzCF,gBACA,oCA4CA,cACC,oBACA,yFACA,4BACA,wBACA,2BACA,WACA,kBACA,UACA,QACA,WAEA,gFAGD,kCACC,aACA,mBACA,cAGD,sFAEC,oBACA,mBAGD,0CACC,SACA,mBACA,YAGD,4CACC,yBACA,cAKA,qDAEC,YACA,kBACA,6EACC,aACA,uBACA,mBACA,MC3EY,KD4EZ,YACA,eACA,YACA,UACA,aAEA,yFACC,UAGD,yGACC,aASL,0CACC,YAKD,gBACC,gCACA,eACA,iBACA,SACA,UACA,kBACA,gBACA,uBAEA,cAGD,kBACC,gCACA,kBACA,gBACA,eACA,iBACA,gBACA,uBAID,cACC,kBACA,gBACA,aACA,WACA,SACA,YACA,aAEA,2BACC,ICxIc,KD+If,gDACC,mBACA,eAED,gJAEC,qBACA,YACA,WJjOF,iCACC,4BACA,2BACA,eACA,gBAGD,iBACC,kDAID,sGAMC,kBACA,0IACC,UACA,WACA,YACA,WACA,uBACA,kBACA,QACA,SACA,mBACA,6CACA,qCACA,gCACA,4BACA,wBACA,4CACA,2CAEA,wCAEA,gYAGC,uCAKH,wDAEC,2CACA,4CAGD,yDAEC,YACA,WACA,qBAKA,yJACC,2CAED,iMACC,gDAED,yMACC,iDAED,iPACC,sDAIF,kBACC,KACC,uBAED,GACC,0BAIF,SACC,gCAGD,yKAQC,wDM3GD,MACC,gEAEA,0GACA,8FAGD,sCACC,MACC,6BACA,8BAKF,KACC,WACA,YACA,kBAEA,6EAGD,KAEC,6EAEA,0EACA,sBACA,2BACA,eACA,WACA,iDAKD,GACC,iBACA,eACA,mBACA,iBACA,8BAGD,GACC,eACA,cACA,8BAGD,GACC,eAID,GACC,kBACA,gCAGD,GACC,eAGD,MAEC,qBACA,aACA,eAGD,GACC,YACA,mBACA,iBAGD,IACC,iBACA,sBACA,kCACA,mCACA,qBACA,mBAMD,wBACC,sBAKD,0BAEC,8DAEA,MDfkB,MCgBlB,YACA,gBACA,kBACA,mDACA,8CACA,+EACA,gBACA,YACA,sBACA,qBACA,iBACA,aACA,sBACA,YACA,cAGA,8CACC,cACA,6CACA,qDACC,qBACA,WACA,aACA,kBACA,gCACA,gBACA,SAIF,6BACC,kBAED,6BACC,kBACA,YACA,WACA,kBACA,gBACA,sBACA,aACA,sBACA,6CACA,iBAEA,wCACC,oDAGD,gCACC,oBACA,eACA,QACA,cACA,SACA,kBACA,WACA,wCAGA,uCACC,QACA,oDACC,2BAIF,8DAEC,6BAED,2DAIC,6BAKA,oKAEC,+CAGF,gDACC,gDACA,aAMA,gVAEC,4CAKF,yDACC,UACA,SAMA,qGAEC,aAIF,uDACC,iBACA,iBACA,eACA,mBACA,uBACA,2BACA,iBACA,oBAEA,yEACC,gBAKF,mCACC,cACA,WACA,kBACA,sCACC,oBACA,eACA,kBACA,WACA,kBAIC,oLAEC,wCACA,+CAKD,gMAEC,wCACA,4CAKF,+DACC,UAGD,oEAEC,gBACA,kBAGD,iEAEC,gBAGA,6BAMJ,sEAEC,kBACA,sBAGC,sRAGC,oCAIF,0EACC,0BACA,gCACA,4BACA,cACA,8BACA,iBACA,gBACA,sBACA,gBACA,sBACA,mBACA,uBACA,wCACA,6BACA,aACA,YAGA,kFACC,sBACA,gHACC,qBAGF,0GACC,kBACA,WACA,YAEA,wCAID,kIACC,qBACA,YACA,0MACC,2BAKH,gIACC,kBACA,cACA,YACA,WACA,YACA,YACA,kBACA,eACA,wCAEA,oIAEC,oCAKF,4HACC,SAID,4IACC,UACA,YAED,kJACC,wBACA,YAIH,iCACC,aAMD,kMAEC,SACA,WACA,+BACA,4BACA,2BACA,4ZAEC,+BACA,UAUD,iDACC,UACA,kBACA,WACA,YACA,SACA,YAIA,OAEA,+DACC,UACA,eACA,gDACA,gBAGF,8CACC,kBACA,YACA,WACA,SACA,UACA,gBH5XF,6CG8XE,qBACA,4BACA,2BACA,YACA,gBACA,wBACA,gBACA,YACA,UACA,iCACA,6BACA,yBACA,YACA,kBACA,qCAMD,qDACC,kBAIA,wGACC,UAED,8FACC,sBAED,oJACC,oCAID,mDACC,4BACA,wBACA,oBAQH,sDACC,cACA,yDACC,wBACA,mBACA,yBAED,yDACC,sBACA,YAED,6DACC,YACA,WACA,SACA,gBAIA,gJHhcF,uCGmcE,sNAEC,+BACA,UAGF,0FACC,gBACA,iBACA,cACA,iBACA,eAEA,sGACC,UACA,kBACA,2GACC,gBACA,mBACA,sCACA,gCASJ,qDACC,iBACA,kBACA,cACA,uBACA,qCACA,UACA,kBACA,8CACA,WACA,mHAEC,oBACA,WAED,2DACC,YACA,eACA,YACA,kIAGC,UAGF,sEACC,WACA,YACA,6BACA,0BAED,wIAEC,WACA,YACA,cACA,0KACC,2BAED,4KACC,iBAED,8JACC,gDACA,6CACA,4BACA,yBAQH,wDACC,oBACA,kBACA,4BACA,kGACC,kBACA,mBACA,uBACA,gBACA,aACA,iBAED,6FACC,SACA,YACA,WACA,iBACA,sMAEC,UAQH,6GAEC,uBACA,2FAGA,kBACA,OACA,8CACA,sBAMD,yCACC,gDACA,wCACA,oBAGD,iCACC,yBAGD,iHAEC,qBAMF,SACC,sBACA,gBACA,oCACA,gBACA,UACA,aACA,kDACA,0BACA,2CACA,cAEA,kCACC,eAIF,2CACC,SACC,kDACA,mDAED,gBACC,kDAED,aACC,oDAcF,aACC,aACA,8CACA,iBACA,cACA,iBACA,YAGA,kCACC,gBAID,kCACC,aACA,kBACA,oBAGA,gBAGA,uDAEC,eACA,mFACC,aAWJ,aACC,WACA,UDvnBmB,MCwnBnB,UDvnBmB,MCwnBnB,cACA,wBACA,gBACA,ID9nBe,KC+nBf,QACA,gBACA,kBACA,aACA,aACA,0BACA,wCACA,0CACA,cAEA,uBACC,aAOF,cAEC,gBAGC,oFACC,cAKH,sBACC,aACA,6CACA,cACA,kDAEA,iBACA,gBACA,sBAGA,uCACC,UAGD,iCACC,uBACA,gCAOE,4NACC,qBACA,WACA,cAOL,qBACC,sBACA,+BACA,gBACA,oDACA,6CACA,cAEA,sCACC,aACA,mBACA,YACA,WACA,UACA,SACA,+BACA,gBACA,SACA,oDACA,gBACA,mBACA,eACA,WAGA,6BAEA,6CACC,yCACA,8CACA,eAED,wFAEC,+CAGD,8CACC,2CACA,gCACA,4BACA,WACA,WACA,YACA,MACA,OACA,cAGD,oDACC,2DACA,gCAMH,SACC,cACA,aACA,mBACA,gBACC,wBAIA,yDAEC,oBACA,iBAIH,aACC,kBACA,gBACA,iBACA,mBAGD,QACC,UACA,yCACA,sCACA,qCACA,oCACA,iCACA,oBACC,UAKF,YACC,aACA,mBAEA,uBACC,aACA,sBACA,YACA,kBACA,mBACA,gBACA,uBACA,eACA,gCACA,kBACA,YAEA,8BACC,aAID,mCACC,kBAED,kCACC,mBAGD,6BACC,qBACA,WACA,YACA,qBACA,sBACA,gBACA,iBACA,WACA,eAGD,yBACC,gCACA,kBACA,gBACA,uBAED,gCACC,iBAED,0FAGC,kBACA,6BACA,kDAIH,eACC,WACA,oBACC,oBAWD,0DACC,wCAIA,gFACC,YAKH,gDAGC,kBACA,8CACA,6BACA,yCACA,YACA,YACA,WACA,gBACA,QACA,sDACA,aACA,mBAEA,kEACC,YAKA,UAEA,2BACA,YACA,SACA,QACA,kBACA,oBACA,iDACA,iBAGD,oFACC,0BACA,UACA,eACA,sGACC,UACA,0BAIF,8EACC,WACA,OACA,eACA,gGACC,SACA,WAIF,+DACC,cAGD,+GACC,SAGD,yDAEC,wBACA,sBAED,yDACC,aACA,cAEA,8EACC,aAGD,oOAGC,eACA,YAhGkB,KAiGlB,SACA,yCACA,+BACA,aACA,uBACA,YACA,SACA,mBACA,gBACA,WACA,6BACA,mBAEA,whDAIC,YACA,aACA,gCACA,gBApHe,KAsHhB,yzBAIC,yBAOC,gvGACC,YAnIe,KAuIlB,+tBAEC,iCAED,ojBAEC,+CAED,4nBAEC,kDAED,mSACC,wCACA,4CAGD,mSACC,2BAED,iRACC,eACA,mBAED,sPACC,YACA,kBACA,cACA,mBAED,mSACC,SACA,gBAGD,gVACC,8BAID,wQACC,MA/Ke,KAgLf,aAGD,uyBAEC,qBACA,WAED,yeACC,mBAED,8cACC,mBAED,2xBACC,YAED,iRACC,aACA,cAGA,mBACA,mbACC,gBAIF,04BAEC,cAGD,0RACC,UAnNiB,KAoNjB,gBACA,aACA,cAEA,4bACC,gBAQA,2hDACC,gBAMD,ygDACC,kBAKJ,8EACC,UACA,6FACC,UAcD,+EACC,MAhQiB,KAiQjB,OAjQiB,KA0QlB,6CACC,WACA,YAOJ,kBACC,wBACA,kBACA,MACA,2CACA,aACA,sBACA,uCACA,gBACA,gBACA,gBACA,kBACA,eACA,UD1nCgB,MC2nChB,UD1nCgB,MC6nChB,yCACC,kBACA,YACA,eACA,iBACA,aACA,eACA,mBACA,cAKC,8RAEC,QACA,WACA,YACA,YACA,aACA,WACA,eACA,4mBAEC,WAED,wtBAEC,WACA,ghDAEC,UAIF,kVACC,UAKH,8IAGC,8CAEA,2RACC,aAIF,6JAEC,kBACA,YACA,WACA,WAQC,2XAEC,aAEA,2eACC,WAIH,wFACC,SACA,SAEA,aACA,gGACC,SAGD,oHACC,aAKH,qEACC,aACA,SACA,UACA,qBACA,YACA,WACA,SACA,UAGD,qEACC,kBACA,qBACA,YACA,WACA,iBACA,kBACA,sBACA,kBACA,WACA,kBACA,gBACA,0BACA,iBACA,iBACA,eACA,QACA,iBAGD,kJAEC,cACA,kBACA,mBACA,gBACA,uBACA,QACA,aACA,mBACA,eAGD,yEACC,WACA,QACA,SACA,6BAGD,wEACC,QACA,mBACA,gBACA,uBACA,gBACA,WACA,cACA,iBAGD,qEACC,QACA,kBACA,kFACC,SAGA,WAIH,2EACC,aCx4CF,WACC,WAGD,YACC,YAGD,YACC,WAGD,aACC,YAGD,YACC,WAGD,QACC,aAGD,iBACC,kBACA,cACA,aACA,UACA,WACA,gBAGD,MACC,gBAGD,QACC,kBAGD,aACC,qBC7CD,mBACC,SCFD,wCAGC,UACC,4BACA,qBAID,iBACC,wBAID,YACC,WACA,yBACA,sBAID,0BACC,6BACA,eACA,0BAGA,6BACC,wBAIF,0CACC,cAGD,8BACC,SACA,cAID,kBACC,wCACA,cAEA,iBAEA,eACA,uCACC,aAED,8BACC,aACA,mDACC,gBAOF,gDACC,4BAED,qDACC,eACA,gCACA,IJoCa,KInCb,OACA,WACA,YACA,aACA,sCACA,eACA,WACA,wBAED,2CACC,4BAKF,uBACC,eACA,gCACA,OACA,WACA,YACA,aACA,eACA,WAED,0DAEC,UAID,6CACC,kBAID,kDACC,0BAED,8CACC,wBAGD,wBACC,kBAID,gBACC,aAED,+BACC,4BAID,2MAIC,aAED,kDACC,eAGD,qCACC,UAMF,0CACC,gCACC,6BACA,eACA,uCACC,wBAMA,4CACC,cAGF,iCACC,gCACA,iDACA,SACA,YACA,SACA,QACA,kBACA,oBACA,WACA,aACA,aAID,0CACC,YCnKH,SACI,kBACA,cACA,6BACA,kBACA,mBACA,sBACA,gBACA,gBACA,gBACA,iBACA,qBACA,iBACA,oBACA,mBACA,kBACA,oBACA,iBACA,uBACA,eACA,UACA,eAEA,gBACA,eACA,uDACA,8DAGI,mBACA,UACA,wBAEJ,uDAEI,SACA,kBAEJ,8CAEI,eACA,eAEJ,4CAEI,gBACA,eACA,0EACI,QACA,OACA,iBACA,8BACA,gDAGR,0CAEI,iBACA,cACA,wEACI,QACA,QACA,iBACA,8BACA,+CAQJ,kPACI,SACA,yBACA,8CAGR,iCACI,WACA,oBAEJ,kCACI,UACA,oBAOA,0QACI,MACA,yBACA,iDAGR,4EAEI,SACA,kBAEJ,oCACI,WACA,iBAEJ,qCACI,UACA,iBAIR,eACI,gBACA,gBACA,8CACA,6BACA,kBACA,mCAGJ,+BACI,kBACA,QACA,SACA,2BACA,mBCpHJ,kBACE,gBACA,gBACA,8CACA,6BACA,6CACA,eACA,gBACA,eACA,cACA,mCACA,aACA,mBAEF,wCACE,aACA,mBAEF,oEAEE,gBACA,gBACA,sBACA,eACA,YACA,aACA,mBACA,4BACA,2BACA,6BACA,aAEF,4FAEE,cACA,WACA,YACA,gBACA,iBACA,YAGF,4GAEE,mRACA,YACA,wCACA,qBACA,WACA,YAEF,wGAEE,WACA,wBACA,iBAEF,kPAIE,eACA,UAEF,+BACE,WAEF,mCACE,eAEF,8BACE,yCAEF,6BACE,2CAEF,gCACE,2CAEF,gCACE,2CAEF,6BACE,2CAOF,gEACE,mUC5GA,oDACC,gCAIA,0DACC,gBAED,2EACC,+BACA,2BACA,wCAEA,oPAGC,UAID,mFACC,aAED,sFACC,aAED,mGACC,YAMJ,sBAEC,6BAKD,kCACC,cAGD,oBACC,iBACA,mCACA,sBACA,qBACA,iBAED,+KAIC,kBAID,oBACC,eACA,aACA,mBACA,uBACA,OArEc,KAsEd,sBACA,SACA,wBACA,WACA,8CACA,yCACA,sBACC,kBACA,gCACA,wBACC,gCACA,iBACA,mBAEA,aACA,aACA","file":"server.css"} \ No newline at end of file +{"version":3,"sourceRoot":"","sources":["icons.scss","styles.scss","inputs.scss","functions.scss","header.scss","variables.scss","apps.scss","global.scss","fixes.scss","mobile.scss","tooltip.scss","../../node_modules/@nextcloud/dialogs/dist/index.css","public.scss"],"names":[],"mappings":"AA8IQ,8BC5HR,yQACC,SACA,UACA,SACA,oBACA,eACA,oBACA,wBACA,eACA,uDACA,qBAGD,6CACC,aAID,kGAEC,gDACA,aAGD,UACC,YAGD,6DACC,cAGD,KACC,gBAGD,MACC,yBACA,iBACA,mBAGD,cACC,gBACA,mBAGD,YACC,sBAGD,EACC,SACA,6BACA,qBACA,eACA,IACC,eAIF,WACC,aACA,0BAGD,MACC,eACA,QACC,eAIF,0BACC,eAGD,GACC,gBAGD,KACC,mBAEA,mCACA,uCACA,6BACA,6BAGD,mBACC,kBAGD,qBACC,kBACA,sBACA,qBACA,2BACA,2DACA,uBAGD,iBACC,qBACA,aACA,gCAGD,eACC,YACA,aAGD,cACC,eACA,MACA,SACA,OACA,YACA,WACA,aACA,kBACA,gDACA,gCACA,iBACA,eACA,kBACC,cACA,kBACA,UACA,QACA,gBAED,gBACC,gCACA,sDACA,4CACC,qCAOH,oBACC,WACA,YAGD,2BACC,+BAGD,gCACC,+BAGD,0BACC,kCACA,yCACA,+BACA,4BAMD,YACC,8CACA,gCAMD,kBACC,sBAKD,4BAEC,oCACA,kBACA,gBACA,WACA,sDACC,gBAED,sEACC,gBAED,kCACC,mBAED,oHAEC,qBACA,YACA,WACA,mBACA,gcAEC,WAOH,sBACC,WASD,oCACC,kBACA,yBACA,sBACA,qBACA,iBAKD,kBACC,kBACA,UACA,SACA,YAGD,8BACC,WACA,oBACA,wBACA,wBAGD,2EACC,WAED,oGACC,0CACA,UACA,qBAGD,mDACC,6BACA,YACA,WACA,yCACA,4BACA,2BACA,WAOA,qEACC,UAED,qEACC,UAIF,wEACC,aAGD,2CACC,mBAGD,yBACC,kBACA,qBACA,iBAED,qBACC,cACA,QACA,iBACA,kBACA,aAKD,4CACC,eACA,YACA,mCACA,6BACA,qDAIA,2BACC,4BAKD,wBACC,sBACA,4BACA,+BACC,2CACA,qBACA,kBAGF,0BACC,qBACA,gBAIF,YACC,YACA,8BACA,oBACC,sBAIF,eACC,2CAUD,mBACC,kBACA,cACA,2BACC,kBACA,cAIF,UACC,gBAGD,8CACC,UAIA,oGAGC,WAIF,mBACC,WACA,kBACA,QAEA,kDACC,UAIF,WACC,WACA,YAGD,eACC,WAIA,8CACC,UAKD,kDACC,UAKD,0CACC,UAKD,8CACC,8CAIF,KACC,mFAGD,OACC,gBACA,YACA,eACA,qBACA,UACC,qBAIF,2FACC,gBACA,uBAGD,2BACC,yDAGD,2BACC,6DAID,yBACC,gBACA,gBACA,WACA,mCACA,YACA,wBAEA,sKAGC,+BACA,mBAED,2CACC,YACA,eACA,YACA,8CACA,6BAEA,gEACC,cACA,mBAED,oDACC,WAEA,8EACC,yEAED,8EACC,wEAGF,oEACC,UAID,oDACC,mBACA,gCACA,WACA,WACA,YAED,0DACC,yBAGA,+FACC,gDAGD,wOAGC,sCACA,gCACA,iBAGD,yNAEC,gCACA,WAMJ,wCACC,gCACA,wCAKD,yBACC,2BACA,sBACA,mCACA,wBAEA,4CACC,uBAGD,sKAGC,+BACA,mBAED,2CACC,YACA,eACA,YACA,8CACA,6BAEA,gEACC,cACA,mBAIF,qFACC,iBAGA,iDACC,mBACA,gCACA,WACA,yDACC,UACA,WACA,iBAGF,uDACC,yBAGA,0TAIC,sCACA,gCACA,iBAGD,4FACC,gCAGD,qEACC,2CASH,oGACC,aACA,iBACA,8BACA,0GACC,cACA,SACA,YACA,YACA,WACA,aACA,mBACA,uBACA,8GACC,kBACA,kBACA,mBACA,6BACA,cACA,iBACA,WACA,YACA,YACA,eAOJ,8BACC,kBACA,aACA,sBAEA,uCACC,eACA,sBACA,oBACA,aAEA,yDACC,cACA,uCACA,4BACA,gCAGA,6DACC,eAED,uDACC,iBAED,oEACC,YACA,YAKH,mDACC,kBACA,+BACA,YACA,SACA,aACA,WACA,QACA,MAEA,4KAGC,0CACA,UAIF,iDACC,eACA,YACA,sBACA,oBACA,WACA,gBACA,eACA,8CACA,0CACA,wCACA,kBACA,UACA,QACA,QAEA,gEACC,sCACA,0BACA,WACA,YACA,WACA,WAGD,mDACC,WACA,YACA,gBAGD,uDACC,SACA,gBACA,4DACC,aACA,YAMH,kDACC,sBACA,qBACA,gBACA,OAGA,WACA,kBAED,4CACC,oCACA,kBACA,gBACA,WACA,aAED,wCACC,8CACA,WAED,0DAEC,kBACA,mBAEC,mEACC,4CACA,8CACA,sEACC,UACA,YAIH,0EACC,cACA,aACA,YACA,sBACA,2BACA,sBAED,+EACC,iBACA,iBAGD,6EACC,WACA,WACA,gBACA,qBACA,2BACA,WAED,qQAGC,kBAED,oLAEC,mBAGD,6DACC,aACA,4CAED,2EACC,mBAED,oEACC,gBACA,mBACA,uBACA,qBACA,4BACA,kBACA,4BACA,eAEA,YACA,oFACC,aACA,2FACC,gBACA,gBACA,uBAED,0FACC,gBAIH,oIACC,WAED,oEACC,iBAED,oEAIC,aACA,sBAEA,0EACC,aACA,+CACA,6BACA,aACA,cAEA,6EACC,cACA,kBACA,mCACA,QAhBS,KAiBT,aACA,sBACA,YAGA,gFACC,YACA,UACA,kBACA,mCAEA,yFACC,oBACA,+BACA,wBACA,YA/BU,KAgCV,eACA,yGACC,uBAGF,yFACC,iBACA,WAED,qFACC,aAON,2DACC,gDAIF,WACC,0BAGD,aACC,WACA,sBAKD,YACC,6BAMA,qBACC,WACA,aAED,wBACC,cACA,gDACA,WACA,aAED,2BACC,WACA,YACA,6BACC,WAGF,wBACC,wCACA,kBACA,mBACA,gBACA,uBACA,0CACA,kCACA,6DACC,0CAGF,sBACC,UACA,WAKF,YACC,oBACA,YAED,SACC,oBACA,kDACA,4BACA,iCACA,YACA,0BACA,cACA,QACA,kBACA,mBACC,QACA,kBACA,qBACC,WAIA,wFACC,cAIF,gCACC,SACA,iBACA,mCACC,iBACA,gBACA,kBACA,kBACA,+DACC,+EAGF,+CACC,aAIH,gBACC,aACA,uBACC,QAGF,yBAEC,kBACA,aACA,WACA,uBACA,mBACA,gBACA,cAEA,gBAEA,8FAGC,oBAGF,yBACC,UACA,WAID,oBACC,iBACA,kBAEA,2BACC,eAGF,+DACC,UAEA,0JAEC,WAOH,QACC,UACA,yCACA,sCACA,qCACA,oCACA,iCACA,oBACC,UAOD,+CACC,SACA,kBAED,mDACC,gBAKF,cACC,mBAMD,mBACC,aACA,QACA,SACA,UCniCD,kFACC,6BAED,uGACC,wCAED,sDACI,kCAMJ,iHAUC,YACA,WAdgB,KAehB,sBASD,wBACI,aAIJ,yJAUC,qBACA,iBACA,eACA,8CACA,6BACA,0CACA,mCACA,aACA,mCACA,YAEC,irCAIC,0CACA,aAED,qZACC,aACA,8CACA,8BAED,scACC,0CAGF,wNACC,8CACA,6BACA,eACA,WAED,wNACC,gBAED,oPACC,mDAGD,iNACC,8CACA,0CACA,gCACA,eAGA,kvBAEC,uCAIA,mjCAGC,oDACA,gDAED,gwBAEC,4CAED,2WACC,qCAGF,gRAEC,8CACA,qCACA,eAKH,2BACC,qBACA,gBACA,eACA,8CACA,gCACA,gDACA,aACA,mCAEA,8CACA,gCACA,eACA,WAKA,4KACC,6BACA,0BAEA,OAzIe,KA2IhB,0EAIC,YACA,WAID,kBACC,WACA,cACA,gBACA,WACA,eAED,mBACC,SACA,QAED,iBACC,cAKF,6GASC,iBACA,mCACA,WACA,WAjLgB,KAkLhB,eACA,sBACA,8CAEA,mKACC,eAIF,qMAcC,qBACA,eACA,mCACA,8CACA,6BACA,iDACA,YACA,aACA,yCACA,uBACA,eACA,+0BACC,0CAED,yRACC,YAIF,mCACC,8CACA,6BAGD,mCACC,aACA,YAID,OACC,kEACA,gBACA,8CACA,8BASA,2DACC,eAIA,sFACC,eAMH,sGAQC,iBACA,wCAGA,gMACC,SAGD,oIACC,+CACA,2CACA,sBAWA,4MAEC,qBACA,2BACA,WAUD,kGACC,6BACA,2CACA,mFACA,iBACA,4BAEA,yDACA,UACA,OArTc,KAsTd,MAtTc,KAuTd,gBACA,eACA,eACA,6HACC,eCrRH,+CD6RG,yOACC,gCAID,4qBAGC,qDACA,8CACA,6vBACC,uDAQH,+VACC,qDACA,2CAEA,UAQJ,uBAEC,eAED,2BAEC,mBAUC,4GAEC,kBACA,cACA,SACA,UACA,WACA,gBACA,oIACC,iBAED,4WAEC,eAED,gKACC,WACA,qBACA,OAxBkB,KAyBlB,MAzBkB,KA0BlB,sBACA,kBACA,qBACA,2CAED,oeAEC,0CAED,4LACC,oBACA,qCACA,kBACA,mBAED,4bAIC,8DACA,8CACA,0CAED,oMACC,2CACA,0DAED,oOACC,+CAID,gJACC,qBACA,iBAED,oMACC,cA/DkB,KAmEnB,mFACC,kBACA,OArEkB,KAsElB,MAtEkB,KAuElB,2BACA,2BAED,mGACC,yDAED,+GACC,0DAOD,gZAEC,qBAED,wUACC,aAzFyB,KA2F1B,4NACC,8DACA,yBACA,qBAED,gOACC,oCACA,6CAED,gQACC,8DACA,6CACA,yBAID,8OAEC,0CACA,6BACA,+DAED,6HACC,gEAED,mHACC,WAOJ,iBACC,gBACA,8CACA,qCACC,sCAED,yBACC,qBACA,iBACA,sBACA,6BACC,eAGF,uCACC,gBACA,qEACA,yCAED,kCACC,iBACA,SACA,UACA,wDACC,mBACA,gBACA,uBACA,6DACC,eACA,gEACC,eACA,iBAIH,6JAGC,kBACA,kBACA,aACA,+BACA,eACA,gCAGA,mEACC,8CAGF,uDACE,8CACA,6BAMH,oGAEC,eAID,mHAEC,gBACA,mBACA,uBACA,wCACA,2CACA,uBACA,yCACA,0CACA,SACA,YACA,gBACA,6IACC,kCAED,iKACC,iBACA,iBACA,stBAIC,sBACA,8CACA,gCACA,0CAED,2NACC,aAGF,2KACC,iBACA,gBACA,gBACA,6BACA,yMACC,2BAKJ,sBACC,qBACA,+DACC,aACA,eACA,kEACC,WAGF,uCACC,gBACA,mBACA,uBACA,wCACA,2CACA,uBACA,yCACA,0CACA,SACA,iBACA,gBACA,oDACC,kCAED,8DACC,iBACA,iBACA,sBACA,8CACA,0CACA,2FACC,aAED,8JAEC,qCACA,iCAGF,sDACC,gBACA,gBACA,YACA,wDACC,mEACA,WAGF,2LAGC,WAED,mEACC,iBAMH,UACC,qBACA,qBACA,2BACC,wBACA,eACA,yCACC,iBACA,iBACA,sBACA,8CACA,gCACA,0CACA,oBACA,mBACA,gDACC,gBAIH,yBACC,UACA,4BACC,YACA,kBACA,kBACA,+BACA,eACA,gCACA,8BACC,mBACA,gBACA,uBACA,YACA,wBACA,SACA,eACA,eACA,2BACA,yBACA,sBACA,qBACA,iBACA,oBACA,mBACA,0CACA,yBACA,sCACC,YACA,4CACA,4BACA,2BACA,eACA,gBACA,cACA,WACA,iBACA,kBAGF,sCACC,6BAED,qCACC,8CACA,6BACA,6CACC,mBAQL,mBACC,cACA,WACA,UACA,cACA,8CACA,mCACA,gBACA,WACA,gBAEC,2CACC,8BAED,gDACC,8BAGF,yCACC,yBAED,sCACC,mCACA,gCACA,iCAED,2CACC,mCACA,gCACA,iCAKF,iBACC,QAEC,0BAED,QAEC,yBAED,YAGC,0BAED,QAEC,0BAGF,OACC,qBACA,uBACA,mCAKD,cACC,kBACA,cACA,aACA,UACA,WACA,gBAGD,kEAGC,oCACG,mCE/yBJ,mBAEC,yBACA,sBACA,qBACA,6PACC,aAGD,+QACC,YACA,kBACA,2BACA,WACA,WACA,kBACA,2CACA,SACA,UAGD,gLACC,WAIA,kPACC,WAGD,+HACC,SAOH,+DAGC,oBACA,kBACA,MACA,WACA,aACA,OC2Ce,KD1Cf,sBACA,8BAID,WACC,cACA,kBACA,kBACA,wBACA,sBACA,UACA,mBACA,aACA,eACA,gBACA,WAEA,mCACC,UAaD,gCACC,8CACA,sDACA,yCACA,sBACA,aACA,kBACA,gBAfD,gBACA,oCAgBC,UACA,SACA,SACA,gBAEA,kDACC,aAID,sCACC,gCACA,iDACA,YACA,YACA,SACA,QACA,kBACA,oBACA,WAGD,uEAEC,iCAzCF,gBACA,oCA4CA,cACC,oBACA,yFACA,4BACA,wBACA,2BACA,WACA,kBACA,UACA,QACA,WAEA,gFAGD,kCACC,aACA,mBACA,cAGD,sFAEC,oBACA,mBAGD,0CACC,SACA,mBACA,YAGD,4CACC,yBACA,cAKA,qDAEC,YACA,kBACA,6EACC,aACA,uBACA,mBACA,MC3EY,KD4EZ,YACA,eACA,YACA,UACA,aAEA,yFACC,UAGD,yGACC,aASL,0CACC,YAKD,gBACC,gCACA,eACA,iBACA,SACA,UACA,kBACA,gBACA,uBAEA,cAGD,kBACC,gCACA,kBACA,gBACA,eACA,iBACA,gBACA,uBAID,cACC,kBACA,gBACA,aACA,WACA,SACA,YACA,aAEA,2BACC,ICxIc,KD+If,gDACC,mBACA,eAED,gJAEC,qBACA,YACA,WJjOF,iCACC,4BACA,2BACA,eACA,gBAGD,iBACC,kDAID,sGAMC,kBACA,0IACC,UACA,WACA,YACA,WACA,uBACA,kBACA,QACA,SACA,mBACA,6CACA,qCACA,gCACA,4BACA,wBACA,4CACA,2CAEA,wCAEA,gYAGC,uCAKH,wDAEC,2CACA,4CAGD,yDAEC,YACA,WACA,qBAKA,yJACC,2CAED,iMACC,gDAED,yMACC,iDAED,iPACC,sDAIF,kBACC,KACC,uBAED,GACC,0BAIF,SACC,gCAGD,yKAQC,wDM3GD,MACC,gEAEA,0GACA,8FAGD,sCACC,MACC,6BACA,8BAKF,KACC,WACA,YACA,kBAEA,6EAGD,KAEC,6EAEA,0EACA,sBACA,2BACA,eACA,WACA,iDAKD,GACC,iBACA,eACA,mBACA,iBACA,8BAGD,GACC,eACA,cACA,8BAGD,GACC,eAID,GACC,kBACA,gCAGD,GACC,eAGD,MAEC,qBACA,aACA,eAGD,GACC,YACA,mBACA,iBAGD,IACC,iBACA,sBACA,kCACA,mCACA,qBACA,mBAMD,wBACC,sBAKD,0BAEC,8DAEA,MDfkB,MCgBlB,YACA,gBACA,kBACA,mDACA,8CACA,+EACA,gBACA,YACA,sBACA,qBACA,iBACA,aACA,sBACA,YACA,cAGA,8CACC,cACA,6CACA,qDACC,qBACA,WACA,aACA,kBACA,gCACA,gBACA,SAIF,6BACC,kBAED,6BACC,kBACA,YACA,WACA,kBACA,gBACA,sBACA,aACA,sBACA,6CACA,iBAEA,wCACC,oDAGD,gCACC,oBACA,eACA,QACA,cACA,SACA,kBACA,WACA,wCAGA,uCACC,QACA,oDACC,2BAIF,8DAEC,6BAED,2DAIC,6BAKA,oKAEC,+CAGF,gDACC,gDACA,aAMA,gVAEC,4CAKF,yDACC,UACA,SAMA,qGAEC,aAIF,uDACC,iBACA,iBACA,eACA,mBACA,uBACA,2BACA,iBACA,oBAEA,yEACC,gBAKF,mCACC,cACA,WACA,kBACA,sCACC,oBACA,eACA,kBACA,WACA,kBAIC,oLAEC,wCACA,+CAKD,gMAEC,wCACA,4CAKF,+DACC,UAGD,oEAEC,gBACA,kBAGD,iEAEC,gBAGA,6BAMJ,sEAEC,kBACA,sBAGC,sRAGC,oCAIF,0EACC,0BACA,gCACA,4BACA,cACA,8BACA,iBACA,gBACA,sBACA,gBACA,sBACA,mBACA,uBACA,wCACA,6BACA,aACA,YAGA,kFACC,sBACA,gHACC,qBAGF,0GACC,kBACA,WACA,YAEA,wCAID,kIACC,qBACA,YACA,0MACC,2BAKH,gIACC,kBACA,cACA,YACA,WACA,YACA,YACA,kBACA,eACA,wCAEA,oIAEC,oCAKF,4HACC,SAID,4IACC,UACA,YAED,kJACC,wBACA,YAIH,iCACC,aAMD,kMAEC,SACA,WACA,+BACA,4BACA,2BACA,4ZAEC,+BACA,UAUD,iDACC,UACA,kBACA,WACA,YACA,SACA,YAIA,OAEA,+DACC,UACA,eACA,gDACA,gBAGF,8CACC,kBACA,YACA,WACA,SACA,UACA,gBH5XF,6CG8XE,qBACA,4BACA,2BACA,YACA,gBACA,wBACA,gBACA,YACA,UACA,iCACA,6BACA,yBACA,YACA,kBACA,qCAMD,qDACC,kBAIA,wGACC,UAED,8FACC,sBAED,oJACC,oCAID,mDACC,4BACA,wBACA,oBAQH,sDACC,cACA,yDACC,wBACA,mBACA,yBAED,yDACC,sBACA,YAED,6DACC,YACA,WACA,SACA,gBAIA,gJHhcF,uCGmcE,sNAEC,+BACA,UAGF,0FACC,gBACA,iBACA,cACA,iBACA,eAEA,sGACC,UACA,kBACA,2GACC,gBACA,mBACA,sCACA,gCASJ,qDACC,iBACA,kBACA,cACA,uBACA,qCACA,UACA,kBACA,8CACA,WACA,mHAEC,oBACA,WAED,2DACC,YACA,eACA,YACA,kIAGC,UAGF,sEACC,WACA,YACA,6BACA,0BAED,wIAEC,WACA,YACA,cACA,0KACC,2BAED,4KACC,iBAED,8JACC,gDACA,6CACA,4BACA,yBAQH,wDACC,oBACA,kBACA,4BACA,kGACC,kBACA,mBACA,uBACA,gBACA,aACA,iBAED,6FACC,SACA,YACA,WACA,iBACA,sMAEC,UAQH,6GAEC,uBACA,2FAGA,kBACA,OACA,8CACA,sBAMD,yCACC,gDACA,wCACA,oBAGD,iCACC,yBAGD,iHAEC,qBAMF,SACC,sBACA,gBACA,oCACA,gBACA,UACA,aACA,kDACA,0BACA,2CACA,cAEA,kCACC,eAIF,2CACC,SACC,kDACA,mDAED,gBACC,kDAED,aACC,oDAcF,aACC,aACA,8CACA,iBACA,cACA,iBACA,YAGA,kCACC,gBAID,kCACC,aACA,kBACA,oBAGA,gBAGA,uDAEC,eACA,mFACC,aAWJ,aACC,WACA,UDvnBmB,MCwnBnB,UDvnBmB,MCwnBnB,cACA,wBACA,gBACA,ID9nBe,KC+nBf,QACA,gBACA,kBACA,aACA,aACA,0BACA,wCACA,0CACA,cAEA,uBACC,aAOF,cAEC,gBAGC,oFACC,cAKH,sBACC,aACA,6CACA,cACA,kDAEA,iBACA,gBACA,sBAGA,uCACC,UAGD,iCACC,uBACA,gCAOE,4NACC,qBACA,WACA,cAOL,qBACC,sBACA,+BACA,gBACA,oDACA,6CACA,cAEA,sCACC,aACA,mBACA,YACA,WACA,UACA,SACA,+BACA,gBACA,SACA,oDACA,gBACA,mBACA,eACA,WAGA,6BAEA,6CACC,yCACA,8CACA,eAED,wFAEC,+CAGD,8CACC,2CACA,gCACA,4BACA,WACA,WACA,YACA,MACA,OACA,cAGD,oDACC,2DACA,gCAMH,SACC,cACA,aACA,mBACA,gBACC,wBAIA,yDAEC,oBACA,iBAIH,aACC,kBACA,gBACA,iBACA,mBAGD,QACC,UACA,yCACA,sCACA,qCACA,oCACA,iCACA,oBACC,UAKF,YACC,aACA,mBAEA,uBACC,aACA,sBACA,YACA,kBACA,mBACA,gBACA,uBACA,eACA,gCACA,kBACA,YAEA,8BACC,aAID,mCACC,kBAED,kCACC,mBAGD,6BACC,qBACA,WACA,YACA,qBACA,sBACA,gBACA,iBACA,WACA,eAGD,yBACC,gCACA,kBACA,gBACA,uBAED,gCACC,iBAED,0FAGC,kBACA,6BACA,kDAIH,eACC,WACA,oBACC,oBAWD,0DACC,wCAIA,gFACC,YAKH,gDAGC,kBACA,8CACA,6BACA,yCACA,YACA,YACA,WACA,gBACA,QACA,sDACA,aACA,mBAEA,kEACC,YAKA,UAEA,2BACA,YACA,SACA,QACA,kBACA,oBACA,iDACA,iBAGD,oFACC,0BACA,UACA,eACA,sGACC,UACA,0BAIF,8EACC,WACA,OACA,eACA,gGACC,SACA,WAIF,+DACC,cAGD,+GACC,SAGD,yDAEC,wBACA,sBAED,yDACC,aACA,cAEA,8EACC,aAGD,oOAGC,eACA,YAhGkB,KAiGlB,SACA,yCACA,+BACA,aACA,uBACA,YACA,SACA,mBACA,gBACA,WACA,6BACA,mBAEA,whDAIC,YACA,aACA,gCACA,gBApHe,KAsHhB,yzBAIC,yBAOC,gvGACC,YAnIe,KAuIlB,+tBAEC,iCAED,ojBAEC,+CAED,4nBAEC,kDAED,mSACC,wCACA,4CAGD,mSACC,2BAED,iRACC,eACA,mBAED,sPACC,YACA,kBACA,cACA,mBAED,mSACC,SACA,gBAGD,gVACC,8BAID,wQACC,MA/Ke,KAgLf,aAGD,uyBAEC,qBACA,WAED,yeACC,mBAED,8cACC,mBAED,2xBACC,YAED,iRACC,aACA,cAGA,mBACA,mbACC,gBAIF,04BAEC,cAGD,0RACC,UAnNiB,KAoNjB,gBACA,aACA,cAEA,4bACC,gBAQA,2hDACC,gBAMD,ygDACC,kBAKJ,8EACC,UACA,6FACC,UAcD,+EACC,MAhQiB,KAiQjB,OAjQiB,KA0QlB,6CACC,WACA,YAOJ,kBACC,wBACA,kBACA,MACA,2CACA,aACA,sBACA,uCACA,gBACA,gBACA,gBACA,kBACA,eACA,UD1nCgB,MC2nChB,UD1nCgB,MC6nChB,yCACC,kBACA,YACA,eACA,iBACA,aACA,eACA,mBACA,cAKC,8RAEC,QACA,WACA,YACA,YACA,aACA,WACA,eACA,4mBAEC,WAED,wtBAEC,WACA,ghDAEC,UAIF,kVACC,UAKH,8IAGC,8CAEA,2RACC,aAIF,6JAEC,kBACA,YACA,WACA,WAQC,2XAEC,aAEA,2eACC,WAIH,wFACC,SACA,SAEA,aACA,gGACC,SAGD,oHACC,aAKH,qEACC,aACA,SACA,UACA,qBACA,YACA,WACA,SACA,UAGD,qEACC,kBACA,qBACA,YACA,WACA,iBACA,kBACA,sBACA,kBACA,WACA,kBACA,gBACA,0BACA,iBACA,iBACA,eACA,QACA,iBAGD,kJAEC,cACA,kBACA,mBACA,gBACA,uBACA,QACA,aACA,mBACA,eAGD,yEACC,WACA,QACA,SACA,6BAGD,wEACC,QACA,mBACA,gBACA,uBACA,gBACA,WACA,cACA,iBAGD,qEACC,QACA,kBACA,kFACC,SAGA,WAIH,2EACC,aCx4CF,WACC,WAGD,YACC,YAGD,YACC,WAGD,aACC,YAGD,YACC,WAGD,QACC,aAGD,iBACC,kBACA,cACA,aACA,UACA,WACA,gBAGD,MACC,gBAGD,QACC,kBAGD,aACC,qBC7CD,mBACC,SCFD,wCAGC,UACC,4BACA,qBAID,iBACC,wBAID,YACC,WACA,yBACA,sBAID,0BACC,6BACA,eACA,0BAGA,6BACC,wBAIF,0CACC,cAGD,8BACC,SACA,cAID,kBACC,wCACA,cAEA,iBAEA,eACA,uCACC,aAED,8BACC,aACA,mDACC,gBAOF,gDACC,4BAED,qDACC,eACA,gCACA,IJoCa,KInCb,OACA,WACA,YACA,aACA,sCACA,eACA,WACA,wBAED,2CACC,4BAKF,uBACC,eACA,gCACA,OACA,WACA,YACA,aACA,eACA,WAED,0DAEC,UAID,6CACC,kBAID,kDACC,0BAED,8CACC,wBAGD,wBACC,kBAID,gBACC,aAED,+BACC,4BAID,2MAIC,aAED,kDACC,eAGD,qCACC,UAMF,0CACC,gCACC,6BACA,eACA,uCACC,wBAMA,4CACC,cAGF,iCACC,gCACA,iDACA,SACA,YACA,SACA,QACA,kBACA,oBACA,WACA,aACA,aAID,0CACC,YCnKH,SACI,kBACA,cACA,6BACA,kBACA,mBACA,sBACA,gBACA,gBACA,gBACA,iBACA,qBACA,iBACA,oBACA,mBACA,kBACA,oBACA,iBACA,uBACA,eACA,UACA,eAEA,gBACA,eACA,uDACA,8DAGI,mBACA,UACA,wBAEJ,uDAEI,SACA,kBAEJ,8CAEI,eACA,eAEJ,4CAEI,gBACA,eACA,0EACI,QACA,OACA,iBACA,8BACA,gDAGR,0CAEI,iBACA,cACA,wEACI,QACA,QACA,iBACA,8BACA,+CAQJ,kPACI,SACA,yBACA,8CAGR,iCACI,WACA,oBAEJ,kCACI,UACA,oBAOA,0QACI,MACA,yBACA,iDAGR,4EAEI,SACA,kBAEJ,oCACI,WACA,iBAEJ,qCACI,UACA,iBAIR,eACI,gBACA,gBACA,8CACA,6BACA,kBACA,mCAGJ,+BACI,kBACA,QACA,SACA,2BACA,mBCpHJ,kBACE,gBACA,gBACA,8CACA,6BACA,6CACA,eACA,gBACA,eACA,cACA,mCACA,aACA,mBAEF,wCACE,aACA,mBAEF,oEAEE,gBACA,gBACA,sBACA,eACA,YACA,aACA,mBACA,4BACA,2BACA,6BACA,aAEF,4FAEE,cACA,WACA,YACA,gBACA,iBACA,YAGF,4GAEE,mRACA,YACA,wCACA,qBACA,WACA,YAEF,wGAEE,WACA,wBACA,iBAEF,kPAIE,eACA,UAEF,+BACE,WAEF,mCACE,eAEF,8BACE,yCAEF,6BACE,2CAEF,gCACE,2CAEF,gCACE,2CAEF,6BACE,2CAOF,gEACE,mUC5GA,oDACC,gCAIA,0DACC,gBAED,2EACC,+BACA,2BACA,wCAEA,oPAGC,UAID,mFACC,aAED,sFACC,aAED,mGACC,YAMJ,sBAEC,6BAKD,kCACC,cAGD,oBACC,iBACA,mCACA,sBACA,qBACA,iBAED,+KAIC,kBAID,oBACC,eACA,aACA,mBACA,uBACA,OArEc,KAsEd,sBACA,SACA,wBACA,WACA,8CACA,yCACA,sBACC,kBACA,gCACA,wBACC,gCACA,iBACA,mBAEA,aACA,aACA","file":"server.css"} \ No newline at end of file diff --git a/core/css/styles.css b/core/css/styles.css index e542047b171..b2b11d377cf 100644 --- a/core/css/styles.css +++ b/core/css/styles.css @@ -1 +1 @@ -html,body,div,span,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,code,del,dfn,em,img,q,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,dialog,figure,footer,header,hgroup,nav,section,main{margin:0;padding:0;border:0;font-weight:inherit;font-size:100%;font-family:inherit;vertical-align:baseline;cursor:default;scrollbar-color:var(--color-border-dark) rgba(0,0,0,0);scrollbar-width:thin}.js-focus-visible :focus:not(.focus-visible){outline:none}.content:not(#content-vue) :focus-visible,.app-navigation:not(#app-navigation-vue) :focus-visible{box-shadow:inset 0 0 0 2px var(--color-primary);outline:none}html,body{height:100%}article,aside,dialog,figure,footer,header,hgroup,nav,section{display:block}body{line-height:1.5}table{border-collapse:separate;border-spacing:0;white-space:nowrap}caption,th,td{text-align:left;font-weight:normal}table,td,th{vertical-align:middle}a{border:0;color:var(--color-main-text);text-decoration:none;cursor:pointer}a *{cursor:pointer}a.external{margin:0 3px;text-decoration:underline}input{cursor:pointer}input *{cursor:pointer}select,.button span,label{cursor:pointer}ul{list-style:none}body{font-weight:normal;font-size:var(--default-font-size);line-height:var(--default-line-height);font-family:var(--font-face);color:var(--color-main-text)}.two-factor-header{text-align:center}.two-factor-provider{text-align:center;width:100% !important;display:inline-block;margin-bottom:0 !important;background-color:var(--color-background-darker) !important;border:none !important}.two-factor-link{display:inline-block;padding:12px;color:var(--color-text-lighter)}.float-spinner{height:32px;display:none}#nojavascript{position:fixed;top:0;bottom:0;left:0;height:100%;width:100%;z-index:9000;text-align:center;background-color:var(--color-background-darker);color:var(--color-primary-text);line-height:125%;font-size:24px}#nojavascript div{display:block;position:relative;width:50%;top:35%;margin:0px auto}#nojavascript a{color:var(--color-primary-text);border-bottom:2px dotted var(--color-main-background)}#nojavascript a:hover,#nojavascript a:focus{color:var(--color-primary-text-dark)}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-corner{background-color:rgba(0,0,0,0)}::-webkit-scrollbar-track-piece{background-color:rgba(0,0,0,0)}::-webkit-scrollbar-thumb{background:var(--color-scrollbar);border-radius:var(--border-radius-large);border:2px solid rgba(0,0,0,0);background-clip:content-box}::selection{background-color:var(--color-primary-element);color:var(--color-primary-text)}#app-navigation *{box-sizing:border-box}#emptycontent,.emptycontent{color:var(--color-text-maxcontrast);text-align:center;margin-top:30vh;width:100%}#app-sidebar #emptycontent,#app-sidebar .emptycontent{margin-top:10vh}#emptycontent .emptycontent-search,.emptycontent .emptycontent-search{position:static}#emptycontent h2,.emptycontent h2{margin-bottom:10px}#emptycontent [class^=icon-],#emptycontent [class*=icon-],.emptycontent [class^=icon-],.emptycontent [class*=icon-]{background-size:64px;height:64px;width:64px;margin:0 auto 15px}#emptycontent [class^=icon-]:not([class^=icon-loading]),#emptycontent [class^=icon-]:not([class*=icon-loading]),#emptycontent [class*=icon-]:not([class^=icon-loading]),#emptycontent [class*=icon-]:not([class*=icon-loading]),.emptycontent [class^=icon-]:not([class^=icon-loading]),.emptycontent [class^=icon-]:not([class*=icon-loading]),.emptycontent [class*=icon-]:not([class^=icon-loading]),.emptycontent [class*=icon-]:not([class*=icon-loading]){opacity:.4}#datadirContent label{width:100%}.grouptop,.groupmiddle,.groupbottom{position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#show,#dbpassword{position:absolute;right:1em;top:.8em;float:right}#show+label,#dbpassword+label{right:21px;top:15px !important;margin:-14px !important;padding:14px !important}#show:checked+label,#dbpassword:checked+label,#personal-show:checked+label{opacity:.8}#show:focus-visible+label,#dbpassword-toggle:focus-visible+label,#personal-show:focus-visible+label{box-shadow:var(--color-primary) 0 0 0 2px;opacity:1;border-radius:9999px}#show+label,#dbpassword+label,#personal-show+label{position:absolute !important;height:20px;width:24px;background-image:var(--icon-toggle-dark);background-repeat:no-repeat;background-position:center;opacity:.3}#show:focus+label,#dbpassword:focus+label,#personal-show:focus+label{opacity:1}#show+label:hover,#dbpassword+label:hover,#personal-show+label:hover{opacity:1}#show+label:before,#dbpassword+label:before,#personal-show+label:before{display:none}#pass2,input[name=personal-password-clone]{padding-right:30px}.personal-show-container{position:relative;display:inline-block;margin-right:6px}#personal-show+label{display:block;right:0;margin-top:-43px;margin-right:-4px;padding:22px}#body-user .warning,#body-settings .warning{margin-top:8px;padding:5px;border-radius:var(--border-radius);color:var(--color-main-text);background-color:rgba(var(--color-warning-rgb), 0.2)}.warning legend,.warning a{font-weight:bold !important}.error:not(.toastify) a{color:#fff !important;font-weight:bold !important}.error:not(.toastify) a.button{color:var(--color-text-lighter) !important;display:inline-block;text-align:center}.error:not(.toastify) pre{white-space:pre-wrap;text-align:left}.error-wide{width:700px;margin-left:-200px !important}.error-wide .button{color:#000 !important}.warning-input{border-color:var(--color-error) !important}.avatar,.avatardiv{border-radius:50%;flex-shrink:0}.avatar>img,.avatardiv>img{border-radius:50%;flex-shrink:0}td.avatar{border-radius:0}tr .action:not(.permanent),.selectedActions>a{opacity:0}tr:hover .action:not(.menuitem),tr:focus .action:not(.menuitem),tr .action.permanent:not(.menuitem){opacity:.5}.selectedActions>a{opacity:.5;position:relative;top:2px}.selectedActions>a:hover,.selectedActions>a:focus{opacity:1}tr .action{width:16px;height:16px}.header-action{opacity:.8}tr:hover .action:hover,tr:focus .action:focus{opacity:1}.selectedActions a:hover,.selectedActions a:focus{opacity:1}.header-action:hover,.header-action:focus{opacity:1}tbody tr:hover,tbody tr:focus,tbody tr:active{background-color:var(--color-background-dark)}code{font-family:"Lucida Console","Lucida Sans Typewriter","DejaVu Sans Mono",monospace}.pager{list-style:none;float:right;display:inline;margin:.7em 13em 0 0}.pager li{display:inline-block}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{overflow:hidden;text-overflow:ellipsis}.ui-icon-circle-triangle-e{background-image:url("../img/actions/play-next.svg?v=1")}.ui-icon-circle-triangle-w{background-image:url("../img/actions/play-previous.svg?v=1")}.ui-widget.ui-datepicker{margin-top:10px;padding:4px 8px;width:auto;border-radius:var(--border-radius);border:none;z-index:1600 !important}.ui-widget.ui-datepicker .ui-state-default,.ui-widget.ui-datepicker .ui-widget-content .ui-state-default,.ui-widget.ui-datepicker .ui-widget-header .ui-state-default{border:1px solid rgba(0,0,0,0);background:inherit}.ui-widget.ui-datepicker .ui-widget-header{padding:7px;font-size:13px;border:none;background-color:var(--color-main-background);color:var(--color-main-text)}.ui-widget.ui-datepicker .ui-widget-header .ui-datepicker-title{line-height:1;font-weight:normal}.ui-widget.ui-datepicker .ui-widget-header .ui-icon{opacity:.5}.ui-widget.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-e{background:url("../img/actions/arrow-right.svg") center center no-repeat}.ui-widget.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-w{background:url("../img/actions/arrow-left.svg") center center no-repeat}.ui-widget.ui-datepicker .ui-widget-header .ui-state-hover .ui-icon{opacity:1}.ui-widget.ui-datepicker .ui-datepicker-calendar th{font-weight:normal;color:var(--color-text-lighter);opacity:.8;width:26px;padding:2px}.ui-widget.ui-datepicker .ui-datepicker-calendar tr:hover{background-color:inherit}.ui-widget.ui-datepicker .ui-datepicker-calendar td.ui-datepicker-today a:not(.ui-state-hover){background-color:var(--color-background-darker)}.ui-widget.ui-datepicker .ui-datepicker-calendar td.ui-datepicker-current-day a.ui-state-active,.ui-widget.ui-datepicker .ui-datepicker-calendar td .ui-state-hover,.ui-widget.ui-datepicker .ui-datepicker-calendar td .ui-state-focus{background-color:var(--color-primary);color:var(--color-primary-text);font-weight:bold}.ui-widget.ui-datepicker .ui-datepicker-calendar td.ui-datepicker-week-end:not(.ui-state-disabled) :not(.ui-state-hover),.ui-widget.ui-datepicker .ui-datepicker-calendar td .ui-priority-secondary:not(.ui-state-hover){color:var(--color-text-lighter);opacity:.8}.ui-datepicker-prev,.ui-datepicker-next{border:var(--color-border-dark);background:var(--color-main-background)}.ui-widget.ui-timepicker{margin-top:10px !important;width:auto !important;border-radius:var(--border-radius);z-index:1600 !important}.ui-widget.ui-timepicker .ui-widget-content{border:none !important}.ui-widget.ui-timepicker .ui-state-default,.ui-widget.ui-timepicker .ui-widget-content .ui-state-default,.ui-widget.ui-timepicker .ui-widget-header .ui-state-default{border:1px solid rgba(0,0,0,0);background:inherit}.ui-widget.ui-timepicker .ui-widget-header{padding:7px;font-size:13px;border:none;background-color:var(--color-main-background);color:var(--color-main-text)}.ui-widget.ui-timepicker .ui-widget-header .ui-timepicker-title{line-height:1;font-weight:normal}.ui-widget.ui-timepicker table.ui-timepicker tr .ui-timepicker-hour-cell:first-child{margin-left:30px}.ui-widget.ui-timepicker .ui-timepicker-table th{font-weight:normal;color:var(--color-text-lighter);opacity:.8}.ui-widget.ui-timepicker .ui-timepicker-table th.periods{padding:0;width:30px;line-height:30px}.ui-widget.ui-timepicker .ui-timepicker-table tr:hover{background-color:inherit}.ui-widget.ui-timepicker .ui-timepicker-table td.ui-timepicker-hour-cell a.ui-state-active,.ui-widget.ui-timepicker .ui-timepicker-table td.ui-timepicker-minute-cell a.ui-state-active,.ui-widget.ui-timepicker .ui-timepicker-table td .ui-state-hover,.ui-widget.ui-timepicker .ui-timepicker-table td .ui-state-focus{background-color:var(--color-primary);color:var(--color-primary-text);font-weight:bold}.ui-widget.ui-timepicker .ui-timepicker-table td.ui-timepicker-minutes:not(.ui-state-hover){color:var(--color-text-lighter)}.ui-widget.ui-timepicker .ui-timepicker-table td.ui-timepicker-hours{border-right:1px solid var(--color-border)}.ui-widget.ui-datepicker .ui-datepicker-calendar tr,.ui-widget.ui-timepicker table.ui-timepicker tr{display:flex;flex-wrap:nowrap;justify-content:space-between}.ui-widget.ui-datepicker .ui-datepicker-calendar tr td,.ui-widget.ui-timepicker table.ui-timepicker tr td{flex:1 1 auto;margin:0;padding:2px;height:26px;width:26px;display:flex;align-items:center;justify-content:center}.ui-widget.ui-datepicker .ui-datepicker-calendar tr td>*,.ui-widget.ui-timepicker table.ui-timepicker tr td>*{border-radius:50%;text-align:center;font-weight:normal;color:var(--color-main-text);display:block;line-height:18px;width:18px;height:18px;padding:3px;font-size:.9em}#oc-dialog-filepicker-content{position:relative;display:flex;flex-direction:column}#oc-dialog-filepicker-content .dirtree{flex-wrap:wrap;box-sizing:border-box;padding-right:140px}#oc-dialog-filepicker-content .dirtree div:first-child a{font-size:0px;background-image:var(--icon-home-dark);background-repeat:no-repeat;background-position:left center}#oc-dialog-filepicker-content .dirtree span:not(:last-child){cursor:pointer}#oc-dialog-filepicker-content .dirtree span:last-child{font-weight:bold}#oc-dialog-filepicker-content .dirtree span:not(:last-child)::after{content:">";padding:3px}#oc-dialog-filepicker-content #picker-showgridview{position:absolute;background-color:rgba(0,0,0,0);border:none;margin:0;padding:22px;opacity:.5;right:0;top:0}#oc-dialog-filepicker-content #picker-showgridview:hover,#oc-dialog-filepicker-content #picker-showgridview:active,#oc-dialog-filepicker-content #picker-showgridview:focus{box-shadow:0 0 0 2px var(--color-primary);opacity:1}#oc-dialog-filepicker-content .actions.creatable{flex-wrap:wrap;padding:0px;box-sizing:border-box;display:inline-flex;float:none;max-height:36px;max-width:36px;background-color:var(--color-background-dark);border:1px solid var(--color-border-dark);border-radius:var(--border-radius-pill);position:relative;left:15px;top:3px;order:1}#oc-dialog-filepicker-content .actions.creatable .icon.icon-add{background-image:var(--icon-add-dark);background-size:16px 16px;width:34px;height:34px;margin:0px;opacity:.5}#oc-dialog-filepicker-content .actions.creatable a{width:36px;padding:0px;position:static}#oc-dialog-filepicker-content .actions.creatable .menu{top:100%;margin-top:10px}#oc-dialog-filepicker-content .actions.creatable .menu form{display:flex;margin:10px}#oc-dialog-filepicker-content .filelist-container{box-sizing:border-box;display:inline-block;overflow-y:auto;flex:1;width:100%;overflow-x:hidden}#oc-dialog-filepicker-content .emptycontent{color:var(--color-text-maxcontrast);text-align:center;margin-top:80px;width:100%;display:none}#oc-dialog-filepicker-content .filelist{background-color:var(--color-main-background);width:100%}#oc-dialog-filepicker-content #picker-filestable.filelist{min-width:initial;margin-bottom:50px}#oc-dialog-filepicker-content #picker-filestable.filelist thead tr{border-bottom:1px solid var(--color-border);background-color:var(--color-main-background)}#oc-dialog-filepicker-content #picker-filestable.filelist thead tr th{width:80%;border:none}#oc-dialog-filepicker-content #picker-filestable.filelist th .columntitle{display:block;padding:15px;height:50px;box-sizing:border-box;-moz-box-sizing:border-box;vertical-align:middle}#oc-dialog-filepicker-content #picker-filestable.filelist th .columntitle.name{padding-left:5px;margin-left:50px}#oc-dialog-filepicker-content #picker-filestable.filelist th .sort-indicator{width:10px;height:8px;margin-left:5px;display:inline-block;vertical-align:text-bottom;opacity:.3}#oc-dialog-filepicker-content #picker-filestable.filelist .sort-indicator.hidden,#oc-dialog-filepicker-content #picker-filestable.filelist th:hover .sort-indicator.hidden,#oc-dialog-filepicker-content #picker-filestable.filelist th:focus .sort-indicator.hidden{visibility:hidden}#oc-dialog-filepicker-content #picker-filestable.filelist th:hover .sort-indicator.hidden,#oc-dialog-filepicker-content #picker-filestable.filelist th:focus .sort-indicator.hidden{visibility:visible}#oc-dialog-filepicker-content #picker-filestable.filelist td{padding:14px;border-bottom:1px solid var(--color-border)}#oc-dialog-filepicker-content #picker-filestable.filelist tr:last-child td{border-bottom:none}#oc-dialog-filepicker-content #picker-filestable.filelist .filename{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;background-size:32px;background-repeat:no-repeat;padding-left:51px;background-position:7px 7px;cursor:pointer;max-width:0}#oc-dialog-filepicker-content #picker-filestable.filelist .filename .filename-parts{display:flex}#oc-dialog-filepicker-content #picker-filestable.filelist .filename .filename-parts__first{overflow:hidden;white-space:pre;text-overflow:ellipsis}#oc-dialog-filepicker-content #picker-filestable.filelist .filename .filename-parts__last{white-space:pre}#oc-dialog-filepicker-content #picker-filestable.filelist .filesize,#oc-dialog-filepicker-content #picker-filestable.filelist .date{width:80px}#oc-dialog-filepicker-content #picker-filestable.filelist .filesize{text-align:right}#oc-dialog-filepicker-content #picker-filestable.filelist.view-grid{display:flex;flex-direction:column}#oc-dialog-filepicker-content #picker-filestable.filelist.view-grid tbody{display:grid;grid-template-columns:repeat(auto-fill, 120px);justify-content:space-around;row-gap:15px;margin:15px 0}#oc-dialog-filepicker-content #picker-filestable.filelist.view-grid tbody tr{display:block;position:relative;border-radius:var(--border-radius);padding:10px;display:flex;flex-direction:column;width:100px}#oc-dialog-filepicker-content #picker-filestable.filelist.view-grid tbody tr td{border:none;padding:0;text-align:center;border-radius:var(--border-radius)}#oc-dialog-filepicker-content #picker-filestable.filelist.view-grid tbody tr td.filename{padding:100px 0 0 0;background-position:center top;background-size:contain;line-height:30px;max-width:none}#oc-dialog-filepicker-content #picker-filestable.filelist.view-grid tbody tr td.filename .filename-parts{justify-content:center}#oc-dialog-filepicker-content #picker-filestable.filelist.view-grid tbody tr td.filesize{line-height:10px;width:100%}#oc-dialog-filepicker-content #picker-filestable.filelist.view-grid tbody tr td.date{display:none}#oc-dialog-filepicker-content .filepicker_element_selected{background-color:var(--color-background-darker)}.ui-dialog{position:fixed !important}span.ui-icon{float:left;margin:3px 7px 30px 0}.extra-data{padding-right:5px !important}#tagsdialog .content{width:100%;height:280px}#tagsdialog .scrollarea{overflow:auto;border:1px solid var(--color-background-darker);width:100%;height:240px}#tagsdialog .bottombuttons{width:100%;height:30px}#tagsdialog .bottombuttons *{float:left}#tagsdialog .taglist li{background:var(--color-background-dark);padding:.3em .8em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-webkit-transition:background-color 500ms;transition:background-color 500ms}#tagsdialog .taglist li:hover,#tagsdialog .taglist li:active{background:var(--color-background-darker)}#tagsdialog .addinput{width:90%;clear:both}.breadcrumb{display:inline-flex;height:50px}li.crumb{display:inline-flex;background-image:url("../img/breadcrumb.svg?v=1");background-repeat:no-repeat;background-position:right center;height:44px;background-size:auto 24px;flex:0 0 auto;order:1;padding-right:7px}li.crumb.crumbmenu{order:2;position:relative}li.crumb.crumbmenu a{opacity:.5}li.crumb.crumbmenu.canDropChildren .popovermenu,li.crumb.crumbmenu.canDrop .popovermenu{display:block}li.crumb.crumbmenu .popovermenu{top:100%;margin-right:3px}li.crumb.crumbmenu .popovermenu ul{max-height:345px;overflow-y:auto;overflow-x:hidden;padding-right:5px}li.crumb.crumbmenu .popovermenu ul li.canDrop span:first-child{background-image:url("../img/filetypes/folder-drag-accept.svg?v=1") !important}li.crumb.crumbmenu .popovermenu .in-breadcrumb{display:none}li.crumb.hidden{display:none}li.crumb.hidden~.crumb{order:3}li.crumb>a,li.crumb>span{position:relative;padding:12px;opacity:.5;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;flex:0 0 auto;max-width:200px}li.crumb>a.icon-home,li.crumb>a.icon-delete,li.crumb>span.icon-home,li.crumb>span.icon-delete{text-indent:-9999px}li.crumb>a[class^=icon-]{padding:0;width:44px}li.crumb:last-child{font-weight:bold;margin-right:10px}li.crumb:last-child a~span{padding-left:0}li.crumb:hover,li.crumb:focus,li.crumb a:focus,li.crumb:active{opacity:1}li.crumb:hover>a,li.crumb:hover>span,li.crumb:focus>a,li.crumb:focus>span,li.crumb a:focus>a,li.crumb a:focus>span,li.crumb:active>a,li.crumb:active>span{opacity:.7}.appear{opacity:1;-webkit-transition:opacity 500ms ease 0s;-moz-transition:opacity 500ms ease 0s;-ms-transition:opacity 500ms ease 0s;-o-transition:opacity 500ms ease 0s;transition:opacity 500ms ease 0s}.appear.transparent{opacity:0}fieldset.warning legend,fieldset.update legend{top:18px;position:relative}fieldset.warning legend+p,fieldset.update legend+p{margin-top:12px}@-ms-viewport{width:device-width}.hiddenuploadfield{display:none;width:0;height:0;opacity:0}/*# sourceMappingURL=styles.css.map */ +html,body,div,span,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,code,del,dfn,em,img,q,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,dialog,figure,footer,header,hgroup,nav,section,main{margin:0;padding:0;border:0;font-weight:inherit;font-size:100%;font-family:inherit;vertical-align:baseline;cursor:default;scrollbar-color:var(--color-border-dark) rgba(0,0,0,0);scrollbar-width:thin}.js-focus-visible :focus:not(.focus-visible){outline:none}.content:not(#content-vue) :focus-visible,.app-navigation:not(#app-navigation-vue) :focus-visible{box-shadow:inset 0 0 0 2px var(--color-primary);outline:none}html,body{height:100%}article,aside,dialog,figure,footer,header,hgroup,nav,section{display:block}body{line-height:1.5}table{border-collapse:separate;border-spacing:0;white-space:nowrap}caption,th,td{text-align:left;font-weight:normal}table,td,th{vertical-align:middle}a{border:0;color:var(--color-main-text);text-decoration:none;cursor:pointer}a *{cursor:pointer}a.external{margin:0 3px;text-decoration:underline}input{cursor:pointer}input *{cursor:pointer}select,.button span,label{cursor:pointer}ul{list-style:none}body{font-weight:normal;font-size:var(--default-font-size);line-height:var(--default-line-height);font-family:var(--font-face);color:var(--color-main-text)}.two-factor-header{text-align:center}.two-factor-provider{text-align:center;width:100% !important;display:inline-block;margin-bottom:0 !important;background-color:var(--color-background-darker) !important;border:none !important}.two-factor-link{display:inline-block;padding:12px;color:var(--color-text-lighter)}.float-spinner{height:32px;display:none}#nojavascript{position:fixed;top:0;bottom:0;left:0;height:100%;width:100%;z-index:9000;text-align:center;background-color:var(--color-background-darker);color:var(--color-primary-text);line-height:125%;font-size:24px}#nojavascript div{display:block;position:relative;width:50%;top:35%;margin:0px auto}#nojavascript a{color:var(--color-primary-text);border-bottom:2px dotted var(--color-main-background)}#nojavascript a:hover,#nojavascript a:focus{color:var(--color-primary-text-dark)}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-corner{background-color:rgba(0,0,0,0)}::-webkit-scrollbar-track-piece{background-color:rgba(0,0,0,0)}::-webkit-scrollbar-thumb{background:var(--color-scrollbar);border-radius:var(--border-radius-large);border:2px solid rgba(0,0,0,0);background-clip:content-box}::selection{background-color:var(--color-primary-element);color:var(--color-primary-text)}#app-navigation *{box-sizing:border-box}#emptycontent,.emptycontent{color:var(--color-text-maxcontrast);text-align:center;margin-top:30vh;width:100%}#app-sidebar #emptycontent,#app-sidebar .emptycontent{margin-top:10vh}#emptycontent .emptycontent-search,.emptycontent .emptycontent-search{position:static}#emptycontent h2,.emptycontent h2{margin-bottom:10px}#emptycontent [class^=icon-],#emptycontent [class*=icon-],.emptycontent [class^=icon-],.emptycontent [class*=icon-]{background-size:64px;height:64px;width:64px;margin:0 auto 15px}#emptycontent [class^=icon-]:not([class^=icon-loading]),#emptycontent [class^=icon-]:not([class*=icon-loading]),#emptycontent [class*=icon-]:not([class^=icon-loading]),#emptycontent [class*=icon-]:not([class*=icon-loading]),.emptycontent [class^=icon-]:not([class^=icon-loading]),.emptycontent [class^=icon-]:not([class*=icon-loading]),.emptycontent [class*=icon-]:not([class^=icon-loading]),.emptycontent [class*=icon-]:not([class*=icon-loading]){opacity:.4}#datadirContent label{width:100%}.grouptop,.groupmiddle,.groupbottom{position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#show,#dbpassword{position:absolute;right:1em;top:.8em;float:right}#show+label,#dbpassword+label{right:21px;top:15px !important;margin:-14px !important;padding:14px !important}#show:checked+label,#dbpassword:checked+label,#personal-show:checked+label{opacity:.8}#show:focus-visible+label,#dbpassword-toggle:focus-visible+label,#personal-show:focus-visible+label{box-shadow:var(--color-primary) 0 0 0 2px;opacity:1;border-radius:9999px}#show+label,#dbpassword+label,#personal-show+label{position:absolute !important;height:20px;width:24px;background-image:var(--icon-toggle-dark);background-repeat:no-repeat;background-position:center;opacity:.3}#show:focus+label,#dbpassword:focus+label,#personal-show:focus+label{opacity:1}#show+label:hover,#dbpassword+label:hover,#personal-show+label:hover{opacity:1}#show+label:before,#dbpassword+label:before,#personal-show+label:before{display:none}#pass2,input[name=personal-password-clone]{padding-right:30px}.personal-show-container{position:relative;display:inline-block;margin-right:6px}#personal-show+label{display:block;right:0;margin-top:-43px;margin-right:-4px;padding:22px}#body-user .warning,#body-settings .warning{margin-top:8px;padding:5px;border-radius:var(--border-radius);color:var(--color-main-text);background-color:rgba(var(--color-warning-rgb), 0.2)}.warning legend,.warning a{font-weight:bold !important}.error:not(.toastify) a{color:#fff !important;font-weight:bold !important}.error:not(.toastify) a.button{color:var(--color-text-lighter) !important;display:inline-block;text-align:center}.error:not(.toastify) pre{white-space:pre-wrap;text-align:left}.error-wide{width:700px;margin-left:-200px !important}.error-wide .button{color:#000 !important}.warning-input{border-color:var(--color-error) !important}.avatar,.avatardiv{border-radius:50%;flex-shrink:0}.avatar>img,.avatardiv>img{border-radius:50%;flex-shrink:0}td.avatar{border-radius:0}tr .action:not(.permanent),.selectedActions>a{opacity:0}tr:hover .action:not(.menuitem),tr:focus .action:not(.menuitem),tr .action.permanent:not(.menuitem){opacity:.5}.selectedActions>a{opacity:.5;position:relative;top:2px}.selectedActions>a:hover,.selectedActions>a:focus{opacity:1}tr .action{width:16px;height:16px}.header-action{opacity:.8}tr:hover .action:hover,tr:focus .action:focus{opacity:1}.selectedActions a:hover,.selectedActions a:focus{opacity:1}.header-action:hover,.header-action:focus{opacity:1}tbody tr:hover,tbody tr:focus,tbody tr:active{background-color:var(--color-background-dark)}code{font-family:"Lucida Console","Lucida Sans Typewriter","DejaVu Sans Mono",monospace}.pager{list-style:none;float:right;display:inline;margin:.7em 13em 0 0}.pager li{display:inline-block}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{overflow:hidden;text-overflow:ellipsis}.ui-icon-circle-triangle-e{background-image:url("../img/actions/play-next.svg?v=1")}.ui-icon-circle-triangle-w{background-image:url("../img/actions/play-previous.svg?v=1")}.ui-widget.ui-datepicker{margin-top:10px;padding:4px 8px;width:auto;border-radius:var(--border-radius);border:none;z-index:1600 !important}.ui-widget.ui-datepicker .ui-state-default,.ui-widget.ui-datepicker .ui-widget-content .ui-state-default,.ui-widget.ui-datepicker .ui-widget-header .ui-state-default{border:1px solid rgba(0,0,0,0);background:inherit}.ui-widget.ui-datepicker .ui-widget-header{padding:7px;font-size:13px;border:none;background-color:var(--color-main-background);color:var(--color-main-text)}.ui-widget.ui-datepicker .ui-widget-header .ui-datepicker-title{line-height:1;font-weight:normal}.ui-widget.ui-datepicker .ui-widget-header .ui-icon{opacity:.5}.ui-widget.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-e{background:url("../img/actions/arrow-right.svg") center center no-repeat}.ui-widget.ui-datepicker .ui-widget-header .ui-icon.ui-icon-circle-triangle-w{background:url("../img/actions/arrow-left.svg") center center no-repeat}.ui-widget.ui-datepicker .ui-widget-header .ui-state-hover .ui-icon{opacity:1}.ui-widget.ui-datepicker .ui-datepicker-calendar th{font-weight:normal;color:var(--color-text-lighter);opacity:.8;width:26px;padding:2px}.ui-widget.ui-datepicker .ui-datepicker-calendar tr:hover{background-color:inherit}.ui-widget.ui-datepicker .ui-datepicker-calendar td.ui-datepicker-today a:not(.ui-state-hover){background-color:var(--color-background-darker)}.ui-widget.ui-datepicker .ui-datepicker-calendar td.ui-datepicker-current-day a.ui-state-active,.ui-widget.ui-datepicker .ui-datepicker-calendar td .ui-state-hover,.ui-widget.ui-datepicker .ui-datepicker-calendar td .ui-state-focus{background-color:var(--color-primary);color:var(--color-primary-text);font-weight:bold}.ui-widget.ui-datepicker .ui-datepicker-calendar td.ui-datepicker-week-end:not(.ui-state-disabled) :not(.ui-state-hover),.ui-widget.ui-datepicker .ui-datepicker-calendar td .ui-priority-secondary:not(.ui-state-hover){color:var(--color-text-lighter);opacity:.8}.ui-datepicker-prev,.ui-datepicker-next{border:var(--color-border-dark);background:var(--color-main-background)}.ui-widget.ui-timepicker{margin-top:10px !important;width:auto !important;border-radius:var(--border-radius);z-index:1600 !important}.ui-widget.ui-timepicker .ui-widget-content{border:none !important}.ui-widget.ui-timepicker .ui-state-default,.ui-widget.ui-timepicker .ui-widget-content .ui-state-default,.ui-widget.ui-timepicker .ui-widget-header .ui-state-default{border:1px solid rgba(0,0,0,0);background:inherit}.ui-widget.ui-timepicker .ui-widget-header{padding:7px;font-size:13px;border:none;background-color:var(--color-main-background);color:var(--color-main-text)}.ui-widget.ui-timepicker .ui-widget-header .ui-timepicker-title{line-height:1;font-weight:normal}.ui-widget.ui-timepicker table.ui-timepicker tr .ui-timepicker-hour-cell:first-child{margin-left:30px}.ui-widget.ui-timepicker .ui-timepicker-table th{font-weight:normal;color:var(--color-text-lighter);opacity:.8}.ui-widget.ui-timepicker .ui-timepicker-table th.periods{padding:0;width:30px;line-height:30px}.ui-widget.ui-timepicker .ui-timepicker-table tr:hover{background-color:inherit}.ui-widget.ui-timepicker .ui-timepicker-table td.ui-timepicker-hour-cell a.ui-state-active,.ui-widget.ui-timepicker .ui-timepicker-table td.ui-timepicker-minute-cell a.ui-state-active,.ui-widget.ui-timepicker .ui-timepicker-table td .ui-state-hover,.ui-widget.ui-timepicker .ui-timepicker-table td .ui-state-focus{background-color:var(--color-primary);color:var(--color-primary-text);font-weight:bold}.ui-widget.ui-timepicker .ui-timepicker-table td.ui-timepicker-minutes:not(.ui-state-hover){color:var(--color-text-lighter)}.ui-widget.ui-timepicker .ui-timepicker-table td.ui-timepicker-hours{border-right:1px solid var(--color-border)}.ui-widget.ui-datepicker .ui-datepicker-calendar tr,.ui-widget.ui-timepicker table.ui-timepicker tr{display:flex;flex-wrap:nowrap;justify-content:space-between}.ui-widget.ui-datepicker .ui-datepicker-calendar tr td,.ui-widget.ui-timepicker table.ui-timepicker tr td{flex:1 1 auto;margin:0;padding:2px;height:26px;width:26px;display:flex;align-items:center;justify-content:center}.ui-widget.ui-datepicker .ui-datepicker-calendar tr td>*,.ui-widget.ui-timepicker table.ui-timepicker tr td>*{border-radius:50%;text-align:center;font-weight:normal;color:var(--color-main-text);display:block;line-height:18px;width:18px;height:18px;padding:3px;font-size:.9em}#oc-dialog-filepicker-content{position:relative;display:flex;flex-direction:column}#oc-dialog-filepicker-content .dirtree{flex-wrap:wrap;box-sizing:border-box;padding-right:140px;display:flex}#oc-dialog-filepicker-content .dirtree div:first-child a{font-size:0px;background-image:var(--icon-home-dark);background-repeat:no-repeat;background-position:left center}#oc-dialog-filepicker-content .dirtree span:not(:last-child){cursor:pointer}#oc-dialog-filepicker-content .dirtree span:last-child{font-weight:bold}#oc-dialog-filepicker-content .dirtree span:not(:last-child)::after{content:">";padding:3px}#oc-dialog-filepicker-content #picker-showgridview{position:absolute;background-color:rgba(0,0,0,0);border:none;margin:0;padding:22px;opacity:.5;right:0;top:0}#oc-dialog-filepicker-content #picker-showgridview:hover,#oc-dialog-filepicker-content #picker-showgridview:active,#oc-dialog-filepicker-content #picker-showgridview:focus{box-shadow:0 0 0 2px var(--color-primary);opacity:1}#oc-dialog-filepicker-content .actions.creatable{flex-wrap:wrap;padding:0px;box-sizing:border-box;display:inline-flex;float:none;max-height:36px;max-width:36px;background-color:var(--color-background-dark);border:1px solid var(--color-border-dark);border-radius:var(--border-radius-pill);position:relative;left:15px;top:3px;order:1}#oc-dialog-filepicker-content .actions.creatable .icon.icon-add{background-image:var(--icon-add-dark);background-size:16px 16px;width:34px;height:34px;margin:0px;opacity:.5}#oc-dialog-filepicker-content .actions.creatable a{width:36px;padding:0px;position:static}#oc-dialog-filepicker-content .actions.creatable .menu{top:100%;margin-top:10px}#oc-dialog-filepicker-content .actions.creatable .menu form{display:flex;margin:10px}#oc-dialog-filepicker-content .filelist-container{box-sizing:border-box;display:inline-block;overflow-y:auto;flex:1;width:100%;overflow-x:hidden}#oc-dialog-filepicker-content .emptycontent{color:var(--color-text-maxcontrast);text-align:center;margin-top:80px;width:100%;display:none}#oc-dialog-filepicker-content .filelist{background-color:var(--color-main-background);width:100%}#oc-dialog-filepicker-content #picker-filestable.filelist{min-width:initial;margin-bottom:50px}#oc-dialog-filepicker-content #picker-filestable.filelist thead tr{border-bottom:1px solid var(--color-border);background-color:var(--color-main-background)}#oc-dialog-filepicker-content #picker-filestable.filelist thead tr th{width:80%;border:none}#oc-dialog-filepicker-content #picker-filestable.filelist th .columntitle{display:block;padding:15px;height:50px;box-sizing:border-box;-moz-box-sizing:border-box;vertical-align:middle}#oc-dialog-filepicker-content #picker-filestable.filelist th .columntitle.name{padding-left:5px;margin-left:50px}#oc-dialog-filepicker-content #picker-filestable.filelist th .sort-indicator{width:10px;height:8px;margin-left:5px;display:inline-block;vertical-align:text-bottom;opacity:.3}#oc-dialog-filepicker-content #picker-filestable.filelist .sort-indicator.hidden,#oc-dialog-filepicker-content #picker-filestable.filelist th:hover .sort-indicator.hidden,#oc-dialog-filepicker-content #picker-filestable.filelist th:focus .sort-indicator.hidden{visibility:hidden}#oc-dialog-filepicker-content #picker-filestable.filelist th:hover .sort-indicator.hidden,#oc-dialog-filepicker-content #picker-filestable.filelist th:focus .sort-indicator.hidden{visibility:visible}#oc-dialog-filepicker-content #picker-filestable.filelist td{padding:14px;border-bottom:1px solid var(--color-border)}#oc-dialog-filepicker-content #picker-filestable.filelist tr:last-child td{border-bottom:none}#oc-dialog-filepicker-content #picker-filestable.filelist .filename{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;background-size:32px;background-repeat:no-repeat;padding-left:51px;background-position:7px 7px;cursor:pointer;max-width:0}#oc-dialog-filepicker-content #picker-filestable.filelist .filename .filename-parts{display:flex}#oc-dialog-filepicker-content #picker-filestable.filelist .filename .filename-parts__first{overflow:hidden;white-space:pre;text-overflow:ellipsis}#oc-dialog-filepicker-content #picker-filestable.filelist .filename .filename-parts__last{white-space:pre}#oc-dialog-filepicker-content #picker-filestable.filelist .filesize,#oc-dialog-filepicker-content #picker-filestable.filelist .date{width:80px}#oc-dialog-filepicker-content #picker-filestable.filelist .filesize{text-align:right}#oc-dialog-filepicker-content #picker-filestable.filelist.view-grid{display:flex;flex-direction:column}#oc-dialog-filepicker-content #picker-filestable.filelist.view-grid tbody{display:grid;grid-template-columns:repeat(auto-fill, 120px);justify-content:space-around;row-gap:15px;margin:15px 0}#oc-dialog-filepicker-content #picker-filestable.filelist.view-grid tbody tr{display:block;position:relative;border-radius:var(--border-radius);padding:10px;display:flex;flex-direction:column;width:100px}#oc-dialog-filepicker-content #picker-filestable.filelist.view-grid tbody tr td{border:none;padding:0;text-align:center;border-radius:var(--border-radius)}#oc-dialog-filepicker-content #picker-filestable.filelist.view-grid tbody tr td.filename{padding:100px 0 0 0;background-position:center top;background-size:contain;line-height:30px;max-width:none}#oc-dialog-filepicker-content #picker-filestable.filelist.view-grid tbody tr td.filename .filename-parts{justify-content:center}#oc-dialog-filepicker-content #picker-filestable.filelist.view-grid tbody tr td.filesize{line-height:10px;width:100%}#oc-dialog-filepicker-content #picker-filestable.filelist.view-grid tbody tr td.date{display:none}#oc-dialog-filepicker-content .filepicker_element_selected{background-color:var(--color-background-darker)}.ui-dialog{position:fixed !important}span.ui-icon{float:left;margin:3px 7px 30px 0}.extra-data{padding-right:5px !important}#tagsdialog .content{width:100%;height:280px}#tagsdialog .scrollarea{overflow:auto;border:1px solid var(--color-background-darker);width:100%;height:240px}#tagsdialog .bottombuttons{width:100%;height:30px}#tagsdialog .bottombuttons *{float:left}#tagsdialog .taglist li{background:var(--color-background-dark);padding:.3em .8em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-webkit-transition:background-color 500ms;transition:background-color 500ms}#tagsdialog .taglist li:hover,#tagsdialog .taglist li:active{background:var(--color-background-darker)}#tagsdialog .addinput{width:90%;clear:both}.breadcrumb{display:inline-flex;height:50px}li.crumb{display:inline-flex;background-image:url("../img/breadcrumb.svg?v=1");background-repeat:no-repeat;background-position:right center;height:44px;background-size:auto 24px;flex:0 0 auto;order:1;padding-right:7px}li.crumb.crumbmenu{order:2;position:relative}li.crumb.crumbmenu a{opacity:.5}li.crumb.crumbmenu.canDropChildren .popovermenu,li.crumb.crumbmenu.canDrop .popovermenu{display:block}li.crumb.crumbmenu .popovermenu{top:100%;margin-right:3px}li.crumb.crumbmenu .popovermenu ul{max-height:345px;overflow-y:auto;overflow-x:hidden;padding-right:5px}li.crumb.crumbmenu .popovermenu ul li.canDrop span:first-child{background-image:url("../img/filetypes/folder-drag-accept.svg?v=1") !important}li.crumb.crumbmenu .popovermenu .in-breadcrumb{display:none}li.crumb.hidden{display:none}li.crumb.hidden~.crumb{order:3}li.crumb>a,li.crumb>span{position:relative;padding:12px;opacity:.5;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;flex:0 0 auto;max-width:200px}li.crumb>a.icon-home,li.crumb>a.icon-delete,li.crumb>span.icon-home,li.crumb>span.icon-delete{text-indent:-9999px}li.crumb>a[class^=icon-]{padding:0;width:44px}li.crumb:last-child{font-weight:bold;margin-right:10px}li.crumb:last-child a~span{padding-left:0}li.crumb:hover,li.crumb:focus,li.crumb a:focus,li.crumb:active{opacity:1}li.crumb:hover>a,li.crumb:hover>span,li.crumb:focus>a,li.crumb:focus>span,li.crumb a:focus>a,li.crumb a:focus>span,li.crumb:active>a,li.crumb:active>span{opacity:.7}.appear{opacity:1;-webkit-transition:opacity 500ms ease 0s;-moz-transition:opacity 500ms ease 0s;-ms-transition:opacity 500ms ease 0s;-o-transition:opacity 500ms ease 0s;transition:opacity 500ms ease 0s}.appear.transparent{opacity:0}fieldset.warning legend,fieldset.update legend{top:18px;position:relative}fieldset.warning legend+p,fieldset.update legend+p{margin-top:12px}@-ms-viewport{width:device-width}.hiddenuploadfield{display:none;width:0;height:0;opacity:0}/*# sourceMappingURL=styles.css.map */ diff --git a/core/css/styles.css.map b/core/css/styles.css.map index 7c4e8acb524..05983bad2da 100644 --- a/core/css/styles.css.map +++ b/core/css/styles.css.map @@ -1 +1 @@ -{"version":3,"sourceRoot":"","sources":["styles.scss"],"names":[],"mappings":"AAkBA,yQACC,SACA,UACA,SACA,oBACA,eACA,oBACA,wBACA,eACA,uDACA,qBAGD,6CACC,aAID,kGAEC,gDACA,aAGD,UACC,YAGD,6DACC,cAGD,KACC,gBAGD,MACC,yBACA,iBACA,mBAGD,cACC,gBACA,mBAGD,YACC,sBAGD,EACC,SACA,6BACA,qBACA,eACA,IACC,eAIF,WACC,aACA,0BAGD,MACC,eACA,QACC,eAIF,0BACC,eAGD,GACC,gBAGD,KACC,mBAEA,mCACA,uCACA,6BACA,6BAGD,mBACC,kBAGD,qBACC,kBACA,sBACA,qBACA,2BACA,2DACA,uBAGD,iBACC,qBACA,aACA,gCAGD,eACC,YACA,aAGD,cACC,eACA,MACA,SACA,OACA,YACA,WACA,aACA,kBACA,gDACA,gCACA,iBACA,eACA,kBACC,cACA,kBACA,UACA,QACA,gBAED,gBACC,gCACA,sDACA,4CACC,qCAOH,oBACC,WACA,YAGD,2BACC,+BAGD,gCACC,+BAGD,0BACC,kCACA,yCACA,+BACA,4BAMD,YACC,8CACA,gCAMD,kBACC,sBAKD,4BAEC,oCACA,kBACA,gBACA,WACA,sDACC,gBAED,sEACC,gBAED,kCACC,mBAED,oHAEC,qBACA,YACA,WACA,mBACA,gcAEC,WAOH,sBACC,WASD,oCACC,kBACA,yBACA,sBACA,qBACA,iBAKD,kBACC,kBACA,UACA,SACA,YAGD,8BACC,WACA,oBACA,wBACA,wBAGD,2EACC,WAED,oGACC,0CACA,UACA,qBAGD,mDACC,6BACA,YACA,WACA,yCACA,4BACA,2BACA,WAOA,qEACC,UAED,qEACC,UAIF,wEACC,aAGD,2CACC,mBAGD,yBACC,kBACA,qBACA,iBAED,qBACC,cACA,QACA,iBACA,kBACA,aAKD,4CACC,eACA,YACA,mCACA,6BACA,qDAIA,2BACC,4BAKD,wBACC,sBACA,4BACA,+BACC,2CACA,qBACA,kBAGF,0BACC,qBACA,gBAIF,YACC,YACA,8BACA,oBACC,sBAIF,eACC,2CAUD,mBACC,kBACA,cACA,2BACC,kBACA,cAIF,UACC,gBAGD,8CACC,UAIA,oGAGC,WAIF,mBACC,WACA,kBACA,QAEA,kDACC,UAIF,WACC,WACA,YAGD,eACC,WAIA,8CACC,UAKD,kDACC,UAKD,0CACC,UAKD,8CACC,8CAIF,KACC,mFAGD,OACC,gBACA,YACA,eACA,qBACA,UACC,qBAIF,2FACC,gBACA,uBAGD,2BACC,yDAGD,2BACC,6DAID,yBACC,gBACA,gBACA,WACA,mCACA,YACA,wBAEA,sKAGC,+BACA,mBAED,2CACC,YACA,eACA,YACA,8CACA,6BAEA,gEACC,cACA,mBAED,oDACC,WAEA,8EACC,yEAED,8EACC,wEAGF,oEACC,UAID,oDACC,mBACA,gCACA,WACA,WACA,YAED,0DACC,yBAGA,+FACC,gDAGD,wOAGC,sCACA,gCACA,iBAGD,yNAEC,gCACA,WAMJ,wCACC,gCACA,wCAKD,yBACC,2BACA,sBACA,mCACA,wBAEA,4CACC,uBAGD,sKAGC,+BACA,mBAED,2CACC,YACA,eACA,YACA,8CACA,6BAEA,gEACC,cACA,mBAIF,qFACC,iBAGA,iDACC,mBACA,gCACA,WACA,yDACC,UACA,WACA,iBAGF,uDACC,yBAGA,0TAIC,sCACA,gCACA,iBAGD,4FACC,gCAGD,qEACC,2CASH,oGACC,aACA,iBACA,8BACA,0GACC,cACA,SACA,YACA,YACA,WACA,aACA,mBACA,uBACA,8GACC,kBACA,kBACA,mBACA,6BACA,cACA,iBACA,WACA,YACA,YACA,eAOJ,8BACC,kBACA,aACA,sBAEA,uCACC,eACA,sBACA,oBAEA,yDACC,cACA,uCACA,4BACA,gCAGA,6DACC,eAED,uDACC,iBAED,oEACC,YACA,YAKH,mDACC,kBACA,+BACA,YACA,SACA,aACA,WACA,QACA,MAEA,4KAGC,0CACA,UAIF,iDACC,eACA,YACA,sBACA,oBACA,WACA,gBACA,eACA,8CACA,0CACA,wCACA,kBACA,UACA,QACA,QAEA,gEACC,sCACA,0BACA,WACA,YACA,WACA,WAGD,mDACC,WACA,YACA,gBAGD,uDACC,SACA,gBACA,4DACC,aACA,YAMH,kDACC,sBACA,qBACA,gBACA,OAGA,WACA,kBAED,4CACC,oCACA,kBACA,gBACA,WACA,aAED,wCACC,8CACA,WAED,0DAEC,kBACA,mBAEC,mEACC,4CACA,8CACA,sEACC,UACA,YAIH,0EACC,cACA,aACA,YACA,sBACA,2BACA,sBAED,+EACC,iBACA,iBAGD,6EACC,WACA,WACA,gBACA,qBACA,2BACA,WAED,qQAGC,kBAED,oLAEC,mBAGD,6DACC,aACA,4CAED,2EACC,mBAED,oEACC,gBACA,mBACA,uBACA,qBACA,4BACA,kBACA,4BACA,eAEA,YACA,oFACC,aACA,2FACC,gBACA,gBACA,uBAED,0FACC,gBAIH,oIACC,WAED,oEACC,iBAED,oEAIC,aACA,sBAEA,0EACC,aACA,+CACA,6BACA,aACA,cAEA,6EACC,cACA,kBACA,mCACA,QAhBS,KAiBT,aACA,sBACA,YAGA,gFACC,YACA,UACA,kBACA,mCAEA,yFACC,oBACA,+BACA,wBACA,YA/BU,KAgCV,eACA,yGACC,uBAGF,yFACC,iBACA,WAED,qFACC,aAON,2DACC,gDAIF,WACC,0BAGD,aACC,WACA,sBAKD,YACC,6BAMA,qBACC,WACA,aAED,wBACC,cACA,gDACA,WACA,aAED,2BACC,WACA,YACA,6BACC,WAGF,wBACC,wCACA,kBACA,mBACA,gBACA,uBACA,0CACA,kCACA,6DACC,0CAGF,sBACC,UACA,WAKF,YACC,oBACA,YAED,SACC,oBACA,kDACA,4BACA,iCACA,YACA,0BACA,cACA,QACA,kBACA,mBACC,QACA,kBACA,qBACC,WAIA,wFACC,cAIF,gCACC,SACA,iBACA,mCACC,iBACA,gBACA,kBACA,kBACA,+DACC,+EAGF,+CACC,aAIH,gBACC,aACA,uBACC,QAGF,yBAEC,kBACA,aACA,WACA,uBACA,mBACA,gBACA,cAEA,gBAEA,8FAGC,oBAGF,yBACC,UACA,WAID,oBACC,iBACA,kBAEA,2BACC,eAGF,+DACC,UAEA,0JAEC,WAOH,QACC,UACA,yCACA,sCACA,qCACA,oCACA,iCACA,oBACC,UAOD,+CACC,SACA,kBAED,mDACC,gBAKF,cACC,mBAMD,mBACC,aACA,QACA,SACA","file":"styles.css"} \ No newline at end of file +{"version":3,"sourceRoot":"","sources":["styles.scss"],"names":[],"mappings":"AAkBA,yQACC,SACA,UACA,SACA,oBACA,eACA,oBACA,wBACA,eACA,uDACA,qBAGD,6CACC,aAID,kGAEC,gDACA,aAGD,UACC,YAGD,6DACC,cAGD,KACC,gBAGD,MACC,yBACA,iBACA,mBAGD,cACC,gBACA,mBAGD,YACC,sBAGD,EACC,SACA,6BACA,qBACA,eACA,IACC,eAIF,WACC,aACA,0BAGD,MACC,eACA,QACC,eAIF,0BACC,eAGD,GACC,gBAGD,KACC,mBAEA,mCACA,uCACA,6BACA,6BAGD,mBACC,kBAGD,qBACC,kBACA,sBACA,qBACA,2BACA,2DACA,uBAGD,iBACC,qBACA,aACA,gCAGD,eACC,YACA,aAGD,cACC,eACA,MACA,SACA,OACA,YACA,WACA,aACA,kBACA,gDACA,gCACA,iBACA,eACA,kBACC,cACA,kBACA,UACA,QACA,gBAED,gBACC,gCACA,sDACA,4CACC,qCAOH,oBACC,WACA,YAGD,2BACC,+BAGD,gCACC,+BAGD,0BACC,kCACA,yCACA,+BACA,4BAMD,YACC,8CACA,gCAMD,kBACC,sBAKD,4BAEC,oCACA,kBACA,gBACA,WACA,sDACC,gBAED,sEACC,gBAED,kCACC,mBAED,oHAEC,qBACA,YACA,WACA,mBACA,gcAEC,WAOH,sBACC,WASD,oCACC,kBACA,yBACA,sBACA,qBACA,iBAKD,kBACC,kBACA,UACA,SACA,YAGD,8BACC,WACA,oBACA,wBACA,wBAGD,2EACC,WAED,oGACC,0CACA,UACA,qBAGD,mDACC,6BACA,YACA,WACA,yCACA,4BACA,2BACA,WAOA,qEACC,UAED,qEACC,UAIF,wEACC,aAGD,2CACC,mBAGD,yBACC,kBACA,qBACA,iBAED,qBACC,cACA,QACA,iBACA,kBACA,aAKD,4CACC,eACA,YACA,mCACA,6BACA,qDAIA,2BACC,4BAKD,wBACC,sBACA,4BACA,+BACC,2CACA,qBACA,kBAGF,0BACC,qBACA,gBAIF,YACC,YACA,8BACA,oBACC,sBAIF,eACC,2CAUD,mBACC,kBACA,cACA,2BACC,kBACA,cAIF,UACC,gBAGD,8CACC,UAIA,oGAGC,WAIF,mBACC,WACA,kBACA,QAEA,kDACC,UAIF,WACC,WACA,YAGD,eACC,WAIA,8CACC,UAKD,kDACC,UAKD,0CACC,UAKD,8CACC,8CAIF,KACC,mFAGD,OACC,gBACA,YACA,eACA,qBACA,UACC,qBAIF,2FACC,gBACA,uBAGD,2BACC,yDAGD,2BACC,6DAID,yBACC,gBACA,gBACA,WACA,mCACA,YACA,wBAEA,sKAGC,+BACA,mBAED,2CACC,YACA,eACA,YACA,8CACA,6BAEA,gEACC,cACA,mBAED,oDACC,WAEA,8EACC,yEAED,8EACC,wEAGF,oEACC,UAID,oDACC,mBACA,gCACA,WACA,WACA,YAED,0DACC,yBAGA,+FACC,gDAGD,wOAGC,sCACA,gCACA,iBAGD,yNAEC,gCACA,WAMJ,wCACC,gCACA,wCAKD,yBACC,2BACA,sBACA,mCACA,wBAEA,4CACC,uBAGD,sKAGC,+BACA,mBAED,2CACC,YACA,eACA,YACA,8CACA,6BAEA,gEACC,cACA,mBAIF,qFACC,iBAGA,iDACC,mBACA,gCACA,WACA,yDACC,UACA,WACA,iBAGF,uDACC,yBAGA,0TAIC,sCACA,gCACA,iBAGD,4FACC,gCAGD,qEACC,2CASH,oGACC,aACA,iBACA,8BACA,0GACC,cACA,SACA,YACA,YACA,WACA,aACA,mBACA,uBACA,8GACC,kBACA,kBACA,mBACA,6BACA,cACA,iBACA,WACA,YACA,YACA,eAOJ,8BACC,kBACA,aACA,sBAEA,uCACC,eACA,sBACA,oBACA,aAEA,yDACC,cACA,uCACA,4BACA,gCAGA,6DACC,eAED,uDACC,iBAED,oEACC,YACA,YAKH,mDACC,kBACA,+BACA,YACA,SACA,aACA,WACA,QACA,MAEA,4KAGC,0CACA,UAIF,iDACC,eACA,YACA,sBACA,oBACA,WACA,gBACA,eACA,8CACA,0CACA,wCACA,kBACA,UACA,QACA,QAEA,gEACC,sCACA,0BACA,WACA,YACA,WACA,WAGD,mDACC,WACA,YACA,gBAGD,uDACC,SACA,gBACA,4DACC,aACA,YAMH,kDACC,sBACA,qBACA,gBACA,OAGA,WACA,kBAED,4CACC,oCACA,kBACA,gBACA,WACA,aAED,wCACC,8CACA,WAED,0DAEC,kBACA,mBAEC,mEACC,4CACA,8CACA,sEACC,UACA,YAIH,0EACC,cACA,aACA,YACA,sBACA,2BACA,sBAED,+EACC,iBACA,iBAGD,6EACC,WACA,WACA,gBACA,qBACA,2BACA,WAED,qQAGC,kBAED,oLAEC,mBAGD,6DACC,aACA,4CAED,2EACC,mBAED,oEACC,gBACA,mBACA,uBACA,qBACA,4BACA,kBACA,4BACA,eAEA,YACA,oFACC,aACA,2FACC,gBACA,gBACA,uBAED,0FACC,gBAIH,oIACC,WAED,oEACC,iBAED,oEAIC,aACA,sBAEA,0EACC,aACA,+CACA,6BACA,aACA,cAEA,6EACC,cACA,kBACA,mCACA,QAhBS,KAiBT,aACA,sBACA,YAGA,gFACC,YACA,UACA,kBACA,mCAEA,yFACC,oBACA,+BACA,wBACA,YA/BU,KAgCV,eACA,yGACC,uBAGF,yFACC,iBACA,WAED,qFACC,aAON,2DACC,gDAIF,WACC,0BAGD,aACC,WACA,sBAKD,YACC,6BAMA,qBACC,WACA,aAED,wBACC,cACA,gDACA,WACA,aAED,2BACC,WACA,YACA,6BACC,WAGF,wBACC,wCACA,kBACA,mBACA,gBACA,uBACA,0CACA,kCACA,6DACC,0CAGF,sBACC,UACA,WAKF,YACC,oBACA,YAED,SACC,oBACA,kDACA,4BACA,iCACA,YACA,0BACA,cACA,QACA,kBACA,mBACC,QACA,kBACA,qBACC,WAIA,wFACC,cAIF,gCACC,SACA,iBACA,mCACC,iBACA,gBACA,kBACA,kBACA,+DACC,+EAGF,+CACC,aAIH,gBACC,aACA,uBACC,QAGF,yBAEC,kBACA,aACA,WACA,uBACA,mBACA,gBACA,cAEA,gBAEA,8FAGC,oBAGF,yBACC,UACA,WAID,oBACC,iBACA,kBAEA,2BACC,eAGF,+DACC,UAEA,0JAEC,WAOH,QACC,UACA,yCACA,sCACA,qCACA,oCACA,iCACA,oBACC,UAOD,+CACC,SACA,kBAED,mDACC,gBAKF,cACC,mBAMD,mBACC,aACA,QACA,SACA","file":"styles.css"} \ No newline at end of file diff --git a/core/css/styles.scss b/core/css/styles.scss index 9eff4916442..c581bae7325 100644 --- a/core/css/styles.scss +++ b/core/css/styles.scss @@ -649,6 +649,7 @@ code { flex-wrap: wrap; box-sizing: border-box; padding-right: 140px; + display: flex; div:first-child a { font-size: 0px; diff --git a/core/src/OC/dialogs.js b/core/src/OC/dialogs.js index 54d81171679..50a2b6f2c8a 100644 --- a/core/src/OC/dialogs.js +++ b/core/src/OC/dialogs.js @@ -444,7 +444,7 @@ const Dialogs = { self.$filelist = self.$filePicker.find('.filelist tbody') self.$filelistContainer = self.$filePicker.find('.filelist-container') self.$dirTree = self.$filePicker.find('.dirtree') - self.$dirTree.on('click keydown', 'div:not(:last-child)', self, function(event) { + self.$dirTree.on('click keydown', '.crumb', self, function(event) { if (isA11yActivation(event)) { self._handleTreeListSelect(event, type) } @@ -1304,7 +1304,7 @@ const Dialogs = { if (dir === '') { return false } - $breadcrumbs.append($template.octemplate({ + $breadcrumbs.prepend($template.octemplate({ dir: paths.join('/') + '/' + dir, name: dir })) @@ -1317,7 +1317,7 @@ const Dialogs = { }, { escapeFunction: null }).addClass('crumb svg crumbhome').prependTo($breadcrumbs) - this.$dirTree.find('nav').prepend($breadcrumbs) + this.$dirTree.find('> nav').prepend($breadcrumbs) }, /** * handle selection made in the tree list diff --git a/dist/core-login.js b/dist/core-login.js index c57dff26e2e..404d06b9c7d 100644 --- a/dist/core-login.js +++ b/dist/core-login.js @@ -1,3 +1,3 @@ /*! For license information please see core-login.js.LICENSE.txt */ -!function(){var e,o={55326:function(e,o,i){"use strict";var r=i(20144),a=i(78595),s=i(19755),l=i.n(s),c=i(79753),u=i(25108),d={},f=[],p=i(18181),h=i(64024),m=i(25108),g={updatableNotification:null,getDefaultNotificationFunction:null,setDefault:function(t){this.getDefaultNotificationFunction=t},hide:function(t,e){p.ZP.isFunction(t)&&(e=t,t=void 0),t?(t.each((function(){l()(this)[0].toastify?l()(this)[0].toastify.hideToast():m.error("cannot hide toast because object is not set"),this===this.updatableNotification&&(this.updatableNotification=null)})),e&&e.call(),this.getDefaultNotificationFunction&&this.getDefaultNotificationFunction()):m.error("Missing argument $row in OC.Notification.hide() call, caller needs to be adjusted to only dismiss its own notification")},showHtml:function(t,e){(e=e||{}).isHTML=!0,e.timeout=e.timeout?e.timeout:h.Rl;var n=(0,h.PV)(t,e);return n.toastElement.toastify=n,l()(n.toastElement)},show:function(t,e){(e=e||{}).timeout=e.timeout?e.timeout:h.Rl;var n=(0,h.PV)(function(t){return t.toString().split("&").join("&").split("<").join("<").split(">").join(">").split('"').join(""").split("'").join("'")}(t),e);return n.toastElement.toastify=n,l()(n.toastElement)},showUpdate:function(t){return this.updatableNotification&&this.updatableNotification.hideToast(),this.updatableNotification=(0,h.PV)(t,{timeout:h.Rl}),this.updatableNotification.toastElement.toastify=this.updatableNotification,l()(this.updatableNotification.toastElement)},showTemporary:function(t,e){(e=e||{}).timeout=e.timeout||h.TN;var n=(0,h.PV)(t,e);return n.toastElement.toastify=n,l()(n.toastElement)},isHidden:function(){return!l()("#content").find(".toastify").length}},v=p.ZP.throttle((function(){g.showTemporary(t("core","Connection to server lost"))}),7e3,{trailing:!1});function y(t,e,n){"post"!==t&&"delete"!==t||!Mt.PasswordConfirmation.requiresPasswordConfirmation()?(n=n||{},l().ajax({type:t.toUpperCase(),url:(0,c.generateOcsUrl)("apps/provisioning_api/api/v1/config/apps")+e,data:n.data||{},success:n.success,error:n.error})):Mt.PasswordConfirmation.requirePasswordConfirmation(_.bind(y,this,t,e,n))}var w=window.oc_appconfig||{},b={getValue:function(t,e,n,o){!function(t,e,n,o){(o=o||{}).data={defaultValue:n},y("get","/"+t+"/"+e,o)}(t,e,n,{success:o})},setValue:function(t,e,n){!function(t,e,n,o){(o=o||{}).data={value:n},y("post","/"+t+"/"+e,o)}(t,e,n)},getApps:function(t){!function(t){y("get","",t)}({success:t})},getKeys:function(t,e){!function(t,e){y("get","/"+t,e)}(t,{success:e})},deleteKey:function(t,e){!function(t,e,n){y("delete","/"+t+"/"+e,void 0)}(t,e)}},P=i(25108),C=void 0!==window._oc_appswebroots&&window._oc_appswebroots,A=i(72316),k=i.n(A),x=i(76591),O=i(25108),T={create:"POST",update:"PROPPATCH",patch:"PROPPATCH",delete:"DELETE",read:"PROPFIND"};function j(t,e){if(p.ZP.isArray(t))return p.ZP.map(t,(function(t){return j(t,e)}));var n={href:t.href};return p.ZP.each(t.propStat,(function(t){if("HTTP/1.1 200 OK"===t.status)for(var o in t.properties){var i=o;o in e&&(i=e[o]),n[i]=t.properties[o]}})),n.id||(n.id=E(n.href)),n}function E(t){var e=t.indexOf("?");e>0&&(t=t.substr(0,e));var n,o=t.split("/");do{n=o[o.length-1],o.pop()}while(!n&&o.length>0);return n}function S(t){return t>=200&&t<=299}function L(t,e,n,o){return t.propPatch(e.url,function(t,e){var n,o={};for(n in t){var i=e[n],r=t[n];i||(O.warn('No matching DAV property for property "'+n),i=n),(p.ZP.isBoolean(r)||p.ZP.isNumber(r))&&(r=""+r),o[i]=r}return o}(n.changed,e.davProperties),o).then((function(t){S(t.status)?p.ZP.isFunction(e.success)&&e.success(n.toJSON()):p.ZP.isFunction(e.error)&&e.error(t)}))}var N=k().noConflict();Object.assign(N,{davCall:function(t,e){var n=new x.dav.Client({baseUrl:t.url,xmlNamespaces:p.ZP.extend({"DAV:":"d","http://owncloud.org/ns":"oc"},t.xmlNamespaces||{})});n.resolveUrl=function(){return t.url};var o=p.ZP.extend({"X-Requested-With":"XMLHttpRequest",requesttoken:OC.requestToken},t.headers);return"PROPFIND"===t.type?function(t,e,n,o){return t.propFind(e.url,p.ZP.values(e.davProperties)||[],e.depth,o).then((function(t){if(S(t.status)){if(p.ZP.isFunction(e.success)){var n=p.ZP.invert(e.davProperties),o=j(t.body,n);e.depth>0&&o.shift(),e.success(o)}}else p.ZP.isFunction(e.error)&&e.error(t)}))}(n,t,0,o):"PROPPATCH"===t.type?L(n,t,e,o):"MKCOL"===t.type?function(t,e,n,o){return t.request(e.type,e.url,o,null).then((function(i){S(i.status)?L(t,e,n,o):p.ZP.isFunction(e.error)&&e.error(i)}))}(n,t,e,o):function(t,e,n,o){return o["Content-Type"]="application/json",t.request(e.type,e.url,o,e.data).then((function(t){if(S(t.status)){if(p.ZP.isFunction(e.success)){if("PUT"===e.type||"POST"===e.type||"MKCOL"===e.type){var o=t.body||n.toJSON(),i=t.xhr.getResponseHeader("Content-Location");return"POST"===e.type&&i&&(o.id=E(i)),void e.success(o)}if(207===t.status){var r=p.ZP.invert(e.davProperties);e.success(j(t.body,r))}else e.success(t.body)}}else p.ZP.isFunction(e.error)&&e.error(t)}))}(n,t,e,o)},davSync:function(t){return function(e,n,o){var i={type:T[e]||e},r=n instanceof t.Collection;if("update"===e&&(n.hasInnerCollection?i.type="MKCOL":(n.usePUT||n.collection&&n.collection.usePUT)&&(i.type="PUT")),o.url||(i.url=p.ZP.result(n,"url")||function(){throw new Error('A "url" property or function must be specified')}()),null!=o.data||!n||"create"!==e&&"update"!==e&&"patch"!==e||(i.data=JSON.stringify(o.attrs||n.toJSON(o))),"PROPFIND"!==i.type&&(i.processData=!1),"PROPFIND"===i.type||"PROPPATCH"===i.type){var a=n.davProperties;!a&&n.model&&(a=n.model.prototype.davProperties),a&&(p.ZP.isFunction(a)?i.davProperties=a.call(n):i.davProperties=a),i.davProperties=p.ZP.extend(i.davProperties||{},o.davProperties),p.ZP.isUndefined(o.depth)&&(o.depth=r?1:0)}var s=o.error;o.error=function(t,e,n){o.textStatus=e,o.errorThrown=n,s&&s.call(o.context,t,e,n)};var l=o.xhr=t.davCall(p.ZP.extend(i,o),n);return n.trigger("request",n,l,o),l}}(N)});var I=N,U=i(65358),$=window._oc_config||{},R=i(25108),F=A.Model.extend({defaults:{fullName:"",lastMessage:"",actions:[],hasOneAction:!1,hasTwoActions:!1,hasManyActions:!1},initialize:function(){0===this.get("actions").length?this.set("hasOneAction",!0):1===this.get("actions").length?(this.set("hasTwoActions",!0),this.set("secondAction",this.get("actions")[0])):this.set("hasManyActions",!0);var e=this.get("fullName");this.get("avatar")&&e&&this.set("avatarLabel",t("core","Avatar of {fullName}",{fullName:e}))}}),M=A.Collection.extend({model:F}),B=A.View.extend({_collection:void 0,_subViews:[],tagName:"ul",initialize:function(t){this._collection=t.collection},render:function(){var t=this;return t.$el.html(""),t._subViews=[],t._collection.forEach((function(e){var n=new z({model:e});n.render(),t.$el.append(n.$el),n.on("toggle:actionmenu",t._onChildActionMenuToggle,t),t._subViews.push(n)})),t},_onChildActionMenuToggle:function(t){this._subViews.forEach((function(e){e.trigger("parent:toggle:actionmenu",t)}))}}),z=A.View.extend({className:"contact",tagName:"li",_template:void 0,_model:void 0,_actionMenuShown:!1,events:{"click .icon-more":"_onToggleActionsMenu"},contactTemplate:i(10944),template:function(t){return this.contactTemplate(t)},initialize:function(t){this._model=t.model,this.on("parent:toggle:actionmenu",this._onOtherActionMenuOpened,this)},render:function(){return this.$el.html(this.template({contact:this._model.toJSON()})),this.delegateEvents(),this.$("div.avatar").imageplaceholder(this._model.get("fullName")),this},_onToggleActionsMenu:function(){this._actionMenuShown=!this._actionMenuShown,this._actionMenuShown?this.$(".menu").show():this.$(".menu").hide(),this.trigger("toggle:actionmenu",this.$el)},_onOtherActionMenuOpened:function(t){this.$el.is(t)||(this._actionMenuShown=!1,this.$(".menu").hide())}}),D=A.View.extend({_loadingTemplate:void 0,_errorTemplate:void 0,_contentTemplate:void 0,_contactsTemplate:void 0,_contacts:void 0,_searchTerm:"",events:{"input #contactsmenu-search":"_onSearch"},templates:{loading:i(95386),error:i(20421),menu:i(66115),list:i(34083)},_onSearch:p.ZP.debounce((function(t){var e=this.$("#contactsmenu-search").val();e!==this._searchTerm&&(this.trigger("search",this.$("#contactsmenu-search").val()),this._searchTerm=e)}),700),loadingTemplate:function(t){return this.templates.loading(t)},errorTemplate:function(e){return this.templates.error(p.ZP.extend({couldNotLoadText:t("core","Could not load your contacts")},e))},contentTemplate:function(e){return this.templates.menu(p.ZP.extend({searchContactsText:t("core","Search contacts …")},e))},contactsTemplate:function(e){return this.templates.list(p.ZP.extend({noContactsFoundText:t("core","No contacts found"),showAllContactsText:t("core","Show all contacts …"),contactsAppMgmtText:t("core","Install the Contacts app")},e))},initialize:function(t){this.options=t},showLoading:function(t){this.render(),this._contacts=void 0,this.$(".content").html(this.loadingTemplate({loadingText:t}))},showError:function(){this.render(),this._contacts=void 0,this.$(".content").html(this.errorTemplate())},showContacts:function(t,e){this._contacts=t.contacts,this.render({contacts:t.contacts});var n=new B({collection:t.contacts});n.render(),this.$(".content").html(this.contactsTemplate({contacts:t.contacts,searchTerm:e,contactsAppEnabled:t.contactsAppEnabled,contactsAppURL:Mt.generateUrl("/apps/contacts"),canInstallApp:Mt.isUserAdmin(),contactsAppMgmtURL:Mt.generateUrl("/settings/apps/social/contacts")})),this.$("#contactsmenu-contacts").html(n.$el)},render:function(t){var e=this.$("#contactsmenu-search").val();return this.$el.html(this.contentTemplate(t)),this.$("#contactsmenu-search").val(e),this.$("#contactsmenu-search").focus(),this}}),Z=function(t){this.initialize(t)};Z.prototype={$el:void 0,_view:void 0,_contactsPromise:void 0,initialize:function(t){this.$el=l()(t.el),this._view=new D({el:this.$el}),this._view.on("search",(function(t){this.loadContacts(t)}),this)},_getContacts:function(t){var e=Mt.generateUrl("/contactsmenu/contacts");return Promise.resolve(l().ajax(e,{method:"POST",data:{filter:t}}))},loadContacts:function(e){var n=this;return n._contactsPromise||(n._contactsPromise=n._getContacts(e)),p.ZP.isUndefined(e)||""===e?n._view.showLoading(t("core","Loading your contacts …")):n._view.showLoading(t("core","Looking for {term} …",{term:e})),n._contactsPromise.then((function(t){t.contacts=new M(t.contacts),n._view.showContacts(t,e)}),(function(t){n._view.showError(),R.error("There was an error loading your contacts",t)})).then((function(){delete n._contactsPromise})).catch(R.error.bind(this))}};var H=Z,Y=document.getElementsByTagName("head")[0].getAttribute("data-user"),q=document.getElementsByTagName("head")[0].getAttribute("data-user-displayname"),K=void 0!==Y&&Y,V=i(25108);function G(t){return G="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},G(t)}function W(t,e){for(var n=0;n");f.attr("type",a?"password":"text").attr("id",c+"-input").attr("placeholder",r);var h=l()("