@univerjs/engine-render 0.1.15 → 0.1.17

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.
@@ -1,5 +1,5 @@
1
- import { EventState, IKeyValue, ITransformState, Nullable, Observer, Disposable, Observable } from '@univerjs/core';
2
- import { EVENT_TYPE, CURSOR_TYPE, RENDER_CLASS_TYPE } from './basics/const';
1
+ import { IKeyValue, ITransformState, Nullable, Disposable, EventSubject } from '@univerjs/core';
2
+ import { CURSOR_TYPE, RENDER_CLASS_TYPE } from './basics/const';
3
3
  import { IDragEvent, IMouseEvent, IPointerEvent, IWheelEvent } from './basics/i-events';
4
4
  import { IObjectFullState, ITransformChangeState } from './basics/interfaces';
5
5
  import { Transform } from './basics/transform';
@@ -12,23 +12,23 @@ export declare const BASE_OBJECT_ARRAY: string[];
12
12
  export declare abstract class BaseObject extends Disposable {
13
13
  groupKey?: string;
14
14
  isInGroup: boolean;
15
- onTransformChangeObservable: Observable<ITransformChangeState>;
16
- onPointerDownObserver: Observable<IMouseEvent | IPointerEvent>;
17
- onPointerMoveObserver: Observable<IMouseEvent | IPointerEvent>;
18
- onPointerUpObserver: Observable<IMouseEvent | IPointerEvent>;
19
- onDblclickObserver: Observable<IMouseEvent | IPointerEvent>;
20
- onTripleClickObserver: Observable<IMouseEvent | IPointerEvent>;
21
- onMouseWheelObserver: Observable<IWheelEvent>;
22
- onPointerOutObserver: Observable<IMouseEvent | IPointerEvent>;
23
- onPointerLeaveObserver: Observable<IMouseEvent | IPointerEvent>;
24
- onPointerOverObserver: Observable<IMouseEvent | IPointerEvent>;
25
- onPointerEnterObserver: Observable<IMouseEvent | IPointerEvent>;
26
- onDragLeaveObserver: Observable<IMouseEvent | IDragEvent>;
27
- onDragOverObserver: Observable<IMouseEvent | IDragEvent>;
28
- onDragEnterObserver: Observable<IMouseEvent | IDragEvent>;
29
- onDropObserver: Observable<IMouseEvent | IDragEvent>;
30
- onIsAddedToParentObserver: Observable<any>;
31
- onDisposeObserver: Observable<BaseObject>;
15
+ onTransformChange$: EventSubject<ITransformChangeState>;
16
+ onPointerDown$: EventSubject<IMouseEvent | IPointerEvent>;
17
+ onPointerMove$: EventSubject<IMouseEvent | IPointerEvent>;
18
+ onPointerUp$: EventSubject<IMouseEvent | IPointerEvent>;
19
+ onPointerOut$: EventSubject<IMouseEvent | IPointerEvent>;
20
+ onPointerOver$: EventSubject<IMouseEvent | IPointerEvent>;
21
+ onPointerLeave$: EventSubject<IMouseEvent | IPointerEvent>;
22
+ onPointerEnter$: EventSubject<IMouseEvent | IPointerEvent>;
23
+ onDblclick$: EventSubject<IMouseEvent | IPointerEvent>;
24
+ onTripleClick$: EventSubject<IMouseEvent | IPointerEvent>;
25
+ onMouseWheel$: EventSubject<IWheelEvent>;
26
+ onDragLeave$: EventSubject<IMouseEvent | IDragEvent>;
27
+ onDragOver$: EventSubject<IMouseEvent | IDragEvent>;
28
+ onDragEnter$: EventSubject<IMouseEvent | IDragEvent>;
29
+ onDrop$: EventSubject<IMouseEvent | IDragEvent>;
30
+ onIsAddedToParent$: EventSubject<any>;
31
+ onDispose$: EventSubject<BaseObject>;
32
32
  protected _oKey: string;
33
33
  protected _dirty: boolean;
34
34
  protected _forceDirty: boolean;
@@ -131,11 +131,8 @@ export declare abstract class BaseObject extends Disposable {
131
131
  getState(): ITransformState;
132
132
  hide(): void;
133
133
  show(): void;
134
- render(ctx: UniverRenderingContext, bounds?: IViewportInfo): void;
134
+ render(ctx: UniverRenderingContext, bounds: IViewportInfo): void;
135
135
  isHit(coord: Vector2): boolean;
136
- on(eventType: EVENT_TYPE, func: (evt: unknown, state: EventState) => void): Nullable<Observer<unknown>>;
137
- off(eventType: EVENT_TYPE, observer: Nullable<Observer<unknown>>): void;
138
- clear(eventType: EVENT_TYPE): void;
139
136
  triggerPointerMove(evt: IPointerEvent | IMouseEvent): boolean;
140
137
  triggerPointerDown(evt: IPointerEvent | IMouseEvent): boolean;
141
138
  triggerPointerUp(evt: IPointerEvent | IMouseEvent): boolean;
@@ -18,18 +18,6 @@ export declare enum SHAPE_TYPE {
18
18
  CIRCLE = "circle",
19
19
  PATH = "path"
20
20
  }
21
- export declare enum EVENT_TYPE {
22
- PointerMove = "PointerMove",
23
- PointerDown = "PointerDown",
24
- PointerUp = "PointerUp",
25
- PointerOut = "PointerOut",
26
- PointerLeave = "PointerLeave",
27
- PointerOver = "PointerOver",
28
- PointerEnter = "PointerEnter",
29
- wheel = "MouseWheel",
30
- KeyDown = "KeyDown",
31
- KeyUp = "KeyUp"
32
- }
33
21
  export declare enum LINK_VIEW_PORT_TYPE {
34
22
  XY = 0,
35
23
  X = 1,
@@ -434,10 +434,6 @@ export interface IBoundRect {
434
434
  dy: number;
435
435
  }
436
436
  export interface IBoundRectNoAngle {
437
- /**
438
- * 冻结区域相对 MainCanvas 的物理位置,
439
- * left = n * colWidth + rowHeaderWidth
440
- */
441
437
  left: number;
442
438
  top: number;
443
439
  right: number;
@@ -1,4 +1,4 @@
1
- import { Nullable, Observable } from '@univerjs/core';
1
+ import { Nullable } from '@univerjs/core';
2
2
  import { IDocumentSkeletonPage } from '../../basics/i-document-skeleton-cached';
3
3
  import { Transform } from '../../basics/transform';
4
4
  import { IViewportInfo } from '../../basics/vector2';
@@ -19,11 +19,11 @@ export interface IDocumentOffsetConfig extends IPageMarginLayout {
19
19
  documentTransform: Transform;
20
20
  }
21
21
  export declare class Documents extends DocComponent {
22
- onPageRenderObservable: Observable<IPageRenderConfig>;
22
+ private readonly _pageRender$;
23
+ readonly pageRender$: import('rxjs').Observable<IPageRenderConfig>;
23
24
  docsLeft: number;
24
25
  docsTop: number;
25
26
  private _drawLiquid;
26
- private _skeletonObserver;
27
27
  constructor(oKey: string, documentSkeleton?: DocumentSkeleton, config?: IDocumentsConfig);
28
28
  static create(oKey: string, documentSkeleton?: DocumentSkeleton, config?: IDocumentsConfig): Documents;
29
29
  dispose(): void;
@@ -97,11 +97,7 @@ export declare class TextSelectionRenderManager extends RxDisposable implements
97
97
  private _container;
98
98
  private _inputParent;
99
99
  private _input;
100
- private _moveObservers;
101
- private _upObservers;
102
100
  private _scrollTimers;
103
- private _viewportScrollX;
104
- private _viewportScrollY;
105
101
  private _rangeList;
106
102
  private _currentSegmentId;
107
103
  private _selectionStyle;
@@ -112,6 +108,8 @@ export declare class TextSelectionRenderManager extends RxDisposable implements
112
108
  private _docSkeleton;
113
109
  private _scene;
114
110
  private _document;
111
+ private _scenePointerMoveSubs;
112
+ private _scenePointerUpSubs;
115
113
  constructor(_logService: ILogService);
116
114
  __getEditorContainer(): HTMLElement;
117
115
  getViewPort(): Viewport;
@@ -1,7 +1,7 @@
1
1
  import { Nullable } from '@univerjs/core';
2
2
  import { IViewportInfo, Vector2 } from '../../basics/vector2';
3
3
  import { UniverRenderingContext } from '../../context';
4
- import { ColumnHeaderLayout } from './extensions/column-header-layout';
4
+ import { ColumnHeaderLayout, IColumnsHeaderCfgParam } from './extensions/column-header-layout';
5
5
  import { SpreadsheetHeader } from './sheet-component';
6
6
  import { SpreadsheetSkeleton } from './sheet-skeleton';
7
7
 
@@ -25,4 +25,5 @@ export declare class SpreadsheetColumnHeader extends SpreadsheetHeader {
25
25
  draw(ctx: UniverRenderingContext, bounds?: IViewportInfo): void;
26
26
  isHit(coord: Vector2): boolean;
27
27
  private _initialDefaultExtension;
28
+ setCustomHeader(cfg: IColumnsHeaderCfgParam): void;
28
29
  }
@@ -1,10 +1,21 @@
1
1
  import { IScale } from '@univerjs/core';
2
2
  import { UniverRenderingContext } from '../../../context';
3
3
  import { SpreadsheetSkeleton } from '../sheet-skeleton';
4
+ import { IAColumnCfg, IAColumnCfgObj, IColumnStyleCfg } from '../interfaces';
4
5
  import { SheetExtension } from './sheet-extension';
5
6
 
7
+ export interface IColumnsHeaderCfgParam {
8
+ headerStyle?: Partial<IColumnStyleCfg>;
9
+ columnsCfg?: IAColumnCfg[];
10
+ }
6
11
  export declare class ColumnHeaderLayout extends SheetExtension {
7
12
  uKey: string;
8
13
  Z_INDEX: number;
14
+ columnsCfg: IAColumnCfg[];
15
+ headerStyle: IColumnStyleCfg;
16
+ constructor(cfg?: IColumnsHeaderCfgParam);
17
+ configHeaderColumn(cfg: IColumnsHeaderCfgParam): void;
18
+ getCfgOfCurrentColumn(colIndex: number): [IAColumnCfgObj, boolean];
19
+ setStyleToCtx(ctx: UniverRenderingContext, columnStyle: Partial<IColumnStyleCfg>): void;
9
20
  draw(ctx: UniverRenderingContext, parentScale: IScale, spreadsheetSkeleton: SpreadsheetSkeleton): void;
10
21
  }
@@ -1,10 +1,21 @@
1
1
  import { IScale } from '@univerjs/core';
2
2
  import { UniverRenderingContext } from '../../../context';
3
3
  import { SpreadsheetSkeleton } from '../sheet-skeleton';
4
+ import { IARowCfg, IARowCfgObj, IColumnStyleCfg, IRowStyleCfg } from '../interfaces.ts';
4
5
  import { SheetExtension } from './sheet-extension';
5
6
 
7
+ export interface IRowsHeaderCfgParam {
8
+ headerStyle?: Partial<IRowStyleCfg>;
9
+ rowsCfg?: IARowCfg[];
10
+ }
6
11
  export declare class RowHeaderLayout extends SheetExtension {
7
12
  uKey: string;
8
13
  Z_INDEX: number;
14
+ rowsCfg: IARowCfg[];
15
+ headerStyle: IRowStyleCfg;
16
+ constructor(cfg?: IRowsHeaderCfgParam);
17
+ configHeaderRow(cfg: IRowsHeaderCfgParam): void;
18
+ getCfgOfCurrentRow(rowIndex: number): [IARowCfgObj, boolean];
19
+ setStyleToCtx(ctx: UniverRenderingContext, rowStyle: Partial<IColumnStyleCfg>): void;
9
20
  draw(ctx: UniverRenderingContext, parentScale: IScale, spreadsheetSkeleton: SpreadsheetSkeleton): void;
10
21
  }
@@ -69,4 +69,30 @@ export interface IPaintForScrolling {
69
69
  scaleX: number;
70
70
  scaleY: number;
71
71
  }
72
+ export interface IColumnStyleCfg {
73
+ fontFamily: string;
74
+ fontColor: string;
75
+ fontSize: number;
76
+ borderColor: string;
77
+ textAlign: CanvasTextAlign;
78
+ textBaseline: CanvasTextBaseline;
79
+ backgroundColor: string;
80
+ }
81
+ export type IAColumnCfgObj = IColumnStyleCfg & {
82
+ text: string;
83
+ };
84
+ export type IAColumnCfg = undefined | null | string | Partial<IAColumnCfgObj>;
85
+ export interface IRowStyleCfg {
86
+ fontFamily: string;
87
+ fontColor: string;
88
+ fontSize: number;
89
+ borderColor: string;
90
+ textAlign: CanvasTextAlign;
91
+ textBaseline: CanvasTextBaseline;
92
+ backgroundColor: string;
93
+ }
94
+ export type IARowCfgObj = IColumnStyleCfg & {
95
+ text: string;
96
+ };
97
+ export type IARowCfg = undefined | null | string | Partial<IARowCfgObj>;
72
98
  export {};
@@ -1,7 +1,7 @@
1
1
  import { Nullable } from '@univerjs/core';
2
2
  import { IViewportInfo, Vector2 } from '../../basics/vector2';
3
3
  import { UniverRenderingContext } from '../../context';
4
- import { RowHeaderLayout } from './extensions/row-header-layout';
4
+ import { IRowsHeaderCfgParam, RowHeaderLayout } from './extensions/row-header-layout';
5
5
  import { SpreadsheetHeader } from './sheet-component';
6
6
  import { SpreadsheetSkeleton } from './sheet-skeleton';
7
7
 
@@ -25,4 +25,5 @@ export declare class SpreadsheetRowHeader extends SpreadsheetHeader {
25
25
  draw(ctx: UniverRenderingContext, bounds?: IViewportInfo): void;
26
26
  isHit(coord: Vector2): boolean;
27
27
  private _initialDefaultExtension;
28
+ setCustomHeader(cfg: IRowsHeaderCfgParam): void;
28
29
  }
@@ -29,6 +29,12 @@ export interface IDocumentLayoutObject {
29
29
  paddingData: IPaddingData;
30
30
  fill?: Nullable<string>;
31
31
  }
32
+ export declare const DEFAULT_PADDING_DATA: {
33
+ t: number;
34
+ b: number;
35
+ l: number;
36
+ r: number;
37
+ };
32
38
  export declare const RENDER_RAW_FORMULA_KEY = "RENDER_RAW_FORMULA";
33
39
  export declare class SpreadsheetSkeleton extends Skeleton {
34
40
  private _worksheet;
@@ -71,6 +77,9 @@ export declare class SpreadsheetSkeleton extends Skeleton {
71
77
  get columnTotalWidth(): number;
72
78
  get rowHeaderWidth(): number;
73
79
  get columnHeaderHeight(): number;
80
+ /**
81
+ * row col start & end range
82
+ */
74
83
  get rowColumnSegment(): IRowColumnSegment;
75
84
  get dataMergeCache(): IRange[];
76
85
  get stylesCache(): IStylesCache;
@@ -1,4 +1,4 @@
1
- import { Nullable, Observable } from '@univerjs/core';
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
- onSlideChangePageByNavigationObservable: Observable<Nullable<string>>;
11
+ slideChangePageByNavigation$: EventSubject<Nullable<string>>;
12
12
  private _navigationEnabled;
13
13
  activeFirstPage(): void;
14
14
  addPage(scene: Scene): void;
@@ -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
- * Observable raised when the engine begins a new frame
11
- */
12
- onBeginFrameObservable: Observable<Engine>;
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;
@@ -97,7 +92,6 @@ export declare class Engine extends ThinEngine<Scene> {
97
92
  _renderFrame(): void;
98
93
  private _cancelFrame;
99
94
  private _getHostWindow;
100
- /** @hidden */
101
95
  private _renderLoop;
102
96
  private _measureFps;
103
97
  private _handleKeyboardAction;
@@ -33,7 +33,7 @@ export declare class Group extends BaseObject {
33
33
  private _transformObject;
34
34
  getObjectsByOrder(): BaseObject[];
35
35
  getObjects(): BaseObject[];
36
- render(ctx: UniverRenderingContext, bounds?: IViewportInfo): void;
36
+ render(ctx: UniverRenderingContext, bounds: IViewportInfo): void;
37
37
  resize(width?: number | string, height?: number | string): this;
38
38
  scale(scaleX?: number, scaleY?: number): this;
39
39
  skew(skewX?: number, skewY?: number): this;
@@ -43,3 +43,4 @@ 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';
@@ -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
- create(unitId: Nullable<string>): void;
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
- registerRenderController<T extends UnitModel>(type: UnitType, ctor: IRenderModuleCtor<T>): IDisposable;
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
- readonly createRender$: Observable<Nullable<string>>;
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
- registerRenderController(type: UnitType, ctor: IRenderModuleCtor): IDisposable;
49
+ registerRenderModule(type: UnitType, ctor: IRenderModuleCtor): IDisposable;
46
50
  private _getRenderControllersForType;
47
- create(unitId: Nullable<string>): void;
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;
@@ -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<ThinScene | BaseObject>;
25
+ pick(coord: Vector2): Nullable<BaseObject | ThinScene>;
26
26
  dispose(): void;
27
27
  private _initialProps;
28
28
  }
@@ -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;
@@ -14,7 +14,7 @@ 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 _onInputObserver;
17
+ private _onInput$;
18
18
  private _onPointerMove;
19
19
  private _onPointerDown;
20
20
  private _onPointerUp;
@@ -1,4 +1,4 @@
1
- import { Nullable, Disposable, Observable } from '@univerjs/core';
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
- onChangeStartObservable: Observable<IChangeObserverConfig>;
64
- onChangingObservable: Observable<IChangeObserverConfig>;
65
- onChangeEndObservable: Observable<IChangeObserverConfig>;
66
- onClearControlObservable: Observable<boolean>;
67
- onCreateControlObservable: Observable<Group>;
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 _moveObserver;
74
- private _upObserver;
75
- private _cancelFocusObserver;
78
+ private _topScenePointerMoveSub;
79
+ private _topScenePointerUpSub;
80
+ private _cancelFocusSubscription;
76
81
  private _transformerControlMap;
77
82
  private _selectedObjectMap;
78
- private _observerObjectMap;
83
+ private _subscriptionObjectMap;
79
84
  private _copperControl;
80
85
  private _copperSelectedObject;
81
86
  private _moveBufferSkip;
@@ -1,4 +1,5 @@
1
1
  import { UniverRenderingContext } from '../context';
2
+ import { IViewportInfo } from '../basics/vector2';
2
3
  import { IShapeProps, Shape } from './shape';
3
4
 
4
5
  export interface IRectProps extends IShapeProps {
@@ -13,5 +14,5 @@ export declare class Rect<T extends IRectProps = IRectProps> extends Shape<T> {
13
14
  toJson(): {
14
15
  [x: string]: any;
15
16
  };
16
- protected _draw(ctx: UniverRenderingContext): void;
17
+ protected _draw(ctx: UniverRenderingContext, viewportInfo?: IViewportInfo): void;
17
18
  }
@@ -11,10 +11,10 @@ export declare class ScrollBar extends BaseScrollBar {
11
11
  private _lastY;
12
12
  private _isHorizonMove;
13
13
  private _isVerticalMove;
14
- private _horizonPointerMoveObserver;
15
- private _horizonPointerUpObserver;
16
- private _verticalPointerMoveObserver;
17
- private _verticalPointerUpObserver;
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;
@@ -106,6 +106,6 @@ export declare abstract class Shape<T extends IShapeProps> extends BaseObject {
106
106
  toJson(): {
107
107
  [x: string]: any;
108
108
  };
109
- protected _draw(ctx: UniverRenderingContext): void;
109
+ protected _draw(ctx: UniverRenderingContext, bounds?: IViewportInfo): void;
110
110
  private _initialProps;
111
111
  }
@@ -1,4 +1,4 @@
1
- import { Disposable, Observable } from '@univerjs/core';
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
- onInputChangedObservable: Observable<IEvent>;
10
- onTransformChangeObservable: Observable<ITransformChangeState>;
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,31 @@
1
- import { EventState, Nullable, Observer, Disposable, Observable } from '@univerjs/core';
1
+ import { Nullable, Disposable, EventSubject } from '@univerjs/core';
2
2
  import { BaseObject } from './base-object';
3
- import { CURSOR_TYPE, EVENT_TYPE, RENDER_CLASS_TYPE } from './basics/const';
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
- onTransformChangeObservable: Observable<ITransformChangeState>;
12
- onFileLoadedObservable: Observable<string>;
13
- onPointerDownObserver: Observable<IMouseEvent | IPointerEvent>;
14
- onPointerMoveObserver: Observable<IMouseEvent | IPointerEvent>;
15
- onPointerUpObserver: Observable<IMouseEvent | IPointerEvent>;
16
- onPointerEnterObserver: Observable<IMouseEvent | IPointerEvent>;
17
- onPointerLeaveObserver: Observable<IMouseEvent | IPointerEvent>;
18
- onDragEnterObserver: Observable<IDragEvent>;
19
- onDragOverObserver: Observable<IDragEvent>;
20
- onDragLeaveObserver: Observable<IDragEvent>;
21
- onDropObserver: Observable<IDragEvent>;
22
- onDblclickObserver: Observable<IMouseEvent | IPointerEvent>;
23
- onTripleClickObserver: Observable<IMouseEvent | IPointerEvent>;
24
- onMouseWheelObserver: Observable<IWheelEvent>;
25
- onKeyDownObservable: Observable<IKeyboardEvent>;
26
- onKeyUpObservable: Observable<IKeyboardEvent>;
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
+ onPointerLeave$: EventSubject<IMouseEvent | IPointerEvent>;
20
+ onDragEnter$: EventSubject<IDragEvent>;
21
+ onDragOver$: EventSubject<IDragEvent>;
22
+ onDragLeave$: EventSubject<IDragEvent>;
23
+ onDrop$: EventSubject<IDragEvent>;
24
+ onDblclick$: EventSubject<IMouseEvent | IPointerEvent>;
25
+ onTripleClick$: EventSubject<IMouseEvent | IPointerEvent>;
26
+ onMouseWheel$: EventSubject<IWheelEvent>;
27
+ onKeyDown$: EventSubject<IKeyboardEvent>;
28
+ onKeyUp$: EventSubject<IKeyboardEvent>;
27
29
  debounceParentTimeout: number;
28
30
  private _sceneKey;
29
31
  private _width;
@@ -48,9 +50,6 @@ export declare abstract class ThinScene extends Disposable {
48
50
  set scaleY(scaleY: number);
49
51
  enableEvent(): void;
50
52
  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
53
  triggerKeyDown(evt: IKeyboardEvent): void;
55
54
  triggerKeyUp(evt: IKeyboardEvent): void;
56
55
  abstract triggerPointerUp(evt: IPointerEvent | IMouseEvent): void;
@@ -73,7 +72,7 @@ export declare abstract class ThinScene extends Disposable {
73
72
  abstract getObject(oKey: string): Nullable<BaseObject>;
74
73
  abstract addObject(o: BaseObject, zIndex?: number): void;
75
74
  abstract addObjects(objects: BaseObject[], zIndex?: number): void;
76
- abstract getEngine(): any;
75
+ abstract getEngine(): Nullable<ThinEngine<Scene>>;
77
76
  abstract setObjectBehavior(o: BaseObject): void;
78
77
  attachTransformerTo(o: BaseObject): void;
79
78
  detachTransformerFrom(o: BaseObject): void;
@@ -1,4 +1,4 @@
1
- import { EventState, IPosition, Nullable, Observable } from '@univerjs/core';
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
- onMouseWheelObserver: Observable<IWheelEvent>;
77
- onScrollAfterObserver: Observable<IScrollObserverParam>;
78
- onScrollBeforeObserver: Observable<IScrollObserverParam>;
79
- onScrollStopObserver: Observable<IScrollObserverParam>;
80
- onScrollByBarObserver: Observable<IScrollObserverParam>;
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.
@@ -334,7 +334,7 @@ export declare class Viewport {
334
334
  private _getBoundScale;
335
335
  /**
336
336
  * main canvas element resize
337
- * called by this.scene.getEngine()?.onTransformChangeObservable.add
337
+ * called by this.scene.getEngine()?.onTransformChange$.add
338
338
  */
339
339
  private _mainCanvasResizeHandler;
340
340
  }