collaborative-ui
Version:
React component library for building real-time collaborative editing applications.
33 lines (32 loc) • 1.36 kB
TypeScript
import { Model } from 'json-joy/lib/json-crdt';
import { Log } from 'json-joy/lib/json-crdt/log/Log';
import { BehaviorSubject } from 'rxjs';
import { JsonCrdtLogState } from '../JsonCrdtLog/JsonCrdtLogState';
import type { TraceDefinition } from './TraceSelector/traces';
import type { DemoComp } from '../DemoDisplay';
export interface OpenFile {
id: string;
openTime: number;
log: Log<any>;
name: string;
logState: JsonCrdtLogState;
display?: DemoComp;
}
export declare class JsonCrdtExplorerState {
readonly files$: BehaviorSubject<OpenFile[]>;
readonly selected$: BehaviorSubject<string>;
readonly file$: BehaviorSubject<OpenFile | null>;
readonly sid: number;
constructor();
readonly select: (id: string) => void;
readonly openFile: (log: Log<any>, name?: string) => OpenFile;
readonly close: (id: string) => void;
readonly rename: (id: string, name: string) => void;
readonly addFile: (file: File) => Promise<void>;
readonly addLog: (uint8: Uint8Array, name?: string, display?: TraceDefinition["display"]) => Promise<void>;
readonly addTrace: (uint8: Uint8Array, trace: TraceDefinition) => Promise<void>;
readonly addFiles: (files: File[]) => Promise<void>;
private newCnt;
readonly createNew: () => void;
readonly createFromModel: (model: Model<any>) => void;
}