mirror of
https://github.com/nextcloud/server.git
synced 2026-06-13 18:50:47 -04:00
Merge pull request #47122 from nextcloud/feat/limited-depth-tree
feat(files): Load limited depth tree
This commit is contained in:
commit
8c0bece57a
118 changed files with 393 additions and 266 deletions
|
|
@ -7,10 +7,7 @@
|
|||
*/
|
||||
namespace OCA\Files\Controller;
|
||||
|
||||
use OC\AppFramework\Middleware\Security\Exceptions\NotLoggedInException;
|
||||
use OC\Files\Node\Node;
|
||||
use OC\Files\Search\SearchComparison;
|
||||
use OC\Files\Search\SearchQuery;
|
||||
use OCA\Files\ResponseDefinitions;
|
||||
use OCA\Files\Service\TagService;
|
||||
use OCA\Files\Service\UserConfig;
|
||||
|
|
@ -29,12 +26,10 @@ use OCP\AppFramework\Http\FileDisplayResponse;
|
|||
use OCP\AppFramework\Http\JSONResponse;
|
||||
use OCP\AppFramework\Http\Response;
|
||||
use OCP\AppFramework\Http\StreamResponse;
|
||||
use OCP\Files\Cache\ICacheEntry;
|
||||
use OCP\Files\File;
|
||||
use OCP\Files\Folder;
|
||||
use OCP\Files\IRootFolder;
|
||||
use OCP\Files\NotFoundException;
|
||||
use OCP\Files\Search\ISearchComparison;
|
||||
use OCP\IConfig;
|
||||
use OCP\IL10N;
|
||||
use OCP\IPreview;
|
||||
|
|
@ -234,75 +229,78 @@ class ApiController extends Controller {
|
|||
}
|
||||
|
||||
/**
|
||||
* @param Folder[] $folders
|
||||
* @param \OCP\Files\Node[] $nodes
|
||||
* @param int $depth The depth to traverse into the contents of each node
|
||||
*/
|
||||
private function getTree(array $folders): array {
|
||||
$user = $this->userSession->getUser();
|
||||
if (!($user instanceof IUser)) {
|
||||
throw new NotLoggedInException();
|
||||
private function getChildren(array $nodes, int $depth = 1, int $currentDepth = 0): array {
|
||||
if ($currentDepth >= $depth) {
|
||||
return [];
|
||||
}
|
||||
|
||||
$userFolder = $this->rootFolder->getUserFolder($user->getUID());
|
||||
$tree = [];
|
||||
foreach ($folders as $folder) {
|
||||
$path = $userFolder->getRelativePath($folder->getPath());
|
||||
if ($path === null) {
|
||||
$children = [];
|
||||
foreach ($nodes as $node) {
|
||||
if (!($node instanceof Folder)) {
|
||||
continue;
|
||||
}
|
||||
$pathBasenames = explode('/', trim($path, '/'));
|
||||
$current = &$tree;
|
||||
foreach ($pathBasenames as $basename) {
|
||||
if (!isset($current['children'][$basename])) {
|
||||
$current['children'][$basename] = [
|
||||
'id' => $folder->getId(),
|
||||
];
|
||||
$displayName = $folder->getName();
|
||||
if ($displayName !== $basename) {
|
||||
$current['children'][$basename]['displayName'] = $displayName;
|
||||
}
|
||||
}
|
||||
$current = &$current['children'][$basename];
|
||||
|
||||
$basename = basename($node->getPath());
|
||||
$entry = [
|
||||
'id' => $node->getId(),
|
||||
'basename' => $basename,
|
||||
'children' => $this->getChildren($node->getDirectoryListing(), $depth, $currentDepth + 1),
|
||||
];
|
||||
$displayName = $node->getName();
|
||||
if ($basename !== $displayName) {
|
||||
$entry['displayName'] = $displayName;
|
||||
}
|
||||
$children[] = $entry;
|
||||
}
|
||||
return $tree['children'] ?? $tree;
|
||||
return $children;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the folder tree of the user
|
||||
*
|
||||
* @return JSONResponse<Http::STATUS_OK, FilesFolderTree, array{}>|JSONResponse<Http::STATUS_UNAUTHORIZED, array{message: string}, array{}>
|
||||
* @param string $path The path relative to the user folder
|
||||
* @param int $depth The depth of the tree
|
||||
*
|
||||
* @return JSONResponse<Http::STATUS_OK, FilesFolderTree, array{}>|JSONResponse<Http::STATUS_UNAUTHORIZED|Http::STATUS_BAD_REQUEST|Http::STATUS_NOT_FOUND, array{message: string}, array{}>
|
||||
*
|
||||
* 200: Folder tree returned successfully
|
||||
* 400: Invalid folder path
|
||||
* 401: Unauthorized
|
||||
* 404: Folder not found
|
||||
*/
|
||||
#[NoAdminRequired]
|
||||
#[ApiRoute(verb: 'GET', url: '/api/v1/folder-tree')]
|
||||
public function getFolderTree(): JSONResponse {
|
||||
public function getFolderTree(string $path = '/', int $depth = 1): JSONResponse {
|
||||
$user = $this->userSession->getUser();
|
||||
if (!($user instanceof IUser)) {
|
||||
return new JSONResponse([
|
||||
'message' => $this->l10n->t('Failed to authorize'),
|
||||
], Http::STATUS_UNAUTHORIZED);
|
||||
}
|
||||
|
||||
$userFolder = $this->rootFolder->getUserFolder($user->getUID());
|
||||
try {
|
||||
$searchQuery = new SearchQuery(
|
||||
new SearchComparison(ISearchComparison::COMPARE_EQUAL, 'mimetype', ICacheEntry::DIRECTORY_MIMETYPE),
|
||||
0,
|
||||
0,
|
||||
[],
|
||||
$user,
|
||||
false,
|
||||
);
|
||||
/** @var Folder[] $folders */
|
||||
$folders = $userFolder->search($searchQuery);
|
||||
$tree = $this->getTree($folders);
|
||||
$userFolder = $this->rootFolder->getUserFolder($user->getUID());
|
||||
$userFolderPath = $userFolder->getPath();
|
||||
$fullPath = implode('/', [$userFolderPath, trim($path, '/')]);
|
||||
$node = $this->rootFolder->get($fullPath);
|
||||
if (!($node instanceof Folder)) {
|
||||
return new JSONResponse([
|
||||
'message' => $this->l10n->t('Invalid folder path'),
|
||||
], Http::STATUS_BAD_REQUEST);
|
||||
}
|
||||
$nodes = $node->getDirectoryListing();
|
||||
$tree = $this->getChildren($nodes, $depth);
|
||||
} catch (NotFoundException $e) {
|
||||
return new JSONResponse([
|
||||
'message' => $this->l10n->t('Folder not found'),
|
||||
], Http::STATUS_NOT_FOUND);
|
||||
} catch (Throwable $th) {
|
||||
$this->logger->error($th->getMessage(), ['exception' => $th]);
|
||||
$tree = [];
|
||||
}
|
||||
return new JSONResponse($tree, Http::STATUS_OK, [], JSON_FORCE_OBJECT);
|
||||
return new JSONResponse($tree);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -39,13 +39,12 @@ namespace OCA\Files;
|
|||
* type: string,
|
||||
* }
|
||||
*
|
||||
* @psalm-type FilesFolderTreeNode = array{
|
||||
* @psalm-type FilesFolderTree = list<array{
|
||||
* id: int,
|
||||
* basename: string,
|
||||
* displayName?: string,
|
||||
* children?: array<string, array{}>,
|
||||
* }
|
||||
*
|
||||
* @psalm-type FilesFolderTree = array<string, FilesFolderTreeNode>
|
||||
* children: list<array{}>,
|
||||
* }>
|
||||
*
|
||||
*/
|
||||
class ResponseDefinitions {
|
||||
|
|
|
|||
|
|
@ -100,28 +100,30 @@
|
|||
}
|
||||
},
|
||||
"FolderTree": {
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"$ref": "#/components/schemas/FolderTreeNode"
|
||||
}
|
||||
},
|
||||
"FolderTreeNode": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"id"
|
||||
],
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "integer",
|
||||
"format": "int64"
|
||||
},
|
||||
"displayName": {
|
||||
"type": "string"
|
||||
},
|
||||
"children": {
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "object"
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"id",
|
||||
"basename",
|
||||
"children"
|
||||
],
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "integer",
|
||||
"format": "int64"
|
||||
},
|
||||
"basename": {
|
||||
"type": "string"
|
||||
},
|
||||
"displayName": {
|
||||
"type": "string"
|
||||
},
|
||||
"children": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1971,6 +1973,29 @@
|
|||
"basic_auth": []
|
||||
}
|
||||
],
|
||||
"requestBody": {
|
||||
"required": false,
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"path": {
|
||||
"type": "string",
|
||||
"default": "/",
|
||||
"description": "The path relative to the user folder"
|
||||
},
|
||||
"depth": {
|
||||
"type": "integer",
|
||||
"format": "int64",
|
||||
"default": 1,
|
||||
"description": "The depth of the tree"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"parameters": [
|
||||
{
|
||||
"name": "OCS-APIRequest",
|
||||
|
|
@ -2011,6 +2036,42 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"400": {
|
||||
"description": "Invalid folder path",
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"message"
|
||||
],
|
||||
"properties": {
|
||||
"message": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"404": {
|
||||
"description": "Folder not found",
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"message"
|
||||
],
|
||||
"properties": {
|
||||
"message": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@
|
|||
:key="view.id"
|
||||
class="files-navigation__item"
|
||||
allow-collapse
|
||||
:loading="view.loading"
|
||||
:data-cy-files-navigation-item="view.id"
|
||||
:exact="useExactRouteMatching(view)"
|
||||
:icon="view.iconClass"
|
||||
|
|
@ -17,11 +18,14 @@
|
|||
:pinned="view.sticky"
|
||||
:to="generateToNavigation(view)"
|
||||
:style="style"
|
||||
@update:open="onToggleExpand(view)">
|
||||
@update:open="(open) => onOpen(open, view)">
|
||||
<template v-if="view.icon" #icon>
|
||||
<NcIconSvgWrapper :svg="view.icon" />
|
||||
</template>
|
||||
|
||||
<!-- Hack to force the collapse icon to be displayed -->
|
||||
<li v-if="view.loadChildViews && !view.loaded" style="display: none" />
|
||||
|
||||
<!-- Recursively nest child views -->
|
||||
<FilesNavigationItem v-if="hasChildViews(view)"
|
||||
:parent="view"
|
||||
|
|
@ -142,14 +146,18 @@ export default defineComponent({
|
|||
/**
|
||||
* Expand/collapse a a view with children and permanently
|
||||
* save this setting in the server.
|
||||
* @param view View to toggle
|
||||
* @param open True if open
|
||||
* @param view View
|
||||
*/
|
||||
onToggleExpand(view: View) {
|
||||
async onOpen(open: boolean, view: View) {
|
||||
// Invert state
|
||||
const isExpanded = this.isExpanded(view)
|
||||
// Update the view expanded state, might not be necessary
|
||||
view.expanded = !isExpanded
|
||||
this.viewConfigStore.update(view.id, 'expanded', !isExpanded)
|
||||
if (open && view.loadChildViews) {
|
||||
await view.loadChildViews(view)
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ import type { View } from '@nextcloud/files'
|
|||
import type { ShallowRef } from 'vue'
|
||||
|
||||
import { getNavigation } from '@nextcloud/files'
|
||||
import { subscribe } from '@nextcloud/event-bus'
|
||||
import { onMounted, onUnmounted, shallowRef, triggerRef } from 'vue'
|
||||
|
||||
/**
|
||||
|
|
@ -35,6 +36,7 @@ export function useNavigation() {
|
|||
onMounted(() => {
|
||||
navigation.addEventListener('update', onUpdateViews)
|
||||
navigation.addEventListener('updateActive', onUpdateActive)
|
||||
subscribe('files:navigation:updated', onUpdateViews)
|
||||
})
|
||||
onUnmounted(() => {
|
||||
navigation.removeEventListener('update', onUpdateViews)
|
||||
|
|
|
|||
|
|
@ -13,23 +13,17 @@ import {
|
|||
import axios from '@nextcloud/axios'
|
||||
import { generateOcsUrl } from '@nextcloud/router'
|
||||
import { getCurrentUser } from '@nextcloud/auth'
|
||||
import { dirname, encodePath } from '@nextcloud/paths'
|
||||
import { dirname, encodePath, joinPaths } from '@nextcloud/paths'
|
||||
|
||||
import { getContents as getFiles } from './Files.ts'
|
||||
|
||||
export const folderTreeId = 'folders'
|
||||
export const sourceRoot = `${davRemoteURL}/files/${getCurrentUser()?.uid}`
|
||||
|
||||
interface TreeNodeData {
|
||||
// eslint-disable-next-line no-use-before-define
|
||||
type Tree = Array<{
|
||||
id: number,
|
||||
basename: string,
|
||||
displayName?: string,
|
||||
// eslint-disable-next-line no-use-before-define
|
||||
children?: Tree,
|
||||
}
|
||||
|
||||
interface Tree {
|
||||
[basename: string]: TreeNodeData,
|
||||
}
|
||||
children: Tree,
|
||||
}>
|
||||
|
||||
export interface TreeNode {
|
||||
source: string,
|
||||
|
|
@ -39,27 +33,35 @@ export interface TreeNode {
|
|||
displayName?: string,
|
||||
}
|
||||
|
||||
const getTreeNodes = (tree: Tree, nodes: TreeNode[] = [], currentPath: string = ''): TreeNode[] => {
|
||||
for (const basename in tree) {
|
||||
const path = `${currentPath}/${basename}`
|
||||
export const folderTreeId = 'folders'
|
||||
|
||||
export const sourceRoot = `${davRemoteURL}/files/${getCurrentUser()?.uid}`
|
||||
|
||||
const getTreeNodes = (tree: Tree, currentPath: string = '/', nodes: TreeNode[] = []): TreeNode[] => {
|
||||
for (const { id, basename, displayName, children } of tree) {
|
||||
const path = joinPaths(currentPath, basename)
|
||||
const node: TreeNode = {
|
||||
source: `${sourceRoot}${path}`,
|
||||
path,
|
||||
fileid: tree[basename].id,
|
||||
fileid: id,
|
||||
basename,
|
||||
displayName: tree[basename].displayName,
|
||||
}
|
||||
if (displayName) {
|
||||
node.displayName = displayName
|
||||
}
|
||||
nodes.push(node)
|
||||
if (tree[basename].children) {
|
||||
getTreeNodes(tree[basename].children, nodes, path)
|
||||
if (children.length > 0) {
|
||||
getTreeNodes(children, path, nodes)
|
||||
}
|
||||
}
|
||||
return nodes
|
||||
}
|
||||
|
||||
export const getFolderTreeNodes = async (): Promise<TreeNode[]> => {
|
||||
const { data: tree } = await axios.get<Tree>(generateOcsUrl('/apps/files/api/v1/folder-tree'))
|
||||
const nodes = getTreeNodes(tree)
|
||||
export const getFolderTreeNodes = async (path: string = '/', depth: number = 1): Promise<TreeNode[]> => {
|
||||
const { data: tree } = await axios.get<Tree>(generateOcsUrl('/apps/files/api/v1/folder-tree'), {
|
||||
params: new URLSearchParams({ path, depth: String(depth) }),
|
||||
})
|
||||
const nodes = getTreeNodes(tree, path)
|
||||
return nodes
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -21,6 +21,8 @@ export const useViewConfigStore = function(...args) {
|
|||
|
||||
getters: {
|
||||
getConfig: (state) => (view: ViewId): ViewConfig => state.viewConfig[view] || {},
|
||||
|
||||
getConfigs: (state) => (): ViewConfigs => state.viewConfig,
|
||||
},
|
||||
|
||||
actions: {
|
||||
|
|
|
|||
|
|
@ -39,10 +39,11 @@
|
|||
|
||||
<script lang="ts">
|
||||
import type { View } from '@nextcloud/files'
|
||||
import type { ViewConfig } from '../types.ts'
|
||||
|
||||
import { emit } from '@nextcloud/event-bus'
|
||||
import { translate as t, getCanonicalLocale, getLanguage } from '@nextcloud/l10n'
|
||||
import { defineComponent } from 'vue'
|
||||
import { emit, subscribe } from '@nextcloud/event-bus'
|
||||
import { translate as t, getCanonicalLocale, getLanguage } from '@nextcloud/l10n'
|
||||
|
||||
import IconCog from 'vue-material-design-icons/Cog.vue'
|
||||
import NcAppNavigation from '@nextcloud/vue/dist/Components/NcAppNavigation.js'
|
||||
|
|
@ -144,6 +145,11 @@ export default defineComponent({
|
|||
},
|
||||
},
|
||||
|
||||
created() {
|
||||
subscribe('files:folder-tree:initialized', this.loadExpandedViews)
|
||||
subscribe('files:folder-tree:expanded', this.loadExpandedViews)
|
||||
},
|
||||
|
||||
beforeMount() {
|
||||
// This is guaranteed to be a view because `currentViewId` falls back to the default 'files' view
|
||||
const view = this.views.find(({ id }) => id === this.currentViewId)!
|
||||
|
|
@ -152,6 +158,20 @@ export default defineComponent({
|
|||
},
|
||||
|
||||
methods: {
|
||||
async loadExpandedViews() {
|
||||
const viewConfigs = this.viewConfigStore.getConfigs()
|
||||
const viewsToLoad: View[] = (Object.entries(viewConfigs) as Array<[string, ViewConfig]>)
|
||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
||||
.filter(([viewId, config]) => config.expanded === true)
|
||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
||||
.map(([viewId, config]) => this.$navigation.views.find(view => view.id === viewId))
|
||||
.filter(Boolean) // Only registered views
|
||||
.filter(view => view.loadChildViews && !view.loaded)
|
||||
for (const view of viewsToLoad) {
|
||||
await view.loadChildViews(view)
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Set the view as active on the navigation and handle internal state
|
||||
* @param view View to set active
|
||||
|
|
|
|||
|
|
@ -5,9 +5,10 @@
|
|||
|
||||
import type { TreeNode } from '../services/FolderTree.ts'
|
||||
|
||||
import PQueue from 'p-queue'
|
||||
import { Folder, Node, View, getNavigation } from '@nextcloud/files'
|
||||
import { translate as t } from '@nextcloud/l10n'
|
||||
import { subscribe } from '@nextcloud/event-bus'
|
||||
import { emit, subscribe } from '@nextcloud/event-bus'
|
||||
import { isSamePath } from '@nextcloud/paths'
|
||||
import { loadState } from '@nextcloud/initial-state'
|
||||
|
||||
|
|
@ -29,6 +30,41 @@ const isFolderTreeEnabled = loadState('files', 'config', { folder_tree: true }).
|
|||
|
||||
const Navigation = getNavigation()
|
||||
|
||||
const queue = new PQueue({ concurrency: 5, intervalCap: 5, interval: 200 })
|
||||
const registerQueue = new PQueue({ concurrency: 5, intervalCap: 5, interval: 200 })
|
||||
|
||||
const registerTreeNodes = async (path: string = '/') => {
|
||||
await queue.add(async () => {
|
||||
const nodes = await getFolderTreeNodes(path)
|
||||
const promises = nodes.map(node => registerQueue.add(() => registerTreeNodeView(node)))
|
||||
await Promise.allSettled(promises)
|
||||
})
|
||||
}
|
||||
|
||||
const getLoadChildViews = (node: TreeNode | Folder) => {
|
||||
return async (view: View): Promise<void> => {
|
||||
// @ts-expect-error Custom property on View instance
|
||||
if (view.loaded) {
|
||||
return
|
||||
}
|
||||
// @ts-expect-error Custom property
|
||||
view.loading = true
|
||||
try {
|
||||
await registerTreeNodes(node.path)
|
||||
} catch (error) {
|
||||
// Skip duplicate view registration errors
|
||||
}
|
||||
// @ts-expect-error Custom property
|
||||
view.loading = false
|
||||
// @ts-expect-error Custom property
|
||||
view.loaded = true
|
||||
// @ts-expect-error No payload
|
||||
emit('files:navigation:updated')
|
||||
// @ts-expect-error No payload
|
||||
emit('files:folder-tree:expanded')
|
||||
}
|
||||
}
|
||||
|
||||
const registerTreeNodeView = (node: TreeNode) => {
|
||||
Navigation.register(new View({
|
||||
id: encodeSource(node.source),
|
||||
|
|
@ -40,6 +76,7 @@ const registerTreeNodeView = (node: TreeNode) => {
|
|||
order: 0, // TODO Allow undefined order for natural sort
|
||||
|
||||
getContents,
|
||||
loadChildViews: getLoadChildViews(node),
|
||||
|
||||
params: {
|
||||
view: folderTreeId,
|
||||
|
|
@ -60,6 +97,7 @@ const registerFolderView = (folder: Folder) => {
|
|||
order: 0, // TODO Allow undefined order for natural sort
|
||||
|
||||
getContents,
|
||||
loadChildViews: getLoadChildViews(folder),
|
||||
|
||||
params: {
|
||||
view: folderTreeId,
|
||||
|
|
@ -75,7 +113,6 @@ const removeFolderView = (folder: Folder) => {
|
|||
}
|
||||
|
||||
const removeFolderViewSource = (source: string) => {
|
||||
const Navigation = getNavigation()
|
||||
Navigation.remove(source)
|
||||
}
|
||||
|
||||
|
|
@ -134,14 +171,12 @@ const registerFolderTreeRoot = () => {
|
|||
}
|
||||
|
||||
const registerFolderTreeChildren = async () => {
|
||||
const nodes = await getFolderTreeNodes()
|
||||
for (const node of nodes) {
|
||||
registerTreeNodeView(node)
|
||||
}
|
||||
|
||||
await registerTreeNodes()
|
||||
subscribe('files:node:created', onCreateNode)
|
||||
subscribe('files:node:deleted', onDeleteNode)
|
||||
subscribe('files:node:moved', onMoveNode)
|
||||
// @ts-expect-error No payload
|
||||
emit('files:folder-tree:initialized')
|
||||
}
|
||||
|
||||
export const registerFolderTreeView = async () => {
|
||||
|
|
|
|||
2
dist/1019-1019.js.license
vendored
2
dist/1019-1019.js.license
vendored
|
|
@ -60,7 +60,7 @@ This file is generated from multiple sources. Included packages:
|
|||
- version: 3.3.1
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/files
|
||||
- version: 3.7.0
|
||||
- version: 3.8.0
|
||||
- license: AGPL-3.0-or-later
|
||||
- @nextcloud/initial-state
|
||||
- version: 2.2.0
|
||||
|
|
|
|||
4
dist/3167-3167.js
vendored
4
dist/3167-3167.js
vendored
File diff suppressed because one or more lines are too long
2
dist/3167-3167.js.license
vendored
2
dist/3167-3167.js.license
vendored
|
|
@ -88,7 +88,7 @@ This file is generated from multiple sources. Included packages:
|
|||
- version: 3.3.1
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/files
|
||||
- version: 3.7.0
|
||||
- version: 3.8.0
|
||||
- license: AGPL-3.0-or-later
|
||||
- @nextcloud/initial-state
|
||||
- version: 2.2.0
|
||||
|
|
|
|||
2
dist/3167-3167.js.map
vendored
2
dist/3167-3167.js.map
vendored
File diff suppressed because one or more lines are too long
2
dist/7493-7493.js.license
vendored
2
dist/7493-7493.js.license
vendored
|
|
@ -110,7 +110,7 @@ This file is generated from multiple sources. Included packages:
|
|||
- version: 3.3.1
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/files
|
||||
- version: 3.7.0
|
||||
- version: 3.8.0
|
||||
- license: AGPL-3.0-or-later
|
||||
- @nextcloud/initial-state
|
||||
- version: 2.2.0
|
||||
|
|
|
|||
4
dist/9480-9480.js
vendored
4
dist/9480-9480.js
vendored
File diff suppressed because one or more lines are too long
2
dist/9480-9480.js.license
vendored
2
dist/9480-9480.js.license
vendored
|
|
@ -114,7 +114,7 @@ This file is generated from multiple sources. Included packages:
|
|||
- version: 3.3.1
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/files
|
||||
- version: 3.7.0
|
||||
- version: 3.8.0
|
||||
- license: AGPL-3.0-or-later
|
||||
- @nextcloud/initial-state
|
||||
- version: 2.2.0
|
||||
|
|
|
|||
2
dist/9480-9480.js.map
vendored
2
dist/9480-9480.js.map
vendored
File diff suppressed because one or more lines are too long
2
dist/9725-9725.js.license
vendored
2
dist/9725-9725.js.license
vendored
|
|
@ -68,7 +68,7 @@ This file is generated from multiple sources. Included packages:
|
|||
- version: 3.3.1
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/files
|
||||
- version: 3.7.0
|
||||
- version: 3.8.0
|
||||
- license: AGPL-3.0-or-later
|
||||
- @nextcloud/initial-state
|
||||
- version: 2.2.0
|
||||
|
|
|
|||
4
dist/comments-comments-app.js
vendored
4
dist/comments-comments-app.js
vendored
File diff suppressed because one or more lines are too long
2
dist/comments-comments-app.js.map
vendored
2
dist/comments-comments-app.js.map
vendored
File diff suppressed because one or more lines are too long
4
dist/comments-comments-tab.js
vendored
4
dist/comments-comments-tab.js
vendored
File diff suppressed because one or more lines are too long
2
dist/comments-comments-tab.js.map
vendored
2
dist/comments-comments-tab.js.map
vendored
File diff suppressed because one or more lines are too long
4
dist/comments-init.js
vendored
4
dist/comments-init.js
vendored
File diff suppressed because one or more lines are too long
2
dist/comments-init.js.map
vendored
2
dist/comments-init.js.map
vendored
File diff suppressed because one or more lines are too long
4
dist/core-legacy-unified-search.js
vendored
4
dist/core-legacy-unified-search.js
vendored
File diff suppressed because one or more lines are too long
2
dist/core-legacy-unified-search.js.map
vendored
2
dist/core-legacy-unified-search.js.map
vendored
File diff suppressed because one or more lines are too long
4
dist/core-login.js
vendored
4
dist/core-login.js
vendored
File diff suppressed because one or more lines are too long
2
dist/core-login.js.license
vendored
2
dist/core-login.js.license
vendored
|
|
@ -70,7 +70,7 @@ This file is generated from multiple sources. Included packages:
|
|||
- version: 3.3.1
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/files
|
||||
- version: 3.7.0
|
||||
- version: 3.8.0
|
||||
- license: AGPL-3.0-or-later
|
||||
- @nextcloud/initial-state
|
||||
- version: 2.2.0
|
||||
|
|
|
|||
2
dist/core-login.js.map
vendored
2
dist/core-login.js.map
vendored
File diff suppressed because one or more lines are too long
4
dist/core-main.js
vendored
4
dist/core-main.js
vendored
File diff suppressed because one or more lines are too long
2
dist/core-main.js.license
vendored
2
dist/core-main.js.license
vendored
|
|
@ -87,7 +87,7 @@ This file is generated from multiple sources. Included packages:
|
|||
- version: 3.3.1
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/files
|
||||
- version: 3.7.0
|
||||
- version: 3.8.0
|
||||
- license: AGPL-3.0-or-later
|
||||
- @nextcloud/initial-state
|
||||
- version: 2.2.0
|
||||
|
|
|
|||
2
dist/core-main.js.map
vendored
2
dist/core-main.js.map
vendored
File diff suppressed because one or more lines are too long
4
dist/core-profile.js
vendored
4
dist/core-profile.js
vendored
File diff suppressed because one or more lines are too long
2
dist/core-profile.js.map
vendored
2
dist/core-profile.js.map
vendored
File diff suppressed because one or more lines are too long
4
dist/dav-settings-personal-availability.js
vendored
4
dist/dav-settings-personal-availability.js
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
4
dist/files-init.js
vendored
4
dist/files-init.js
vendored
File diff suppressed because one or more lines are too long
2
dist/files-init.js.license
vendored
2
dist/files-init.js.license
vendored
|
|
@ -71,7 +71,7 @@ This file is generated from multiple sources. Included packages:
|
|||
- version: 3.3.1
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/files
|
||||
- version: 3.7.0
|
||||
- version: 3.8.0
|
||||
- license: AGPL-3.0-or-later
|
||||
- @nextcloud/initial-state
|
||||
- version: 2.2.0
|
||||
|
|
|
|||
2
dist/files-init.js.map
vendored
2
dist/files-init.js.map
vendored
File diff suppressed because one or more lines are too long
4
dist/files-main.js
vendored
4
dist/files-main.js
vendored
File diff suppressed because one or more lines are too long
2
dist/files-main.js.license
vendored
2
dist/files-main.js.license
vendored
|
|
@ -88,7 +88,7 @@ This file is generated from multiple sources. Included packages:
|
|||
- version: 3.3.1
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/files
|
||||
- version: 3.7.0
|
||||
- version: 3.8.0
|
||||
- license: AGPL-3.0-or-later
|
||||
- @nextcloud/initial-state
|
||||
- version: 2.2.0
|
||||
|
|
|
|||
2
dist/files-main.js.map
vendored
2
dist/files-main.js.map
vendored
File diff suppressed because one or more lines are too long
4
dist/files-reference-files.js
vendored
4
dist/files-reference-files.js
vendored
File diff suppressed because one or more lines are too long
2
dist/files-reference-files.js.license
vendored
2
dist/files-reference-files.js.license
vendored
|
|
@ -96,7 +96,7 @@ This file is generated from multiple sources. Included packages:
|
|||
- version: 3.3.1
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/files
|
||||
- version: 3.7.0
|
||||
- version: 3.8.0
|
||||
- license: AGPL-3.0-or-later
|
||||
- @nextcloud/initial-state
|
||||
- version: 2.2.0
|
||||
|
|
|
|||
2
dist/files-reference-files.js.map
vendored
2
dist/files-reference-files.js.map
vendored
File diff suppressed because one or more lines are too long
4
dist/files-search.js
vendored
4
dist/files-search.js
vendored
|
|
@ -1,2 +1,2 @@
|
|||
(()=>{"use strict";var e,r,t,i={97986:(e,r,t)=>{var i=t(61338),o=t(85168),n=t(63814),a=t(53334);const l=(0,t(35947).YK)().setApp("files").detectUser().build();document.addEventListener("DOMContentLoaded",(function(){const e=window.OCA;e.UnifiedSearch&&(l.info("Initializing unified search plugin: folder search from files app"),e.UnifiedSearch.registerFilterAction({id:"files",appId:"files",label:(0,a.Tl)("files","In folder"),icon:(0,n.d0)("files","app.svg"),callback:()=>{(0,o.a1)("Pick plain text files").addMimeTypeFilter("httpd/unix-directory").allowDirectories(!0).addButton({label:"Pick",callback:e=>{l.info("Folder picked",{folder:e[0]});const r=e[0];(0,i.Ic)("nextcloud:unified-search:add-filter",{id:"files",payload:r,filterUpdateText:(0,a.Tl)("files","Search in folder: {folder}",{folder:r.basename}),filterParams:{path:r.path}})}}).build().pick()}}))}))}},o={};function n(e){var r=o[e];if(void 0!==r)return r.exports;var t=o[e]={id:e,loaded:!1,exports:{}};return i[e].call(t.exports,t,t.exports,n),t.loaded=!0,t.exports}n.m=i,e=[],n.O=(r,t,i,o)=>{if(!t){var a=1/0;for(s=0;s<e.length;s++){t=e[s][0],i=e[s][1],o=e[s][2];for(var l=!0,d=0;d<t.length;d++)(!1&o||a>=o)&&Object.keys(n.O).every((e=>n.O[e](t[d])))?t.splice(d--,1):(l=!1,o<a&&(a=o));if(l){e.splice(s--,1);var c=i();void 0!==c&&(r=c)}}return r}o=o||0;for(var s=e.length;s>0&&e[s-1][2]>o;s--)e[s]=e[s-1];e[s]=[t,i,o]},n.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return n.d(r,{a:r}),r},n.d=(e,r)=>{for(var t in r)n.o(r,t)&&!n.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},n.f={},n.e=e=>Promise.all(Object.keys(n.f).reduce(((r,t)=>(n.f[t](e,r),r)),[])),n.u=e=>e+"-"+e+".js?v="+{4254:"5c2324570f66dff0c8a1",9480:"a7fc50e8df280cf9e346"}[e],n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),r={},t="nextcloud:",n.l=(e,i,o,a)=>{if(r[e])r[e].push(i);else{var l,d;if(void 0!==o)for(var c=document.getElementsByTagName("script"),s=0;s<c.length;s++){var f=c[s];if(f.getAttribute("src")==e||f.getAttribute("data-webpack")==t+o){l=f;break}}l||(d=!0,(l=document.createElement("script")).charset="utf-8",l.timeout=120,n.nc&&l.setAttribute("nonce",n.nc),l.setAttribute("data-webpack",t+o),l.src=e),r[e]=[i];var u=(t,i)=>{l.onerror=l.onload=null,clearTimeout(p);var o=r[e];if(delete r[e],l.parentNode&&l.parentNode.removeChild(l),o&&o.forEach((e=>e(i))),t)return t(i)},p=setTimeout(u.bind(null,void 0,{type:"timeout",target:l}),12e4);l.onerror=u.bind(null,l.onerror),l.onload=u.bind(null,l.onload),d&&document.head.appendChild(l)}},n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),n.j=2277,(()=>{var e;n.g.importScripts&&(e=n.g.location+"");var r=n.g.document;if(!e&&r&&(r.currentScript&&(e=r.currentScript.src),!e)){var t=r.getElementsByTagName("script");if(t.length)for(var i=t.length-1;i>-1&&(!e||!/^http(s?):/.test(e));)e=t[i--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),n.p=e})(),(()=>{n.b=document.baseURI||self.location.href;var e={2277:0};n.f.j=(r,t)=>{var i=n.o(e,r)?e[r]:void 0;if(0!==i)if(i)t.push(i[2]);else{var o=new Promise(((t,o)=>i=e[r]=[t,o]));t.push(i[2]=o);var a=n.p+n.u(r),l=new Error;n.l(a,(t=>{if(n.o(e,r)&&(0!==(i=e[r])&&(e[r]=void 0),i)){var o=t&&("load"===t.type?"missing":t.type),a=t&&t.target&&t.target.src;l.message="Loading chunk "+r+" failed.\n("+o+": "+a+")",l.name="ChunkLoadError",l.type=o,l.request=a,i[1](l)}}),"chunk-"+r,r)}},n.O.j=r=>0===e[r];var r=(r,t)=>{var i,o,a=t[0],l=t[1],d=t[2],c=0;if(a.some((r=>0!==e[r]))){for(i in l)n.o(l,i)&&(n.m[i]=l[i]);if(d)var s=d(n)}for(r&&r(t);c<a.length;c++)o=a[c],n.o(e,o)&&e[o]&&e[o][0](),e[o]=0;return n.O(s)},t=self.webpackChunknextcloud=self.webpackChunknextcloud||[];t.forEach(r.bind(null,0)),t.push=r.bind(null,t.push.bind(t))})(),n.nc=void 0;var a=n.O(void 0,[4208],(()=>n(97986)));a=n.O(a)})();
|
||||
//# sourceMappingURL=files-search.js.map?v=02c804c8d9384e2c4d2f
|
||||
(()=>{"use strict";var e,r,t,i={97986:(e,r,t)=>{var i=t(61338),o=t(85168),n=t(63814),a=t(53334);const l=(0,t(35947).YK)().setApp("files").detectUser().build();document.addEventListener("DOMContentLoaded",(function(){const e=window.OCA;e.UnifiedSearch&&(l.info("Initializing unified search plugin: folder search from files app"),e.UnifiedSearch.registerFilterAction({id:"files",appId:"files",label:(0,a.Tl)("files","In folder"),icon:(0,n.d0)("files","app.svg"),callback:()=>{(0,o.a1)("Pick plain text files").addMimeTypeFilter("httpd/unix-directory").allowDirectories(!0).addButton({label:"Pick",callback:e=>{l.info("Folder picked",{folder:e[0]});const r=e[0];(0,i.Ic)("nextcloud:unified-search:add-filter",{id:"files",payload:r,filterUpdateText:(0,a.Tl)("files","Search in folder: {folder}",{folder:r.basename}),filterParams:{path:r.path}})}}).build().pick()}}))}))}},o={};function n(e){var r=o[e];if(void 0!==r)return r.exports;var t=o[e]={id:e,loaded:!1,exports:{}};return i[e].call(t.exports,t,t.exports,n),t.loaded=!0,t.exports}n.m=i,e=[],n.O=(r,t,i,o)=>{if(!t){var a=1/0;for(s=0;s<e.length;s++){t=e[s][0],i=e[s][1],o=e[s][2];for(var l=!0,d=0;d<t.length;d++)(!1&o||a>=o)&&Object.keys(n.O).every((e=>n.O[e](t[d])))?t.splice(d--,1):(l=!1,o<a&&(a=o));if(l){e.splice(s--,1);var c=i();void 0!==c&&(r=c)}}return r}o=o||0;for(var s=e.length;s>0&&e[s-1][2]>o;s--)e[s]=e[s-1];e[s]=[t,i,o]},n.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return n.d(r,{a:r}),r},n.d=(e,r)=>{for(var t in r)n.o(r,t)&&!n.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},n.f={},n.e=e=>Promise.all(Object.keys(n.f).reduce(((r,t)=>(n.f[t](e,r),r)),[])),n.u=e=>e+"-"+e+".js?v="+{4254:"5c2324570f66dff0c8a1",9480:"ffc85b17def7a3ab31f0"}[e],n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),r={},t="nextcloud:",n.l=(e,i,o,a)=>{if(r[e])r[e].push(i);else{var l,d;if(void 0!==o)for(var c=document.getElementsByTagName("script"),s=0;s<c.length;s++){var f=c[s];if(f.getAttribute("src")==e||f.getAttribute("data-webpack")==t+o){l=f;break}}l||(d=!0,(l=document.createElement("script")).charset="utf-8",l.timeout=120,n.nc&&l.setAttribute("nonce",n.nc),l.setAttribute("data-webpack",t+o),l.src=e),r[e]=[i];var u=(t,i)=>{l.onerror=l.onload=null,clearTimeout(p);var o=r[e];if(delete r[e],l.parentNode&&l.parentNode.removeChild(l),o&&o.forEach((e=>e(i))),t)return t(i)},p=setTimeout(u.bind(null,void 0,{type:"timeout",target:l}),12e4);l.onerror=u.bind(null,l.onerror),l.onload=u.bind(null,l.onload),d&&document.head.appendChild(l)}},n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),n.j=2277,(()=>{var e;n.g.importScripts&&(e=n.g.location+"");var r=n.g.document;if(!e&&r&&(r.currentScript&&(e=r.currentScript.src),!e)){var t=r.getElementsByTagName("script");if(t.length)for(var i=t.length-1;i>-1&&(!e||!/^http(s?):/.test(e));)e=t[i--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),n.p=e})(),(()=>{n.b=document.baseURI||self.location.href;var e={2277:0};n.f.j=(r,t)=>{var i=n.o(e,r)?e[r]:void 0;if(0!==i)if(i)t.push(i[2]);else{var o=new Promise(((t,o)=>i=e[r]=[t,o]));t.push(i[2]=o);var a=n.p+n.u(r),l=new Error;n.l(a,(t=>{if(n.o(e,r)&&(0!==(i=e[r])&&(e[r]=void 0),i)){var o=t&&("load"===t.type?"missing":t.type),a=t&&t.target&&t.target.src;l.message="Loading chunk "+r+" failed.\n("+o+": "+a+")",l.name="ChunkLoadError",l.type=o,l.request=a,i[1](l)}}),"chunk-"+r,r)}},n.O.j=r=>0===e[r];var r=(r,t)=>{var i,o,a=t[0],l=t[1],d=t[2],c=0;if(a.some((r=>0!==e[r]))){for(i in l)n.o(l,i)&&(n.m[i]=l[i]);if(d)var s=d(n)}for(r&&r(t);c<a.length;c++)o=a[c],n.o(e,o)&&e[o]&&e[o][0](),e[o]=0;return n.O(s)},t=self.webpackChunknextcloud=self.webpackChunknextcloud||[];t.forEach(r.bind(null,0)),t.push=r.bind(null,t.push.bind(t))})(),n.nc=void 0;var a=n.O(void 0,[4208],(()=>n(97986)));a=n.O(a)})();
|
||||
//# sourceMappingURL=files-search.js.map?v=c8c9ac218cd9158f085d
|
||||
2
dist/files-search.js.map
vendored
2
dist/files-search.js.map
vendored
File diff suppressed because one or more lines are too long
4
dist/files-settings-personal.js
vendored
4
dist/files-settings-personal.js
vendored
File diff suppressed because one or more lines are too long
2
dist/files-settings-personal.js.map
vendored
2
dist/files-settings-personal.js.map
vendored
File diff suppressed because one or more lines are too long
4
dist/files-sidebar.js
vendored
4
dist/files-sidebar.js
vendored
File diff suppressed because one or more lines are too long
2
dist/files-sidebar.js.license
vendored
2
dist/files-sidebar.js.license
vendored
|
|
@ -104,7 +104,7 @@ This file is generated from multiple sources. Included packages:
|
|||
- version: 3.3.1
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/files
|
||||
- version: 3.7.0
|
||||
- version: 3.8.0
|
||||
- license: AGPL-3.0-or-later
|
||||
- @nextcloud/initial-state
|
||||
- version: 2.2.0
|
||||
|
|
|
|||
2
dist/files-sidebar.js.map
vendored
2
dist/files-sidebar.js.map
vendored
File diff suppressed because one or more lines are too long
4
dist/files_external-init.js
vendored
4
dist/files_external-init.js
vendored
File diff suppressed because one or more lines are too long
2
dist/files_external-init.js.license
vendored
2
dist/files_external-init.js.license
vendored
|
|
@ -56,7 +56,7 @@ This file is generated from multiple sources. Included packages:
|
|||
- version: 3.3.1
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/files
|
||||
- version: 3.7.0
|
||||
- version: 3.8.0
|
||||
- license: AGPL-3.0-or-later
|
||||
- @nextcloud/initial-state
|
||||
- version: 2.2.0
|
||||
|
|
|
|||
2
dist/files_external-init.js.map
vendored
2
dist/files_external-init.js.map
vendored
File diff suppressed because one or more lines are too long
4
dist/files_reminders-init.js
vendored
4
dist/files_reminders-init.js
vendored
File diff suppressed because one or more lines are too long
2
dist/files_reminders-init.js.license
vendored
2
dist/files_reminders-init.js.license
vendored
|
|
@ -56,7 +56,7 @@ This file is generated from multiple sources. Included packages:
|
|||
- version: 3.3.1
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/files
|
||||
- version: 3.7.0
|
||||
- version: 3.8.0
|
||||
- license: AGPL-3.0-or-later
|
||||
- @nextcloud/initial-state
|
||||
- version: 2.2.0
|
||||
|
|
|
|||
2
dist/files_reminders-init.js.map
vendored
2
dist/files_reminders-init.js.map
vendored
File diff suppressed because one or more lines are too long
4
dist/files_sharing-files_sharing_tab.js
vendored
4
dist/files_sharing-files_sharing_tab.js
vendored
File diff suppressed because one or more lines are too long
2
dist/files_sharing-files_sharing_tab.js.map
vendored
2
dist/files_sharing-files_sharing_tab.js.map
vendored
File diff suppressed because one or more lines are too long
4
dist/files_sharing-init.js
vendored
4
dist/files_sharing-init.js
vendored
File diff suppressed because one or more lines are too long
2
dist/files_sharing-init.js.license
vendored
2
dist/files_sharing-init.js.license
vendored
|
|
@ -86,7 +86,7 @@ This file is generated from multiple sources. Included packages:
|
|||
- version: 3.3.1
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/files
|
||||
- version: 3.7.0
|
||||
- version: 3.8.0
|
||||
- license: AGPL-3.0-or-later
|
||||
- @nextcloud/initial-state
|
||||
- version: 2.2.0
|
||||
|
|
|
|||
2
dist/files_sharing-init.js.map
vendored
2
dist/files_sharing-init.js.map
vendored
File diff suppressed because one or more lines are too long
4
dist/files_sharing-personal-settings.js
vendored
4
dist/files_sharing-personal-settings.js
vendored
File diff suppressed because one or more lines are too long
2
dist/files_sharing-personal-settings.js.map
vendored
2
dist/files_sharing-personal-settings.js.map
vendored
File diff suppressed because one or more lines are too long
4
dist/files_sharing-public-file-request.js
vendored
4
dist/files_sharing-public-file-request.js
vendored
|
|
@ -1,2 +1,2 @@
|
|||
(()=>{"use strict";var e,r,t,o={38943:(e,r,t)=>{var o=t(85168),n=t(85471);const a=(0,t(35947).YK)().setApp("files_sharing").detectUser().build(),i=localStorage.getItem("nick"),l=localStorage.getItem("publicAuthPromptShown");i&&l?a.debug(`Public auth prompt already shown. Current nickname is '${i}'`):(0,o.Ss)((0,n.$V)((()=>Promise.all([t.e(4208),t.e(5315)]).then(t.bind(t,45315)))),{},(()=>localStorage.setItem("publicAuthPromptShown","true")))}},n={};function a(e){var r=n[e];if(void 0!==r)return r.exports;var t=n[e]={id:e,loaded:!1,exports:{}};return o[e].call(t.exports,t,t.exports,a),t.loaded=!0,t.exports}a.m=o,e=[],a.O=(r,t,o,n)=>{if(!t){var i=1/0;for(d=0;d<e.length;d++){t=e[d][0],o=e[d][1],n=e[d][2];for(var l=!0,c=0;c<t.length;c++)(!1&n||i>=n)&&Object.keys(a.O).every((e=>a.O[e](t[c])))?t.splice(c--,1):(l=!1,n<i&&(i=n));if(l){e.splice(d--,1);var u=o();void 0!==u&&(r=u)}}return r}n=n||0;for(var d=e.length;d>0&&e[d-1][2]>n;d--)e[d]=e[d-1];e[d]=[t,o,n]},a.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return a.d(r,{a:r}),r},a.d=(e,r)=>{for(var t in r)a.o(r,t)&&!a.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},a.f={},a.e=e=>Promise.all(Object.keys(a.f).reduce(((r,t)=>(a.f[t](e,r),r)),[])),a.u=e=>e+"-"+e+".js?v="+{4254:"5c2324570f66dff0c8a1",5315:"f9fb4d207d7d0560bd27",9480:"a7fc50e8df280cf9e346"}[e],a.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),a.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),r={},t="nextcloud:",a.l=(e,o,n,i)=>{if(r[e])r[e].push(o);else{var l,c;if(void 0!==n)for(var u=document.getElementsByTagName("script"),d=0;d<u.length;d++){var s=u[d];if(s.getAttribute("src")==e||s.getAttribute("data-webpack")==t+n){l=s;break}}l||(c=!0,(l=document.createElement("script")).charset="utf-8",l.timeout=120,a.nc&&l.setAttribute("nonce",a.nc),l.setAttribute("data-webpack",t+n),l.src=e),r[e]=[o];var p=(t,o)=>{l.onerror=l.onload=null,clearTimeout(f);var n=r[e];if(delete r[e],l.parentNode&&l.parentNode.removeChild(l),n&&n.forEach((e=>e(o))),t)return t(o)},f=setTimeout(p.bind(null,void 0,{type:"timeout",target:l}),12e4);l.onerror=p.bind(null,l.onerror),l.onload=p.bind(null,l.onload),c&&document.head.appendChild(l)}},a.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),a.j=9804,(()=>{var e;a.g.importScripts&&(e=a.g.location+"");var r=a.g.document;if(!e&&r&&(r.currentScript&&(e=r.currentScript.src),!e)){var t=r.getElementsByTagName("script");if(t.length)for(var o=t.length-1;o>-1&&(!e||!/^http(s?):/.test(e));)e=t[o--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),a.p=e})(),(()=>{a.b=document.baseURI||self.location.href;var e={9804:0};a.f.j=(r,t)=>{var o=a.o(e,r)?e[r]:void 0;if(0!==o)if(o)t.push(o[2]);else{var n=new Promise(((t,n)=>o=e[r]=[t,n]));t.push(o[2]=n);var i=a.p+a.u(r),l=new Error;a.l(i,(t=>{if(a.o(e,r)&&(0!==(o=e[r])&&(e[r]=void 0),o)){var n=t&&("load"===t.type?"missing":t.type),i=t&&t.target&&t.target.src;l.message="Loading chunk "+r+" failed.\n("+n+": "+i+")",l.name="ChunkLoadError",l.type=n,l.request=i,o[1](l)}}),"chunk-"+r,r)}},a.O.j=r=>0===e[r];var r=(r,t)=>{var o,n,i=t[0],l=t[1],c=t[2],u=0;if(i.some((r=>0!==e[r]))){for(o in l)a.o(l,o)&&(a.m[o]=l[o]);if(c)var d=c(a)}for(r&&r(t);u<i.length;u++)n=i[u],a.o(e,n)&&e[n]&&e[n][0](),e[n]=0;return a.O(d)},t=self.webpackChunknextcloud=self.webpackChunknextcloud||[];t.forEach(r.bind(null,0)),t.push=r.bind(null,t.push.bind(t))})(),a.nc=void 0;var i=a.O(void 0,[4208],(()=>a(38943)));i=a.O(i)})();
|
||||
//# sourceMappingURL=files_sharing-public-file-request.js.map?v=c27c701481bae555ca90
|
||||
(()=>{"use strict";var e,r,t,o={38943:(e,r,t)=>{var o=t(85168),n=t(85471);const a=(0,t(35947).YK)().setApp("files_sharing").detectUser().build(),i=localStorage.getItem("nick"),l=localStorage.getItem("publicAuthPromptShown");i&&l?a.debug(`Public auth prompt already shown. Current nickname is '${i}'`):(0,o.Ss)((0,n.$V)((()=>Promise.all([t.e(4208),t.e(5315)]).then(t.bind(t,45315)))),{},(()=>localStorage.setItem("publicAuthPromptShown","true")))}},n={};function a(e){var r=n[e];if(void 0!==r)return r.exports;var t=n[e]={id:e,loaded:!1,exports:{}};return o[e].call(t.exports,t,t.exports,a),t.loaded=!0,t.exports}a.m=o,e=[],a.O=(r,t,o,n)=>{if(!t){var i=1/0;for(d=0;d<e.length;d++){t=e[d][0],o=e[d][1],n=e[d][2];for(var l=!0,c=0;c<t.length;c++)(!1&n||i>=n)&&Object.keys(a.O).every((e=>a.O[e](t[c])))?t.splice(c--,1):(l=!1,n<i&&(i=n));if(l){e.splice(d--,1);var u=o();void 0!==u&&(r=u)}}return r}n=n||0;for(var d=e.length;d>0&&e[d-1][2]>n;d--)e[d]=e[d-1];e[d]=[t,o,n]},a.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return a.d(r,{a:r}),r},a.d=(e,r)=>{for(var t in r)a.o(r,t)&&!a.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},a.f={},a.e=e=>Promise.all(Object.keys(a.f).reduce(((r,t)=>(a.f[t](e,r),r)),[])),a.u=e=>e+"-"+e+".js?v="+{4254:"5c2324570f66dff0c8a1",5315:"f9fb4d207d7d0560bd27",9480:"ffc85b17def7a3ab31f0"}[e],a.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),a.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),r={},t="nextcloud:",a.l=(e,o,n,i)=>{if(r[e])r[e].push(o);else{var l,c;if(void 0!==n)for(var u=document.getElementsByTagName("script"),d=0;d<u.length;d++){var s=u[d];if(s.getAttribute("src")==e||s.getAttribute("data-webpack")==t+n){l=s;break}}l||(c=!0,(l=document.createElement("script")).charset="utf-8",l.timeout=120,a.nc&&l.setAttribute("nonce",a.nc),l.setAttribute("data-webpack",t+n),l.src=e),r[e]=[o];var p=(t,o)=>{l.onerror=l.onload=null,clearTimeout(f);var n=r[e];if(delete r[e],l.parentNode&&l.parentNode.removeChild(l),n&&n.forEach((e=>e(o))),t)return t(o)},f=setTimeout(p.bind(null,void 0,{type:"timeout",target:l}),12e4);l.onerror=p.bind(null,l.onerror),l.onload=p.bind(null,l.onload),c&&document.head.appendChild(l)}},a.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),a.j=9804,(()=>{var e;a.g.importScripts&&(e=a.g.location+"");var r=a.g.document;if(!e&&r&&(r.currentScript&&(e=r.currentScript.src),!e)){var t=r.getElementsByTagName("script");if(t.length)for(var o=t.length-1;o>-1&&(!e||!/^http(s?):/.test(e));)e=t[o--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),a.p=e})(),(()=>{a.b=document.baseURI||self.location.href;var e={9804:0};a.f.j=(r,t)=>{var o=a.o(e,r)?e[r]:void 0;if(0!==o)if(o)t.push(o[2]);else{var n=new Promise(((t,n)=>o=e[r]=[t,n]));t.push(o[2]=n);var i=a.p+a.u(r),l=new Error;a.l(i,(t=>{if(a.o(e,r)&&(0!==(o=e[r])&&(e[r]=void 0),o)){var n=t&&("load"===t.type?"missing":t.type),i=t&&t.target&&t.target.src;l.message="Loading chunk "+r+" failed.\n("+n+": "+i+")",l.name="ChunkLoadError",l.type=n,l.request=i,o[1](l)}}),"chunk-"+r,r)}},a.O.j=r=>0===e[r];var r=(r,t)=>{var o,n,i=t[0],l=t[1],c=t[2],u=0;if(i.some((r=>0!==e[r]))){for(o in l)a.o(l,o)&&(a.m[o]=l[o]);if(c)var d=c(a)}for(r&&r(t);u<i.length;u++)n=i[u],a.o(e,n)&&e[n]&&e[n][0](),e[n]=0;return a.O(d)},t=self.webpackChunknextcloud=self.webpackChunknextcloud||[];t.forEach(r.bind(null,0)),t.push=r.bind(null,t.push.bind(t))})(),a.nc=void 0;var i=a.O(void 0,[4208],(()=>a(38943)));i=a.O(i)})();
|
||||
//# sourceMappingURL=files_sharing-public-file-request.js.map?v=0abab0eef83216961713
|
||||
File diff suppressed because one or more lines are too long
4
dist/files_trashbin-init.js
vendored
4
dist/files_trashbin-init.js
vendored
File diff suppressed because one or more lines are too long
2
dist/files_trashbin-init.js.map
vendored
2
dist/files_trashbin-init.js.map
vendored
File diff suppressed because one or more lines are too long
4
dist/files_versions-files_versions.js
vendored
4
dist/files_versions-files_versions.js
vendored
File diff suppressed because one or more lines are too long
|
|
@ -93,7 +93,7 @@ This file is generated from multiple sources. Included packages:
|
|||
- version: 3.3.1
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/files
|
||||
- version: 3.7.0
|
||||
- version: 3.8.0
|
||||
- license: AGPL-3.0-or-later
|
||||
- @nextcloud/initial-state
|
||||
- version: 2.2.0
|
||||
|
|
|
|||
2
dist/files_versions-files_versions.js.map
vendored
2
dist/files_versions-files_versions.js.map
vendored
File diff suppressed because one or more lines are too long
4
dist/settings-declarative-settings-forms.js
vendored
4
dist/settings-declarative-settings-forms.js
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
2
dist/settings-users-3239.js.license
vendored
2
dist/settings-users-3239.js.license
vendored
|
|
@ -92,7 +92,7 @@ This file is generated from multiple sources. Included packages:
|
|||
- version: 3.3.1
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/files
|
||||
- version: 3.7.0
|
||||
- version: 3.8.0
|
||||
- license: AGPL-3.0-or-later
|
||||
- @nextcloud/initial-state
|
||||
- version: 2.2.0
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
4
dist/settings-vue-settings-admin-security.js
vendored
4
dist/settings-vue-settings-admin-security.js
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
4
dist/settings-vue-settings-admin-sharing.js
vendored
4
dist/settings-vue-settings-admin-sharing.js
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -73,7 +73,7 @@ This file is generated from multiple sources. Included packages:
|
|||
- version: 3.3.1
|
||||
- license: GPL-3.0-or-later
|
||||
- @nextcloud/files
|
||||
- version: 3.7.0
|
||||
- version: 3.8.0
|
||||
- license: AGPL-3.0-or-later
|
||||
- @nextcloud/initial-state
|
||||
- version: 2.2.0
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
4
dist/settings-vue-settings-personal-info.js
vendored
4
dist/settings-vue-settings-personal-info.js
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue