@e280/quay
Version:
File-browser and outliner UI for the web
52 lines (51 loc) • 1.97 kB
TypeScript
import { Permission } from "./permissions.js";
import { Dropzone } from "./aspects/dropzone.js";
import { TreeTrail } from "./aspects/tree-trail.js";
import { Schema } from "./aspects/codex/parts/types.js";
import { GroupConfig, SearchFn, SortFn } from "./types.js";
import { CodexItem } from "./aspects/codex/parts/codex-item.js";
export declare class Group<Sc extends Schema = any> {
config: GroupConfig<Sc>;
trail: TreeTrail<Sc>;
dropzone: Dropzone;
searchText: import("@benev/slate").Signal<string>;
selectedFilter: import("@benev/slate").Signal<string>;
selectedSort: import("@benev/slate").Signal<string>;
on: {
newFolder: import("@e280/stz").Sub<[{
parent: CodexItem<Sc>;
}]>;
move: import("@e280/stz").Sub<[{
item: CodexItem<Sc>;
target: CodexItem<Sc>;
}]>;
delete: import("@e280/stz").Sub<[{
item: CodexItem<Sc>;
}]>;
rename: import("@e280/stz").Sub<[{
item: CodexItem<Sc>;
newName: string;
}]>;
upload: import("@e280/stz").Sub<[{
files: File[];
target: CodexItem<Sc>;
}]>;
search: import("@e280/stz").Sub<[{
terms: string[];
}]>;
refresh: import("@e280/stz").Sub<[{}]>;
};
constructor(config: GroupConfig<Sc>);
get permissions(): (item: CodexItem) => Permission;
getFilterFn(filterKey: string): SearchFn<Sc>;
getSearchFn(searchText: string): SearchFn<Sc>;
getSortFn(sortKey: string): SortFn<Sc>;
sort(items: CodexItem<Sc>[]): CodexItem<Sc>[];
matches(item: CodexItem<Sc>): boolean;
move(item: CodexItem<Sc>, target: CodexItem<Sc>): void;
delete(item: CodexItem<Sc>): void;
rename(item: CodexItem<Sc>, newName: string): void;
upload(files: File[], folder: CodexItem<Sc>): void;
addFolder(parent: CodexItem<Sc>): void;
components: () => () => /*elided*/ any;
}