@univerjs/engine-render 0.1.16 → 0.2.0
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/index.js +2 -2
- package/lib/es/index.js +10897 -10461
- package/lib/types/base-object.d.ts +19 -22
- package/lib/types/basics/const.d.ts +0 -12
- package/lib/types/basics/i-document-skeleton-cached.d.ts +7 -16
- package/lib/types/basics/interfaces.d.ts +8 -4
- package/lib/types/basics/range.d.ts +2 -0
- package/lib/types/basics/tools.d.ts +5 -5
- package/lib/types/components/docs/document.d.ts +5 -4
- package/lib/types/components/docs/layout/block/paragraph/language-ruler.d.ts +4 -4
- package/lib/types/components/docs/layout/block/paragraph/linebreaking.d.ts +2 -1
- package/lib/types/components/docs/layout/doc-skeleton.d.ts +11 -6
- package/lib/types/components/docs/layout/shaping-engine/text-shaping.d.ts +1 -2
- package/lib/types/components/docs/layout/style/custom-decoration.d.ts +3 -0
- package/lib/types/components/docs/layout/style/custom-range.d.ts +3 -0
- package/lib/types/components/docs/layout/tools.d.ts +1 -1
- package/lib/types/components/docs/liquid.d.ts +1 -1
- package/lib/types/components/docs/text-selection/text-range.d.ts +6 -0
- package/lib/types/components/docs/text-selection/text-selection-render-manager.d.ts +10 -3
- package/lib/types/components/docs/view-model/document-view-model.d.ts +21 -2
- package/lib/types/components/sheets/extensions/row-header-layout.d.ts +11 -0
- package/lib/types/components/sheets/extensions/sheet-extension.d.ts +1 -1
- package/lib/types/components/sheets/interfaces.d.ts +15 -2
- package/lib/types/components/sheets/row-header.d.ts +2 -1
- package/lib/types/components/sheets/sheet-skeleton.d.ts +13 -12
- package/lib/types/components/sheets/spreadsheet.d.ts +0 -1
- package/lib/types/components/slides/slide.d.ts +2 -2
- package/lib/types/engine.d.ts +6 -10
- package/lib/types/index.d.ts +3 -1
- package/lib/types/layer.d.ts +6 -0
- package/lib/types/render-manager/render-manager.service.d.ts +10 -6
- package/lib/types/render-manager/render-unit.d.ts +1 -1
- package/lib/types/scene-viewer.d.ts +1 -1
- package/lib/types/scene.d.ts +7 -3
- package/lib/types/scene.input-manager.d.ts +4 -2
- package/lib/types/scene.transformer.d.ts +15 -10
- package/lib/types/shape/dashedrect.d.ts +8 -0
- package/lib/types/shape/index.d.ts +1 -0
- package/lib/types/shape/scroll-bar.d.ts +5 -4
- package/lib/types/shape/shape.d.ts +2 -2
- package/lib/types/thin-engine.d.ts +3 -3
- package/lib/types/thin-scene.d.ts +23 -22
- package/lib/types/viewport.d.ts +42 -13
- package/lib/umd/index.js +2 -2
- package/package.json +8 -8
|
@@ -65,7 +65,6 @@ export declare class Spreadsheet extends SheetComponent {
|
|
|
65
65
|
/**
|
|
66
66
|
* Since multiple controllers, not just the sheet-render.controller, invoke spreadsheet.makeDirty() — for instance, the cf.render-controller — it's essential to also call viewport.markDirty() whenever spreadsheet.makeDirty() is triggered.
|
|
67
67
|
* @param state
|
|
68
|
-
* @returns
|
|
69
68
|
*/
|
|
70
69
|
makeDirty(state?: boolean): this;
|
|
71
70
|
setDirtyArea(dirtyBounds: IBoundRectNoAngle[]): void;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Nullable,
|
|
1
|
+
import { Nullable, EventSubject } from '@univerjs/core';
|
|
2
2
|
import { UniverRenderingContext } from '../../context';
|
|
3
3
|
import { Scene } from '../../scene';
|
|
4
4
|
import { SceneViewer } from '../../scene-viewer';
|
|
@@ -8,7 +8,7 @@ export declare enum SLIDE_NAVIGATION_KEY {
|
|
|
8
8
|
RIGHT = "__slideNavigationRight__"
|
|
9
9
|
}
|
|
10
10
|
export declare class Slide extends SceneViewer {
|
|
11
|
-
|
|
11
|
+
slideChangePageByNavigation$: EventSubject<Nullable<string>>;
|
|
12
12
|
private _navigationEnabled;
|
|
13
13
|
activeFirstPage(): void;
|
|
14
14
|
addPage(scene: Scene): void;
|
package/lib/types/engine.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { Observable } from '@univerjs/core';
|
|
2
1
|
import { CURSOR_TYPE } from './basics/const';
|
|
3
2
|
import { Canvas, CanvasRenderMode } from './canvas';
|
|
4
3
|
import { Scene } from './scene';
|
|
@@ -6,14 +5,10 @@ import { ThinEngine } from './thin-engine';
|
|
|
6
5
|
|
|
7
6
|
export declare class Engine extends ThinEngine<Scene> {
|
|
8
7
|
renderEvenInBackground: boolean;
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Observable raised when the engine ends the current frame
|
|
15
|
-
*/
|
|
16
|
-
onEndFrameObservable: Observable<Engine>;
|
|
8
|
+
private readonly _beginFrame$;
|
|
9
|
+
readonly beginFrame$: import('rxjs').Observable<void>;
|
|
10
|
+
private readonly _endFrame$;
|
|
11
|
+
readonly endFrame$: import('rxjs').Observable<void>;
|
|
17
12
|
private _container;
|
|
18
13
|
private _canvas;
|
|
19
14
|
private _renderingQueueLaunched;
|
|
@@ -29,6 +24,8 @@ export declare class Engine extends ThinEngine<Scene> {
|
|
|
29
24
|
private _pointerMoveEvent;
|
|
30
25
|
private _pointerDownEvent;
|
|
31
26
|
private _pointerUpEvent;
|
|
27
|
+
private _pointerOutEvent;
|
|
28
|
+
private _pointerCancelEvent;
|
|
32
29
|
private _pointerBlurEvent;
|
|
33
30
|
private _pointerWheelEvent;
|
|
34
31
|
private _pointerEnterEvent;
|
|
@@ -97,7 +94,6 @@ export declare class Engine extends ThinEngine<Scene> {
|
|
|
97
94
|
_renderFrame(): void;
|
|
98
95
|
private _cancelFrame;
|
|
99
96
|
private _getHostWindow;
|
|
100
|
-
/** @hidden */
|
|
101
97
|
private _renderLoop;
|
|
102
98
|
private _measureFps;
|
|
103
99
|
private _handleKeyboardAction;
|
package/lib/types/index.d.ts
CHANGED
|
@@ -31,7 +31,7 @@ export * from './scroll-timer';
|
|
|
31
31
|
export * from './shape';
|
|
32
32
|
export * from './viewport';
|
|
33
33
|
export { DocumentViewModel } from './components/docs/view-model/document-view-model';
|
|
34
|
-
export { getAnchorBounding, TEXT_RANGE_LAYER_INDEX, TextRange } from './components/docs/text-selection/text-range';
|
|
34
|
+
export { getAnchorBounding, TEXT_RANGE_LAYER_INDEX, TextRange, getLineBounding } from './components/docs/text-selection/text-range';
|
|
35
35
|
export { NodePositionConvertToCursor } from './components/docs/text-selection/convert-cursor';
|
|
36
36
|
export { Liquid } from './components/docs/liquid';
|
|
37
37
|
export { ITextSelectionRenderManager, TextSelectionRenderManager, getCanvasOffsetByEngine, } from './components/docs/text-selection/text-selection-render-manager';
|
|
@@ -43,3 +43,5 @@ export { DocumentSkeleton } from './components/docs/layout/doc-skeleton';
|
|
|
43
43
|
export { ThinEngine } from './thin-engine';
|
|
44
44
|
export { getCharSpaceApply, getNumberUnitValue } from './components/docs/layout/tools';
|
|
45
45
|
export { type IChangeObserverConfig } from './scene.transformer';
|
|
46
|
+
export { DEFAULT_PADDING_DATA } from './components/sheets/sheet-skeleton';
|
|
47
|
+
export { DocumentEditArea } from './components/docs/view-model/document-view-model';
|
package/lib/types/layer.d.ts
CHANGED
|
@@ -20,6 +20,12 @@ export declare class Layer extends Disposable {
|
|
|
20
20
|
getObjectsByOrder(): BaseObject[];
|
|
21
21
|
getObjectsByOrderForPick(): BaseObject[];
|
|
22
22
|
getObjects(): BaseObject[];
|
|
23
|
+
/**
|
|
24
|
+
* insert o to _objects[]
|
|
25
|
+
* if o is a group, insert all its children and group itself to _objects[]
|
|
26
|
+
* @param o
|
|
27
|
+
* @returns
|
|
28
|
+
*/
|
|
23
29
|
addObject(o: BaseObject): this;
|
|
24
30
|
removeObject(object: BaseObject | string): void;
|
|
25
31
|
addObjects(objects: BaseObject[]): this;
|
|
@@ -10,8 +10,8 @@ import { IRender, IRenderModuleCtor } from './render-unit';
|
|
|
10
10
|
|
|
11
11
|
export type RenderComponentType = SheetComponent | DocComponent | Slide | BaseObject;
|
|
12
12
|
export interface IRenderManagerService extends IDisposable {
|
|
13
|
+
/** @deprecated */
|
|
13
14
|
currentRender$: Observable<Nullable<string>>;
|
|
14
|
-
createRender$: Observable<Nullable<string>>;
|
|
15
15
|
addRender(unitId: string, renderer: IRender): void;
|
|
16
16
|
createRender(unitId: string): IRender;
|
|
17
17
|
removeRender(unitId: string): void;
|
|
@@ -19,14 +19,17 @@ export interface IRenderManagerService extends IDisposable {
|
|
|
19
19
|
getRenderById(unitId: string): Nullable<IRender>;
|
|
20
20
|
getRenderAll(): Map<string, IRender>;
|
|
21
21
|
defaultEngine: Engine;
|
|
22
|
-
|
|
22
|
+
/** @deprecated */
|
|
23
|
+
createRender$: Observable<string>;
|
|
24
|
+
/** @deprecated this design is very very weird! Remove it. */
|
|
25
|
+
create(unitId: string): void;
|
|
23
26
|
/** @deprecated There will be multi units to render at the same time, so there is no *current*. */
|
|
24
27
|
getCurrent(): Nullable<IRender>;
|
|
25
28
|
/** @deprecated There will be multi units to render at the same time, so there is no *first*. */
|
|
26
29
|
getFirst(): Nullable<IRender>;
|
|
27
30
|
has(unitId: string): boolean;
|
|
28
31
|
withCurrentTypeOfUnit<T>(type: UniverInstanceType, id: DependencyIdentifier<T>): Nullable<T>;
|
|
29
|
-
|
|
32
|
+
registerRenderModule<T extends UnitModel>(type: UnitType, ctor: IRenderModuleCtor<T>): IDisposable;
|
|
30
33
|
}
|
|
31
34
|
export declare class RenderManagerService extends Disposable implements IRenderManagerService {
|
|
32
35
|
private readonly _injector;
|
|
@@ -37,14 +40,15 @@ export declare class RenderManagerService extends Disposable implements IRenderM
|
|
|
37
40
|
private readonly _currentRender$;
|
|
38
41
|
readonly currentRender$: Observable<Nullable<string>>;
|
|
39
42
|
private readonly _createRender$;
|
|
40
|
-
|
|
43
|
+
/** @deprecated */
|
|
44
|
+
readonly createRender$: Observable<string>;
|
|
41
45
|
get defaultEngine(): Engine;
|
|
42
46
|
private readonly _renderControllers;
|
|
43
47
|
constructor(_injector: Injector, _univerInstanceService: IUniverInstanceService);
|
|
44
48
|
dispose(): void;
|
|
45
|
-
|
|
49
|
+
registerRenderModule(type: UnitType, ctor: IRenderModuleCtor): IDisposable;
|
|
46
50
|
private _getRenderControllersForType;
|
|
47
|
-
create(unitId:
|
|
51
|
+
create(unitId: string): void;
|
|
48
52
|
createRender(unitId: string): IRender;
|
|
49
53
|
withCurrentTypeOfUnit<T>(type: UniverInstanceType, id: DependencyIdentifier<T>): Nullable<T>;
|
|
50
54
|
private _createRender;
|
|
@@ -29,7 +29,7 @@ export interface IRenderContext<T extends UnitModel = UnitModel> extends Omit<IR
|
|
|
29
29
|
* This class is responsible
|
|
30
30
|
*/
|
|
31
31
|
export declare class RenderUnit extends Disposable implements IRender {
|
|
32
|
-
readonly isRenderUnit:
|
|
32
|
+
readonly isRenderUnit: boolean;
|
|
33
33
|
get unitId(): string;
|
|
34
34
|
get type(): UnitType;
|
|
35
35
|
private readonly _injector;
|
|
@@ -22,7 +22,7 @@ export declare class SceneViewer extends BaseObject {
|
|
|
22
22
|
enableSelectedClipElement(): void;
|
|
23
23
|
disableSelectedClipElement(): void;
|
|
24
24
|
allowSelectedClipElement(): boolean;
|
|
25
|
-
pick(coord: Vector2): Nullable<
|
|
25
|
+
pick(coord: Vector2): Nullable<BaseObject | ThinScene>;
|
|
26
26
|
dispose(): void;
|
|
27
27
|
private _initialProps;
|
|
28
28
|
}
|
package/lib/types/scene.d.ts
CHANGED
|
@@ -62,7 +62,6 @@ export declare class Scene extends ThinScene {
|
|
|
62
62
|
* scene._setTransForm --> viewport@resetCanvasSizeAndUpdateScrollBar ---> scrollTo ---> limitedScroll ---> onScrollBeforeObserver ---> setScrollInfo
|
|
63
63
|
* scrollInfo needs accurate scene width & height, limitedScroll depends on scene & engine's width & height
|
|
64
64
|
* @param state
|
|
65
|
-
* @returns
|
|
66
65
|
*/
|
|
67
66
|
transformByState(state: ISceneTransformState): void;
|
|
68
67
|
getParent(): ThinEngine<Scene> | SceneViewer;
|
|
@@ -71,11 +70,16 @@ export declare class Scene extends ThinScene {
|
|
|
71
70
|
getLayer(zIndex?: number): Layer;
|
|
72
71
|
getLayerMaxZIndex(): number;
|
|
73
72
|
addLayer(...argument: Layer[]): void;
|
|
73
|
+
addObjects(objects: BaseObject[], zIndex?: number): this;
|
|
74
74
|
addObject(o: BaseObject, zIndex?: number): this;
|
|
75
|
+
/**
|
|
76
|
+
* make object parent to scene
|
|
77
|
+
* @param o
|
|
78
|
+
*/
|
|
75
79
|
setObjectBehavior(o: BaseObject): void;
|
|
76
|
-
addObjects(objects: BaseObject[], zIndex?: number): this;
|
|
77
80
|
removeObject(object?: BaseObject | string): this | undefined;
|
|
78
81
|
removeObjects(objects?: BaseObject[] | string[]): this | undefined;
|
|
82
|
+
getObjectsByLayer(zIndex: number): BaseObject[];
|
|
79
83
|
getAllObjects(): BaseObject[];
|
|
80
84
|
getAllObjectsByOrder(isDesc?: boolean): BaseObject[];
|
|
81
85
|
getAllObjectsByOrderForPick(isDesc?: boolean): BaseObject[];
|
|
@@ -120,7 +124,7 @@ export declare class Scene extends ThinScene {
|
|
|
120
124
|
scaleY: number;
|
|
121
125
|
};
|
|
122
126
|
dispose(): void;
|
|
123
|
-
pick(
|
|
127
|
+
pick(vec: Vector2): Nullable<BaseObject | Scene | ThinScene>;
|
|
124
128
|
triggerKeyDown(evt: IKeyboardEvent): void;
|
|
125
129
|
triggerKeyUp(evt: IKeyboardEvent): void;
|
|
126
130
|
triggerPointerUp(evt: IPointerEvent | IMouseEvent): boolean;
|
|
@@ -14,10 +14,12 @@ export declare class InputManager extends Disposable {
|
|
|
14
14
|
static ExclusiveDoubleClickMode: boolean;
|
|
15
15
|
/** This is a defensive check to not allow control attachment prior to an already active one. If already attached, previous control is unattached before attaching the new one. */
|
|
16
16
|
private _alreadyAttached;
|
|
17
|
-
private
|
|
17
|
+
private _onInput$;
|
|
18
18
|
private _onPointerMove;
|
|
19
19
|
private _onPointerDown;
|
|
20
20
|
private _onPointerUp;
|
|
21
|
+
private _onPointerOut;
|
|
22
|
+
private _onPointerCancel;
|
|
21
23
|
private _onPointerEnter;
|
|
22
24
|
private _onPointerLeave;
|
|
23
25
|
private _onMouseWheel;
|
|
@@ -42,7 +44,7 @@ export declare class InputManager extends Disposable {
|
|
|
42
44
|
dispose(): void;
|
|
43
45
|
mouseLeaveEnterHandler(evt: IMouseEvent): void;
|
|
44
46
|
dragLeaveEnterHandler(evt: IMouseEvent): void;
|
|
45
|
-
attachControl(hasDown?: boolean, hasUp?: boolean,
|
|
47
|
+
attachControl(hasDown?: boolean, hasUp?: boolean, enableMove?: boolean, hasWheel?: boolean, hasEnter?: boolean, hasLeave?: boolean): void;
|
|
46
48
|
/**
|
|
47
49
|
* Detaches all event handlers
|
|
48
50
|
*/
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Nullable, Disposable
|
|
1
|
+
import { Nullable, Disposable } from '@univerjs/core';
|
|
2
2
|
import { BaseObject } from './base-object';
|
|
3
3
|
import { IMouseEvent, IPointerEvent } from './basics/i-events';
|
|
4
4
|
import { Group } from './group';
|
|
@@ -60,22 +60,27 @@ export declare class Transformer extends Disposable implements ITransformerConfi
|
|
|
60
60
|
boundBoxFunc: Nullable<(oldBox: BaseObject, newBox: BaseObject) => BaseObject>;
|
|
61
61
|
useSingleNodeRotation: boolean;
|
|
62
62
|
shouldOverdrawWholeArea: boolean;
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
63
|
+
private readonly _changeStart$;
|
|
64
|
+
readonly changeStart$: import('rxjs').Observable<IChangeObserverConfig>;
|
|
65
|
+
private readonly _changing$;
|
|
66
|
+
readonly changing$: import('rxjs').Observable<IChangeObserverConfig>;
|
|
67
|
+
private readonly _changeEnd$;
|
|
68
|
+
readonly changeEnd$: import('rxjs').Observable<IChangeObserverConfig>;
|
|
69
|
+
private readonly _clearControl$;
|
|
70
|
+
readonly clearControl$: import('rxjs').Observable<boolean>;
|
|
71
|
+
private readonly _createControl$;
|
|
72
|
+
readonly createControl$: import('rxjs').Observable<Group>;
|
|
68
73
|
private _startOffsetX;
|
|
69
74
|
private _startOffsetY;
|
|
70
75
|
private _startStateMap;
|
|
71
76
|
private _viewportScrollX;
|
|
72
77
|
private _viewportScrollY;
|
|
73
|
-
private
|
|
74
|
-
private
|
|
75
|
-
private
|
|
78
|
+
private _topScenePointerMoveSub;
|
|
79
|
+
private _topScenePointerUpSub;
|
|
80
|
+
private _cancelFocusSubscription;
|
|
76
81
|
private _transformerControlMap;
|
|
77
82
|
private _selectedObjectMap;
|
|
78
|
-
private
|
|
83
|
+
private _subscriptionObjectMap;
|
|
79
84
|
private _copperControl;
|
|
80
85
|
private _copperSelectedObject;
|
|
81
86
|
private _moveBufferSkip;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { IViewportInfo } from '../basics/vector2';
|
|
2
|
+
import { UniverRenderingContext } from '../context';
|
|
3
|
+
import { IRectProps, Rect } from './rect';
|
|
4
|
+
|
|
5
|
+
export declare class DashedRect extends Rect {
|
|
6
|
+
static drawWith(ctx: UniverRenderingContext, props: IRectProps | Rect): void;
|
|
7
|
+
protected _draw(ctx: UniverRenderingContext, viewportInfo?: IViewportInfo): void;
|
|
8
|
+
}
|
|
@@ -11,10 +11,10 @@ export declare class ScrollBar extends BaseScrollBar {
|
|
|
11
11
|
private _lastY;
|
|
12
12
|
private _isHorizonMove;
|
|
13
13
|
private _isVerticalMove;
|
|
14
|
-
private
|
|
15
|
-
private
|
|
16
|
-
private
|
|
17
|
-
private
|
|
14
|
+
private _horizonPointerMoveSub;
|
|
15
|
+
private _horizonPointerUpSub;
|
|
16
|
+
private _verticalPointerMoveSub;
|
|
17
|
+
private _verticalPointerUpSub;
|
|
18
18
|
barSize: number;
|
|
19
19
|
barBorder: number;
|
|
20
20
|
thumbMargin: number;
|
|
@@ -27,6 +27,7 @@ export declare class ScrollBar extends BaseScrollBar {
|
|
|
27
27
|
thumbActiveBackgroundColor: string;
|
|
28
28
|
barBackgroundColor: string;
|
|
29
29
|
barBorderColor: string;
|
|
30
|
+
private _eventSub;
|
|
30
31
|
constructor(view: Viewport, props?: IScrollBarProps);
|
|
31
32
|
static attachTo(view: Viewport, props?: IScrollBarProps): ScrollBar;
|
|
32
33
|
dispose(): void;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IScale, Nullable } from '@univerjs/core';
|
|
1
|
+
import { IOffset, IScale, ISize, Nullable } from '@univerjs/core';
|
|
2
2
|
import { BaseObject } from '../base-object';
|
|
3
3
|
import { IObjectFullState } from '../basics/interfaces';
|
|
4
4
|
import { IViewportInfo, Vector2 } from '../basics/vector2';
|
|
@@ -7,7 +7,7 @@ import { UniverRenderingContext } from '../context';
|
|
|
7
7
|
export type LineJoin = 'round' | 'bevel' | 'miter';
|
|
8
8
|
export type LineCap = 'butt' | 'round' | 'square';
|
|
9
9
|
export type PaintFirst = 'fill' | 'stroke';
|
|
10
|
-
export interface IShapeProps extends IObjectFullState {
|
|
10
|
+
export interface IShapeProps extends IObjectFullState, ISize, IOffset, IScale {
|
|
11
11
|
hoverCursor?: Nullable<string>;
|
|
12
12
|
moveCursor?: string | null;
|
|
13
13
|
fillRule?: string;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Disposable,
|
|
1
|
+
import { Disposable, EventSubject } from '@univerjs/core';
|
|
2
2
|
import { IDisposable } from '@wendellhu/redi';
|
|
3
3
|
import { CURSOR_TYPE, RENDER_CLASS_TYPE } from './basics/const';
|
|
4
4
|
import { IEvent } from './basics/i-events';
|
|
@@ -6,8 +6,8 @@ import { ITransformChangeState } from './basics/interfaces';
|
|
|
6
6
|
import { Canvas } from './canvas';
|
|
7
7
|
|
|
8
8
|
export declare abstract class ThinEngine<T extends IDisposable> extends Disposable {
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
onInputChanged$: EventSubject<IEvent>;
|
|
10
|
+
onTransformChange$: EventSubject<ITransformChangeState>;
|
|
11
11
|
private _scenes;
|
|
12
12
|
private _activeScene;
|
|
13
13
|
get classType(): RENDER_CLASS_TYPE;
|
|
@@ -1,29 +1,33 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Nullable, Disposable, EventSubject } from '@univerjs/core';
|
|
2
2
|
import { BaseObject } from './base-object';
|
|
3
|
-
import { CURSOR_TYPE,
|
|
3
|
+
import { CURSOR_TYPE, RENDER_CLASS_TYPE } from './basics/const';
|
|
4
4
|
import { IDragEvent, IKeyboardEvent, IMouseEvent, IPointerEvent, IWheelEvent } from './basics/i-events';
|
|
5
5
|
import { ITransformChangeState } from './basics/interfaces';
|
|
6
6
|
import { Transform } from './basics/transform';
|
|
7
7
|
import { Vector2 } from './basics/vector2';
|
|
8
8
|
import { UniverRenderingContext } from './context';
|
|
9
|
+
import { ThinEngine } from './thin-engine';
|
|
10
|
+
import { Scene } from './scene';
|
|
9
11
|
|
|
10
12
|
export declare abstract class ThinScene extends Disposable {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
13
|
+
onTransformChange$: EventSubject<ITransformChangeState>;
|
|
14
|
+
onFileLoaded$: EventSubject<string>;
|
|
15
|
+
onPointerDown$: EventSubject<IMouseEvent | IPointerEvent>;
|
|
16
|
+
onPointerMove$: EventSubject<IMouseEvent | IPointerEvent>;
|
|
17
|
+
onPointerUp$: EventSubject<IMouseEvent | IPointerEvent>;
|
|
18
|
+
onPointerEnter$: EventSubject<IMouseEvent | IPointerEvent>;
|
|
19
|
+
onPointerOut$: EventSubject<IMouseEvent | IPointerEvent>;
|
|
20
|
+
onPointerCancel$: EventSubject<IMouseEvent | IPointerEvent>;
|
|
21
|
+
onPointerLeave$: EventSubject<IMouseEvent | IPointerEvent>;
|
|
22
|
+
onDragEnter$: EventSubject<IDragEvent>;
|
|
23
|
+
onDragOver$: EventSubject<IDragEvent>;
|
|
24
|
+
onDragLeave$: EventSubject<IDragEvent>;
|
|
25
|
+
onDrop$: EventSubject<IDragEvent>;
|
|
26
|
+
onDblclick$: EventSubject<IMouseEvent | IPointerEvent>;
|
|
27
|
+
onTripleClick$: EventSubject<IMouseEvent | IPointerEvent>;
|
|
28
|
+
onMouseWheel$: EventSubject<IWheelEvent>;
|
|
29
|
+
onKeyDown$: EventSubject<IKeyboardEvent>;
|
|
30
|
+
onKeyUp$: EventSubject<IKeyboardEvent>;
|
|
27
31
|
debounceParentTimeout: number;
|
|
28
32
|
private _sceneKey;
|
|
29
33
|
private _width;
|
|
@@ -48,9 +52,6 @@ export declare abstract class ThinScene extends Disposable {
|
|
|
48
52
|
set scaleY(scaleY: number);
|
|
49
53
|
enableEvent(): void;
|
|
50
54
|
disableEvent(): void;
|
|
51
|
-
on(eventType: EVENT_TYPE, func: (evt: unknown, state: EventState) => void): Nullable<Observer<unknown>>;
|
|
52
|
-
off(eventType: EVENT_TYPE, observer: Nullable<Observer<unknown>>): void;
|
|
53
|
-
remove(eventType: EVENT_TYPE): void;
|
|
54
55
|
triggerKeyDown(evt: IKeyboardEvent): void;
|
|
55
56
|
triggerKeyUp(evt: IKeyboardEvent): void;
|
|
56
57
|
abstract triggerPointerUp(evt: IPointerEvent | IMouseEvent): void;
|
|
@@ -73,7 +74,7 @@ export declare abstract class ThinScene extends Disposable {
|
|
|
73
74
|
abstract getObject(oKey: string): Nullable<BaseObject>;
|
|
74
75
|
abstract addObject(o: BaseObject, zIndex?: number): void;
|
|
75
76
|
abstract addObjects(objects: BaseObject[], zIndex?: number): void;
|
|
76
|
-
abstract getEngine():
|
|
77
|
+
abstract getEngine(): Nullable<ThinEngine<Scene>>;
|
|
77
78
|
abstract setObjectBehavior(o: BaseObject): void;
|
|
78
79
|
attachTransformerTo(o: BaseObject): void;
|
|
79
80
|
detachTransformerFrom(o: BaseObject): void;
|
package/lib/types/viewport.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { EventState, IPosition, Nullable,
|
|
1
|
+
import { EventState, IPosition, Nullable, EventSubject } from '@univerjs/core';
|
|
2
2
|
import { BaseObject } from './base-object';
|
|
3
3
|
import { IWheelEvent } from './basics/i-events';
|
|
4
4
|
import { Transform } from './basics/transform';
|
|
@@ -73,11 +73,11 @@ export declare class Viewport {
|
|
|
73
73
|
*/
|
|
74
74
|
private _physicalSceneWidth;
|
|
75
75
|
private _physicalSceneHeight;
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
76
|
+
onMouseWheel$: EventSubject<IWheelEvent>;
|
|
77
|
+
onScrollAfter$: EventSubject<IScrollObserverParam>;
|
|
78
|
+
onScrollBefore$: EventSubject<IScrollObserverParam>;
|
|
79
|
+
onScrollStop$: EventSubject<IScrollObserverParam>;
|
|
80
|
+
onScrollByBar$: EventSubject<IScrollObserverParam>;
|
|
81
81
|
private _viewportKey;
|
|
82
82
|
/**
|
|
83
83
|
* viewport top origin value in logic, scale does not affect it.
|
|
@@ -102,7 +102,7 @@ export declare class Viewport {
|
|
|
102
102
|
private _isWheelPreventDefaultX;
|
|
103
103
|
private _isWheelPreventDefaultY;
|
|
104
104
|
private _scrollStopNum;
|
|
105
|
-
private
|
|
105
|
+
private _clipViewport;
|
|
106
106
|
private _active;
|
|
107
107
|
private _paddingStartX;
|
|
108
108
|
private _paddingEndX;
|
|
@@ -201,9 +201,12 @@ export declare class Viewport {
|
|
|
201
201
|
* only viewMain would call scrollTo, other views did not call scroll, see scroll.render-controller
|
|
202
202
|
* @param pos
|
|
203
203
|
*
|
|
204
|
-
* when scrolling:
|
|
205
|
-
*
|
|
204
|
+
* when scrolling by trackpad:
|
|
205
|
+
* scene.input-manager@_onMouseWheel --> scene@triggerMouseWheel --> sheet-render.controller@scene.onMouseWheelObserver.add --> scrollManagerService.setScrollInfo -->
|
|
206
206
|
* scroll.render-controller@_scrollManagerService.scrollInfo$.subscribe --> scrollTo
|
|
207
|
+
* scroll-manager.service@_scrollInfo$.next -->scroll.render-controller@_scrollManagerService.scrollInfo$.subscribe -->
|
|
208
|
+
* viewportMain.scrollTo(config);
|
|
209
|
+
*
|
|
207
210
|
*
|
|
208
211
|
* when change skelenton:
|
|
209
212
|
* _currentSkeletonBefore$ ---> scroll.render-controller@_updateSceneSize --> setSearchParam --> scene@_setTransForm ---> viewport.resetCanvasSizeAndUpdateScrollBar ---> scrollTo ---> _scroll
|
|
@@ -213,8 +216,13 @@ export declare class Viewport {
|
|
|
213
216
|
* _currentSkeleton$ ---> selection.render-controller ---> setCurrentSelection ---> formula@_autoScroll ---> scrollTo
|
|
214
217
|
* _currentSkeleton$ ---> freeze.render-controller@_refreshFreeze --> viewport.resize ---> scrollTo ---> _scroll
|
|
215
218
|
*
|
|
219
|
+
*
|
|
220
|
+
*
|
|
216
221
|
* TODO: @lumix many side effects in scrollTo, it would update scrollXY & viewportScrollXY, and notify listeners of scrollInfo$
|
|
217
222
|
*
|
|
223
|
+
* TODO: @lumix Other controller should call scrollManagerService to set scrollInfo$
|
|
224
|
+
* example in scroll.operation.ts
|
|
225
|
+
*
|
|
218
226
|
* Debug
|
|
219
227
|
* window.scene.getViewports()[0].scrollTo({x: 14.2, y: 1.8}, true)
|
|
220
228
|
*/
|
|
@@ -224,6 +232,7 @@ export declare class Viewport {
|
|
|
224
232
|
} | undefined;
|
|
225
233
|
/**
|
|
226
234
|
* current position plus offset, relative
|
|
235
|
+
* normally triggered by scroll-timer(in sheet)
|
|
227
236
|
* @param pos
|
|
228
237
|
* @returns isLimited
|
|
229
238
|
*/
|
|
@@ -231,7 +240,16 @@ export declare class Viewport {
|
|
|
231
240
|
isLimitedX: boolean;
|
|
232
241
|
isLimitedY: boolean;
|
|
233
242
|
} | undefined;
|
|
243
|
+
/**
|
|
244
|
+
*
|
|
245
|
+
* @param pos
|
|
246
|
+
* @param isTrigger
|
|
247
|
+
*/
|
|
234
248
|
scrollByBar(pos: IScrollBarPosition, isTrigger?: boolean): void;
|
|
249
|
+
scrollByViewportScroll({ deltaX, deltaY }: {
|
|
250
|
+
deltaX?: number | undefined;
|
|
251
|
+
deltaY?: number | undefined;
|
|
252
|
+
}): void;
|
|
235
253
|
/**
|
|
236
254
|
* current position plus offset relatively
|
|
237
255
|
* the caller no need to deal with the padding when frozen
|
|
@@ -276,8 +294,19 @@ export declare class Viewport {
|
|
|
276
294
|
private _makeDefaultViewport;
|
|
277
295
|
private _calcViewportInfo;
|
|
278
296
|
getBounding(): IViewportInfo;
|
|
279
|
-
|
|
297
|
+
/**
|
|
298
|
+
* convert vector to scene coordinate, include row & col
|
|
299
|
+
* @param vec
|
|
300
|
+
* @returns Vector2
|
|
301
|
+
*/
|
|
302
|
+
transformVector2SceneCoord(vec: Vector2): Vector2;
|
|
280
303
|
getAbsoluteVector(coord: Vector2): Vector2;
|
|
304
|
+
/**
|
|
305
|
+
* At f7140a7c11, only doc need this method.
|
|
306
|
+
* In sheet, wheel event is handled by scroll-manager.service@setScrollInfo
|
|
307
|
+
* @param evt
|
|
308
|
+
* @param state
|
|
309
|
+
*/
|
|
281
310
|
onMouseWheel(evt: IWheelEvent, state: EventState): void;
|
|
282
311
|
isHit(coord: Vector2): boolean | undefined;
|
|
283
312
|
pickScrollBar(coord: Vector2): import('./shape').Rect<import('./shape').IRectProps> | null | undefined;
|
|
@@ -310,7 +339,7 @@ export declare class Viewport {
|
|
|
310
339
|
private _triggerScrollStop;
|
|
311
340
|
/**
|
|
312
341
|
* Scroll Viewport
|
|
313
|
-
*
|
|
342
|
+
* This function called by viewMain only, other viewports will not.
|
|
314
343
|
*
|
|
315
344
|
* caller: scroll.render-controller viewportMain.scrollTo({x, y}))
|
|
316
345
|
* this._scrollManagerService.scrollInfo$.subscribe --> scrollTo --> _scroll
|
|
@@ -318,7 +347,7 @@ export declare class Viewport {
|
|
|
318
347
|
* @param scrollBarPos viewMain 滚动条的位置
|
|
319
348
|
* @param isTrigger
|
|
320
349
|
*/
|
|
321
|
-
private
|
|
350
|
+
private _scrollCore;
|
|
322
351
|
expandBounds(value: {
|
|
323
352
|
top: number;
|
|
324
353
|
left: number;
|
|
@@ -334,7 +363,7 @@ export declare class Viewport {
|
|
|
334
363
|
private _getBoundScale;
|
|
335
364
|
/**
|
|
336
365
|
* main canvas element resize
|
|
337
|
-
* called by this.scene.getEngine()?.
|
|
366
|
+
* called by this.scene.getEngine()?.onTransformChange$.add
|
|
338
367
|
*/
|
|
339
368
|
private _mainCanvasResizeHandler;
|
|
340
369
|
}
|