Merge branch 'master' into fix/load-themedir-dist

Signed-off-by: Carl Schwan <carl@carlschwan.eu>
This commit is contained in:
Carl Schwan 2022-08-26 22:18:19 +02:00 committed by GitHub
commit e1803a72b0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
72 changed files with 720 additions and 710 deletions

View file

@ -510,7 +510,6 @@ export default {
margin-right: 16px;
background-position: center;
float: left;
filter: var(--background-invert-if-dark);
}
}
}

View file

@ -64,6 +64,7 @@ use OCA\DAV\Events\CalendarUpdatedEvent;
use OCA\DAV\Events\SubscriptionCreatedEvent;
use OCA\DAV\Events\SubscriptionDeletedEvent;
use OCA\DAV\Events\SubscriptionUpdatedEvent;
use OCP\Calendar\Exceptions\CalendarException;
use OCP\DB\Exception;
use OCP\DB\QueryBuilder\IQueryBuilder;
use OCP\EventDispatcher\IEventDispatcher;
@ -770,8 +771,14 @@ class CalDavBackend extends AbstractBackend implements SyncSupport, Subscription
* @param string $calendarUri
* @param array $properties
* @return int
*
* @throws CalendarException
*/
public function createCalendar($principalUri, $calendarUri, array $properties) {
if (strlen($calendarUri) > 255) {
throw new CalendarException('URI too long. Calendar not created');
}
$values = [
'principaluri' => $this->convertPrincipal($principalUri, true),
'uri' => $calendarUri,

View file

@ -389,6 +389,10 @@ class CardDavBackend implements BackendInterface, SyncSupport {
* @throws BadRequest
*/
public function createAddressBook($principalUri, $url, array $properties) {
if (strlen($url) > 255) {
throw new BadRequest('URI too long. Address book not created');
}
$values = [
'displayname' => null,
'description' => null,

View file

@ -57,6 +57,7 @@ class ViewOnlyPlugin extends ServerPlugin {
//priority 90 to make sure the plugin is called before
//Sabre\DAV\CorePlugin::httpGet
$this->server->on('method:GET', [$this, 'checkViewOnly'], 90);
$this->server->on('method:COPY', [$this, 'checkViewOnly'], 90);
}
/**

View file

@ -950,6 +950,9 @@ table.dragshadow td.size {
position: relative;
}
.breadcrumb {
align-items: center;
}
.breadcrumb .icon-home {
border-radius: var(--border-radius);
}

File diff suppressed because one or more lines are too long

View file

@ -851,8 +851,12 @@ table.dragshadow td.size {
position: relative;
}
.breadcrumb .icon-home {
border-radius: var(--border-radius);
.breadcrumb {
align-items: center;
.icon-home {
border-radius: var(--border-radius);
}
}
.breadcrumb .canDrop > a,

View file

@ -950,6 +950,9 @@ table.dragshadow td.size {
position: relative;
}
.breadcrumb {
align-items: center;
}
.breadcrumb .icon-home {
border-radius: var(--border-radius);
}

File diff suppressed because one or more lines are too long

View file

@ -673,6 +673,9 @@
displayName: function(context) {
var permissions = context.fileInfoModel.attributes.permissions;
if (permissions & OC.PERMISSION_UPDATE) {
if (!context.fileInfoModel.canDownload()) {
return t('files', 'Move');
}
return t('files', 'Move or copy');
}
return t('files', 'Copy');
@ -685,7 +688,11 @@
var permissions = context.fileInfoModel.attributes.permissions;
var actions = OC.dialogs.FILEPICKER_TYPE_COPY;
if (permissions & OC.PERMISSION_UPDATE) {
actions = OC.dialogs.FILEPICKER_TYPE_COPY_MOVE;
if (!context.fileInfoModel.canDownload()) {
actions = OC.dialogs.FILEPICKER_TYPE_MOVE;
} else {
actions = OC.dialogs.FILEPICKER_TYPE_COPY_MOVE;
}
}
var dialogDir = context.dir;
if (typeof context.fileList.dirInfo.dirLastCopiedTo !== 'undefined') {

View file

@ -126,7 +126,18 @@
});
return deferred.promise();
}
},
canDownload: function() {
for (const i in this.attributes.shareAttributes) {
const attr = this.attributes.shareAttributes[i]
if (attr.scope === 'permissions' && attr.key === 'download') {
return attr.enabled
}
}
return true
},
});
if (!OCA.Files) {

View file

@ -94,6 +94,10 @@ import { getCapabilities } from '@nextcloud/capabilities'
}
if (_.isFunction(fileData.canDownload) && !fileData.canDownload()) {
delete fileActions.actions.all.Download
if (fileData.permissions & OC.PERMISSION_UPDATE === 0) {
// neither move nor copy is allowed, remove the action completely
delete fileActions.actions.all.MoveCopy
}
}
tr.attr('data-share-permissions', sharePermissions)
tr.attr('data-share-attributes', JSON.stringify(fileData.shareAttributes))

View file

@ -169,7 +169,9 @@ input#openid, input#webdav {
grid-template-rows: 1fr 1fr 1fr 2fr;
}
.profile-settings-container #locale h3 {
height: 32px;
height: 44px;
display: flex;
align-items: center;
}
.personal-show-container {
@ -221,7 +223,7 @@ select#timezone, select#languageinput, select#localeinput {
text-decoration: underline;
}
.development-notice a:not(.link-button):hover {
background-color: var(--color-primary-element-lighter);
background-color: var(--color-primary-element-hover);
}
.link-button {
@ -311,6 +313,8 @@ select#timezone, select#languageinput, select#localeinput {
flex-wrap: nowrap;
justify-content: flex-start;
width: 100%;
align-items: center;
gap: 8px;
}
.personal-settings-container > div h3 > label {
white-space: nowrap;
@ -384,7 +388,7 @@ select#timezone, select#languageinput, select#localeinput {
width: 44px;
height: 44px;
padding: 10px;
margin: -12px 0 0 8px;
margin: 0;
background: none;
border: none;
}
@ -480,12 +484,32 @@ table.nostyle td {
#security-password #passwordform {
display: flex;
flex-wrap: wrap;
flex-direction: column;
gap: 1rem;
}
#security-password #passwordform #pass1, #security-password #passwordform .personal-show-container, #security-password #passwordform #passwordbutton {
#security-password #passwordform .input-control {
display: flex;
flex-wrap: wrap;
flex-direction: column;
}
#security-password #passwordform .input-control label {
margin-bottom: 0.5rem;
}
#security-password #passwordform #pass1, #security-password #passwordform .personal-show-container {
flex-shrink: 1;
width: 200px;
width: 300px;
min-width: 150px;
}
#security-password #passwordform .personal-show-container #pass2 {
position: relative;
top: 0.5rem;
}
#security-password #passwordform .personal-show-container .personal-show-label {
top: 34px !important;
margin-right: 0;
margin-top: 0 !important;
right: 3px;
}
#security-password #passwordform #pass2 {
width: 100%;
}
@ -497,7 +521,7 @@ table.nostyle td {
left: 0;
width: 100%;
border-radius: 0 0 2px 2px;
margin-top: -6px;
margin-top: 5px;
overflow: hidden;
height: 3px;
}
@ -1169,7 +1193,7 @@ table.grid td.date {
}
#mail_smtpport {
width: 40px;
width: 60px;
}
.cronlog {

File diff suppressed because one or more lines are too long

View file

@ -120,7 +120,9 @@ input {
#locale {
h3 {
height: 32px;
height: 44px;
display: flex;
align-items: center;
}
}
}
@ -188,7 +190,7 @@ select {
a:not(.link-button) {
text-decoration: underline;
&:hover {
background-color: var(--color-primary-element-lighter);
background-color: var(--color-primary-element-hover);
}
}
}
@ -300,6 +302,8 @@ select {
flex-wrap: nowrap;
justify-content: flex-start;
width: 100%;
align-items: center;
gap: 8px;
> label {
white-space: nowrap;
@ -391,7 +395,7 @@ select {
width: 44px;
height: 44px;
padding: 10px;
margin: -12px 0 0 8px;
margin: 0;
background: none;
border: none;
@ -514,13 +518,37 @@ table.nostyle {
#passwordform {
display: flex;
flex-wrap: wrap;
flex-direction: column;
gap: 1rem;
.input-control {
display: flex;
flex-wrap: wrap;
flex-direction: column;
label {
margin-bottom: 0.5rem;
}
}
#pass1, .personal-show-container, #passwordbutton {
#pass1, .personal-show-container {
flex-shrink: 1;
width: 200px;
width: 300px;
min-width: 150px;
}
// Extremely fragile code, to be replaced by PasswordField component soon
.personal-show-container {
#pass2 {
position: relative;
top: 0.5rem;
}
.personal-show-label {
top: 34px !important;
margin-right: 0;
margin-top: 0 !important;
right: 3px;
}
}
#pass2 {
width: 100%;
}
@ -534,7 +562,7 @@ table.nostyle {
left: 0;
width: 100%;
border-radius: 0 0 2px 2px;
margin-top: -6px;
margin-top: 5px;
overflow: hidden;
height: 3px;
}
@ -1330,7 +1358,7 @@ table.grid td.date {
}
#mail_smtpport {
width: 40px;
width: 60px;
}
.cronlog {

View file

@ -39,8 +39,8 @@
{{ t('settings', 'For security reasons this password will only be shown once.') }}
<div class="app-password-row">
<label for="app-username" class="app-password-label">{{ t('settings', 'Username') }}</label>
<input :value="loginName"
id="app-username"
<input id="app-username"
:value="loginName"
type="text"
class="monospaced"
readonly="readonly"
@ -48,8 +48,8 @@
</div>
<div class="app-password-row">
<label for="app-password" class="app-password-label">{{ t('settings', 'Password') }}</label>
<input ref="appPassword"
id="app-password"
<input id="app-password"
ref="appPassword"
:value="appPassword"
type="text"
class="monospaced"

View file

@ -365,15 +365,6 @@ export default {
input {
grid-area: 1 / 1;
width: 100%;
height: 34px;
margin: 3px 3px 3px 0;
padding: 7px 6px;
color: var(--color-main-text);
border: 1px solid var(--color-border-dark);
border-radius: var(--border-radius);
background-color: var(--color-main-background);
font-family: var(--font-face);
cursor: text;
}
.email__actions-container {

View file

@ -151,16 +151,6 @@ export default {
select {
width: 100%;
height: 34px;
margin: 3px 3px 3px 0;
padding: 6px 16px;
color: var(--color-main-text);
border: 1px solid var(--color-border-dark);
border-radius: var(--border-radius);
background: var(--icon-triangle-s-dark) no-repeat right 4px center;
font-family: var(--font-face);
appearance: none;
cursor: pointer;
}
a {

View file

@ -205,35 +205,11 @@ section {
resize: vertical;
grid-area: 1 / 1;
width: 100%;
margin: 3px 3px 3px 0;
padding: 7px 6px;
color: var(--color-main-text);
border: 1px solid var(--color-border-dark);
border-radius: var(--border-radius);
background-color: var(--color-main-background);
font-family: var(--font-face);
cursor: text;
&:hover,
&:focus,
&:active {
border-color: var(--color-primary-element) !important;
outline: none !important;
}
}
input {
grid-area: 1 / 1;
width: 100%;
height: 34px;
margin: 3px 3px 3px 0;
padding: 7px 6px;
color: var(--color-main-text);
border: 1px solid var(--color-border-dark);
border-radius: var(--border-radius);
background-color: var(--color-main-background);
font-family: var(--font-face);
cursor: text;
}
.property__actions-container {

View file

@ -130,6 +130,8 @@ export default {
display: inline-flex;
width: 100%;
margin: 12px 0 0 0;
gap: 8px;
align-items: center;
font-size: 16px;
color: var(--color-text-light);
@ -138,7 +140,7 @@ export default {
}
&.setting-property {
height: 32px;
height: 44px;
}
label {
@ -147,10 +149,10 @@ export default {
}
.federation-control {
margin: -12px 0 0 8px;
margin: 0;
}
.button-vue {
margin: -6px 0 0 auto !important;
margin: 0 0 0 auto !important;
}
</style>

View file

@ -392,7 +392,7 @@ const actions = {
/**
* Rename group
*
* @param {Object} context store context
* @param {object} context store context
* @param {string} groupid Group id
* @param {string} displayName Group display name
* @return {Promise}

View file

@ -37,25 +37,29 @@ if ($_['passwordChangeSupported']) {
<h2 class="inlineblock"><?php p($l->t('Password'));?></h2>
<span id="password-error-msg" class="msg success hidden">Saved</span>
<div class="personal-settings-setting-box personal-settings-password-box">
<form id="passwordform" method="POST">
<label for="pass1" class="hidden-visually"><?php p($l->t('Current password')); ?>: </label>
<form id="passwordform" method="POST">
<div class="input-control">
<label for="pass1"><?php p($l->t('Current password')); ?>: </label>
<input type="password" id="pass1" name="oldpassword"
placeholder="<?php p($l->t('Current password'));?>"
placeholder="<?php p($l->t('Your current password'));?>"
autocomplete="current-password" autocapitalize="none" autocorrect="off" />
</div>
<div class="personal-show-container">
<label for="pass2" class="hidden-visually"><?php p($l->t('New password'));?>: </label>
<input type="password" id="pass2" name="newpassword"
maxlength="469"
placeholder="<?php p($l->t('New password')); ?>"
data-typetoggle="#personal-show"
autocomplete="new-password" autocapitalize="none" autocorrect="off" />
<input type="checkbox" id="personal-show" class="hidden-visually" name="show" /><label for="personal-show" class="personal-show-label"></label>
</div>
<div class="personal-show-container">
<label for="pass2" ><?php p($l->t('New password'));?>: </label>
<input type="password" id="pass2" name="newpassword"
maxlength="469"
placeholder="<?php p($l->t('Your new password')); ?>"
data-typetoggle="#personal-show"
autocomplete="new-password" autocapitalize="none" autocorrect="off" />
<input type="checkbox" id="personal-show" class="hidden-visually" name="show" />
<label for="personal-show" class="personal-show-label"></label>
</div>
<input id="passwordbutton" type="submit" value="<?php p($l->t('Change password')); ?>" />
</form>
<div>
<input id="passwordbutton" class="primary" type="submit" value="<?php p($l->t('Change password')); ?>" />
</div>
</form>
</div>
<span class="msg"></span>
</div>

View file

@ -18,10 +18,13 @@
--color-primary-light-hover: #dbe7ee;
--color-primary-text-dark: #ededed;
--color-primary-element: #0082c9;
--color-primary-element-hover: #198ece;
--color-primary-element-light: #17adff;
--color-primary-element-lighter: #d8ecf6;
--gradient-primary-background: linear-gradient(40deg, var(--color-primary) 0%, var(--color-primary-element-light) 100%);
--color-primary-element-text: #ffffff;
--color-primary-element-hover: #329bd3;
--color-primary-element-light: #e5f2f9;
--color-primary-element-light-text: #0082c9;
--color-primary-element-light-hover: #dbe7ee;
--color-primary-element-text-dark: #ededed;
--gradient-primary-background: linear-gradient(40deg, var(--color-primary) 0%, var(--color-primary-hover) 100%);
--color-main-text: #222222;
--color-text-maxcontrast: #767676;
--color-text-light: #222222;

View file

@ -90,6 +90,9 @@ class DefaultTheme implements ITheme {
$colorBoxShadowRGB = join(',', $this->util->hexToRGB($colorBoxShadow));
$colorPrimaryLight = $this->util->mix($this->primaryColor, $colorMainBackground, -80);
$colorPrimaryElement = $this->util->elementColor($this->primaryColor);
$colorPrimaryElementLight = $this->util->mix($colorPrimaryElement, $colorMainBackground, -80);
$hasCustomLogoHeader = $this->imageManager->hasImage('logo') || $this->imageManager->hasImage('logoheader');
$hasCustomPrimaryColour = !empty($this->config->getAppValue('theming', 'color'));
@ -120,12 +123,15 @@ class DefaultTheme implements ITheme {
'--color-primary-light-hover' => $this->util->mix($colorPrimaryLight, $colorMainText, 90),
'--color-primary-text-dark' => $this->util->darken($this->util->invertTextColor($this->primaryColor) ? '#000000' : '#ffffff', 7),
// used for buttons, inputs...
'--color-primary-element' => $this->util->elementColor($this->primaryColor),
'--color-primary-element-hover' => $this->util->mix($this->util->elementColor($this->primaryColor), $colorMainBackground, 80),
'--color-primary-element-light' => $this->util->lighten($this->util->elementColor($this->primaryColor), 15),
'--color-primary-element-lighter' => $this->util->mix($this->util->elementColor($this->primaryColor), $colorMainBackground, -70),
'--color-primary-element' => $colorPrimaryElement,
'--color-primary-element-text' => $this->util->invertTextColor($colorPrimaryElement) ? '#000000' : '#ffffff',
'--color-primary-element-hover' => $this->util->mix($colorPrimaryElement, $colorMainBackground, 60),
'--color-primary-element-light' => $colorPrimaryElementLight,
'--color-primary-element-light-text' => $colorPrimaryElement,
'--color-primary-element-light-hover' => $this->util->mix($colorPrimaryElementLight, $colorMainText, 90),
'--color-primary-element-text-dark' => $this->util->darken($this->util->invertTextColor($colorPrimaryElement) ? '#000000' : '#ffffff', 7),
// to use like this: background-image: var(--gradient-primary-background);
'--gradient-primary-background' => 'linear-gradient(40deg, var(--color-primary) 0%, var(--color-primary-element-light) 100%)',
'--gradient-primary-background' => 'linear-gradient(40deg, var(--color-primary) 0%, var(--color-primary-hover) 100%)',
// max contrast for WCAG compliance
'--color-main-text' => $colorMainText,

View file

@ -21,10 +21,11 @@
<template>
<div class="clear-at-select">
<span class="clear-at-select__label">
<label class="clear-at-select__label" for="clearStatus">
{{ $t('user_status', 'Clear status after') }}
</span>
<NcMultiselect label="label"
</label>
<NcMultiselect id="clearStatus"
label="label"
:value="option"
:options="options"
open-direction="top"

View file

@ -19,9 +19,17 @@
-
-->
<template>
<form class="custom-input__form"
@submit.prevent>
<div class="custom-input__form">
<NcEmojiPicker container=".custom-input__form" @select="setIcon">
<NcButton class="custom-input__emoji-button" type="tertiary-no-background">
{{ visibleIcon }}
</NcButton>
</NcEmojiPicker>
<label class="hidden-visually" for="user_status_message">
{{ t('user_status', 'What is your status?') }}
</label>
<input ref="input"
id="user_status_message"
maxlength="80"
:disabled="disabled"
:placeholder="$t('user_status', 'What is your status?')"
@ -31,12 +39,19 @@
@keyup="change"
@paste="change"
@keyup.enter="submit">
</form>
</div>
</template>
<script>
import NcButton from '@nextcloud/vue/dist/Components/NcButton.js'
import NcEmojiPicker from '@nextcloud/vue/dist/Components/NcEmojiPicker.js'
export default {
name: 'CustomMessageInput',
components: {
NcButton,
NcEmojiPicker,
},
props: {
message: {
type: String,
@ -48,6 +63,21 @@ export default {
default: false,
},
},
emits: [
'change',
'submit',
'icon-selected',
],
computed: {
/**
* Returns the user-set icon or a smiley in case no icon is set
*
* @return {string}
*/
visibleIcon() {
return this.icon || '😀'
},
},
methods: {
focus() {
this.$refs.input.focus()
@ -65,6 +95,10 @@ export default {
submit(event) {
this.$emit('submit', event.target.value)
},
setIcon(event) {
this.$emit('icon-selected', event)
},
},
}
</script>
@ -72,10 +106,16 @@ export default {
<style lang="scss" scoped>
.custom-input__form {
flex-grow: 1;
position: relative;
.v-popper {
position: absolute;
}
input {
width: 100%;
border-radius: 0 var(--border-radius) var(--border-radius) 0;
padding-left: 44px !important;
}
}
</style>

View file

@ -41,15 +41,11 @@
<h3>{{ $t('user_status', 'Status message') }}</h3>
</div>
<div class="set-status-modal__custom-input">
<NcEmojiPicker @select="setIcon">
<button class="custom-input__emoji-button">
{{ visibleIcon }}
</button>
</NcEmojiPicker>
<CustomMessageInput ref="customMessageInput"
:message="message"
@change="setMessage"
@submit="saveStatus" />
@submit="saveStatus"
@iconSelected="setIcon" />
</div>
<PredefinedStatusesList @select-status="selectPredefinedMessage" />
<ClearAtSelect :clear-at="clearAt"
@ -76,7 +72,6 @@
<script>
import { showError } from '@nextcloud/dialogs'
import NcEmojiPicker from '@nextcloud/vue/dist/Components/NcEmojiPicker'
import NcModal from '@nextcloud/vue/dist/Components/NcModal'
import NcButton from '@nextcloud/vue/dist/Components/NcButton'
import { getAllStatusOptions } from '../services/statusOptionsService'
@ -92,7 +87,6 @@ export default {
components: {
ClearAtSelect,
CustomMessageInput,
NcEmojiPicker,
NcModal,
OnlineStatusSelect,
PredefinedStatusesList,
@ -110,16 +104,6 @@ export default {
statuses: getAllStatusOptions(),
}
},
computed: {
/**
* Returns the user-set icon or a smiley in case no icon is set
*
* @return {string}
*/
visibleIcon() {
return this.icon || '😀'
},
},
/**
* Loads the current status when a user opens dialog

View file

@ -504,9 +504,9 @@ export default {
if (loading) {
return 'icon-loading-small'
} else {
return weatherCode && weatherCode in weatherOptions
return 'icon-weather ' + (weatherCode && weatherCode in weatherOptions
? weatherOptions[weatherCode].icon
: 'icon-fair-day'
: 'icon-fair-day')
}
},
getWeatherMessage(weatherCode, temperature, later = false) {
@ -523,6 +523,9 @@ export default {
</script>
<style lang="scss">
.icon-weather {
background-size: 16px;
}
.icon-weather-status {
background-image: url('./../img/app-dark.svg');
}

View file

@ -191,6 +191,6 @@ export default {
margin-bottom: -5px;
}
.invalid {
border: 1px solid var(--color-error) !important;
border-color: var(--color-error) !important;
}
</style>

View file

@ -2,7 +2,6 @@
<div id="workflowengine">
<NcSettingsSection :title="t('workflowengine', 'Available flows')"
:doc-url="workflowDocUrl">
<p v-if="scope === 0" class="settings-hint">
<a href="https://nextcloud.com/developer/">{{ t('workflowengine', 'For details on how to write your own flow, check out the development documentation.') }}</a>
</p>

BIN
build/composer Executable file

Binary file not shown.

View file

@ -275,7 +275,8 @@ trait Sharing {
$shareWith = null,
$publicUpload = null,
$password = null,
$permissions = null) {
$permissions = null,
$viewOnly = false) {
$fullUrl = $this->baseUrl . "v{$this->apiVersion}.php/apps/files_sharing/api/v{$this->sharingApiVersion}/shares";
$client = new Client();
$options = [
@ -309,6 +310,10 @@ trait Sharing {
$body['permissions'] = $permissions;
}
if ($viewOnly === true) {
$body['attributes'] = json_encode([['scope' => 'permissions', 'key' => 'download', 'enabled' => false]]);
}
$options['form_params'] = $body;
try {
@ -402,13 +407,17 @@ trait Sharing {
}
/**
* @Given /^(file|folder|entry) "([^"]*)" of user "([^"]*)" is shared with user "([^"]*)"( with permissions ([\d]*))?$/
* @Given /^(file|folder|entry) "([^"]*)" of user "([^"]*)" is shared with user "([^"]*)"( with permissions ([\d]*))?( view-only)?$/
*
* @param string $filepath
* @param string $user1
* @param string $user2
*/
public function assureFileIsShared($entry, $filepath, $user1, $user2, $withPerms = null, $permissions = null) {
public function assureFileIsShared($entry, $filepath, $user1, $user2, $withPerms = null, $permissions = null, $viewOnly = null) {
// when view-only is set, permissions is empty string instead of null...
if ($permissions === '') {
$permissions = null;
}
$fullUrl = $this->baseUrl . "v{$this->apiVersion}.php/apps/files_sharing/api/v{$this->sharingApiVersion}/shares" . "?path=$filepath";
$client = new Client();
$options = [];
@ -424,20 +433,24 @@ trait Sharing {
if ($this->isUserOrGroupInSharedData($user2, $permissions)) {
return;
} else {
$this->createShare($user1, $filepath, 0, $user2, null, null, $permissions);
$this->createShare($user1, $filepath, 0, $user2, null, null, $permissions, $viewOnly !== null);
}
$this->response = $client->get($fullUrl, $options);
Assert::assertEquals(true, $this->isUserOrGroupInSharedData($user2, $permissions));
}
/**
* @Given /^(file|folder|entry) "([^"]*)" of user "([^"]*)" is shared with group "([^"]*)"( with permissions ([\d]*))?$/
* @Given /^(file|folder|entry) "([^"]*)" of user "([^"]*)" is shared with group "([^"]*)"( with permissions ([\d]*))?( view-only)?$/
*
* @param string $filepath
* @param string $user
* @param string $group
*/
public function assureFileIsSharedWithGroup($entry, $filepath, $user, $group, $withPerms = null, $permissions = null) {
public function assureFileIsSharedWithGroup($entry, $filepath, $user, $group, $withPerms = null, $permissions = null, $viewOnly = null) {
// when view-only is set, permissions is empty string instead of null...
if ($permissions === '') {
$permissions = null;
}
$fullUrl = $this->baseUrl . "v{$this->apiVersion}.php/apps/files_sharing/api/v{$this->sharingApiVersion}/shares" . "?path=$filepath";
$client = new Client();
$options = [];
@ -453,7 +466,7 @@ trait Sharing {
if ($this->isUserOrGroupInSharedData($group, $permissions)) {
return;
} else {
$this->createShare($user, $filepath, 1, $group, null, null, $permissions);
$this->createShare($user, $filepath, 1, $group, null, null, $permissions, $viewOnly !== null);
}
$this->response = $client->get($fullUrl, $options);
Assert::assertEquals(true, $this->isUserOrGroupInSharedData($group, $permissions));

View file

@ -1167,4 +1167,44 @@ Feature: sharing
|{http://open-collaboration-services.org/ns}share-permissions |
Then the single response should contain a property "{http://open-collaboration-services.org/ns}share-permissions" with value "19"
Scenario: Cannot download a file when it's shared view-only
Given user "user0" exists
And user "user1" exists
And User "user0" moves file "/textfile0.txt" to "/document.odt"
And file "document.odt" of user "user0" is shared with user "user1" view-only
And user "user1" accepts last share
When As an "user1"
And Downloading file "/document.odt"
Then the HTTP status code should be "403"
Scenario: Cannot download a file when its parent is shared view-only
Given user "user0" exists
And user "user1" exists
And User "user0" created a folder "/sharedviewonly"
And User "user0" moves file "/textfile0.txt" to "/sharedviewonly/document.odt"
And folder "sharedviewonly" of user "user0" is shared with user "user1" view-only
And user "user1" accepts last share
When As an "user1"
And Downloading file "/sharedviewonly/document.odt"
Then the HTTP status code should be "403"
Scenario: Cannot copy a file when it's shared view-only
Given user "user0" exists
And user "user1" exists
And User "user0" moves file "/textfile0.txt" to "/document.odt"
And file "document.odt" of user "user0" is shared with user "user1" view-only
And user "user1" accepts last share
When User "user1" copies file "/document.odt" to "/copyforbidden.odt"
Then the HTTP status code should be "403"
Scenario: Cannot copy a file when its parent is shared view-only
Given user "user0" exists
And user "user1" exists
And User "user0" created a folder "/sharedviewonly"
And User "user0" moves file "/textfile0.txt" to "/sharedviewonly/document.odt"
And folder "sharedviewonly" of user "user0" is shared with user "user1" view-only
And user "user1" accepts last share
When User "user1" copies file "/sharedviewonly/document.odt" to "/copyforbidden.odt"
Then the HTTP status code should be "403"
# See sharing-v1-part3.feature

View file

@ -267,13 +267,9 @@ input[type='email'] {
margin-left: 0;
margin-right: 0;
}
input[type='text']:focus-visible,
input[type='password']:focus-visible {
outline: var(--color-primary) auto 2px !important;
}
input[type='password'].password-with-toggle, input[type='text'].password-with-toggle {
width: 236px;
padding-right: 40px;
width: 238px;
padding-right: 40px !important;
}
input.login {
width: 260px;
@ -625,7 +621,7 @@ p.info {
/* Update */
.update {
width: inherit;
width: calc(100% - 32px);
text-align: center;
}
.update .appList {

View file

@ -77,6 +77,10 @@ input, textarea, select, button, div[contenteditable=true], div[contenteditable=
font-family: var(--font-face) !important;
}
.select2-container.select2-drop-above .select2-choice {
background-image: unset !important;
}
/* Simple selector to allow easy overriding */
select,
button:not(.button-vue),
@ -85,7 +89,7 @@ textarea,
div[contenteditable=true],
div[contenteditable=false] {
width: 130px;
min-height: 34px;
min-height: 36px;
box-sizing: border-box;
}
@ -94,41 +98,42 @@ div[contenteditable=false] {
* color-text-lighter active state
* color-text-maxcontrast disabled state
*/
input:not([type=range]) {
outline: none;
}
/* Default global values */
div.select2-drop .select2-search input,
select,
input[type=submit],
input[type=button],
input[type=reset],
button:not(.button-vue), .button,
input:not([type=range]),
textarea,
div[contenteditable=true],
.pager li a {
margin: 3px 3px 3px 0;
padding: 7px 6px;
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;
/* Primary action button, use sparingly */
}
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,
select:not(:disabled):not(.primary):hover,
select:not(:disabled):not(.primary):focus,
select: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):not(:disabled):not(.primary):hover,
button:not(.button-vue):not(:disabled):not(.primary):focus,
button:not(.button-vue):not(:disabled):not(.primary).active, .button:not(:disabled):not(.primary):hover, .button:not(:disabled):not(.primary):focus, .button:not(:disabled):not(.primary).active,
input:not([type=range]):not(:disabled):not(.primary):hover,
input:not([type=range]):not(:disabled):not(.primary):focus,
input:not([type=range]):not(:disabled):not(.primary).active,
textarea:not(:disabled):not(.primary):hover,
textarea:not(:disabled):not(.primary):focus,
textarea:not(:disabled):not(.primary).active,
div[contenteditable=true]:not(:disabled):not(.primary):hover,
div[contenteditable=true]:not(:disabled):not(.primary):focus,
div[contenteditable=true]: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 {
@ -137,31 +142,28 @@ div[contenteditable=true]:not(:disabled):not(.primary).active,
outline: none;
}
div.select2-drop .select2-search input:not(:disabled):not(.primary):active,
select: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):not(:disabled):not(.primary):active, .button:not(:disabled):not(.primary):active,
input:not([type=range]):not(:disabled):not(.primary):active,
textarea:not(:disabled):not(.primary):active,
div[contenteditable=true]: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,
select: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):not(:disabled):not(.primary):focus-visible, .button:not(:disabled):not(.primary):focus-visible,
input:not([type=range]):not(:disabled):not(.primary):focus-visible,
textarea:not(:disabled):not(.primary):focus-visible,
div[contenteditable=true]: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,
select:disabled,
input[type=submit]:disabled,
input[type=button]:disabled,
input[type=reset]:disabled,
button:not(.button-vue):disabled, .button:disabled,
input:not([type=range]):disabled,
textarea:disabled,
div[contenteditable=true]:disabled,
.pager li a:disabled {
background-color: var(--color-background-dark);
color: var(--color-main-text);
@ -169,29 +171,26 @@ div[contenteditable=true]:disabled,
opacity: 0.5;
}
div.select2-drop .select2-search input:required,
select:required,
input[type=submit]:required,
input[type=button]:required,
input[type=reset]:required,
button:not(.button-vue):required, .button:required,
input:not([type=range]):required,
textarea:required,
div[contenteditable=true]:required,
.pager li a:required {
box-shadow: none;
}
div.select2-drop .select2-search input:user-invalid,
select:user-invalid,
input[type=submit]:user-invalid,
input[type=button]:user-invalid,
input[type=reset]:user-invalid,
button:not(.button-vue):user-invalid, .button:user-invalid,
input:not([type=range]):user-invalid,
textarea:user-invalid,
div[contenteditable=true]:user-invalid,
.pager li a:user-invalid {
box-shadow: 0 0 0 2px var(--color-error) !important;
}
div.select2-drop .select2-search input.primary,
select.primary,
input[type=submit].primary,
input[type=button].primary,
input[type=reset].primary,
button:not(.button-vue).primary, .button.primary,
input:not([type=range]).primary,
textarea.primary,
div[contenteditable=true].primary,
.pager li a.primary {
background-color: var(--color-primary-element);
border-color: var(--color-primary-element);
@ -200,36 +199,31 @@ div[contenteditable=true].primary,
/* Apply border to primary button if on log in page (and not in a dark container) or if in header */
}
#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) select.primary,
#header select.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).primary,
#header button:not(.button-vue).primary, #body-login :not(.body-login-container) .button.primary, #header .button.primary,
#body-login :not(.body-login-container) input:not([type=range]).primary,
#header input:not([type=range]).primary,
#body-login :not(.body-login-container) textarea.primary,
#header textarea.primary,
#body-login :not(.body-login-container) div[contenteditable=true].primary,
#header div[contenteditable=true].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,
select.primary:not(:disabled):hover,
select.primary:not(:disabled):focus,
select.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).primary:not(:disabled):hover,
button:not(.button-vue).primary:not(:disabled):focus,
button:not(.button-vue).primary:not(:disabled):active, .button.primary:not(:disabled):hover, .button.primary:not(:disabled):focus, .button.primary:not(:disabled):active,
input:not([type=range]).primary:not(:disabled):hover,
input:not([type=range]).primary:not(:disabled):focus,
input:not([type=range]).primary:not(:disabled):active,
textarea.primary:not(:disabled):hover,
textarea.primary:not(:disabled):focus,
textarea.primary:not(:disabled):active,
div[contenteditable=true].primary:not(:disabled):hover,
div[contenteditable=true].primary:not(:disabled):focus,
div[contenteditable=true].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 {
@ -237,35 +231,31 @@ div[contenteditable=true].primary:not(:disabled):active,
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,
select.primary:not(:disabled):focus,
select.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).primary:not(:disabled):focus,
button:not(.button-vue).primary:not(:disabled):focus-visible, .button.primary:not(:disabled):focus, .button.primary:not(:disabled):focus-visible,
input:not([type=range]).primary:not(:disabled):focus,
input:not([type=range]).primary:not(:disabled):focus-visible,
textarea.primary:not(:disabled):focus,
textarea.primary:not(:disabled):focus-visible,
div[contenteditable=true].primary:not(:disabled):focus,
div[contenteditable=true].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,
select.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).primary:not(:disabled):active, .button.primary:not(:disabled):active,
input:not([type=range]).primary:not(:disabled):active,
textarea.primary:not(:disabled):active,
div[contenteditable=true].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,
select.primary:disabled,
input[type=submit].primary:disabled,
input[type=button].primary:disabled,
input[type=reset].primary:disabled,
button:not(.button-vue).primary:disabled, .button.primary:disabled,
input:not([type=range]).primary:disabled,
textarea.primary:disabled,
div[contenteditable=true].primary:disabled,
.pager li a.primary:disabled {
background-color: var(--color-primary-element);
color: var(--color-primary-text-dark);
@ -295,7 +285,7 @@ input {
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: 34px;
height: 36px;
}
input[type=radio], input[type=checkbox], input[type=file], input[type=image] {
height: auto;
@ -322,9 +312,10 @@ button:not(.button-vue), .button,
input[type=button],
input[type=submit],
input[type=reset] {
padding: 6px 16px;
padding: 8px 14px;
font-size: var(--default-font-size);
width: auto;
min-height: 34px;
min-height: 36px;
cursor: pointer;
box-sizing: border-box;
background-color: var(--color-background-dark);
@ -337,6 +328,59 @@ input[type=reset]:disabled {
cursor: default;
}
input:not([type=range]):not(.input-field__input):not([type=submit]):not([type=button]):not([type=reset]):not(.multiselect__input):not(.select2-input):not(.action-input__input),
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-dark);
height: 36px;
outline: none;
border-radius: var(--border-radius-large);
text-overflow: ellipsis;
cursor: pointer;
}
input:not([type=range]):not(.input-field__input):not([type=submit]):not([type=button]):not([type=reset]):not(.multiselect__input):not(.select2-input):not(.action-input__input):not(:disabled):hover, input:not([type=range]):not(.input-field__input):not([type=submit]):not([type=button]):not([type=reset]):not(.multiselect__input):not(.select2-input):not(.action-input__input):not(:disabled):focus, input:not([type=range]):not(.input-field__input):not([type=submit]):not([type=button]):not([type=reset]):not(.multiselect__input):not(.select2-input):not(.action-input__input):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]):not(.input-field__input):not([type=submit]):not([type=button]):not([type=reset]):not(.multiselect__input):not(.select2-input):not(.action-input__input):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;
}
/* Override the ugly select arrow */
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) *, .button * {
cursor: pointer;
@ -379,49 +423,21 @@ button:not(.button-vue):not(.action-button) > span[class^=icon-], button:not(.bu
opacity: 0.5;
}
textarea, div[contenteditable=true] {
color: var(--color-main-text);
cursor: text;
font-family: inherit;
height: auto;
}
textarea:not(:disabled):active, textarea:not(:disabled):hover, textarea:not(:disabled):focus, div[contenteditable=true]:not(:disabled):active, div[contenteditable=true]:not(:disabled):hover, div[contenteditable=true]:not(:disabled):focus {
border-color: var(--color-background-darker) !important;
background-color: var(--color-main-background) !important;
}
div[contenteditable=false] {
color: var(--color-text-lighter);
font-family: inherit;
height: auto;
}
/* Override the ugly select arrow */
select {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
background: var(--icon-triangle-s-dark) no-repeat right 4px center;
background-color: inherit;
outline: 0;
padding-right: 24px !important;
height: 34px;
}
/* Confirm inputs */
input[type=text], input[type=password], input[type=email] {
/* only show confirm borders if input is not focused */
}
input[type=text] + .icon-confirm, input[type=password] + .icon-confirm, input[type=email] + .icon-confirm {
margin-left: -8px !important;
margin-left: -13px !important;
border-left-color: transparent !important;
border-radius: 0 var(--border-radius) var(--border-radius) 0 !important;
border-radius: 0 var(--border-radius-large) var(--border-radius-large) 0 !important;
border-width: 2px;
background-clip: padding-box;
/* Avoid background under border */
background-color: var(--color-main-background) !important;
opacity: 1;
height: 34px;
width: 34px;
height: 36px;
width: 36px;
padding: 7px 6px;
cursor: pointer;
margin-right: 0;
@ -639,11 +655,14 @@ div.select2-container-multi .select2-choices, div.select2-container-multi.select
background: var(--color-main-background);
color: var(--color-text-lighter) !important;
box-sizing: content-box;
border-radius: var(--border-radius);
border: 1px solid var(--color-border-dark);
border-radius: var(--border-radius-large);
border: 2px solid var(--color-border-dark);
margin: 0;
padding: 2px 0;
min-height: auto;
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;
@ -660,6 +679,9 @@ div.select2-container-multi .select2-choices .select2-search-choice .select2-sea
}
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;
@ -682,12 +704,14 @@ div.select2-container a.select2-choice {
background: var(--color-main-background);
color: var(--color-text-lighter) !important;
box-sizing: content-box;
border-radius: var(--border-radius);
border: 1px solid var(--color-border-dark);
border-radius: var(--border-radius-large);
border: 2px solid var(--color-border-dark);
margin: 0;
padding: 2px 0;
padding-left: 6px;
min-height: auto;
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;
@ -823,7 +847,7 @@ div.select2-container a.select2-choice .select2-search-field input {
cursor: pointer;
position: relative;
border-radius: var(--border-radius);
height: 34px;
height: 36px;
/* tag wrapper */
/* Single select default value */
/* displayed text if tag limit reached */
@ -1057,6 +1081,7 @@ label.infield {
::-ms-input-placeholder,
::-webkit-input-placeholder {
color: var(--color-text-maxcontrast);
font-size: var(--default-font-size);
}
/*# sourceMappingURL=inputs.css.map */

View file

@ -1 +1 @@
{"version":3,"sourceRoot":"","sources":["variables.scss","inputs.scss","functions.scss"],"names":[],"mappings":";AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAsBA;AAAA;AAAA;AA4BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ADlCC;AACD;EACC;;;AAED;EACC;;;AAKD;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;EAMC;EACA,YAVgB;EAWhB;;;AAGD;AAAA;AAAA;AAAA;AAAA;AAMA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAOC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AA8BA;;AA5BC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA;EACC;EACA;;AAED;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACC;EACA;EACA;;AAED;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACC;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACC;EACA;EACA;EACA;;AAED;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACC;;AAED;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACC;;AAGD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACC;EACA;EACA;EACA;AAEA;;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAEC;;AAIA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAGC;EACA;;AAED;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAEC;;AAED;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACC;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAEC;EACA;EACA;;;AAKH;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;;;AAGD;AACA;AAcC;AAAA;;AAbA;EACC;EACA;EAEA,QA7He;;AA+HhB;EAIC;EACA;;AAID;EACC;EACA;EACA;EACA;EACA;;AAED;EACC;EACA;;AAED;EACC;;;AAIF;AACA;AAAA;AAAA;AAAA;AAAA;EAKC;EACA;EACA,YAhKgB;EAiKhB;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;EACC;;;AAKD;AAAA;EACC;;AAIA;AAAA;EACC;;;AAKH;AACA;AAAA;AAAA;AAAA;EAIC;EACA;AAEA;;AACA;AAAA;AAAA;AAAA;EACC;;AAGD;AAAA;AAAA;AAAA;EACC;EACA;EACA;;;AAID;AACC;;AACA;EAEC;EACA;EACA;;;AAKH;EACC;EACA;EACA;EACA;;AAEC;EAGC;EACA;;;AAKH;EACC;EACA;EACA;;;AAGD;AACA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EAEA,QApPgB;;;AAuPjB;AAEC;AAsBC;;AAnBA;EACC;EACA;EACA;EACA;AACA;EACA;EACA;EACA,QApQc;EAqQd,OArQc;EAsQd;EACA;EACA;;AACA;EACC;ACnOH;EAEA;;ADyOG;EACC;;AAID;EAGC;EACA;;AACA;EACC;;AAQH;EACC;EACA;AACA;EACA;;;AAOJ;AACA;AAAA;EAEC;;;AAED;AAAA;EAEC;;;AAGD;AAKC;AA8EC;;AA5EA;EAEC;EACA;EACA;EACA;EACA;EACA;;AACA;EACC;;AAED;EAEC;;AAED;EACC;EACA;EACA,QAxBkB;EAyBlB,OAzBkB;EA0BlB;EACA;EACA;EACA;;AAED;EAEC;;AAED;EACC;EACA;EACA;EACA;;AAED;AAEA;AAAA;EAEC;EACA;EACA;;AAED;EACC;EACA;AAA4D;;AAE7D;EACC;;AAID;EACC;EACA;;AAED;EACC,eA/DkB;;AAmEnB;EACC;EACA,QArEkB;EAsElB,OAtEkB;EAuElB;EACA;;AAED;EACC;;AAED;EACC;;AAOD;EAEC;;AAED;EACC,cAzFyB;;AA2F1B;EACC;EACA;EACA;;AAED;EACC;AAAuE;EACvE;AAAiE;;AAElE;EACC;EACA;AAAiE;EACjE;;AAID;EAEC;AAA0C;EAC1C;AAAsD;EACtD;;AAED;EACC;;AAED;EACC;AAAc;;;AAMlB;AACA;EACC;EACA;;AACA;EACC;;AAED;EACC;EACA;EACA;;AACA;EACC;;AAGF;EACC;EACA;EACA;;AAED;EACC;EACA;EACA;;AACA;EACC;EACA;EACA;;AACA;EACC;;AACA;EACC;EACA;;AAIH;AAAA;AAAA;EAGC;EACA;EACA;EACA;EACA;EACA;;AAGA;EACC;;AAGF;EACE;EACA;;;AAMH;AAAA;AAAA;AAAA;EAEC;;;AAID;EAEC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACC;EACA;;AACA;EAIC;EACA;EACA;EACA;;AAED;EACC;;AAGF;EACC;;AACA;EACC;;;AAKJ;EACC;;AACA;EACC;EACA;;AACA;EACC;;AAGF;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACC;EACA;EACA;EACA;EACA;;AACA;EACC;;AAED;EAEC;EACA;;AAGF;EACC;EACA;EACA;;AACA;EACC;EACA;;AAGF;EAGC;;AAED;EACC;;;AAKH;AACA;EACC;EACA;;AACA;EACC;EACA;;AACA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACC;;AAIH;EACC;;AACA;EACC;EACA;EACA;EACA;EACA;EACA;;AACA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACC;;AAED;EACC;EACA;;AACA;EACC;;;AAQL;AACA;EACC;EACA;EACA;EACA;EACA;EACA;AAiHA;;AAhHA;AACC;;AACA;EACC;EACA;;AAGF;EAEC;;AAED;AACC;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,QAhsBe;AAisBf;AAoDA;AASA;AAaA;;AAzEA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;AACA;AAAA;AASA;;AAPA;EACC;AACA;;AACA;EACC;;AAIF;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACA;AAAA;EAEA;EACA;EACA;EACA;AACA;AAAA;AAQA;AAAA;;AANA;EACC;;AAED;EACC,cAnDa;;AAuDd;EACC;EACA;EACA;;AAKH;EACC;EACA;EACA;AAAY;EACZ;EACA;EACA;;AAGD;AAAA;EAEC;EACA;EACA;EACA;EACA;EACA;EACA,cAhFe;AAiFf;EACA;;AAGD;EACC;EACA;EACA;EACA;AACA;EACA;EACA;AACA;EACA;AACA;EACA;;AAIF;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACC;EACA;;AAED;EACC;EACA;EACA;EACA;EACA;;AACA;AAAA;EAEC;;AAED;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACA;AAiBA;AAAA;AAAA;;AAhBA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAED;EACC;EACA;;AAMA;EACC;EACA;;AAGF;EACC;;AAED;EACC;;AAIA;EACC;;;AAQN;AACA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEC;EACC;;AAED;EACC;;AAGF;EACC;;AAED;EACC;EACA;EACA;;AAED;EACC;EACA;EACA;;;AAIF;AACA;EACC;IAEC;;EAED;IAEC;;EAED;IAGC;;EAED;IAEC;;;AAGF;EACC;EACA;EACA;;;AAKD;EACC;EACA;EACA;EACA;EACA;EACA;;;AAGD;AAAA;AAAA;EAGC","file":"inputs.css"}
{"version":3,"sourceRoot":"","sources":["variables.scss","inputs.scss","functions.scss"],"names":[],"mappings":";AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAsBA;AAAA;AAAA;AA4BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ADlCC;AACD;EACC;;;AAED;EACC;;;AAED;EACI;;;AAKJ;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;EAMC;EACA,YAVgB;EAWhB;;;AAGD;AAAA;AAAA;AAAA;AAAA;AAMA;EACI;;;AAGJ;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;EAMC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AA8BA;;AA5BC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA;EACC;EACA;;AAED;AAAA;AAAA;AAAA;AAAA;AAAA;EACC;EACA;EACA;;AAED;AAAA;AAAA;AAAA;AAAA;AAAA;EACC;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;EACC;EACA;EACA;EACA;;AAED;AAAA;AAAA;AAAA;AAAA;AAAA;EACC;;AAED;AAAA;AAAA;AAAA;AAAA;AAAA;EACC;;AAGD;AAAA;AAAA;AAAA;AAAA;AAAA;EACC;EACA;EACA;EACA;AAEA;;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAEC;;AAIA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAGC;EACA;;AAED;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAEC;;AAED;AAAA;AAAA;AAAA;AAAA;AAAA;EACC;;AAGF;AAAA;AAAA;AAAA;AAAA;AAAA;EAEC;EACA;EACA;;;AAKH;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;;;AAGD;AACA;AAcC;AAAA;;AAbA;EACC;EACA;EAEA,QAjIe;;AAmIhB;EAIC;EACA;;AAID;EACC;EACA;EACA;EACA;EACA;;AAED;EACC;EACA;;AAED;EACC;;;AAIF;AACA;AAAA;AAAA;AAAA;AAAA;EAKC;EACA;EACA;EACA,YArKgB;EAsKhB;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;EACC;;;AAIF;AAAA;AAAA;AAAA;EAIC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACC;;AAED;AAAA;AAAA;AAAA;EACC;;;AAIF;EACC;EACA;;;AAGD;EACC;EACA;;;AAGD;AACA;EACC;EACA;EACA;EACA;;;AAKA;AAAA;EACC;;AAIA;AAAA;EACC;;;AAKH;AACA;AAAA;AAAA;AAAA;EAIC;EACA;AAEA;;AACA;AAAA;AAAA;AAAA;EACC;;AAGD;AAAA;AAAA;AAAA;EACC;EACA;EACA;;;AAID;AACC;;AACA;EAEC;EACA;EACA;;;AAKH;AAEC;AAuBC;;AApBA;EACC;EACA;EACA;EACA;EACA;AACA;EACA;EACA;EACA,QAlRc;EAmRd,OAnRc;EAoRd;EACA;EACA;;AACA;EACC;ACpPH;EAEA;;AD0PG;EACC;;AAID;EAGC;EACA;;AACA;EACC;;AAQH;EACC;EACA;AACA;EACA;;;AAOJ;AACA;AAAA;EAEC;;;AAED;AAAA;EAEC;;;AAGD;AAKC;AA8EC;;AA5EA;EAEC;EACA;EACA;EACA;EACA;EACA;;AACA;EACC;;AAED;EAEC;;AAED;EACC;EACA;EACA,QAxBkB;EAyBlB,OAzBkB;EA0BlB;EACA;EACA;EACA;;AAED;EAEC;;AAED;EACC;EACA;EACA;EACA;;AAED;AAEA;AAAA;EAEC;EACA;EACA;;AAED;EACC;EACA;AAA4D;;AAE7D;EACC;;AAID;EACC;EACA;;AAED;EACC,eA/DkB;;AAmEnB;EACC;EACA,QArEkB;EAsElB,OAtEkB;EAuElB;EACA;;AAED;EACC;;AAED;EACC;;AAOD;EAEC;;AAED;EACC,cAzFyB;;AA2F1B;EACC;EACA;EACA;;AAED;EACC;AAAuE;EACvE;AAAiE;;AAElE;EACC;EACA;AAAiE;EACjE;;AAID;EAEC;AAA0C;EAC1C;AAAsD;EACtD;;AAED;EACC;;AAED;EACC;AAAc;;;AAMlB;AACA;EACC;EACA;;AACA;EACC;;AAED;EACC;EACA;EACA;;AACA;EACC;;AAGF;EACC;EACA;EACA;;AAED;EACC;EACA;EACA;;AACA;EACC;EACA;EACA;;AACA;EACC;;AACA;EACC;EACA;;AAIH;AAAA;AAAA;EAGC;EACA;EACA;EACA;EACA;EACA;;AAGA;EACC;;AAGF;EACE;EACA;;;AAMH;AAAA;AAAA;AAAA;EAEC;;;AAID;EAEC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACC;;AAED;EACC;EACA;;AACA;EAIC;EACA;EACA;EACA;;AAED;EACC;;AAGF;EACC;EACA;EACA;EACA;;AACA;EACC;;;AAKJ;EACC;;AACA;EACC;EACA;;AACA;EACC;;AAGF;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACC;;AAED;EACC;EACA;EACA;EACA;EACA;;AACA;EACC;;AAED;EAEC;EACA;;AAGF;EACC;EACA;EACA;;AACA;EACC;EACA;;AAGF;EAGC;;AAED;EACC;;;AAKH;AACA;EACC;EACA;;AACA;EACC;EACA;;AACA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACC;;AAIH;EACC;;AACA;EACC;EACA;EACA;EACA;EACA;EACA;;AACA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACC;;AAED;EACC;EACA;;AACA;EACC;;;AAQL;AACA;EACC;EACA;EACA;EACA;EACA;EACA;AAiHA;;AAhHA;AACC;;AACA;EACC;EACA;;AAGF;EAEC;;AAED;AACC;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,QAttBe;AAutBf;AAoDA;AASA;AAaA;;AAzEA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;AACA;AAAA;AASA;;AAPA;EACC;AACA;;AACA;EACC;;AAIF;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACA;AAAA;EAEA;EACA;EACA;EACA;AACA;AAAA;AAQA;AAAA;;AANA;EACC;;AAED;EACC,cAnDa;;AAuDd;EACC;EACA;EACA;;AAKH;EACC;EACA;EACA;AAAY;EACZ;EACA;EACA;;AAGD;AAAA;EAEC;EACA;EACA;EACA;EACA;EACA;EACA,cAhFe;AAiFf;EACA;;AAGD;EACC;EACA;EACA;EACA;AACA;EACA;EACA;AACA;EACA;AACA;EACA;;AAIF;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACC;EACA;;AAED;EACC;EACA;EACA;EACA;EACA;;AACA;AAAA;EAEC;;AAED;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACA;AAiBA;AAAA;AAAA;;AAhBA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAED;EACC;EACA;;AAMA;EACC;EACA;;AAGF;EACC;;AAED;EACC;;AAIA;EACC;;;AAQN;AACA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEC;EACC;;AAED;EACC;;AAGF;EACC;;AAED;EACC;EACA;EACA;;AAED;EACC;EACA;EACA;;;AAIF;AACA;EACC;IAEC;;EAED;IAEC;;EAED;IAGC;;EAED;IAEC;;;AAGF;EACC;EACA;EACA;;;AAKD;EACC;EACA;EACA;EACA;EACA;EACA;;;AAGD;AAAA;AAAA;EAGC;EACG","file":"inputs.css"}

View file

@ -21,8 +21,11 @@ input, textarea, select, button, div[contenteditable=true], div[contenteditable=
.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;
}
$default-height: 34px;
$default-height: 36px;
/* Simple selector to allow easy overriding */
select,
@ -42,20 +45,24 @@ div[contenteditable=false] {
* color-text-maxcontrast disabled state
*/
input:not([type="range"]) {
outline: none;
}
/* Default global values */
div.select2-drop .select2-search input, // TODO: REMOVE WHEN DROPPING SELECT2
select,
input[type='submit'],
input[type='button'],
input[type='reset'],
button:not(.button-vue), .button,
input:not([type='range']),
textarea,
div[contenteditable=true],
.pager li a {
margin: 3px 3px 3px 0;
padding: 7px 6px;
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;
@ -180,7 +187,8 @@ button:not(.button-vue), .button,
input[type='button'],
input[type='submit'],
input[type='reset'] {
padding: 6px 16px;
padding: 8px 14px;
font-size: var(--default-font-size);
width: auto;
min-height: $default-height;
cursor: pointer;
@ -191,6 +199,48 @@ input[type='reset'] {
cursor: default;
}
}
input:not([type='range']):not(.input-field__input):not([type='submit']):not([type='button']):not([type='reset']):not(.multiselect__input):not(.select2-input):not(.action-input__input),
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-dark);
height: 36px;
outline: none;
border-radius: var(--border-radius-large);
text-overflow: ellipsis;
cursor: pointer;
&:not(:disabled):hover, &:not(:disabled):focus, &:not(:disabled):active {
border-color: var(--color-primary-element);
}
&: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;
}
/* Override the ugly select arrow */
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), .button {
* {
@ -235,49 +285,16 @@ button:not(.button-vue):not(.action-button), .button {
}
}
textarea, div[contenteditable=true] {
color: var(--color-main-text);
cursor: text;
font-family: inherit;
height: auto;
&:not(:disabled) {
&:active,
&:hover,
&:focus {
border-color: var(--color-background-darker) !important;
background-color: var(--color-main-background) !important;
}
}
}
div[contenteditable=false] {
color: var(--color-text-lighter);
font-family: inherit;
height: auto;
}
/* Override the ugly select arrow */
select {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
background: var(--icon-triangle-s-dark) no-repeat right 4px center;
background-color: inherit;
outline: 0;
padding-right: 24px !important;
// force height for inline elements like inputs (not textarea, contenteditable...)
height: $default-height;
}
/* Confirm inputs */
input {
&[type='text'],
&[type='password'],
&[type='email'] {
+ .icon-confirm {
margin-left: -8px !important;
margin-left: -13px !important;
border-left-color: transparent !important;
border-radius: 0 var(--border-radius) var(--border-radius) 0 !important;
border-radius: 0 var(--border-radius-large) var(--border-radius-large) 0 !important;
border-width: 2px;
background-clip: padding-box;
/* Avoid background under border */
background-color: var(--color-main-background) !important;
@ -534,11 +551,14 @@ div.select2-container-multi {
background: var(--color-main-background);
color: var(--color-text-lighter) !important;
box-sizing: content-box;
border-radius: var(--border-radius);
border: 1px solid var(--color-border-dark);
border-radius: var(--border-radius-large);
border: 2px solid var(--color-border-dark);
margin: 0;
padding: 2px 0;
min-height: auto;
padding: 6px;
min-height: 44px;
&:focus-within {
border-color: var(--color-primary)
}
.select2-search-choice {
line-height: 20px;
padding-left: 5px;
@ -557,6 +577,9 @@ div.select2-container-multi {
}
.select2-search-field input {
line-height: 20px;
min-height: 28px;
max-height: 28px;
color: var(--color-main-text);
&.select2-active {
background: none !important;
}
@ -579,12 +602,14 @@ div.select2-container {
background: var(--color-main-background);
color: var(--color-text-lighter) !important;
box-sizing: content-box;
border-radius: var(--border-radius);
border: 1px solid var(--color-border-dark);
border-radius: var(--border-radius-large);
border: 2px solid var(--color-border-dark);
margin: 0;
padding: 2px 0;
padding-left: 6px;
min-height: auto;
padding: 6px 12px;
min-height: 44px;
&:focus-within {
border-color: var(--color-primary)
}
.select2-search-choice {
line-height: 20px;
padding-left: 5px;
@ -975,4 +1000,5 @@ label.infield {
::-ms-input-placeholder,
::-webkit-input-placeholder {
color: var(--color-text-maxcontrast);
font-size: var(--default-font-size);
}

View file

@ -208,7 +208,7 @@ body {
box-sizing: border-box;
position: -webkit-sticky;
position: sticky;
height: 44px;
height: 54px;
padding: 0;
margin: 0;
background-color: var(--color-main-background-translucent);
@ -235,8 +235,8 @@ body {
box-sizing: border-box;
display: inline-block;
display: flex;
height: 36px;
width: 36px;
height: 44px;
width: 44px;
padding: 9px;
align-items: center;
justify-content: center;
@ -980,11 +980,14 @@ span.ui-icon {
#header .header-right > div#contactsmenu > .menu .contact .top-action:not(button), #header .header-right > div#contactsmenu > .menu .contact .second-action:not(button), #header .header-right > div#contactsmenu > .menu .contact .other-actions:not(button) {
padding: 14px;
}
#header .header-right > div#contactsmenu > .menu .contact .top-action img, #header .header-right > div#contactsmenu > .menu .contact .second-action img, #header .header-right > div#contactsmenu > .menu .contact .other-actions img {
filter: var(--background-invert-if-dark);
}
#header .header-right > div#contactsmenu > .menu .contact .top-action:hover, #header .header-right > div#contactsmenu > .menu .contact .top-action:active, #header .header-right > div#contactsmenu > .menu .contact .top-action:focus, #header .header-right > div#contactsmenu > .menu .contact .second-action:hover, #header .header-right > div#contactsmenu > .menu .contact .second-action:active, #header .header-right > div#contactsmenu > .menu .contact .second-action:focus, #header .header-right > div#contactsmenu > .menu .contact .other-actions:hover, #header .header-right > div#contactsmenu > .menu .contact .other-actions:active, #header .header-right > div#contactsmenu > .menu .contact .other-actions:focus {
opacity: 1;
}
#header .header-right > div#contactsmenu > .menu .contact button.other-actions {
margin: 5px;
width: 44px;
}
#header .header-right > div#contactsmenu > .menu .contact button.other-actions:focus {
border-color: transparent;
@ -1245,6 +1248,10 @@ input, textarea, select, button, div[contenteditable=true], div[contenteditable=
font-family: var(--font-face) !important;
}
.select2-container.select2-drop-above .select2-choice {
background-image: unset !important;
}
/* Simple selector to allow easy overriding */
select,
button:not(.button-vue),
@ -1253,7 +1260,7 @@ textarea,
div[contenteditable=true],
div[contenteditable=false] {
width: 130px;
min-height: 34px;
min-height: 36px;
box-sizing: border-box;
}
@ -1262,41 +1269,42 @@ div[contenteditable=false] {
* color-text-lighter active state
* color-text-maxcontrast disabled state
*/
input:not([type=range]) {
outline: none;
}
/* Default global values */
div.select2-drop .select2-search input,
select,
input[type=submit],
input[type=button],
input[type=reset],
button:not(.button-vue), .button,
input:not([type=range]),
textarea,
div[contenteditable=true],
.pager li a {
margin: 3px 3px 3px 0;
padding: 7px 6px;
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;
/* Primary action button, use sparingly */
}
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,
select:not(:disabled):not(.primary):hover,
select:not(:disabled):not(.primary):focus,
select: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):not(:disabled):not(.primary):hover,
button:not(.button-vue):not(:disabled):not(.primary):focus,
button:not(.button-vue):not(:disabled):not(.primary).active, .button:not(:disabled):not(.primary):hover, .button:not(:disabled):not(.primary):focus, .button:not(:disabled):not(.primary).active,
input:not([type=range]):not(:disabled):not(.primary):hover,
input:not([type=range]):not(:disabled):not(.primary):focus,
input:not([type=range]):not(:disabled):not(.primary).active,
textarea:not(:disabled):not(.primary):hover,
textarea:not(:disabled):not(.primary):focus,
textarea:not(:disabled):not(.primary).active,
div[contenteditable=true]:not(:disabled):not(.primary):hover,
div[contenteditable=true]:not(:disabled):not(.primary):focus,
div[contenteditable=true]: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 {
@ -1305,31 +1313,28 @@ div[contenteditable=true]:not(:disabled):not(.primary).active,
outline: none;
}
div.select2-drop .select2-search input:not(:disabled):not(.primary):active,
select: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):not(:disabled):not(.primary):active, .button:not(:disabled):not(.primary):active,
input:not([type=range]):not(:disabled):not(.primary):active,
textarea:not(:disabled):not(.primary):active,
div[contenteditable=true]: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,
select: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):not(:disabled):not(.primary):focus-visible, .button:not(:disabled):not(.primary):focus-visible,
input:not([type=range]):not(:disabled):not(.primary):focus-visible,
textarea:not(:disabled):not(.primary):focus-visible,
div[contenteditable=true]: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,
select:disabled,
input[type=submit]:disabled,
input[type=button]:disabled,
input[type=reset]:disabled,
button:not(.button-vue):disabled, .button:disabled,
input:not([type=range]):disabled,
textarea:disabled,
div[contenteditable=true]:disabled,
.pager li a:disabled {
background-color: var(--color-background-dark);
color: var(--color-main-text);
@ -1337,29 +1342,26 @@ div[contenteditable=true]:disabled,
opacity: 0.5;
}
div.select2-drop .select2-search input:required,
select:required,
input[type=submit]:required,
input[type=button]:required,
input[type=reset]:required,
button:not(.button-vue):required, .button:required,
input:not([type=range]):required,
textarea:required,
div[contenteditable=true]:required,
.pager li a:required {
box-shadow: none;
}
div.select2-drop .select2-search input:user-invalid,
select:user-invalid,
input[type=submit]:user-invalid,
input[type=button]:user-invalid,
input[type=reset]:user-invalid,
button:not(.button-vue):user-invalid, .button:user-invalid,
input:not([type=range]):user-invalid,
textarea:user-invalid,
div[contenteditable=true]:user-invalid,
.pager li a:user-invalid {
box-shadow: 0 0 0 2px var(--color-error) !important;
}
div.select2-drop .select2-search input.primary,
select.primary,
input[type=submit].primary,
input[type=button].primary,
input[type=reset].primary,
button:not(.button-vue).primary, .button.primary,
input:not([type=range]).primary,
textarea.primary,
div[contenteditable=true].primary,
.pager li a.primary {
background-color: var(--color-primary-element);
border-color: var(--color-primary-element);
@ -1368,36 +1370,31 @@ div[contenteditable=true].primary,
/* Apply border to primary button if on log in page (and not in a dark container) or if in header */
}
#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) select.primary,
#header select.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).primary,
#header button:not(.button-vue).primary, #body-login :not(.body-login-container) .button.primary, #header .button.primary,
#body-login :not(.body-login-container) input:not([type=range]).primary,
#header input:not([type=range]).primary,
#body-login :not(.body-login-container) textarea.primary,
#header textarea.primary,
#body-login :not(.body-login-container) div[contenteditable=true].primary,
#header div[contenteditable=true].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,
select.primary:not(:disabled):hover,
select.primary:not(:disabled):focus,
select.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).primary:not(:disabled):hover,
button:not(.button-vue).primary:not(:disabled):focus,
button:not(.button-vue).primary:not(:disabled):active, .button.primary:not(:disabled):hover, .button.primary:not(:disabled):focus, .button.primary:not(:disabled):active,
input:not([type=range]).primary:not(:disabled):hover,
input:not([type=range]).primary:not(:disabled):focus,
input:not([type=range]).primary:not(:disabled):active,
textarea.primary:not(:disabled):hover,
textarea.primary:not(:disabled):focus,
textarea.primary:not(:disabled):active,
div[contenteditable=true].primary:not(:disabled):hover,
div[contenteditable=true].primary:not(:disabled):focus,
div[contenteditable=true].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 {
@ -1405,35 +1402,31 @@ div[contenteditable=true].primary:not(:disabled):active,
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,
select.primary:not(:disabled):focus,
select.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).primary:not(:disabled):focus,
button:not(.button-vue).primary:not(:disabled):focus-visible, .button.primary:not(:disabled):focus, .button.primary:not(:disabled):focus-visible,
input:not([type=range]).primary:not(:disabled):focus,
input:not([type=range]).primary:not(:disabled):focus-visible,
textarea.primary:not(:disabled):focus,
textarea.primary:not(:disabled):focus-visible,
div[contenteditable=true].primary:not(:disabled):focus,
div[contenteditable=true].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,
select.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).primary:not(:disabled):active, .button.primary:not(:disabled):active,
input:not([type=range]).primary:not(:disabled):active,
textarea.primary:not(:disabled):active,
div[contenteditable=true].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,
select.primary:disabled,
input[type=submit].primary:disabled,
input[type=button].primary:disabled,
input[type=reset].primary:disabled,
button:not(.button-vue).primary:disabled, .button.primary:disabled,
input:not([type=range]).primary:disabled,
textarea.primary:disabled,
div[contenteditable=true].primary:disabled,
.pager li a.primary:disabled {
background-color: var(--color-primary-element);
color: var(--color-primary-text-dark);
@ -1463,7 +1456,7 @@ input {
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: 34px;
height: 36px;
}
input[type=radio], input[type=checkbox], input[type=file], input[type=image] {
height: auto;
@ -1490,9 +1483,10 @@ button:not(.button-vue), .button,
input[type=button],
input[type=submit],
input[type=reset] {
padding: 6px 16px;
padding: 8px 14px;
font-size: var(--default-font-size);
width: auto;
min-height: 34px;
min-height: 36px;
cursor: pointer;
box-sizing: border-box;
background-color: var(--color-background-dark);
@ -1505,6 +1499,59 @@ input[type=reset]:disabled {
cursor: default;
}
input:not([type=range]):not(.input-field__input):not([type=submit]):not([type=button]):not([type=reset]):not(.multiselect__input):not(.select2-input):not(.action-input__input),
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-dark);
height: 36px;
outline: none;
border-radius: var(--border-radius-large);
text-overflow: ellipsis;
cursor: pointer;
}
input:not([type=range]):not(.input-field__input):not([type=submit]):not([type=button]):not([type=reset]):not(.multiselect__input):not(.select2-input):not(.action-input__input):not(:disabled):hover, input:not([type=range]):not(.input-field__input):not([type=submit]):not([type=button]):not([type=reset]):not(.multiselect__input):not(.select2-input):not(.action-input__input):not(:disabled):focus, input:not([type=range]):not(.input-field__input):not([type=submit]):not([type=button]):not([type=reset]):not(.multiselect__input):not(.select2-input):not(.action-input__input):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]):not(.input-field__input):not([type=submit]):not([type=button]):not([type=reset]):not(.multiselect__input):not(.select2-input):not(.action-input__input):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;
}
/* Override the ugly select arrow */
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) *, .button * {
cursor: pointer;
@ -1547,49 +1594,21 @@ button:not(.button-vue):not(.action-button) > span[class^=icon-], button:not(.bu
opacity: 0.5;
}
textarea, div[contenteditable=true] {
color: var(--color-main-text);
cursor: text;
font-family: inherit;
height: auto;
}
textarea:not(:disabled):active, textarea:not(:disabled):hover, textarea:not(:disabled):focus, div[contenteditable=true]:not(:disabled):active, div[contenteditable=true]:not(:disabled):hover, div[contenteditable=true]:not(:disabled):focus {
border-color: var(--color-background-darker) !important;
background-color: var(--color-main-background) !important;
}
div[contenteditable=false] {
color: var(--color-text-lighter);
font-family: inherit;
height: auto;
}
/* Override the ugly select arrow */
select {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
background: var(--icon-triangle-s-dark) no-repeat right 4px center;
background-color: inherit;
outline: 0;
padding-right: 24px !important;
height: 34px;
}
/* Confirm inputs */
input[type=text], input[type=password], input[type=email] {
/* only show confirm borders if input is not focused */
}
input[type=text] + .icon-confirm, input[type=password] + .icon-confirm, input[type=email] + .icon-confirm {
margin-left: -8px !important;
margin-left: -13px !important;
border-left-color: transparent !important;
border-radius: 0 var(--border-radius) var(--border-radius) 0 !important;
border-radius: 0 var(--border-radius-large) var(--border-radius-large) 0 !important;
border-width: 2px;
background-clip: padding-box;
/* Avoid background under border */
background-color: var(--color-main-background) !important;
opacity: 1;
height: 34px;
width: 34px;
height: 36px;
width: 36px;
padding: 7px 6px;
cursor: pointer;
margin-right: 0;
@ -1807,11 +1826,14 @@ div.select2-container-multi .select2-choices, div.select2-container-multi.select
background: var(--color-main-background);
color: var(--color-text-lighter) !important;
box-sizing: content-box;
border-radius: var(--border-radius);
border: 1px solid var(--color-border-dark);
border-radius: var(--border-radius-large);
border: 2px solid var(--color-border-dark);
margin: 0;
padding: 2px 0;
min-height: auto;
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;
@ -1828,6 +1850,9 @@ div.select2-container-multi .select2-choices .select2-search-choice .select2-sea
}
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;
@ -1850,12 +1875,14 @@ div.select2-container a.select2-choice {
background: var(--color-main-background);
color: var(--color-text-lighter) !important;
box-sizing: content-box;
border-radius: var(--border-radius);
border: 1px solid var(--color-border-dark);
border-radius: var(--border-radius-large);
border: 2px solid var(--color-border-dark);
margin: 0;
padding: 2px 0;
padding-left: 6px;
min-height: auto;
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;
@ -1991,7 +2018,7 @@ div.select2-container a.select2-choice .select2-search-field input {
cursor: pointer;
position: relative;
border-radius: var(--border-radius);
height: 34px;
height: 36px;
/* tag wrapper */
/* Single select default value */
/* displayed text if tag limit reached */
@ -2225,6 +2252,7 @@ label.infield {
::-ms-input-placeholder,
::-webkit-input-placeholder {
color: var(--color-text-maxcontrast);
font-size: var(--default-font-size);
}
/**

File diff suppressed because one or more lines are too long

View file

@ -207,7 +207,7 @@ body {
box-sizing: border-box;
position: -webkit-sticky;
position: sticky;
height: 44px;
height: 54px;
padding: 0;
margin: 0;
background-color: var(--color-main-background-translucent);
@ -234,8 +234,8 @@ body {
box-sizing: border-box;
display: inline-block;
display: flex;
height: 36px;
width: 36px;
height: 44px;
width: 44px;
padding: 9px;
align-items: center;
justify-content: center;
@ -979,11 +979,14 @@ span.ui-icon {
#header .header-right > div#contactsmenu > .menu .contact .top-action:not(button), #header .header-right > div#contactsmenu > .menu .contact .second-action:not(button), #header .header-right > div#contactsmenu > .menu .contact .other-actions:not(button) {
padding: 14px;
}
#header .header-right > div#contactsmenu > .menu .contact .top-action img, #header .header-right > div#contactsmenu > .menu .contact .second-action img, #header .header-right > div#contactsmenu > .menu .contact .other-actions img {
filter: var(--background-invert-if-dark);
}
#header .header-right > div#contactsmenu > .menu .contact .top-action:hover, #header .header-right > div#contactsmenu > .menu .contact .top-action:active, #header .header-right > div#contactsmenu > .menu .contact .top-action:focus, #header .header-right > div#contactsmenu > .menu .contact .second-action:hover, #header .header-right > div#contactsmenu > .menu .contact .second-action:active, #header .header-right > div#contactsmenu > .menu .contact .second-action:focus, #header .header-right > div#contactsmenu > .menu .contact .other-actions:hover, #header .header-right > div#contactsmenu > .menu .contact .other-actions:active, #header .header-right > div#contactsmenu > .menu .contact .other-actions:focus {
opacity: 1;
}
#header .header-right > div#contactsmenu > .menu .contact button.other-actions {
margin: 5px;
width: 44px;
}
#header .header-right > div#contactsmenu > .menu .contact button.other-actions:focus {
border-color: transparent;

View file

@ -1 +1 @@
{"version":3,"sourceRoot":"","sources":["variables.scss","styles.scss"],"names":[],"mappings":";AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAkBA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;;;AAGD;AACA;AAAA;EAEC;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;EACA;;AACA;EACC;;;AAIF;EACC;EACA;;;AAGD;EACC;;AACA;EACC;;;AAIF;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;AACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACC;EACA;EACA;EACA;EACA;;AAED;EACC;EACA;;AACA;EACC;;;AAKH;AAEA;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;EACA;;;AAID;AAEA;EACC;EACA;;;AAID;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAAa;EACb;EACA;EACA;EACA;EACA;EACA,KDlGe;;;ACqGhB;AAEA;EACC;;;AAGD;EACC;;;AAMC;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAED;EACC;;;AAKH;AAEA;AAAA;EAEC;EACA;EACA;EACA;;AACA;AAAA;EACC;;AAED;AAAA;EACC;;AAED;AAAA;EACC;;AAED;AAAA;AAAA;AAAA;EAEC;EACA;EACA;EACA;;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAEC;;;AAKH;AAEA;EACC;;;AAGD;AAEA;AAEA;AAEA;EACC;EACA;EACA;EACA;EACA;;;AAGD;AAEA;EACC;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;;;AAGD;EACC;;;AAED;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;AAIC;AAAA;AAAA;EACC;;AAED;AAAA;AAAA;EACC;;;AAIF;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;;;AAED;EACC;EACA;EACA;EACA;EACA;;;AAGD;AAEA;EACC;EACA;EACA;EACA;EACA;;;AAIA;EACC;;;AAKD;EACC;EACA;;AACA;EACC;EACA;EACA;;AAGF;EACC;EACA;;;AAIF;EACC;EACA;;AACA;EACC;;;AAIF;EACC;;;AAGD;AACA;AAEA;AAEA;AAEA;EACC;EACA;;AACA;EACC;EACA;;;AAIF;EACC;;;AAGD;EACC;;;AAIA;AAAA;EAGC;;;AAIF;EACC;EACA;EACA;;AAEA;EACC;;;AAIF;EACC;EACA;;;AAGD;EACC;;;AAIA;EACC;;;AAKD;EACC;;;AAKD;EACC;;;AAKD;EACC;;;AAIF;EACC;;;AAGD;EACC;EACA;EACA;EACA;;AACA;EACC;;;AAIF;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;AACA;EACC;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;AAAA;EAGC;EACA;;AAED;EACC;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;;AAED;EACC;;AAEA;EACC;;AAED;EACC;;AAGF;EACC;;AAID;EACC;EACA;EACA;EACA;EACA;;AAED;EACC;;AAGA;EACC;;AAGD;AAAA;AAAA;EAGC;EACA;EACA;;AAGD;AAAA;EAEC;EACA;;;AAMJ;EACC;EACA;;;AAID;AACA;EACC;EACA;EACA;EACA;AAwBA;;AAtBA;EACC;;AAGD;AAAA;AAAA;EAGC;EACA;;AAED;EACC;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;;AAIF;EACC;;AAGA;EACC;EACA;EACA;;AACA;EACC;EACA;EACA;;AAGF;EACC;;AAGA;AAAA;AAAA;EAIC;EACA;EACA;;AAGD;EACC;;AAGD;EACC;;;AAMJ;AAGC;AAAA;EACC;EACA;EACA;;AACA;AAAA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;AAAA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAMJ;AACA;EACC;EACA;EACA;;AAEA;EACC;EACA;EACA;;AAEA;EACC;EACA;EACA;;AAGA;EACC;;AAED;EACC;;AAED;EACC;EACA;;AAKH;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EAGC;EACA;;AAIF;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;EACA;EACA;;AAGD;EACC;EACA;;AACA;EACC;EACA;;AAMH;EACC;EACA;EACA;EACA;AACA;AACA;EACA;EACA;;AAED;EACC;EACA;EACA;EACA;EACA;;AAED;EACC;EACA;;AAED;AACC;EACA;EACA;;AAEC;EACC;EACA;;AACA;EACC;EACA;;AAIH;EACC;EACA;EACA;EACA;EACA;EACA;;AAED;EACC;EACA;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;;AAED;AAAA;AAAA;EAGC;;AAED;AAAA;EAEC;;AAGD;EACC;EACA;;AAED;EACC;;AAED;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;;AACA;EACC;;AACA;EACC;EACA;EACA;;AAED;EACC;;AAIH;EACC;;AAED;EACC;;AAED;EAIC;EACA;;AAEA;EACC;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA,SAhBS;EAiBT;EACA;EACA;;AAGA;EACC;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA,aA/BU;EAgCV;;AACA;EACC;;AAGF;EACC;EACA;;AAED;EACC;;AAON;EACC;;;AAIF;EACC;;;AAGD;EACC;EACA;;;AAGD;AAGC;EACC;;AACA;EACC;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;;AAGD;EAGC;;AAKD;EACC;;AAEA;EACC;;;AAMJ;AACC;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;;AACA;AAAA;EAEC;;AAIF;AACC;EACA;EACA;EACA;EACA;;AAEA;EACC;;AAEA;EACC;EACA;EACA;EACA;;AAKH;EACC;EACA;EACA;EACA;EACA;AA2DA;;AAzDA;EACC;EACA;EACA;;AAGD;EACC;EACA;;AAEA;EACC;EACA;;AAGD;AACC;EACA;EACA;EACA;EACA;;AAED;EACC;;AAIF;EACC;EACA;EACA;EACA;;AAEA;EACC;;AAGD;EAGC;;AAIF;EACC;;AAEA;EACC;EACA;;AAGD;EACC;;AAKF;EACC;EACA;;AAED;EACC;;;AAMH;EACC;EACA;EACA;;;AAGD;AAEA;EACC;;;AAGD;AAGC;EACC;EACA;;AAED;EACC;EACA;EACA;EACA;;AAED;EACC;EACA;;AACA;EACC;;AAGF;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACC;;AAGF;EACC;EACA;;;AAIF;AACA;EACC;;;AAED;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACC;EACA;;AACA;EACC;;AAIA;EACC;;AAIF;EACC;EACA;;AACA;EACC;EACA;EACA;EACA;;AACA;EACC;;AAGF;EACC;;AAIH;EACC;;AACA;EACC;;AAGF;AAAA;EAEC;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;;AAEA;AAAA;AAAA;EAGC;;AAGF;EACC;EACA;;AAID;EACC;EACA;;AAEA;EACC;;AAGF;EACC;;AAEA;AAAA;AAAA;AAAA;AAAA;EAEC;;;AAKH;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;;AACA;EACC;;;AAIF;AAGC;EACC;EACA;;AAED;EACC;;;AAIF;AACA;EACC;;AAID;AAEA;EACC;EACA;EACA;EACA","file":"styles.css"}
{"version":3,"sourceRoot":"","sources":["variables.scss","styles.scss"],"names":[],"mappings":";AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAkBA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;;;AAGD;AACA;AAAA;EAEC;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;EACA;;AACA;EACC;;;AAIF;EACC;EACA;;;AAGD;EACC;;AACA;EACC;;;AAIF;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;AACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACC;EACA;EACA;EACA;EACA;;AAED;EACC;EACA;;AACA;EACC;;;AAKH;AAEA;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;EACA;;;AAID;AAEA;EACC;EACA;;;AAID;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAAa;EACb;EACA;EACA;EACA;EACA;EACA,KDlGe;;;ACqGhB;AAEA;EACC;;;AAGD;EACC;;;AAMC;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAED;EACC;;;AAKH;AAEA;AAAA;EAEC;EACA;EACA;EACA;;AACA;AAAA;EACC;;AAED;AAAA;EACC;;AAED;AAAA;EACC;;AAED;AAAA;AAAA;AAAA;EAEC;EACA;EACA;EACA;;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAEC;;;AAKH;AAEA;EACC;;;AAGD;AAEA;AAEA;AAEA;EACC;EACA;EACA;EACA;EACA;;;AAGD;AAEA;EACC;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;;;AAGD;EACC;;;AAED;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;AAIC;AAAA;AAAA;EACC;;AAED;AAAA;AAAA;EACC;;;AAIF;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;;;AAED;EACC;EACA;EACA;EACA;EACA;;;AAGD;AAEA;EACC;EACA;EACA;EACA;EACA;;;AAIA;EACC;;;AAKD;EACC;EACA;;AACA;EACC;EACA;EACA;;AAGF;EACC;EACA;;;AAIF;EACC;EACA;;AACA;EACC;;;AAIF;EACC;;;AAGD;AACA;AAEA;AAEA;AAEA;EACC;EACA;;AACA;EACC;EACA;;;AAIF;EACC;;;AAGD;EACC;;;AAIA;AAAA;EAGC;;;AAIF;EACC;EACA;EACA;;AAEA;EACC;;;AAIF;EACC;EACA;;;AAGD;EACC;;;AAIA;EACC;;;AAKD;EACC;;;AAKD;EACC;;;AAKD;EACC;;;AAIF;EACC;;;AAGD;EACC;EACA;EACA;EACA;;AACA;EACC;;;AAIF;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;AACA;EACC;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;AAAA;EAGC;EACA;;AAED;EACC;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;;AAED;EACC;;AAEA;EACC;;AAED;EACC;;AAGF;EACC;;AAID;EACC;EACA;EACA;EACA;EACA;;AAED;EACC;;AAGA;EACC;;AAGD;AAAA;AAAA;EAGC;EACA;EACA;;AAGD;AAAA;EAEC;EACA;;;AAMJ;EACC;EACA;;;AAID;AACA;EACC;EACA;EACA;EACA;AAwBA;;AAtBA;EACC;;AAGD;AAAA;AAAA;EAGC;EACA;;AAED;EACC;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;;AAIF;EACC;;AAGA;EACC;EACA;EACA;;AACA;EACC;EACA;EACA;;AAGF;EACC;;AAGA;AAAA;AAAA;EAIC;EACA;EACA;;AAGD;EACC;;AAGD;EACC;;;AAMJ;AAGC;AAAA;EACC;EACA;EACA;;AACA;AAAA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;AAAA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAMJ;AACA;EACC;EACA;EACA;;AAEA;EACC;EACA;EACA;;AAEA;EACC;EACA;EACA;;AAGA;EACC;;AAED;EACC;;AAED;EACC;EACA;;AAKH;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EAGC;EACA;;AAIF;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;EACA;EACA;;AAGD;EACC;EACA;;AACA;EACC;EACA;;AAMH;EACC;EACA;EACA;EACA;AACA;AACA;EACA;EACA;;AAED;EACC;EACA;EACA;EACA;EACA;;AAED;EACC;EACA;;AAED;AACC;EACA;EACA;;AAEC;EACC;EACA;;AACA;EACC;EACA;;AAIH;EACC;EACA;EACA;EACA;EACA;EACA;;AAED;EACC;EACA;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;;AAED;AAAA;AAAA;EAGC;;AAED;AAAA;EAEC;;AAGD;EACC;EACA;;AAED;EACC;;AAED;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;;AACA;EACC;;AACA;EACC;EACA;EACA;;AAED;EACC;;AAIH;EACC;;AAED;EACC;;AAED;EAIC;EACA;;AAEA;EACC;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA,SAhBS;EAiBT;EACA;EACA;;AAGA;EACC;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA,aA/BU;EAgCV;;AACA;EACC;;AAGF;EACC;EACA;;AAED;EACC;;AAON;EACC;;;AAIF;EACC;;;AAGD;EACC;EACA;;;AAGD;AAGC;EACC;;AACA;EACC;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;;AAGD;EAGC;;AAKD;EACC;;AAEA;EACC;;;AAMJ;AACC;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;;AACA;AAAA;EAEC;;AAIF;AACC;EACA;EACA;EACA;EACA;;AAEA;EACC;;AAEA;EACC;EACA;EACA;EACA;;AAKH;EACC;EACA;EACA;EACA;EACA;AA8DA;;AA5DA;EACC;EACA;EACA;;AAGD;EACC;EACA;;AAEA;EACC;EACA;;AAGD;AACC;EACA;EACA;EACA;EACA;;AAED;EACC;;AAIF;EACC;EACA;EACA;EACA;;AAEA;EACC;;AAED;EACC;;AAGD;EAGC;;AAIF;EACC;;AAEA;EACC;EACA;;AAGD;EACC;;AAKF;EACC;EACA;;AAED;EACC;;;AAMH;EACC;EACA;EACA;;;AAGD;AAEA;EACC;;;AAGD;AAGC;EACC;EACA;;AAED;EACC;EACA;EACA;EACA;;AAED;EACC;EACA;;AACA;EACC;;AAGF;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACC;;AAGF;EACC;EACA;;;AAIF;AACA;EACC;;;AAED;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACC;EACA;;AACA;EACC;;AAIA;EACC;;AAIF;EACC;EACA;;AACA;EACC;EACA;EACA;EACA;;AACA;EACC;;AAGF;EACC;;AAIH;EACC;;AACA;EACC;;AAGF;AAAA;EAEC;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;;AAEA;AAAA;AAAA;EAGC;;AAGF;EACC;EACA;;AAID;EACC;EACA;;AAEA;EACC;;AAGF;EACC;;AAEA;AAAA;AAAA;AAAA;AAAA;EAEC;;;AAKH;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;;AACA;EACC;;;AAIF;AAGC;EACC;EACA;;AAED;EACC;;;AAIF;AACA;EACC;;AAID;AAEA;EACC;EACA;EACA;EACA","file":"styles.css"}

View file

@ -193,7 +193,7 @@ body {
box-sizing: border-box;
position: -webkit-sticky;
position: sticky;
height: 44px;
height: 54px;
padding: 0;
margin: 0;
background-color: var(--color-main-background-translucent);
@ -223,8 +223,8 @@ body {
box-sizing: border-box;
display: inline-block;
display: flex;
height: 36px;
width: 36px;
height: 44px;
width: 44px;
padding: 9px; // width - border - icon width = 18px
align-items: center;
justify-content: center;
@ -1049,6 +1049,9 @@ span.ui-icon {
&:not(button) {
padding: 14px;
}
img {
filter: var(--background-invert-if-dark);
}
&:hover,
&:active,
@ -1058,7 +1061,7 @@ span.ui-icon {
}
button.other-actions {
margin: 5px;
width: 44px;
&:focus {
border-color: transparent;

View file

@ -87,7 +87,7 @@ const L10n = {
* Register an app's translation bundle.
*
* @param {string} appName name of the app
* @param {object<string, string>} bundle bundle
* @param {Object<string, string>} bundle bundle
*/
register(appName, bundle) {
registerAppTranslations(appName, bundle, this._getPlural)

View file

@ -28,7 +28,7 @@ import $ from 'jquery'
* Parses a URL query string into a JS map
*
* @param {string} queryString query string in the format param1=1234&param2=abcde&param3=xyz
* @return {object.<string, string>} map containing key/values matching the URL parameters
* @return {Object<string, string>} map containing key/values matching the URL parameters
*/
export const parse = queryString => {
let pos
@ -77,7 +77,7 @@ export const parse = queryString => {
/**
* Builds a URL query from a JS map.
*
* @param {object.<string, string>} params map containing key/values matching the URL parameters
* @param {Object<string, string>} params map containing key/values matching the URL parameters
* @return {string} String containing a URL query (without question) mark
*/
export const build = params => {

View file

@ -248,7 +248,7 @@ export default {
<style lang="scss" scoped>
.toggle-password {
position: absolute;
top: 6px;
top: 2px;
right: 10px;
color: var(--color-text-lighter);
}

View file

@ -28,7 +28,6 @@
import _ from 'underscore'
import $ from 'jquery'
import moment from 'moment'
import cssVars from 'css-vars-ponyfill'
import { initSessionHeartBeat } from './session-heartbeat'
import OC from './OC/index'
@ -133,20 +132,6 @@ moment.locale(locale)
* Initializes core
*/
export const initCore = () => {
const userAgent = window.navigator.userAgent
const edge = userAgent.indexOf('Edge/')
if (edge > 0) {
$('html').addClass('edge')
console.info('Legacy browser detected, applying css vars polyfill')
cssVars({
watch: true,
// set edge < 16 as incompatible
onlyLegacy: !(/Edge\/([0-9]{2})\./i.test(navigator.userAgent)
&& parseInt(/Edge\/([0-9]{2})\./i.exec(navigator.userAgent)[1]) < 16),
})
}
$(window).on('unload.main', () => { OC._unloadCalled = true })
$(window).on('beforeunload.main', () => {
// super-trick thanks to http://stackoverflow.com/a/4651049

4
dist/core-common.js vendored

File diff suppressed because one or more lines are too long

View file

@ -54,14 +54,6 @@
* Licensed MIT © Zeno Rocha
*/
/*!
* css-vars-ponyfill
* v2.4.8
* https://jhildenbiddle.github.io/css-vars-ponyfill/
* (c) 2018-2022 John Hildenbiddle <http://hildenbiddle.com>
* MIT license
*/
/*!
* escape-html
* Copyright(c) 2012-2013 TJ Holowaychuk
@ -70,14 +62,6 @@
* MIT Licensed
*/
/*!
* get-css-data
* v2.1.0
* https://github.com/jhildenbiddle/get-css-data
* (c) 2018-2022 John Hildenbiddle <http://hildenbiddle.com>
* MIT license
*/
/*!
* jQuery JavaScript Library v3.6.0
* https://jquery.com/
@ -773,163 +757,6 @@
* Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
*/
/**
* Fetches, parses, and transforms CSS custom properties from specified
* <style> and <link> elements into static values, then appends a new <style>
* element with static values to the DOM to provide CSS custom property
* compatibility for legacy browsers. Also provides a single interface for
* live updates of runtime values in both modern and legacy browsers.
*
* @preserve
* @param {object} [options] Options object
* @param {object} [options.rootElement=document] Root element to traverse for
* <link> and <style> nodes
* @param {boolean} [options.shadowDOM=false] Determines if shadow DOM <link>
* and <style> nodes will be processed.
* @param {string} [options.include="style,link[rel=stylesheet]"] CSS selector
* matching <link re="stylesheet"> and <style> nodes to
* process
* @param {string} [options.exclude] CSS selector matching <link
* rel="stylehseet"> and <style> nodes to exclude from those
* matches by options.include
* @param {object} [options.variables] A map of custom property name/value
* pairs. Property names can omit or include the leading
* double-hyphen (—), and values specified will override
* previous values
* @param {boolean} [options.onlyLegacy=true] Determines if the ponyfill will
* only generate legacy-compatible CSS in browsers that lack
* native support (i.e., legacy browsers)
* @param {boolean} [options.preserveStatic=true] Determines if CSS
* declarations that do not reference a custom property will
* be preserved in the transformed CSS
* @param {boolean} [options.preserveVars=false] Determines if CSS custom
* property declarations will be preserved in the transformed
* CSS
* @param {boolean} [options.silent=false] Determines if warning and error
* messages will be displayed on the console
* @param {boolean} [options.updateDOM=true] Determines if the ponyfill will
* update the DOM after processing CSS custom properties
* @param {boolean} [options.updateURLs=true] Determines if relative url()
* paths will be converted to absolute urls in external CSS
* @param {boolean} [options.watch=false] Determines if a MutationObserver will
* be created that will execute the ponyfill when a <link> or
* <style> DOM mutation is observed
* @param {function} [options.onBeforeSend] Callback before XHR is sent. Passes
* 1) the XHR object, 2) source node reference, and 3) the
* source URL as arguments
* @param {function} [options.onError] Callback after a CSS parsing error has
* occurred or an XHR request has failed. Passes 1) an error
* message, and 2) source node reference, 3) xhr, and 4 url as
* arguments.
* @param {function} [options.onWarning] Callback after each CSS parsing warning
* has occurred. Passes 1) a warning message as an argument.
* @param {function} [options.onSuccess] Callback after CSS data has been
* collected from each node and before CSS custom properties
* have been transformed. Allows modifying the CSS data before
* it is transformed by returning any string value (or false
* to skip). Passes 1) CSS text, 2) source node reference, and
* 3) the source URL as arguments.
* @param {function} [options.onComplete] Callback after all CSS has been
* processed, legacy-compatible CSS has been generated, and
* (optionally) the DOM has been updated. Passes 1) a CSS
* string with CSS variable values resolved, 2) an array of
* output <style> node references that have been appended to
* the DOM, 3) an object containing all custom properies names
* and values, and 4) the ponyfill execution time in
* milliseconds.
* @param {function} [options.onFinally] Callback in modern and legacy browsers
* after the ponyfill has finished all tasks. Passes 1) a
* boolean indicating if the last ponyfill call resulted in a
* style change, 2) a boolean indicating if the current
* browser provides native support for CSS custom properties,
* and 3) the ponyfill execution time in milliseconds.
* @example
*
* cssVars({
* rootElement : document,
* shadowDOM : false,
* include : 'style,link[rel="stylesheet"]',
* exclude : '',
* variables : {},
* onlyLegacy : true,
* preserveStatic: true,
* preserveVars : false,
* silent : false,
* updateDOM : true,
* updateURLs : true,
* watch : false,
* onBeforeSend(xhr, node, url) {},
* onError(message, node, xhr, url) {},
* onWarning(message) {},
* onSuccess(cssText, node, url) {},
* onComplete(cssText, styleNode, cssVariables, benchmark) {},
* onFinally(hasChanged, hasNativeSupport, benchmark)
* });
*/
/**
* Gets CSS data from <style> and <link> nodes (including @imports), then
* returns data in order processed by DOM. Allows specifying nodes to
* include/exclude and filtering CSS data using RegEx.
*
* @preserve
* @param {object} [options] The options object
* @param {object} [options.rootElement=document] Root element to traverse for
* <link> and <style> nodes.
* @param {string} [options.include] CSS selector matching <link> and <style>
* nodes to include
* @param {string} [options.exclude] CSS selector matching <link> and <style>
* nodes to exclude
* @param {object} [options.filter] Regular expression used to filter node CSS
* data. Each block of CSS data is tested against the filter,
* and only matching data is included.
* @param {boolean} [options.skipDisabled=true] Determines if disabled
* stylesheets will be skipped while collecting CSS data.
* @param {boolean} [options.useCSSOM=false] Determines if CSS data will be
* collected from a stylesheet's runtime values instead of its
* text content. This is required to get accurate CSS data
* when a stylesheet has been modified using the deleteRule()
* or insertRule() methods because these modifications will
* not be reflected in the stylesheet's text content.
* @param {function} [options.onBeforeSend] Callback before XHR is sent. Passes
* 1) the XHR object, 2) source node reference, and 3) the
* source URL as arguments.
* @param {function} [options.onSuccess] Callback on each CSS node read. Passes
* 1) CSS text, 2) source node reference, and 3) the source
* URL as arguments.
* @param {function} [options.onError] Callback on each error. Passes 1) the XHR
* object for inspection, 2) soure node reference, and 3) the
* source URL that failed (either a <link> href or an @import)
* as arguments
* @param {function} [options.onComplete] Callback after all nodes have been
* processed. Passes 1) concatenated CSS text, 2) an array of
* CSS text in DOM order, and 3) an array of nodes in DOM
* order as arguments.
*
* @example
*
* getCssData({
* rootElement : document,
* include : 'style,link[rel="stylesheet"]',
* exclude : '[href="skip.css"]',
* filter : /red/,
* skipDisabled: true,
* useCSSOM : false,
* onBeforeSend(xhr, node, url) {
* // ...
* }
* onSuccess(cssText, node, url) {
* // ...
* }
* onError(xhr, node, url) {
* // ...
* },
* onComplete(cssText, cssArray, nodeArray) {
* // ...
* }
* });
*/
/**
* vue-local-storage v0.6.0
* (c) 2017 Alexander Avakov

File diff suppressed because one or more lines are too long

4
dist/core-login.js vendored

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

4
dist/core-main.js vendored

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

29
package-lock.json generated
View file

@ -37,7 +37,6 @@
"camelcase": "^6.3.0",
"clipboard": "^2.0.10",
"core-js": "^3.24.0",
"css-vars-ponyfill": "^2.4.8",
"davclient.js": "git+https://github.com/owncloud/davclient.js.git#0.2.1",
"debounce": "^1.2.1",
"dompurify": "^2.3.6",
@ -12317,15 +12316,6 @@
"node": ">=0.10.0"
}
},
"node_modules/css-vars-ponyfill": {
"version": "2.4.8",
"resolved": "https://registry.npmjs.org/css-vars-ponyfill/-/css-vars-ponyfill-2.4.8.tgz",
"integrity": "sha512-4/j4AX4htytYHWyHVZ2BFQ+NoCGZEcOH2h4/2mmgE4SkrFg4Xq6tGYR77DtvvUIDsaXuJN+sj41bbgauA0Gfmg==",
"dependencies": {
"balanced-match": "^1.0.2",
"get-css-data": "^2.0.2"
}
},
"node_modules/css-what": {
"version": "3.4.2",
"resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz",
@ -15796,11 +15786,6 @@
"node": "6.* || 8.* || >= 10.*"
}
},
"node_modules/get-css-data": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/get-css-data/-/get-css-data-2.0.2.tgz",
"integrity": "sha512-pYqg80/7u/MdBrrAQj2OIoZ08TxEnvCHyU5WFnPxxS/D0S8OpUTkqGFRzn8bO38DmtCuYBpR9VMCen78BL4jiQ=="
},
"node_modules/get-intrinsic": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
@ -41849,15 +41834,6 @@
}
}
},
"css-vars-ponyfill": {
"version": "2.4.8",
"resolved": "https://registry.npmjs.org/css-vars-ponyfill/-/css-vars-ponyfill-2.4.8.tgz",
"integrity": "sha512-4/j4AX4htytYHWyHVZ2BFQ+NoCGZEcOH2h4/2mmgE4SkrFg4Xq6tGYR77DtvvUIDsaXuJN+sj41bbgauA0Gfmg==",
"requires": {
"balanced-match": "^1.0.2",
"get-css-data": "^2.0.2"
}
},
"css-what": {
"version": "3.4.2",
"resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz",
@ -44541,11 +44517,6 @@
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
"integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="
},
"get-css-data": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/get-css-data/-/get-css-data-2.0.2.tgz",
"integrity": "sha512-pYqg80/7u/MdBrrAQj2OIoZ08TxEnvCHyU5WFnPxxS/D0S8OpUTkqGFRzn8bO38DmtCuYBpR9VMCen78BL4jiQ=="
},
"get-intrinsic": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",

View file

@ -57,7 +57,6 @@
"camelcase": "^6.3.0",
"clipboard": "^2.0.10",
"core-js": "^3.24.0",
"css-vars-ponyfill": "^2.4.8",
"davclient.js": "git+https://github.com/owncloud/davclient.js.git#0.2.1",
"debounce": "^1.2.1",
"dompurify": "^2.3.6",