mirror of
https://github.com/nextcloud/server.git
synced 2026-04-26 16:48:59 -04:00
Merge pull request #57129 from nextcloud/backport/55726/stable32
Some checks are pending
CodeQL Advanced / Analyze (actions) (push) Waiting to run
CodeQL Advanced / Analyze (javascript-typescript) (push) Waiting to run
Integration sqlite / changes (push) Waiting to run
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, --tags ~@large files_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, capabilities_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, collaboration_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, comments_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, dav_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, federation_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, file_conversions) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, files_reminders) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, filesdrop_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, ldap_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, openldap_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, openldap_numerical_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, remoteapi_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, routing_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, setup_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, sharees_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, sharing_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, theming_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, videoverification_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite-summary (push) Blocked by required conditions
Some checks are pending
CodeQL Advanced / Analyze (actions) (push) Waiting to run
CodeQL Advanced / Analyze (javascript-typescript) (push) Waiting to run
Integration sqlite / changes (push) Waiting to run
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, --tags ~@large files_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, capabilities_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, collaboration_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, comments_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, dav_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, federation_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, file_conversions) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, files_reminders) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, filesdrop_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, ldap_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, openldap_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, openldap_numerical_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, remoteapi_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, routing_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, setup_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, sharees_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, sharing_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, theming_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, videoverification_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite-summary (push) Blocked by required conditions
[stable32] chore: Update `@nextcloud/dialogs` to v7.0.0
This commit is contained in:
commit
7e20e30bcb
337 changed files with 20943 additions and 2387 deletions
4
.github/workflows/cypress.yml
vendored
4
.github/workflows/cypress.yml
vendored
|
|
@ -102,8 +102,8 @@ jobs:
|
|||
matrix:
|
||||
# Run multiple copies of the current job in parallel
|
||||
# Please increase the number or runners as your tests suite grows (0 based index for e2e tests)
|
||||
containers: ['component', 'setup', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
|
||||
# Hack as strategy.job-total includes the component and GitHub does not allow math expressions
|
||||
containers: ['setup', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
|
||||
# Hack as strategy.job-total includes the "setup" and GitHub does not allow math expressions
|
||||
# Always align this number with the total of e2e runners (max. index + 1)
|
||||
total-containers: [10]
|
||||
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
* SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: CC0-1.0
|
||||
*/
|
||||
|
||||
export function setup() {
|
||||
process.env.TZ = 'UTC'
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,5 +2,6 @@
|
|||
* SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: CC0-1.0
|
||||
*/
|
||||
|
||||
import '@testing-library/jest-dom/vitest'
|
||||
import 'core-js/stable/index.js'
|
||||
|
|
|
|||
|
|
@ -65,11 +65,11 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import axios from '@nextcloud/axios'
|
||||
import { DialogBuilder, showError } from '@nextcloud/dialogs'
|
||||
import { loadState } from '@nextcloud/initial-state'
|
||||
import { DialogBuilder, DialogSeverity, showError } from '@nextcloud/dialogs'
|
||||
import { generateOcsUrl } from '@nextcloud/router'
|
||||
import { confirmPassword } from '@nextcloud/password-confirmation'
|
||||
import axios from '@nextcloud/axios'
|
||||
import NcCheckboxRadioSwitch from '@nextcloud/vue/components/NcCheckboxRadioSwitch'
|
||||
import NcSettingsSection from '@nextcloud/vue/components/NcSettingsSection'
|
||||
|
||||
|
|
@ -114,10 +114,8 @@ export default {
|
|||
|
||||
const dialog = new DialogBuilder(t('federatedfilesharing', 'Confirm data upload to lookup server'))
|
||||
await dialog
|
||||
.setSeverity(DialogSeverity.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.'),
|
||||
)
|
||||
.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'),
|
||||
|
|
@ -147,9 +145,8 @@ export default {
|
|||
|
||||
const dialog = new DialogBuilder(t('federatedfilesharing', 'Confirm querying lookup server'))
|
||||
await dialog
|
||||
.setSeverity(DialogSeverity.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.')
|
||||
.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.'),
|
||||
)
|
||||
|
|
|
|||
|
|
@ -1,123 +0,0 @@
|
|||
/**
|
||||
* SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
*/
|
||||
|
||||
import RemoteShareDialog from './RemoteShareDialog.vue'
|
||||
|
||||
describe('RemoteShareDialog', () => {
|
||||
it('can be mounted', () => {
|
||||
cy.mount(RemoteShareDialog, {
|
||||
propsData: {
|
||||
owner: 'user123',
|
||||
name: 'my-photos',
|
||||
remote: 'nextcloud.local',
|
||||
passwordRequired: false,
|
||||
},
|
||||
})
|
||||
|
||||
cy.findByRole('dialog')
|
||||
.should('be.visible')
|
||||
.and('contain.text', 'user123@nextcloud.local')
|
||||
.and('contain.text', 'my-photos')
|
||||
cy.findByRole('button', { name: 'Cancel' })
|
||||
.should('be.visible')
|
||||
cy.findByRole('button', { name: /add remote share/i })
|
||||
.should('be.visible')
|
||||
})
|
||||
|
||||
it('does not show password input if not enabled', () => {
|
||||
cy.mount(RemoteShareDialog, {
|
||||
propsData: {
|
||||
owner: 'user123',
|
||||
name: 'my-photos',
|
||||
remote: 'nextcloud.local',
|
||||
passwordRequired: false,
|
||||
},
|
||||
})
|
||||
|
||||
cy.findByRole('dialog')
|
||||
.should('be.visible')
|
||||
.find('input[type="password"]')
|
||||
.should('not.exist')
|
||||
})
|
||||
|
||||
it('emits true when accepted', () => {
|
||||
const onClose = cy.spy().as('onClose')
|
||||
|
||||
cy.mount(RemoteShareDialog, {
|
||||
listeners: {
|
||||
close: onClose,
|
||||
},
|
||||
propsData: {
|
||||
owner: 'user123',
|
||||
name: 'my-photos',
|
||||
remote: 'nextcloud.local',
|
||||
passwordRequired: false,
|
||||
},
|
||||
})
|
||||
|
||||
cy.findByRole('button', { name: 'Cancel' }).click()
|
||||
cy.get('@onClose')
|
||||
.should('have.been.calledWith', false)
|
||||
})
|
||||
|
||||
it('show password input if needed', () => {
|
||||
cy.mount(RemoteShareDialog, {
|
||||
propsData: {
|
||||
owner: 'admin',
|
||||
name: 'secret-data',
|
||||
remote: 'nextcloud.local',
|
||||
passwordRequired: true,
|
||||
},
|
||||
})
|
||||
|
||||
cy.findByRole('dialog')
|
||||
.should('be.visible')
|
||||
.find('input[type="password"]')
|
||||
.should('be.visible')
|
||||
})
|
||||
|
||||
it('emits the submitted password', () => {
|
||||
const onClose = cy.spy().as('onClose')
|
||||
|
||||
cy.mount(RemoteShareDialog, {
|
||||
listeners: {
|
||||
close: onClose,
|
||||
},
|
||||
propsData: {
|
||||
owner: 'admin',
|
||||
name: 'secret-data',
|
||||
remote: 'nextcloud.local',
|
||||
passwordRequired: true,
|
||||
},
|
||||
})
|
||||
|
||||
cy.get('input[type="password"]')
|
||||
.type('my password{enter}')
|
||||
cy.get('@onClose')
|
||||
.should('have.been.calledWith', true, 'my password')
|
||||
})
|
||||
|
||||
it('emits no password if cancelled', () => {
|
||||
const onClose = cy.spy().as('onClose')
|
||||
|
||||
cy.mount(RemoteShareDialog, {
|
||||
listeners: {
|
||||
close: onClose,
|
||||
},
|
||||
propsData: {
|
||||
owner: 'admin',
|
||||
name: 'secret-data',
|
||||
remote: 'nextcloud.local',
|
||||
passwordRequired: true,
|
||||
},
|
||||
})
|
||||
|
||||
cy.get('input[type="password"]')
|
||||
.type('my password')
|
||||
cy.findByRole('button', { name: 'Cancel' }).click()
|
||||
cy.get('@onClose')
|
||||
.should('have.been.calledWith', false)
|
||||
})
|
||||
})
|
||||
|
|
@ -0,0 +1,115 @@
|
|||
/**
|
||||
* SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
|
||||
* 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 RemoteShareDialog from './RemoteShareDialog.vue'
|
||||
|
||||
describe('RemoteShareDialog', () => {
|
||||
beforeEach(cleanup)
|
||||
|
||||
it('can be mounted', async () => {
|
||||
const component = render(RemoteShareDialog, {
|
||||
props: {
|
||||
owner: 'user123',
|
||||
name: 'my-photos',
|
||||
remote: 'nextcloud.local',
|
||||
passwordRequired: false,
|
||||
},
|
||||
})
|
||||
|
||||
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()
|
||||
})
|
||||
|
||||
it('does not show password input if not enabled', async () => {
|
||||
const component = render(RemoteShareDialog, {
|
||||
props: {
|
||||
owner: 'user123',
|
||||
name: 'my-photos',
|
||||
remote: 'nextcloud.local',
|
||||
passwordRequired: false,
|
||||
},
|
||||
})
|
||||
|
||||
await expect(component.findByLabelText('Remote share password')).rejects.toThrow()
|
||||
})
|
||||
|
||||
it('emits true when accepted', () => {
|
||||
const onClose = vi.fn()
|
||||
|
||||
const component = render(RemoteShareDialog, {
|
||||
listeners: {
|
||||
close: onClose,
|
||||
},
|
||||
props: {
|
||||
owner: 'user123',
|
||||
name: 'my-photos',
|
||||
remote: 'nextcloud.local',
|
||||
passwordRequired: false,
|
||||
},
|
||||
})
|
||||
|
||||
component.getByRole('button', { name: 'Cancel' }).click()
|
||||
expect(onClose).toHaveBeenCalledWith(false)
|
||||
})
|
||||
|
||||
it('show password input if needed', async () => {
|
||||
const component = render(RemoteShareDialog, {
|
||||
props: {
|
||||
owner: 'admin',
|
||||
name: 'secret-data',
|
||||
remote: 'nextcloud.local',
|
||||
passwordRequired: true,
|
||||
},
|
||||
})
|
||||
|
||||
await expect(component.findByLabelText('Remote share password')).resolves.not.toThrow()
|
||||
})
|
||||
|
||||
it('emits the submitted password', async () => {
|
||||
const onClose = vi.fn()
|
||||
|
||||
const component = render(RemoteShareDialog, {
|
||||
listeners: {
|
||||
close: onClose,
|
||||
},
|
||||
props: {
|
||||
owner: 'admin',
|
||||
name: 'secret-data',
|
||||
remote: 'nextcloud.local',
|
||||
passwordRequired: true,
|
||||
},
|
||||
})
|
||||
|
||||
const input = component.getByLabelText('Remote share password')
|
||||
await fireEvent.update(input, 'my password')
|
||||
component.getByRole('button', { name: 'Add remote share' }).click()
|
||||
expect(onClose).toHaveBeenCalledWith(true, 'my password')
|
||||
})
|
||||
|
||||
it('emits no password if cancelled', async () => {
|
||||
const onClose = vi.fn()
|
||||
|
||||
const component = render(RemoteShareDialog, {
|
||||
listeners: {
|
||||
close: onClose,
|
||||
},
|
||||
props: {
|
||||
owner: 'admin',
|
||||
name: 'secret-data',
|
||||
remote: 'nextcloud.local',
|
||||
passwordRequired: true,
|
||||
},
|
||||
})
|
||||
|
||||
const input = component.getByLabelText('Remote share password')
|
||||
await fireEvent.update(input, 'my password')
|
||||
component.getByRole('button', { name: 'Cancel' }).click()
|
||||
expect(onClose).toHaveBeenCalledWith(false)
|
||||
})
|
||||
})
|
||||
|
|
@ -35,8 +35,8 @@ const buttons = computed(() => [
|
|||
},
|
||||
{
|
||||
label: t('federatedfilesharing', 'Add remote share'),
|
||||
nativeType: props.passwordRequired ? 'submit' : undefined,
|
||||
type: 'primary',
|
||||
type: props.passwordRequired ? 'submit' : undefined,
|
||||
variant: 'primary',
|
||||
callback: () => emit('close', true, password.value),
|
||||
},
|
||||
])
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
*/
|
||||
|
||||
import { spawnDialog } from '@nextcloud/dialogs'
|
||||
import { spawnDialog } from '@nextcloud/vue/functions/dialog'
|
||||
import RemoteShareDialog from '../components/RemoteShareDialog.vue'
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -1,56 +0,0 @@
|
|||
/*!
|
||||
* SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
*/
|
||||
|
||||
import { defineComponent } from 'vue'
|
||||
import { useFileListWidth } from './useFileListWidth.ts'
|
||||
|
||||
const ComponentMock = defineComponent({
|
||||
template: '<div id="test-component" style="width: 100%;background: white;">{{ fileListWidth }}</div>',
|
||||
setup() {
|
||||
return {
|
||||
fileListWidth: useFileListWidth(),
|
||||
}
|
||||
},
|
||||
})
|
||||
const FileListMock = defineComponent({
|
||||
template: '<main id="app-content-vue" style="width: 100%;"><component-mock /></main>',
|
||||
components: {
|
||||
ComponentMock,
|
||||
},
|
||||
})
|
||||
|
||||
describe('composable: fileListWidth', () => {
|
||||
|
||||
it('Has initial value', () => {
|
||||
cy.viewport(600, 400)
|
||||
|
||||
cy.mount(FileListMock, {})
|
||||
cy.get('#app-content-vue')
|
||||
.should('be.visible')
|
||||
.and('contain.text', '600')
|
||||
})
|
||||
|
||||
it('Is reactive to size change', () => {
|
||||
cy.viewport(600, 400)
|
||||
cy.mount(FileListMock)
|
||||
cy.get('#app-content-vue').should('contain.text', '600')
|
||||
|
||||
cy.viewport(800, 400)
|
||||
cy.screenshot()
|
||||
cy.get('#app-content-vue').should('contain.text', '800')
|
||||
})
|
||||
|
||||
it('Is reactive to style changes', () => {
|
||||
cy.viewport(600, 400)
|
||||
cy.mount(FileListMock)
|
||||
cy.get('#app-content-vue')
|
||||
.should('be.visible')
|
||||
.and('contain.text', '600')
|
||||
.invoke('attr', 'style', 'width: 100px')
|
||||
|
||||
cy.get('#app-content-vue')
|
||||
.should('contain.text', '100')
|
||||
})
|
||||
})
|
||||
79
apps/files/src/composables/useFileListWidth.spec.ts
Normal file
79
apps/files/src/composables/useFileListWidth.spec.ts
Normal file
|
|
@ -0,0 +1,79 @@
|
|||
/*!
|
||||
* SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
*/
|
||||
|
||||
import { cleanup, render } from '@testing-library/vue'
|
||||
import { configMocks, mockResizeObserver } from 'jsdom-testing-mocks'
|
||||
import { afterAll, afterEach, beforeAll, beforeEach, describe, expect, it } from 'vitest'
|
||||
import { defineComponent, nextTick } from 'vue'
|
||||
|
||||
let resizeObserver: ReturnType<typeof mockResizeObserver>
|
||||
|
||||
describe('composable: fileListWidth', () => {
|
||||
configMocks({ beforeAll, afterAll, beforeEach, afterEach })
|
||||
|
||||
beforeAll(() => {
|
||||
resizeObserver = mockResizeObserver()
|
||||
})
|
||||
|
||||
beforeEach(cleanup)
|
||||
|
||||
it('Has initial value', async () => {
|
||||
const { component } = await getFileList()
|
||||
expect(component.textContent).toBe('600')
|
||||
})
|
||||
|
||||
it('observes the file list element', async () => {
|
||||
const { fileList } = await getFileList()
|
||||
expect(resizeObserver.getObservedElements()).toContain(fileList)
|
||||
})
|
||||
|
||||
it('Is reactive to size change', async () => {
|
||||
const { component, fileList } = await getFileList()
|
||||
expect(component.textContent).toBe('600')
|
||||
expect(resizeObserver.getObservedElements()).toHaveLength(1)
|
||||
|
||||
resizeObserver.mockElementSize(fileList, { contentBoxSize: { inlineSize: 800, blockSize: 300 } })
|
||||
resizeObserver.resize(fileList)
|
||||
|
||||
// await rending
|
||||
await nextTick()
|
||||
expect(component.textContent).toBe('800')
|
||||
})
|
||||
})
|
||||
|
||||
async function getFileList() {
|
||||
const { useFileListWidth } = await import('./useFileListWidth.ts')
|
||||
|
||||
const ComponentMock = defineComponent({
|
||||
template: '<div data-testid="component" style="width: 100%;background: white;">{{ fileListWidth }}</div>',
|
||||
setup() {
|
||||
return {
|
||||
fileListWidth: useFileListWidth(),
|
||||
}
|
||||
},
|
||||
})
|
||||
|
||||
const FileListMock = defineComponent({
|
||||
template: '<main id="app-content-vue" style="width: 100%;"><component-mock /></main>',
|
||||
components: {
|
||||
ComponentMock,
|
||||
},
|
||||
})
|
||||
|
||||
const root = render(FileListMock)
|
||||
const fileList = root.baseElement.querySelector('#app-content-vue') as HTMLElement
|
||||
|
||||
// mock initial size
|
||||
resizeObserver.mockElementSize(fileList, { contentBoxSize: { inlineSize: 600, blockSize: 200 } })
|
||||
resizeObserver.resize()
|
||||
// await rending
|
||||
await nextTick()
|
||||
|
||||
return {
|
||||
root,
|
||||
component: root.getByTestId('component'),
|
||||
fileList,
|
||||
}
|
||||
}
|
||||
|
|
@ -4,7 +4,8 @@
|
|||
*/
|
||||
|
||||
import type { Node } from '@nextcloud/files'
|
||||
import { spawnDialog } from '@nextcloud/dialogs'
|
||||
|
||||
import { spawnDialog } from '@nextcloud/vue/functions/dialog'
|
||||
import NewNodeDialog from '../components/NewNodeDialog.vue'
|
||||
|
||||
interface ILabels {
|
||||
|
|
|
|||
|
|
@ -1,161 +0,0 @@
|
|||
/*!
|
||||
* SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
*/
|
||||
import { createTestingPinia } from '@pinia/testing'
|
||||
import DialogConfirmFileExtension from './DialogConfirmFileExtension.vue'
|
||||
import { useUserConfigStore } from '../store/userconfig'
|
||||
|
||||
describe('DialogConfirmFileExtension', () => {
|
||||
it('renders with both extensions', () => {
|
||||
cy.mount(DialogConfirmFileExtension, {
|
||||
propsData: {
|
||||
oldExtension: '.old',
|
||||
newExtension: '.new',
|
||||
},
|
||||
global: {
|
||||
plugins: [createTestingPinia({
|
||||
createSpy: cy.spy,
|
||||
})],
|
||||
},
|
||||
})
|
||||
|
||||
cy.findByRole('dialog')
|
||||
.as('dialog')
|
||||
.should('be.visible')
|
||||
cy.get('@dialog')
|
||||
.findByRole('heading')
|
||||
.should('contain.text', 'Change file extension')
|
||||
cy.get('@dialog')
|
||||
.findByRole('checkbox', { name: /Do not show this dialog again/i })
|
||||
.should('exist')
|
||||
.and('not.be.checked')
|
||||
cy.get('@dialog')
|
||||
.findByRole('button', { name: 'Keep .old' })
|
||||
.should('be.visible')
|
||||
cy.get('@dialog')
|
||||
.findByRole('button', { name: 'Use .new' })
|
||||
.should('be.visible')
|
||||
})
|
||||
|
||||
it('renders without old extension', () => {
|
||||
cy.mount(DialogConfirmFileExtension, {
|
||||
propsData: {
|
||||
newExtension: '.new',
|
||||
},
|
||||
global: {
|
||||
plugins: [createTestingPinia({
|
||||
createSpy: cy.spy,
|
||||
})],
|
||||
},
|
||||
})
|
||||
|
||||
cy.findByRole('dialog')
|
||||
.as('dialog')
|
||||
.should('be.visible')
|
||||
cy.get('@dialog')
|
||||
.findByRole('button', { name: 'Keep without extension' })
|
||||
.should('be.visible')
|
||||
cy.get('@dialog')
|
||||
.findByRole('button', { name: 'Use .new' })
|
||||
.should('be.visible')
|
||||
})
|
||||
|
||||
it('renders without new extension', () => {
|
||||
cy.mount(DialogConfirmFileExtension, {
|
||||
propsData: {
|
||||
oldExtension: '.old',
|
||||
},
|
||||
global: {
|
||||
plugins: [createTestingPinia({
|
||||
createSpy: cy.spy,
|
||||
})],
|
||||
},
|
||||
})
|
||||
|
||||
cy.findByRole('dialog')
|
||||
.as('dialog')
|
||||
.should('be.visible')
|
||||
cy.get('@dialog')
|
||||
.findByRole('button', { name: 'Keep .old' })
|
||||
.should('be.visible')
|
||||
cy.get('@dialog')
|
||||
.findByRole('button', { name: 'Remove extension' })
|
||||
.should('be.visible')
|
||||
})
|
||||
|
||||
it('emits correct value on keep old', () => {
|
||||
cy.mount(DialogConfirmFileExtension, {
|
||||
propsData: {
|
||||
oldExtension: '.old',
|
||||
newExtension: '.new',
|
||||
},
|
||||
global: {
|
||||
plugins: [createTestingPinia({
|
||||
createSpy: cy.spy,
|
||||
})],
|
||||
},
|
||||
}).as('component')
|
||||
|
||||
cy.findByRole('dialog')
|
||||
.as('dialog')
|
||||
.should('be.visible')
|
||||
cy.get('@dialog')
|
||||
.findByRole('button', { name: 'Keep .old' })
|
||||
.click()
|
||||
cy.get('@component')
|
||||
.its('wrapper')
|
||||
.should((wrapper) => expect(wrapper.emitted('close')).to.eql([[false]]))
|
||||
})
|
||||
|
||||
it('emits correct value on use new', () => {
|
||||
cy.mount(DialogConfirmFileExtension, {
|
||||
propsData: {
|
||||
oldExtension: '.old',
|
||||
newExtension: '.new',
|
||||
},
|
||||
global: {
|
||||
plugins: [createTestingPinia({
|
||||
createSpy: cy.spy,
|
||||
})],
|
||||
},
|
||||
}).as('component')
|
||||
|
||||
cy.findByRole('dialog')
|
||||
.as('dialog')
|
||||
.should('be.visible')
|
||||
cy.get('@dialog')
|
||||
.findByRole('button', { name: 'Use .new' })
|
||||
.click()
|
||||
cy.get('@component')
|
||||
.its('wrapper')
|
||||
.should((wrapper) => expect(wrapper.emitted('close')).to.eql([[true]]))
|
||||
})
|
||||
|
||||
it('updates user config when checking the checkbox', () => {
|
||||
const pinia = createTestingPinia({
|
||||
createSpy: cy.spy,
|
||||
})
|
||||
|
||||
cy.mount(DialogConfirmFileExtension, {
|
||||
propsData: {
|
||||
oldExtension: '.old',
|
||||
newExtension: '.new',
|
||||
},
|
||||
global: {
|
||||
plugins: [pinia],
|
||||
},
|
||||
}).as('component')
|
||||
|
||||
cy.findByRole('dialog')
|
||||
.as('dialog')
|
||||
.should('be.visible')
|
||||
cy.get('@dialog')
|
||||
.findByRole('checkbox', { name: /Do not show this dialog again/i })
|
||||
.check({ force: true })
|
||||
|
||||
cy.wrap(useUserConfigStore())
|
||||
.its('update')
|
||||
.should('have.been.calledWith', 'show_dialog_file_extension', false)
|
||||
})
|
||||
})
|
||||
132
apps/files/src/views/DialogConfirmFileExtension.spec.ts
Normal file
132
apps/files/src/views/DialogConfirmFileExtension.spec.ts
Normal file
|
|
@ -0,0 +1,132 @@
|
|||
/*!
|
||||
* SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
*/
|
||||
|
||||
import { createTestingPinia } from '@pinia/testing'
|
||||
import { cleanup, fireEvent, render } from '@testing-library/vue'
|
||||
import { beforeEach, describe, expect, it, vi } from 'vitest'
|
||||
import DialogConfirmFileExtension from './DialogConfirmFileExtension.vue'
|
||||
import { useUserConfigStore } from '../store/userconfig.ts'
|
||||
|
||||
describe('DialogConfirmFileExtension', () => {
|
||||
beforeEach(cleanup)
|
||||
|
||||
it('renders with both extensions', async () => {
|
||||
const component = render(DialogConfirmFileExtension, {
|
||||
props: {
|
||||
oldExtension: '.old',
|
||||
newExtension: '.new',
|
||||
},
|
||||
global: {
|
||||
plugins: [createTestingPinia({
|
||||
createSpy: vi.fn,
|
||||
})],
|
||||
},
|
||||
})
|
||||
|
||||
await expect(component.findByRole('dialog', { name: 'Change file extension' })).resolves.not.toThrow()
|
||||
expect((component.getByRole('checkbox', { name: /Do not show this dialog again/i }) as HTMLInputElement).checked).toBe(false)
|
||||
await expect(component.findByRole('button', { name: 'Keep .old' })).resolves.not.toThrow()
|
||||
await expect(component.findByRole('button', { name: 'Use .new' })).resolves.not.toThrow()
|
||||
})
|
||||
|
||||
it('renders without old extension', async () => {
|
||||
const component = render(DialogConfirmFileExtension, {
|
||||
props: {
|
||||
newExtension: '.new',
|
||||
},
|
||||
global: {
|
||||
plugins: [createTestingPinia({
|
||||
createSpy: vi.fn,
|
||||
})],
|
||||
},
|
||||
})
|
||||
|
||||
await expect(component.findByRole('dialog', { name: 'Change file extension' })).resolves.not.toThrow()
|
||||
await expect(component.findByRole('button', { name: 'Keep without extension' })).resolves.not.toThrow()
|
||||
await expect(component.findByRole('button', { name: 'Use .new' })).resolves.not.toThrow()
|
||||
})
|
||||
|
||||
it('renders without new extension', async () => {
|
||||
const component = render(DialogConfirmFileExtension, {
|
||||
props: {
|
||||
oldExtension: '.old',
|
||||
},
|
||||
global: {
|
||||
plugins: [createTestingPinia({
|
||||
createSpy: vi.fn,
|
||||
})],
|
||||
},
|
||||
})
|
||||
|
||||
await expect(component.findByRole('dialog', { name: 'Change file extension' })).resolves.not.toThrow()
|
||||
await expect(component.findByRole('button', { name: 'Keep .old' })).resolves.not.toThrow()
|
||||
await expect(component.findByRole('button', { name: 'Remove extension' })).resolves.not.toThrow()
|
||||
})
|
||||
|
||||
it('emits correct value on keep old', async () => {
|
||||
const onclose = vi.fn()
|
||||
const component = render(DialogConfirmFileExtension, {
|
||||
props: {
|
||||
oldExtension: '.old',
|
||||
newExtension: '.new',
|
||||
},
|
||||
listeners: {
|
||||
close: onclose,
|
||||
},
|
||||
global: {
|
||||
plugins: [createTestingPinia({
|
||||
createSpy: vi.fn,
|
||||
})],
|
||||
},
|
||||
})
|
||||
|
||||
await fireEvent.click(component.getByRole('button', { name: 'Keep .old' }))
|
||||
expect(onclose).toHaveBeenCalledOnce()
|
||||
expect(onclose).toHaveBeenCalledWith(false)
|
||||
})
|
||||
|
||||
it('emits correct value on use new', async () => {
|
||||
const onclose = vi.fn()
|
||||
const component = render(DialogConfirmFileExtension, {
|
||||
props: {
|
||||
oldExtension: '.old',
|
||||
newExtension: '.new',
|
||||
},
|
||||
listeners: {
|
||||
close: onclose,
|
||||
},
|
||||
global: {
|
||||
plugins: [createTestingPinia({
|
||||
createSpy: vi.fn,
|
||||
})],
|
||||
},
|
||||
})
|
||||
|
||||
await fireEvent.click(component.getByRole('button', { name: 'Use .new' }))
|
||||
expect(onclose).toHaveBeenCalledOnce()
|
||||
expect(onclose).toHaveBeenCalledWith(true)
|
||||
})
|
||||
|
||||
it('updates user config when checking the checkbox', async () => {
|
||||
const pinia = createTestingPinia({
|
||||
createSpy: vi.fn,
|
||||
})
|
||||
|
||||
const component = render(DialogConfirmFileExtension, {
|
||||
props: {
|
||||
oldExtension: '.old',
|
||||
newExtension: '.new',
|
||||
},
|
||||
global: {
|
||||
plugins: [pinia],
|
||||
},
|
||||
})
|
||||
|
||||
await fireEvent.click(component.getByRole('checkbox', { name: /Do not show this dialog again/i }))
|
||||
const store = useUserConfigStore()
|
||||
expect(store.update).toHaveBeenCalledOnce()
|
||||
expect(store.update).toHaveBeenCalledWith('show_dialog_file_extension', false)
|
||||
})
|
||||
})
|
||||
|
|
@ -4,80 +4,79 @@
|
|||
-->
|
||||
|
||||
<template>
|
||||
<div :id="containerId">
|
||||
<FilePicker v-bind="filepickerOptions" @close="onClose" />
|
||||
</div>
|
||||
<div :id="containerId" />
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
import type { Node as NcNode } from '@nextcloud/files'
|
||||
<script setup lang="ts">
|
||||
import type { IFilePickerButton } from '@nextcloud/dialogs'
|
||||
import type { Node as NcNode } from '@nextcloud/files'
|
||||
|
||||
import { FilePickerVue as FilePicker } from '@nextcloud/dialogs/filepicker.js'
|
||||
import { translate as t } from '@nextcloud/l10n'
|
||||
import { defineComponent } from 'vue'
|
||||
import { generateFileUrl } from '../../../files_sharing/src/utils/generateUrl'
|
||||
import { FilePickerBuilder } from '@nextcloud/dialogs'
|
||||
import { t } from '@nextcloud/l10n'
|
||||
import { generateUrl } from '@nextcloud/router'
|
||||
import { onMounted } from 'vue'
|
||||
import logger from '../logger.ts'
|
||||
|
||||
export default defineComponent({
|
||||
name: 'FileReferencePickerElement',
|
||||
components: {
|
||||
FilePicker,
|
||||
},
|
||||
props: {
|
||||
providerId: {
|
||||
type: String,
|
||||
required: true,
|
||||
},
|
||||
accessible: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
},
|
||||
computed: {
|
||||
containerId() {
|
||||
return `filepicker-${Math.random().toString(36).slice(7)}`
|
||||
},
|
||||
filepickerOptions() {
|
||||
return {
|
||||
allowPickDirectory: true,
|
||||
buttons: this.buttonFactory,
|
||||
container: `#${this.containerId}`,
|
||||
multiselect: false,
|
||||
name: t('files', 'Select file or folder to link to'),
|
||||
}
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
t,
|
||||
defineProps<{
|
||||
providerId: string
|
||||
accessible: boolean
|
||||
}>()
|
||||
|
||||
buttonFactory(selected: NcNode[]): IFilePickerButton[] {
|
||||
const buttons = [] as IFilePickerButton[]
|
||||
if (selected.length === 0) {
|
||||
return []
|
||||
}
|
||||
const node = selected.at(0)
|
||||
if (node.path === '/') {
|
||||
return [] // Do not allow selecting the users root folder
|
||||
}
|
||||
buttons.push({
|
||||
label: t('files', 'Choose {file}', { file: node.displayname }),
|
||||
type: 'primary',
|
||||
callback: this.onClose,
|
||||
})
|
||||
return buttons
|
||||
},
|
||||
const emit = defineEmits<{
|
||||
(e: 'submit', url: string): void
|
||||
(e: 'cancel'): void
|
||||
}>()
|
||||
|
||||
onClose(nodes?: NcNode[]) {
|
||||
if (nodes === undefined || nodes.length === 0) {
|
||||
this.$emit('cancel')
|
||||
} else {
|
||||
this.onSubmit(nodes[0])
|
||||
}
|
||||
},
|
||||
const containerId = `filepicker-${Math.random().toString(36).slice(7)}`
|
||||
|
||||
onSubmit(node: NcNode) {
|
||||
this.$emit('submit', generateFileUrl(node.fileid!))
|
||||
},
|
||||
},
|
||||
const filePicker = new FilePickerBuilder(t('files', 'Select file or folder to link to'))
|
||||
.allowDirectories(true)
|
||||
.setButtonFactory(buttonFactory)
|
||||
.setContainer(`#${containerId}`)
|
||||
.setMultiSelect(false)
|
||||
.build()
|
||||
|
||||
onMounted(async () => {
|
||||
try {
|
||||
const [node] = await filePicker.pickNodes()
|
||||
onSubmit(node)
|
||||
} catch (error) {
|
||||
logger.debug('Aborted picking nodes:', { error })
|
||||
emit('cancel')
|
||||
}
|
||||
})
|
||||
|
||||
/**
|
||||
* Get buttons for the file picker dialog
|
||||
*
|
||||
* @param selected - currently selected nodes
|
||||
*/
|
||||
function buttonFactory(selected: NcNode[]): IFilePickerButton[] {
|
||||
const buttons = [] as IFilePickerButton[]
|
||||
const node = selected[0]
|
||||
if (node === undefined) {
|
||||
return []
|
||||
}
|
||||
|
||||
if (node.path === '/') {
|
||||
return [] // Do not allow selecting the users root folder
|
||||
}
|
||||
|
||||
buttons.push({
|
||||
label: t('files', 'Choose {file}', { file: node.displayname }),
|
||||
variant: 'primary',
|
||||
callback: () => {}, // handled by the pickNodes method
|
||||
})
|
||||
return buttons
|
||||
}
|
||||
|
||||
/**
|
||||
* @param node - selected node
|
||||
*/
|
||||
function onSubmit(node: NcNode) {
|
||||
const url = new URL(window.location.href)
|
||||
url.pathname = generateUrl('/f/{fileId}', { fileId: node.fileid! })
|
||||
url.search = ''
|
||||
emit('submit', url.href)
|
||||
}
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -1,260 +0,0 @@
|
|||
/**
|
||||
* SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
*/
|
||||
import type { Navigation } from '@nextcloud/files'
|
||||
import FolderSvg from '@mdi/svg/svg/folder.svg?raw'
|
||||
import { createTestingPinia } from '@pinia/testing'
|
||||
|
||||
import NavigationView from './Navigation.vue'
|
||||
import { useViewConfigStore } from '../store/viewConfig'
|
||||
import { Folder, View, getNavigation } from '@nextcloud/files'
|
||||
|
||||
import router from '../router/router.ts'
|
||||
import RouterService from '../services/RouterService'
|
||||
|
||||
const resetNavigation = () => {
|
||||
const nav = getNavigation()
|
||||
;[...nav.views].forEach(({ id }) => nav.remove(id))
|
||||
nav.setActive(null)
|
||||
}
|
||||
|
||||
const createView = (id: string, name: string, parent?: string) => new View({
|
||||
id,
|
||||
name,
|
||||
getContents: async () => ({ folder: {} as Folder, contents: [] }),
|
||||
icon: FolderSvg,
|
||||
order: 1,
|
||||
parent,
|
||||
})
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
function mockWindow() {
|
||||
window.OCP ??= {}
|
||||
window.OCP.Files ??= {}
|
||||
window.OCP.Files.Router = new RouterService(router)
|
||||
}
|
||||
|
||||
describe('Navigation renders', () => {
|
||||
before(async () => {
|
||||
delete window._nc_navigation
|
||||
mockWindow()
|
||||
getNavigation().register(createView('files', 'Files'))
|
||||
await router.replace({ name: 'filelist', params: { view: 'files' } })
|
||||
|
||||
cy.mockInitialState('files', 'storageStats', {
|
||||
used: 1000 * 1000 * 1000,
|
||||
quota: -1,
|
||||
})
|
||||
})
|
||||
|
||||
after(() => cy.unmockInitialState())
|
||||
|
||||
it('renders', () => {
|
||||
cy.mount(NavigationView, {
|
||||
router,
|
||||
global: {
|
||||
plugins: [createTestingPinia({
|
||||
createSpy: cy.spy,
|
||||
})],
|
||||
},
|
||||
})
|
||||
|
||||
cy.get('[data-cy-files-navigation]').should('be.visible')
|
||||
cy.get('[data-cy-files-navigation-settings-quota]').should('be.visible')
|
||||
cy.get('[data-cy-files-navigation-settings-button]').should('be.visible')
|
||||
})
|
||||
})
|
||||
|
||||
describe('Navigation API', () => {
|
||||
let Navigation: Navigation
|
||||
|
||||
before(async () => {
|
||||
delete window._nc_navigation
|
||||
Navigation = getNavigation()
|
||||
mockWindow()
|
||||
|
||||
await router.replace({ name: 'filelist', params: { view: 'files' } })
|
||||
})
|
||||
|
||||
beforeEach(() => resetNavigation())
|
||||
|
||||
it('Check API entries rendering', () => {
|
||||
Navigation.register(createView('files', 'Files'))
|
||||
console.warn(Navigation.views)
|
||||
|
||||
cy.mount(NavigationView, {
|
||||
router,
|
||||
global: {
|
||||
plugins: [
|
||||
createTestingPinia({
|
||||
createSpy: cy.spy,
|
||||
}),
|
||||
],
|
||||
},
|
||||
})
|
||||
|
||||
cy.get('[data-cy-files-navigation]').should('be.visible')
|
||||
cy.get('[data-cy-files-navigation-item]').should('have.length', 1)
|
||||
cy.get('[data-cy-files-navigation-item="files"]').should('be.visible')
|
||||
cy.get('[data-cy-files-navigation-item="files"]').should('contain.text', 'Files')
|
||||
})
|
||||
|
||||
it('Adds a new entry and render', () => {
|
||||
Navigation.register(createView('files', 'Files'))
|
||||
Navigation.register(createView('sharing', 'Sharing'))
|
||||
|
||||
cy.mount(NavigationView, {
|
||||
router,
|
||||
global: {
|
||||
plugins: [createTestingPinia({
|
||||
createSpy: cy.spy,
|
||||
})],
|
||||
},
|
||||
})
|
||||
|
||||
cy.get('[data-cy-files-navigation]').should('be.visible')
|
||||
cy.get('[data-cy-files-navigation-item]').should('have.length', 2)
|
||||
cy.get('[data-cy-files-navigation-item="sharing"]').should('be.visible')
|
||||
cy.get('[data-cy-files-navigation-item="sharing"]').should('contain.text', 'Sharing')
|
||||
})
|
||||
|
||||
it('Adds a new children, render and open menu', () => {
|
||||
Navigation.register(createView('files', 'Files'))
|
||||
Navigation.register(createView('sharing', 'Sharing'))
|
||||
Navigation.register(createView('sharingin', 'Shared with me', 'sharing'))
|
||||
|
||||
cy.mount(NavigationView, {
|
||||
router,
|
||||
global: {
|
||||
plugins: [createTestingPinia({
|
||||
createSpy: cy.spy,
|
||||
})],
|
||||
},
|
||||
})
|
||||
|
||||
cy.wrap(useViewConfigStore()).as('viewConfigStore')
|
||||
|
||||
cy.get('[data-cy-files-navigation]').should('be.visible')
|
||||
cy.get('[data-cy-files-navigation-item]').should('have.length', 3)
|
||||
|
||||
// Toggle the sharing entry children
|
||||
cy.get('[data-cy-files-navigation-item="sharing"] button.icon-collapse').should('exist')
|
||||
cy.get('[data-cy-files-navigation-item="sharing"] button.icon-collapse').click({ force: true })
|
||||
|
||||
// Expect store update to be called
|
||||
cy.get('@viewConfigStore').its('update').should('have.been.calledWith', 'sharing', 'expanded', true)
|
||||
|
||||
// Validate children
|
||||
cy.get('[data-cy-files-navigation-item="sharingin"]').should('be.visible')
|
||||
cy.get('[data-cy-files-navigation-item="sharingin"]').should('contain.text', 'Shared with me')
|
||||
|
||||
// Toggle the sharing entry children 🇦again
|
||||
cy.get('[data-cy-files-navigation-item="sharing"] button.icon-collapse').click({ force: true })
|
||||
cy.get('[data-cy-files-navigation-item="sharingin"]').should('not.be.visible')
|
||||
|
||||
// Expect store update to be called
|
||||
cy.get('@viewConfigStore').its('update').should('have.been.calledWith', 'sharing', 'expanded', false)
|
||||
})
|
||||
|
||||
it('Throws when adding a duplicate entry', () => {
|
||||
Navigation.register(createView('files', 'Files'))
|
||||
expect(() => Navigation.register(createView('files', 'Files')))
|
||||
.to.throw('View id files is already registered')
|
||||
})
|
||||
})
|
||||
|
||||
describe('Quota rendering', () => {
|
||||
before(async () => {
|
||||
delete window._nc_navigation
|
||||
mockWindow()
|
||||
getNavigation().register(createView('files', 'Files'))
|
||||
await router.replace({ name: 'filelist', params: { view: 'files' } })
|
||||
})
|
||||
|
||||
afterEach(() => cy.unmockInitialState())
|
||||
|
||||
it('Unknown quota', () => {
|
||||
cy.mount(NavigationView, {
|
||||
router,
|
||||
global: {
|
||||
plugins: [createTestingPinia({
|
||||
createSpy: cy.spy,
|
||||
})],
|
||||
},
|
||||
})
|
||||
|
||||
cy.get('[data-cy-files-navigation-settings-quota]').should('not.exist')
|
||||
})
|
||||
|
||||
it('Unlimited quota', () => {
|
||||
cy.mockInitialState('files', 'storageStats', {
|
||||
used: 1024 * 1024 * 1024,
|
||||
quota: -1,
|
||||
total: 50 * 1024 * 1024 * 1024,
|
||||
})
|
||||
|
||||
cy.mount(NavigationView, {
|
||||
router,
|
||||
global: {
|
||||
plugins: [createTestingPinia({
|
||||
createSpy: cy.spy,
|
||||
})],
|
||||
},
|
||||
})
|
||||
|
||||
cy.get('[data-cy-files-navigation-settings-quota]').should('be.visible')
|
||||
cy.get('[data-cy-files-navigation-settings-quota]').should('contain.text', '1 GB used')
|
||||
cy.get('[data-cy-files-navigation-settings-quota] progress').should('not.exist')
|
||||
})
|
||||
|
||||
it('Non-reached quota', () => {
|
||||
cy.mockInitialState('files', 'storageStats', {
|
||||
used: 1024 * 1024 * 1024,
|
||||
quota: 5 * 1024 * 1024 * 1024,
|
||||
total: 5 * 1024 * 1024 * 1024,
|
||||
relative: 20, // percent
|
||||
})
|
||||
|
||||
cy.mount(NavigationView, {
|
||||
router,
|
||||
global: {
|
||||
plugins: [createTestingPinia({
|
||||
createSpy: cy.spy,
|
||||
})],
|
||||
},
|
||||
})
|
||||
|
||||
cy.get('[data-cy-files-navigation-settings-quota]').should('be.visible')
|
||||
cy.get('[data-cy-files-navigation-settings-quota]').should('contain.text', '1 GB of 5 GB used')
|
||||
cy.get('[data-cy-files-navigation-settings-quota] progress')
|
||||
.should('exist')
|
||||
.and('have.attr', 'value', '20')
|
||||
})
|
||||
|
||||
it('Reached quota', () => {
|
||||
cy.mockInitialState('files', 'storageStats', {
|
||||
used: 5 * 1024 * 1024 * 1024,
|
||||
quota: 1024 * 1024 * 1024,
|
||||
total: 1024 * 1024 * 1024,
|
||||
relative: 500, // percent
|
||||
})
|
||||
|
||||
cy.mount(NavigationView, {
|
||||
router,
|
||||
global: {
|
||||
plugins: [createTestingPinia({
|
||||
createSpy: cy.spy,
|
||||
})],
|
||||
},
|
||||
})
|
||||
|
||||
cy.get('[data-cy-files-navigation-settings-quota]').should('be.visible')
|
||||
cy.get('[data-cy-files-navigation-settings-quota]').should('contain.text', '5 GB of 1 GB used')
|
||||
cy.get('[data-cy-files-navigation-settings-quota] progress')
|
||||
.should('exist')
|
||||
.and('have.attr', 'value', '100') // progress max is 100
|
||||
})
|
||||
})
|
||||
286
apps/files/src/views/Navigation.spec.ts
Normal file
286
apps/files/src/views/Navigation.spec.ts
Normal file
|
|
@ -0,0 +1,286 @@
|
|||
/**
|
||||
* SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
*/
|
||||
|
||||
import type { Folder, Navigation } from '@nextcloud/files'
|
||||
|
||||
import FolderSvg from '@mdi/svg/svg/folder.svg?raw'
|
||||
import { getNavigation, View } from '@nextcloud/files'
|
||||
import { createTestingPinia } from '@pinia/testing'
|
||||
import { cleanup, fireEvent, getAllByRole, render } from '@testing-library/vue'
|
||||
import { afterEach, beforeAll, beforeEach, describe, expect, it, vi } from 'vitest'
|
||||
import NavigationView from './Navigation.vue'
|
||||
import router from '../router/router.ts'
|
||||
import RouterService from '../services/RouterService.ts'
|
||||
import { useViewConfigStore } from '../store/viewConfig.ts'
|
||||
|
||||
afterEach(() => removeInitialState())
|
||||
beforeAll(async () => {
|
||||
Object.defineProperty(document.documentElement, 'clientWidth', { value: 1920 })
|
||||
await fireEvent.resize(window)
|
||||
})
|
||||
|
||||
describe('Navigation', () => {
|
||||
beforeEach(cleanup)
|
||||
|
||||
beforeEach(async () => {
|
||||
delete window._nc_navigation
|
||||
mockWindow()
|
||||
getNavigation().register(createView('files', 'Files'))
|
||||
await router.replace({ name: 'filelist', params: { view: 'files' } })
|
||||
})
|
||||
|
||||
it('renders navigation with settings button and search', async () => {
|
||||
const component = render(NavigationView, {
|
||||
router,
|
||||
global: {
|
||||
plugins: [createTestingPinia({
|
||||
createSpy: vi.fn,
|
||||
})],
|
||||
},
|
||||
})
|
||||
|
||||
// see the navigation
|
||||
await expect(component.findByRole('navigation', { name: 'Files' })).resolves.not.toThrow()
|
||||
// see the search box
|
||||
await expect(component.findByRole('searchbox', { name: /Search here/ })).resolves.not.toThrow()
|
||||
// see the settings entry
|
||||
await expect(component.findByRole('link', { name: /Files settings/ })).resolves.not.toThrow()
|
||||
})
|
||||
|
||||
it('renders no quota without storage stats', () => {
|
||||
const component = render(NavigationView, {
|
||||
router,
|
||||
global: {
|
||||
plugins: [createTestingPinia({
|
||||
createSpy: vi.fn,
|
||||
})],
|
||||
},
|
||||
})
|
||||
|
||||
expect(component.baseElement.querySelector('[data-cy-files-navigation-settings-quota]')).toBeNull()
|
||||
})
|
||||
|
||||
it('Unlimited quota shows used storage but no progressbar', async () => {
|
||||
mockInitialState('files', 'storageStats', {
|
||||
used: 1024 * 1024 * 1024,
|
||||
quota: -1,
|
||||
total: 50 * 1024 * 1024 * 1024,
|
||||
})
|
||||
|
||||
const component = render(NavigationView, {
|
||||
router,
|
||||
global: {
|
||||
plugins: [createTestingPinia({
|
||||
createSpy: vi.fn,
|
||||
})],
|
||||
},
|
||||
})
|
||||
|
||||
expect(component.baseElement.querySelector('[data-cy-files-navigation-settings-quota]')).not.toBeNull()
|
||||
|
||||
await expect(component.findByText('1 GB used')).resolves.not.toThrow()
|
||||
await expect(component.findByRole('progressbar')).rejects.toThrow()
|
||||
})
|
||||
|
||||
it('Non-reached quota shows stats and progress', async () => {
|
||||
mockInitialState('files', 'storageStats', {
|
||||
used: 1024 * 1024 * 1024,
|
||||
quota: 5 * 1024 * 1024 * 1024,
|
||||
total: 5 * 1024 * 1024 * 1024,
|
||||
relative: 20, // percent
|
||||
})
|
||||
|
||||
const component = render(NavigationView, {
|
||||
router,
|
||||
global: {
|
||||
plugins: [createTestingPinia({
|
||||
createSpy: vi.fn,
|
||||
})],
|
||||
},
|
||||
})
|
||||
|
||||
await expect(component.findByText('1 GB of 5 GB used')).resolves.not.toThrow()
|
||||
await expect(component.findByRole('progressbar')).resolves.not.toThrow()
|
||||
expect((component.getByRole('progressbar') as HTMLProgressElement).value).toBe(20)
|
||||
})
|
||||
|
||||
it('Reached quota', async () => {
|
||||
mockInitialState('files', 'storageStats', {
|
||||
used: 5 * 1024 * 1024 * 1024,
|
||||
quota: 1024 * 1024 * 1024,
|
||||
total: 1024 * 1024 * 1024,
|
||||
relative: 500, // percent
|
||||
})
|
||||
|
||||
const component = render(NavigationView, {
|
||||
router,
|
||||
global: {
|
||||
plugins: [createTestingPinia({
|
||||
createSpy: vi.fn,
|
||||
})],
|
||||
},
|
||||
})
|
||||
|
||||
await expect(component.findByText('5 GB of 1 GB used')).resolves.not.toThrow()
|
||||
await expect(component.findByRole('progressbar')).resolves.not.toThrow()
|
||||
expect((component.getByRole('progressbar') as HTMLProgressElement).value).toBe(100)
|
||||
})
|
||||
})
|
||||
|
||||
describe('Navigation API', () => {
|
||||
let Navigation: Navigation
|
||||
|
||||
beforeEach(async () => {
|
||||
delete window._nc_navigation
|
||||
Navigation = getNavigation()
|
||||
mockWindow()
|
||||
|
||||
await router.replace({ name: 'filelist', params: { view: 'files' } })
|
||||
})
|
||||
|
||||
beforeEach(resetNavigation)
|
||||
beforeEach(cleanup)
|
||||
|
||||
it('Check API entries rendering', async () => {
|
||||
Navigation.register(createView('files', 'Files'))
|
||||
|
||||
const component = render(NavigationView, {
|
||||
router,
|
||||
global: {
|
||||
plugins: [
|
||||
createTestingPinia({
|
||||
createSpy: vi.fn,
|
||||
}),
|
||||
],
|
||||
},
|
||||
})
|
||||
|
||||
// see the navigation
|
||||
await expect(component.findByRole('navigation', { name: 'Files' })).resolves.not.toThrow()
|
||||
// see the views
|
||||
await expect(component.findByRole('list', { name: 'Views' })).resolves.not.toThrow()
|
||||
// see the entry
|
||||
await expect(component.findByRole('link', { name: 'Files' })).resolves.not.toThrow()
|
||||
// see that the entry has all props
|
||||
const entry = component.getByRole('link', { name: 'Files' })
|
||||
expect(entry.getAttribute('href')).toMatch(/\/apps\/files\/files$/)
|
||||
expect(entry.getAttribute('aria-current')).toBe('page')
|
||||
expect(entry.getAttribute('title')).toBe('Files')
|
||||
})
|
||||
|
||||
it('Adds a new entry and render', async () => {
|
||||
Navigation.register(createView('files', 'Files'))
|
||||
Navigation.register(createView('sharing', 'Sharing'))
|
||||
|
||||
const component = render(NavigationView, {
|
||||
router,
|
||||
global: {
|
||||
plugins: [
|
||||
createTestingPinia({
|
||||
createSpy: vi.fn,
|
||||
}),
|
||||
],
|
||||
},
|
||||
})
|
||||
|
||||
const list = component.getByRole('list', { name: 'Views' })
|
||||
expect(getAllByRole(list, 'listitem')).toHaveLength(2)
|
||||
|
||||
await expect(component.findByRole('link', { name: 'Files' })).resolves.not.toThrow()
|
||||
await expect(component.findByRole('link', { name: 'Sharing' })).resolves.not.toThrow()
|
||||
// see that the entry has all props
|
||||
const entry = component.getByRole('link', { name: 'Sharing' })
|
||||
expect(entry.getAttribute('href')).toMatch(/\/apps\/files\/sharing$/)
|
||||
expect(entry.getAttribute('aria-current')).toBeNull()
|
||||
expect(entry.getAttribute('title')).toBe('Sharing')
|
||||
})
|
||||
|
||||
it('Adds a new children, render and open menu', async () => {
|
||||
Navigation.register(createView('files', 'Files'))
|
||||
Navigation.register(createView('sharing', 'Sharing'))
|
||||
Navigation.register(createView('sharingin', 'Shared with me', 'sharing'))
|
||||
|
||||
const component = render(NavigationView, {
|
||||
router,
|
||||
global: {
|
||||
plugins: [
|
||||
createTestingPinia({
|
||||
createSpy: vi.fn,
|
||||
}),
|
||||
],
|
||||
},
|
||||
})
|
||||
const viewConfigStore = useViewConfigStore()
|
||||
|
||||
const list = component.getByRole('list', { name: 'Views' })
|
||||
expect(getAllByRole(list, 'listitem')).toHaveLength(3)
|
||||
|
||||
// Toggle the sharing entry children
|
||||
const entry = component.getByRole('link', { name: 'Sharing' })
|
||||
expect(entry.getAttribute('aria-expanded')).toBe('false')
|
||||
await fireEvent.click(component.getByRole('button', { name: 'Open menu' }))
|
||||
expect(entry.getAttribute('aria-expanded')).toBe('true')
|
||||
|
||||
// Expect store update to be called
|
||||
expect(viewConfigStore.update).toHaveBeenCalled()
|
||||
expect(viewConfigStore.update).toHaveBeenCalledWith('sharing', 'expanded', true)
|
||||
|
||||
// Validate children
|
||||
await expect(component.findByRole('link', { name: 'Shared with me' })).resolves.not.toThrow()
|
||||
|
||||
await fireEvent.click(component.getByRole('button', { name: 'Collapse menu' }))
|
||||
// Expect store update to be called
|
||||
expect(viewConfigStore.update).toHaveBeenCalledWith('sharing', 'expanded', false)
|
||||
})
|
||||
})
|
||||
|
||||
/**
|
||||
* Remove the mocked initial state
|
||||
*/
|
||||
function removeInitialState(): void {
|
||||
document.querySelectorAll('input[type="hidden"]').forEach((el) => {
|
||||
el.remove()
|
||||
})
|
||||
// clear the cache
|
||||
delete globalThis._nc_initial_state
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper to mock an initial state value
|
||||
* @param app - The app
|
||||
* @param key - The key
|
||||
* @param value - The value
|
||||
*/
|
||||
function mockInitialState(app: string, key: string, value: unknown): void {
|
||||
const el = document.createElement('input')
|
||||
el.value = btoa(JSON.stringify(value))
|
||||
el.id = `initial-state-${app}-${key}`
|
||||
el.type = 'hidden'
|
||||
|
||||
document.head.appendChild(el)
|
||||
}
|
||||
|
||||
function resetNavigation() {
|
||||
const nav = getNavigation()
|
||||
;[...nav.views].forEach(({ id }) => nav.remove(id))
|
||||
nav.setActive(null)
|
||||
}
|
||||
|
||||
function createView(id: string, name: string, parent?: string) {
|
||||
return new View({
|
||||
id,
|
||||
name,
|
||||
getContents: async () => ({ folder: {} as Folder, contents: [] }),
|
||||
icon: FolderSvg,
|
||||
order: 1,
|
||||
parent,
|
||||
})
|
||||
}
|
||||
|
||||
function mockWindow() {
|
||||
window.OCP ??= {}
|
||||
window.OCP.Files ??= {}
|
||||
window.OCP.Files.Router = new RouterService(router)
|
||||
}
|
||||
|
|
@ -50,13 +50,14 @@
|
|||
import type { TemplateFile } from '../types.ts'
|
||||
|
||||
import { getCurrentUser } from '@nextcloud/auth'
|
||||
import { showError, spawnDialog } from '@nextcloud/dialogs'
|
||||
import { showError } from '@nextcloud/dialogs'
|
||||
import { emit } from '@nextcloud/event-bus'
|
||||
import { File, Node } from '@nextcloud/files'
|
||||
import { getClient, getRootPath, resultToNode, getDefaultPropfind } from '@nextcloud/files/dav'
|
||||
import { translate as t } from '@nextcloud/l10n'
|
||||
import { generateRemoteUrl } from '@nextcloud/router'
|
||||
import { normalize, extname, join } from 'path'
|
||||
import { spawnDialog } from '@nextcloud/vue/functions/dialog'
|
||||
import { extname, join, normalize } from 'path'
|
||||
import { defineComponent } from 'vue'
|
||||
import { createFromTemplate, getTemplates, getTemplateFields } from '../services/Templates.js'
|
||||
|
||||
|
|
|
|||
|
|
@ -7,15 +7,15 @@ import type { AxiosResponse } from '@nextcloud/axios'
|
|||
import type { Node } from '@nextcloud/files'
|
||||
import type { StorageConfig } from '../services/externalStorage'
|
||||
|
||||
import LoginSvg from '@mdi/svg/svg/login.svg?raw'
|
||||
import axios from '@nextcloud/axios'
|
||||
import { showError, showSuccess } from '@nextcloud/dialogs'
|
||||
import { DefaultType, FileAction } from '@nextcloud/files'
|
||||
import { t } from '@nextcloud/l10n'
|
||||
import { addPasswordConfirmationInterceptors, PwdConfirmationMode } from '@nextcloud/password-confirmation'
|
||||
import { generateUrl } from '@nextcloud/router'
|
||||
import { showError, showSuccess, spawnDialog } from '@nextcloud/dialogs'
|
||||
import { translate as t } from '@nextcloud/l10n'
|
||||
import axios from '@nextcloud/axios'
|
||||
import LoginSvg from '@mdi/svg/svg/login.svg?raw'
|
||||
import { spawnDialog } from '@nextcloud/vue/functions/dialog'
|
||||
import Vue, { defineAsyncComponent } from 'vue'
|
||||
|
||||
import { FileAction, DefaultType } from '@nextcloud/files'
|
||||
import { STORAGE_STATUS, isMissingAuthConfig } from '../utils/credentialsUtils'
|
||||
import { isNodeExternalStorage } from '../utils/externalStorageUtils'
|
||||
|
||||
|
|
|
|||
|
|
@ -2,15 +2,16 @@
|
|||
* SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
*/
|
||||
import type { Entry, Folder, Node } from '@nextcloud/files'
|
||||
|
||||
import type { NewMenuEntry, Folder, Node } from '@nextcloud/files'
|
||||
|
||||
import { t } from '@nextcloud/l10n'
|
||||
import { isPublicShare } from '@nextcloud/sharing/public'
|
||||
import { spawnDialog } from '@nextcloud/vue/functions/dialog'
|
||||
import { defineAsyncComponent } from 'vue'
|
||||
import { spawnDialog } from '@nextcloud/dialogs'
|
||||
import { translate as t } from '@nextcloud/l10n'
|
||||
import FileUploadSvg from '@mdi/svg/svg/file-upload-outline.svg?raw'
|
||||
|
||||
import Config from '../services/ConfigService'
|
||||
import { isPublicShare } from '@nextcloud/sharing/public'
|
||||
const sharingConfig = new Config()
|
||||
|
||||
const NewFileRequestDialogVue = defineAsyncComponent(() => import('../components/NewFileRequestDialog.vue'))
|
||||
|
|
@ -39,4 +40,4 @@ export const entry = {
|
|||
content,
|
||||
})
|
||||
},
|
||||
} as Entry
|
||||
} as NewMenuEntry
|
||||
|
|
|
|||
|
|
@ -2,16 +2,14 @@
|
|||
* SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
*/
|
||||
import type { Node, View, Folder } from '@nextcloud/files'
|
||||
|
||||
import type { Folder, Node, View } from '@nextcloud/files'
|
||||
|
||||
import { getDialogBuilder } from '@nextcloud/dialogs'
|
||||
import { emit } from '@nextcloud/event-bus'
|
||||
import { FileListAction } from '@nextcloud/files'
|
||||
import { loadState } from '@nextcloud/initial-state'
|
||||
import { t } from '@nextcloud/l10n'
|
||||
import {
|
||||
DialogSeverity,
|
||||
getDialogBuilder,
|
||||
} from '@nextcloud/dialogs'
|
||||
import { emptyTrash } from '../services/api.ts'
|
||||
import { TRASHBIN_VIEW_ID } from '../files_views/trashbinView.ts'
|
||||
|
||||
|
|
@ -41,18 +39,18 @@ export const emptyTrashAction = new FileListAction({
|
|||
async exec(view: View, nodes: Node[]): Promise<null> {
|
||||
const askConfirmation = new Promise<boolean>((resolve) => {
|
||||
const dialog = getDialogBuilder(t('files_trashbin', 'Confirm permanent deletion'))
|
||||
.setSeverity(DialogSeverity.Warning)
|
||||
.setSeverity('warning')
|
||||
// TODO Add note for groupfolders
|
||||
.setText(t('files_trashbin', 'Are you sure you want to permanently delete all files and folders in the trash? This cannot be undone.'))
|
||||
.setButtons([
|
||||
{
|
||||
label: t('files_trashbin', 'Cancel'),
|
||||
type: 'secondary',
|
||||
variant: 'secondary',
|
||||
callback: () => resolve(false),
|
||||
},
|
||||
{
|
||||
label: t('files_trashbin', 'Empty deleted files'),
|
||||
type: 'error',
|
||||
variant: 'error',
|
||||
callback: () => resolve(true),
|
||||
},
|
||||
])
|
||||
|
|
|
|||
|
|
@ -5,15 +5,17 @@
|
|||
|
||||
<script setup lang="ts">
|
||||
import type { OCSResponse } from '@nextcloud/typings/ocs'
|
||||
import { showError, spawnDialog } from '@nextcloud/dialogs'
|
||||
|
||||
import axios from '@nextcloud/axios'
|
||||
import { 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 { spawnDialog } from '@nextcloud/vue/functions/dialog'
|
||||
import { ref } from 'vue'
|
||||
import { textExistingFilesNotEncrypted } from './sharedTexts.ts'
|
||||
|
||||
import axios from '@nextcloud/axios'
|
||||
import logger from '../../logger.ts'
|
||||
|
||||
import NcCheckboxRadioSwitch from '@nextcloud/vue/components/NcCheckboxRadioSwitch'
|
||||
|
|
|
|||
|
|
@ -1,58 +0,0 @@
|
|||
/*!
|
||||
* SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
*/
|
||||
|
||||
import Markdown from './Markdown.vue'
|
||||
|
||||
describe('Markdown component', () => {
|
||||
it('renders links', () => {
|
||||
cy.mount(Markdown, {
|
||||
propsData: {
|
||||
text: 'This is [a link](http://example.com)!',
|
||||
},
|
||||
})
|
||||
|
||||
cy.contains('This is')
|
||||
.find('a')
|
||||
.should('exist')
|
||||
.and('have.attr', 'href', 'http://example.com')
|
||||
.and('contain.text', 'a link')
|
||||
})
|
||||
|
||||
it('renders headings', () => {
|
||||
cy.mount(Markdown, {
|
||||
propsData: {
|
||||
text: '# level 1\nText\n## level 2\nText\n### level 3\nText\n#### level 4\nText\n##### level 5\nText\n###### level 6\nText\n',
|
||||
},
|
||||
})
|
||||
|
||||
for (let level = 1; level <= 6; level++) {
|
||||
cy.contains(`h${level}`, `level ${level}`)
|
||||
.should('be.visible')
|
||||
}
|
||||
})
|
||||
|
||||
it('can limit headings', () => {
|
||||
cy.mount(Markdown, {
|
||||
propsData: {
|
||||
text: '# level 1\nText\n## level 2\nText\n### level 3\nText\n#### level 4\nText\n##### level 5\nText\n###### level 6\nText\n',
|
||||
minHeading: 4,
|
||||
},
|
||||
})
|
||||
|
||||
cy.get('h1').should('not.exist')
|
||||
cy.get('h2').should('not.exist')
|
||||
cy.get('h3').should('not.exist')
|
||||
cy.get('h4')
|
||||
.should('exist')
|
||||
.and('contain.text', 'level 1')
|
||||
cy.get('h5')
|
||||
.should('exist')
|
||||
.and('contain.text', 'level 2')
|
||||
cy.contains('h6', 'level 3').should('exist')
|
||||
cy.contains('h6', 'level 4').should('exist')
|
||||
cy.contains('h6', 'level 5').should('exist')
|
||||
cy.contains('h6', 'level 6').should('exist')
|
||||
})
|
||||
})
|
||||
58
apps/settings/src/components/Markdown.spec.ts
Normal file
58
apps/settings/src/components/Markdown.spec.ts
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
/*!
|
||||
* SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
*/
|
||||
|
||||
import { cleanup, render } from '@testing-library/vue'
|
||||
import { beforeEach, describe, expect, it } from 'vitest'
|
||||
import Markdown from './Markdown.vue'
|
||||
|
||||
describe('Markdown component', () => {
|
||||
beforeEach(cleanup)
|
||||
|
||||
it('renders links', () => {
|
||||
const component = render(Markdown, {
|
||||
props: {
|
||||
text: 'This is [a link](http://example.com)!',
|
||||
},
|
||||
})
|
||||
|
||||
const link = component.getByRole('link')
|
||||
expect(link).toBeInstanceOf(HTMLAnchorElement)
|
||||
expect(link.getAttribute('href')).toBe('http://example.com')
|
||||
expect(link.textContent).toBe('a link')
|
||||
})
|
||||
|
||||
it('renders headings', () => {
|
||||
const component = render(Markdown, {
|
||||
props: {
|
||||
text: '# level 1\nText\n## level 2\nText\n### level 3\nText\n#### level 4\nText\n##### level 5\nText\n###### level 6\nText\n',
|
||||
},
|
||||
})
|
||||
|
||||
for (let level = 1; level <= 6; level++) {
|
||||
const heading = component.getByRole('heading', { level })
|
||||
expect(heading.textContent).toBe(`level ${level}`)
|
||||
}
|
||||
})
|
||||
|
||||
it('can limit headings', async () => {
|
||||
const component = render(Markdown, {
|
||||
props: {
|
||||
text: '# level 1\nText\n## level 2\nText\n### level 3\nText\n#### level 4\nText\n##### level 5\nText\n###### level 6\nText\n',
|
||||
minHeading: 4,
|
||||
},
|
||||
})
|
||||
|
||||
await expect(component.findByRole('heading', { level: 1 })).rejects.toThrow()
|
||||
await expect(component.findByRole('heading', { level: 2 })).rejects.toThrow()
|
||||
await expect(component.findByRole('heading', { level: 3 })).rejects.toThrow()
|
||||
|
||||
expect(component.getByRole('heading', { level: 4 }).textContent).toBe('level 1')
|
||||
expect(component.getByRole('heading', { level: 5 }).textContent).toBe('level 2')
|
||||
await expect(component.findByRole('heading', { level: 6, name: 'level 3' })).resolves.not.toThrow()
|
||||
await expect(component.findByRole('heading', { level: 6, name: 'level 4' })).resolves.not.toThrow()
|
||||
await expect(component.findByRole('heading', { level: 6, name: 'level 5' })).resolves.not.toThrow()
|
||||
await expect(component.findByRole('heading', { level: 6, name: 'level 6' })).resolves.not.toThrow()
|
||||
})
|
||||
})
|
||||
|
|
@ -2,13 +2,14 @@
|
|||
* SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
*/
|
||||
import { Permission, type Node } from '@nextcloud/files'
|
||||
|
||||
import { defineAsyncComponent } from 'vue'
|
||||
import { FileAction } from '@nextcloud/files'
|
||||
import { isPublicShare } from '@nextcloud/sharing/public'
|
||||
import { spawnDialog } from '@nextcloud/dialogs'
|
||||
import type { Node } from '@nextcloud/files'
|
||||
|
||||
import { FileAction, Permission } from '@nextcloud/files'
|
||||
import { t } from '@nextcloud/l10n'
|
||||
import { isPublicShare } from '@nextcloud/sharing/public'
|
||||
import { spawnDialog } from '@nextcloud/vue/functions/dialog'
|
||||
import { defineAsyncComponent } from 'vue'
|
||||
|
||||
import TagMultipleSvg from '@mdi/svg/svg/tag-multiple-outline.svg?raw'
|
||||
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -10,10 +10,9 @@ import $ from 'jquery'
|
|||
|
||||
import IconMove from '@mdi/svg/svg/folder-move.svg?raw'
|
||||
import IconCopy from '@mdi/svg/svg/folder-multiple-outline.svg?raw'
|
||||
|
||||
import OC from './index.js'
|
||||
import { DialogBuilder, FilePickerType, getFilePickerBuilder, spawnDialog } from '@nextcloud/dialogs'
|
||||
import { translate as t } from '@nextcloud/l10n'
|
||||
import { DialogBuilder, FilePickerType, getFilePickerBuilder } from '@nextcloud/dialogs'
|
||||
import { t } from '@nextcloud/l10n'
|
||||
import { spawnDialog } from '@nextcloud/vue/functions/dialog'
|
||||
import { basename } from 'path'
|
||||
import { defineAsyncComponent } from 'vue'
|
||||
|
||||
|
|
@ -111,7 +110,7 @@ const Dialogs = {
|
|||
? [
|
||||
{
|
||||
label: t('core', 'Yes'),
|
||||
type: 'error',
|
||||
variant: 'error',
|
||||
callback: () => {
|
||||
callback.clicked = true
|
||||
callback(true)
|
||||
|
|
@ -149,7 +148,7 @@ const Dialogs = {
|
|||
},
|
||||
{
|
||||
label: t('core', 'Yes'),
|
||||
type: 'primary',
|
||||
variant: 'primary',
|
||||
callback: () => {
|
||||
callback.clicked = true
|
||||
callback(true)
|
||||
|
|
@ -272,7 +271,7 @@ const Dialogs = {
|
|||
builder.addButton({
|
||||
callback: legacyCallback(callback, button.type),
|
||||
label: button.text,
|
||||
type: button.defaultButton ? 'primary' : 'secondary',
|
||||
variant: button.defaultButton ? 'primary' : 'secondary',
|
||||
})
|
||||
})
|
||||
} else {
|
||||
|
|
@ -285,14 +284,14 @@ const Dialogs = {
|
|||
buttons.push({
|
||||
callback: legacyCallback(callback, FilePickerType.Choose),
|
||||
label: node && !this.multiSelect ? t('core', 'Choose {file}', { file: target }) : t('core', 'Choose'),
|
||||
type: 'primary',
|
||||
variant: 'primary',
|
||||
})
|
||||
}
|
||||
if (type === FilePickerType.CopyMove || type === FilePickerType.Copy) {
|
||||
buttons.push({
|
||||
callback: legacyCallback(callback, FilePickerType.Copy),
|
||||
label: target ? t('core', 'Copy to {target}', { target }) : t('core', 'Copy'),
|
||||
type: 'primary',
|
||||
variant: 'primary',
|
||||
icon: IconCopy,
|
||||
})
|
||||
}
|
||||
|
|
@ -300,7 +299,7 @@ const Dialogs = {
|
|||
buttons.push({
|
||||
callback: legacyCallback(callback, FilePickerType.Move),
|
||||
label: target ? t('core', 'Move to {target}', { target }) : t('core', 'Move'),
|
||||
type: type === FilePickerType.Move ? 'primary' : 'secondary',
|
||||
variant: type === FilePickerType.Move ? 'primary' : 'secondary',
|
||||
icon: IconMove,
|
||||
})
|
||||
}
|
||||
|
|
@ -375,7 +374,7 @@ const Dialogs = {
|
|||
})
|
||||
buttonList.push({
|
||||
label: buttons?.confirm ?? t('core', 'Yes'),
|
||||
type: 'primary',
|
||||
variant: 'primary',
|
||||
callback: () => {
|
||||
callback._clicked = true
|
||||
callback(true)
|
||||
|
|
@ -385,7 +384,7 @@ const Dialogs = {
|
|||
case Dialogs.OK_BUTTONS:
|
||||
buttonList.push({
|
||||
label: buttons?.confirm ?? t('core', 'OK'),
|
||||
type: 'primary',
|
||||
variant: 'primary',
|
||||
callback: () => {
|
||||
callback._clicked = true
|
||||
callback(true)
|
||||
|
|
|
|||
|
|
@ -3,19 +3,23 @@
|
|||
- SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
-->
|
||||
<template>
|
||||
<PublicPageMenuEntry :id="id"
|
||||
:icon="icon"
|
||||
href="#"
|
||||
:label="label"
|
||||
@click="openDialog" />
|
||||
<Fragment>
|
||||
<PublicPageMenuEntry :id="id"
|
||||
:icon="icon"
|
||||
href="#"
|
||||
:label="label"
|
||||
@click="openDialog" />
|
||||
<PublicPageMenuExternalDialog v-if="showDialog" :label="label" />
|
||||
</Fragment>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { spawnDialog } from '@nextcloud/dialogs'
|
||||
import { ref } from 'vue'
|
||||
import { Fragment } from 'vue-frag'
|
||||
import PublicPageMenuEntry from './PublicPageMenuEntry.vue'
|
||||
import PublicPageMenuExternalDialog from './PublicPageMenuExternalDialog.vue'
|
||||
|
||||
const props = defineProps<{
|
||||
defineProps<{
|
||||
id: string
|
||||
label: string
|
||||
icon: string
|
||||
|
|
@ -26,11 +30,13 @@ const emit = defineEmits<{
|
|||
(e: 'click'): void
|
||||
}>()
|
||||
|
||||
const showDialog = ref(false)
|
||||
|
||||
/**
|
||||
* Open the "create federated share" dialog
|
||||
*/
|
||||
function openDialog() {
|
||||
spawnDialog(PublicPageMenuExternalDialog, { label: props.label })
|
||||
showDialog.value = true
|
||||
emit('click')
|
||||
}
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -1,375 +0,0 @@
|
|||
/**
|
||||
* SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
*/
|
||||
import type { SetupConfig, SetupLinks } from '../install'
|
||||
import SetupView from './Setup.vue'
|
||||
|
||||
import '../../css/guest.css'
|
||||
|
||||
const defaultConfig = Object.freeze({
|
||||
adminlogin: '',
|
||||
adminpass: '',
|
||||
dbuser: '',
|
||||
dbpass: '',
|
||||
dbname: '',
|
||||
dbtablespace: '',
|
||||
dbhost: '',
|
||||
dbtype: '',
|
||||
databases: {
|
||||
sqlite: 'SQLite',
|
||||
mysql: 'MySQL/MariaDB',
|
||||
pgsql: 'PostgreSQL',
|
||||
},
|
||||
directory: '',
|
||||
hasAutoconfig: false,
|
||||
htaccessWorking: true,
|
||||
serverRoot: '/var/www/html',
|
||||
errors: [],
|
||||
}) as SetupConfig
|
||||
|
||||
const links = {
|
||||
adminInstall: 'https://docs.nextcloud.com/server/32/go.php?to=admin-install',
|
||||
adminSourceInstall: 'https://docs.nextcloud.com/server/32/go.php?to=admin-source_install',
|
||||
adminDBConfiguration: 'https://docs.nextcloud.com/server/32/go.php?to=admin-db-configuration',
|
||||
} as SetupLinks
|
||||
|
||||
describe('Default setup page', () => {
|
||||
beforeEach(() => {
|
||||
cy.mockInitialState('core', 'links', links)
|
||||
})
|
||||
|
||||
afterEach(() => cy.unmockInitialState())
|
||||
|
||||
it('Renders default config', () => {
|
||||
cy.mockInitialState('core', 'config', defaultConfig)
|
||||
cy.mount(SetupView)
|
||||
|
||||
cy.get('[data-cy-setup-form]').scrollIntoView()
|
||||
cy.get('[data-cy-setup-form]').should('be.visible')
|
||||
|
||||
// Single note is the footer help
|
||||
cy.get('[data-cy-setup-form-note]')
|
||||
.should('have.length', 1)
|
||||
.should('be.visible')
|
||||
cy.get('[data-cy-setup-form-note]').should('contain', 'See the documentation')
|
||||
|
||||
// DB radio selectors
|
||||
cy.get('[data-cy-setup-form-field^="dbtype"]')
|
||||
.should('exist')
|
||||
.find('input')
|
||||
.should('be.checked')
|
||||
|
||||
cy.get('[data-cy-setup-form-field="dbtype-mysql"]').should('exist')
|
||||
cy.get('[data-cy-setup-form-field="dbtype-pgsql"]').should('exist')
|
||||
cy.get('[data-cy-setup-form-field="dbtype-oci"]').should('not.exist')
|
||||
|
||||
// Sqlite warning
|
||||
cy.get('[data-cy-setup-form-db-note="sqlite"]')
|
||||
.should('be.visible')
|
||||
|
||||
// admin login, password, data directory and 3 DB radio selectors
|
||||
cy.get('[data-cy-setup-form-field]')
|
||||
.should('be.visible')
|
||||
.should('have.length', 6)
|
||||
})
|
||||
|
||||
it('Renders single DB sqlite', () => {
|
||||
const config = {
|
||||
...defaultConfig,
|
||||
databases: {
|
||||
sqlite: 'SQLite',
|
||||
},
|
||||
}
|
||||
cy.mockInitialState('core', 'config', config)
|
||||
cy.mount(SetupView)
|
||||
|
||||
cy.get('[data-cy-setup-form-field^="dbtype"]')
|
||||
.should('exist')
|
||||
.should('not.be.visible')
|
||||
.find('input')
|
||||
.should('be.checked')
|
||||
|
||||
cy.get('[data-cy-setup-form-field="dbtype-sqlite"]').should('exist')
|
||||
|
||||
// Two warnings: sqlite and single db support
|
||||
cy.get('[data-cy-setup-form-db-note="sqlite"]')
|
||||
.should('be.visible')
|
||||
cy.get('[data-cy-setup-form-db-note="single-db"]')
|
||||
.should('be.visible')
|
||||
|
||||
// Admin login, password, data directory and db type
|
||||
cy.get('[data-cy-setup-form-field]')
|
||||
.should('be.visible')
|
||||
.should('have.length', 4)
|
||||
})
|
||||
|
||||
it('Renders single DB mysql', () => {
|
||||
const config = {
|
||||
...defaultConfig,
|
||||
databases: {
|
||||
mysql: 'MySQL/MariaDB',
|
||||
},
|
||||
}
|
||||
cy.mockInitialState('core', 'config', config)
|
||||
cy.mount(SetupView)
|
||||
|
||||
cy.get('[data-cy-setup-form-field^="dbtype"]')
|
||||
.should('exist')
|
||||
.should('not.be.visible')
|
||||
.find('input')
|
||||
.should('be.checked')
|
||||
|
||||
// Single db support warning
|
||||
cy.get('[data-cy-setup-form-db-note="single-db"]')
|
||||
.should('be.visible')
|
||||
.invoke('html')
|
||||
.should('contains', links.adminSourceInstall)
|
||||
|
||||
// No SQLite warning
|
||||
cy.get('[data-cy-setup-form-db-note="sqlite"]')
|
||||
.should('not.exist')
|
||||
|
||||
// Admin login, password, data directory, db type, db user,
|
||||
// db password, db name and db host
|
||||
cy.get('[data-cy-setup-form-field]')
|
||||
.should('be.visible')
|
||||
.should('have.length', 8)
|
||||
})
|
||||
|
||||
it('Changes fields from sqlite to mysql then oci', () => {
|
||||
const config = {
|
||||
...defaultConfig,
|
||||
databases: {
|
||||
sqlite: 'SQLite',
|
||||
mysql: 'MySQL/MariaDB',
|
||||
pgsql: 'PostgreSQL',
|
||||
oci: 'Oracle',
|
||||
},
|
||||
}
|
||||
cy.mockInitialState('core', 'config', config)
|
||||
cy.mount(SetupView)
|
||||
|
||||
// SQLite selected
|
||||
cy.get('[data-cy-setup-form-field="dbtype-sqlite"]')
|
||||
.should('be.visible')
|
||||
.find('input')
|
||||
.should('be.checked')
|
||||
|
||||
// Admin login, password, data directory and 4 DB radio selectors
|
||||
cy.get('[data-cy-setup-form-field]')
|
||||
.should('be.visible')
|
||||
.should('have.length', 7)
|
||||
|
||||
// Change to MySQL
|
||||
cy.get('[data-cy-setup-form-field="dbtype-mysql"]').click()
|
||||
cy.get('[data-cy-setup-form-field="dbtype-mysql"] input').should('be.checked')
|
||||
|
||||
// Admin login, password, data directory, db user, db password,
|
||||
// db name, db host and 4 DB radio selectors
|
||||
cy.get('[data-cy-setup-form-field]')
|
||||
.should('be.visible')
|
||||
.should('have.length', 11)
|
||||
|
||||
// Change to Oracle
|
||||
cy.get('[data-cy-setup-form-field="dbtype-oci"]').click()
|
||||
cy.get('[data-cy-setup-form-field="dbtype-oci"] input').should('be.checked')
|
||||
|
||||
// Admin login, password, data directory, db user, db password,
|
||||
// db name, db table space, db host and 4 DB radio selectors
|
||||
cy.get('[data-cy-setup-form-field]')
|
||||
.should('be.visible')
|
||||
.should('have.length', 12)
|
||||
cy.get('[data-cy-setup-form-field="dbtablespace"]')
|
||||
.should('be.visible')
|
||||
})
|
||||
})
|
||||
|
||||
describe('Setup page with errors and warning', () => {
|
||||
beforeEach(() => {
|
||||
cy.mockInitialState('core', 'links', links)
|
||||
})
|
||||
|
||||
afterEach(() => cy.unmockInitialState())
|
||||
|
||||
it('Renders error from backend', () => {
|
||||
const config = {
|
||||
...defaultConfig,
|
||||
errors: [
|
||||
{
|
||||
error: 'Error message',
|
||||
hint: 'Error hint',
|
||||
},
|
||||
],
|
||||
}
|
||||
cy.mockInitialState('core', 'config', config)
|
||||
cy.mount(SetupView)
|
||||
|
||||
// Error message and hint
|
||||
cy.get('[data-cy-setup-form-note="error"]')
|
||||
.should('be.visible')
|
||||
.should('have.length', 1)
|
||||
.should('contain', 'Error message')
|
||||
.should('contain', 'Error hint')
|
||||
})
|
||||
|
||||
it('Renders errors from backend', () => {
|
||||
const config = {
|
||||
...defaultConfig,
|
||||
errors: [
|
||||
'Error message 1',
|
||||
{
|
||||
error: 'Error message',
|
||||
hint: 'Error hint',
|
||||
},
|
||||
],
|
||||
}
|
||||
cy.mockInitialState('core', 'config', config)
|
||||
cy.mount(SetupView)
|
||||
|
||||
// Error message and hint
|
||||
cy.get('[data-cy-setup-form-note="error"]')
|
||||
.should('be.visible')
|
||||
.should('have.length', 2)
|
||||
cy.get('[data-cy-setup-form-note="error"]').eq(0)
|
||||
.should('contain', 'Error message 1')
|
||||
cy.get('[data-cy-setup-form-note="error"]').eq(1)
|
||||
.should('contain', 'Error message')
|
||||
.should('contain', 'Error hint')
|
||||
})
|
||||
|
||||
it('Renders all the submitted fields on error', () => {
|
||||
const config = {
|
||||
...defaultConfig,
|
||||
adminlogin: 'admin',
|
||||
adminpass: 'password',
|
||||
dbname: 'nextcloud',
|
||||
dbtype: 'mysql',
|
||||
dbuser: 'nextcloud',
|
||||
dbpass: 'password',
|
||||
dbhost: 'localhost',
|
||||
directory: '/var/www/html/nextcloud',
|
||||
} as SetupConfig
|
||||
cy.mockInitialState('core', 'config', config)
|
||||
cy.mount(SetupView)
|
||||
|
||||
cy.get('input[data-cy-setup-form-field="adminlogin"]')
|
||||
.should('have.value', 'admin')
|
||||
cy.get('input[data-cy-setup-form-field="adminpass"]')
|
||||
.should('have.value', 'password')
|
||||
cy.get('[data-cy-setup-form-field="dbtype-mysql"] input')
|
||||
.should('be.checked')
|
||||
cy.get('input[data-cy-setup-form-field="dbname"]')
|
||||
.should('have.value', 'nextcloud')
|
||||
cy.get('input[data-cy-setup-form-field="dbuser"]')
|
||||
.should('have.value', 'nextcloud')
|
||||
cy.get('input[data-cy-setup-form-field="dbpass"]')
|
||||
.should('have.value', 'password')
|
||||
cy.get('input[data-cy-setup-form-field="dbhost"]')
|
||||
.should('have.value', 'localhost')
|
||||
cy.get('input[data-cy-setup-form-field="directory"]')
|
||||
.should('have.value', '/var/www/html/nextcloud')
|
||||
})
|
||||
|
||||
it('Renders the htaccess warning', () => {
|
||||
const config = {
|
||||
...defaultConfig,
|
||||
htaccessWorking: false,
|
||||
}
|
||||
cy.mockInitialState('core', 'config', config)
|
||||
cy.mount(SetupView)
|
||||
|
||||
cy.get('[data-cy-setup-form-note="htaccess"]')
|
||||
.should('be.visible')
|
||||
.should('contain', 'Security warning')
|
||||
.invoke('html')
|
||||
.should('contains', links.adminInstall)
|
||||
})
|
||||
})
|
||||
|
||||
describe('Setup page with autoconfig', () => {
|
||||
beforeEach(() => {
|
||||
cy.mockInitialState('core', 'links', links)
|
||||
})
|
||||
|
||||
afterEach(() => cy.unmockInitialState())
|
||||
|
||||
it('Renders autoconfig', () => {
|
||||
const config = {
|
||||
...defaultConfig,
|
||||
hasAutoconfig: true,
|
||||
dbname: 'nextcloud',
|
||||
dbtype: 'mysql',
|
||||
dbuser: 'nextcloud',
|
||||
dbpass: 'password',
|
||||
dbhost: 'localhost',
|
||||
directory: '/var/www/html/nextcloud',
|
||||
} as SetupConfig
|
||||
cy.mockInitialState('core', 'config', config)
|
||||
cy.mount(SetupView)
|
||||
|
||||
// Autoconfig info note
|
||||
cy.get('[data-cy-setup-form-note="autoconfig"]')
|
||||
.should('be.visible')
|
||||
.should('contain', 'Autoconfig file detected')
|
||||
|
||||
// Database and storage section is hidden as already set in autoconfig
|
||||
cy.get('[data-cy-setup-form-advanced-config]').should('be.visible')
|
||||
.invoke('attr', 'open')
|
||||
.should('equal', undefined)
|
||||
|
||||
// Oracle tablespace is hidden
|
||||
cy.get('[data-cy-setup-form-field="dbtablespace"]')
|
||||
.should('not.exist')
|
||||
})
|
||||
})
|
||||
|
||||
describe('Submit a full form sends the data', () => {
|
||||
beforeEach(() => {
|
||||
cy.mockInitialState('core', 'links', links)
|
||||
})
|
||||
|
||||
afterEach(() => cy.unmockInitialState())
|
||||
|
||||
it('Submits a full form', () => {
|
||||
const config = {
|
||||
...defaultConfig,
|
||||
adminlogin: 'admin',
|
||||
adminpass: 'password',
|
||||
dbname: 'nextcloud',
|
||||
dbtype: 'mysql',
|
||||
dbuser: 'nextcloud',
|
||||
dbpass: 'password',
|
||||
dbhost: 'localhost',
|
||||
dbtablespace: 'tablespace',
|
||||
directory: '/var/www/html/nextcloud',
|
||||
} as SetupConfig
|
||||
|
||||
cy.intercept('POST', '**', {
|
||||
delay: 2000,
|
||||
}).as('setup')
|
||||
|
||||
cy.mockInitialState('core', 'config', config)
|
||||
cy.mount(SetupView)
|
||||
|
||||
// Not chaining breaks the test as the POST prevents the element from being retrieved twice
|
||||
// eslint-disable-next-line cypress/unsafe-to-chain-command
|
||||
cy.get('[data-cy-setup-form-submit]')
|
||||
.click()
|
||||
.invoke('attr', 'disabled')
|
||||
.should('equal', 'disabled', { timeout: 500 })
|
||||
|
||||
cy.wait('@setup')
|
||||
.its('request.body')
|
||||
.should('deep.equal', new URLSearchParams({
|
||||
adminlogin: 'admin',
|
||||
adminpass: 'password',
|
||||
directory: '/var/www/html/nextcloud',
|
||||
dbtype: 'mysql',
|
||||
dbuser: 'nextcloud',
|
||||
dbpass: 'password',
|
||||
dbname: 'nextcloud',
|
||||
dbhost: 'localhost',
|
||||
}).toString())
|
||||
})
|
||||
})
|
||||
306
core/src/views/Setup.spec.ts
Normal file
306
core/src/views/Setup.spec.ts
Normal file
|
|
@ -0,0 +1,306 @@
|
|||
/**
|
||||
* SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
*/
|
||||
|
||||
import type { SetupConfig, SetupLinks } from '../install.ts'
|
||||
|
||||
import { cleanup, findByRole, fireEvent, getAllByRole, getByRole, render } from '@testing-library/vue'
|
||||
import { beforeEach, describe, expect, it } from 'vitest'
|
||||
import SetupView from './Setup.vue'
|
||||
|
||||
import '../../css/guest.css'
|
||||
|
||||
const defaultConfig = Object.freeze({
|
||||
adminlogin: '',
|
||||
adminpass: '',
|
||||
dbuser: '',
|
||||
dbpass: '',
|
||||
dbname: '',
|
||||
dbtablespace: '',
|
||||
dbhost: '',
|
||||
dbtype: '',
|
||||
databases: {
|
||||
sqlite: 'SQLite',
|
||||
mysql: 'MySQL/MariaDB',
|
||||
pgsql: 'PostgreSQL',
|
||||
},
|
||||
directory: '',
|
||||
hasAutoconfig: false,
|
||||
htaccessWorking: true,
|
||||
serverRoot: '/var/www/html',
|
||||
errors: [],
|
||||
}) as SetupConfig
|
||||
|
||||
const links = {
|
||||
adminInstall: 'https://docs.nextcloud.com/server/32/go.php?to=admin-install',
|
||||
adminSourceInstall: 'https://docs.nextcloud.com/server/32/go.php?to=admin-source_install',
|
||||
adminDBConfiguration: 'https://docs.nextcloud.com/server/32/go.php?to=admin-db-configuration',
|
||||
} as SetupLinks
|
||||
|
||||
describe('Default setup page', () => {
|
||||
beforeEach(cleanup)
|
||||
beforeEach(() => {
|
||||
removeInitialState()
|
||||
mockInitialState('core', 'links', links)
|
||||
})
|
||||
|
||||
it('Renders default config', async () => {
|
||||
mockInitialState('core', 'config', defaultConfig)
|
||||
const component = render(SetupView)
|
||||
|
||||
// Single note is the footer help
|
||||
expect(component.getAllByRole('note')).toHaveLength(1)
|
||||
expect(component.getByRole('note').textContent).toContain('See the documentation')
|
||||
|
||||
// DB radio selectors
|
||||
const dbTypes = component.getByRole('group', { name: 'Database type' })
|
||||
expect(getAllByRole(dbTypes, 'radio')).toHaveLength(3)
|
||||
await expect(findByRole(dbTypes, 'radio', { checked: true })).resolves.not.toThrow()
|
||||
await expect(findByRole(dbTypes, 'radio', { name: /MySQL/ })).resolves.not.toThrow()
|
||||
await expect(findByRole(dbTypes, 'radio', { name: /PostgreSQL/ })).resolves.not.toThrow()
|
||||
await expect(findByRole(dbTypes, 'radio', { name: /SQLite/ })).resolves.not.toThrow()
|
||||
|
||||
// Sqlite warning
|
||||
await expect(component.findByText(/SQLite should only be used for minimal and development instances/)).resolves.not.toThrow()
|
||||
|
||||
// admin login, password, data directory
|
||||
await expect(component.findByRole('textbox', { name: 'Administration account name' })).resolves.not.toThrow()
|
||||
await expect(component.findByLabelText('Administration account password')).resolves.not.toThrow()
|
||||
await expect(component.findByRole('textbox', { name: 'Data folder' })).resolves.not.toThrow()
|
||||
})
|
||||
|
||||
it('Renders single DB sqlite', async () => {
|
||||
mockInitialState('core', 'config', {
|
||||
...defaultConfig,
|
||||
databases: {
|
||||
sqlite: 'SQLite',
|
||||
},
|
||||
})
|
||||
const component = render(SetupView)
|
||||
|
||||
const dbTypes = component.getByRole('group', { name: 'Database type' })
|
||||
expect(getAllByRole(dbTypes, 'radio', { hidden: true })).toHaveLength(1)
|
||||
await expect(findByRole(dbTypes, 'radio', { name: /SQLite/, hidden: true })).resolves.not.toThrow()
|
||||
|
||||
// Two warnings: sqlite and single db support
|
||||
await expect(component.findByText(/Only SQLite is available./)).resolves.not.toThrow()
|
||||
await expect(component.findByText(/SQLite should only be used for minimal and development instances/)).resolves.not.toThrow()
|
||||
})
|
||||
|
||||
it('Renders single DB mysql', async () => {
|
||||
mockInitialState('core', 'config', {
|
||||
...defaultConfig,
|
||||
databases: {
|
||||
mysql: 'MySQL/MariaDB',
|
||||
},
|
||||
})
|
||||
const component = render(SetupView)
|
||||
|
||||
const dbTypes = component.getByRole('group', { name: 'Database type' })
|
||||
expect(getAllByRole(dbTypes, 'radio', { hidden: true })).toHaveLength(1)
|
||||
await expect(findByRole(dbTypes, 'radio', { name: /MySQL/, hidden: true })).resolves.not.toThrow()
|
||||
|
||||
// Single db support warning
|
||||
await expect(component.findByText(/Only MySQL.* is available./)).resolves.not.toThrow()
|
||||
|
||||
// No SQLite warning
|
||||
await expect(component.findByText(/SQLite should only be used for minimal and development instances/)).rejects.toThrow()
|
||||
|
||||
// database config
|
||||
await expect(component.findByRole('textbox', { name: /Database user/ })).resolves.not.toThrow()
|
||||
await expect(component.findByRole('textbox', { name: /Database name/ })).resolves.not.toThrow()
|
||||
await expect(component.findByRole('textbox', { name: /Database host/ })).resolves.not.toThrow()
|
||||
await expect(component.findByLabelText(/Database password/)).resolves.not.toThrow()
|
||||
})
|
||||
|
||||
it('Changes fields from sqlite to mysql then oci', async () => {
|
||||
mockInitialState('core', 'config', {
|
||||
...defaultConfig,
|
||||
databases: {
|
||||
sqlite: 'SQLite',
|
||||
mysql: 'MySQL/MariaDB',
|
||||
pgsql: 'PostgreSQL',
|
||||
oci: 'Oracle',
|
||||
},
|
||||
})
|
||||
const component = render(SetupView)
|
||||
|
||||
// SQLite selected
|
||||
await expect(component.findByRole('radio', { name: /SQLite/, checked: true })).resolves.not.toThrow()
|
||||
|
||||
// 4 db toggles
|
||||
const dbTypes = component.getByRole('group', { name: 'Database type' })
|
||||
expect(getAllByRole(dbTypes, 'radio')).toHaveLength(4)
|
||||
|
||||
// but no database config fields
|
||||
await expect(findByRole(dbTypes, 'group', { name: /Database connection/ })).rejects.toThrow()
|
||||
|
||||
// Change to MySQL
|
||||
await fireEvent.click(getByRole(dbTypes, 'radio', { name: /MySQL/, checked: false }))
|
||||
expect((getByRole(dbTypes, 'radio', { name: /SQLite/, checked: false }) as HTMLInputElement).checked).toBe(false)
|
||||
expect((getByRole(dbTypes, 'radio', { name: /MySQL/, checked: true }) as HTMLInputElement).checked).toBe(true)
|
||||
|
||||
// now the database config fields are visible
|
||||
await expect(component.findByRole('group', { name: /Database connection/ })).resolves.not.toThrow()
|
||||
// but not the Database tablespace
|
||||
await expect(component.findByRole('textbox', { name: /Database tablespace/ })).rejects.toThrow()
|
||||
|
||||
// Change to Oracle
|
||||
await fireEvent.click(getByRole(dbTypes, 'radio', { name: /Oracle/, checked: false }))
|
||||
|
||||
// see database config fields are visible and tablespace
|
||||
await expect(component.findByRole('textbox', { name: /Database tablespace/ })).resolves.not.toThrow()
|
||||
await expect(component.findByRole('group', { name: /Database connection/ })).resolves.not.toThrow()
|
||||
})
|
||||
})
|
||||
|
||||
describe('Setup page with errors and warning', () => {
|
||||
beforeEach(cleanup)
|
||||
beforeEach(() => {
|
||||
removeInitialState()
|
||||
mockInitialState('core', 'links', links)
|
||||
})
|
||||
|
||||
it('Renders error from backend', async () => {
|
||||
mockInitialState('core', 'config', {
|
||||
...defaultConfig,
|
||||
errors: [
|
||||
{
|
||||
error: 'Error message',
|
||||
hint: 'Error hint',
|
||||
},
|
||||
],
|
||||
})
|
||||
const component = render(SetupView)
|
||||
|
||||
// Error message and hint
|
||||
await expect(component.findByText('Error message')).resolves.not.toThrow()
|
||||
await expect(component.findByText('Error hint')).resolves.not.toThrow()
|
||||
})
|
||||
|
||||
it('Renders errors from backend', async () => {
|
||||
const config = {
|
||||
...defaultConfig,
|
||||
errors: [
|
||||
'Error message 1',
|
||||
{
|
||||
error: 'Error message 2',
|
||||
hint: 'Error hint',
|
||||
},
|
||||
],
|
||||
}
|
||||
mockInitialState('core', 'config', config)
|
||||
const component = render(SetupView)
|
||||
|
||||
// Error message and hint
|
||||
await expect(component.findByText('Error message 1')).resolves.not.toThrow()
|
||||
await expect(component.findByText('Error message 2')).resolves.not.toThrow()
|
||||
await expect(component.findByText('Error hint')).resolves.not.toThrow()
|
||||
})
|
||||
|
||||
it('Renders all the submitted fields on error', async () => {
|
||||
const config = {
|
||||
...defaultConfig,
|
||||
adminlogin: 'admin',
|
||||
adminpass: 'password',
|
||||
dbname: 'nextcloud',
|
||||
dbtype: 'mysql',
|
||||
dbuser: 'nextcloud',
|
||||
dbpass: 'password',
|
||||
dbhost: 'localhost',
|
||||
directory: '/var/www/html/nextcloud',
|
||||
} as SetupConfig
|
||||
mockInitialState('core', 'config', config)
|
||||
const component = render(SetupView)
|
||||
|
||||
await expect(component.findByRole('textbox', { name: 'Data folder' })).resolves.not.toThrow()
|
||||
expect((component.getByRole('textbox', { name: 'Data folder' }) as HTMLInputElement).value).toBe('/var/www/html/nextcloud')
|
||||
|
||||
await expect(component.findByRole('textbox', { name: 'Administration account name' })).resolves.not.toThrow()
|
||||
expect((component.getByRole('textbox', { name: 'Administration account name' }) as HTMLInputElement).value).toBe('admin')
|
||||
|
||||
await expect(component.findByLabelText('Administration account password')).resolves.not.toThrow()
|
||||
expect((component.getByLabelText('Administration account password') as HTMLInputElement).value).toBe('password')
|
||||
|
||||
await expect(component.findByRole('radio', { name: /MySQL/, checked: true, hidden: true })).resolves.not.toThrow()
|
||||
await expect(component.findByRole('textbox', { name: 'Database name' })).resolves.not.toThrow()
|
||||
expect((component.getByRole('textbox', { name: 'Database name' }) as HTMLInputElement).value).toBe('nextcloud')
|
||||
await expect(component.findByRole('textbox', { name: 'Database user' })).resolves.not.toThrow()
|
||||
expect((component.getByRole('textbox', { name: 'Database user' }) as HTMLInputElement).value).toBe('nextcloud')
|
||||
await expect(component.findByRole('textbox', { name: 'Database host' })).resolves.not.toThrow()
|
||||
expect((component.getByRole('textbox', { name: 'Database host' }) as HTMLInputElement).value).toBe('localhost')
|
||||
await expect(component.findByLabelText('Database password')).resolves.not.toThrow()
|
||||
expect((component.getByLabelText('Database password') as HTMLInputElement).value).toBe('password')
|
||||
})
|
||||
|
||||
it('Renders the htaccess warning', async () => {
|
||||
const config = {
|
||||
...defaultConfig,
|
||||
htaccessWorking: false,
|
||||
}
|
||||
mockInitialState('core', 'config', config)
|
||||
const component = render(SetupView)
|
||||
|
||||
await expect(component.findByText('Security warning')).resolves.not.toThrow()
|
||||
})
|
||||
})
|
||||
|
||||
describe('Setup page with autoconfig', () => {
|
||||
beforeEach(cleanup)
|
||||
beforeEach(() => {
|
||||
removeInitialState()
|
||||
mockInitialState('core', 'links', links)
|
||||
})
|
||||
|
||||
it('Renders autoconfig', async () => {
|
||||
const config = {
|
||||
...defaultConfig,
|
||||
hasAutoconfig: true,
|
||||
dbname: 'nextcloud',
|
||||
dbtype: 'mysql',
|
||||
dbuser: 'nextcloud',
|
||||
dbpass: 'password',
|
||||
dbhost: 'localhost',
|
||||
directory: '/var/www/html/nextcloud',
|
||||
} as SetupConfig
|
||||
mockInitialState('core', 'config', config)
|
||||
const component = render(SetupView)
|
||||
|
||||
// Autoconfig info note
|
||||
await expect(component.findByText('Autoconfig file detected')).resolves.not.toThrow()
|
||||
|
||||
// Oracle tablespace is hidden
|
||||
await expect(component.findByRole('textbox', { name: 'Database tablespace' })).rejects.toThrow()
|
||||
|
||||
// Database and storage section is hidden as already set in autoconfig
|
||||
await expect(component.findByText('Storage & database')).resolves.not.toThrow()
|
||||
expect(component.getByText('Storage & database').closest('details')!.getAttribute('hidden')).toBeNull()
|
||||
})
|
||||
})
|
||||
|
||||
/**
|
||||
* Remove the mocked initial state
|
||||
*/
|
||||
function removeInitialState(): void {
|
||||
document.querySelectorAll('input[type="hidden"]').forEach((el) => {
|
||||
el.remove()
|
||||
})
|
||||
// clear the cache
|
||||
delete globalThis._nc_initial_state
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper to mock an initial state value
|
||||
* @param app - The app
|
||||
* @param key - The key
|
||||
* @param value - The value
|
||||
*/
|
||||
function mockInitialState(app: string, key: string, value: unknown): void {
|
||||
const el = document.createElement('input')
|
||||
el.value = btoa(JSON.stringify(value))
|
||||
el.id = `initial-state-${app}-${key}`
|
||||
el.type = 'hidden'
|
||||
|
||||
document.head.appendChild(el)
|
||||
}
|
||||
|
|
@ -82,6 +82,10 @@
|
|||
|
||||
<!-- Database type select -->
|
||||
<fieldset class="setup-form__database-type">
|
||||
<legend class="hidden-visually">
|
||||
{{ t('core', 'Database type') }}
|
||||
</legend>
|
||||
|
||||
<!-- Using v-show instead of v-if ensures that the input dbtype remains set even when only one database engine is available -->
|
||||
<p v-show="!firstAndOnlyDatabase" :class="`setup-form__database-type-select--${DBTypeGroupDirection}`" class="setup-form__database-type-select">
|
||||
<NcCheckboxRadioSwitch v-for="(name, db) in config.databases"
|
||||
|
|
@ -117,6 +121,10 @@
|
|||
|
||||
<!-- Database configuration -->
|
||||
<fieldset v-if="config.dbtype !== 'sqlite'">
|
||||
<legend class="hidden-visually">
|
||||
{{ t('core', 'Database connection') }}
|
||||
</legend>
|
||||
|
||||
<NcTextField v-model="config.dbuser"
|
||||
:label="t('core', 'Database user')"
|
||||
autocapitalize="none"
|
||||
|
|
@ -300,7 +308,7 @@ export default defineComponent({
|
|||
firstAndOnlyDatabase(): string|null {
|
||||
const dbNames = Object.values(this.config?.databases || {})
|
||||
if (dbNames.length === 1) {
|
||||
return dbNames[0]
|
||||
return dbNames[0]!
|
||||
}
|
||||
|
||||
return null
|
||||
|
|
|
|||
|
|
@ -133,39 +133,4 @@ export default defineConfig({
|
|||
return config
|
||||
},
|
||||
},
|
||||
|
||||
component: {
|
||||
specPattern: ['core/**/*.cy.ts', 'apps/**/*.cy.ts'],
|
||||
devServer: {
|
||||
framework: 'vue',
|
||||
bundler: 'webpack',
|
||||
webpackConfig: async () => {
|
||||
process.env.npm_package_name = 'NcCypress'
|
||||
process.env.npm_package_version = '1.0.0'
|
||||
process.env.NODE_ENV = 'development'
|
||||
|
||||
/**
|
||||
* Needed for cypress stubbing
|
||||
*
|
||||
* @see https://github.com/sinonjs/sinon/issues/1121
|
||||
* @see https://github.com/cypress-io/cypress/issues/18662
|
||||
*/
|
||||
const babel = require('./babel.config.js')
|
||||
babel.plugins.push([
|
||||
'@babel/plugin-transform-modules-commonjs',
|
||||
{
|
||||
loose: true,
|
||||
},
|
||||
])
|
||||
|
||||
const config = webpackConfig
|
||||
config.module.rules.push({
|
||||
test: /\.svg$/,
|
||||
type: 'asset/source',
|
||||
})
|
||||
|
||||
return config
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
|
|
|
|||
|
|
@ -120,7 +120,10 @@ export const moveFile = (fileName: string, dirPath: string) => {
|
|||
|
||||
if (dirPath === '/') {
|
||||
// select home folder
|
||||
cy.get('button[title="Home"]').should('be.visible').click()
|
||||
cy.get('.breadcrumb')
|
||||
.findByRole('button', { name: 'All files' })
|
||||
.should('be.visible')
|
||||
.click()
|
||||
// click move
|
||||
cy.contains('button', 'Move').should('be.visible').click()
|
||||
} else if (dirPath === '.') {
|
||||
|
|
@ -151,7 +154,10 @@ export const copyFile = (fileName: string, dirPath: string) => {
|
|||
|
||||
if (dirPath === '/') {
|
||||
// select home folder
|
||||
cy.get('button[title="Home"]').should('be.visible').click()
|
||||
cy.get('.breadcrumb')
|
||||
.findByRole('button', { name: 'All files' })
|
||||
.should('be.visible')
|
||||
.click()
|
||||
// click copy
|
||||
cy.contains('button', 'Copy').should('be.visible').click()
|
||||
} else if (dirPath === '.') {
|
||||
|
|
|
|||
|
|
@ -40,7 +40,10 @@ export const moveFileForbidden = (fileName: string, dirPath: string) => {
|
|||
cy.intercept('MOVE', /\/(remote|public)\.php\/dav\/files\//).as('moveFile')
|
||||
|
||||
// select home folder
|
||||
cy.get('button[title="Home"]').should('be.visible').click()
|
||||
cy.get('.breadcrumb')
|
||||
.findByRole('button', { name: 'All files' })
|
||||
.should('be.visible')
|
||||
.click()
|
||||
|
||||
const directories = dirPath.split('/')
|
||||
directories.forEach((directory) => {
|
||||
|
|
|
|||
|
|
@ -222,7 +222,7 @@ describe('User select a custom background', function() {
|
|||
// Pick background
|
||||
cy.get('[data-user-theming-background-custom]').click()
|
||||
cy.get('.file-picker__files tr').contains(image).click()
|
||||
cy.get('.dialog__actions .button-vue--vue-primary').click()
|
||||
cy.findByRole('button', { name: 'Select background' }).click()
|
||||
|
||||
// Wait for background to be set
|
||||
cy.wait('@setBackground')
|
||||
|
|
@ -260,7 +260,7 @@ describe('User changes settings and reload the page', function() {
|
|||
// Pick background
|
||||
cy.get('[data-user-theming-background-custom]').click()
|
||||
cy.get('.file-picker__files tr').contains(image).click()
|
||||
cy.get('.dialog__actions .button-vue--vue-primary').click()
|
||||
cy.findByRole('button', { name: 'Select background' }).click()
|
||||
|
||||
// Wait for background to be set
|
||||
cy.wait('@setBackground')
|
||||
|
|
|
|||
|
|
@ -1,16 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<!--
|
||||
- SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
|
||||
- SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
-->
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1.0">
|
||||
<title>Components App</title>
|
||||
</head>
|
||||
<body>
|
||||
<div data-cy-root></div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
/**
|
||||
* SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
*/
|
||||
|
||||
import '@testing-library/cypress/add-commands'
|
||||
import 'cypress-axe'
|
||||
|
||||
// styles
|
||||
import '../../apps/theming/css/default.css'
|
||||
import '../../core/css/server.css'
|
||||
|
||||
/* eslint-disable */
|
||||
import { mount } from '@cypress/vue2'
|
||||
|
||||
Cypress.Commands.add('mount', (component, options = {}) => {
|
||||
// Setup options object
|
||||
options.extensions = options.extensions || {}
|
||||
options.extensions.plugins = options.extensions.plugins || []
|
||||
options.extensions.components = options.extensions.components || {}
|
||||
|
||||
return mount(component, options)
|
||||
})
|
||||
|
||||
Cypress.Commands.add('mockInitialState', (app: string, key: string, value: unknown) => {
|
||||
cy.document().then(($document) => {
|
||||
const input = $document.createElement('input')
|
||||
input.setAttribute('type', 'hidden')
|
||||
input.setAttribute('id', `initial-state-${app}-${key}`)
|
||||
input.setAttribute('value', btoa(JSON.stringify(value)))
|
||||
$document.body.appendChild(input)
|
||||
})
|
||||
})
|
||||
|
||||
Cypress.Commands.add('unmockInitialState', (app?: string, key?: string) => {
|
||||
cy.window().then(($window) => {
|
||||
// @ts-expect-error internal value
|
||||
delete $window._nc_initial_state
|
||||
})
|
||||
|
||||
cy.document().then(($document) => {
|
||||
$document.querySelectorAll('body > input[type="hidden"]' + (app ? `[id="initial-state-${app}-${key}"]` : ''))
|
||||
.forEach((node) => $document.body.removeChild(node))
|
||||
})
|
||||
})
|
||||
17
cypress/support/cypress-component.d.ts
vendored
17
cypress/support/cypress-component.d.ts
vendored
|
|
@ -1,17 +0,0 @@
|
|||
/*!
|
||||
* SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
*/
|
||||
|
||||
import type { mount } from '@cypress/vue2'
|
||||
|
||||
declare global {
|
||||
// eslint-disable-next-line @typescript-eslint/no-namespace
|
||||
namespace Cypress {
|
||||
interface Chainable {
|
||||
mount: typeof mount
|
||||
mockInitialState: (app: string, key: string, value: unknown) => Cypress.Chainable<void>
|
||||
unmockInitialState: (app?: string, key?: string) => Cypress.Chainable<void>
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"extends": "../tsconfig.json",
|
||||
"include": ["./**/*.ts", "../**/*.cy.ts", "./cypress-e2e.d.ts", "./cypress-component.d.ts"],
|
||||
"include": ["./**/*.ts", "./cypress-e2e.d.ts", "./cypress-component.d.ts"],
|
||||
"exclude": [],
|
||||
"compilerOptions": {
|
||||
"types": [
|
||||
|
|
|
|||
2
dist/1023-1023.js.license
vendored
2
dist/1023-1023.js.license
vendored
|
|
@ -38,7 +38,7 @@ This file is generated from multiple sources. Included packages:
|
|||
- version: 7.1.2
|
||||
- license: MIT
|
||||
- dompurify
|
||||
- version: 3.3.0
|
||||
- version: 3.3.1
|
||||
- license: (MPL-2.0 OR Apache-2.0)
|
||||
- escape-html
|
||||
- version: 1.0.3
|
||||
|
|
|
|||
4
dist/23-23.js
vendored
4
dist/23-23.js
vendored
File diff suppressed because one or more lines are too long
2
dist/23-23.js.license
vendored
2
dist/23-23.js.license
vendored
|
|
@ -27,7 +27,7 @@ This file is generated from multiple sources. Included packages:
|
|||
- version: 7.1.2
|
||||
- license: MIT
|
||||
- dompurify
|
||||
- version: 3.3.0
|
||||
- version: 3.3.1
|
||||
- license: (MPL-2.0 OR Apache-2.0)
|
||||
- escape-html
|
||||
- version: 1.0.3
|
||||
|
|
|
|||
2
dist/23-23.js.map
vendored
2
dist/23-23.js.map
vendored
File diff suppressed because one or more lines are too long
1
dist/2391-2391.js
vendored
Normal file
1
dist/2391-2391.js
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
"use strict";(globalThis.webpackChunknextcloud=globalThis.webpackChunknextcloud||[]).push([[2391],{72391:(l,u,a)=>{a.r(u),a.d(u,{default:()=>e.N});var e=a(64951)}}]);
|
||||
74
dist/2391-2391.js.license
vendored
Normal file
74
dist/2391-2391.js.license
vendored
Normal file
|
|
@ -0,0 +1,74 @@
|
|||
SPDX-License-Identifier: MIT
|
||||
SPDX-License-Identifier: GPL-3.0-or-later
|
||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
SPDX-License-Identifier: (MPL-2.0 OR Apache-2.0)
|
||||
SPDX-FileCopyrightText: escape-html developers
|
||||
SPDX-FileCopyrightText: date-fns developers
|
||||
SPDX-FileCopyrightText: atomiks
|
||||
SPDX-FileCopyrightText: Tobias Koppers @sokra
|
||||
SPDX-FileCopyrightText: Nextcloud GmbH and Nextcloud contributors
|
||||
SPDX-FileCopyrightText: Jeff Sagal <sagalbot@gmail.com>
|
||||
SPDX-FileCopyrightText: Guillaume Chau
|
||||
SPDX-FileCopyrightText: Evan You
|
||||
SPDX-FileCopyrightText: Eduardo San Martin Morote
|
||||
SPDX-FileCopyrightText: Dr.-Ing. Mario Heiderich, Cure53 <mario@cure53.de> (https://cure53.de/)
|
||||
|
||||
|
||||
This file is generated from multiple sources. Included packages:
|
||||
- @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/vue
|
||||
- version: 9.3.1
|
||||
- license: AGPL-3.0-or-later
|
||||
- vue-router
|
||||
- version: 4.6.4
|
||||
- license: MIT
|
||||
- vue-select
|
||||
- version: 4.0.0-beta.6
|
||||
- license: MIT
|
||||
- vue
|
||||
- version: 3.5.25
|
||||
- license: MIT
|
||||
- @nextcloud/l10n
|
||||
- version: 3.4.1
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/router
|
||||
- version: 3.1.0
|
||||
- license: GPL-3.0-or-later
|
||||
- @vue/devtools-api
|
||||
- version: 6.6.4
|
||||
- license: MIT
|
||||
- @vue/reactivity
|
||||
- version: 3.5.25
|
||||
- license: MIT
|
||||
- @vue/runtime-core
|
||||
- version: 3.5.25
|
||||
- license: MIT
|
||||
- @vue/runtime-dom
|
||||
- version: 3.5.25
|
||||
- license: MIT
|
||||
- @vue/shared
|
||||
- version: 3.5.25
|
||||
- license: MIT
|
||||
- css-loader
|
||||
- version: 7.1.2
|
||||
- license: MIT
|
||||
- date-fns
|
||||
- version: 4.1.0
|
||||
- license: MIT
|
||||
- dompurify
|
||||
- version: 3.3.1
|
||||
- license: (MPL-2.0 OR Apache-2.0)
|
||||
- escape-html
|
||||
- version: 1.0.3
|
||||
- license: MIT
|
||||
- style-loader
|
||||
- version: 4.0.0
|
||||
- license: MIT
|
||||
2
dist/2880-2880.js
vendored
Normal file
2
dist/2880-2880.js
vendored
Normal file
File diff suppressed because one or more lines are too long
427
dist/2880-2880.js.license
vendored
Normal file
427
dist/2880-2880.js.license
vendored
Normal file
|
|
@ -0,0 +1,427 @@
|
|||
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: Apache-2.0
|
||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
SPDX-License-Identifier: (MPL-2.0 OR Apache-2.0)
|
||||
SPDX-FileCopyrightText: string_decoder developers
|
||||
SPDX-FileCopyrightText: rhysd <lin90162@yahoo.co.jp>
|
||||
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: 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: OpenJS Foundation and other contributors
|
||||
SPDX-FileCopyrightText: Nick Frasser (https://nfrasser.com)
|
||||
SPDX-FileCopyrightText: Nextcloud GmbH and Nextcloud contributors
|
||||
SPDX-FileCopyrightText: Max <max@nextcloud.com>
|
||||
SPDX-FileCopyrightText: Matt Zabriskie
|
||||
SPDX-FileCopyrightText: Mark <mark@remarkablemark.org>
|
||||
SPDX-FileCopyrightText: Joyent
|
||||
SPDX-FileCopyrightText: Jordan Humphreys <jordan@zurb.com>
|
||||
SPDX-FileCopyrightText: Jonas Schade <derzade@gmail.com>
|
||||
SPDX-FileCopyrightText: Jeff Sagal <sagalbot@gmail.com>
|
||||
SPDX-FileCopyrightText: Guillaume Chau
|
||||
SPDX-FileCopyrightText: GitHub Inc.
|
||||
SPDX-FileCopyrightText: Feross Aboukhadijeh
|
||||
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: David Clark
|
||||
SPDX-FileCopyrightText: Christoph Wurst
|
||||
SPDX-FileCopyrightText: Borys Serebrov
|
||||
SPDX-FileCopyrightText: Austin Andrews
|
||||
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: Alkemics
|
||||
SPDX-FileCopyrightText: @nextcloud/dialogs developers
|
||||
|
||||
|
||||
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
|
||||
- @mdi/js
|
||||
- version: 7.4.47
|
||||
- license: Apache-2.0
|
||||
- @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
|
||||
- @vueuse/core
|
||||
- version: 14.1.0
|
||||
- license: MIT
|
||||
- @nextcloud/vue
|
||||
- version: 9.3.1
|
||||
- license: AGPL-3.0-or-later
|
||||
- @vueuse/shared
|
||||
- version: 14.1.0
|
||||
- license: MIT
|
||||
- debounce
|
||||
- version: 3.0.0
|
||||
- license: MIT
|
||||
- eventemitter3
|
||||
- version: 5.0.1
|
||||
- license: MIT
|
||||
- p-queue
|
||||
- version: 9.0.1
|
||||
- license: MIT
|
||||
- rehype-react
|
||||
- version: 8.0.0
|
||||
- license: MIT
|
||||
- splitpanes
|
||||
- version: 4.0.4
|
||||
- license: MIT
|
||||
- vue-router
|
||||
- version: 4.6.4
|
||||
- license: MIT
|
||||
- vue-select
|
||||
- version: 4.0.0-beta.6
|
||||
- license: MIT
|
||||
- vue
|
||||
- version: 3.5.25
|
||||
- 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: 2.2.0
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/files
|
||||
- version: 3.12.0
|
||||
- license: AGPL-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.2
|
||||
- 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
|
||||
- @ungap/structured-clone
|
||||
- version: 1.3.0
|
||||
- license: ISC
|
||||
- @vue/devtools-api
|
||||
- version: 6.6.4
|
||||
- license: MIT
|
||||
- @vue/reactivity
|
||||
- version: 3.5.25
|
||||
- license: MIT
|
||||
- @vue/runtime-core
|
||||
- version: 3.5.25
|
||||
- license: MIT
|
||||
- @vue/runtime-dom
|
||||
- version: 3.5.25
|
||||
- license: MIT
|
||||
- @vue/shared
|
||||
- version: 3.5.25
|
||||
- license: MIT
|
||||
- axios
|
||||
- version: 1.12.2
|
||||
- license: MIT
|
||||
- base64-js
|
||||
- version: 1.5.1
|
||||
- license: MIT
|
||||
- blurhash
|
||||
- version: 2.0.5
|
||||
- license: MIT
|
||||
- buffer
|
||||
- version: 5.7.1
|
||||
- license: MIT
|
||||
- cancelable-promise
|
||||
- version: 4.3.1
|
||||
- license: MIT
|
||||
- comma-separated-tokens
|
||||
- version: 2.0.3
|
||||
- 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
|
||||
- devlop
|
||||
- version: 1.1.0
|
||||
- license: MIT
|
||||
- dompurify
|
||||
- version: 3.3.1
|
||||
- license: (MPL-2.0 OR Apache-2.0)
|
||||
- emoji-mart-vue-fast
|
||||
- version: 15.0.5
|
||||
- license: BSD-3-Clause
|
||||
- escape-html
|
||||
- version: 1.0.3
|
||||
- license: MIT
|
||||
- estree-util-is-identifier-name
|
||||
- version: 3.0.0
|
||||
- license: MIT
|
||||
- extend
|
||||
- version: 3.0.2
|
||||
- license: MIT
|
||||
- focus-trap
|
||||
- version: 7.6.6
|
||||
- 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
|
||||
- ieee754
|
||||
- version: 1.2.1
|
||||
- license: BSD-3-Clause
|
||||
- is-absolute-url
|
||||
- version: 4.0.1
|
||||
- license: MIT
|
||||
- jquery
|
||||
- version: 3.7.1
|
||||
- license: MIT
|
||||
- linkifyjs
|
||||
- version: 4.3.2
|
||||
- license: MIT
|
||||
- material-colors
|
||||
- version: 1.2.6
|
||||
- license: ISC
|
||||
- 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
|
||||
- buffer
|
||||
- version: 6.0.3
|
||||
- license: MIT
|
||||
- inherits
|
||||
- version: 2.0.3
|
||||
- license: ISC
|
||||
- util
|
||||
- version: 0.10.4
|
||||
- license: MIT
|
||||
- path
|
||||
- version: 0.12.7
|
||||
- license: MIT
|
||||
- process
|
||||
- version: 0.11.10
|
||||
- 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
|
||||
- safe-buffer
|
||||
- version: 5.2.1
|
||||
- license: MIT
|
||||
- space-separated-tokens
|
||||
- version: 2.0.2
|
||||
- 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.7
|
||||
- license: MIT
|
||||
- style-to-object
|
||||
- version: 1.0.14
|
||||
- license: MIT
|
||||
- style-to-js
|
||||
- version: 1.1.21
|
||||
- license: MIT
|
||||
- tabbable
|
||||
- version: 6.3.0
|
||||
- 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
|
||||
- typescript-event-target
|
||||
- version: 1.1.1
|
||||
- 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
|
||||
- vfile-message
|
||||
- version: 4.0.3
|
||||
- license: MIT
|
||||
- vfile
|
||||
- version: 6.0.3
|
||||
- license: MIT
|
||||
- vue-loader
|
||||
- version: 15.11.1
|
||||
- license: MIT
|
||||
1
dist/2880-2880.js.map
vendored
Normal file
1
dist/2880-2880.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
1
dist/2880-2880.js.map.license
vendored
Symbolic link
1
dist/2880-2880.js.map.license
vendored
Symbolic link
|
|
@ -0,0 +1 @@
|
|||
2880-2880.js.license
|
||||
2
dist/3278-3278.js
vendored
2
dist/3278-3278.js
vendored
|
|
@ -1,2 +0,0 @@
|
|||
"use strict";(globalThis.webpackChunknextcloud=globalThis.webpackChunknextcloud||[]).push([[3278],{73278:(e,l,c)=>{c.d(l,{FilePickerVue:()=>i});const i=(0,c(85471).$V)(()=>Promise.all([c.e(4208),c.e(8790)]).then(c.bind(c,78790)))}}]);
|
||||
//# sourceMappingURL=3278-3278.js.map?v=c97a360506d6ebb6afd2
|
||||
1
dist/3278-3278.js.map
vendored
1
dist/3278-3278.js.map
vendored
|
|
@ -1 +0,0 @@
|
|||
{"version":3,"file":"3278-3278.js?v=c97a360506d6ebb6afd2","mappings":"gJACA,MAAMA,GAAgB,E,SAAA,IAAqB,IAAM,yD","sources":["webpack:///nextcloud/node_modules/@nextcloud/dialogs/dist/chunks/index-hTwX2gcC.mjs"],"sourcesContent":["import { defineAsyncComponent } from \"vue\";\nconst FilePickerVue = defineAsyncComponent(() => import(\"./FilePicker-lO8J1a0C.mjs\"));\nexport {\n FilePickerVue\n};\n//# sourceMappingURL=index-hTwX2gcC.mjs.map\n"],"names":["FilePickerVue"],"ignoreList":[],"sourceRoot":""}
|
||||
1
dist/3278-3278.js.map.license
vendored
1
dist/3278-3278.js.map.license
vendored
|
|
@ -1 +0,0 @@
|
|||
3278-3278.js.license
|
||||
1
dist/3564-3564.js.map
vendored
1
dist/3564-3564.js.map
vendored
File diff suppressed because one or more lines are too long
1
dist/3564-3564.js.map.license
vendored
1
dist/3564-3564.js.map.license
vendored
|
|
@ -1 +0,0 @@
|
|||
3564-3564.js.license
|
||||
280
dist/3920-3920.js.license
vendored
280
dist/3920-3920.js.license
vendored
|
|
@ -5,33 +5,51 @@ 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-FileCopyrightText: string_decoder developers
|
||||
SPDX-FileCopyrightText: rhysd <lin90162@yahoo.co.jp>
|
||||
SPDX-FileCopyrightText: readable-stream developers
|
||||
SPDX-FileCopyrightText: qs developers
|
||||
SPDX-FileCopyrightText: p-queue developers
|
||||
SPDX-FileCopyrightText: omahlama
|
||||
SPDX-FileCopyrightText: jden <jason@denizac.org>
|
||||
SPDX-FileCopyrightText: inline-style-parser developers
|
||||
SPDX-FileCopyrightText: inherits developers
|
||||
SPDX-FileCopyrightText: escape-html developers
|
||||
SPDX-FileCopyrightText: defunctzombie
|
||||
SPDX-FileCopyrightText: debounce developers
|
||||
SPDX-FileCopyrightText: date-fns developers
|
||||
SPDX-FileCopyrightText: chenkai
|
||||
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: Perry Mitchell <perry@perrymitchell.net>
|
||||
SPDX-FileCopyrightText: Paul Vorbach <paul@vorba.ch> (http://paul.vorba.ch)
|
||||
SPDX-FileCopyrightText: Paul Vorbach <paul@vorb.de> (http://vorb.de)
|
||||
SPDX-FileCopyrightText: OpenJS Foundation and other contributors
|
||||
SPDX-FileCopyrightText: Olivier Scherrer <pode.fr@gmail.com>
|
||||
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 Bynens
|
||||
SPDX-FileCopyrightText: Mark <mark@remarkablemark.org>
|
||||
SPDX-FileCopyrightText: Julian Gruber
|
||||
SPDX-FileCopyrightText: Joyent
|
||||
SPDX-FileCopyrightText: José F. Romaniello <jfromaniello@gmail.com> (http://joseoncode.com)
|
||||
SPDX-FileCopyrightText: Jordan Humphreys <jordan@zurb.com>
|
||||
SPDX-FileCopyrightText: Jordan Harband <ljharb@gmail.com>
|
||||
SPDX-FileCopyrightText: Jordan Harband
|
||||
SPDX-FileCopyrightText: John Hiesey
|
||||
SPDX-FileCopyrightText: Jeff Sagal <sagalbot@gmail.com>
|
||||
SPDX-FileCopyrightText: James Halliday
|
||||
SPDX-FileCopyrightText: Jacob Clevenger<https://github.com/wheatjs>
|
||||
SPDX-FileCopyrightText: Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me)
|
||||
|
|
@ -48,15 +66,30 @@ SPDX-FileCopyrightText: Dylan Piercey <pierceydylan@gmail.com>
|
|||
SPDX-FileCopyrightText: Dr.-Ing. Mario Heiderich, Cure53 <mario@cure53.de> (https://cure53.de/)
|
||||
SPDX-FileCopyrightText: David Clark
|
||||
SPDX-FileCopyrightText: Christoph Wurst
|
||||
SPDX-FileCopyrightText: Borys Serebrov
|
||||
SPDX-FileCopyrightText: Ben Drucker
|
||||
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: Amit Gupta (https://solothought.com)
|
||||
SPDX-FileCopyrightText: Amit Gupta (https://amitkumargupta.work/)
|
||||
SPDX-FileCopyrightText: @nextcloud/dialogs developers
|
||||
|
||||
|
||||
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
|
||||
|
|
@ -69,8 +102,44 @@ This file is generated from multiple sources. Included packages:
|
|||
- @nextcloud/capabilities
|
||||
- version: 1.2.1
|
||||
- license: GPL-3.0-or-later
|
||||
- @ckpack/vue-color
|
||||
- version: 1.6.0
|
||||
- license: MIT
|
||||
- @vueuse/core
|
||||
- version: 14.1.0
|
||||
- license: MIT
|
||||
- @nextcloud/vue
|
||||
- version: 9.3.1
|
||||
- license: AGPL-3.0-or-later
|
||||
- @vueuse/shared
|
||||
- version: 14.1.0
|
||||
- license: MIT
|
||||
- debounce
|
||||
- version: 3.0.0
|
||||
- license: MIT
|
||||
- eventemitter3
|
||||
- version: 5.0.1
|
||||
- license: MIT
|
||||
- p-queue
|
||||
- version: 9.0.1
|
||||
- license: MIT
|
||||
- rehype-react
|
||||
- version: 8.0.0
|
||||
- license: MIT
|
||||
- splitpanes
|
||||
- version: 4.0.4
|
||||
- license: MIT
|
||||
- vue-router
|
||||
- version: 4.6.4
|
||||
- license: MIT
|
||||
- vue-select
|
||||
- version: 4.0.0-beta.6
|
||||
- license: MIT
|
||||
- vue
|
||||
- version: 3.5.25
|
||||
- license: MIT
|
||||
- @nextcloud/dialogs
|
||||
- version: 6.4.1
|
||||
- version: 7.1.0
|
||||
- license: AGPL-3.0-or-later
|
||||
- semver
|
||||
- version: 7.7.2
|
||||
|
|
@ -87,15 +156,36 @@ This file is generated from multiple sources. Included packages:
|
|||
- @nextcloud/logger
|
||||
- version: 3.0.2
|
||||
- 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/vue
|
||||
- version: 8.34.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.25
|
||||
- license: MIT
|
||||
- @vue/runtime-core
|
||||
- version: 3.5.25
|
||||
- license: MIT
|
||||
- @vue/runtime-dom
|
||||
- version: 3.5.25
|
||||
- license: MIT
|
||||
- @vue/shared
|
||||
- version: 3.5.25
|
||||
- license: MIT
|
||||
- @vueuse/components
|
||||
- version: 11.3.0
|
||||
- license: MIT
|
||||
|
|
@ -120,6 +210,9 @@ This file is generated from multiple sources. Included packages:
|
|||
- base64-js
|
||||
- version: 1.5.1
|
||||
- license: MIT
|
||||
- blurhash
|
||||
- version: 2.0.5
|
||||
- license: MIT
|
||||
- brace-expansion
|
||||
- version: 2.0.2
|
||||
- license: MIT
|
||||
|
|
@ -144,21 +237,36 @@ This file is generated from multiple sources. Included packages:
|
|||
- charenc
|
||||
- version: 0.0.2
|
||||
- license: BSD-3-Clause
|
||||
- comma-separated-tokens
|
||||
- version: 2.0.3
|
||||
- license: MIT
|
||||
- crypt
|
||||
- version: 0.0.2
|
||||
- license: BSD-3-Clause
|
||||
- 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
|
||||
- devlop
|
||||
- version: 1.1.0
|
||||
- license: MIT
|
||||
- dompurify
|
||||
- version: 3.3.0
|
||||
- version: 3.3.1
|
||||
- license: (MPL-2.0 OR Apache-2.0)
|
||||
- dunder-proto
|
||||
- version: 1.0.1
|
||||
- license: MIT
|
||||
- emoji-mart-vue-fast
|
||||
- version: 15.0.5
|
||||
- license: BSD-3-Clause
|
||||
- es-define-property
|
||||
- version: 1.0.1
|
||||
- license: MIT
|
||||
|
|
@ -171,9 +279,15 @@ This file is generated from multiple sources. Included packages:
|
|||
- 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
|
||||
- extend
|
||||
- version: 3.0.2
|
||||
- license: MIT
|
||||
- floating-vue
|
||||
- version: 1.0.0-beta.19
|
||||
- license: MIT
|
||||
|
|
@ -207,6 +321,18 @@ This file is generated from multiple sources. Included packages:
|
|||
- 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
|
||||
- hot-patcher
|
||||
- version: 2.0.1
|
||||
- license: MIT
|
||||
|
|
@ -219,6 +345,9 @@ This file is generated from multiple sources. Included packages:
|
|||
- inherits
|
||||
- version: 2.0.4
|
||||
- license: ISC
|
||||
- is-absolute-url
|
||||
- version: 4.0.1
|
||||
- license: MIT
|
||||
- is-arguments
|
||||
- version: 1.2.0
|
||||
- license: MIT
|
||||
|
|
@ -237,15 +366,102 @@ This file is generated from multiple sources. Included packages:
|
|||
- is-typed-array
|
||||
- version: 1.1.15
|
||||
- license: MIT
|
||||
- jquery
|
||||
- version: 3.7.1
|
||||
- license: MIT
|
||||
- layerr
|
||||
- version: 3.0.0
|
||||
- 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
|
||||
- version: 2.3.0
|
||||
- license: BSD-3-Clause
|
||||
- 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
|
||||
- minimatch
|
||||
- version: 9.0.5
|
||||
- license: ISC
|
||||
|
|
@ -261,15 +477,6 @@ This file is generated from multiple sources. Included packages:
|
|||
- path-posix
|
||||
- version: 1.0.0
|
||||
- license: ISC
|
||||
- inherits
|
||||
- version: 2.0.3
|
||||
- license: ISC
|
||||
- util
|
||||
- version: 0.10.4
|
||||
- license: MIT
|
||||
- path
|
||||
- version: 0.12.7
|
||||
- license: MIT
|
||||
- pinia
|
||||
- version: 2.3.1
|
||||
- license: MIT
|
||||
|
|
@ -288,6 +495,21 @@ This file is generated from multiple sources. Included packages:
|
|||
- querystringify
|
||||
- version: 2.2.0
|
||||
- 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
|
||||
- requires-port
|
||||
- version: 1.0.0
|
||||
- license: MIT
|
||||
|
|
@ -312,6 +534,9 @@ This file is generated from multiple sources. Included packages:
|
|||
- side-channel
|
||||
- version: 1.1.0
|
||||
- license: MIT
|
||||
- space-separated-tokens
|
||||
- version: 2.0.2
|
||||
- license: MIT
|
||||
- readable-stream
|
||||
- version: 3.6.2
|
||||
- license: MIT
|
||||
|
|
@ -333,18 +558,45 @@ This file is generated from multiple sources. Included packages:
|
|||
- style-loader
|
||||
- version: 4.0.0
|
||||
- license: MIT
|
||||
- inline-style-parser
|
||||
- version: 0.2.7
|
||||
- license: MIT
|
||||
- style-to-object
|
||||
- version: 1.0.14
|
||||
- license: MIT
|
||||
- style-to-js
|
||||
- version: 1.1.21
|
||||
- license: MIT
|
||||
- tabbable
|
||||
- version: 6.3.0
|
||||
- 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
|
||||
- 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
|
||||
|
|
@ -366,6 +618,12 @@ This file is generated from multiple sources. Included packages:
|
|||
- util
|
||||
- version: 0.12.5
|
||||
- license: MIT
|
||||
- vfile-message
|
||||
- version: 4.0.3
|
||||
- license: MIT
|
||||
- vfile
|
||||
- version: 6.0.3
|
||||
- license: MIT
|
||||
- vue-loader
|
||||
- version: 15.11.1
|
||||
- license: MIT
|
||||
|
|
|
|||
2
dist/3973-3973.js
vendored
Normal file
2
dist/3973-3973.js
vendored
Normal file
File diff suppressed because one or more lines are too long
441
dist/3973-3973.js.license
vendored
Normal file
441
dist/3973-3973.js.license
vendored
Normal file
|
|
@ -0,0 +1,441 @@
|
|||
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-FileCopyrightText: string_decoder developers
|
||||
SPDX-FileCopyrightText: rhysd <lin90162@yahoo.co.jp>
|
||||
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: 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: OpenJS Foundation and other contributors
|
||||
SPDX-FileCopyrightText: Nick Frasser (https://nfrasser.com)
|
||||
SPDX-FileCopyrightText: Nextcloud GmbH and Nextcloud contributors
|
||||
SPDX-FileCopyrightText: Max <max@nextcloud.com>
|
||||
SPDX-FileCopyrightText: Matt Zabriskie
|
||||
SPDX-FileCopyrightText: Mark <mark@remarkablemark.org>
|
||||
SPDX-FileCopyrightText: Joyent
|
||||
SPDX-FileCopyrightText: Jordan Humphreys <jordan@zurb.com>
|
||||
SPDX-FileCopyrightText: Jonas Schade <derzade@gmail.com>
|
||||
SPDX-FileCopyrightText: Jeff Sagal <sagalbot@gmail.com>
|
||||
SPDX-FileCopyrightText: Guillaume Chau <guillaume.b.chau@gmail.com>
|
||||
SPDX-FileCopyrightText: Guillaume Chau
|
||||
SPDX-FileCopyrightText: GitHub Inc.
|
||||
SPDX-FileCopyrightText: Feross Aboukhadijeh
|
||||
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: David Clark
|
||||
SPDX-FileCopyrightText: Christoph Wurst
|
||||
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: Alkemics
|
||||
SPDX-FileCopyrightText: @nextcloud/dialogs developers
|
||||
|
||||
|
||||
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
|
||||
- @vueuse/core
|
||||
- version: 14.1.0
|
||||
- license: MIT
|
||||
- @nextcloud/vue
|
||||
- version: 9.3.1
|
||||
- license: AGPL-3.0-or-later
|
||||
- @vueuse/shared
|
||||
- version: 14.1.0
|
||||
- license: MIT
|
||||
- debounce
|
||||
- version: 3.0.0
|
||||
- license: MIT
|
||||
- eventemitter3
|
||||
- version: 5.0.1
|
||||
- license: MIT
|
||||
- p-queue
|
||||
- version: 9.0.1
|
||||
- license: MIT
|
||||
- rehype-react
|
||||
- version: 8.0.0
|
||||
- license: MIT
|
||||
- splitpanes
|
||||
- version: 4.0.4
|
||||
- license: MIT
|
||||
- vue-router
|
||||
- version: 4.6.4
|
||||
- license: MIT
|
||||
- vue-select
|
||||
- version: 4.0.0-beta.6
|
||||
- license: MIT
|
||||
- vue
|
||||
- version: 3.5.25
|
||||
- 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: 2.2.0
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/files
|
||||
- version: 3.12.0
|
||||
- license: AGPL-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.2
|
||||
- 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/vue
|
||||
- version: 8.34.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.25
|
||||
- license: MIT
|
||||
- @vue/runtime-core
|
||||
- version: 3.5.25
|
||||
- license: MIT
|
||||
- @vue/runtime-dom
|
||||
- version: 3.5.25
|
||||
- license: MIT
|
||||
- @vue/shared
|
||||
- version: 3.5.25
|
||||
- license: MIT
|
||||
- @vueuse/core
|
||||
- version: 11.3.0
|
||||
- license: MIT
|
||||
- @vueuse/shared
|
||||
- version: 11.3.0
|
||||
- license: MIT
|
||||
- axios
|
||||
- version: 1.12.2
|
||||
- license: MIT
|
||||
- base64-js
|
||||
- version: 1.5.1
|
||||
- license: MIT
|
||||
- blurhash
|
||||
- version: 2.0.5
|
||||
- license: MIT
|
||||
- buffer
|
||||
- version: 5.7.1
|
||||
- license: MIT
|
||||
- cancelable-promise
|
||||
- version: 4.3.1
|
||||
- license: MIT
|
||||
- comma-separated-tokens
|
||||
- version: 2.0.3
|
||||
- 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
|
||||
- devlop
|
||||
- version: 1.1.0
|
||||
- license: MIT
|
||||
- dompurify
|
||||
- version: 3.3.1
|
||||
- license: (MPL-2.0 OR Apache-2.0)
|
||||
- emoji-mart-vue-fast
|
||||
- version: 15.0.5
|
||||
- license: BSD-3-Clause
|
||||
- escape-html
|
||||
- version: 1.0.3
|
||||
- license: MIT
|
||||
- estree-util-is-identifier-name
|
||||
- version: 3.0.0
|
||||
- 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
|
||||
- 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
|
||||
- ieee754
|
||||
- version: 1.2.1
|
||||
- license: BSD-3-Clause
|
||||
- is-absolute-url
|
||||
- version: 4.0.1
|
||||
- license: MIT
|
||||
- jquery
|
||||
- version: 3.7.1
|
||||
- license: MIT
|
||||
- linkifyjs
|
||||
- version: 4.3.2
|
||||
- license: MIT
|
||||
- material-colors
|
||||
- version: 1.2.6
|
||||
- license: ISC
|
||||
- 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
|
||||
- buffer
|
||||
- version: 6.0.3
|
||||
- license: MIT
|
||||
- inherits
|
||||
- version: 2.0.3
|
||||
- license: ISC
|
||||
- util
|
||||
- version: 0.10.4
|
||||
- license: MIT
|
||||
- path
|
||||
- version: 0.12.7
|
||||
- license: MIT
|
||||
- process
|
||||
- version: 0.11.10
|
||||
- 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
|
||||
- safe-buffer
|
||||
- version: 5.2.1
|
||||
- license: MIT
|
||||
- space-separated-tokens
|
||||
- version: 2.0.2
|
||||
- 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.7
|
||||
- license: MIT
|
||||
- style-to-object
|
||||
- version: 1.0.14
|
||||
- license: MIT
|
||||
- style-to-js
|
||||
- version: 1.1.21
|
||||
- license: MIT
|
||||
- tabbable
|
||||
- version: 6.3.0
|
||||
- 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
|
||||
- typescript-event-target
|
||||
- version: 1.1.1
|
||||
- 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
|
||||
- vfile-message
|
||||
- version: 4.0.3
|
||||
- license: MIT
|
||||
- vfile
|
||||
- version: 6.0.3
|
||||
- license: MIT
|
||||
- vue-loader
|
||||
- version: 15.11.1
|
||||
- license: MIT
|
||||
- vue
|
||||
- version: 2.7.16
|
||||
- license: MIT
|
||||
- nextcloud
|
||||
- version: 1.0.0
|
||||
- license: AGPL-3.0-or-later
|
||||
1
dist/3973-3973.js.map
vendored
Normal file
1
dist/3973-3973.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
1
dist/3973-3973.js.map.license
vendored
Symbolic link
1
dist/3973-3973.js.map.license
vendored
Symbolic link
|
|
@ -0,0 +1 @@
|
|||
3973-3973.js.license
|
||||
4
dist/4040-4040.js
vendored
4
dist/4040-4040.js
vendored
|
|
@ -1,2 +1,2 @@
|
|||
"use strict";(globalThis.webpackChunknextcloud=globalThis.webpackChunknextcloud||[]).push([[4040],{74040:(e,t,a)=>{a.r(t),a.d(t,{default:()=>u});var s=a(85471),l=a(53334),o=a(94219),r=a(31133),n=a(16044),i=a(82182);const d=(0,s.pM)({name:"CredentialsDialog",components:{NcDialog:o.A,NcNoteCard:r.A,NcTextField:i.A,NcPasswordField:n.A},setup:()=>({t:l.t}),data:()=>({login:"",password:""}),computed:{dialogButtons:()=>[{label:(0,l.t)("files_external","Confirm"),type:"primary",nativeType:"submit"}]}}),u=(0,a(14486).A)(d,function(){var e=this,t=e._self._c;return e._self._setupProxy,t("NcDialog",{staticClass:"external-storage-auth",attrs:{buttons:e.dialogButtons,"close-on-click-outside":"","data-cy-external-storage-auth":"","is-form":"",name:e.t("files_external","Storage credentials"),"out-transition":""},on:{submit:function(t){return e.$emit("close",{login:e.login,password:e.password})},"update:open":function(t){return e.$emit("close")}}},[t("NcNoteCard",{staticClass:"external-storage-auth__header",attrs:{text:e.t("files_external","To access the storage, you need to provide the authentication credentials."),type:"info"}}),e._v(" "),t("NcTextField",{ref:"login",staticClass:"external-storage-auth__login",attrs:{"data-cy-external-storage-auth-dialog-login":"",label:e.t("files_external","Login"),placeholder:e.t("files_external","Enter the storage login"),minlength:"2",name:"login",required:"",value:e.login},on:{"update:value":function(t){e.login=t}}}),e._v(" "),t("NcPasswordField",{ref:"password",staticClass:"external-storage-auth__password",attrs:{"data-cy-external-storage-auth-dialog-password":"",label:e.t("files_external","Password"),placeholder:e.t("files_external","Enter the storage password"),name:"password",required:"",value:e.password},on:{"update:value":function(t){e.password=t}}})],1)},[],!1,null,null,null).exports}}]);
|
||||
//# sourceMappingURL=4040-4040.js.map?v=76f0b95143051b1bb45c
|
||||
"use strict";(globalThis.webpackChunknextcloud=globalThis.webpackChunknextcloud||[]).push([[4040],{74040:(e,t,a)=>{a.r(t),a.d(t,{default:()=>u});var s=a(85471),l=a(53334),o=a(94219),r=a(31133),n=a(93663),i=a(82182);const d=(0,s.pM)({name:"CredentialsDialog",components:{NcDialog:o.A,NcNoteCard:r.A,NcTextField:i.A,NcPasswordField:n.A},setup:()=>({t:l.t}),data:()=>({login:"",password:""}),computed:{dialogButtons:()=>[{label:(0,l.t)("files_external","Confirm"),type:"primary",nativeType:"submit"}]}}),u=(0,a(14486).A)(d,function(){var e=this,t=e._self._c;return e._self._setupProxy,t("NcDialog",{staticClass:"external-storage-auth",attrs:{buttons:e.dialogButtons,"close-on-click-outside":"","data-cy-external-storage-auth":"","is-form":"",name:e.t("files_external","Storage credentials"),"out-transition":""},on:{submit:function(t){return e.$emit("close",{login:e.login,password:e.password})},"update:open":function(t){return e.$emit("close")}}},[t("NcNoteCard",{staticClass:"external-storage-auth__header",attrs:{text:e.t("files_external","To access the storage, you need to provide the authentication credentials."),type:"info"}}),e._v(" "),t("NcTextField",{ref:"login",staticClass:"external-storage-auth__login",attrs:{"data-cy-external-storage-auth-dialog-login":"",label:e.t("files_external","Login"),placeholder:e.t("files_external","Enter the storage login"),minlength:"2",name:"login",required:"",value:e.login},on:{"update:value":function(t){e.login=t}}}),e._v(" "),t("NcPasswordField",{ref:"password",staticClass:"external-storage-auth__password",attrs:{"data-cy-external-storage-auth-dialog-password":"",label:e.t("files_external","Password"),placeholder:e.t("files_external","Enter the storage password"),name:"password",required:"",value:e.password},on:{"update:value":function(t){e.password=t}}})],1)},[],!1,null,null,null).exports}}]);
|
||||
//# sourceMappingURL=4040-4040.js.map?v=72c40b5d2a149b264e25
|
||||
2
dist/4040-4040.js.license
vendored
2
dist/4040-4040.js.license
vendored
|
|
@ -71,7 +71,7 @@ This file is generated from multiple sources. Included packages:
|
|||
- version: 2.2.0
|
||||
- license: MIT
|
||||
- dompurify
|
||||
- version: 3.3.0
|
||||
- version: 3.3.1
|
||||
- license: (MPL-2.0 OR Apache-2.0)
|
||||
- escape-html
|
||||
- version: 1.0.3
|
||||
|
|
|
|||
2
dist/4040-4040.js.map
vendored
2
dist/4040-4040.js.map
vendored
|
|
@ -1 +1 @@
|
|||
{"version":3,"file":"4040-4040.js?v=76f0b95143051b1bb45c","mappings":"iJAAA,I,kEAMA,MCNiQ,GDMlPA,EAAAA,EAAAA,IAAgB,CAC3BC,KAAM,oBACNC,WAAY,CACRC,SAAQ,IACRC,WAAU,IACVC,YAAW,IACXC,gBAAeA,EAAAA,GAEnBC,MAAKA,KACM,CACHC,EAACA,EAAAA,IAGTC,KAAIA,KACO,CACHC,MAAO,GACPC,SAAU,KAGlBC,SAAU,CACNC,cAAaA,IACF,CAAC,CACAC,OAAON,EAAAA,EAAAA,GAAE,iBAAkB,WAC3BO,KAAM,UACNC,WAAY,cEZhC,GAXgB,E,SAAA,GACd,EFRW,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAgC,OAAtBF,EAAIG,MAAMC,YAAmBF,EAAG,WAAW,CAACG,YAAY,wBAAwBC,MAAM,CAAC,QAAUN,EAAIJ,cAAc,yBAAyB,GAAG,gCAAgC,GAAG,UAAU,GAAG,KAAOI,EAAIT,EAAE,iBAAkB,uBAAuB,iBAAiB,IAAIgB,GAAG,CAAC,OAAS,SAASC,GAAQ,OAAOR,EAAIS,MAAM,QAAS,CAAChB,MAAOO,EAAIP,MAAOC,SAAUM,EAAIN,UAAU,EAAE,cAAc,SAASc,GAAQ,OAAOR,EAAIS,MAAM,QAAQ,IAAI,CAACP,EAAG,aAAa,CAACG,YAAY,gCAAgCC,MAAM,CAAC,KAAON,EAAIT,EAAE,iBAAkB,8EAA8E,KAAO,UAAUS,EAAIU,GAAG,KAAKR,EAAG,cAAc,CAACS,IAAI,QAAQN,YAAY,+BAA+BC,MAAM,CAAC,6CAA6C,GAAG,MAAQN,EAAIT,EAAE,iBAAkB,SAAS,YAAcS,EAAIT,EAAE,iBAAkB,2BAA2B,UAAY,IAAI,KAAO,QAAQ,SAAW,GAAG,MAAQS,EAAIP,OAAOc,GAAG,CAAC,eAAe,SAASC,GAAQR,EAAIP,MAAMe,CAAM,KAAKR,EAAIU,GAAG,KAAKR,EAAG,kBAAkB,CAACS,IAAI,WAAWN,YAAY,kCAAkCC,MAAM,CAAC,gDAAgD,GAAG,MAAQN,EAAIT,EAAE,iBAAkB,YAAY,YAAcS,EAAIT,EAAE,iBAAkB,8BAA8B,KAAO,WAAW,SAAW,GAAG,MAAQS,EAAIN,UAAUa,GAAG,CAAC,eAAe,SAASC,GAAQR,EAAIN,SAASc,CAAM,MAAM,EAC55C,EACsB,IESpB,EACA,KACA,KACA,M","sources":["webpack:///nextcloud/apps/files_external/src/views/CredentialsDialog.vue","webpack:///nextcloud/apps/files_external/src/views/CredentialsDialog.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files_external/src/views/CredentialsDialog.vue?7767"],"sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcDialog',{staticClass:\"external-storage-auth\",attrs:{\"buttons\":_vm.dialogButtons,\"close-on-click-outside\":\"\",\"data-cy-external-storage-auth\":\"\",\"is-form\":\"\",\"name\":_vm.t('files_external', 'Storage credentials'),\"out-transition\":\"\"},on:{\"submit\":function($event){return _vm.$emit('close', {login: _vm.login, password: _vm.password})},\"update:open\":function($event){return _vm.$emit('close')}}},[_c('NcNoteCard',{staticClass:\"external-storage-auth__header\",attrs:{\"text\":_vm.t('files_external', 'To access the storage, you need to provide the authentication credentials.'),\"type\":\"info\"}}),_vm._v(\" \"),_c('NcTextField',{ref:\"login\",staticClass:\"external-storage-auth__login\",attrs:{\"data-cy-external-storage-auth-dialog-login\":\"\",\"label\":_vm.t('files_external', 'Login'),\"placeholder\":_vm.t('files_external', 'Enter the storage login'),\"minlength\":\"2\",\"name\":\"login\",\"required\":\"\",\"value\":_vm.login},on:{\"update:value\":function($event){_vm.login=$event}}}),_vm._v(\" \"),_c('NcPasswordField',{ref:\"password\",staticClass:\"external-storage-auth__password\",attrs:{\"data-cy-external-storage-auth-dialog-password\":\"\",\"label\":_vm.t('files_external', 'Password'),\"placeholder\":_vm.t('files_external', 'Enter the storage password'),\"name\":\"password\",\"required\":\"\",\"value\":_vm.password},on:{\"update:value\":function($event){_vm.password=$event}}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CredentialsDialog.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CredentialsDialog.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./CredentialsDialog.vue?vue&type=template&id=79894f20\"\nimport script from \"./CredentialsDialog.vue?vue&type=script&lang=ts\"\nexport * from \"./CredentialsDialog.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports"],"names":["defineComponent","name","components","NcDialog","NcNoteCard","NcTextField","NcPasswordField","setup","t","data","login","password","computed","dialogButtons","label","type","nativeType","_vm","this","_c","_self","_setupProxy","staticClass","attrs","on","$event","$emit","_v","ref"],"ignoreList":[],"sourceRoot":""}
|
||||
{"version":3,"file":"4040-4040.js?v=72c40b5d2a149b264e25","mappings":"iJAAA,I,kEAMA,MCNiQ,GDMlPA,EAAAA,EAAAA,IAAgB,CAC3BC,KAAM,oBACNC,WAAY,CACRC,SAAQ,IACRC,WAAU,IACVC,YAAW,IACXC,gBAAeA,EAAAA,GAEnBC,MAAKA,KACM,CACHC,EAACA,EAAAA,IAGTC,KAAIA,KACO,CACHC,MAAO,GACPC,SAAU,KAGlBC,SAAU,CACNC,cAAaA,IACF,CAAC,CACAC,OAAON,EAAAA,EAAAA,GAAE,iBAAkB,WAC3BO,KAAM,UACNC,WAAY,cEZhC,GAXgB,E,SAAA,GACd,EFRW,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAgC,OAAtBF,EAAIG,MAAMC,YAAmBF,EAAG,WAAW,CAACG,YAAY,wBAAwBC,MAAM,CAAC,QAAUN,EAAIJ,cAAc,yBAAyB,GAAG,gCAAgC,GAAG,UAAU,GAAG,KAAOI,EAAIT,EAAE,iBAAkB,uBAAuB,iBAAiB,IAAIgB,GAAG,CAAC,OAAS,SAASC,GAAQ,OAAOR,EAAIS,MAAM,QAAS,CAAChB,MAAOO,EAAIP,MAAOC,SAAUM,EAAIN,UAAU,EAAE,cAAc,SAASc,GAAQ,OAAOR,EAAIS,MAAM,QAAQ,IAAI,CAACP,EAAG,aAAa,CAACG,YAAY,gCAAgCC,MAAM,CAAC,KAAON,EAAIT,EAAE,iBAAkB,8EAA8E,KAAO,UAAUS,EAAIU,GAAG,KAAKR,EAAG,cAAc,CAACS,IAAI,QAAQN,YAAY,+BAA+BC,MAAM,CAAC,6CAA6C,GAAG,MAAQN,EAAIT,EAAE,iBAAkB,SAAS,YAAcS,EAAIT,EAAE,iBAAkB,2BAA2B,UAAY,IAAI,KAAO,QAAQ,SAAW,GAAG,MAAQS,EAAIP,OAAOc,GAAG,CAAC,eAAe,SAASC,GAAQR,EAAIP,MAAMe,CAAM,KAAKR,EAAIU,GAAG,KAAKR,EAAG,kBAAkB,CAACS,IAAI,WAAWN,YAAY,kCAAkCC,MAAM,CAAC,gDAAgD,GAAG,MAAQN,EAAIT,EAAE,iBAAkB,YAAY,YAAcS,EAAIT,EAAE,iBAAkB,8BAA8B,KAAO,WAAW,SAAW,GAAG,MAAQS,EAAIN,UAAUa,GAAG,CAAC,eAAe,SAASC,GAAQR,EAAIN,SAASc,CAAM,MAAM,EAC55C,EACsB,IESpB,EACA,KACA,KACA,M","sources":["webpack:///nextcloud/apps/files_external/src/views/CredentialsDialog.vue","webpack:///nextcloud/apps/files_external/src/views/CredentialsDialog.vue?vue&type=script&lang=ts","webpack://nextcloud/./apps/files_external/src/views/CredentialsDialog.vue?7767"],"sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('NcDialog',{staticClass:\"external-storage-auth\",attrs:{\"buttons\":_vm.dialogButtons,\"close-on-click-outside\":\"\",\"data-cy-external-storage-auth\":\"\",\"is-form\":\"\",\"name\":_vm.t('files_external', 'Storage credentials'),\"out-transition\":\"\"},on:{\"submit\":function($event){return _vm.$emit('close', {login: _vm.login, password: _vm.password})},\"update:open\":function($event){return _vm.$emit('close')}}},[_c('NcNoteCard',{staticClass:\"external-storage-auth__header\",attrs:{\"text\":_vm.t('files_external', 'To access the storage, you need to provide the authentication credentials.'),\"type\":\"info\"}}),_vm._v(\" \"),_c('NcTextField',{ref:\"login\",staticClass:\"external-storage-auth__login\",attrs:{\"data-cy-external-storage-auth-dialog-login\":\"\",\"label\":_vm.t('files_external', 'Login'),\"placeholder\":_vm.t('files_external', 'Enter the storage login'),\"minlength\":\"2\",\"name\":\"login\",\"required\":\"\",\"value\":_vm.login},on:{\"update:value\":function($event){_vm.login=$event}}}),_vm._v(\" \"),_c('NcPasswordField',{ref:\"password\",staticClass:\"external-storage-auth__password\",attrs:{\"data-cy-external-storage-auth-dialog-password\":\"\",\"label\":_vm.t('files_external', 'Password'),\"placeholder\":_vm.t('files_external', 'Enter the storage password'),\"name\":\"password\",\"required\":\"\",\"value\":_vm.password},on:{\"update:value\":function($event){_vm.password=$event}}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CredentialsDialog.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CredentialsDialog.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./CredentialsDialog.vue?vue&type=template&id=79894f20\"\nimport script from \"./CredentialsDialog.vue?vue&type=script&lang=ts\"\nexport * from \"./CredentialsDialog.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports"],"names":["defineComponent","name","components","NcDialog","NcNoteCard","NcTextField","NcPasswordField","setup","t","data","login","password","computed","dialogButtons","label","type","nativeType","_vm","this","_c","_self","_setupProxy","staticClass","attrs","on","$event","$emit","_v","ref"],"ignoreList":[],"sourceRoot":""}
|
||||
2
dist/4325-4325.js
vendored
Normal file
2
dist/4325-4325.js
vendored
Normal file
File diff suppressed because one or more lines are too long
151
dist/4325-4325.js.license
vendored
Normal file
151
dist/4325-4325.js.license
vendored
Normal file
|
|
@ -0,0 +1,151 @@
|
|||
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: Apache-2.0
|
||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
SPDX-License-Identifier: (MPL-2.0 OR Apache-2.0)
|
||||
SPDX-FileCopyrightText: string_decoder developers
|
||||
SPDX-FileCopyrightText: p-queue developers
|
||||
SPDX-FileCopyrightText: inherits developers
|
||||
SPDX-FileCopyrightText: escape-html developers
|
||||
SPDX-FileCopyrightText: Tobias Koppers @sokra
|
||||
SPDX-FileCopyrightText: T. Jameson Little <t.jameson.little@gmail.com>
|
||||
SPDX-FileCopyrightText: Roman Shtylman <shtylman@gmail.com>
|
||||
SPDX-FileCopyrightText: Nextcloud GmbH and Nextcloud contributors
|
||||
SPDX-FileCopyrightText: Joyent
|
||||
SPDX-FileCopyrightText: Jonas Schade <derzade@gmail.com>
|
||||
SPDX-FileCopyrightText: Guillaume Chau
|
||||
SPDX-FileCopyrightText: GitHub Inc.
|
||||
SPDX-FileCopyrightText: Feross Aboukhadijeh
|
||||
SPDX-FileCopyrightText: Evan You
|
||||
SPDX-FileCopyrightText: Eduardo San Martin Morote
|
||||
SPDX-FileCopyrightText: Dr.-Ing. Mario Heiderich, Cure53 <mario@cure53.de> (https://cure53.de/)
|
||||
SPDX-FileCopyrightText: Christoph Wurst
|
||||
SPDX-FileCopyrightText: Austin Andrews
|
||||
SPDX-FileCopyrightText: Arnout Kazemier
|
||||
SPDX-FileCopyrightText: Alkemics
|
||||
SPDX-FileCopyrightText: @nextcloud/dialogs developers
|
||||
|
||||
|
||||
This file is generated from multiple sources. Included packages:
|
||||
- @mdi/js
|
||||
- version: 7.4.47
|
||||
- license: Apache-2.0
|
||||
- @nextcloud/auth
|
||||
- version: 2.5.3
|
||||
- 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
|
||||
- @nextcloud/vue
|
||||
- version: 9.3.1
|
||||
- license: AGPL-3.0-or-later
|
||||
- eventemitter3
|
||||
- version: 5.0.1
|
||||
- license: MIT
|
||||
- p-queue
|
||||
- version: 9.0.1
|
||||
- license: MIT
|
||||
- vue-router
|
||||
- version: 4.6.4
|
||||
- license: MIT
|
||||
- vue
|
||||
- version: 3.5.25
|
||||
- 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: 2.2.0
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/files
|
||||
- version: 3.12.0
|
||||
- license: AGPL-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.2
|
||||
- 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
|
||||
- @vue/devtools-api
|
||||
- version: 6.6.4
|
||||
- license: MIT
|
||||
- @vue/reactivity
|
||||
- version: 3.5.25
|
||||
- license: MIT
|
||||
- @vue/runtime-core
|
||||
- version: 3.5.25
|
||||
- license: MIT
|
||||
- @vue/runtime-dom
|
||||
- version: 3.5.25
|
||||
- license: MIT
|
||||
- @vue/shared
|
||||
- version: 3.5.25
|
||||
- license: MIT
|
||||
- base64-js
|
||||
- version: 1.5.1
|
||||
- license: MIT
|
||||
- buffer
|
||||
- version: 5.7.1
|
||||
- license: MIT
|
||||
- cancelable-promise
|
||||
- version: 4.3.1
|
||||
- license: MIT
|
||||
- css-loader
|
||||
- version: 7.1.2
|
||||
- license: MIT
|
||||
- dompurify
|
||||
- version: 3.3.1
|
||||
- license: (MPL-2.0 OR Apache-2.0)
|
||||
- escape-html
|
||||
- version: 1.0.3
|
||||
- license: MIT
|
||||
- ieee754
|
||||
- version: 1.2.1
|
||||
- license: BSD-3-Clause
|
||||
- buffer
|
||||
- version: 6.0.3
|
||||
- license: MIT
|
||||
- inherits
|
||||
- version: 2.0.3
|
||||
- license: ISC
|
||||
- util
|
||||
- version: 0.10.4
|
||||
- license: MIT
|
||||
- path
|
||||
- version: 0.12.7
|
||||
- license: MIT
|
||||
- process
|
||||
- version: 0.11.10
|
||||
- license: MIT
|
||||
- safe-buffer
|
||||
- version: 5.2.1
|
||||
- license: MIT
|
||||
- string_decoder
|
||||
- version: 1.3.0
|
||||
- license: MIT
|
||||
- style-loader
|
||||
- version: 4.0.0
|
||||
- license: MIT
|
||||
- typescript-event-target
|
||||
- version: 1.1.1
|
||||
- license: MIT
|
||||
1
dist/4325-4325.js.map
vendored
Normal file
1
dist/4325-4325.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
1
dist/4325-4325.js.map.license
vendored
Symbolic link
1
dist/4325-4325.js.map.license
vendored
Symbolic link
|
|
@ -0,0 +1 @@
|
|||
4325-4325.js.license
|
||||
5
dist/4508-4508.js.license
vendored
5
dist/4508-4508.js.license
vendored
|
|
@ -41,6 +41,9 @@ This file is generated from multiple sources. Included packages:
|
|||
- @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
|
||||
|
|
@ -135,7 +138,7 @@ This file is generated from multiple sources. Included packages:
|
|||
- version: 1.1.0
|
||||
- license: MIT
|
||||
- dompurify
|
||||
- version: 3.3.0
|
||||
- version: 3.3.1
|
||||
- license: (MPL-2.0 OR Apache-2.0)
|
||||
- escape-html
|
||||
- version: 1.0.3
|
||||
|
|
|
|||
2
dist/459-459.js.license
vendored
2
dist/459-459.js.license
vendored
|
|
@ -57,7 +57,7 @@ This file is generated from multiple sources. Included packages:
|
|||
- version: 7.1.2
|
||||
- license: MIT
|
||||
- dompurify
|
||||
- version: 3.3.0
|
||||
- version: 3.3.1
|
||||
- license: (MPL-2.0 OR Apache-2.0)
|
||||
- escape-html
|
||||
- version: 1.0.3
|
||||
|
|
|
|||
2
dist/4965-4965.js.license
vendored
2
dist/4965-4965.js.license
vendored
|
|
@ -65,7 +65,7 @@ This file is generated from multiple sources. Included packages:
|
|||
- version: 7.1.2
|
||||
- license: MIT
|
||||
- dompurify
|
||||
- version: 3.3.0
|
||||
- version: 3.3.1
|
||||
- license: (MPL-2.0 OR Apache-2.0)
|
||||
- escape-html
|
||||
- version: 1.0.3
|
||||
|
|
|
|||
4
dist/5258-5258.js
vendored
4
dist/5258-5258.js
vendored
|
|
@ -1,2 +1,2 @@
|
|||
"use strict";(globalThis.webpackChunknextcloud=globalThis.webpackChunknextcloud||[]).push([[5258],{16343:(e,t,n)=>{n.d(t,{a:()=>i,e:()=>r});var c=n(80474),u=n(43850),a=n(24715);const o=(0,c.c0)("nextcloud-vue").persist(!0).build();let l;function r(e,t=10){l||(l=new u.EmojiIndex(a));const n=function(){const e=Number.parseInt(o.getItem("NcEmojiPicker::currentSkinTone")??"1");return Math.min(Math.max(e,1),6)}();let c;return e?(c=l.search(`:${e}`,t),c.length<t&&(c=c.concat(l.search(e,t-c.length)))):c=u.frequently.get(t).map(e=>l.emoji(e))||[],c.map(e=>e.getSkin(n))}function i(e){u.frequently.add(e)}},95528:(e,t,n)=>{n.r(t),n.d(t,{NcAutoCompleteResult:()=>u.N,NcMentionBubble:()=>c.N,default:()=>u.a});var c=n(36079),u=n(18853)}}]);
|
||||
//# sourceMappingURL=5258-5258.js.map?v=91802aaffcdca641effb
|
||||
"use strict";(globalThis.webpackChunknextcloud=globalThis.webpackChunknextcloud||[]).push([[5258],{16343:(e,t,n)=>{n.d(t,{a:()=>i,e:()=>r});var c=n(80474),u=n(43850),a=n(24715);const o=(0,c.c0)("nextcloud-vue").persist(!0).build();let l;function r(e,t=10){l||(l=new u.EmojiIndex(a));const n=function(){const e=Number.parseInt(o.getItem("NcEmojiPicker::currentSkinTone")??"1");return Math.min(Math.max(e,1),6)}();let c;return e?(c=l.search(`:${e}`,t),c.length<t&&(c=c.concat(l.search(e,t-c.length)))):c=u.frequently.get(t).map(e=>l.emoji(e))||[],c.map(e=>e.getSkin(n))}function i(e){u.frequently.add(e)}},95528:(e,t,n)=>{n.r(t),n.d(t,{NcAutoCompleteResult:()=>u.N,NcMentionBubble:()=>c.N,default:()=>u.a});var c=n(36079),u=n(37886)}}]);
|
||||
//# sourceMappingURL=5258-5258.js.map?v=1aff87f2e3b819164707
|
||||
9
dist/5258-5258.js.license
vendored
9
dist/5258-5258.js.license
vendored
|
|
@ -25,6 +25,7 @@ SPDX-FileCopyrightText: Max <max@nextcloud.com>
|
|||
SPDX-FileCopyrightText: Matt Zabriskie
|
||||
SPDX-FileCopyrightText: Mark <mark@remarkablemark.org>
|
||||
SPDX-FileCopyrightText: Mapbox
|
||||
SPDX-FileCopyrightText: Jordan Humphreys <jordan@zurb.com>
|
||||
SPDX-FileCopyrightText: Jeff Sagal <sagalbot@gmail.com>
|
||||
SPDX-FileCopyrightText: Jacob Clevenger<https://github.com/wheatjs>
|
||||
SPDX-FileCopyrightText: Guillaume Chau <guillaume.b.chau@gmail.com>
|
||||
|
|
@ -45,6 +46,9 @@ This file is generated from multiple sources. Included packages:
|
|||
- @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
|
||||
|
|
@ -145,7 +149,7 @@ This file is generated from multiple sources. Included packages:
|
|||
- version: 1.1.0
|
||||
- license: MIT
|
||||
- dompurify
|
||||
- version: 3.3.0
|
||||
- version: 3.3.1
|
||||
- license: (MPL-2.0 OR Apache-2.0)
|
||||
- emoji-mart-vue-fast
|
||||
- version: 15.0.5
|
||||
|
|
@ -309,6 +313,9 @@ This file is generated from multiple sources. Included packages:
|
|||
- tabbable
|
||||
- version: 6.3.0
|
||||
- license: MIT
|
||||
- tributejs
|
||||
- version: 5.1.3
|
||||
- license: MIT
|
||||
- trim-lines
|
||||
- version: 3.0.1
|
||||
- license: MIT
|
||||
|
|
|
|||
2
dist/5258-5258.js.map
vendored
2
dist/5258-5258.js.map
vendored
|
|
@ -1 +1 @@
|
|||
{"version":3,"file":"5258-5258.js?v=91802aaffcdca641effb","mappings":"iLAGA,MAAMA,GAAU,QAAW,iBAAiBC,SAAQ,GAAMC,QAC1D,IAAIC,EAUJ,SAASC,EAAYC,EAAOC,EAAa,IAClCH,IACHA,EAAa,IAAI,EAAAI,WAAW,IAE9B,MAAMC,EAeR,WACE,MAAMC,EAAWC,OAAOC,SAASX,EAAQY,QAAQ,mCAAqC,KACtF,OAAOC,KAAKC,IACVD,KAAKE,IACHN,EACA,GAGF,EAGJ,CA1B0BO,GACxB,IAAIC,EASJ,OARIZ,GACFY,EAAUd,EAAWe,OAAO,IAAIb,IAASC,GACrCW,EAAQE,OAASb,IACnBW,EAAUA,EAAQG,OAAOjB,EAAWe,OAAOb,EAAOC,EAAaW,EAAQE,WAGzEF,EAAU,EAAAI,WAAWC,IAAIhB,GAAYiB,IAAKC,GAAOrB,EAAWsB,MAAMD,KAAQ,GAErEP,EAAQM,IAAKE,GAAUA,EAAMC,QAAQlB,GAC9C,CACA,SAASmB,EAAeC,GACtB,EAAAP,WAAWQ,IAAID,EACjB,C","sources":["webpack:///nextcloud/node_modules/@nextcloud/vue/dist/chunks/emoji-BY_D0V5K.mjs"],"sourcesContent":["import { getBuilder } from \"@nextcloud/browser-storage\";\nimport { EmojiIndex, frequently } from \"emoji-mart-vue-fast\";\nimport data from \"emoji-mart-vue-fast/data/all.json\";\nconst storage = getBuilder(\"nextcloud-vue\").persist(true).build();\nlet emojiIndex;\nvar EmojiSkinTone = /* @__PURE__ */ ((EmojiSkinTone2) => {\n EmojiSkinTone2[EmojiSkinTone2[\"Neutral\"] = 1] = \"Neutral\";\n EmojiSkinTone2[EmojiSkinTone2[\"Light\"] = 2] = \"Light\";\n EmojiSkinTone2[EmojiSkinTone2[\"MediumLight\"] = 3] = \"MediumLight\";\n EmojiSkinTone2[EmojiSkinTone2[\"Medium\"] = 4] = \"Medium\";\n EmojiSkinTone2[EmojiSkinTone2[\"MediumDark\"] = 5] = \"MediumDark\";\n EmojiSkinTone2[EmojiSkinTone2[\"Dark\"] = 6] = \"Dark\";\n return EmojiSkinTone2;\n})(EmojiSkinTone || {});\nfunction emojiSearch(query, maxResults = 10) {\n if (!emojiIndex) {\n emojiIndex = new EmojiIndex(data);\n }\n const currentSkinTone = getCurrentSkinTone();\n let results;\n if (query) {\n results = emojiIndex.search(`:${query}`, maxResults);\n if (results.length < maxResults) {\n results = results.concat(emojiIndex.search(query, maxResults - results.length));\n }\n } else {\n results = frequently.get(maxResults).map((id) => emojiIndex.emoji(id)) || [];\n }\n return results.map((emoji) => emoji.getSkin(currentSkinTone));\n}\nfunction emojiAddRecent(emojiData) {\n frequently.add(emojiData);\n}\nfunction getCurrentSkinTone() {\n const skinTone = Number.parseInt(storage.getItem(\"NcEmojiPicker::currentSkinTone\") ?? \"1\");\n return Math.min(\n Math.max(\n skinTone,\n 1\n /* Neutral */\n ),\n 6\n /* Dark */\n );\n}\nfunction setCurrentSkinTone(skinTone) {\n skinTone = Math.min(\n Math.max(\n skinTone,\n 1\n /* Neutral */\n ),\n 6\n /* Dark */\n );\n storage.setItem(\"NcEmojiPicker::currentSkinTone\", skinTone.toString());\n}\nexport {\n EmojiSkinTone as E,\n emojiAddRecent as a,\n emojiSearch as e,\n getCurrentSkinTone as g,\n setCurrentSkinTone as s\n};\n//# sourceMappingURL=emoji-BY_D0V5K.mjs.map\n"],"names":["storage","persist","build","emojiIndex","emojiSearch","query","maxResults","EmojiIndex","currentSkinTone","skinTone","Number","parseInt","getItem","Math","min","max","getCurrentSkinTone","results","search","length","concat","frequently","get","map","id","emoji","getSkin","emojiAddRecent","emojiData","add"],"ignoreList":[],"sourceRoot":""}
|
||||
{"version":3,"file":"5258-5258.js?v=1aff87f2e3b819164707","mappings":"iLAGA,MAAMA,GAAU,QAAW,iBAAiBC,SAAQ,GAAMC,QAC1D,IAAIC,EAUJ,SAASC,EAAYC,EAAOC,EAAa,IAClCH,IACHA,EAAa,IAAI,EAAAI,WAAW,IAE9B,MAAMC,EAeR,WACE,MAAMC,EAAWC,OAAOC,SAASX,EAAQY,QAAQ,mCAAqC,KACtF,OAAOC,KAAKC,IACVD,KAAKE,IACHN,EACA,GAGF,EAGJ,CA1B0BO,GACxB,IAAIC,EASJ,OARIZ,GACFY,EAAUd,EAAWe,OAAO,IAAIb,IAASC,GACrCW,EAAQE,OAASb,IACnBW,EAAUA,EAAQG,OAAOjB,EAAWe,OAAOb,EAAOC,EAAaW,EAAQE,WAGzEF,EAAU,EAAAI,WAAWC,IAAIhB,GAAYiB,IAAKC,GAAOrB,EAAWsB,MAAMD,KAAQ,GAErEP,EAAQM,IAAKE,GAAUA,EAAMC,QAAQlB,GAC9C,CACA,SAASmB,EAAeC,GACtB,EAAAP,WAAWQ,IAAID,EACjB,C","sources":["webpack:///nextcloud/node_modules/@nextcloud/vue/dist/chunks/emoji-BY_D0V5K.mjs"],"sourcesContent":["import { getBuilder } from \"@nextcloud/browser-storage\";\nimport { EmojiIndex, frequently } from \"emoji-mart-vue-fast\";\nimport data from \"emoji-mart-vue-fast/data/all.json\";\nconst storage = getBuilder(\"nextcloud-vue\").persist(true).build();\nlet emojiIndex;\nvar EmojiSkinTone = /* @__PURE__ */ ((EmojiSkinTone2) => {\n EmojiSkinTone2[EmojiSkinTone2[\"Neutral\"] = 1] = \"Neutral\";\n EmojiSkinTone2[EmojiSkinTone2[\"Light\"] = 2] = \"Light\";\n EmojiSkinTone2[EmojiSkinTone2[\"MediumLight\"] = 3] = \"MediumLight\";\n EmojiSkinTone2[EmojiSkinTone2[\"Medium\"] = 4] = \"Medium\";\n EmojiSkinTone2[EmojiSkinTone2[\"MediumDark\"] = 5] = \"MediumDark\";\n EmojiSkinTone2[EmojiSkinTone2[\"Dark\"] = 6] = \"Dark\";\n return EmojiSkinTone2;\n})(EmojiSkinTone || {});\nfunction emojiSearch(query, maxResults = 10) {\n if (!emojiIndex) {\n emojiIndex = new EmojiIndex(data);\n }\n const currentSkinTone = getCurrentSkinTone();\n let results;\n if (query) {\n results = emojiIndex.search(`:${query}`, maxResults);\n if (results.length < maxResults) {\n results = results.concat(emojiIndex.search(query, maxResults - results.length));\n }\n } else {\n results = frequently.get(maxResults).map((id) => emojiIndex.emoji(id)) || [];\n }\n return results.map((emoji) => emoji.getSkin(currentSkinTone));\n}\nfunction emojiAddRecent(emojiData) {\n frequently.add(emojiData);\n}\nfunction getCurrentSkinTone() {\n const skinTone = Number.parseInt(storage.getItem(\"NcEmojiPicker::currentSkinTone\") ?? \"1\");\n return Math.min(\n Math.max(\n skinTone,\n 1\n /* Neutral */\n ),\n 6\n /* Dark */\n );\n}\nfunction setCurrentSkinTone(skinTone) {\n skinTone = Math.min(\n Math.max(\n skinTone,\n 1\n /* Neutral */\n ),\n 6\n /* Dark */\n );\n storage.setItem(\"NcEmojiPicker::currentSkinTone\", skinTone.toString());\n}\nexport {\n EmojiSkinTone as E,\n emojiAddRecent as a,\n emojiSearch as e,\n getCurrentSkinTone as g,\n setCurrentSkinTone as s\n};\n//# sourceMappingURL=emoji-BY_D0V5K.mjs.map\n"],"names":["storage","persist","build","emojiIndex","emojiSearch","query","maxResults","EmojiIndex","currentSkinTone","skinTone","Number","parseInt","getItem","Math","min","max","getCurrentSkinTone","results","search","length","concat","frequently","get","map","id","emoji","getSkin","emojiAddRecent","emojiData","add"],"ignoreList":[],"sourceRoot":""}
|
||||
2
dist/5814-5814.js
vendored
Normal file
2
dist/5814-5814.js
vendored
Normal file
File diff suppressed because one or more lines are too long
433
dist/5814-5814.js.license
vendored
Normal file
433
dist/5814-5814.js.license
vendored
Normal file
|
|
@ -0,0 +1,433 @@
|
|||
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: Apache-2.0
|
||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
SPDX-License-Identifier: (MPL-2.0 OR Apache-2.0)
|
||||
SPDX-FileCopyrightText: string_decoder developers
|
||||
SPDX-FileCopyrightText: rhysd <lin90162@yahoo.co.jp>
|
||||
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: 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: OpenJS Foundation and other contributors
|
||||
SPDX-FileCopyrightText: Nick Frasser (https://nfrasser.com)
|
||||
SPDX-FileCopyrightText: Nextcloud GmbH and Nextcloud contributors
|
||||
SPDX-FileCopyrightText: Max <max@nextcloud.com>
|
||||
SPDX-FileCopyrightText: Matt Zabriskie
|
||||
SPDX-FileCopyrightText: Mark <mark@remarkablemark.org>
|
||||
SPDX-FileCopyrightText: Joyent
|
||||
SPDX-FileCopyrightText: Jordan Humphreys <jordan@zurb.com>
|
||||
SPDX-FileCopyrightText: Jonas Schade <derzade@gmail.com>
|
||||
SPDX-FileCopyrightText: Jeff Sagal <sagalbot@gmail.com>
|
||||
SPDX-FileCopyrightText: Guillaume Chau
|
||||
SPDX-FileCopyrightText: GitHub Inc.
|
||||
SPDX-FileCopyrightText: Feross Aboukhadijeh
|
||||
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: David Clark
|
||||
SPDX-FileCopyrightText: Christoph Wurst
|
||||
SPDX-FileCopyrightText: Borys Serebrov
|
||||
SPDX-FileCopyrightText: Austin Andrews
|
||||
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: Alkemics
|
||||
SPDX-FileCopyrightText: @nextcloud/dialogs developers
|
||||
|
||||
|
||||
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
|
||||
- @mdi/js
|
||||
- version: 7.4.47
|
||||
- license: Apache-2.0
|
||||
- @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
|
||||
- @vueuse/core
|
||||
- version: 14.1.0
|
||||
- license: MIT
|
||||
- @nextcloud/vue
|
||||
- version: 9.3.1
|
||||
- license: AGPL-3.0-or-later
|
||||
- @vueuse/shared
|
||||
- version: 13.9.0
|
||||
- license: MIT
|
||||
- @vueuse/core
|
||||
- version: 13.9.0
|
||||
- license: MIT
|
||||
- @vueuse/shared
|
||||
- version: 14.1.0
|
||||
- license: MIT
|
||||
- debounce
|
||||
- version: 3.0.0
|
||||
- license: MIT
|
||||
- eventemitter3
|
||||
- version: 5.0.1
|
||||
- license: MIT
|
||||
- p-queue
|
||||
- version: 9.0.1
|
||||
- license: MIT
|
||||
- rehype-react
|
||||
- version: 8.0.0
|
||||
- license: MIT
|
||||
- splitpanes
|
||||
- version: 4.0.4
|
||||
- license: MIT
|
||||
- vue-router
|
||||
- version: 4.6.4
|
||||
- license: MIT
|
||||
- vue-select
|
||||
- version: 4.0.0-beta.6
|
||||
- license: MIT
|
||||
- vue
|
||||
- version: 3.5.25
|
||||
- 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: 2.2.0
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/files
|
||||
- version: 3.12.0
|
||||
- license: AGPL-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.2
|
||||
- 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
|
||||
- @ungap/structured-clone
|
||||
- version: 1.3.0
|
||||
- license: ISC
|
||||
- @vue/devtools-api
|
||||
- version: 6.6.4
|
||||
- license: MIT
|
||||
- @vue/reactivity
|
||||
- version: 3.5.25
|
||||
- license: MIT
|
||||
- @vue/runtime-core
|
||||
- version: 3.5.25
|
||||
- license: MIT
|
||||
- @vue/runtime-dom
|
||||
- version: 3.5.25
|
||||
- license: MIT
|
||||
- @vue/shared
|
||||
- version: 3.5.25
|
||||
- license: MIT
|
||||
- axios
|
||||
- version: 1.12.2
|
||||
- license: MIT
|
||||
- base64-js
|
||||
- version: 1.5.1
|
||||
- license: MIT
|
||||
- blurhash
|
||||
- version: 2.0.5
|
||||
- license: MIT
|
||||
- buffer
|
||||
- version: 5.7.1
|
||||
- license: MIT
|
||||
- cancelable-promise
|
||||
- version: 4.3.1
|
||||
- license: MIT
|
||||
- comma-separated-tokens
|
||||
- version: 2.0.3
|
||||
- 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
|
||||
- devlop
|
||||
- version: 1.1.0
|
||||
- license: MIT
|
||||
- dompurify
|
||||
- version: 3.3.1
|
||||
- license: (MPL-2.0 OR Apache-2.0)
|
||||
- emoji-mart-vue-fast
|
||||
- version: 15.0.5
|
||||
- license: BSD-3-Clause
|
||||
- escape-html
|
||||
- version: 1.0.3
|
||||
- license: MIT
|
||||
- estree-util-is-identifier-name
|
||||
- version: 3.0.0
|
||||
- license: MIT
|
||||
- extend
|
||||
- version: 3.0.2
|
||||
- license: MIT
|
||||
- focus-trap
|
||||
- version: 7.6.6
|
||||
- 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
|
||||
- ieee754
|
||||
- version: 1.2.1
|
||||
- license: BSD-3-Clause
|
||||
- is-absolute-url
|
||||
- version: 4.0.1
|
||||
- license: MIT
|
||||
- jquery
|
||||
- version: 3.7.1
|
||||
- license: MIT
|
||||
- linkifyjs
|
||||
- version: 4.3.2
|
||||
- license: MIT
|
||||
- material-colors
|
||||
- version: 1.2.6
|
||||
- license: ISC
|
||||
- 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
|
||||
- buffer
|
||||
- version: 6.0.3
|
||||
- license: MIT
|
||||
- inherits
|
||||
- version: 2.0.3
|
||||
- license: ISC
|
||||
- util
|
||||
- version: 0.10.4
|
||||
- license: MIT
|
||||
- path
|
||||
- version: 0.12.7
|
||||
- license: MIT
|
||||
- process
|
||||
- version: 0.11.10
|
||||
- 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
|
||||
- safe-buffer
|
||||
- version: 5.2.1
|
||||
- license: MIT
|
||||
- space-separated-tokens
|
||||
- version: 2.0.2
|
||||
- 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.7
|
||||
- license: MIT
|
||||
- style-to-object
|
||||
- version: 1.0.14
|
||||
- license: MIT
|
||||
- style-to-js
|
||||
- version: 1.1.21
|
||||
- license: MIT
|
||||
- tabbable
|
||||
- version: 6.3.0
|
||||
- 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
|
||||
- typescript-event-target
|
||||
- version: 1.1.1
|
||||
- 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
|
||||
- vfile-message
|
||||
- version: 4.0.3
|
||||
- license: MIT
|
||||
- vfile
|
||||
- version: 6.0.3
|
||||
- license: MIT
|
||||
- vue-loader
|
||||
- version: 15.11.1
|
||||
- license: MIT
|
||||
1
dist/5814-5814.js.map
vendored
Normal file
1
dist/5814-5814.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
1
dist/5814-5814.js.map.license
vendored
Symbolic link
1
dist/5814-5814.js.map.license
vendored
Symbolic link
|
|
@ -0,0 +1 @@
|
|||
5814-5814.js.license
|
||||
4
dist/5819-5819.js
vendored
4
dist/5819-5819.js
vendored
File diff suppressed because one or more lines are too long
270
dist/5819-5819.js.license
vendored
270
dist/5819-5819.js.license
vendored
|
|
@ -5,37 +5,72 @@ 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-FileCopyrightText: string_decoder developers
|
||||
SPDX-FileCopyrightText: rhysd <lin90162@yahoo.co.jp>
|
||||
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: 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: Paul Vorbach <paul@vorba.ch> (http://paul.vorba.ch)
|
||||
SPDX-FileCopyrightText: Paul Vorbach <paul@vorb.de> (http://vorb.de)
|
||||
SPDX-FileCopyrightText: OpenJS Foundation and other contributors
|
||||
SPDX-FileCopyrightText: Nick Frasser (https://nfrasser.com)
|
||||
SPDX-FileCopyrightText: Nextcloud GmbH and Nextcloud contributors
|
||||
SPDX-FileCopyrightText: Max <max@nextcloud.com>
|
||||
SPDX-FileCopyrightText: Matt Zabriskie
|
||||
SPDX-FileCopyrightText: Mark <mark@remarkablemark.org>
|
||||
SPDX-FileCopyrightText: Joyent
|
||||
SPDX-FileCopyrightText: Jordan Humphreys <jordan@zurb.com>
|
||||
SPDX-FileCopyrightText: Jonas Schade <derzade@gmail.com>
|
||||
SPDX-FileCopyrightText: Jeff Sagal <sagalbot@gmail.com>
|
||||
SPDX-FileCopyrightText: Jacob Clevenger<https://github.com/wheatjs>
|
||||
SPDX-FileCopyrightText: Guillaume Chau <guillaume.b.chau@gmail.com>
|
||||
SPDX-FileCopyrightText: Guillaume Chau
|
||||
SPDX-FileCopyrightText: GitHub Inc.
|
||||
SPDX-FileCopyrightText: Feross Aboukhadijeh
|
||||
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: David Clark
|
||||
SPDX-FileCopyrightText: Christoph Wurst
|
||||
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: Alkemics
|
||||
SPDX-FileCopyrightText: @nextcloud/dialogs developers
|
||||
|
||||
|
||||
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
|
||||
|
|
@ -48,8 +83,44 @@ This file is generated from multiple sources. Included packages:
|
|||
- @nextcloud/capabilities
|
||||
- version: 1.2.1
|
||||
- license: GPL-3.0-or-later
|
||||
- @ckpack/vue-color
|
||||
- version: 1.6.0
|
||||
- license: MIT
|
||||
- @vueuse/core
|
||||
- version: 14.1.0
|
||||
- license: MIT
|
||||
- @nextcloud/vue
|
||||
- version: 9.3.1
|
||||
- license: AGPL-3.0-or-later
|
||||
- @vueuse/shared
|
||||
- version: 14.1.0
|
||||
- license: MIT
|
||||
- debounce
|
||||
- version: 3.0.0
|
||||
- license: MIT
|
||||
- eventemitter3
|
||||
- version: 5.0.1
|
||||
- license: MIT
|
||||
- p-queue
|
||||
- version: 9.0.1
|
||||
- license: MIT
|
||||
- rehype-react
|
||||
- version: 8.0.0
|
||||
- license: MIT
|
||||
- splitpanes
|
||||
- version: 4.0.4
|
||||
- license: MIT
|
||||
- vue-router
|
||||
- version: 4.6.4
|
||||
- license: MIT
|
||||
- vue-select
|
||||
- version: 4.0.0-beta.6
|
||||
- license: MIT
|
||||
- vue
|
||||
- version: 3.5.25
|
||||
- license: MIT
|
||||
- @nextcloud/dialogs
|
||||
- version: 6.4.1
|
||||
- version: 7.1.0
|
||||
- license: AGPL-3.0-or-later
|
||||
- semver
|
||||
- version: 7.7.2
|
||||
|
|
@ -87,6 +158,24 @@ This file is generated from multiple sources. Included packages:
|
|||
- @nextcloud/vue
|
||||
- version: 8.34.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.25
|
||||
- license: MIT
|
||||
- @vue/runtime-core
|
||||
- version: 3.5.25
|
||||
- license: MIT
|
||||
- @vue/runtime-dom
|
||||
- version: 3.5.25
|
||||
- license: MIT
|
||||
- @vue/shared
|
||||
- version: 3.5.25
|
||||
- license: MIT
|
||||
- @vueuse/components
|
||||
- version: 11.3.0
|
||||
- license: MIT
|
||||
|
|
@ -102,6 +191,9 @@ This file is generated from multiple sources. Included packages:
|
|||
- base64-js
|
||||
- version: 1.5.1
|
||||
- license: MIT
|
||||
- blurhash
|
||||
- version: 2.0.5
|
||||
- license: MIT
|
||||
- buffer
|
||||
- version: 5.7.1
|
||||
- license: MIT
|
||||
|
|
@ -111,36 +203,159 @@ This file is generated from multiple sources. Included packages:
|
|||
- charenc
|
||||
- version: 0.0.2
|
||||
- license: BSD-3-Clause
|
||||
- comma-separated-tokens
|
||||
- version: 2.0.3
|
||||
- license: MIT
|
||||
- crypt
|
||||
- version: 0.0.2
|
||||
- license: BSD-3-Clause
|
||||
- css-loader
|
||||
- version: 7.1.2
|
||||
- license: MIT
|
||||
- date-fns
|
||||
- version: 4.1.0
|
||||
- license: MIT
|
||||
- debounce
|
||||
- version: 2.2.0
|
||||
- license: MIT
|
||||
- decode-named-character-reference
|
||||
- version: 1.2.0
|
||||
- license: MIT
|
||||
- devlop
|
||||
- version: 1.1.0
|
||||
- license: MIT
|
||||
- dompurify
|
||||
- version: 3.3.0
|
||||
- version: 3.3.1
|
||||
- license: (MPL-2.0 OR Apache-2.0)
|
||||
- emoji-mart-vue-fast
|
||||
- version: 15.0.5
|
||||
- license: BSD-3-Clause
|
||||
- escape-html
|
||||
- version: 1.0.3
|
||||
- license: MIT
|
||||
- estree-util-is-identifier-name
|
||||
- version: 3.0.0
|
||||
- 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
|
||||
- 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
|
||||
- ieee754
|
||||
- version: 1.2.1
|
||||
- license: BSD-3-Clause
|
||||
- is-absolute-url
|
||||
- version: 4.0.1
|
||||
- license: MIT
|
||||
- is-buffer
|
||||
- version: 1.1.6
|
||||
- license: MIT
|
||||
- jquery
|
||||
- version: 3.7.1
|
||||
- license: MIT
|
||||
- linkifyjs
|
||||
- version: 4.3.2
|
||||
- license: MIT
|
||||
- material-colors
|
||||
- version: 1.2.6
|
||||
- license: ISC
|
||||
- md5
|
||||
- version: 2.3.0
|
||||
- license: BSD-3-Clause
|
||||
- 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
|
||||
- buffer
|
||||
- version: 6.0.3
|
||||
- license: MIT
|
||||
|
|
@ -156,9 +371,27 @@ This file is generated from multiple sources. Included packages:
|
|||
- process
|
||||
- version: 0.11.10
|
||||
- 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
|
||||
- safe-buffer
|
||||
- version: 5.2.1
|
||||
- license: MIT
|
||||
- space-separated-tokens
|
||||
- version: 2.0.2
|
||||
- license: MIT
|
||||
- string_decoder
|
||||
- version: 1.3.0
|
||||
- license: MIT
|
||||
|
|
@ -168,27 +401,60 @@ This file is generated from multiple sources. Included packages:
|
|||
- style-loader
|
||||
- version: 4.0.0
|
||||
- license: MIT
|
||||
- inline-style-parser
|
||||
- version: 0.2.7
|
||||
- license: MIT
|
||||
- style-to-object
|
||||
- version: 1.0.14
|
||||
- license: MIT
|
||||
- style-to-js
|
||||
- version: 1.1.21
|
||||
- license: MIT
|
||||
- tabbable
|
||||
- version: 6.3.0
|
||||
- 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
|
||||
- typescript-event-target
|
||||
- version: 1.1.1
|
||||
- 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
|
||||
- vfile-message
|
||||
- version: 4.0.3
|
||||
- license: MIT
|
||||
- vfile
|
||||
- version: 6.0.3
|
||||
- license: MIT
|
||||
- vue-loader
|
||||
- version: 15.11.1
|
||||
- license: MIT
|
||||
|
|
|
|||
2
dist/5819-5819.js.map
vendored
2
dist/5819-5819.js.map
vendored
File diff suppressed because one or more lines are too long
1
dist/594-594.js
vendored
Normal file
1
dist/594-594.js
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
"use strict";(globalThis.webpackChunknextcloud=globalThis.webpackChunknextcloud||[]).push([[594],{30594:(l,u,a)=>{a.r(u),a.d(u,{default:()=>e.N});var e=a(56799)}}]);
|
||||
62
dist/594-594.js.license
vendored
Normal file
62
dist/594-594.js.license
vendored
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
SPDX-License-Identifier: MIT
|
||||
SPDX-License-Identifier: GPL-3.0-or-later
|
||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
SPDX-License-Identifier: (MPL-2.0 OR Apache-2.0)
|
||||
SPDX-FileCopyrightText: escape-html developers
|
||||
SPDX-FileCopyrightText: atomiks
|
||||
SPDX-FileCopyrightText: Tobias Koppers @sokra
|
||||
SPDX-FileCopyrightText: Nextcloud GmbH and Nextcloud contributors
|
||||
SPDX-FileCopyrightText: Jeff Sagal <sagalbot@gmail.com>
|
||||
SPDX-FileCopyrightText: Evan You
|
||||
SPDX-FileCopyrightText: Dr.-Ing. Mario Heiderich, Cure53 <mario@cure53.de> (https://cure53.de/)
|
||||
|
||||
|
||||
This file is generated from multiple sources. Included packages:
|
||||
- @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/vue
|
||||
- version: 9.3.1
|
||||
- license: AGPL-3.0-or-later
|
||||
- vue-select
|
||||
- version: 4.0.0-beta.6
|
||||
- license: MIT
|
||||
- vue
|
||||
- version: 3.5.25
|
||||
- license: MIT
|
||||
- @nextcloud/l10n
|
||||
- version: 3.4.1
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/router
|
||||
- version: 3.1.0
|
||||
- license: GPL-3.0-or-later
|
||||
- @vue/reactivity
|
||||
- version: 3.5.25
|
||||
- license: MIT
|
||||
- @vue/runtime-core
|
||||
- version: 3.5.25
|
||||
- license: MIT
|
||||
- @vue/runtime-dom
|
||||
- version: 3.5.25
|
||||
- license: MIT
|
||||
- @vue/shared
|
||||
- version: 3.5.25
|
||||
- license: MIT
|
||||
- css-loader
|
||||
- version: 7.1.2
|
||||
- license: MIT
|
||||
- dompurify
|
||||
- version: 3.3.1
|
||||
- license: (MPL-2.0 OR Apache-2.0)
|
||||
- escape-html
|
||||
- version: 1.0.3
|
||||
- license: MIT
|
||||
- style-loader
|
||||
- version: 4.0.0
|
||||
- license: MIT
|
||||
2
dist/6045-6045.js
vendored
Normal file
2
dist/6045-6045.js
vendored
Normal file
File diff suppressed because one or more lines are too long
217
dist/6045-6045.js.license
vendored
Normal file
217
dist/6045-6045.js.license
vendored
Normal file
|
|
@ -0,0 +1,217 @@
|
|||
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: Apache-2.0
|
||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
SPDX-License-Identifier: (MPL-2.0 OR Apache-2.0)
|
||||
SPDX-FileCopyrightText: string_decoder developers
|
||||
SPDX-FileCopyrightText: inherits developers
|
||||
SPDX-FileCopyrightText: escape-html developers
|
||||
SPDX-FileCopyrightText: debounce 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: Roman Shtylman <shtylman@gmail.com>
|
||||
SPDX-FileCopyrightText: Paul Vorbach <paul@vorba.ch> (http://paul.vorba.ch)
|
||||
SPDX-FileCopyrightText: Paul Vorbach <paul@vorb.de> (http://vorb.de)
|
||||
SPDX-FileCopyrightText: Nextcloud GmbH and Nextcloud contributors
|
||||
SPDX-FileCopyrightText: Matt Zabriskie
|
||||
SPDX-FileCopyrightText: Joyent
|
||||
SPDX-FileCopyrightText: Jonas Schade <derzade@gmail.com>
|
||||
SPDX-FileCopyrightText: Jeff Sagal <sagalbot@gmail.com>
|
||||
SPDX-FileCopyrightText: Jacob Clevenger<https://github.com/wheatjs>
|
||||
SPDX-FileCopyrightText: Hiroki Osame
|
||||
SPDX-FileCopyrightText: Guillaume Chau <guillaume.b.chau@gmail.com>
|
||||
SPDX-FileCopyrightText: GitHub Inc.
|
||||
SPDX-FileCopyrightText: Feross Aboukhadijeh
|
||||
SPDX-FileCopyrightText: Evan You
|
||||
SPDX-FileCopyrightText: Eugene Sharygin <eush77@gmail.com>
|
||||
SPDX-FileCopyrightText: Eric Norris (https://github.com/ericnorris)
|
||||
SPDX-FileCopyrightText: Dr.-Ing. Mario Heiderich, Cure53 <mario@cure53.de> (https://cure53.de/)
|
||||
SPDX-FileCopyrightText: David Clark
|
||||
SPDX-FileCopyrightText: Christoph Wurst
|
||||
SPDX-FileCopyrightText: Austin Andrews
|
||||
SPDX-FileCopyrightText: Arnout Kazemier
|
||||
SPDX-FileCopyrightText: Anthony Fu <https://github.com/antfu>
|
||||
SPDX-FileCopyrightText: Alkemics
|
||||
SPDX-FileCopyrightText: @nextcloud/dialogs developers
|
||||
|
||||
|
||||
This file is generated from multiple sources. Included packages:
|
||||
- @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
|
||||
- @mdi/js
|
||||
- version: 7.4.47
|
||||
- license: Apache-2.0
|
||||
- @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
|
||||
- semver
|
||||
- version: 7.7.2
|
||||
- license: ISC
|
||||
- @nextcloud/event-bus
|
||||
- version: 3.3.3
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/initial-state
|
||||
- version: 2.2.0
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/files
|
||||
- version: 3.12.0
|
||||
- license: AGPL-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.2
|
||||
- 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/dialogs
|
||||
- version: 6.4.1
|
||||
- license: AGPL-3.0-or-later
|
||||
- eventemitter3
|
||||
- version: 5.0.1
|
||||
- license: MIT
|
||||
- @nextcloud/vue-select
|
||||
- version: 3.26.0
|
||||
- license: MIT
|
||||
- @nextcloud/initial-state
|
||||
- version: 2.2.0
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/vue
|
||||
- version: 8.34.0
|
||||
- license: AGPL-3.0-or-later
|
||||
- @vueuse/components
|
||||
- version: 11.3.0
|
||||
- license: MIT
|
||||
- @vueuse/core
|
||||
- version: 11.3.0
|
||||
- license: MIT
|
||||
- @vueuse/shared
|
||||
- version: 11.3.0
|
||||
- license: MIT
|
||||
- axios
|
||||
- version: 1.12.2
|
||||
- license: MIT
|
||||
- base64-js
|
||||
- version: 1.5.1
|
||||
- license: MIT
|
||||
- buffer
|
||||
- version: 5.7.1
|
||||
- license: MIT
|
||||
- cancelable-promise
|
||||
- version: 4.3.1
|
||||
- license: MIT
|
||||
- charenc
|
||||
- version: 0.0.2
|
||||
- license: BSD-3-Clause
|
||||
- crypt
|
||||
- version: 0.0.2
|
||||
- license: BSD-3-Clause
|
||||
- css-loader
|
||||
- version: 7.1.2
|
||||
- license: MIT
|
||||
- debounce
|
||||
- version: 2.2.0
|
||||
- license: MIT
|
||||
- dompurify
|
||||
- version: 3.3.1
|
||||
- license: (MPL-2.0 OR Apache-2.0)
|
||||
- escape-html
|
||||
- version: 1.0.3
|
||||
- license: MIT
|
||||
- floating-vue
|
||||
- version: 1.0.0-beta.19
|
||||
- license: MIT
|
||||
- focus-trap
|
||||
- version: 7.6.6
|
||||
- license: MIT
|
||||
- ieee754
|
||||
- version: 1.2.1
|
||||
- license: BSD-3-Clause
|
||||
- is-buffer
|
||||
- version: 1.1.6
|
||||
- license: MIT
|
||||
- md5
|
||||
- version: 2.3.0
|
||||
- license: BSD-3-Clause
|
||||
- buffer
|
||||
- version: 6.0.3
|
||||
- license: MIT
|
||||
- inherits
|
||||
- version: 2.0.3
|
||||
- license: ISC
|
||||
- util
|
||||
- version: 0.10.4
|
||||
- license: MIT
|
||||
- path
|
||||
- version: 0.12.7
|
||||
- license: MIT
|
||||
- process
|
||||
- version: 0.11.10
|
||||
- license: MIT
|
||||
- safe-buffer
|
||||
- version: 5.2.1
|
||||
- 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
|
||||
- tabbable
|
||||
- version: 6.3.0
|
||||
- license: MIT
|
||||
- toastify-js
|
||||
- version: 1.12.0
|
||||
- license: MIT
|
||||
- typescript-event-target
|
||||
- version: 1.1.1
|
||||
- license: MIT
|
||||
- unist-builder
|
||||
- version: 4.0.0
|
||||
- license: MIT
|
||||
- unist-util-is
|
||||
- version: 6.0.0
|
||||
- license: MIT
|
||||
- unist-util-visit-parents
|
||||
- version: 6.0.1
|
||||
- license: MIT
|
||||
- unist-util-visit
|
||||
- version: 5.0.0
|
||||
- license: MIT
|
||||
- vue-frag
|
||||
- version: 1.4.3
|
||||
- license: MIT
|
||||
- vue
|
||||
- version: 2.7.16
|
||||
- license: MIT
|
||||
1
dist/6045-6045.js.map
vendored
Normal file
1
dist/6045-6045.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
1
dist/6045-6045.js.map.license
vendored
Symbolic link
1
dist/6045-6045.js.map.license
vendored
Symbolic link
|
|
@ -0,0 +1 @@
|
|||
6045-6045.js.license
|
||||
2
dist/6160-6160.js
vendored
Normal file
2
dist/6160-6160.js
vendored
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
"use strict";(globalThis.webpackChunknextcloud=globalThis.webpackChunknextcloud||[]).push([[6160],{46160:(t,e,a)=>{a.r(e),a.d(e,{default:()=>b});var n=a(85471),i=a(80474),s=a(21777),r=a(20564),o=a(94219),l=a(31133),c=a(82182),u=a(5211),m=a(35810);const d=(0,i.c0)("public").build(),p=(0,n.pM)({name:"PublicAuthPrompt",components:{NcDialog:o.A,NcNoteCard:l.A,NcTextField:c.A},props:{nickname:{type:String,default:""},title:{type:String,default:(0,u.t)("Guest identification")},text:{type:String,default:""},notice:{type:String,default:""},submitLabel:{type:String,default:(0,u.t)("Submit name")},cancellable:{type:Boolean,default:!1}},setup:()=>({t:u.t}),emits:["close"],data:()=>({name:""}),computed:{dialogButtons(){const t={label:(0,u.t)("Cancel"),variant:"tertiary",callback:()=>this.$emit("close")},e={label:this.submitLabel,type:"submit",variant:"primary"};return this.cancellable?[t,e]:[e]},defaultNotice(){return this.notice?this.notice:this.nickname?(0,u.t)("You are currently identified as {nickname}.",{nickname:this.nickname}):(0,u.t)("You are currently not identified.")}},watch:{nickname:{handler(){this.name=this.nickname},immediate:!0},name(){const t=this.name.trim?.()||"",e=this.$refs.input?.$el.querySelector("input");if(!e)return;const a=function(t){if(""===t.trim())return(0,u.t)("Names must not be empty.");if(t.startsWith("."))return(0,u.t)("Names must not start with a dot.");if(t.length>64)return(0,u.t)("Names may be at most 64 characters long.");try{return(0,m.KT)(t),""}catch(t){if(!(t instanceof m.di))throw t;switch(t.reason){case m.nF.Character:return(0,u.t)('"{char}" is not allowed inside a name.',{char:t.segment});case m.nF.ReservedName:return(0,u.t)('"{segment}" is a reserved name and not allowed.',{segment:t.segment});case m.nF.Extension:return t.segment.match(/\.[a-z]/i)?(0,u.t)('"{extension}" is not an allowed name.',{extension:t.segment}):(0,u.t)('Names must not end with "{extension}".',{extension:t.segment});default:return(0,u.t)("Invalid name.")}}}(t);e.setCustomValidity(a),e.reportValidity()}},methods:{onSubmit(){const t=this.$refs.input,e=this.name.trim();if(""===e)return t.setCustomValidity((0,u.t)("You cannot leave the name empty.")),t.reportValidity(),void t.focus();if(e.length<2)return t.setCustomValidity((0,u.t)("Please enter a name with at least 2 characters.")),t.reportValidity(),void t.focus();try{(0,s.L$)(e)}catch(e){return(0,r.Qg)((0,u.t)("Failed to set nickname.")),console.error("Failed to set nickname",e),void t.focus()}d.setItem("public-auth-prompt-shown","true"),this.$emit("close",this.name)}}});var h=function(){var t=this,e=t._self._c;return t._self._setupProxy,e("NcDialog",{staticClass:"public-auth-prompt",attrs:{buttons:t.dialogButtons,"data-cy-public-auth-prompt-dialog":"","is-form":"","no-close":"",name:t.title},on:{submit:t.onSubmit}},[t.text?e("p",{staticClass:"public-auth-prompt__text"},[t._v(" "+t._s(t.text)+" ")]):t._e(),e("NcNoteCard",{staticClass:"public-auth-prompt__header",attrs:{text:t.defaultNotice,type:"info"}}),e("NcTextField",{ref:"input",staticClass:"public-auth-prompt__input",attrs:{"data-cy-public-auth-prompt-dialog-name":"",label:t.t("Name"),placeholder:t.t("Enter your name"),required:!t.cancellable,minlength:"2",maxlength:"64",name:"name"},model:{value:t.name,callback:function(e){t.name=e},expression:"name"}})],1)},f=[];const b=(0,u.n)(p,h,f,!1,null,"414f7090").exports}}]);
|
||||
//# sourceMappingURL=6160-6160.js.map?v=87ec946385649e7c92c5
|
||||
|
|
@ -36,9 +36,6 @@ This file is generated from multiple sources. Included packages:
|
|||
- @nextcloud/capabilities
|
||||
- version: 1.2.1
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/dialogs
|
||||
- version: 6.4.1
|
||||
- license: AGPL-3.0-or-later
|
||||
- semver
|
||||
- version: 7.7.2
|
||||
- license: ISC
|
||||
|
|
@ -60,6 +57,9 @@ This file is generated from multiple sources. Included packages:
|
|||
- @nextcloud/logger
|
||||
- version: 3.0.2
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/dialogs
|
||||
- version: 6.4.1
|
||||
- license: AGPL-3.0-or-later
|
||||
- @nextcloud/paths
|
||||
- version: 2.3.0
|
||||
- license: GPL-3.0-or-later
|
||||
|
|
@ -88,7 +88,7 @@ This file is generated from multiple sources. Included packages:
|
|||
- version: 7.1.2
|
||||
- license: MIT
|
||||
- dompurify
|
||||
- version: 3.3.0
|
||||
- version: 3.3.1
|
||||
- license: (MPL-2.0 OR Apache-2.0)
|
||||
- escape-html
|
||||
- version: 1.0.3
|
||||
1
dist/6160-6160.js.map
vendored
Normal file
1
dist/6160-6160.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
1
dist/6160-6160.js.map.license
vendored
Symbolic link
1
dist/6160-6160.js.map.license
vendored
Symbolic link
|
|
@ -0,0 +1 @@
|
|||
6160-6160.js.license
|
||||
8
dist/6590-6590.js.license
vendored
8
dist/6590-6590.js.license
vendored
|
|
@ -45,9 +45,6 @@ This file is generated from multiple sources. Included packages:
|
|||
- @nextcloud/capabilities
|
||||
- version: 1.2.1
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/dialogs
|
||||
- version: 6.4.1
|
||||
- license: AGPL-3.0-or-later
|
||||
- semver
|
||||
- version: 7.7.2
|
||||
- license: ISC
|
||||
|
|
@ -75,6 +72,9 @@ This file is generated from multiple sources. Included packages:
|
|||
- @nextcloud/router
|
||||
- version: 3.1.0
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/dialogs
|
||||
- version: 6.4.1
|
||||
- license: AGPL-3.0-or-later
|
||||
- @nextcloud/initial-state
|
||||
- version: 2.2.0
|
||||
- license: GPL-3.0-or-later
|
||||
|
|
@ -112,7 +112,7 @@ This file is generated from multiple sources. Included packages:
|
|||
- version: 7.1.2
|
||||
- license: MIT
|
||||
- dompurify
|
||||
- version: 3.3.0
|
||||
- version: 3.3.1
|
||||
- license: (MPL-2.0 OR Apache-2.0)
|
||||
- escape-html
|
||||
- version: 1.0.3
|
||||
|
|
|
|||
4
dist/6768-6768.js
vendored
4
dist/6768-6768.js
vendored
File diff suppressed because one or more lines are too long
5
dist/6768-6768.js.license
vendored
5
dist/6768-6768.js.license
vendored
|
|
@ -41,6 +41,9 @@ This file is generated from multiple sources. Included packages:
|
|||
- @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
|
||||
|
|
@ -135,7 +138,7 @@ This file is generated from multiple sources. Included packages:
|
|||
- version: 1.1.0
|
||||
- license: MIT
|
||||
- dompurify
|
||||
- version: 3.3.0
|
||||
- version: 3.3.1
|
||||
- license: (MPL-2.0 OR Apache-2.0)
|
||||
- escape-html
|
||||
- version: 1.0.3
|
||||
|
|
|
|||
2
dist/6768-6768.js.map
vendored
2
dist/6768-6768.js.map
vendored
File diff suppressed because one or more lines are too long
1
dist/6798-6798.js
vendored
Normal file
1
dist/6798-6798.js
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
"use strict";(globalThis.webpackChunknextcloud=globalThis.webpackChunknextcloud||[]).push([[6798],{56798:(l,u,a)=>{a.r(u),a.d(u,{default:()=>e.N});var e=a(27885)}}]);
|
||||
80
dist/6798-6798.js.license
vendored
Normal file
80
dist/6798-6798.js.license
vendored
Normal file
|
|
@ -0,0 +1,80 @@
|
|||
SPDX-License-Identifier: MIT
|
||||
SPDX-License-Identifier: ISC
|
||||
SPDX-License-Identifier: GPL-3.0-or-later
|
||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
SPDX-License-Identifier: (MPL-2.0 OR Apache-2.0)
|
||||
SPDX-FileCopyrightText: xiaokai <kexiaokai@gmail.com>
|
||||
SPDX-FileCopyrightText: escape-html developers
|
||||
SPDX-FileCopyrightText: Tobias Koppers @sokra
|
||||
SPDX-FileCopyrightText: Roman Shtylman <shtylman@gmail.com>
|
||||
SPDX-FileCopyrightText: Nextcloud GmbH and Nextcloud contributors
|
||||
SPDX-FileCopyrightText: Guillaume Chau <guillaume.b.chau@gmail.com>
|
||||
SPDX-FileCopyrightText: GitHub Inc.
|
||||
SPDX-FileCopyrightText: Evan You
|
||||
SPDX-FileCopyrightText: Dr.-Ing. Mario Heiderich, Cure53 <mario@cure53.de> (https://cure53.de/)
|
||||
SPDX-FileCopyrightText: David Clark
|
||||
SPDX-FileCopyrightText: Christoph Wurst
|
||||
SPDX-FileCopyrightText: Anthony Fu <https://github.com/antfu>
|
||||
|
||||
|
||||
This file is generated from multiple sources. Included packages:
|
||||
- @nextcloud/auth
|
||||
- version: 2.5.3
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/browser-storage
|
||||
- version: 0.5.0
|
||||
- license: GPL-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/l10n
|
||||
- version: 3.4.1
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/logger
|
||||
- version: 3.0.2
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/router
|
||||
- version: 3.1.0
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/vue
|
||||
- version: 8.34.0
|
||||
- license: AGPL-3.0-or-later
|
||||
- @vueuse/core
|
||||
- version: 11.3.0
|
||||
- license: MIT
|
||||
- @vueuse/shared
|
||||
- version: 11.3.0
|
||||
- license: MIT
|
||||
- css-loader
|
||||
- version: 7.1.2
|
||||
- license: MIT
|
||||
- dompurify
|
||||
- version: 3.3.1
|
||||
- license: (MPL-2.0 OR Apache-2.0)
|
||||
- escape-html
|
||||
- version: 1.0.3
|
||||
- license: MIT
|
||||
- floating-vue
|
||||
- version: 1.0.0-beta.19
|
||||
- license: MIT
|
||||
- focus-trap
|
||||
- version: 7.6.6
|
||||
- license: MIT
|
||||
- process
|
||||
- version: 0.11.10
|
||||
- license: MIT
|
||||
- style-loader
|
||||
- version: 4.0.0
|
||||
- license: MIT
|
||||
- tabbable
|
||||
- version: 6.3.0
|
||||
- license: MIT
|
||||
- vue-color
|
||||
- version: 2.8.2
|
||||
- license: MIT
|
||||
- vue
|
||||
- version: 2.7.16
|
||||
- license: MIT
|
||||
2
dist/6916-6916.js
vendored
2
dist/6916-6916.js
vendored
File diff suppressed because one or more lines are too long
1
dist/6916-6916.js.map
vendored
1
dist/6916-6916.js.map
vendored
File diff suppressed because one or more lines are too long
1
dist/6916-6916.js.map.license
vendored
1
dist/6916-6916.js.map.license
vendored
|
|
@ -1 +0,0 @@
|
|||
6916-6916.js.license
|
||||
2
dist/7145-7145.js
vendored
Normal file
2
dist/7145-7145.js
vendored
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
"use strict";(globalThis.webpackChunknextcloud=globalThis.webpackChunknextcloud||[]).push([[7145],{17859:(e,t,a)=>{a.d(t,{A:()=>n._});var n=a(42005)},39526:(e,t,a)=>{a.r(t),a.d(t,{default:()=>f});var n=a(20641),l=a(50953),i=a(90033),u=a(21777),r=a(80474),o=a(91126),s=a(64572),c=a(17859),m=a(74506),d=a(35810),p=a(50240);function v(e){if(""===e.trim())return(0,m.t)("Names must not be empty.");if(e.startsWith("."))return(0,m.t)("Names must not start with a dot.");if(e.length>64)return(0,m.t)("Names may be at most 64 characters long.");try{return(0,d.KT)(e),""}catch(e){if(!(e instanceof d.di))throw e;switch(e.reason){case d.nF.Character:return(0,m.t)('"{char}" is not allowed inside a name.',{char:e.segment});case d.nF.ReservedName:return(0,m.t)('"{segment}" is a reserved name and not allowed.',{segment:e.segment});case d.nF.Extension:return e.segment.match(/\.[a-z]/i)?(0,m.t)('"{extension}" is not an allowed name.',{extension:e.segment}):(0,m.t)('Names must not end with "{extension}".',{extension:e.segment});default:return(0,m.t)("Invalid name.")}}}const b={key:0,class:"public-auth-prompt__text"},h=(0,n.pM)({__name:"PublicAuthPrompt",props:{nickname:{default:""},title:{default:(0,m.t)("Guest identification")},text:{default:""},notice:{default:""},submitLabel:{default:(0,m.t)("Submit name")},cancellable:{type:Boolean}},emits:["close"],setup(e,{emit:t}){const a=e,d=t,p=(0,n.rk)("input"),h=(0,r.c0)("public").build(),f=(0,l.KR)(a.nickname);(0,n.wB)(()=>a.nickname,()=>{f.value=a.nickname}),(0,n.wB)(f,e=>{const t=v(e);if(!t)return p.value.setCustomValidity(t),p.value.reportValidity(),void p.value.focus()});const y=(0,n.EW)(()=>{const e={label:(0,m.t)("Cancel"),variant:"tertiary",callback:()=>d("close")},t={label:a.submitLabel,type:"submit",variant:"primary"};return a.cancellable?[e,t]:[t]}),g=(0,n.EW)(()=>a.notice?a.notice:f.value?(0,m.t)("You are currently identified as {nickname}.",{nickname:f.value}):(0,m.t)("You are currently not identified."));function k(){const e=f.value.trim(),t=v(e);if(t)return p.value.setCustomValidity(t),p.value.reportValidity(),void p.value.focus();if(""===e)return p.value.setCustomValidity((0,m.t)("You cannot leave the name empty.")),p.value.reportValidity(),void p.value.focus();if(e.length<2)return p.value.setCustomValidity((0,m.t)("Please enter a name with at least 2 characters.")),p.value.reportValidity(),void p.value.focus();try{(0,u.L$)(e)}catch(e){return m.l.error("Failed to set nickname",{error:e}),(0,m.s)((0,m.t)("Failed to set nickname.")),void p.value.focus()}h.setItem("public-auth-prompt-shown","true"),d("close",f.value)}return(t,a)=>((0,n.uX)(),(0,n.Wv)((0,l.R1)(o.A),{buttons:y.value,class:"public-auth-prompt","data-cy-public-auth-prompt-dialog":"","is-form":"","no-close":"",name:e.title,onSubmit:k},{default:(0,n.k6)(()=>[e.text?((0,n.uX)(),(0,n.CE)("p",b,(0,i.v_)(e.text),1)):(0,n.Q3)("",!0),(0,n.bF)((0,l.R1)(s.A),{class:"public-auth-prompt__header",text:g.value,type:"info"},null,8,["text"]),(0,n.bF)((0,l.R1)(c.A),{ref:"input",modelValue:f.value,"onUpdate:modelValue":a[0]||(a[0]=e=>f.value=e),class:"public-auth-prompt__input","data-cy-public-auth-prompt-dialog-name":"",label:(0,l.R1)(m.t)("Name"),placeholder:(0,l.R1)(m.t)("Enter your name"),required:!e.cancellable,minlength:"2",maxlength:"64",name:"name"},null,8,["modelValue","label","placeholder","required"])]),_:1},8,["buttons","name"]))}}),f=(0,p._)(h,[["__scopeId","data-v-b33d88e5"]])}}]);
|
||||
//# sourceMappingURL=7145-7145.js.map?v=c0006870b8203ba95fa8
|
||||
422
dist/7145-7145.js.license
vendored
Normal file
422
dist/7145-7145.js.license
vendored
Normal file
|
|
@ -0,0 +1,422 @@
|
|||
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-FileCopyrightText: string_decoder developers
|
||||
SPDX-FileCopyrightText: rhysd <lin90162@yahoo.co.jp>
|
||||
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: 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: OpenJS Foundation and other contributors
|
||||
SPDX-FileCopyrightText: Nick Frasser (https://nfrasser.com)
|
||||
SPDX-FileCopyrightText: Nextcloud GmbH and Nextcloud contributors
|
||||
SPDX-FileCopyrightText: Max <max@nextcloud.com>
|
||||
SPDX-FileCopyrightText: Matt Zabriskie
|
||||
SPDX-FileCopyrightText: Mark <mark@remarkablemark.org>
|
||||
SPDX-FileCopyrightText: Joyent
|
||||
SPDX-FileCopyrightText: Jordan Humphreys <jordan@zurb.com>
|
||||
SPDX-FileCopyrightText: Jonas Schade <derzade@gmail.com>
|
||||
SPDX-FileCopyrightText: Jeff Sagal <sagalbot@gmail.com>
|
||||
SPDX-FileCopyrightText: Guillaume Chau
|
||||
SPDX-FileCopyrightText: GitHub Inc.
|
||||
SPDX-FileCopyrightText: Feross Aboukhadijeh
|
||||
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: David Clark
|
||||
SPDX-FileCopyrightText: Christoph Wurst
|
||||
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: Alkemics
|
||||
SPDX-FileCopyrightText: @nextcloud/dialogs developers
|
||||
|
||||
|
||||
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
|
||||
- @vueuse/core
|
||||
- version: 14.1.0
|
||||
- license: MIT
|
||||
- @nextcloud/vue
|
||||
- version: 9.3.1
|
||||
- license: AGPL-3.0-or-later
|
||||
- @vueuse/shared
|
||||
- version: 14.1.0
|
||||
- license: MIT
|
||||
- debounce
|
||||
- version: 3.0.0
|
||||
- license: MIT
|
||||
- eventemitter3
|
||||
- version: 5.0.1
|
||||
- license: MIT
|
||||
- p-queue
|
||||
- version: 9.0.1
|
||||
- license: MIT
|
||||
- rehype-react
|
||||
- version: 8.0.0
|
||||
- license: MIT
|
||||
- splitpanes
|
||||
- version: 4.0.4
|
||||
- license: MIT
|
||||
- vue-router
|
||||
- version: 4.6.4
|
||||
- license: MIT
|
||||
- vue-select
|
||||
- version: 4.0.0-beta.6
|
||||
- license: MIT
|
||||
- vue
|
||||
- version: 3.5.25
|
||||
- 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: 2.2.0
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/files
|
||||
- version: 3.12.0
|
||||
- license: AGPL-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.2
|
||||
- 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
|
||||
- @ungap/structured-clone
|
||||
- version: 1.3.0
|
||||
- license: ISC
|
||||
- @vue/devtools-api
|
||||
- version: 6.6.4
|
||||
- license: MIT
|
||||
- @vue/reactivity
|
||||
- version: 3.5.25
|
||||
- license: MIT
|
||||
- @vue/runtime-core
|
||||
- version: 3.5.25
|
||||
- license: MIT
|
||||
- @vue/runtime-dom
|
||||
- version: 3.5.25
|
||||
- license: MIT
|
||||
- @vue/shared
|
||||
- version: 3.5.25
|
||||
- license: MIT
|
||||
- axios
|
||||
- version: 1.12.2
|
||||
- license: MIT
|
||||
- base64-js
|
||||
- version: 1.5.1
|
||||
- license: MIT
|
||||
- blurhash
|
||||
- version: 2.0.5
|
||||
- license: MIT
|
||||
- buffer
|
||||
- version: 5.7.1
|
||||
- license: MIT
|
||||
- cancelable-promise
|
||||
- version: 4.3.1
|
||||
- license: MIT
|
||||
- comma-separated-tokens
|
||||
- version: 2.0.3
|
||||
- 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
|
||||
- devlop
|
||||
- version: 1.1.0
|
||||
- license: MIT
|
||||
- dompurify
|
||||
- version: 3.3.1
|
||||
- license: (MPL-2.0 OR Apache-2.0)
|
||||
- emoji-mart-vue-fast
|
||||
- version: 15.0.5
|
||||
- license: BSD-3-Clause
|
||||
- escape-html
|
||||
- version: 1.0.3
|
||||
- license: MIT
|
||||
- estree-util-is-identifier-name
|
||||
- version: 3.0.0
|
||||
- license: MIT
|
||||
- extend
|
||||
- version: 3.0.2
|
||||
- license: MIT
|
||||
- focus-trap
|
||||
- version: 7.6.6
|
||||
- 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
|
||||
- ieee754
|
||||
- version: 1.2.1
|
||||
- license: BSD-3-Clause
|
||||
- is-absolute-url
|
||||
- version: 4.0.1
|
||||
- license: MIT
|
||||
- jquery
|
||||
- version: 3.7.1
|
||||
- license: MIT
|
||||
- linkifyjs
|
||||
- version: 4.3.2
|
||||
- license: MIT
|
||||
- material-colors
|
||||
- version: 1.2.6
|
||||
- license: ISC
|
||||
- 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
|
||||
- buffer
|
||||
- version: 6.0.3
|
||||
- license: MIT
|
||||
- inherits
|
||||
- version: 2.0.3
|
||||
- license: ISC
|
||||
- util
|
||||
- version: 0.10.4
|
||||
- license: MIT
|
||||
- path
|
||||
- version: 0.12.7
|
||||
- license: MIT
|
||||
- process
|
||||
- version: 0.11.10
|
||||
- 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
|
||||
- safe-buffer
|
||||
- version: 5.2.1
|
||||
- license: MIT
|
||||
- space-separated-tokens
|
||||
- version: 2.0.2
|
||||
- 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.7
|
||||
- license: MIT
|
||||
- style-to-object
|
||||
- version: 1.0.14
|
||||
- license: MIT
|
||||
- style-to-js
|
||||
- version: 1.1.21
|
||||
- license: MIT
|
||||
- tabbable
|
||||
- version: 6.3.0
|
||||
- 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
|
||||
- typescript-event-target
|
||||
- version: 1.1.1
|
||||
- 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
|
||||
- vfile-message
|
||||
- version: 4.0.3
|
||||
- license: MIT
|
||||
- vfile
|
||||
- version: 6.0.3
|
||||
- license: MIT
|
||||
- vue-loader
|
||||
- version: 15.11.1
|
||||
- license: MIT
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue