Merge pull request #56942 from nextcloud/refactor/federatedfilessharing-vue3

refactor(federatedfilesharing): migrate to Typescript and Vue 3
This commit is contained in:
Ferdinand Thiessen 2025-12-12 00:25:42 +01:00 committed by GitHub
commit 6d7a7f3146
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
142 changed files with 671 additions and 2720 deletions

View file

@ -16,12 +16,14 @@ use OCP\AppFramework\App;
use OCP\AppFramework\Bootstrap\IBootContext;
use OCP\AppFramework\Bootstrap\IBootstrap;
use OCP\AppFramework\Bootstrap\IRegistrationContext;
use OCP\AppFramework\IAppContainer;
use OCP\Federation\ICloudFederationProviderManager;
class Application extends App implements IBootstrap {
public const APP_ID = 'federatedfilesharing';
public function __construct() {
parent::__construct('federatedfilesharing');
parent::__construct(self::APP_ID);
}
public function register(IRegistrationContext $context): void {
@ -33,14 +35,13 @@ class Application extends App implements IBootstrap {
$context->injectFn(Closure::fromCallable([$this, 'registerCloudFederationProvider']));
}
private function registerCloudFederationProvider(ICloudFederationProviderManager $manager,
IAppContainer $appContainer): void {
private function registerCloudFederationProvider(ICloudFederationProviderManager $manager): void {
$fileResourceTypes = ['file', 'folder'];
foreach ($fileResourceTypes as $type) {
$manager->addCloudFederationProvider($type,
'Federated Files Sharing',
function () use ($appContainer): CloudFederationProviderFiles {
return $appContainer->get(CloudFederationProviderFiles::class);
function (): CloudFederationProviderFiles {
return \OCP\Server::get(CloudFederationProviderFiles::class);
});
}
}

View file

@ -8,6 +8,7 @@ declare(strict_types=1);
*/
namespace OCA\FederatedFileSharing\Listeners;
use OCA\FederatedFileSharing\AppInfo\Application;
use OCA\FederatedFileSharing\FederatedShareProvider;
use OCA\Files\Event\LoadAdditionalScriptsEvent;
use OCP\App\IAppManager;
@ -35,7 +36,8 @@ class LoadAdditionalScriptsListener implements IEventListener {
if ($this->federatedShareProvider->isIncomingServer2serverShareEnabled()) {
$this->initialState->provideInitialState('notificationsEnabled', $this->appManager->isEnabledForUser('notifications'));
Util::addInitScript('federatedfilesharing', 'external');
Util::addStyle(Application::APP_ID, 'init-files');
Util::addInitScript(Application::APP_ID, 'init-files');
}
}
}

View file

@ -6,6 +6,7 @@
*/
namespace OCA\FederatedFileSharing\Settings;
use OCA\FederatedFileSharing\AppInfo\Application;
use OCA\FederatedFileSharing\FederatedShareProvider;
use OCP\AppFramework\Http\TemplateResponse;
use OCP\AppFramework\Services\IInitialState;
@ -43,7 +44,9 @@ class Admin implements IDelegatedSettings {
$this->initialState->provideInitialState('lookupServerUploadEnabled', $this->fedShareProvider->isLookupServerUploadEnabled());
$this->initialState->provideInitialState('federatedTrustedShareAutoAccept', $this->fedShareProvider->isFederatedTrustedShareAutoAccept());
return new TemplateResponse('federatedfilesharing', 'settings-admin', [], '');
\OCP\Util::addStyle(Application::APP_ID, 'settings-admin');
\OCP\Util::addScript(Application::APP_ID, 'settings-admin');
return new TemplateResponse(Application::APP_ID, 'settings-admin', renderAs: '');
}
/**

View file

@ -8,6 +8,7 @@ declare(strict_types=1);
*/
namespace OCA\FederatedFileSharing\Settings;
use OCA\FederatedFileSharing\AppInfo\Application;
use OCA\FederatedFileSharing\FederatedShareProvider;
use OCP\AppFramework\Http\TemplateResponse;
use OCP\AppFramework\Services\IInitialState;
@ -41,7 +42,9 @@ class Personal implements ISettings {
$this->initialState->provideInitialState('cloudId', $cloudID);
$this->initialState->provideInitialState('docUrlFederated', $this->urlGenerator->linkToDocs('user-sharing-federated'));
return new TemplateResponse('federatedfilesharing', 'settings-personal', [], TemplateResponse::RENDER_AS_BLANK);
\OCP\Util::addStyle(Application::APP_ID, 'settings-personal');
\OCP\Util::addScript(Application::APP_ID, 'settings-personal');
return new TemplateResponse(Application::APP_ID, 'settings-personal', renderAs: TemplateResponse::RENDER_AS_BLANK);
}
/**

View file

@ -2,38 +2,184 @@
- SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
- SPDX-License-Identifier: AGPL-3.0-or-later
-->
<script setup lang="ts">
import type { OCSResponse } from '@nextcloud/typings/ocs'
import axios from '@nextcloud/axios'
import { showConfirmation, showError } from '@nextcloud/dialogs'
import { loadState } from '@nextcloud/initial-state'
import { t } from '@nextcloud/l10n'
import { confirmPassword } from '@nextcloud/password-confirmation'
import { generateOcsUrl } from '@nextcloud/router'
import { reactive } from 'vue'
import NcCheckboxRadioSwitch from '@nextcloud/vue/components/NcCheckboxRadioSwitch'
import NcSettingsSection from '@nextcloud/vue/components/NcSettingsSection'
import logger from '../services/logger.ts'
const sharingFederatedDocUrl = loadState<string>('federatedfilesharing', 'sharingFederatedDocUrl')
const internalState = new Proxy({
outgoingServer2serverShareEnabled: [
loadState<boolean>('federatedfilesharing', 'outgoingServer2serverShareEnabled'),
'outgoing_server2server_share_enabled',
],
incomingServer2serverShareEnabled: [
loadState<boolean>('federatedfilesharing', 'incomingServer2serverShareEnabled'),
'incoming_server2server_share_enabled',
],
outgoingServer2serverGroupShareEnabled: [
loadState<boolean>('federatedfilesharing', 'outgoingServer2serverGroupShareEnabled'),
'outgoing_server2server_group_share_enabled',
],
incomingServer2serverGroupShareEnabled: [
loadState<boolean>('federatedfilesharing', 'incomingServer2serverGroupShareEnabled'),
'incoming_server2server_group_share_enabled',
],
federatedGroupSharingSupported: [
loadState<boolean>('federatedfilesharing', 'federatedGroupSharingSupported'),
'federated_group_sharing_supported',
],
federatedTrustedShareAutoAccept: [
loadState<boolean>('federatedfilesharing', 'federatedTrustedShareAutoAccept'),
'federatedTrustedShareAutoAccept',
],
lookupServerEnabled: [
loadState<boolean>('federatedfilesharing', 'lookupServerEnabled'),
'lookupServerEnabled',
],
lookupServerUploadEnabled: [
loadState<boolean>('federatedfilesharing', 'lookupServerUploadEnabled'),
'lookupServerUploadEnabled',
],
}, {
get(target, prop) {
return target[prop]?.[0]
},
set(target, prop, value) {
if (prop in target) {
target[prop][0] = value
updateAppConfig(target[prop][1], value)
return true
}
return false
},
})
const state = reactive<Record<string, boolean>>(internalState as never)
/**
* Show confirmation dialog for enabling lookup server upload
*
* @param value - The new state
*/
async function showLookupServerUploadConfirmation(value: boolean) {
// No confirmation needed for disabling
if (value === false) {
return state.lookupServerUploadEnabled = false
}
await showConfirmation({
name: t('federatedfilesharing', 'Confirm data upload to lookup server'),
text: t('federatedfilesharing', 'When enabled, all account properties (e.g. email address) with scope visibility set to "published", will be automatically synced and transmitted to an external system and made available in a public, global address book.'),
labelConfirm: t('federatedfilesharing', 'Enable data upload'),
labelReject: t('federatedfilesharing', 'Disable upload'),
severity: 'warning',
}).then(() => {
state.lookupServerUploadEnabled = true
}).catch(() => {
state.lookupServerUploadEnabled = false
})
}
/**
* Show confirmation dialog for enabling lookup server
*
* @param value - The new state
*/
async function showLookupServerConfirmation(value: boolean) {
// No confirmation needed for disabling
if (value === false) {
return state.lookupServerEnabled = false
}
await showConfirmation({
name: t('federatedfilesharing', 'Confirm querying lookup server'),
text: t('federatedfilesharing', 'When enabled, the search input when creating shares will be sent to an external system that provides a public and global address book.')
+ t('federatedfilesharing', 'This is used to retrieve the federated cloud ID to make federated sharing easier.')
+ t('federatedfilesharing', 'Moreover, email addresses of users might be sent to that system in order to verify them.'),
labelConfirm: t('federatedfilesharing', 'Enable querying'),
labelReject: t('federatedfilesharing', 'Disable querying'),
severity: 'warning',
}).then(() => {
state.lookupServerEnabled = true
}).catch(() => {
state.lookupServerEnabled = false
})
}
/**
* Update the app config
*
* @param key - The config key
* @param value - The config value
*/
async function updateAppConfig(key: string, value: boolean) {
await confirmPassword()
const url = generateOcsUrl('/apps/provisioning_api/api/v1/config/apps/{appId}/{key}', {
appId: 'files_sharing',
key,
})
const stringValue = value ? 'yes' : 'no'
try {
const { data } = await axios.post<OCSResponse>(url, {
value: stringValue,
})
if (data.ocs.meta.status !== 'ok') {
if (data.ocs.meta.message) {
showError(data.ocs.meta.message)
logger.error('Error updating federated files sharing config', { error: data.ocs })
} else {
throw new Error(`Failed to update federatedfilesharing config, ${data.ocs.meta.statuscode}`)
}
}
} catch (error) {
logger.error('Error updating federated files sharing config', { error })
showError(t('federatedfilesharing', 'Unable to update federated files sharing config'))
}
}
</script>
<template>
<NcSettingsSection
:name="t('federatedfilesharing', 'Federated Cloud Sharing')"
:description="t('federatedfilesharing', 'Adjust how people can share between servers. This includes shares between people on this server as well if they are using federated sharing.')"
:doc-url="sharingFederatedDocUrl">
<NcCheckboxRadioSwitch
v-model="outgoingServer2serverShareEnabled"
type="switch"
@update:modelValue="update('outgoing_server2server_share_enabled', outgoingServer2serverShareEnabled)">
v-model="state.outgoingServer2serverShareEnabled"
type="switch">
{{ t('federatedfilesharing', 'Allow people on this server to send shares to other servers (this option also allows WebDAV access to public shares)') }}
</NcCheckboxRadioSwitch>
<NcCheckboxRadioSwitch
v-model="incomingServer2serverShareEnabled"
type="switch"
@update:modelValue="update('incoming_server2server_share_enabled', incomingServer2serverShareEnabled)">
v-model="state.incomingServer2serverShareEnabled"
type="switch">
{{ t('federatedfilesharing', 'Allow people on this server to receive shares from other servers') }}
</NcCheckboxRadioSwitch>
<NcCheckboxRadioSwitch
v-if="federatedGroupSharingSupported"
v-model="outgoingServer2serverGroupShareEnabled"
type="switch"
@update:modelValue="update('outgoing_server2server_group_share_enabled', outgoingServer2serverGroupShareEnabled)">
v-if="state.federatedGroupSharingSupported"
v-model="state.outgoingServer2serverGroupShareEnabled"
type="switch">
{{ t('federatedfilesharing', 'Allow people on this server to send shares to groups on other servers') }}
</NcCheckboxRadioSwitch>
<NcCheckboxRadioSwitch
v-if="federatedGroupSharingSupported"
v-model="incomingServer2serverGroupShareEnabled"
type="switch"
@update:modelValue="update('incoming_server2server_group_share_enabled', incomingServer2serverGroupShareEnabled)">
v-if="state.federatedGroupSharingSupported"
v-model="state.incomingServer2serverGroupShareEnabled"
type="switch">
{{ t('federatedfilesharing', 'Allow people on this server to receive group shares from other servers') }}
</NcCheckboxRadioSwitch>
@ -42,17 +188,17 @@
<NcCheckboxRadioSwitch
type="switch"
:model-value="lookupServerEnabled"
:model-value="state.lookupServerEnabled"
disabled
@update:modelValue="showLookupServerConfirmation">
@update:model-value="showLookupServerConfirmation">
{{ t('federatedfilesharing', 'Search global and public address book for people') }}
</NcCheckboxRadioSwitch>
<NcCheckboxRadioSwitch
type="switch"
:model-value="lookupServerUploadEnabled"
:model-value="state.lookupServerUploadEnabled"
disabled
@update:modelValue="showLookupServerUploadConfirmation">
@update:model-value="showLookupServerUploadConfirmation">
{{ t('federatedfilesharing', 'Allow people to publish their data to a global and public address book') }}
</NcCheckboxRadioSwitch>
</fieldset>
@ -63,147 +209,14 @@
{{ t('federatedfilesharing', 'Trusted federation') }}
</h3>
<NcCheckboxRadioSwitch
v-model="federatedTrustedShareAutoAccept"
type="switch"
@update:modelValue="update('federatedTrustedShareAutoAccept', federatedTrustedShareAutoAccept)">
v-model="state.federatedTrustedShareAutoAccept"
type="switch">
{{ t('federatedfilesharing', 'Automatically accept shares from trusted federated accounts and groups by default') }}
</NcCheckboxRadioSwitch>
</div>
</NcSettingsSection>
</template>
<script>
import axios from '@nextcloud/axios'
import { DialogBuilder, showError } from '@nextcloud/dialogs'
import { loadState } from '@nextcloud/initial-state'
import { confirmPassword } from '@nextcloud/password-confirmation'
import { generateOcsUrl } from '@nextcloud/router'
import NcCheckboxRadioSwitch from '@nextcloud/vue/components/NcCheckboxRadioSwitch'
import NcSettingsSection from '@nextcloud/vue/components/NcSettingsSection'
import logger from '../services/logger.ts'
export default {
name: 'AdminSettings',
components: {
NcCheckboxRadioSwitch,
NcSettingsSection,
},
data() {
return {
outgoingServer2serverShareEnabled: loadState('federatedfilesharing', 'outgoingServer2serverShareEnabled'),
incomingServer2serverShareEnabled: loadState('federatedfilesharing', 'incomingServer2serverShareEnabled'),
outgoingServer2serverGroupShareEnabled: loadState('federatedfilesharing', 'outgoingServer2serverGroupShareEnabled'),
incomingServer2serverGroupShareEnabled: loadState('federatedfilesharing', 'incomingServer2serverGroupShareEnabled'),
federatedGroupSharingSupported: loadState('federatedfilesharing', 'federatedGroupSharingSupported'),
lookupServerEnabled: loadState('federatedfilesharing', 'lookupServerEnabled'),
lookupServerUploadEnabled: loadState('federatedfilesharing', 'lookupServerUploadEnabled'),
federatedTrustedShareAutoAccept: loadState('federatedfilesharing', 'federatedTrustedShareAutoAccept'),
internalOnly: loadState('federatedfilesharing', 'internalOnly'),
sharingFederatedDocUrl: loadState('federatedfilesharing', 'sharingFederatedDocUrl'),
}
},
methods: {
setLookupServerUploadEnabled(state) {
if (state === this.lookupServerUploadEnabled) {
return
}
this.lookupServerUploadEnabled = state
this.update('lookupServerUploadEnabled', state)
},
async showLookupServerUploadConfirmation(state) {
// No confirmation needed for disabling
if (state === false) {
return this.setLookupServerUploadEnabled(false)
}
const dialog = new DialogBuilder(t('federatedfilesharing', 'Confirm data upload to lookup server'))
await dialog
.setSeverity('warning')
.setText(t('federatedfilesharing', 'When enabled, all account properties (e.g. email address) with scope visibility set to "published", will be automatically synced and transmitted to an external system and made available in a public, global address book.'))
.addButton({
callback: () => this.setLookupServerUploadEnabled(false),
label: t('federatedfilesharing', 'Disable upload'),
})
.addButton({
callback: () => this.setLookupServerUploadEnabled(true),
label: t('federatedfilesharing', 'Enable data upload'),
type: 'error',
})
.build()
.show()
},
setLookupServerEnabled(state) {
if (state === this.lookupServerEnabled) {
return
}
this.lookupServerEnabled = state
this.update('lookupServerEnabled', state)
},
async showLookupServerConfirmation(state) {
// No confirmation needed for disabling
if (state === false) {
return this.setLookupServerEnabled(false)
}
const dialog = new DialogBuilder(t('federatedfilesharing', 'Confirm querying lookup server'))
await dialog
.setSeverity('warning')
.setText(t('federatedfilesharing', 'When enabled, the search input when creating shares will be sent to an external system that provides a public and global address book.')
+ t('federatedfilesharing', 'This is used to retrieve the federated cloud ID to make federated sharing easier.')
+ t('federatedfilesharing', 'Moreover, email addresses of users might be sent to that system in order to verify them.'))
.addButton({
callback: () => this.setLookupServerEnabled(false),
label: t('federatedfilesharing', 'Disable querying'),
})
.addButton({
callback: () => this.setLookupServerEnabled(true),
label: t('federatedfilesharing', 'Enable querying'),
type: 'error',
})
.build()
.show()
},
async update(key, value) {
await confirmPassword()
const url = generateOcsUrl('/apps/provisioning_api/api/v1/config/apps/{appId}/{key}', {
appId: 'files_sharing',
key,
})
const stringValue = value ? 'yes' : 'no'
try {
const { data } = await axios.post(url, {
value: stringValue,
})
this.handleResponse({
status: data.ocs?.meta?.status,
})
} catch (e) {
this.handleResponse({
errorMessage: t('federatedfilesharing', 'Unable to update federated files sharing config'),
error: e,
})
}
},
async handleResponse({ status, errorMessage, error }) {
if (status !== 'ok') {
showError(errorMessage)
logger.error(errorMessage, { error })
}
},
},
}
</script>
<style scoped>
.settings-subsection {
margin-top: 20px;

View file

@ -3,6 +3,75 @@
- SPDX-License-Identifier: AGPL-3.0-or-later
-->
<script setup lang="ts">
import { showSuccess } from '@nextcloud/dialogs'
import { loadState } from '@nextcloud/initial-state'
import { t } from '@nextcloud/l10n'
import { imagePath } from '@nextcloud/router'
import { computed, ref } from 'vue'
import NcButton from '@nextcloud/vue/components/NcButton'
import NcInputField from '@nextcloud/vue/components/NcInputField'
import NcSettingsSection from '@nextcloud/vue/components/NcSettingsSection'
import IconCheck from 'vue-material-design-icons/Check.vue'
import IconClipboard from 'vue-material-design-icons/ContentCopy.vue'
import IconWeb from 'vue-material-design-icons/Web.vue'
const productName = window.OC.theme.productName
const color = loadState<string>('federatedfilesharing', 'color')
const textColor = loadState<string>('federatedfilesharing', 'textColor')
const cloudId = loadState<string>('federatedfilesharing', 'cloudId')
const docUrlFederated = loadState<string>('federatedfilesharing', 'docUrlFederated')
const logoPath = loadState<string>('federatedfilesharing', 'logoPath')
const reference = loadState<string>('federatedfilesharing', 'reference')
const urlFacebookIcon = imagePath('core', 'facebook')
const urlMastodonIcon = imagePath('core', 'mastodon')
const urlBlueSkyIcon = imagePath('core', 'bluesky')
const messageWithURL = t('federatedfilesharing', 'Share with me through my #Nextcloud Federated Cloud ID, see {url}', { url: reference })
const messageWithoutURL = t('federatedfilesharing', 'Share with me through my #Nextcloud Federated Cloud ID')
const shareMastodonUrl = `https://mastodon.social/?text=${encodeURIComponent(messageWithoutURL)}&url=${encodeURIComponent(reference)}`
const shareFacebookUrl = `https://www.facebook.com/sharer/sharer.php?u=${encodeURIComponent(reference)}`
const shareBlueSkyUrl = `https://bsky.app/intent/compose?text=${encodeURIComponent(messageWithURL)}`
const logoPathAbsolute = new URL(logoPath, location.origin)
const showHtml = ref(false)
const isCopied = ref(false)
const backgroundStyle = computed(() => `
padding:10px;
background-color:${color};
color:${textColor};
border-radius:3px;
padding-inline-start:4px;`)
const linkStyle = `background-image:url(${logoPathAbsolute});width:50px;height:30px;position:relative;top:8px;background-size:contain;display:inline-block;background-repeat:no-repeat; background-position: center center;`
const htmlCode = computed(() => `<a target="_blank" rel="noreferrer noopener" href="${reference}" style="${backgroundStyle.value}">
<span style="${linkStyle}"></span>
${t('federatedfilesharing', 'Share with me via Nextcloud')}
</a>`)
const copyLinkTooltip = computed(() => isCopied.value
? t('federatedfilesharing', 'Cloud ID copied')
: t('federatedfilesharing', 'Copy'))
/**
*
*/
async function copyCloudId(): Promise<void> {
try {
await navigator.clipboard.writeText(cloudId)
showSuccess(t('federatedfilesharing', 'Cloud ID copied'))
} catch {
// no secure context or really old browser - need a fallback
window.prompt(t('federatedfilesharing', 'Clipboard not available. Please copy the cloud ID manually.'), cloudId)
}
isCopied.value = true
showSuccess(t('federatedfilesharing', 'Copied!'))
setTimeout(() => {
isCopied.value = false
}, 2000)
}
</script>
<template>
<NcSettingsSection
:name="t('federatedfilesharing', 'Federated Cloud')"
@ -25,32 +94,24 @@
<p class="social-button">
{{ t('federatedfilesharing', 'Share it so your friends can share files with you:') }}<br>
<NcButton :href="shareBlueSkyUrl">
{{ t('federatedfilesharing', 'Bluesky') }}
<template #icon>
<img class="social-button__icon" :src="urlBlueSkyIcon">
</template>
</NcButton>
<NcButton :href="shareFacebookUrl">
{{ t('federatedfilesharing', 'Facebook') }}
<template #icon>
<img class="social-button__icon social-button__icon--bright" :src="urlFacebookIcon">
</template>
</NcButton>
<NcButton
:aria-label="t('federatedfilesharing', 'X (formerly Twitter)')"
:href="shareXUrl">
{{ t('federatedfilesharing', 'formerly Twitter') }}
<template #icon>
<img class="social-button__icon" :src="urlXIcon">
</template>
</NcButton>
<NcButton :href="shareMastodonUrl">
{{ t('federatedfilesharing', 'Mastodon') }}
<template #icon>
<img class="social-button__icon" :src="urlMastodonIcon">
</template>
</NcButton>
<NcButton :href="shareBlueSkyUrl">
{{ t('federatedfilesharing', 'Bluesky') }}
<template #icon>
<img class="social-button__icon" :src="urlBlueSkyIcon">
</template>
</NcButton>
<NcButton
class="social-button__website-button"
@click="showHtml = !showHtml">
@ -82,126 +143,6 @@
</NcSettingsSection>
</template>
<script lang="ts">
import { showSuccess } from '@nextcloud/dialogs'
import { loadState } from '@nextcloud/initial-state'
import { t } from '@nextcloud/l10n'
import { imagePath } from '@nextcloud/router'
import NcButton from '@nextcloud/vue/components/NcButton'
import NcInputField from '@nextcloud/vue/components/NcInputField'
import NcSettingsSection from '@nextcloud/vue/components/NcSettingsSection'
import IconCheck from 'vue-material-design-icons/Check.vue'
import IconClipboard from 'vue-material-design-icons/ContentCopy.vue'
import IconWeb from 'vue-material-design-icons/Web.vue'
export default {
name: 'PersonalSettings',
components: {
NcButton,
NcInputField,
NcSettingsSection,
IconCheck,
IconClipboard,
IconWeb,
},
setup() {
return {
t,
productName: window.OC.theme.productName,
cloudId: loadState<string>('federatedfilesharing', 'cloudId'),
reference: loadState<string>('federatedfilesharing', 'reference'),
urlFacebookIcon: imagePath('core', 'facebook'),
urlMastodonIcon: imagePath('core', 'mastodon'),
urlBlueSkyIcon: imagePath('core', 'bluesky'),
urlXIcon: imagePath('core', 'x'),
}
},
data() {
return {
color: loadState('federatedfilesharing', 'color'),
textColor: loadState('federatedfilesharing', 'textColor'),
logoPath: loadState('federatedfilesharing', 'logoPath'),
docUrlFederated: loadState('federatedfilesharing', 'docUrlFederated'),
showHtml: false,
isCopied: false,
}
},
computed: {
messageWithURL() {
return t('federatedfilesharing', 'Share with me through my #Nextcloud Federated Cloud ID, see {url}', { url: this.reference })
},
messageWithoutURL() {
return t('federatedfilesharing', 'Share with me through my #Nextcloud Federated Cloud ID')
},
shareMastodonUrl() {
return `https://mastodon.social/?text=${encodeURIComponent(this.messageWithoutURL)}&url=${encodeURIComponent(this.reference)}`
},
shareXUrl() {
return `https://x.com/intent/tweet?text=${encodeURIComponent(this.messageWithURL)}`
},
shareFacebookUrl() {
return `https://www.facebook.com/sharer/sharer.php?u=${encodeURIComponent(this.reference)}`
},
shareBlueSkyUrl() {
return `https://bsky.app/intent/compose?text=${encodeURIComponent(this.messageWithURL)}`
},
logoPathAbsolute() {
return window.location.protocol + '//' + window.location.host + this.logoPath
},
backgroundStyle() {
return `padding:10px;background-color:${this.color};color:${this.textColor};border-radius:3px;padding-inline-start:4px;`
},
linkStyle() {
return `background-image:url(${this.logoPathAbsolute});width:50px;height:30px;position:relative;top:8px;background-size:contain;display:inline-block;background-repeat:no-repeat; background-position: center center;`
},
htmlCode() {
return `<a target="_blank" rel="noreferrer noopener" href="${this.reference}" style="${this.backgroundStyle}">
<span style="${this.linkStyle}"></span>
${t('federatedfilesharing', 'Share with me via Nextcloud')}
</a>`
},
copyLinkTooltip() {
return this.isCopied ? t('federatedfilesharing', 'Cloud ID copied') : t('federatedfilesharing', 'Copy')
},
},
methods: {
async copyCloudId(): Promise<void> {
try {
await navigator.clipboard.writeText(this.cloudId)
showSuccess(t('federatedfilesharing', 'Cloud ID copied'))
} catch {
// no secure context or really old browser - need a fallback
window.prompt(t('federatedfilesharing', 'Clipboard not available. Please copy the cloud ID manually.'), this.reference)
}
this.isCopied = true
showSuccess(t('federatedfilesharing', 'Copied!'))
setTimeout(() => {
this.isCopied = false
}, 2000)
},
goTo(url: string): void {
window.location.href = url
},
},
}
</script>
<style lang="scss" scoped>
.social-button {
margin-top: 0.5rem;

View file

@ -3,31 +3,36 @@
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
import { cleanup, fireEvent, render } from '@testing-library/vue'
import { beforeEach, describe, expect, it, vi } from 'vitest'
import type { VueWrapper } from '@vue/test-utils'
import { findByLabelText, findByRole, fireEvent, getByLabelText, getByRole } from '@testing-library/vue'
import { mount } from '@vue/test-utils'
import { afterEach, describe, expect, it, vi } from 'vitest'
import RemoteShareDialog from './RemoteShareDialog.vue'
describe('RemoteShareDialog', () => {
beforeEach(cleanup)
let component: VueWrapper
afterEach(() => {
component?.unmount()
})
it('can be mounted', async () => {
const component = render(RemoteShareDialog, {
component = mount(RemoteShareDialog, {
props: {
owner: 'user123',
name: 'my-photos',
remote: 'nextcloud.local',
passwordRequired: false,
},
attachTo: 'body',
})
await expect(component.findByRole('dialog', { name: 'Remote share' })).resolves.not.toThrow()
expect(component.getByRole('dialog').innerText).toContain(/my-photos from user123@nextcloud.local/)
await expect(component.findByRole('button', { name: 'Cancel' })).resolves.not.toThrow()
await expect(component.findByRole('button', { name: /Add remote share/ })).resolves.not.toThrow()
await expect(findByRole(document.body, 'dialog', { name: 'Remote share' })).resolves.not.toThrow()
})
it('does not show password input if not enabled', async () => {
const component = render(RemoteShareDialog, {
component = mount(RemoteShareDialog, {
props: {
owner: 'user123',
name: 'my-photos',
@ -36,15 +41,15 @@ describe('RemoteShareDialog', () => {
},
})
await expect(component.findByLabelText('Remote share password')).rejects.toThrow()
await expect(findByLabelText(document.body, 'Remote share password')).rejects.toThrow()
})
it('emits true when accepted', () => {
it('emits true when accepted', async () => {
const onClose = vi.fn()
const component = render(RemoteShareDialog, {
listeners: {
close: onClose,
component = mount(RemoteShareDialog, {
attrs: {
onClose,
},
props: {
owner: 'user123',
@ -54,12 +59,13 @@ describe('RemoteShareDialog', () => {
},
})
component.getByRole('button', { name: 'Cancel' }).click()
const button = getByRole(document.body, 'button', { name: 'Cancel' })
await fireEvent.click(button)
expect(onClose).toHaveBeenCalledWith(false)
})
it('show password input if needed', async () => {
const component = render(RemoteShareDialog, {
component = mount(RemoteShareDialog, {
props: {
owner: 'admin',
name: 'secret-data',
@ -68,15 +74,15 @@ describe('RemoteShareDialog', () => {
},
})
await expect(component.findByLabelText('Remote share password')).resolves.not.toThrow()
await expect(findByLabelText(document.body, 'Remote share password')).resolves.not.toThrow()
})
it('emits the submitted password', async () => {
const onClose = vi.fn()
const component = render(RemoteShareDialog, {
listeners: {
close: onClose,
component = mount(RemoteShareDialog, {
attrs: {
onClose,
},
props: {
owner: 'admin',
@ -86,18 +92,19 @@ describe('RemoteShareDialog', () => {
},
})
const input = component.getByLabelText('Remote share password')
const input = getByLabelText(document.body, 'Remote share password')
await fireEvent.update(input, 'my password')
component.getByRole('button', { name: 'Add remote share' }).click()
const button = getByRole(document.body, 'button', { name: 'Add remote share' })
await fireEvent.click(button)
expect(onClose).toHaveBeenCalledWith(true, 'my password')
})
it('emits no password if cancelled', async () => {
const onClose = vi.fn()
const component = render(RemoteShareDialog, {
listeners: {
close: onClose,
component = mount(RemoteShareDialog, {
attrs: {
onClose,
},
props: {
owner: 'admin',
@ -107,9 +114,10 @@ describe('RemoteShareDialog', () => {
},
})
const input = component.getByLabelText('Remote share password')
const input = getByLabelText(document.body, 'Remote share password')
await fireEvent.update(input, 'my password')
component.getByRole('button', { name: 'Cancel' }).click()
const button = getByRole(document.body, 'button', { name: 'Cancel' })
await fireEvent.click(button)
expect(onClose).toHaveBeenCalledWith(false)
})
})

View file

@ -20,15 +20,17 @@ const props = defineProps<{
}>()
const emit = defineEmits<{
(e: 'close', state: boolean, password?: string): void
close: [state: boolean, password?: string]
}>()
const password = ref('')
type INcDialogButtons = InstanceType<typeof NcDialog>['$props']['buttons']
/**
* The dialog buttons
*/
const buttons = computed(() => [
const buttons = computed<INcDialogButtons>(() => [
{
label: t('federatedfilesharing', 'Cancel'),
callback: () => emit('close', false),
@ -54,16 +56,13 @@ const buttons = computed(() => [
<NcPasswordField
v-if="passwordRequired"
v-model="password"
class="remote-share-dialog__password"
:class="$style.remoteShareDialog__password"
:label="t('federatedfilesharing', 'Remote share password')" />
</NcDialog>
</template>
<style scoped lang="scss">
.remote-share-dialog {
&__password {
margin-block: 1em .5em;
}
<style module>
.remoteShareDialog__password {
margin-block: 1em .5em;
}
</style>

View file

@ -13,33 +13,6 @@ import { generateUrl } from '@nextcloud/router'
import { showRemoteShareDialog } from './services/dialogService.ts'
import logger from './services/logger.ts'
window.OCA.Sharing = window.OCA.Sharing ?? {}
/**
* Shows "add external share" dialog.
*
* @param {object} share the share
* @param {string} share.remote remote server URL
* @param {string} share.owner owner name
* @param {string} share.name name of the shared folder
* @param {string} share.token authentication token
* @param {boolean} passwordProtected true if the share is password protected
* @param {Function} callback the callback
*/
window.OCA.Sharing.showAddExternalDialog = function(share, passwordProtected, callback) {
const owner = share.ownerDisplayName || share.owner
const name = share.name
// Clean up the remote URL for display
const remote = share.remote
.replace(/^https?:\/\//, '') // remove http:// or https://
.replace(/\/$/, '') // remove trailing slash
showRemoteShareDialog(name, owner, remote, passwordProtected)
.then((password) => callback(true, { ...share, password }))
.catch(() => callback(false, share))
}
window.addEventListener('DOMContentLoaded', () => {
processIncomingShareFromUrl()
@ -118,7 +91,7 @@ function processIncomingShareFromUrl() {
// clear hash, it is unlikely that it contain any extra parameters
location.hash = ''
params.passwordProtected = parseInt(params.protected, 10) === 1
window.OCA.Sharing.showAddExternalDialog(
showAddExternalDialog(
params,
params.passwordProtected,
callbackAddShare,
@ -133,7 +106,7 @@ async function processSharesToConfirm() {
// check for new server-to-server shares which need to be approved
const { data: shares } = await axios.get(generateUrl('/apps/files_sharing/api/externalShares'))
for (let index = 0; index < shares.length; ++index) {
window.OCA.Sharing.showAddExternalDialog(
showAddExternalDialog(
shares[index],
false,
function(result, share) {
@ -149,3 +122,28 @@ async function processSharesToConfirm() {
)
}
}
/**
* Shows "add external share" dialog.
*
* @param {object} share the share
* @param {string} share.remote remote server URL
* @param {string} share.owner owner name
* @param {string} share.name name of the shared folder
* @param {string} share.token authentication token
* @param {boolean} passwordProtected true if the share is password protected
* @param {Function} callback the callback
*/
function showAddExternalDialog(share, passwordProtected, callback) {
const owner = share.ownerDisplayName || share.owner
const name = share.name
// Clean up the remote URL for display
const remote = share.remote
.replace(/^https?:\/\//, '') // remove http:// or https://
.replace(/\/$/, '') // remove trailing slash
showRemoteShareDialog(name, owner, remote, passwordProtected)
.then((password) => callback(true, { ...share, password }))
.catch(() => callback(false, share))
}

View file

@ -1,20 +0,0 @@
/**
* SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
import { getCSPNonce } from '@nextcloud/auth'
import { translate as t } from '@nextcloud/l10n'
import Vue from 'vue'
import PersonalSettings from './components/PersonalSettings.vue'
__webpack_nonce__ = getCSPNonce()
Vue.mixin({
methods: {
t,
},
})
const PersonalSettingsView = Vue.extend(PersonalSettings)
new PersonalSettingsView().$mount('#vue-personal-federated')

View file

@ -47,7 +47,7 @@ describe('federatedfilesharing: dialog service', () => {
}
}
expect(await promise).toBe('')
await expect(promise).resolves.toBe('')
})
it('rejects if cancelled', async () => {
@ -60,6 +60,6 @@ describe('federatedfilesharing: dialog service', () => {
}
}
expect(async () => await promise).rejects.toThrow()
await expect(promise).rejects.toThrow()
})
})

View file

@ -14,23 +14,24 @@ import RemoteShareDialog from '../components/RemoteShareDialog.vue'
* @param remote The remote address
* @param passwordRequired True if the share is password protected
*/
export function showRemoteShareDialog(
export async function showRemoteShareDialog(
name: string,
owner: string,
remote: string,
passwordRequired = false,
): Promise<string | void> {
const { promise, reject, resolve } = Promise.withResolvers<string | void>()
spawnDialog(RemoteShareDialog, { name, owner, remote, passwordRequired }, (status, password) => {
if (passwordRequired && status) {
resolve(password as string)
} else if (status) {
resolve(undefined)
} else {
reject()
}
const [status, password] = await spawnDialog(RemoteShareDialog, {
name,
owner,
remote,
passwordRequired,
})
return promise
if (passwordRequired && status) {
return password as string
} else if (status) {
return
} else {
throw new Error('Dialog was cancelled')
}
}

View file

@ -3,23 +3,15 @@
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
import { getCSPNonce } from '@nextcloud/auth'
import { loadState } from '@nextcloud/initial-state'
import { translate as t } from '@nextcloud/l10n'
import Vue from 'vue'
import { createApp } from 'vue'
import AdminSettings from './components/AdminSettings.vue'
__webpack_nonce__ = getCSPNonce()
Vue.mixin({
methods: {
t,
},
})
import 'vite/modulepreload-polyfill'
const internalOnly = loadState('federatedfilesharing', 'internalOnly', false)
if (!internalOnly) {
const AdminSettingsView = Vue.extend(AdminSettings)
new AdminSettingsView().$mount('#vue-admin-federated')
const app = createApp(AdminSettings)
app.mount('#vue-admin-federated')
}

View file

@ -0,0 +1,12 @@
/**
* SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
import { createApp } from 'vue'
import PersonalSettings from './components/PersonalSettings.vue'
import 'vite/modulepreload-polyfill'
const app = createApp(PersonalSettings)
app.mount('#vue-personal-federated')

View file

@ -3,8 +3,6 @@
* SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
\OCP\Util::addScript('federatedfilesharing', 'vue-settings-admin');
?>
<div id="vue-admin-federated"></div>

View file

@ -3,8 +3,6 @@
* SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
\OCP\Util::addScript('federatedfilesharing', 'vue-settings-personal');
?>
<div id="vue-personal-federated"></div>

View file

@ -57,7 +57,7 @@ export default defineConfig({
coverage: {
include: ['./apps/*/src/**', 'core/src/**'],
exclude: ['**.spec.*', '**.test.*', '**.cy.*', 'core/src/tests/**'],
provider: 'v8',
provider: 'istanbul',
reporter: ['lcov', 'text'],
reportsDirectory: resolve(import.meta.dirname, '../../coverage/legacy'),
},
@ -74,7 +74,7 @@ export default defineConfig({
deps: {
// @see https://github.com/vitest-dev/vitest/issues/7950
// inline: true,
inline: [ /^(?!.*vitest).*$/ ],
inline: [/^(?!.*vitest).*$/],
},
},
},

View file

@ -57,11 +57,6 @@ module.exports = {
oauth2: {
oauth2: path.join(__dirname, 'apps/oauth2/src', 'main.js'),
},
federatedfilesharing: {
external: path.join(__dirname, 'apps/federatedfilesharing/src', 'external.js'),
'vue-settings-admin': path.join(__dirname, 'apps/federatedfilesharing/src', 'main-admin.js'),
'vue-settings-personal': path.join(__dirname, 'apps/federatedfilesharing/src', 'main-personal.js'),
},
profile: {
main: path.join(__dirname, 'apps/profile/src', 'main.ts'),
},

View file

@ -12,6 +12,11 @@ const modules = {
'settings-admin-example-content': resolve(import.meta.dirname, 'apps/dav/src', 'settings-admin-example-content.ts'),
'settings-personal-availability': resolve(import.meta.dirname, 'apps/dav/src', 'settings-personal-availability.ts'),
},
federatedfilesharing: {
'init-files': resolve(import.meta.dirname, 'apps/federatedfilesharing/src', 'init-files.js'),
'settings-admin': resolve(import.meta.dirname, 'apps/federatedfilesharing/src', 'settings-admin.ts'),
'settings-personal': resolve(import.meta.dirname, 'apps/federatedfilesharing/src', 'settings-personal.ts'),
},
files_reminders: {
init: resolve(import.meta.dirname, 'apps/files_reminders/src', 'files-init.ts'),
},

View file

@ -54,7 +54,7 @@ export default defineConfig({
/* 'core/src/**', */
],
exclude: ['**.spec.*', '**.test.*', '**.cy.*', 'core/src/tests/**'],
provider: 'v8',
provider: 'istanbul',
reporter: ['lcov', 'text'],
reportsDirectory: resolve(import.meta.dirname, '../../coverage'),
},

View file

@ -1209,11 +1209,6 @@
)]]></code>
</DeprecatedMethod>
</file>
<file src="apps/federatedfilesharing/lib/AppInfo/Application.php">
<DeprecatedInterface>
<code><![CDATA[IAppContainer]]></code>
</DeprecatedInterface>
</file>
<file src="apps/federatedfilesharing/lib/Controller/RequestHandlerController.php">
<InvalidArgument>
<code><![CDATA[$id]]></code>

File diff suppressed because one or more lines are too long

View file

@ -1,12 +1,10 @@
SPDX-License-Identifier: AGPL-3.0-or-later
SPDX-License-Identifier: Apache-2.0
SPDX-License-Identifier: BSD-3-Clause
SPDX-License-Identifier: GPL-3.0-or-later
SPDX-License-Identifier: MIT
SPDX-FileCopyrightText: @nextcloud/dialogs developers
SPDX-FileCopyrightText: Anthony Fu <https://github.com/antfu>
SPDX-FileCopyrightText: Arnout Kazemier
SPDX-FileCopyrightText: Austin Andrews
SPDX-FileCopyrightText: Borys Serebrov
SPDX-FileCopyrightText: David Clark
SPDX-FileCopyrightText: Eduardo San Martin Morote
@ -48,9 +46,6 @@ This file is generated from multiple sources. Included packages:
- @floating-ui/utils
- version: 0.2.10
- license: MIT
- @mdi/svg
- version: 7.4.47
- license: Apache-2.0
- @nextcloud/capabilities
- version: 1.2.1
- license: GPL-3.0-or-later

File diff suppressed because one or more lines are too long

View file

@ -1,12 +1,10 @@
SPDX-License-Identifier: AGPL-3.0-or-later
SPDX-License-Identifier: Apache-2.0
SPDX-License-Identifier: BSD-3-Clause
SPDX-License-Identifier: GPL-3.0-or-later
SPDX-License-Identifier: MIT
SPDX-FileCopyrightText: @nextcloud/dialogs developers
SPDX-FileCopyrightText: Anthony Fu <https://github.com/antfu>
SPDX-FileCopyrightText: Arnout Kazemier
SPDX-FileCopyrightText: Austin Andrews
SPDX-FileCopyrightText: Borys Serebrov
SPDX-FileCopyrightText: David Clark
SPDX-FileCopyrightText: Eduardo San Martin Morote
@ -48,9 +46,6 @@ This file is generated from multiple sources. Included packages:
- @floating-ui/utils
- version: 0.2.10
- license: MIT
- @mdi/svg
- version: 7.4.47
- license: Apache-2.0
- @nextcloud/capabilities
- version: 1.2.1
- license: GPL-3.0-or-later

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

View file

@ -1,8 +1,10 @@
SPDX-License-Identifier: (MPL-2.0 OR Apache-2.0)
SPDX-License-Identifier: AGPL-3.0-or-later
SPDX-License-Identifier: Apache-2.0
SPDX-License-Identifier: GPL-3.0-or-later
SPDX-License-Identifier: ISC
SPDX-License-Identifier: MIT
SPDX-FileCopyrightText: Austin Andrews
SPDX-FileCopyrightText: Christoph Wurst
SPDX-FileCopyrightText: David Myers <hello@davidmyers.dev>
SPDX-FileCopyrightText: Dr.-Ing. Mario Heiderich, Cure53 <mario@cure53.de> (https://cure53.de/)
@ -14,6 +16,9 @@ SPDX-FileCopyrightText: Rob Cresswell <robcresswell@pm.me>
SPDX-FileCopyrightText: escape-html developers
This file is generated from multiple sources. Included packages:
- @mdi/svg
- version: 7.4.47
- license: Apache-2.0
- @nextcloud/auth
- version: 2.5.3
- license: GPL-3.0-or-later

File diff suppressed because one or more lines are too long

View file

@ -1,8 +1,10 @@
SPDX-License-Identifier: (MPL-2.0 OR Apache-2.0)
SPDX-License-Identifier: AGPL-3.0-or-later
SPDX-License-Identifier: Apache-2.0
SPDX-License-Identifier: GPL-3.0-or-later
SPDX-License-Identifier: ISC
SPDX-License-Identifier: MIT
SPDX-FileCopyrightText: Austin Andrews
SPDX-FileCopyrightText: Christoph Wurst
SPDX-FileCopyrightText: David Myers <hello@davidmyers.dev>
SPDX-FileCopyrightText: Dr.-Ing. Mario Heiderich, Cure53 <mario@cure53.de> (https://cure53.de/)
@ -14,6 +16,9 @@ SPDX-FileCopyrightText: Rob Cresswell <robcresswell@pm.me>
SPDX-FileCopyrightText: escape-html developers
This file is generated from multiple sources. Included packages:
- @mdi/svg
- version: 7.4.47
- license: Apache-2.0
- @nextcloud/auth
- version: 2.5.3
- license: GPL-3.0-or-later

4
dist/core-common.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

View file

@ -1,2 +1,2 @@
import{l as i,_ as f,N as b,a as g,c as R,e as E,i as C,f as m,r as p,o as S,w as r,j as n,b as c,d as u,t as l,h as V}from"./TrashCanOutline-DGuFIvUm.chunk.mjs";const h=i("dav","userSyncCalendarsDocUrl","#"),k={name:"CalDavSettings",components:{NcCheckboxRadioSwitch:g,NcSettingsSection:b},setup(){return{t:m}},data(){return{userSyncCalendarsDocUrl:h,sendInvitations:i("dav","sendInvitations"),generateBirthdayCalendar:i("dav","generateBirthdayCalendar"),sendEventReminders:i("dav","sendEventReminders"),sendEventRemindersToSharedUsers:i("dav","sendEventRemindersToSharedUsers"),sendEventRemindersPush:i("dav","sendEventRemindersPush")}},computed:{hint(){return m("dav","Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}.").replace("{calendarappstoreopen}",'<a target="_blank" href="../apps/office/calendar">').replace("{calendardocopen}",`<a target="_blank" href="${h}" rel="noreferrer noopener">`).replace(/\{linkclose\}/g,"</a>")},sendInvitationsHelpText(){return m("dav","Please make sure to properly set up {emailopen}the email server{linkclose}.").replace("{emailopen}",'<a href="../admin#mail_general_settings">').replace("{linkclose}","</a>")},sendEventRemindersHelpText(){return m("dav","Please make sure to properly set up {emailopen}the email server{linkclose}.").replace("{emailopen}",'<a href="../admin#mail_general_settings">').replace("{linkclose}","</a>")}},watch:{generateBirthdayCalendar(d){const e=d?"/apps/dav/enableBirthdayCalendar":"/apps/dav/disableBirthdayCalendar";E.post(C(e))},sendInvitations(d){OCP.AppConfig.setValue("dav","sendInvitations",d?"yes":"no")},sendEventReminders(d){OCP.AppConfig.setValue("dav","sendEventReminders",d?"yes":"no")},sendEventRemindersToSharedUsers(d){OCP.AppConfig.setValue("dav","sendEventRemindersToSharedUsers",d?"yes":"no")},sendEventRemindersPush(d){OCP.AppConfig.setValue("dav","sendEventRemindersPush",d?"yes":"no")}}},T=["innerHTML"],w=["innerHTML"],_=["innerHTML"],U={class:"indented"},P={class:"indented"};function H(d,e,x,s,a,v){const o=p("NcCheckboxRadioSwitch"),y=p("NcSettingsSection");return S(),R(y,{name:s.t("dav","Calendar server"),"doc-url":a.userSyncCalendarsDocUrl},{default:r(()=>[n("p",{class:"settings-hint",innerHTML:v.hint},null,8,T),n("p",null,[c(o,{id:"caldavSendInvitations",modelValue:a.sendInvitations,"onUpdate:modelValue":e[0]||(e[0]=t=>a.sendInvitations=t),type:"switch"},{default:r(()=>[u(l(s.t("dav","Send invitations to attendees")),1)]),_:1},8,["modelValue"]),n("em",{innerHTML:v.sendInvitationsHelpText},null,8,w)]),n("p",null,[c(o,{id:"caldavGenerateBirthdayCalendar",modelValue:a.generateBirthdayCalendar,"onUpdate:modelValue":e[1]||(e[1]=t=>a.generateBirthdayCalendar=t),type:"switch",class:"checkbox"},{default:r(()=>[u(l(s.t("dav","Automatically generate a birthday calendar")),1)]),_:1},8,["modelValue"]),n("em",null,l(s.t("dav","Birthday calendars will be generated by a background job.")),1),e[5]||(e[5]=n("br",null,null,-1)),n("em",null,l(s.t("dav","Hence they will not be available immediately after enabling but will show up after some time.")),1)]),n("p",null,[c(o,{id:"caldavSendEventReminders",modelValue:a.sendEventReminders,"onUpdate:modelValue":e[2]||(e[2]=t=>a.sendEventReminders=t),type:"switch"},{default:r(()=>[u(l(s.t("dav","Send notifications for events")),1)]),_:1},8,["modelValue"]),n("em",{innerHTML:v.sendEventRemindersHelpText},null,8,_),e[6]||(e[6]=n("br",null,null,-1)),n("em",null,l(s.t("dav","Notifications are sent via background jobs, so these must occur often enough.")),1)]),n("p",U,[c(o,{id:"caldavSendEventRemindersToSharedGroupMembers",modelValue:a.sendEventRemindersToSharedUsers,"onUpdate:modelValue":e[3]||(e[3]=t=>a.sendEventRemindersToSharedUsers=t),type:"switch",disabled:!a.sendEventReminders},{default:r(()=>[u(l(s.t("dav","Send reminder notifications to calendar sharees as well")),1)]),_:1},8,["modelValue","disabled"]),n("em",null,l(s.t("dav","Reminders are always sent to organizers and attendees.")),1)]),n("p",P,[c(o,{id:"caldavSendEventRemindersPush",modelValue:a.sendEventRemindersPush,"onUpdate:modelValue":e[4]||(e[4]=t=>a.sendEventRemindersPush=t),type:"switch",disabled:!a.sendEventReminders},{default:r(()=>[u(l(s.t("dav","Enable notifications for events via push")),1)]),_:1},8,["modelValue","disabled"])])]),_:1},8,["name","doc-url"])}const I=f(k,[["render",H],["__scopeId","data-v-84465bd0"]]),B=V(I);B.mount("#settings-admin-caldav");
import{l as i,_ as f,N as b,a as g,c as R,e as E,q as C,f as m,r as p,o as S,w as r,m as n,b as c,d as u,t as l,h as V}from"./TrashCanOutline-DKvv_nn_.chunk.mjs";const h=i("dav","userSyncCalendarsDocUrl","#"),k={name:"CalDavSettings",components:{NcCheckboxRadioSwitch:g,NcSettingsSection:b},setup(){return{t:m}},data(){return{userSyncCalendarsDocUrl:h,sendInvitations:i("dav","sendInvitations"),generateBirthdayCalendar:i("dav","generateBirthdayCalendar"),sendEventReminders:i("dav","sendEventReminders"),sendEventRemindersToSharedUsers:i("dav","sendEventRemindersToSharedUsers"),sendEventRemindersPush:i("dav","sendEventRemindersPush")}},computed:{hint(){return m("dav","Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}.").replace("{calendarappstoreopen}",'<a target="_blank" href="../apps/office/calendar">').replace("{calendardocopen}",`<a target="_blank" href="${h}" rel="noreferrer noopener">`).replace(/\{linkclose\}/g,"</a>")},sendInvitationsHelpText(){return m("dav","Please make sure to properly set up {emailopen}the email server{linkclose}.").replace("{emailopen}",'<a href="../admin#mail_general_settings">').replace("{linkclose}","</a>")},sendEventRemindersHelpText(){return m("dav","Please make sure to properly set up {emailopen}the email server{linkclose}.").replace("{emailopen}",'<a href="../admin#mail_general_settings">').replace("{linkclose}","</a>")}},watch:{generateBirthdayCalendar(d){const e=d?"/apps/dav/enableBirthdayCalendar":"/apps/dav/disableBirthdayCalendar";E.post(C(e))},sendInvitations(d){OCP.AppConfig.setValue("dav","sendInvitations",d?"yes":"no")},sendEventReminders(d){OCP.AppConfig.setValue("dav","sendEventReminders",d?"yes":"no")},sendEventRemindersToSharedUsers(d){OCP.AppConfig.setValue("dav","sendEventRemindersToSharedUsers",d?"yes":"no")},sendEventRemindersPush(d){OCP.AppConfig.setValue("dav","sendEventRemindersPush",d?"yes":"no")}}},T=["innerHTML"],w=["innerHTML"],_=["innerHTML"],U={class:"indented"},P={class:"indented"};function H(d,e,x,s,a,v){const o=p("NcCheckboxRadioSwitch"),y=p("NcSettingsSection");return S(),R(y,{name:s.t("dav","Calendar server"),"doc-url":a.userSyncCalendarsDocUrl},{default:r(()=>[n("p",{class:"settings-hint",innerHTML:v.hint},null,8,T),n("p",null,[c(o,{id:"caldavSendInvitations",modelValue:a.sendInvitations,"onUpdate:modelValue":e[0]||(e[0]=t=>a.sendInvitations=t),type:"switch"},{default:r(()=>[u(l(s.t("dav","Send invitations to attendees")),1)]),_:1},8,["modelValue"]),n("em",{innerHTML:v.sendInvitationsHelpText},null,8,w)]),n("p",null,[c(o,{id:"caldavGenerateBirthdayCalendar",modelValue:a.generateBirthdayCalendar,"onUpdate:modelValue":e[1]||(e[1]=t=>a.generateBirthdayCalendar=t),type:"switch",class:"checkbox"},{default:r(()=>[u(l(s.t("dav","Automatically generate a birthday calendar")),1)]),_:1},8,["modelValue"]),n("em",null,l(s.t("dav","Birthday calendars will be generated by a background job.")),1),e[5]||(e[5]=n("br",null,null,-1)),n("em",null,l(s.t("dav","Hence they will not be available immediately after enabling but will show up after some time.")),1)]),n("p",null,[c(o,{id:"caldavSendEventReminders",modelValue:a.sendEventReminders,"onUpdate:modelValue":e[2]||(e[2]=t=>a.sendEventReminders=t),type:"switch"},{default:r(()=>[u(l(s.t("dav","Send notifications for events")),1)]),_:1},8,["modelValue"]),n("em",{innerHTML:v.sendEventRemindersHelpText},null,8,_),e[6]||(e[6]=n("br",null,null,-1)),n("em",null,l(s.t("dav","Notifications are sent via background jobs, so these must occur often enough.")),1)]),n("p",U,[c(o,{id:"caldavSendEventRemindersToSharedGroupMembers",modelValue:a.sendEventRemindersToSharedUsers,"onUpdate:modelValue":e[3]||(e[3]=t=>a.sendEventRemindersToSharedUsers=t),type:"switch",disabled:!a.sendEventReminders},{default:r(()=>[u(l(s.t("dav","Send reminder notifications to calendar sharees as well")),1)]),_:1},8,["modelValue","disabled"]),n("em",null,l(s.t("dav","Reminders are always sent to organizers and attendees.")),1)]),n("p",P,[c(o,{id:"caldavSendEventRemindersPush",modelValue:a.sendEventRemindersPush,"onUpdate:modelValue":e[4]||(e[4]=t=>a.sendEventRemindersPush=t),type:"switch",disabled:!a.sendEventReminders},{default:r(()=>[u(l(s.t("dav","Enable notifications for events via push")),1)]),_:1},8,["modelValue","disabled"])])]),_:1},8,["name","doc-url"])}const I=f(k,[["render",H],["__scopeId","data-v-84465bd0"]]),B=V(I);B.mount("#settings-admin-caldav");
//# sourceMappingURL=dav-settings-admin-caldav.mjs.map

View file

@ -1,4 +1,4 @@
/* extracted by css-entry-points-plugin */
@import './dav-dav-settings-admin-example-content-BWzlcBW1.chunk.css';
@import './TrashCanOutline-BE4hS1RR.chunk.css';
@import './Plus-Dywt349j.chunk.css';
@import './ContentCopy-Dywt349j.chunk.css';

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,4 +1,4 @@
/* extracted by css-entry-points-plugin */
@import './dav-dav-settings-personal-availability-CTwf8DDv.chunk.css';
@import './TrashCanOutline-BE4hS1RR.chunk.css';
@import './Plus-Dywt349j.chunk.css';
@import './ContentCopy-Dywt349j.chunk.css';

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

View file

@ -1,692 +0,0 @@
SPDX-License-Identifier: MIT
SPDX-License-Identifier: ISC
SPDX-License-Identifier: GPL-3.0-or-later
SPDX-License-Identifier: BSD-3-Clause
SPDX-License-Identifier: AGPL-3.0-or-later
SPDX-License-Identifier: (MPL-2.0 OR Apache-2.0)
SPDX-License-Identifier: (MIT AND BSD-3-Clause)
SPDX-FileCopyrightText: string_decoder developers
SPDX-FileCopyrightText: ripemd160 developers
SPDX-FileCopyrightText: rhysd <lin90162@yahoo.co.jp>
SPDX-FileCopyrightText: readable-stream developers
SPDX-FileCopyrightText: p-queue developers
SPDX-FileCopyrightText: omahlama
SPDX-FileCopyrightText: inline-style-parser developers
SPDX-FileCopyrightText: inherits developers
SPDX-FileCopyrightText: escape-html developers
SPDX-FileCopyrightText: debounce developers
SPDX-FileCopyrightText: date-fns developers
SPDX-FileCopyrightText: chenkai
SPDX-FileCopyrightText: browserify-sign developers
SPDX-FileCopyrightText: browserify-rsa developers
SPDX-FileCopyrightText: atomiks
SPDX-FileCopyrightText: Varun A P
SPDX-FileCopyrightText: Tobias Koppers @sokra
SPDX-FileCopyrightText: Titus Wormer <tituswormer@gmail.com> (https://wooorm.com)
SPDX-FileCopyrightText: T. Jameson Little <t.jameson.little@gmail.com>
SPDX-FileCopyrightText: Stefan Thomas <justmoon@members.fsf.org> (http://www.justmoon.net)
SPDX-FileCopyrightText: Sindre Sorhus
SPDX-FileCopyrightText: Shuhei Kagawa
SPDX-FileCopyrightText: Scott Cooper <scttcper@gmail.com>
SPDX-FileCopyrightText: Roman Shtylman <shtylman@gmail.com>
SPDX-FileCopyrightText: Raynos <raynos2@gmail.com>
SPDX-FileCopyrightText: OpenJS Foundation and other contributors
SPDX-FileCopyrightText: Nick Frasser (https://nfrasser.com)
SPDX-FileCopyrightText: Nextcloud GmbH and Nextcloud contributors
SPDX-FileCopyrightText: Nathan Rajlich <nathan@tootallnate.net> (http://n8.io/)
SPDX-FileCopyrightText: Max <max@nextcloud.com>
SPDX-FileCopyrightText: Matt Zabriskie
SPDX-FileCopyrightText: Mathias Buus (@mafintosh)
SPDX-FileCopyrightText: Mark <mark@remarkablemark.org>
SPDX-FileCopyrightText: Kirill Fomichev <fanatid@ya.ru> (https://github.com/fanatid)
SPDX-FileCopyrightText: Julian Gruber
SPDX-FileCopyrightText: Jordan Humphreys <jordan@zurb.com>
SPDX-FileCopyrightText: Jordan Harband <ljharb@gmail.com>
SPDX-FileCopyrightText: Jordan Harband
SPDX-FileCopyrightText: Jeff Sagal <sagalbot@gmail.com>
SPDX-FileCopyrightText: James Halliday
SPDX-FileCopyrightText: Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me/)
SPDX-FileCopyrightText: Irakli Gozalishvili <rfobic@gmail.com> (http://jeditoolkit.com)
SPDX-FileCopyrightText: Guillaume Chau <guillaume.b.chau@gmail.com>
SPDX-FileCopyrightText: Guillaume Chau
SPDX-FileCopyrightText: GitHub Inc.
SPDX-FileCopyrightText: Feross Aboukhadijeh
SPDX-FileCopyrightText: Fedor Indutny <fedor@indutny.com>
SPDX-FileCopyrightText: Fedor Indutny
SPDX-FileCopyrightText: Evan You
SPDX-FileCopyrightText: Eugene Sharygin <eush77@gmail.com>
SPDX-FileCopyrightText: Eric Norris (https://github.com/ericnorris)
SPDX-FileCopyrightText: Eduardo San Martin Morote
SPDX-FileCopyrightText: Dr.-Ing. Mario Heiderich, Cure53 <mario@cure53.de> (https://cure53.de/)
SPDX-FileCopyrightText: Dominic Tarr <dominic.tarr@gmail.com> (dominictarr.com)
SPDX-FileCopyrightText: David Clark
SPDX-FileCopyrightText: Daniel Cousens
SPDX-FileCopyrightText: Christoph Wurst
SPDX-FileCopyrightText: Calvin Metcalf <calvin.metcalf@gmail.com>
SPDX-FileCopyrightText: Calvin Metcalf
SPDX-FileCopyrightText: Borys Serebrov
SPDX-FileCopyrightText: Arnout Kazemier
SPDX-FileCopyrightText: Antoni Andre <antoniandre.web@gmail.com>
SPDX-FileCopyrightText: Anthony Fu <https://github.com/antfu>
SPDX-FileCopyrightText: Anthony Fu <anthonyfu117@hotmail.com>
SPDX-FileCopyrightText: Andrea Giammarchi
SPDX-FileCopyrightText: @nextcloud/dialogs developers
SPDX-FileCopyrightText:
This file is generated from multiple sources. Included packages:
- @ctrl/tinycolor
- version: 3.6.1
- license: MIT
- @floating-ui/core
- version: 1.7.3
- license: MIT
- @floating-ui/dom
- version: 1.7.4
- license: MIT
- @floating-ui/utils
- version: 0.2.10
- license: MIT
- @nextcloud/auth
- version: 2.5.3
- license: GPL-3.0-or-later
- @nextcloud/axios
- version: 2.5.2
- license: GPL-3.0-or-later
- @nextcloud/browser-storage
- version: 0.5.0
- license: GPL-3.0-or-later
- @nextcloud/capabilities
- version: 1.2.1
- license: GPL-3.0-or-later
- @ckpack/vue-color
- version: 1.6.0
- license: MIT
- @nextcloud/browser-storage
- version: 0.4.0
- license: GPL-3.0-or-later
- @nextcloud/vue
- version: 9.0.1
- license: AGPL-3.0-or-later
- @vueuse/core
- version: 13.9.0
- license: MIT
- @vueuse/shared
- version: 13.9.0
- license: MIT
- debounce
- version: 2.2.0
- license: MIT
- rehype-react
- version: 8.0.0
- license: MIT
- splitpanes
- version: 4.0.4
- license: MIT
- vue-router
- version: 4.6.3
- license: MIT
- vue-select
- version: 4.0.0-beta.6
- license: MIT
- vue
- version: 3.5.22
- license: MIT
- @nextcloud/dialogs
- version: 7.1.0
- license: AGPL-3.0-or-later
- semver
- version: 7.7.2
- license: ISC
- @nextcloud/event-bus
- version: 3.3.3
- license: GPL-3.0-or-later
- @nextcloud/initial-state
- version: 3.0.0
- license: GPL-3.0-or-later
- @nextcloud/l10n
- version: 3.4.1
- license: GPL-3.0-or-later
- @nextcloud/logger
- version: 3.0.3
- license: GPL-3.0-or-later
- @nextcloud/paths
- version: 2.3.0
- license: GPL-3.0-or-later
- @nextcloud/router
- version: 3.1.0
- license: GPL-3.0-or-later
- @nextcloud/sharing
- version: 0.3.0
- license: GPL-3.0-or-later
- @nextcloud/initial-state
- version: 2.2.0
- license: GPL-3.0-or-later
- debounce
- version: 2.2.0
- license: MIT
- @nextcloud/vue
- version: 8.35.0
- license: AGPL-3.0-or-later
- @ungap/structured-clone
- version: 1.3.0
- license: ISC
- @vue/devtools-api
- version: 6.6.4
- license: MIT
- @vue/reactivity
- version: 3.5.22
- license: MIT
- @vue/runtime-core
- version: 3.5.22
- license: MIT
- @vue/runtime-dom
- version: 3.5.22
- license: MIT
- @vue/shared
- version: 3.5.22
- license: MIT
- @vueuse/core
- version: 11.3.0
- license: MIT
- @vueuse/shared
- version: 11.3.0
- license: MIT
- bn.js
- version: 4.12.2
- license: MIT
- asn1.js
- version: 4.10.1
- license: MIT
- available-typed-arrays
- version: 1.0.7
- license: MIT
- axios
- version: 1.12.2
- license: MIT
- base64-js
- version: 1.5.1
- license: MIT
- blurhash
- version: 2.0.5
- license: MIT
- bn.js
- version: 5.2.2
- license: MIT
- brorand
- version: 1.1.0
- license: MIT
- browserify-aes
- version: 1.2.0
- license: MIT
- browserify-cipher
- version: 1.0.1
- license: MIT
- browserify-des
- version: 1.0.2
- license: MIT
- browserify-rsa
- version: 4.1.1
- license: MIT
- browserify-sign
- version: 4.2.5
- license: ISC
- buffer-xor
- version: 1.0.3
- license: MIT
- buffer
- version: 5.7.1
- license: MIT
- call-bind-apply-helpers
- version: 1.0.2
- license: MIT
- call-bind
- version: 1.0.8
- license: MIT
- call-bound
- version: 1.0.4
- license: MIT
- cipher-base
- version: 1.0.7
- license: MIT
- comma-separated-tokens
- version: 2.0.3
- license: MIT
- core-util-is
- version: 1.0.3
- license: MIT
- bn.js
- version: 4.12.2
- license: MIT
- create-ecdh
- version: 4.0.4
- license: MIT
- create-hash
- version: 1.2.0
- license: MIT
- create-hmac
- version: 1.1.7
- license: MIT
- crypto-browserify
- version: 3.12.1
- license: MIT
- css-loader
- version: 7.1.2
- license: MIT
- date-fns
- version: 4.1.0
- license: MIT
- decode-named-character-reference
- version: 1.2.0
- license: MIT
- define-data-property
- version: 1.1.4
- license: MIT
- des.js
- version: 1.1.0
- license: MIT
- devlop
- version: 1.1.0
- license: MIT
- bn.js
- version: 4.12.2
- license: MIT
- diffie-hellman
- version: 5.0.3
- license: MIT
- dompurify
- version: 3.3.0
- license: (MPL-2.0 OR Apache-2.0)
- dunder-proto
- version: 1.0.1
- license: MIT
- bn.js
- version: 4.12.2
- license: MIT
- elliptic
- version: 6.6.1
- license: MIT
- emoji-mart-vue-fast
- version: 15.0.5
- license: BSD-3-Clause
- es-define-property
- version: 1.0.1
- license: MIT
- es-errors
- version: 1.3.0
- license: MIT
- es-object-atoms
- version: 1.1.1
- license: MIT
- escape-html
- version: 1.0.3
- license: MIT
- estree-util-is-identifier-name
- version: 3.0.0
- license: MIT
- events
- version: 3.3.0
- license: MIT
- evp_bytestokey
- version: 1.0.3
- license: MIT
- extend
- version: 3.0.2
- license: MIT
- floating-vue
- version: 1.0.0-beta.19
- license: MIT
- focus-trap
- version: 7.6.6
- license: MIT
- for-each
- version: 0.3.5
- license: MIT
- function-bind
- version: 1.1.2
- license: MIT
- get-intrinsic
- version: 1.3.0
- license: MIT
- get-proto
- version: 1.0.1
- license: MIT
- gopd
- version: 1.2.0
- license: MIT
- has-property-descriptors
- version: 1.0.2
- license: MIT
- has-symbols
- version: 1.1.0
- license: MIT
- has-tostringtag
- version: 1.0.2
- license: MIT
- hash-base
- version: 3.0.5
- license: MIT
- hash.js
- version: 1.1.7
- license: MIT
- hasown
- version: 2.0.2
- license: MIT
- hast-util-is-element
- version: 3.0.0
- license: MIT
- hast-util-whitespace
- version: 3.0.0
- license: MIT
- property-information
- version: 7.1.0
- license: MIT
- hast-util-to-jsx-runtime
- version: 2.3.6
- license: MIT
- hmac-drbg
- version: 1.0.1
- license: MIT
- ieee754
- version: 1.2.1
- license: BSD-3-Clause
- inherits
- version: 2.0.4
- license: ISC
- is-absolute-url
- version: 4.0.1
- license: MIT
- is-callable
- version: 1.2.7
- license: MIT
- is-typed-array
- version: 1.1.15
- license: MIT
- isarray
- version: 1.0.0
- license: MIT
- jquery
- version: 3.7.1
- license: MIT
- linkifyjs
- version: 4.3.2
- license: MIT
- material-colors
- version: 1.2.6
- license: ISC
- math-intrinsics
- version: 1.1.0
- license: MIT
- md5.js
- version: 1.3.5
- license: MIT
- mdast-squeeze-paragraphs
- version: 6.0.0
- license: MIT
- escape-string-regexp
- version: 5.0.0
- license: MIT
- mdast-util-find-and-replace
- version: 3.0.2
- license: MIT
- mdast-util-from-markdown
- version: 2.0.2
- license: MIT
- mdast-util-newline-to-break
- version: 2.0.0
- license: MIT
- mdast-util-to-hast
- version: 13.2.1
- license: MIT
- mdast-util-to-string
- version: 4.0.0
- license: MIT
- micromark-core-commonmark
- version: 2.0.3
- license: MIT
- micromark-factory-destination
- version: 2.0.1
- license: MIT
- micromark-factory-label
- version: 2.0.1
- license: MIT
- micromark-factory-space
- version: 2.0.1
- license: MIT
- micromark-factory-title
- version: 2.0.1
- license: MIT
- micromark-factory-whitespace
- version: 2.0.1
- license: MIT
- micromark-util-character
- version: 2.1.1
- license: MIT
- micromark-util-chunked
- version: 2.0.1
- license: MIT
- micromark-util-classify-character
- version: 2.0.1
- license: MIT
- micromark-util-combine-extensions
- version: 2.0.1
- license: MIT
- micromark-util-decode-numeric-character-reference
- version: 2.0.2
- license: MIT
- micromark-util-decode-string
- version: 2.0.1
- license: MIT
- micromark-util-encode
- version: 2.0.1
- license: MIT
- micromark-util-html-tag-name
- version: 2.0.1
- license: MIT
- micromark-util-normalize-identifier
- version: 2.0.1
- license: MIT
- micromark-util-resolve-all
- version: 2.0.1
- license: MIT
- micromark-util-sanitize-uri
- version: 2.0.1
- license: MIT
- micromark-util-subtokenize
- version: 2.1.0
- license: MIT
- micromark
- version: 4.0.2
- license: MIT
- bn.js
- version: 4.12.2
- license: MIT
- miller-rabin
- version: 4.0.1
- license: MIT
- minimalistic-assert
- version: 1.0.1
- license: ISC
- minimalistic-crypto-utils
- version: 1.0.1
- license: MIT
- buffer
- version: 6.0.3
- license: MIT
- eventemitter3
- version: 5.0.1
- license: MIT
- p-queue
- version: 9.0.1
- license: MIT
- p-timeout
- version: 7.0.1
- license: MIT
- parse-asn1
- version: 5.1.9
- license: ISC
- pbkdf2
- version: 3.1.5
- license: MIT
- possible-typed-array-names
- version: 1.1.0
- license: MIT
- process-nextick-args
- version: 2.0.1
- license: MIT
- process
- version: 0.11.10
- license: MIT
- bn.js
- version: 4.12.2
- license: MIT
- public-encrypt
- version: 4.0.3
- license: MIT
- randombytes
- version: 2.1.0
- license: MIT
- randomfill
- version: 1.0.4
- license: MIT
- safe-buffer
- version: 5.1.2
- license: MIT
- string_decoder
- version: 1.1.1
- license: MIT
- readable-stream
- version: 2.3.8
- license: MIT
- rehype-external-links
- version: 3.0.0
- license: MIT
- remark-breaks
- version: 4.0.0
- license: MIT
- remark-parse
- version: 11.0.0
- license: MIT
- remark-rehype
- version: 11.1.2
- license: MIT
- remark-unlink-protocols
- version: 1.0.0
- license: MIT
- hash-base
- version: 3.1.2
- license: MIT
- ripemd160
- version: 2.0.3
- license: MIT
- safe-buffer
- version: 5.2.1
- license: MIT
- set-function-length
- version: 1.2.2
- license: MIT
- sha.js
- version: 2.4.12
- license: (MIT AND BSD-3-Clause)
- space-separated-tokens
- version: 2.0.2
- license: MIT
- readable-stream
- version: 3.6.2
- license: MIT
- stream-browserify
- version: 3.0.0
- license: MIT
- string_decoder
- version: 1.3.0
- license: MIT
- striptags
- version: 3.2.0
- license: MIT
- style-loader
- version: 4.0.0
- license: MIT
- inline-style-parser
- version: 0.2.4
- license: MIT
- style-to-object
- version: 1.0.11
- license: MIT
- style-to-js
- version: 1.1.18
- license: MIT
- tabbable
- version: 6.3.0
- license: MIT
- isarray
- version: 2.0.5
- license: MIT
- to-buffer
- version: 1.2.2
- license: MIT
- toastify-js
- version: 1.12.0
- license: MIT
- tributejs
- version: 5.1.3
- license: MIT
- trim-lines
- version: 3.0.1
- license: MIT
- trough
- version: 2.2.0
- license: MIT
- typed-array-buffer
- version: 1.0.3
- license: MIT
- unified
- version: 11.0.5
- license: MIT
- unist-builder
- version: 4.0.0
- license: MIT
- unist-util-is
- version: 6.0.0
- license: MIT
- unist-util-position
- version: 5.0.0
- license: MIT
- unist-util-stringify-position
- version: 4.0.0
- license: MIT
- unist-util-visit-parents
- version: 6.0.1
- license: MIT
- unist-util-visit
- version: 5.0.0
- license: MIT
- util-deprecate
- version: 1.0.2
- license: MIT
- vfile-message
- version: 4.0.3
- license: MIT
- vfile
- version: 6.0.3
- license: MIT
- vm-browserify
- version: 1.1.2
- license: MIT
- vue-demi
- version: 0.14.10
- license: MIT
- vue-loader
- version: 15.11.1
- license: MIT
- vue
- version: 2.7.16
- license: MIT
- webpack
- version: 5.103.0
- license: MIT
- which-typed-array
- version: 1.1.19
- license: MIT
- nextcloud
- version: 1.0.0
- license: AGPL-3.0-or-later

File diff suppressed because one or more lines are too long

View file

@ -1 +0,0 @@
federatedfilesharing-external.js.license

View file

@ -0,0 +1 @@
._remoteShareDialog__password_1ccpy_2{margin-block:1em .5em}

View file

@ -0,0 +1 @@
.settings-subsection[data-v-5ef41235]{margin-top:20px}.settings-subsection__name[data-v-5ef41235]{display:inline-flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;max-width:900px;margin-top:0}

View file

@ -0,0 +1 @@
.social-button[data-v-0b473172]{margin-top:.5rem}.social-button button[data-v-0b473172],.social-button a[data-v-0b473172]{display:inline-flex;margin-inline-start:.5rem;margin-top:1rem}.social-button__website-button[data-v-0b473172]{width:min(100%,400px)!important}.social-button__icon[data-v-0b473172]{height:20px;width:20px;filter:var(--background-invert-if-dark)}.social-button__icon--bright[data-v-0b473172]{filter:var(--background-invert-if-bright)}.federated-cloud__cloud-id[data-v-0b473172]{max-width:300px}pre[data-v-0b473172]{margin-top:0;white-space:pre-wrap}

View file

@ -0,0 +1,4 @@
/* extracted by css-entry-points-plugin */
@import './federatedfilesharing-federatedfilesharing-init-files-DrBRJAfw.chunk.css';
@import './TrashCanOutline-BE4hS1RR.chunk.css';
@import './ContentCopy-Dywt349j.chunk.css';

View file

@ -0,0 +1,2 @@
import{i as _,j as y,k as b,f as t,c as u,o as f,w as R,m as v,n as D,t as S,u as i,p as O,_ as k,l as q,s as C,e as d,q as c,v as P}from"./TrashCanOutline-DKvv_nn_.chunk.mjs";import{N as F,a as x,b as E,c as N,s as h}from"./ContentCopy-DXaCAmGe.chunk.mjs";import{l as j}from"./logger-BmseY7xk.chunk.mjs";const M=_({__name:"RemoteShareDialog",props:{name:{},owner:{},remote:{},passwordRequired:{type:Boolean}},emits:["close"],setup(e,{emit:s}){const r=e,a=s,o=y(""),n=b(()=>[{label:t("federatedfilesharing","Cancel"),callback:()=>a("close",!1)},{label:t("federatedfilesharing","Add remote share"),type:r.passwordRequired?"submit":void 0,variant:"primary",callback:()=>a("close",!0,o.value)}]);return(p,l)=>(f(),u(i(x),{buttons:n.value,"is-form":e.passwordRequired,name:i(t)("federatedfilesharing","Remote share"),onSubmit:l[1]||(l[1]=w=>a("close",!0,o.value))},{default:R(()=>[v("p",null,S(i(t)("federatedfilesharing","Do you want to add the remote share {name} from {owner}@{remote}?",{name:e.name,owner:e.owner,remote:e.remote})),1),e.passwordRequired?(f(),u(i(F),{key:0,modelValue:o.value,"onUpdate:modelValue":l[0]||(l[0]=w=>o.value=w),class:O(p.$style.remoteShareDialog__password),label:i(t)("federatedfilesharing","Remote share password")},null,8,["modelValue","class","label"])):D("",!0)]),_:1},8,["buttons","is-form","name"]))}}),T="_remoteShareDialog__password_1ccpy_2",U={remoteShareDialog__password:T},V={$style:U},$=k(M,[["__cssModules",V]]);async function I(e,s,r,a=!1){const[o,n]=await E($,{name:e,owner:s,remote:r,passwordRequired:a});if(a&&o)return n;if(!o)throw new Error("Dialog was cancelled")}window.addEventListener("DOMContentLoaded",()=>{L(),q("federatedfilesharing","notificationsEnabled",!0)!==!0&&A(),C("notifications:action:executed",({action:e,notification:s})=>{s.app==="files_sharing"&&s.object_type==="remote_share"&&e.type==="POST"&&m()})});function m(){if(!window?.OCP?.Files?.Router?.goToRoute){window.location.reload();return}window.OCP.Files.Router.goToRoute(null,{...window.OCP.Files.Router.params,fileid:void 0},{...window.OCP.Files.Router.query,dir:"/",openfile:void 0})}function L(){const e=window.OC.Util.History.parseUrlQuery();if(e.remote&&e.token&&e.name){const s=(r,a)=>{r!==!1&&d.post(c("apps/federatedfilesharing/askForFederatedShare"),{remote:a.remote,token:a.token,owner:a.owner,ownerDisplayName:a.ownerDisplayName||a.owner,name:a.name,password:a.password||""}).then(({data:o})=>{Object.hasOwn(o,"legacyMount")?m():N(o.message)}).catch(o=>{j.error("Error while processing incoming share",{error:o}),P(o)&&o.response.data.message?h(o.response.data.message):h(t("federatedfilesharing","Incoming share could not be processed"))})};location.hash="",e.passwordProtected=parseInt(e.protected,10)===1,g(e,e.passwordProtected,s)}}async function A(){const{data:e}=await d.get(c("/apps/files_sharing/api/externalShares"));for(let s=0;s<e.length;++s)g(e[s],!1,function(r,a){r===!1?d.delete(c("/apps/files_sharing/api/externalShares/"+a.id)):d.post(c("/apps/files_sharing/api/externalShares"),{id:a.id}).then(()=>m())})}function g(e,s,r){const a=e.ownerDisplayName||e.owner,o=e.name,n=e.remote.replace(/^https?:\/\//,"").replace(/\/$/,"");I(o,a,n,s).then(p=>r(!0,{...e,password:p})).catch(()=>r(!1,e))}
//# sourceMappingURL=federatedfilesharing-init-files.mjs.map

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,4 @@
/* extracted by css-entry-points-plugin */
@import './federatedfilesharing-federatedfilesharing-settings-admin-DhbMDSZa.chunk.css';
@import './TrashCanOutline-BE4hS1RR.chunk.css';
@import './ContentCopy-Dywt349j.chunk.css';

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,7 @@
SPDX-License-Identifier: AGPL-3.0-or-later
SPDX-FileCopyrightText: Nextcloud GmbH and Nextcloud contributors
This file is generated from multiple sources. Included packages:
- nextcloud-ui
- version: 1.0.0
- license: AGPL-3.0-or-later

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,7 @@
SPDX-License-Identifier: AGPL-3.0-or-later
SPDX-FileCopyrightText: Nextcloud GmbH and Nextcloud contributors
This file is generated from multiple sources. Included packages:
- nextcloud-ui
- version: 1.0.0
- license: AGPL-3.0-or-later

View file

@ -0,0 +1,4 @@
/* extracted by css-entry-points-plugin */
@import './federatedfilesharing-federatedfilesharing-settings-personal-B56uUkOQ.chunk.css';
@import './TrashCanOutline-BE4hS1RR.chunk.css';
@import './ContentCopy-Dywt349j.chunk.css';

View file

@ -0,0 +1,10 @@
import{_ as I,x as d,o,m as i,n as M,t as r,B as S,i as j,l as h,C as w,f as a,j as N,k as _,c as x,w as l,b as f,u as e,d as s,F as J,D as W,N as q,h as E}from"./TrashCanOutline-DKvv_nn_.chunk.mjs";import{h as G,I as K,e as b,i as z}from"./ContentCopy-DXaCAmGe.chunk.mjs";import"./modulepreload-polyfill-BxzAKjcf.chunk.mjs";const Q={name:"CheckIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},V=["aria-hidden","aria-label"],X=["fill","width","height"],ee={d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"},ae={key:0};function te(c,n,t,k,p,y){return o(),d("span",S(c.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon check-icon",role:"img",onClick:n[0]||(n[0]=g=>c.$emit("click",g))}),[(o(),d("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[i("path",ee,[t.title?(o(),d("title",ae,r(t.title),1)):M("",!0)])],8,X))],16,V)}const ie=I(Q,[["render",te]]),le={name:"WebIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}},re=["aria-hidden","aria-label"],oe=["fill","width","height"],ne={d:"M16.36,14C16.44,13.34 16.5,12.68 16.5,12C16.5,11.32 16.44,10.66 16.36,10H19.74C19.9,10.64 20,11.31 20,12C20,12.69 19.9,13.36 19.74,14M14.59,19.56C15.19,18.45 15.65,17.25 15.97,16H18.92C17.96,17.65 16.43,18.93 14.59,19.56M14.34,14H9.66C9.56,13.34 9.5,12.68 9.5,12C9.5,11.32 9.56,10.65 9.66,10H14.34C14.43,10.65 14.5,11.32 14.5,12C14.5,12.68 14.43,13.34 14.34,14M12,19.96C11.17,18.76 10.5,17.43 10.09,16H13.91C13.5,17.43 12.83,18.76 12,19.96M8,8H5.08C6.03,6.34 7.57,5.06 9.4,4.44C8.8,5.55 8.35,6.75 8,8M5.08,16H8C8.35,17.25 8.8,18.45 9.4,19.56C7.57,18.93 6.03,17.65 5.08,16M4.26,14C4.1,13.36 4,12.69 4,12C4,11.31 4.1,10.64 4.26,10H7.64C7.56,10.66 7.5,11.32 7.5,12C7.5,12.68 7.56,13.34 7.64,14M12,4.03C12.83,5.23 13.5,6.57 13.91,8H10.09C10.5,6.57 11.17,5.23 12,4.03M18.92,8H15.97C15.65,6.75 15.19,5.55 14.59,4.44C16.43,5.07 17.96,6.34 18.92,8M12,2C6.47,2 2,6.5 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z"},se={key:0};function de(c,n,t,k,p,y){return o(),d("span",S(c.$attrs,{"aria-hidden":t.title?null:"true","aria-label":t.title,class:"material-design-icon web-icon",role:"img",onClick:n[0]||(n[0]=g=>c.$emit("click",g))}),[(o(),d("svg",{fill:t.fillColor,class:"material-design-icon__svg",width:t.size,height:t.size,viewBox:"0 0 24 24"},[i("path",ne,[t.title?(o(),d("title",se,r(t.title),1)):M("",!0)])],8,oe))],16,re)}const ce=I(le,[["render",de]]),ue={class:"social-button"},he=["src"],fe=["src"],pe=["src"],ge={style:{margin:"10px 0"}},me=["href"],Ce=j({__name:"PersonalSettings",setup(c){const n=window.OC.theme.productName,t=h("federatedfilesharing","color"),k=h("federatedfilesharing","textColor"),p=h("federatedfilesharing","cloudId"),y=h("federatedfilesharing","docUrlFederated"),g=h("federatedfilesharing","logoPath"),m=h("federatedfilesharing","reference"),D=w("core","facebook"),F=w("core","mastodon"),L=w("core","bluesky"),U=a("federatedfilesharing","Share with me through my #Nextcloud Federated Cloud ID, see {url}",{url:m}),B=a("federatedfilesharing","Share with me through my #Nextcloud Federated Cloud ID"),R=`https://mastodon.social/?text=${encodeURIComponent(B)}&url=${encodeURIComponent(m)}`,A=`https://www.facebook.com/sharer/sharer.php?u=${encodeURIComponent(m)}`,T=`https://bsky.app/intent/compose?text=${encodeURIComponent(U)}`,O=new URL(g,location.origin),v=N(!1),C=N(!1),$=_(()=>`
padding:10px;
background-color:${t};
color:${k};
border-radius:3px;
padding-inline-start:4px;`),H=`background-image:url(${O});width:50px;height:30px;position:relative;top:8px;background-size:contain;display:inline-block;background-repeat:no-repeat; background-position: center center;`,P=_(()=>`<a target="_blank" rel="noreferrer noopener" href="${m}" style="${$.value}">
<span style="${H}"></span>
${a("federatedfilesharing","Share with me via Nextcloud")}
</a>`),Y=_(()=>C.value?a("federatedfilesharing","Cloud ID copied"):a("federatedfilesharing","Copy"));async function Z(){try{await navigator.clipboard.writeText(p),z(a("federatedfilesharing","Cloud ID copied"))}catch{window.prompt(a("federatedfilesharing","Clipboard not available. Please copy the cloud ID manually."),p)}C.value=!0,z(a("federatedfilesharing","Copied!")),setTimeout(()=>{C.value=!1},2e3)}return(ye,u)=>(o(),x(e(q),{name:e(a)("federatedfilesharing","Federated Cloud"),description:e(a)("federatedfilesharing","You can share with anyone who uses a {productName} server or other Open Cloud Mesh (OCM) compatible servers and services! Just put their Federated Cloud ID in the share dialog. It looks like person@cloud.example.com",{productName:e(n)}),"doc-url":e(y)},{default:l(()=>[f(e(G),{class:"federated-cloud__cloud-id",readonly:"",label:e(a)("federatedfilesharing","Your Federated Cloud ID"),"model-value":e(p),success:C.value,"show-trailing-button":"","trailing-button-label":Y.value,onTrailingButtonClick:Z},{"trailing-button-icon":l(()=>[C.value?(o(),x(ie,{key:0,size:20,"fill-color":"var(--color-border-success)"})):(o(),x(K,{key:1,size:20}))]),_:1},8,["label","model-value","success","trailing-button-label"]),i("p",ue,[s(r(e(a)("federatedfilesharing","Share it so your friends can share files with you:")),1),u[1]||(u[1]=i("br",null,null,-1)),f(e(b),{href:T},{icon:l(()=>[i("img",{class:"social-button__icon",src:e(L)},null,8,he)]),default:l(()=>[s(r(e(a)("federatedfilesharing","Bluesky"))+" ",1)]),_:1}),f(e(b),{href:A},{icon:l(()=>[i("img",{class:"social-button__icon social-button__icon--bright",src:e(D)},null,8,fe)]),default:l(()=>[s(r(e(a)("federatedfilesharing","Facebook"))+" ",1)]),_:1}),f(e(b),{href:R},{icon:l(()=>[i("img",{class:"social-button__icon",src:e(F)},null,8,pe)]),default:l(()=>[s(r(e(a)("federatedfilesharing","Mastodon"))+" ",1)]),_:1}),f(e(b),{class:"social-button__website-button",onClick:u[0]||(u[0]=ve=>v.value=!v.value)},{icon:l(()=>[f(ce,{size:20})]),default:l(()=>[s(" "+r(e(a)("federatedfilesharing","Add to your website")),1)]),_:1})]),v.value?(o(),d(J,{key:0},[i("p",ge,[i("a",{target:"_blank",rel:"noreferrer noopener",href:e(m),style:W($.value)},[i("span",{style:H}),s(" "+r(e(a)("federatedfilesharing","Share with me via {productName}",{productName:e(n)})),1)],12,me)]),i("p",null,[s(r(e(a)("federatedfilesharing","HTML Code:"))+" ",1),u[2]||(u[2]=i("br",null,null,-1)),i("pre",null,r(P.value),1)])],64)):M("",!0)]),_:1},8,["name","description","doc-url"]))}}),be=I(Ce,[["__scopeId","data-v-0b473172"]]),ke=E(be);ke.mount("#vue-personal-federated");
//# sourceMappingURL=federatedfilesharing-settings-personal.mjs.map

View file

@ -0,0 +1,12 @@
SPDX-License-Identifier: AGPL-3.0-or-later
SPDX-License-Identifier: MIT
SPDX-FileCopyrightText: Nextcloud GmbH and Nextcloud contributors
SPDX-FileCopyrightText: Rob Cresswell <robcresswell@pm.me>
This file is generated from multiple sources. Included packages:
- nextcloud-ui
- version: 1.0.0
- license: AGPL-3.0-or-later
- vue-material-design-icons
- version: 5.3.1
- license: MIT

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,12 @@
SPDX-License-Identifier: AGPL-3.0-or-later
SPDX-License-Identifier: MIT
SPDX-FileCopyrightText: Nextcloud GmbH and Nextcloud contributors
SPDX-FileCopyrightText: Rob Cresswell <robcresswell@pm.me>
This file is generated from multiple sources. Included packages:
- nextcloud-ui
- version: 1.0.0
- license: AGPL-3.0-or-later
- vue-material-design-icons
- version: 5.3.1
- license: MIT

File diff suppressed because one or more lines are too long

View file

@ -1,702 +0,0 @@
SPDX-License-Identifier: MIT
SPDX-License-Identifier: ISC
SPDX-License-Identifier: GPL-3.0-or-later
SPDX-License-Identifier: BSD-3-Clause
SPDX-License-Identifier: AGPL-3.0-or-later
SPDX-License-Identifier: (MPL-2.0 OR Apache-2.0)
SPDX-License-Identifier: (MIT AND BSD-3-Clause)
SPDX-FileCopyrightText: string_decoder developers
SPDX-FileCopyrightText: ripemd160 developers
SPDX-FileCopyrightText: rhysd <lin90162@yahoo.co.jp>
SPDX-FileCopyrightText: readable-stream developers
SPDX-FileCopyrightText: p-queue developers
SPDX-FileCopyrightText: omahlama
SPDX-FileCopyrightText: inline-style-parser developers
SPDX-FileCopyrightText: inherits developers
SPDX-FileCopyrightText: escape-html developers
SPDX-FileCopyrightText: debounce developers
SPDX-FileCopyrightText: date-fns developers
SPDX-FileCopyrightText: chenkai
SPDX-FileCopyrightText: browserify-sign developers
SPDX-FileCopyrightText: browserify-rsa developers
SPDX-FileCopyrightText: atomiks
SPDX-FileCopyrightText: Varun A P
SPDX-FileCopyrightText: Tobias Koppers @sokra
SPDX-FileCopyrightText: Titus Wormer <tituswormer@gmail.com> (https://wooorm.com)
SPDX-FileCopyrightText: T. Jameson Little <t.jameson.little@gmail.com>
SPDX-FileCopyrightText: Stefan Thomas <justmoon@members.fsf.org> (http://www.justmoon.net)
SPDX-FileCopyrightText: Sindre Sorhus
SPDX-FileCopyrightText: Shuhei Kagawa
SPDX-FileCopyrightText: Scott Cooper <scttcper@gmail.com>
SPDX-FileCopyrightText: Roman Shtylman <shtylman@gmail.com>
SPDX-FileCopyrightText: Raynos <raynos2@gmail.com>
SPDX-FileCopyrightText: OpenJS Foundation and other contributors
SPDX-FileCopyrightText: Nick Frasser (https://nfrasser.com)
SPDX-FileCopyrightText: Nextcloud GmbH and Nextcloud contributors
SPDX-FileCopyrightText: Nathan Rajlich <nathan@tootallnate.net> (http://n8.io/)
SPDX-FileCopyrightText: Max <max@nextcloud.com>
SPDX-FileCopyrightText: Matt Zabriskie
SPDX-FileCopyrightText: Mathias Buus (@mafintosh)
SPDX-FileCopyrightText: Mark <mark@remarkablemark.org>
SPDX-FileCopyrightText: Kirill Fomichev <fanatid@ya.ru> (https://github.com/fanatid)
SPDX-FileCopyrightText: Julian Gruber
SPDX-FileCopyrightText: Jordan Humphreys <jordan@zurb.com>
SPDX-FileCopyrightText: Jordan Harband <ljharb@gmail.com>
SPDX-FileCopyrightText: Jordan Harband
SPDX-FileCopyrightText: Jeff Sagal <sagalbot@gmail.com>
SPDX-FileCopyrightText: James Halliday
SPDX-FileCopyrightText: Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me/)
SPDX-FileCopyrightText: Irakli Gozalishvili <rfobic@gmail.com> (http://jeditoolkit.com)
SPDX-FileCopyrightText: Guillaume Chau
SPDX-FileCopyrightText: GitHub Inc.
SPDX-FileCopyrightText: Feross Aboukhadijeh
SPDX-FileCopyrightText: Fedor Indutny <fedor@indutny.com>
SPDX-FileCopyrightText: Fedor Indutny
SPDX-FileCopyrightText: Evan You
SPDX-FileCopyrightText: Eugene Sharygin <eush77@gmail.com>
SPDX-FileCopyrightText: Eric Norris (https://github.com/ericnorris)
SPDX-FileCopyrightText: Eduardo San Martin Morote
SPDX-FileCopyrightText: Dr.-Ing. Mario Heiderich, Cure53 <mario@cure53.de> (https://cure53.de/)
SPDX-FileCopyrightText: Dominic Tarr <dominic.tarr@gmail.com> (dominictarr.com)
SPDX-FileCopyrightText: David Clark
SPDX-FileCopyrightText: Daniel Cousens
SPDX-FileCopyrightText: Christoph Wurst
SPDX-FileCopyrightText: Calvin Metcalf <calvin.metcalf@gmail.com>
SPDX-FileCopyrightText: Calvin Metcalf
SPDX-FileCopyrightText: Borys Serebrov
SPDX-FileCopyrightText: Arnout Kazemier
SPDX-FileCopyrightText: Antoni Andre <antoniandre.web@gmail.com>
SPDX-FileCopyrightText: Anthony Fu <https://github.com/antfu>
SPDX-FileCopyrightText: Andrea Giammarchi
SPDX-FileCopyrightText: @nextcloud/dialogs developers
SPDX-FileCopyrightText:
This file is generated from multiple sources. Included packages:
- @ctrl/tinycolor
- version: 3.6.1
- license: MIT
- @floating-ui/core
- version: 1.7.3
- license: MIT
- @floating-ui/dom
- version: 1.7.4
- license: MIT
- @floating-ui/utils
- version: 0.2.10
- license: MIT
- @nextcloud/auth
- version: 2.5.3
- license: GPL-3.0-or-later
- @nextcloud/axios
- version: 2.5.2
- license: GPL-3.0-or-later
- @nextcloud/browser-storage
- version: 0.5.0
- license: GPL-3.0-or-later
- @nextcloud/capabilities
- version: 1.2.1
- license: GPL-3.0-or-later
- @ckpack/vue-color
- version: 1.6.0
- license: MIT
- @nextcloud/browser-storage
- version: 0.4.0
- license: GPL-3.0-or-later
- @nextcloud/vue
- version: 9.0.1
- license: AGPL-3.0-or-later
- @vueuse/core
- version: 13.9.0
- license: MIT
- @vueuse/shared
- version: 13.9.0
- license: MIT
- debounce
- version: 2.2.0
- license: MIT
- rehype-react
- version: 8.0.0
- license: MIT
- splitpanes
- version: 4.0.4
- license: MIT
- vue-router
- version: 4.6.3
- license: MIT
- vue-select
- version: 4.0.0-beta.6
- license: MIT
- vue
- version: 3.5.22
- license: MIT
- @nextcloud/dialogs
- version: 7.1.0
- license: AGPL-3.0-or-later
- semver
- version: 7.7.2
- license: ISC
- @nextcloud/event-bus
- version: 3.3.3
- license: GPL-3.0-or-later
- @nextcloud/initial-state
- version: 3.0.0
- license: GPL-3.0-or-later
- @nextcloud/l10n
- version: 3.4.1
- license: GPL-3.0-or-later
- @nextcloud/logger
- version: 3.0.3
- license: GPL-3.0-or-later
- @nextcloud/vue
- version: 9.2.0
- license: AGPL-3.0-or-later
- @vue/reactivity
- version: 3.5.24
- license: MIT
- @vue/runtime-core
- version: 3.5.24
- license: MIT
- @vue/runtime-dom
- version: 3.5.24
- license: MIT
- @vue/shared
- version: 3.5.24
- license: MIT
- vue-router
- version: 4.6.3
- license: MIT
- vue
- version: 3.5.24
- license: MIT
- @nextcloud/password-confirmation
- version: 6.0.2
- license: MIT
- @nextcloud/paths
- version: 2.3.0
- license: GPL-3.0-or-later
- @nextcloud/router
- version: 3.1.0
- license: GPL-3.0-or-later
- @nextcloud/sharing
- version: 0.3.0
- license: GPL-3.0-or-later
- @nextcloud/initial-state
- version: 2.2.0
- license: GPL-3.0-or-later
- @nextcloud/vue
- version: 8.35.0
- license: AGPL-3.0-or-later
- @ungap/structured-clone
- version: 1.3.0
- license: ISC
- @vue/devtools-api
- version: 6.6.4
- license: MIT
- @vue/reactivity
- version: 3.5.22
- license: MIT
- @vue/runtime-core
- version: 3.5.22
- license: MIT
- @vue/runtime-dom
- version: 3.5.22
- license: MIT
- @vue/shared
- version: 3.5.22
- license: MIT
- bn.js
- version: 4.12.2
- license: MIT
- asn1.js
- version: 4.10.1
- license: MIT
- available-typed-arrays
- version: 1.0.7
- license: MIT
- axios
- version: 1.12.2
- license: MIT
- base64-js
- version: 1.5.1
- license: MIT
- blurhash
- version: 2.0.5
- license: MIT
- bn.js
- version: 5.2.2
- license: MIT
- brorand
- version: 1.1.0
- license: MIT
- browserify-aes
- version: 1.2.0
- license: MIT
- browserify-cipher
- version: 1.0.1
- license: MIT
- browserify-des
- version: 1.0.2
- license: MIT
- browserify-rsa
- version: 4.1.1
- license: MIT
- browserify-sign
- version: 4.2.5
- license: ISC
- buffer-xor
- version: 1.0.3
- license: MIT
- buffer
- version: 5.7.1
- license: MIT
- call-bind-apply-helpers
- version: 1.0.2
- license: MIT
- call-bind
- version: 1.0.8
- license: MIT
- call-bound
- version: 1.0.4
- license: MIT
- cipher-base
- version: 1.0.7
- license: MIT
- comma-separated-tokens
- version: 2.0.3
- license: MIT
- core-util-is
- version: 1.0.3
- license: MIT
- bn.js
- version: 4.12.2
- license: MIT
- create-ecdh
- version: 4.0.4
- license: MIT
- create-hash
- version: 1.2.0
- license: MIT
- create-hmac
- version: 1.1.7
- license: MIT
- crypto-browserify
- version: 3.12.1
- license: MIT
- css-loader
- version: 7.1.2
- license: MIT
- date-fns
- version: 4.1.0
- license: MIT
- debounce
- version: 3.0.0
- license: MIT
- decode-named-character-reference
- version: 1.2.0
- license: MIT
- define-data-property
- version: 1.1.4
- license: MIT
- des.js
- version: 1.1.0
- license: MIT
- devlop
- version: 1.1.0
- license: MIT
- bn.js
- version: 4.12.2
- license: MIT
- diffie-hellman
- version: 5.0.3
- license: MIT
- dompurify
- version: 3.3.0
- license: (MPL-2.0 OR Apache-2.0)
- dunder-proto
- version: 1.0.1
- license: MIT
- bn.js
- version: 4.12.2
- license: MIT
- elliptic
- version: 6.6.1
- license: MIT
- emoji-mart-vue-fast
- version: 15.0.5
- license: BSD-3-Clause
- es-define-property
- version: 1.0.1
- license: MIT
- es-errors
- version: 1.3.0
- license: MIT
- es-object-atoms
- version: 1.1.1
- license: MIT
- escape-html
- version: 1.0.3
- license: MIT
- estree-util-is-identifier-name
- version: 3.0.0
- license: MIT
- events
- version: 3.3.0
- license: MIT
- evp_bytestokey
- version: 1.0.3
- license: MIT
- extend
- version: 3.0.2
- license: MIT
- focus-trap
- version: 7.6.6
- license: MIT
- for-each
- version: 0.3.5
- license: MIT
- function-bind
- version: 1.1.2
- license: MIT
- get-intrinsic
- version: 1.3.0
- license: MIT
- get-proto
- version: 1.0.1
- license: MIT
- gopd
- version: 1.2.0
- license: MIT
- has-property-descriptors
- version: 1.0.2
- license: MIT
- has-symbols
- version: 1.1.0
- license: MIT
- has-tostringtag
- version: 1.0.2
- license: MIT
- hash-base
- version: 3.0.5
- license: MIT
- hash.js
- version: 1.1.7
- license: MIT
- hasown
- version: 2.0.2
- license: MIT
- hast-util-is-element
- version: 3.0.0
- license: MIT
- hast-util-whitespace
- version: 3.0.0
- license: MIT
- property-information
- version: 7.1.0
- license: MIT
- hast-util-to-jsx-runtime
- version: 2.3.6
- license: MIT
- hmac-drbg
- version: 1.0.1
- license: MIT
- ieee754
- version: 1.2.1
- license: BSD-3-Clause
- inherits
- version: 2.0.4
- license: ISC
- is-absolute-url
- version: 4.0.1
- license: MIT
- is-callable
- version: 1.2.7
- license: MIT
- is-typed-array
- version: 1.1.15
- license: MIT
- isarray
- version: 1.0.0
- license: MIT
- jquery
- version: 3.7.1
- license: MIT
- linkifyjs
- version: 4.3.2
- license: MIT
- material-colors
- version: 1.2.6
- license: ISC
- math-intrinsics
- version: 1.1.0
- license: MIT
- md5.js
- version: 1.3.5
- license: MIT
- mdast-squeeze-paragraphs
- version: 6.0.0
- license: MIT
- escape-string-regexp
- version: 5.0.0
- license: MIT
- mdast-util-find-and-replace
- version: 3.0.2
- license: MIT
- mdast-util-from-markdown
- version: 2.0.2
- license: MIT
- mdast-util-newline-to-break
- version: 2.0.0
- license: MIT
- mdast-util-to-hast
- version: 13.2.1
- license: MIT
- mdast-util-to-string
- version: 4.0.0
- license: MIT
- micromark-core-commonmark
- version: 2.0.3
- license: MIT
- micromark-factory-destination
- version: 2.0.1
- license: MIT
- micromark-factory-label
- version: 2.0.1
- license: MIT
- micromark-factory-space
- version: 2.0.1
- license: MIT
- micromark-factory-title
- version: 2.0.1
- license: MIT
- micromark-factory-whitespace
- version: 2.0.1
- license: MIT
- micromark-util-character
- version: 2.1.1
- license: MIT
- micromark-util-chunked
- version: 2.0.1
- license: MIT
- micromark-util-classify-character
- version: 2.0.1
- license: MIT
- micromark-util-combine-extensions
- version: 2.0.1
- license: MIT
- micromark-util-decode-numeric-character-reference
- version: 2.0.2
- license: MIT
- micromark-util-decode-string
- version: 2.0.1
- license: MIT
- micromark-util-encode
- version: 2.0.1
- license: MIT
- micromark-util-html-tag-name
- version: 2.0.1
- license: MIT
- micromark-util-normalize-identifier
- version: 2.0.1
- license: MIT
- micromark-util-resolve-all
- version: 2.0.1
- license: MIT
- micromark-util-sanitize-uri
- version: 2.0.1
- license: MIT
- micromark-util-subtokenize
- version: 2.1.0
- license: MIT
- micromark
- version: 4.0.2
- license: MIT
- bn.js
- version: 4.12.2
- license: MIT
- miller-rabin
- version: 4.0.1
- license: MIT
- minimalistic-assert
- version: 1.0.1
- license: ISC
- minimalistic-crypto-utils
- version: 1.0.1
- license: MIT
- buffer
- version: 6.0.3
- license: MIT
- eventemitter3
- version: 5.0.1
- license: MIT
- p-queue
- version: 9.0.1
- license: MIT
- p-timeout
- version: 7.0.1
- license: MIT
- parse-asn1
- version: 5.1.9
- license: ISC
- pbkdf2
- version: 3.1.5
- license: MIT
- possible-typed-array-names
- version: 1.1.0
- license: MIT
- process-nextick-args
- version: 2.0.1
- license: MIT
- process
- version: 0.11.10
- license: MIT
- bn.js
- version: 4.12.2
- license: MIT
- public-encrypt
- version: 4.0.3
- license: MIT
- randombytes
- version: 2.1.0
- license: MIT
- randomfill
- version: 1.0.4
- license: MIT
- safe-buffer
- version: 5.1.2
- license: MIT
- string_decoder
- version: 1.1.1
- license: MIT
- readable-stream
- version: 2.3.8
- license: MIT
- rehype-external-links
- version: 3.0.0
- license: MIT
- remark-breaks
- version: 4.0.0
- license: MIT
- remark-parse
- version: 11.0.0
- license: MIT
- remark-rehype
- version: 11.1.2
- license: MIT
- remark-unlink-protocols
- version: 1.0.0
- license: MIT
- hash-base
- version: 3.1.2
- license: MIT
- ripemd160
- version: 2.0.3
- license: MIT
- safe-buffer
- version: 5.2.1
- license: MIT
- set-function-length
- version: 1.2.2
- license: MIT
- sha.js
- version: 2.4.12
- license: (MIT AND BSD-3-Clause)
- space-separated-tokens
- version: 2.0.2
- license: MIT
- readable-stream
- version: 3.6.2
- license: MIT
- stream-browserify
- version: 3.0.0
- license: MIT
- string_decoder
- version: 1.3.0
- license: MIT
- striptags
- version: 3.2.0
- license: MIT
- style-loader
- version: 4.0.0
- license: MIT
- inline-style-parser
- version: 0.2.4
- license: MIT
- style-to-object
- version: 1.0.11
- license: MIT
- style-to-js
- version: 1.1.18
- license: MIT
- tabbable
- version: 6.3.0
- license: MIT
- isarray
- version: 2.0.5
- license: MIT
- to-buffer
- version: 1.2.2
- license: MIT
- toastify-js
- version: 1.12.0
- license: MIT
- tributejs
- version: 5.1.3
- license: MIT
- trim-lines
- version: 3.0.1
- license: MIT
- trough
- version: 2.2.0
- license: MIT
- typed-array-buffer
- version: 1.0.3
- license: MIT
- unified
- version: 11.0.5
- license: MIT
- unist-builder
- version: 4.0.0
- license: MIT
- unist-util-is
- version: 6.0.0
- license: MIT
- unist-util-position
- version: 5.0.0
- license: MIT
- unist-util-stringify-position
- version: 4.0.0
- license: MIT
- unist-util-visit-parents
- version: 6.0.1
- license: MIT
- unist-util-visit
- version: 5.0.0
- license: MIT
- util-deprecate
- version: 1.0.2
- license: MIT
- vfile-message
- version: 4.0.3
- license: MIT
- vfile
- version: 6.0.3
- license: MIT
- vm-browserify
- version: 1.1.2
- license: MIT
- vue-loader
- version: 15.11.1
- license: MIT
- vue
- version: 2.7.16
- license: MIT
- webpack
- version: 5.103.0
- license: MIT
- which-typed-array
- version: 1.1.19
- license: MIT
- nextcloud
- version: 1.0.0
- license: AGPL-3.0-or-later

File diff suppressed because one or more lines are too long

View file

@ -1 +0,0 @@
federatedfilesharing-vue-settings-admin.js.license

File diff suppressed because one or more lines are too long

View file

@ -1,679 +0,0 @@
SPDX-License-Identifier: MIT
SPDX-License-Identifier: ISC
SPDX-License-Identifier: GPL-3.0-or-later
SPDX-License-Identifier: BSD-3-Clause
SPDX-License-Identifier: AGPL-3.0-or-later
SPDX-License-Identifier: (MPL-2.0 OR Apache-2.0)
SPDX-License-Identifier: (MIT AND BSD-3-Clause)
SPDX-FileCopyrightText: string_decoder developers
SPDX-FileCopyrightText: ripemd160 developers
SPDX-FileCopyrightText: rhysd <lin90162@yahoo.co.jp>
SPDX-FileCopyrightText: readable-stream developers
SPDX-FileCopyrightText: p-queue developers
SPDX-FileCopyrightText: omahlama
SPDX-FileCopyrightText: inline-style-parser developers
SPDX-FileCopyrightText: inherits developers
SPDX-FileCopyrightText: escape-html developers
SPDX-FileCopyrightText: debounce developers
SPDX-FileCopyrightText: date-fns developers
SPDX-FileCopyrightText: chenkai
SPDX-FileCopyrightText: browserify-sign developers
SPDX-FileCopyrightText: browserify-rsa developers
SPDX-FileCopyrightText: atomiks
SPDX-FileCopyrightText: Varun A P
SPDX-FileCopyrightText: Tobias Koppers @sokra
SPDX-FileCopyrightText: Titus Wormer <tituswormer@gmail.com> (https://wooorm.com)
SPDX-FileCopyrightText: T. Jameson Little <t.jameson.little@gmail.com>
SPDX-FileCopyrightText: Stefan Thomas <justmoon@members.fsf.org> (http://www.justmoon.net)
SPDX-FileCopyrightText: Sindre Sorhus
SPDX-FileCopyrightText: Shuhei Kagawa
SPDX-FileCopyrightText: Scott Cooper <scttcper@gmail.com>
SPDX-FileCopyrightText: Roman Shtylman <shtylman@gmail.com>
SPDX-FileCopyrightText: Rob Cresswell <robcresswell@pm.me>
SPDX-FileCopyrightText: Raynos <raynos2@gmail.com>
SPDX-FileCopyrightText: OpenJS Foundation and other contributors
SPDX-FileCopyrightText: Nick Frasser (https://nfrasser.com)
SPDX-FileCopyrightText: Nextcloud GmbH and Nextcloud contributors
SPDX-FileCopyrightText: Nathan Rajlich <nathan@tootallnate.net> (http://n8.io/)
SPDX-FileCopyrightText: Max <max@nextcloud.com>
SPDX-FileCopyrightText: Matt Zabriskie
SPDX-FileCopyrightText: Mathias Buus (@mafintosh)
SPDX-FileCopyrightText: Mark <mark@remarkablemark.org>
SPDX-FileCopyrightText: Kirill Fomichev <fanatid@ya.ru> (https://github.com/fanatid)
SPDX-FileCopyrightText: Julian Gruber
SPDX-FileCopyrightText: Jordan Humphreys <jordan@zurb.com>
SPDX-FileCopyrightText: Jordan Harband <ljharb@gmail.com>
SPDX-FileCopyrightText: Jordan Harband
SPDX-FileCopyrightText: Jeff Sagal <sagalbot@gmail.com>
SPDX-FileCopyrightText: James Halliday
SPDX-FileCopyrightText: Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me/)
SPDX-FileCopyrightText: Irakli Gozalishvili <rfobic@gmail.com> (http://jeditoolkit.com)
SPDX-FileCopyrightText: Guillaume Chau
SPDX-FileCopyrightText: GitHub Inc.
SPDX-FileCopyrightText: Feross Aboukhadijeh
SPDX-FileCopyrightText: Fedor Indutny <fedor@indutny.com>
SPDX-FileCopyrightText: Fedor Indutny
SPDX-FileCopyrightText: Evan You
SPDX-FileCopyrightText: Eugene Sharygin <eush77@gmail.com>
SPDX-FileCopyrightText: Eric Norris (https://github.com/ericnorris)
SPDX-FileCopyrightText: Eduardo San Martin Morote
SPDX-FileCopyrightText: Dr.-Ing. Mario Heiderich, Cure53 <mario@cure53.de> (https://cure53.de/)
SPDX-FileCopyrightText: Dominic Tarr <dominic.tarr@gmail.com> (dominictarr.com)
SPDX-FileCopyrightText: David Clark
SPDX-FileCopyrightText: Daniel Cousens
SPDX-FileCopyrightText: Christoph Wurst
SPDX-FileCopyrightText: Calvin Metcalf <calvin.metcalf@gmail.com>
SPDX-FileCopyrightText: Calvin Metcalf
SPDX-FileCopyrightText: Borys Serebrov
SPDX-FileCopyrightText: Arnout Kazemier
SPDX-FileCopyrightText: Antoni Andre <antoniandre.web@gmail.com>
SPDX-FileCopyrightText: Anthony Fu <https://github.com/antfu>
SPDX-FileCopyrightText: Andrea Giammarchi
SPDX-FileCopyrightText: @nextcloud/dialogs developers
SPDX-FileCopyrightText:
This file is generated from multiple sources. Included packages:
- @ctrl/tinycolor
- version: 3.6.1
- license: MIT
- @floating-ui/core
- version: 1.7.3
- license: MIT
- @floating-ui/dom
- version: 1.7.4
- license: MIT
- @floating-ui/utils
- version: 0.2.10
- license: MIT
- @nextcloud/auth
- version: 2.5.3
- license: GPL-3.0-or-later
- @nextcloud/axios
- version: 2.5.2
- license: GPL-3.0-or-later
- @nextcloud/browser-storage
- version: 0.5.0
- license: GPL-3.0-or-later
- @nextcloud/capabilities
- version: 1.2.1
- license: GPL-3.0-or-later
- @ckpack/vue-color
- version: 1.6.0
- license: MIT
- @nextcloud/browser-storage
- version: 0.4.0
- license: GPL-3.0-or-later
- @nextcloud/vue
- version: 9.0.1
- license: AGPL-3.0-or-later
- @vueuse/core
- version: 13.9.0
- license: MIT
- @vueuse/shared
- version: 13.9.0
- license: MIT
- debounce
- version: 2.2.0
- license: MIT
- rehype-react
- version: 8.0.0
- license: MIT
- splitpanes
- version: 4.0.4
- license: MIT
- vue-router
- version: 4.6.3
- license: MIT
- vue-select
- version: 4.0.0-beta.6
- license: MIT
- vue
- version: 3.5.22
- license: MIT
- @nextcloud/dialogs
- version: 7.1.0
- license: AGPL-3.0-or-later
- semver
- version: 7.7.2
- license: ISC
- @nextcloud/event-bus
- version: 3.3.3
- license: GPL-3.0-or-later
- @nextcloud/initial-state
- version: 3.0.0
- license: GPL-3.0-or-later
- @nextcloud/l10n
- version: 3.4.1
- license: GPL-3.0-or-later
- @nextcloud/logger
- version: 3.0.3
- license: GPL-3.0-or-later
- @nextcloud/paths
- version: 2.3.0
- license: GPL-3.0-or-later
- @nextcloud/router
- version: 3.1.0
- license: GPL-3.0-or-later
- @nextcloud/sharing
- version: 0.3.0
- license: GPL-3.0-or-later
- @nextcloud/initial-state
- version: 2.2.0
- license: GPL-3.0-or-later
- @nextcloud/vue
- version: 8.35.0
- license: AGPL-3.0-or-later
- @ungap/structured-clone
- version: 1.3.0
- license: ISC
- @vue/devtools-api
- version: 6.6.4
- license: MIT
- @vue/reactivity
- version: 3.5.22
- license: MIT
- @vue/runtime-core
- version: 3.5.22
- license: MIT
- @vue/runtime-dom
- version: 3.5.22
- license: MIT
- @vue/shared
- version: 3.5.22
- license: MIT
- bn.js
- version: 4.12.2
- license: MIT
- asn1.js
- version: 4.10.1
- license: MIT
- available-typed-arrays
- version: 1.0.7
- license: MIT
- axios
- version: 1.12.2
- license: MIT
- base64-js
- version: 1.5.1
- license: MIT
- blurhash
- version: 2.0.5
- license: MIT
- bn.js
- version: 5.2.2
- license: MIT
- brorand
- version: 1.1.0
- license: MIT
- browserify-aes
- version: 1.2.0
- license: MIT
- browserify-cipher
- version: 1.0.1
- license: MIT
- browserify-des
- version: 1.0.2
- license: MIT
- browserify-rsa
- version: 4.1.1
- license: MIT
- browserify-sign
- version: 4.2.5
- license: ISC
- buffer-xor
- version: 1.0.3
- license: MIT
- buffer
- version: 5.7.1
- license: MIT
- call-bind-apply-helpers
- version: 1.0.2
- license: MIT
- call-bind
- version: 1.0.8
- license: MIT
- call-bound
- version: 1.0.4
- license: MIT
- cipher-base
- version: 1.0.7
- license: MIT
- comma-separated-tokens
- version: 2.0.3
- license: MIT
- core-util-is
- version: 1.0.3
- license: MIT
- bn.js
- version: 4.12.2
- license: MIT
- create-ecdh
- version: 4.0.4
- license: MIT
- create-hash
- version: 1.2.0
- license: MIT
- create-hmac
- version: 1.1.7
- license: MIT
- crypto-browserify
- version: 3.12.1
- license: MIT
- css-loader
- version: 7.1.2
- license: MIT
- date-fns
- version: 4.1.0
- license: MIT
- decode-named-character-reference
- version: 1.2.0
- license: MIT
- define-data-property
- version: 1.1.4
- license: MIT
- des.js
- version: 1.1.0
- license: MIT
- devlop
- version: 1.1.0
- license: MIT
- bn.js
- version: 4.12.2
- license: MIT
- diffie-hellman
- version: 5.0.3
- license: MIT
- dompurify
- version: 3.3.0
- license: (MPL-2.0 OR Apache-2.0)
- dunder-proto
- version: 1.0.1
- license: MIT
- bn.js
- version: 4.12.2
- license: MIT
- elliptic
- version: 6.6.1
- license: MIT
- emoji-mart-vue-fast
- version: 15.0.5
- license: BSD-3-Clause
- es-define-property
- version: 1.0.1
- license: MIT
- es-errors
- version: 1.3.0
- license: MIT
- es-object-atoms
- version: 1.1.1
- license: MIT
- escape-html
- version: 1.0.3
- license: MIT
- estree-util-is-identifier-name
- version: 3.0.0
- license: MIT
- events
- version: 3.3.0
- license: MIT
- evp_bytestokey
- version: 1.0.3
- license: MIT
- extend
- version: 3.0.2
- license: MIT
- focus-trap
- version: 7.6.6
- license: MIT
- for-each
- version: 0.3.5
- license: MIT
- function-bind
- version: 1.1.2
- license: MIT
- get-intrinsic
- version: 1.3.0
- license: MIT
- get-proto
- version: 1.0.1
- license: MIT
- gopd
- version: 1.2.0
- license: MIT
- has-property-descriptors
- version: 1.0.2
- license: MIT
- has-symbols
- version: 1.1.0
- license: MIT
- has-tostringtag
- version: 1.0.2
- license: MIT
- hash-base
- version: 3.0.5
- license: MIT
- hash.js
- version: 1.1.7
- license: MIT
- hasown
- version: 2.0.2
- license: MIT
- hast-util-is-element
- version: 3.0.0
- license: MIT
- hast-util-whitespace
- version: 3.0.0
- license: MIT
- property-information
- version: 7.1.0
- license: MIT
- hast-util-to-jsx-runtime
- version: 2.3.6
- license: MIT
- hmac-drbg
- version: 1.0.1
- license: MIT
- ieee754
- version: 1.2.1
- license: BSD-3-Clause
- inherits
- version: 2.0.4
- license: ISC
- is-absolute-url
- version: 4.0.1
- license: MIT
- is-callable
- version: 1.2.7
- license: MIT
- is-typed-array
- version: 1.1.15
- license: MIT
- isarray
- version: 1.0.0
- license: MIT
- jquery
- version: 3.7.1
- license: MIT
- linkifyjs
- version: 4.3.2
- license: MIT
- material-colors
- version: 1.2.6
- license: ISC
- math-intrinsics
- version: 1.1.0
- license: MIT
- md5.js
- version: 1.3.5
- license: MIT
- mdast-squeeze-paragraphs
- version: 6.0.0
- license: MIT
- escape-string-regexp
- version: 5.0.0
- license: MIT
- mdast-util-find-and-replace
- version: 3.0.2
- license: MIT
- mdast-util-from-markdown
- version: 2.0.2
- license: MIT
- mdast-util-newline-to-break
- version: 2.0.0
- license: MIT
- mdast-util-to-hast
- version: 13.2.1
- license: MIT
- mdast-util-to-string
- version: 4.0.0
- license: MIT
- micromark-core-commonmark
- version: 2.0.3
- license: MIT
- micromark-factory-destination
- version: 2.0.1
- license: MIT
- micromark-factory-label
- version: 2.0.1
- license: MIT
- micromark-factory-space
- version: 2.0.1
- license: MIT
- micromark-factory-title
- version: 2.0.1
- license: MIT
- micromark-factory-whitespace
- version: 2.0.1
- license: MIT
- micromark-util-character
- version: 2.1.1
- license: MIT
- micromark-util-chunked
- version: 2.0.1
- license: MIT
- micromark-util-classify-character
- version: 2.0.1
- license: MIT
- micromark-util-combine-extensions
- version: 2.0.1
- license: MIT
- micromark-util-decode-numeric-character-reference
- version: 2.0.2
- license: MIT
- micromark-util-decode-string
- version: 2.0.1
- license: MIT
- micromark-util-encode
- version: 2.0.1
- license: MIT
- micromark-util-html-tag-name
- version: 2.0.1
- license: MIT
- micromark-util-normalize-identifier
- version: 2.0.1
- license: MIT
- micromark-util-resolve-all
- version: 2.0.1
- license: MIT
- micromark-util-sanitize-uri
- version: 2.0.1
- license: MIT
- micromark-util-subtokenize
- version: 2.1.0
- license: MIT
- micromark
- version: 4.0.2
- license: MIT
- bn.js
- version: 4.12.2
- license: MIT
- miller-rabin
- version: 4.0.1
- license: MIT
- minimalistic-assert
- version: 1.0.1
- license: ISC
- minimalistic-crypto-utils
- version: 1.0.1
- license: MIT
- buffer
- version: 6.0.3
- license: MIT
- eventemitter3
- version: 5.0.1
- license: MIT
- p-queue
- version: 9.0.1
- license: MIT
- p-timeout
- version: 7.0.1
- license: MIT
- parse-asn1
- version: 5.1.9
- license: ISC
- pbkdf2
- version: 3.1.5
- license: MIT
- possible-typed-array-names
- version: 1.1.0
- license: MIT
- process-nextick-args
- version: 2.0.1
- license: MIT
- process
- version: 0.11.10
- license: MIT
- bn.js
- version: 4.12.2
- license: MIT
- public-encrypt
- version: 4.0.3
- license: MIT
- randombytes
- version: 2.1.0
- license: MIT
- randomfill
- version: 1.0.4
- license: MIT
- safe-buffer
- version: 5.1.2
- license: MIT
- string_decoder
- version: 1.1.1
- license: MIT
- readable-stream
- version: 2.3.8
- license: MIT
- rehype-external-links
- version: 3.0.0
- license: MIT
- remark-breaks
- version: 4.0.0
- license: MIT
- remark-parse
- version: 11.0.0
- license: MIT
- remark-rehype
- version: 11.1.2
- license: MIT
- remark-unlink-protocols
- version: 1.0.0
- license: MIT
- hash-base
- version: 3.1.2
- license: MIT
- ripemd160
- version: 2.0.3
- license: MIT
- safe-buffer
- version: 5.2.1
- license: MIT
- set-function-length
- version: 1.2.2
- license: MIT
- sha.js
- version: 2.4.12
- license: (MIT AND BSD-3-Clause)
- space-separated-tokens
- version: 2.0.2
- license: MIT
- readable-stream
- version: 3.6.2
- license: MIT
- stream-browserify
- version: 3.0.0
- license: MIT
- string_decoder
- version: 1.3.0
- license: MIT
- striptags
- version: 3.2.0
- license: MIT
- style-loader
- version: 4.0.0
- license: MIT
- inline-style-parser
- version: 0.2.4
- license: MIT
- style-to-object
- version: 1.0.11
- license: MIT
- style-to-js
- version: 1.1.18
- license: MIT
- tabbable
- version: 6.3.0
- license: MIT
- isarray
- version: 2.0.5
- license: MIT
- to-buffer
- version: 1.2.2
- license: MIT
- toastify-js
- version: 1.12.0
- license: MIT
- tributejs
- version: 5.1.3
- license: MIT
- trim-lines
- version: 3.0.1
- license: MIT
- trough
- version: 2.2.0
- license: MIT
- typed-array-buffer
- version: 1.0.3
- license: MIT
- unified
- version: 11.0.5
- license: MIT
- unist-builder
- version: 4.0.0
- license: MIT
- unist-util-is
- version: 6.0.0
- license: MIT
- unist-util-position
- version: 5.0.0
- license: MIT
- unist-util-stringify-position
- version: 4.0.0
- license: MIT
- unist-util-visit-parents
- version: 6.0.1
- license: MIT
- unist-util-visit
- version: 5.0.0
- license: MIT
- util-deprecate
- version: 1.0.2
- license: MIT
- vfile-message
- version: 4.0.3
- license: MIT
- vfile
- version: 6.0.3
- license: MIT
- vm-browserify
- version: 1.1.2
- license: MIT
- vue-loader
- version: 15.11.1
- license: MIT
- vue-material-design-icons
- version: 5.3.1
- license: MIT
- vue
- version: 2.7.16
- license: MIT
- webpack
- version: 5.103.0
- license: MIT
- which-typed-array
- version: 1.1.19
- license: MIT
- nextcloud
- version: 1.0.0
- license: AGPL-3.0-or-later

File diff suppressed because one or more lines are too long

View file

@ -1 +0,0 @@
federatedfilesharing-vue-settings-personal.js.license

View file

@ -1,4 +1,4 @@
/* extracted by css-entry-points-plugin */
@import './files_reminders-files_reminders-init-DFVBcfn7.chunk.css';
@import './TrashCanOutline-BE4hS1RR.chunk.css';
@import './Plus-Dywt349j.chunk.css';
@import './ContentCopy-Dywt349j.chunk.css';

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,4 +1,4 @@
/* extracted by css-entry-points-plugin */
@import './files_trashbin-files_trashbin-init-nOmQ7X71.chunk.css';
@import './TrashCanOutline-BE4hS1RR.chunk.css';
@import './Plus-Dywt349j.chunk.css';
@import './ContentCopy-Dywt349j.chunk.css';

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,4 +1,4 @@
/* extracted by css-entry-points-plugin */
@import './files_versions-files_versions-sidebar-tab-DbvfeGRa.chunk.css';
@import './TrashCanOutline-BE4hS1RR.chunk.css';
@import './Plus-Dywt349j.chunk.css';
@import './ContentCopy-Dywt349j.chunk.css';

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

10
dist/index-CAI2cmWt.chunk.mjs vendored Normal file

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show more