@textbus/collaborate 4.0.4 → 4.1.0-alpha.0
Sign up to get free protection for your applications and to get access to all the features.
- package/bundles/collab-history.d.ts +38 -0
- package/bundles/collaborate.d.ts +29 -35
- package/bundles/index.esm.js +762 -343
- package/bundles/index.js +761 -340
- package/bundles/multiple-doc-collab-history.d.ts +35 -0
- package/bundles/multiple-document-collaborate-module.d.ts +14 -0
- package/bundles/public-api.d.ts +4 -0
- package/bundles/sub-model-loader.d.ts +45 -0
- package/package.json +2 -2
@@ -0,0 +1,35 @@
|
|
1
|
+
import { Observable } from '@tanbo/stream';
|
2
|
+
import { History, RootComponentRef } from '@textbus/core';
|
3
|
+
import { Collaborate } from './collaborate';
|
4
|
+
import { CustomUndoManagerConfig } from './collab-history';
|
5
|
+
export declare class MultipleDocCollabHistory implements History {
|
6
|
+
private collaborate;
|
7
|
+
private rootComponentRef;
|
8
|
+
private stackSize;
|
9
|
+
private undoManagerConfig;
|
10
|
+
onChange: Observable<void>;
|
11
|
+
onBack: Observable<void>;
|
12
|
+
onForward: Observable<void>;
|
13
|
+
onPush: Observable<void>;
|
14
|
+
get canBack(): boolean;
|
15
|
+
get canForward(): boolean;
|
16
|
+
isListen: boolean;
|
17
|
+
private changeEvent;
|
18
|
+
private backEvent;
|
19
|
+
private forwardEvent;
|
20
|
+
private pushEvent;
|
21
|
+
private actionStack;
|
22
|
+
private index;
|
23
|
+
private stackItem;
|
24
|
+
private timer;
|
25
|
+
private subscription;
|
26
|
+
private subDocs;
|
27
|
+
private listenerCaches;
|
28
|
+
constructor(collaborate: Collaborate, rootComponentRef: RootComponentRef, stackSize: number, undoManagerConfig: CustomUndoManagerConfig);
|
29
|
+
listen(): void;
|
30
|
+
forward(): void;
|
31
|
+
back(): void;
|
32
|
+
clear(): void;
|
33
|
+
destroy(): void;
|
34
|
+
private listenItem;
|
35
|
+
}
|
@@ -0,0 +1,14 @@
|
|
1
|
+
import { Module, Textbus } from '@textbus/core';
|
2
|
+
import { Provider } from '@viewfly/core';
|
3
|
+
import { CollaborateConfig } from './collaborate-module';
|
4
|
+
import { SubModelLoader } from './sub-model-loader';
|
5
|
+
export interface MultipleDocCollaborateConfig extends CollaborateConfig {
|
6
|
+
subModelLoader: SubModelLoader;
|
7
|
+
}
|
8
|
+
export declare class MultipleDocumentCollaborateModule implements Module {
|
9
|
+
config: MultipleDocCollaborateConfig;
|
10
|
+
providers: Provider[];
|
11
|
+
constructor(config: MultipleDocCollaborateConfig);
|
12
|
+
setup(textbus: Textbus): Promise<(() => void) | void> | (() => void) | void;
|
13
|
+
onDestroy(textbus: Textbus): void;
|
14
|
+
}
|
package/bundles/public-api.d.ts
CHANGED
@@ -1,5 +1,9 @@
|
|
1
1
|
export * from './connectors/_api';
|
2
|
+
export * from './collab-history';
|
2
3
|
export * from './collaborate';
|
3
4
|
export * from './collaborate-module';
|
5
|
+
export * from './multiple-doc-collab-history';
|
6
|
+
export * from './multiple-document-collaborate-module';
|
7
|
+
export * from './sub-model-loader';
|
4
8
|
export * from './sync-connector';
|
5
9
|
export * from './user-activity';
|
@@ -0,0 +1,45 @@
|
|
1
|
+
import { Doc, Doc as YDoc } from 'yjs';
|
2
|
+
import { AsyncComponent, AsyncSlot } from '@textbus/core';
|
3
|
+
/**
|
4
|
+
* 子文档加载器
|
5
|
+
*/
|
6
|
+
export declare abstract class SubModelLoader {
|
7
|
+
/**
|
8
|
+
* 通过插槽获取已加载的文档
|
9
|
+
* @param slot
|
10
|
+
*/
|
11
|
+
abstract getLoadedModelBySlot(slot: AsyncSlot): YDoc | null;
|
12
|
+
/**
|
13
|
+
* 通过组件获取已加载的文档
|
14
|
+
* @param component
|
15
|
+
*/
|
16
|
+
abstract getLoadedModelByComponent(component: AsyncComponent): YDoc | null;
|
17
|
+
/**
|
18
|
+
* 当本地新增异步子插槽时调用
|
19
|
+
* @param slot
|
20
|
+
*/
|
21
|
+
abstract createSubModelBySlot(slot: AsyncSlot): Promise<YDoc>;
|
22
|
+
/**
|
23
|
+
* 当本地新增异步子组件时调用
|
24
|
+
* @param component
|
25
|
+
*/
|
26
|
+
abstract createSubModelByComponent(component: AsyncComponent): Promise<YDoc>;
|
27
|
+
/**
|
28
|
+
* 当远程异步子插槽同步到本地时调用
|
29
|
+
* @param slot
|
30
|
+
*/
|
31
|
+
abstract loadSubModelBySlot(slot: AsyncSlot): Promise<YDoc>;
|
32
|
+
/**
|
33
|
+
* 当远程异步子组件同步到本地时调用
|
34
|
+
* @param component
|
35
|
+
*/
|
36
|
+
abstract loadSubModelByComponent(component: AsyncComponent): Promise<YDoc>;
|
37
|
+
}
|
38
|
+
export declare class NonSubModelLoader extends SubModelLoader {
|
39
|
+
createSubModelBySlot(): Promise<Doc>;
|
40
|
+
createSubModelByComponent(): Promise<Doc>;
|
41
|
+
loadSubModelByComponent(): Promise<Doc>;
|
42
|
+
loadSubModelBySlot(): Promise<Doc>;
|
43
|
+
getLoadedModelBySlot(): Doc;
|
44
|
+
getLoadedModelByComponent(): Doc;
|
45
|
+
}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@textbus/collaborate",
|
3
|
-
"version": "4.0.
|
3
|
+
"version": "4.1.0-alpha.0",
|
4
4
|
"description": "Textbus is a rich text editor and framework that is highly customizable and extensible to achieve rich wysiwyg effects.",
|
5
5
|
"main": "./bundles/index.js",
|
6
6
|
"module": "./bundles/index.esm.js",
|
@@ -27,7 +27,7 @@
|
|
27
27
|
"dependencies": {
|
28
28
|
"@hocuspocus/provider": "^2.13.6",
|
29
29
|
"@tanbo/stream": "^1.2.5",
|
30
|
-
"@textbus/core": "^4.0.
|
30
|
+
"@textbus/core": "^4.1.0-alpha.0",
|
31
31
|
"@viewfly/core": "^1.0.4",
|
32
32
|
"y-websocket": "^1.4.3",
|
33
33
|
"yjs": "^13.6.14"
|