@univerjs-pro/collaboration-client-ui 0.25.1 → 1.0.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/facade.js +1 -1
- package/lib/cjs/index.js +1 -1
- package/lib/cjs/locale/ar-SA.js +1 -1
- package/lib/cjs/locale/ca-ES.js +1 -1
- package/lib/cjs/locale/de-DE.js +1 -1
- package/lib/cjs/locale/en-US.js +1 -1
- package/lib/cjs/locale/es-ES.js +1 -1
- package/lib/cjs/locale/fa-IR.js +1 -1
- package/lib/cjs/locale/fr-FR.js +1 -1
- package/lib/cjs/locale/id-ID.js +1 -1
- package/lib/cjs/locale/it-IT.js +1 -1
- package/lib/cjs/locale/ja-JP.js +1 -1
- package/lib/cjs/locale/ko-KR.js +1 -1
- package/lib/cjs/locale/pl-PL.js +1 -1
- package/lib/cjs/locale/pt-BR.js +1 -1
- package/lib/cjs/locale/ru-RU.js +1 -1
- package/lib/cjs/locale/sk-SK.js +1 -1
- package/lib/cjs/locale/vi-VN.js +1 -1
- package/lib/cjs/locale/zh-CN.js +1 -1
- package/lib/cjs/locale/zh-HK.js +1 -1
- package/lib/cjs/locale/zh-TW.js +1 -1
- package/lib/es/facade.js +1 -1
- package/lib/es/index.js +1 -1
- package/lib/es/locale/ar-SA.js +1 -1
- package/lib/es/locale/ca-ES.js +1 -1
- package/lib/es/locale/de-DE.js +1 -1
- package/lib/es/locale/en-US.js +1 -1
- package/lib/es/locale/es-ES.js +1 -1
- package/lib/es/locale/fa-IR.js +1 -1
- package/lib/es/locale/fr-FR.js +1 -1
- package/lib/es/locale/id-ID.js +1 -1
- package/lib/es/locale/it-IT.js +1 -1
- package/lib/es/locale/ja-JP.js +1 -1
- package/lib/es/locale/ko-KR.js +1 -1
- package/lib/es/locale/pl-PL.js +1 -1
- package/lib/es/locale/pt-BR.js +1 -1
- package/lib/es/locale/ru-RU.js +1 -1
- package/lib/es/locale/sk-SK.js +1 -1
- package/lib/es/locale/vi-VN.js +1 -1
- package/lib/es/locale/zh-CN.js +1 -1
- package/lib/es/locale/zh-HK.js +1 -1
- package/lib/es/locale/zh-TW.js +1 -1
- package/lib/facade.js +1 -1
- package/lib/index.css +6 -6
- package/lib/index.js +1 -1
- package/lib/locale/ar-SA.js +1 -1
- package/lib/locale/ca-ES.js +1 -1
- package/lib/locale/de-DE.js +1 -1
- package/lib/locale/en-US.js +1 -1
- package/lib/locale/es-ES.js +1 -1
- package/lib/locale/fa-IR.js +1 -1
- package/lib/locale/fr-FR.js +1 -1
- package/lib/locale/id-ID.js +1 -1
- package/lib/locale/it-IT.js +1 -1
- package/lib/locale/ja-JP.js +1 -1
- package/lib/locale/ko-KR.js +1 -1
- package/lib/locale/pl-PL.js +1 -1
- package/lib/locale/pt-BR.js +1 -1
- package/lib/locale/ru-RU.js +1 -1
- package/lib/locale/sk-SK.js +1 -1
- package/lib/locale/vi-VN.js +1 -1
- package/lib/locale/zh-CN.js +1 -1
- package/lib/locale/zh-HK.js +1 -1
- package/lib/locale/zh-TW.js +1 -1
- package/lib/types/{controllers/config.schema.d.ts → config/config.d.ts} +8 -0
- package/lib/types/controllers/collab-cursor/collab-cursor.controller.d.ts +3 -2
- package/lib/types/controllers/collab-cursor/slide-collab-cursor-entity.d.ts +34 -0
- package/lib/types/controllers/collab-cursor/slide-collab-cursor-render.controller.d.ts +21 -0
- package/lib/types/controllers/entity-ui/collaboration-entity-ui.controller.d.ts +1 -3
- package/lib/types/index.d.ts +3 -2
- package/lib/types/locale/types.d.ts +3 -0
- package/lib/types/models/cursor.d.ts +23 -0
- package/lib/types/plugin.d.ts +1 -1
- package/lib/types/services/local-cache/web-local-cache.service.d.ts +1 -0
- package/lib/types/services/state-cache-transform/doc-transform-state-cache.service.d.ts +1 -1
- package/lib/types/views/components/CollabStatus.d.ts +1 -1
- package/lib/types/views/shapes/slide-collab-cursor.shape.d.ts +15 -0
- package/lib/umd/facade.js +1 -1
- package/lib/umd/index.js +1 -1
- package/lib/umd/locale/ar-SA.js +1 -1
- package/lib/umd/locale/ca-ES.js +1 -1
- package/lib/umd/locale/de-DE.js +1 -1
- package/lib/umd/locale/en-US.js +1 -1
- package/lib/umd/locale/es-ES.js +1 -1
- package/lib/umd/locale/fa-IR.js +1 -1
- package/lib/umd/locale/fr-FR.js +1 -1
- package/lib/umd/locale/id-ID.js +1 -1
- package/lib/umd/locale/it-IT.js +1 -1
- package/lib/umd/locale/ja-JP.js +1 -1
- package/lib/umd/locale/ko-KR.js +1 -1
- package/lib/umd/locale/pl-PL.js +1 -1
- package/lib/umd/locale/pt-BR.js +1 -1
- package/lib/umd/locale/ru-RU.js +1 -1
- package/lib/umd/locale/sk-SK.js +1 -1
- package/lib/umd/locale/vi-VN.js +1 -1
- package/lib/umd/locale/zh-CN.js +1 -1
- package/lib/umd/locale/zh-HK.js +1 -1
- package/lib/umd/locale/zh-TW.js +1 -1
- package/package.json +23 -21
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Observable } from 'rxjs';
|
|
2
|
-
import type { IDocCollabCursor, ISheetCollabCursor } from '../../models/cursor';
|
|
2
|
+
import type { IDocCollabCursor, ISheetCollabCursor, ISlideCollabCursor } from '../../models/cursor';
|
|
3
3
|
import { CollaborationSessionService } from '@univerjs-pro/collaboration-client';
|
|
4
4
|
import { Injector, IUniverInstanceService, RxDisposable } from '@univerjs/core';
|
|
5
5
|
/**
|
|
@@ -15,8 +15,9 @@ export declare class CollabCursorController extends RxDisposable {
|
|
|
15
15
|
private readonly _entityInit$;
|
|
16
16
|
constructor(_univerInstanceService: IUniverInstanceService, _injector: Injector, _collabSessionService: CollaborationSessionService);
|
|
17
17
|
dispose(): void;
|
|
18
|
-
getCollabCursors$(unitID: string): Observable<Map<string, ISheetCollabCursor> | Map<string, IDocCollabCursor>>;
|
|
18
|
+
getCollabCursors$(unitID: string): Observable<Map<string, ISheetCollabCursor> | Map<string, IDocCollabCursor> | Map<string, ISlideCollabCursor>>;
|
|
19
19
|
private _init;
|
|
20
20
|
private _startSheetCollabCursor;
|
|
21
21
|
private _startDocCollabCursor;
|
|
22
|
+
private _startSlideCollabCursor;
|
|
22
23
|
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { ICollaborationUser } from '@univerjs-pro/collaboration';
|
|
2
|
+
import type { CollaborationSession } from '@univerjs-pro/collaboration-client';
|
|
3
|
+
import type { ISlideCollabCursor, ISlideCollabSelectionPayload } from '../../models/cursor';
|
|
4
|
+
import { MemberService } from '@univerjs-pro/collaboration-client';
|
|
5
|
+
import { ISlideDrawingStateService } from '@univerjs-pro/slides-ui';
|
|
6
|
+
import { RxDisposable } from '@univerjs/core';
|
|
7
|
+
import { ColorAssignService } from '../../services/color-assign/color-assign.service';
|
|
8
|
+
export declare function parseSlideCursorSelection(selection: string): ISlideCollabSelectionPayload | null;
|
|
9
|
+
/**
|
|
10
|
+
* Stores slide collaborator cursor presence without mutating local slide selection.
|
|
11
|
+
*/
|
|
12
|
+
export declare class SlideCollabCursorEntity extends RxDisposable {
|
|
13
|
+
readonly unitID: string;
|
|
14
|
+
private readonly _session;
|
|
15
|
+
private readonly _colorAssignService;
|
|
16
|
+
private readonly _memberService;
|
|
17
|
+
private readonly _slideDrawingStateService;
|
|
18
|
+
private _online;
|
|
19
|
+
private _init;
|
|
20
|
+
private _cursorInfo$;
|
|
21
|
+
cursorInfo$: import("rxjs").Observable<Map<string, ISlideCollabCursor>>;
|
|
22
|
+
get cursorInfo(): Readonly<Map<string, ISlideCollabCursor>>;
|
|
23
|
+
private _roomMembers$;
|
|
24
|
+
roomMembers$: import("rxjs").Observable<ICollaborationUser[]>;
|
|
25
|
+
get roomMembers(): Readonly<ICollaborationUser[]>;
|
|
26
|
+
constructor(unitID: string, _session: CollaborationSession, _colorAssignService: ColorAssignService, _memberService: MemberService, _slideDrawingStateService: ISlideDrawingStateService);
|
|
27
|
+
dispose(): void;
|
|
28
|
+
init(): void;
|
|
29
|
+
private _onCursorUpdate;
|
|
30
|
+
private _onCursorDelete;
|
|
31
|
+
private _updateLocalCursor;
|
|
32
|
+
private _toggleOnline;
|
|
33
|
+
private _toggleOffline;
|
|
34
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { SlideModel } from '@univerjs-pro/slides';
|
|
2
|
+
import type { IRenderContext, IRenderModule } from '@univerjs/engine-render';
|
|
3
|
+
import { RxDisposable, ThemeService } from '@univerjs/core';
|
|
4
|
+
import { CollabCursorController } from './collab-cursor.controller';
|
|
5
|
+
export declare class SlideCollabCursorRenderController extends RxDisposable implements IRenderModule {
|
|
6
|
+
private readonly _context;
|
|
7
|
+
private readonly _collabCursorController;
|
|
8
|
+
private readonly _themeService;
|
|
9
|
+
private _cursors;
|
|
10
|
+
private _renderScheduled;
|
|
11
|
+
private _isApplyingOverlays;
|
|
12
|
+
private _latestCursors;
|
|
13
|
+
constructor(_context: IRenderContext<SlideModel>, _collabCursorController: CollabCursorController, _themeService: ThemeService);
|
|
14
|
+
dispose(): void;
|
|
15
|
+
private _init;
|
|
16
|
+
private _scheduleRender;
|
|
17
|
+
private _render;
|
|
18
|
+
private _removeCollabCursors;
|
|
19
|
+
private _getSceneObjectByKey;
|
|
20
|
+
private _getObjectBounds;
|
|
21
|
+
}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { CollaborationController, CollaborationStatus } from '@univerjs-pro/collaboration-client';
|
|
2
2
|
import { Disposable, LocaleService } from '@univerjs/core';
|
|
3
|
-
import { DocStateChangeManagerService } from '@univerjs/docs-ui';
|
|
4
3
|
import { IMessageService } from '@univerjs/ui';
|
|
5
4
|
import { BehaviorSubject } from 'rxjs';
|
|
6
5
|
import { DocTransformIMECacheService } from '../../services/ime-cache-transform/doc-transform-ime-cache.service';
|
|
@@ -11,7 +10,6 @@ import { DocTransformSelectionsService } from '../../services/text-selection/doc
|
|
|
11
10
|
* This controller is responsible for monitoring the collaboration status of the currently focused unit.
|
|
12
11
|
*/
|
|
13
12
|
export declare class CollaborationEntityUIController extends Disposable {
|
|
14
|
-
private readonly _docStateChangeManagerService;
|
|
15
13
|
private readonly _collaborationController;
|
|
16
14
|
private readonly _docTransformIMECacheService;
|
|
17
15
|
private readonly _docTransformStateCacheService;
|
|
@@ -20,6 +18,6 @@ export declare class CollaborationEntityUIController extends Disposable {
|
|
|
20
18
|
protected readonly _messageService: IMessageService;
|
|
21
19
|
protected readonly _localeService: LocaleService;
|
|
22
20
|
protected readonly _status$: BehaviorSubject<CollaborationStatus>;
|
|
23
|
-
constructor(
|
|
21
|
+
constructor(_collaborationController: CollaborationController, _docTransformIMECacheService: DocTransformIMECacheService, _docTransformStateCacheService: DocTransformStateCacheService, _docTransformSelectionsService: DocTransformSelectionsService, _docSyncEditingCollabCursorService: DocSyncEditingCollabCursorService, _messageService: IMessageService, _localeService: LocaleService);
|
|
24
22
|
private _initEntityListener;
|
|
25
23
|
}
|
package/lib/types/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import './global.css';
|
|
2
|
+
export type { IUniverCollaborationClientUIConfig } from './config/config';
|
|
2
3
|
export { DesktopCollaborationStatusDisplayController } from './controllers/collab-status/collab-status.controller';
|
|
3
|
-
export type { IUniverCollaborationClientUIConfig } from './controllers/config.schema';
|
|
4
4
|
export { CollaborationDataLoaderController } from './controllers/data-loader/data-loader.controller';
|
|
5
5
|
export { UniverCollaborationClientUIPlugin } from './plugin';
|
|
6
6
|
export { BrowserCollaborationSocketService } from './services/collaboration-socket/collaboration-socket.service';
|
|
@@ -8,4 +8,5 @@ export { RemoteUniscriptService } from './services/remote-uniscript/remote-unisc
|
|
|
8
8
|
export { WebBrowserSingleActiveUnitService } from './services/single-active-unit/single-active-unit.service';
|
|
9
9
|
export { IURLService } from './services/url/url.service';
|
|
10
10
|
export { WebURLService } from './services/url/web-url.service';
|
|
11
|
-
export {
|
|
11
|
+
export { SheetCollabCursorShape } from './views/shapes/sheet-collab-cursor.shape';
|
|
12
|
+
export type { ISheetCollabCursorShapeProps } from './views/shapes/sheet-collab-cursor.shape';
|
|
@@ -34,3 +34,26 @@ export interface IDocCollabCursor {
|
|
|
34
34
|
/** The deserialized ranges of collab cursor. */
|
|
35
35
|
ranges: ITextRangeWithStyle[];
|
|
36
36
|
}
|
|
37
|
+
export interface ISlideCollabSelectionPayload {
|
|
38
|
+
kind: 'slide-element-selection';
|
|
39
|
+
unitId: string;
|
|
40
|
+
subUnitId: string;
|
|
41
|
+
selectedIds: string[];
|
|
42
|
+
focusedId: string | null;
|
|
43
|
+
}
|
|
44
|
+
export interface ISlideCollabCursor {
|
|
45
|
+
/** Stroke color of this collab cursor */
|
|
46
|
+
color: string;
|
|
47
|
+
/** Displayed user name of this cursor */
|
|
48
|
+
name: string;
|
|
49
|
+
/** Slide unit ID */
|
|
50
|
+
unitId: string;
|
|
51
|
+
/** Slide page ID */
|
|
52
|
+
subUnitId: string;
|
|
53
|
+
/** Remote selected drawing IDs */
|
|
54
|
+
selectedIds: string[];
|
|
55
|
+
/** Remote focused drawing ID */
|
|
56
|
+
focusedId: string | null;
|
|
57
|
+
/** Serialized slide selection payload */
|
|
58
|
+
selection: string;
|
|
59
|
+
}
|
package/lib/types/plugin.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { IUniverCollaborationClientUIConfig } from './
|
|
1
|
+
import type { IUniverCollaborationClientUIConfig } from './config/config';
|
|
2
2
|
import { IConfigService, Injector, Plugin } from '@univerjs/core';
|
|
3
3
|
import { IRenderManagerService } from '@univerjs/engine-render';
|
|
4
4
|
export declare class UniverCollaborationClientUIPlugin extends Plugin {
|
|
@@ -20,6 +20,7 @@ export declare class WebLocalCacheService extends Disposable implements ILocalCa
|
|
|
20
20
|
dispose(): void;
|
|
21
21
|
loadOfflineData(unitID: string): Promise<Nullable<IUnitCacheData>>;
|
|
22
22
|
saveOfflineData(unitID: string, data: IUnitCacheData): Promise<boolean>;
|
|
23
|
+
backupOfflineData(unitID: string, reason: string): Promise<void>;
|
|
23
24
|
updateOfflineData(unitID: string, type: UniverInstanceType, awaitingChangeset: Nullable<IChangeset>, pendingMutations: IMutationInfo[]): void;
|
|
24
25
|
private _scheduleSaving;
|
|
25
26
|
private _getSaveTimeout;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { IChangeset } from '@univerjs-pro/collaboration';
|
|
2
2
|
import { ITransformService } from '@univerjs-pro/collaboration';
|
|
3
3
|
import { Injector } from '@univerjs/core';
|
|
4
|
-
import { DocStateChangeManagerService } from '@univerjs/docs
|
|
4
|
+
import { DocStateChangeManagerService } from '@univerjs/docs';
|
|
5
5
|
export declare class DocTransformStateCacheService {
|
|
6
6
|
private readonly _injector;
|
|
7
7
|
private readonly _transformService;
|
|
@@ -18,4 +18,4 @@ export interface IOnlineStatusProps {
|
|
|
18
18
|
* <CollaborationStatusDisplay status$={statusObservable} />
|
|
19
19
|
* ```
|
|
20
20
|
*/
|
|
21
|
-
export declare function CollaborationStatusDisplay(props: Readonly<IOnlineStatusProps>): import("react
|
|
21
|
+
export declare function CollaborationStatusDisplay(props: Readonly<IOnlineStatusProps>): import("react").JSX.Element;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { IShapeProps } from '@univerjs/engine-render';
|
|
2
|
+
import type { ISlideCollabCursor } from '../../models/cursor';
|
|
3
|
+
import { Shape } from '@univerjs/engine-render';
|
|
4
|
+
export declare const SLIDE_COLLAB_CURSOR_ZINDEX = 5002;
|
|
5
|
+
export interface ISlideCollabCursorShapeProps extends IShapeProps, ISlideCollabCursor {
|
|
6
|
+
showText?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export declare class SlideCollabCursorShape<T extends ISlideCollabCursorShapeProps = ISlideCollabCursorShapeProps> extends Shape<T> {
|
|
9
|
+
private _color;
|
|
10
|
+
private _name;
|
|
11
|
+
private _showText;
|
|
12
|
+
constructor(key?: string, props?: T);
|
|
13
|
+
setShapeProps(props: Partial<ISlideCollabCursorShapeProps>): void;
|
|
14
|
+
protected _draw(ctx: CanvasRenderingContext2D): void;
|
|
15
|
+
}
|
package/lib/umd/facade.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
function _0x2139(_0x918d43,_0x2de140){_0x918d43=_0x918d43-0x1cc;var _0x20f0a1=_0x20f0();var _0x2139ba=_0x20f0a1[_0x918d43];return _0x2139ba;}(function(_0x25ca00,_0x591e09){var _0x50d9ca=_0x2139,_0x10a977=_0x25ca00();while(!![]){try{var _0x192d19=parseInt(_0x50d9ca(0x1d9))/0x1*(parseInt(_0x50d9ca(0x1d4))/0x2)+parseInt(_0x50d9ca(0x1d8))/0x3+-parseInt(_0x50d9ca(0x1d1))/0x4+parseInt(_0x50d9ca(0x1d5))/0x5+-parseInt(_0x50d9ca(0x1cd))/0x6*(-parseInt(_0x50d9ca(0x1da))/0x7)+-parseInt(_0x50d9ca(0x1cc))/0x8*(parseInt(_0x50d9ca(0x1ce))/0x9)+-parseInt(_0x50d9ca(0x1e1))/0xa;if(_0x192d19===_0x591e09)break;else _0x10a977['push'](_0x10a977['shift']());}catch(_0x5b53c2){_0x10a977['push'](_0x10a977['shift']());}}}(_0x20f0,0x5b29c),function(_0x496c7d,_0x56f665){var _0x13fb38=_0x2139;typeof exports==_0x13fb38(0x1e0)&&typeof module<'u'?_0x56f665(require('@univerjs-pro/collaboration-client-ui'),require('@univerjs/core/facade')):typeof define==_0x13fb38(0x1cf)&&define[_0x13fb38(0x1d3)]?define([_0x13fb38(0x1d6),_0x13fb38(0x1df)],_0x56f665):(_0x496c7d=typeof globalThis<'u'?globalThis:_0x496c7d||self,_0x56f665(_0x496c7d['UniverProCollaborationClientUi'],_0x496c7d[_0x13fb38(0x1dd)]));}(this,function(_0x2b71e0,_0x41ba8d){var _0x3b4421=_0x2139,_0x25b323=class extends _0x41ba8d[_0x3b4421(0x1de)]{[_0x3b4421(0x1d7)](_0x22f596,_0x16e2b7,..._0x2f1481){var _0x312d5e=_0x3b4421;return this[_0x312d5e(0x1d2)][_0x312d5e(0x1d0)](_0x2b71e0[_0x312d5e(0x1db)])['runOnServer'](_0x22f596,_0x16e2b7,{},..._0x2f1481);}};_0x41ba8d[_0x3b4421(0x1de)][_0x3b4421(0x1dc)](_0x25b323);}));function _0x20f0(){var _0xa2a78a=['RemoteUniscriptService','extend','UniverCoreFacade','FUniver','@univerjs/core/facade','object','8908040EkWQAs','200DFHUgV','95898nOgXYc','181647BBbLoW','function','get','2921400gPLzQv','_injector','amd','1220714cvPEvn','2392460eflIfx','@univerjs-pro/collaboration-client-ui','runOnServer','2216994StGQje','1HgDIDz','294GqfaXM'];_0x20f0=function(){return _0xa2a78a;};return _0x20f0();}
|