@univerjs/engine-render 0.1.0-alpha.2 → 0.1.0-beta.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.
Files changed (44) hide show
  1. package/README.md +1 -1
  2. package/lib/cjs/index.js +3 -3
  3. package/lib/es/index.js +6576 -5218
  4. package/lib/types/base-object.d.ts +6 -5
  5. package/lib/types/basics/const.d.ts +8 -154
  6. package/lib/types/basics/draw.d.ts +1 -0
  7. package/lib/types/basics/range.d.ts +5 -0
  8. package/lib/types/basics/tools.d.ts +4 -3
  9. package/lib/types/basics/vector2.d.ts +8 -0
  10. package/lib/types/components/component.d.ts +7 -7
  11. package/lib/types/components/docs/block/paragraph/bullet.d.ts +1 -1
  12. package/lib/types/components/docs/block/paragraph/language-ruler.d.ts +17 -8
  13. package/lib/types/components/docs/common/index.d.ts +1 -1
  14. package/lib/types/components/docs/common/{range.d.ts → text-range.d.ts} +2 -2
  15. package/lib/types/components/docs/doc-component.d.ts +6 -10
  16. package/lib/types/components/docs/doc-extension.d.ts +2 -1
  17. package/lib/types/components/docs/doc-skeleton.d.ts +2 -2
  18. package/lib/types/components/docs/document.d.ts +3 -4
  19. package/lib/types/components/docs/text-selection-render-manager.d.ts +40 -38
  20. package/lib/types/components/extension.d.ts +2 -2
  21. package/lib/types/components/sheets/column-header.d.ts +2 -2
  22. package/lib/types/components/sheets/extensions/background.d.ts +2 -2
  23. package/lib/types/components/sheets/extensions/border.d.ts +2 -2
  24. package/lib/types/components/sheets/extensions/font.d.ts +2 -2
  25. package/lib/types/components/sheets/extensions/index.d.ts +0 -1
  26. package/lib/types/components/sheets/extensions/sheet-extension.d.ts +4 -1
  27. package/lib/types/components/sheets/interfaces.d.ts +2 -1
  28. package/lib/types/components/sheets/row-header.d.ts +2 -2
  29. package/lib/types/components/sheets/sheet-component.d.ts +8 -8
  30. package/lib/types/components/sheets/sheet-skeleton.d.ts +28 -10
  31. package/lib/types/components/sheets/spreadsheet.d.ts +18 -21
  32. package/lib/types/custom/custom-object.d.ts +2 -2
  33. package/lib/types/engine.d.ts +3 -3
  34. package/lib/types/group.d.ts +2 -2
  35. package/lib/types/layer.d.ts +14 -2
  36. package/lib/types/scene-viewer.d.ts +2 -2
  37. package/lib/types/scene.d.ts +3 -4
  38. package/lib/types/shape/rich-text.d.ts +2 -5
  39. package/lib/types/shape/shape.d.ts +2 -10
  40. package/lib/types/thin-scene.d.ts +7 -2
  41. package/lib/types/viewport.d.ts +12 -10
  42. package/lib/umd/index.js +3 -3
  43. package/package.json +8 -7
  44. package/lib/types/components/sheets/extensions/border-auxiliary.d.ts +0 -27
@@ -25,7 +25,7 @@ export interface IExtensionConfig {
25
25
  alignOffset?: Vector2;
26
26
  renderConfig?: IDocumentRenderConfig;
27
27
  }
28
- export declare class ComponentExtension<T, U> {
28
+ export declare class ComponentExtension<T, U, V> {
29
29
  uKey: string;
30
30
  type: U;
31
31
  zIndex: number;
@@ -33,7 +33,7 @@ export declare class ComponentExtension<T, U> {
33
33
  translateX: number;
34
34
  translateY: number;
35
35
  extensionOffset: IExtensionConfig;
36
- draw(ctx: CanvasRenderingContext2D, parentScale: IScale, skeleton: T): void;
36
+ draw(ctx: CanvasRenderingContext2D, parentScale: IScale, skeleton: T, diffBounds?: V): void;
37
37
  clearCache(): void;
38
38
  protected _getScale(parentScale: IScale): number;
39
39
  }
@@ -13,7 +13,7 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import type { IBoundRect, Vector2 } from '../../basics/vector2';
16
+ import type { IViewportBound, Vector2 } from '../../basics/vector2';
17
17
  import type { ColumnHeaderLayout } from './extensions/column-header-layout';
18
18
  import { SpreadsheetHeader } from './sheet-component';
19
19
  import type { SpreadsheetSkeleton } from './sheet-skeleton';
@@ -21,7 +21,7 @@ export declare class SpreadsheetColumnHeader extends SpreadsheetHeader {
21
21
  private _columnHeaderLayoutExtension;
22
22
  constructor(oKey: string, spreadsheetSkeleton?: SpreadsheetSkeleton);
23
23
  get columnHeaderLayoutExtension(): ColumnHeaderLayout;
24
- draw(ctx: CanvasRenderingContext2D, bounds?: IBoundRect): void;
24
+ draw(ctx: CanvasRenderingContext2D, bounds?: IViewportBound): void;
25
25
  isHit(coord: Vector2): boolean;
26
26
  private _initialDefaultExtension;
27
27
  }
@@ -13,11 +13,11 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import type { IScale } from '@univerjs/core';
16
+ import type { IRange, IScale } from '@univerjs/core';
17
17
  import type { SpreadsheetSkeleton } from '../sheet-skeleton';
18
18
  import { SheetExtension } from './sheet-extension';
19
19
  export declare class Background extends SheetExtension {
20
20
  uKey: string;
21
21
  zIndex: number;
22
- draw(ctx: CanvasRenderingContext2D, parentScale: IScale, spreadsheetSkeleton: SpreadsheetSkeleton): void;
22
+ draw(ctx: CanvasRenderingContext2D, parentScale: IScale, spreadsheetSkeleton: SpreadsheetSkeleton, diffRanges?: IRange[]): void;
23
23
  }
@@ -13,12 +13,12 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import type { IScale } from '@univerjs/core';
16
+ import type { IRange, IScale } from '@univerjs/core';
17
17
  import type { SpreadsheetSkeleton } from '../sheet-skeleton';
18
18
  import { SheetExtension } from './sheet-extension';
19
19
  export declare class Border extends SheetExtension {
20
20
  uKey: string;
21
21
  zIndex: number;
22
- draw(ctx: CanvasRenderingContext2D, parentScale: IScale, spreadsheetSkeleton: SpreadsheetSkeleton): void;
22
+ draw(ctx: CanvasRenderingContext2D, parentScale: IScale, spreadsheetSkeleton: SpreadsheetSkeleton, diffRanges?: IRange[]): void;
23
23
  private _getOverflowExclusion;
24
24
  }
@@ -13,7 +13,7 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import type { IColorStyle, IScale } from '@univerjs/core';
16
+ import type { IColorStyle, IRange, IScale } from '@univerjs/core';
17
17
  import { ObjectMatrix } from '@univerjs/core';
18
18
  import type { SpreadsheetSkeleton } from '../sheet-skeleton';
19
19
  import { SheetExtension } from './sheet-extension';
@@ -23,7 +23,7 @@ export declare class Font extends SheetExtension {
23
23
  changeFontColor: ObjectMatrix<IColorStyle>;
24
24
  getDocuments(): any;
25
25
  setChangeFontColor(r: number, c: number, color: IColorStyle): void;
26
- draw(ctx: CanvasRenderingContext2D, parentScale: IScale, spreadsheetSkeleton: SpreadsheetSkeleton): void;
26
+ draw(ctx: CanvasRenderingContext2D, parentScale: IScale, spreadsheetSkeleton: SpreadsheetSkeleton, diffRanges?: IRange[]): void;
27
27
  private _renderDocuments;
28
28
  private _clipRectangle;
29
29
  }
@@ -15,7 +15,6 @@
15
15
  */
16
16
  export * from './background';
17
17
  export * from './border';
18
- export * from './border-auxiliary';
19
18
  export * from './column-header-layout';
20
19
  export * from './font';
21
20
  export * from './row-header-layout';
@@ -19,7 +19,10 @@ import type { SpreadsheetSkeleton } from '../sheet-skeleton';
19
19
  export declare enum SHEET_EXTENSION_TYPE {
20
20
  GRID = 0
21
21
  }
22
- export declare class SheetExtension extends ComponentExtension<SpreadsheetSkeleton, SHEET_EXTENSION_TYPE> {
22
+ export declare class SheetExtension extends ComponentExtension<SpreadsheetSkeleton, SHEET_EXTENSION_TYPE, IRange[]> {
23
23
  type: SHEET_EXTENSION_TYPE;
24
24
  getCellIndex(rowIndex: number, columnIndex: number, rowHeightAccumulation: number[], columnWidthAccumulation: number[], dataMergeCache: IRange[]): import("@univerjs/core").ISelectionCellWithCoord;
25
+ isRenderDiffRangesByCell(row: number, column: number, diffRanges?: IRange[]): boolean;
26
+ isRenderDiffRangesByColumn(column: number, diffRanges?: IRange[]): boolean;
27
+ isRenderDiffRangesByRow(row: number, diffRanges?: IRange[]): boolean;
25
28
  }
@@ -13,7 +13,7 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import type { BorderStyleTypes, HorizontalAlign, ObjectMatrix, VerticalAlign, WrapStrategy } from '@univerjs/core';
16
+ import type { BorderStyleTypes, HorizontalAlign, ISelectionCellWithCoord, ObjectMatrix, VerticalAlign, WrapStrategy } from '@univerjs/core';
17
17
  import type { BORDER_TYPE } from '../../basics/const';
18
18
  import type { DocumentSkeleton } from '../docs/doc-skeleton';
19
19
  export interface BorderCache {
@@ -39,6 +39,7 @@ interface fontCache {
39
39
  }
40
40
  export interface IStylesCache {
41
41
  background?: backgroundCache;
42
+ backgroundPositions?: ObjectMatrix<ISelectionCellWithCoord>;
42
43
  font?: fontCache;
43
44
  border?: ObjectMatrix<BorderCache>;
44
45
  }
@@ -13,7 +13,7 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import type { IBoundRect, Vector2 } from '../../basics/vector2';
16
+ import type { IViewportBound, Vector2 } from '../../basics/vector2';
17
17
  import type { RowHeaderLayout } from './extensions/row-header-layout';
18
18
  import { SpreadsheetHeader } from './sheet-component';
19
19
  import type { SpreadsheetSkeleton } from './sheet-skeleton';
@@ -21,7 +21,7 @@ export declare class SpreadsheetRowHeader extends SpreadsheetHeader {
21
21
  private _rowHeaderLayoutExtension;
22
22
  constructor(oKey: string, spreadsheetSkeleton?: SpreadsheetSkeleton);
23
23
  get rowHeaderLayoutExtension(): RowHeaderLayout;
24
- draw(ctx: CanvasRenderingContext2D, bounds?: IBoundRect): void;
24
+ draw(ctx: CanvasRenderingContext2D, bounds?: IViewportBound): void;
25
25
  isHit(coord: Vector2): boolean;
26
26
  private _initialDefaultExtension;
27
27
  }
@@ -13,20 +13,20 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import type { Nullable } from '@univerjs/core';
17
- import type { IBoundRect, Vector2 } from '../../basics/vector2';
16
+ import type { IRange, Nullable } from '@univerjs/core';
17
+ import type { IViewportBound, Vector2 } from '../../basics/vector2';
18
18
  import { RenderComponent } from '../component';
19
19
  import type { SHEET_EXTENSION_TYPE } from './extensions/sheet-extension';
20
20
  import type { SpreadsheetSkeleton } from './sheet-skeleton';
21
- export declare class SheetComponent extends RenderComponent<SpreadsheetSkeleton, SHEET_EXTENSION_TYPE> {
21
+ export declare class SheetComponent extends RenderComponent<SpreadsheetSkeleton, SHEET_EXTENSION_TYPE, IRange[]> {
22
22
  private _skeleton?;
23
23
  constructor(oKey: string, _skeleton?: SpreadsheetSkeleton | undefined);
24
24
  getSkeleton(): SpreadsheetSkeleton | undefined;
25
25
  updateSkeleton(spreadsheetSkeleton: SpreadsheetSkeleton): void;
26
- render(mainCtx: CanvasRenderingContext2D, bounds?: IBoundRect): this | undefined;
26
+ render(mainCtx: CanvasRenderingContext2D, bounds?: IViewportBound): this | undefined;
27
27
  getParentScale(): {
28
- scaleX: any;
29
- scaleY: any;
28
+ scaleX: number;
29
+ scaleY: number;
30
30
  };
31
31
  getDocuments(): any;
32
32
  getNoMergeCellPositionByIndex(rowIndex: number, columnIndex: number): Nullable<{
@@ -45,8 +45,8 @@ export declare class SheetComponent extends RenderComponent<SpreadsheetSkeleton,
45
45
  endRow: number;
46
46
  endColumn: number;
47
47
  }>;
48
- protected _draw(ctx: CanvasRenderingContext2D, bounds?: IBoundRect): void;
48
+ protected _draw(ctx: CanvasRenderingContext2D, bounds?: IViewportBound): void;
49
49
  }
50
50
  export declare class SpreadsheetHeader extends SheetComponent {
51
- protected _draw(ctx: CanvasRenderingContext2D, bounds?: IBoundRect): void;
51
+ protected _draw(ctx: CanvasRenderingContext2D, bounds?: IViewportBound): void;
52
52
  }
@@ -15,7 +15,7 @@
15
15
  */
16
16
  import type { ICellData, IPaddingData, IRange, ISelectionCellWithCoord, ITextRotation, IWorksheetData, LocaleService, Nullable, Styles, Worksheet } from '@univerjs/core';
17
17
  import { BooleanNumber, DocumentDataModel, HorizontalAlign, ObjectMatrix, VerticalAlign, WrapStrategy } from '@univerjs/core';
18
- import type { IBoundRect } from '../../basics/vector2';
18
+ import type { IBoundRectNoAngle, IViewportBound } from '../../basics/vector2';
19
19
  import { DocumentSkeleton } from '../docs/doc-skeleton';
20
20
  import { Skeleton } from '../skeleton';
21
21
  import type { IStylesCache } from './interfaces';
@@ -68,7 +68,7 @@ export declare class SpreadsheetSkeleton extends Skeleton {
68
68
  private _showGridlines;
69
69
  private _marginTop;
70
70
  private _marginLeft;
71
- constructor(_worksheet: Worksheet | undefined, _config: IWorksheetData, _cellData: ObjectMatrix<ICellData>, _styles: Styles, _localeService: LocaleService);
71
+ constructor(_worksheet: Worksheet | undefined, _config: IWorksheetData, _cellData: ObjectMatrix<Nullable<ICellData>>, _styles: Styles, _localeService: LocaleService);
72
72
  get rowHeightAccumulation(): number[];
73
73
  get rowTotalHeight(): number;
74
74
  get columnWidthAccumulation(): number[];
@@ -91,7 +91,7 @@ export declare class SpreadsheetSkeleton extends Skeleton {
91
91
  * @param LocaleService
92
92
  * @returns
93
93
  */
94
- static create(worksheet: Worksheet | undefined, config: IWorksheetData, cellData: ObjectMatrix<ICellData>, styles: Styles, LocaleService: LocaleService): SpreadsheetSkeleton;
94
+ static create(worksheet: Worksheet | undefined, config: IWorksheetData, cellData: ObjectMatrix<Nullable<ICellData>>, styles: Styles, LocaleService: LocaleService): SpreadsheetSkeleton;
95
95
  /**
96
96
  * @deprecated should never expose a property that is provided by another module!
97
97
  * @returns
@@ -101,7 +101,7 @@ export declare class SpreadsheetSkeleton extends Skeleton {
101
101
  * @deprecated should never expose a property that is provided by another module!
102
102
  * @returns
103
103
  */
104
- getCellData(): ObjectMatrix<ICellData>;
104
+ getCellData(): ObjectMatrix<Nullable<ICellData>>;
105
105
  /**
106
106
  * @deprecated should never expose a property that is provided by another module!
107
107
  * @returns
@@ -110,13 +110,19 @@ export declare class SpreadsheetSkeleton extends Skeleton {
110
110
  setOverflowCache(value: ObjectMatrix<IRange>): void;
111
111
  setMarginLeft(left: number): void;
112
112
  setMarginTop(top: number): void;
113
- calculateSegment(bounds?: IBoundRect): true | undefined;
114
- calculateWithoutClearingCache(bounds?: IBoundRect): this | undefined;
115
- calculate(bounds?: IBoundRect): this;
113
+ calculateSegment(bounds?: IViewportBound): true | undefined;
114
+ calculateWithoutClearingCache(bounds?: IViewportBound): this | undefined;
115
+ calculate(bounds?: IViewportBound): this;
116
116
  calculateAutoHeightInRange(ranges: Nullable<IRange[]>): IRowAutoHeightInfo[];
117
117
  private _calculateRowAutoHeight;
118
118
  updateLayout(): this | undefined;
119
- getRowColumnSegment(bounds?: IBoundRect): {
119
+ getRowColumnSegment(bounds?: IViewportBound): {
120
+ startRow: number;
121
+ endRow: number;
122
+ startColumn: number;
123
+ endColumn: number;
124
+ };
125
+ getRowColumnSegmentByViewBound(bound?: IBoundRectNoAngle): {
120
126
  startRow: number;
121
127
  endRow: number;
122
128
  startColumn: number;
@@ -228,7 +234,19 @@ export declare class SpreadsheetSkeleton extends Skeleton {
228
234
  endX: number;
229
235
  isMerged: boolean;
230
236
  isMergedMainCell: boolean;
231
- mergeInfo: import("@univerjs/core").IRangeWithCoord;
237
+ mergeInfo: {
238
+ startX: number;
239
+ startY: number;
240
+ endX: number;
241
+ endY: number;
242
+ startColumn: number;
243
+ endColumn: number;
244
+ rangeType?: import("@univerjs/core").RANGE_TYPE | undefined;
245
+ startAbsoluteRefType?: import("@univerjs/core").AbsoluteRefType | undefined;
246
+ endAbsoluteRefType?: import("@univerjs/core").AbsoluteRefType | undefined;
247
+ startRow: number;
248
+ endRow: number;
249
+ };
232
250
  };
233
251
  convertTransformToOffsetX(offsetX: number, scaleX: number, scrollXY: {
234
252
  x: number;
@@ -260,7 +278,7 @@ export declare class SpreadsheetSkeleton extends Skeleton {
260
278
  * @param bounds The range of the visible area of the canvas
261
279
  * @returns The range cell index of the canvas visible area
262
280
  */
263
- protected _getBounding(rowHeightAccumulation: number[], columnWidthAccumulation: number[], bounds?: IBoundRect): {
281
+ protected _getBounding(rowHeightAccumulation: number[], columnWidthAccumulation: number[], viewBound?: IBoundRectNoAngle): {
264
282
  startRow: number;
265
283
  endRow: number;
266
284
  startColumn: number;
@@ -13,34 +13,31 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import type { IBoundRect } from '../../basics/vector2';
17
- import { Vector2 } from '../../basics/vector2';
16
+ import type { IViewportBound, Vector2 } from '../../basics/vector2';
18
17
  import { Documents } from '../docs/document';
19
18
  import type { Background } from './extensions/background';
20
19
  import type { Border } from './extensions/border';
21
- import type { BorderAuxiliary } from './extensions/border-auxiliary';
22
20
  import type { Font } from './extensions/font';
23
21
  import { SheetComponent } from './sheet-component';
24
22
  import type { SpreadsheetSkeleton } from './sheet-skeleton';
25
23
  export declare class Spreadsheet extends SheetComponent {
26
24
  private _allowCache;
27
- private _borderAuxiliaryExtension;
28
25
  private _backgroundExtension;
29
26
  private _borderExtension;
30
27
  private _fontExtension;
31
28
  private _cacheCanvas;
32
- private _boundsCache;
33
- private _cacheOffsetX;
34
- private _cacheOffsetY;
35
- private _hasSelection;
29
+ private _refreshIncrementalState;
30
+ private _forceDirty;
31
+ private _overflowCacheRuntime;
32
+ private _overflowCacheRuntimeRange;
33
+ private _overflowCacheRuntimeTimeout;
36
34
  private _documents;
37
35
  constructor(oKey: string, spreadsheetSkeleton?: SpreadsheetSkeleton, _allowCache?: boolean);
38
- get borderAuxiliaryExtension(): BorderAuxiliary;
39
36
  get backgroundExtension(): Background;
40
37
  get borderExtension(): Border;
41
38
  get fontExtension(): Font;
42
39
  getDocuments(): Documents;
43
- draw(ctx: CanvasRenderingContext2D, bounds?: IBoundRect): void;
40
+ draw(ctx: CanvasRenderingContext2D, bounds?: IViewportBound): void;
44
41
  isHit(coord: Vector2): boolean;
45
42
  getNoMergeCellPositionByIndex(rowIndex: number, columnIndex: number): {
46
43
  startY: number;
@@ -52,21 +49,17 @@ export declare class Spreadsheet extends SheetComponent {
52
49
  x: number;
53
50
  y: number;
54
51
  };
55
- getAncestorScrollXY(offsetX: number, offsetY: number): {
56
- x: number;
57
- y: number;
58
- };
52
+ makeForceDirty(state?: boolean): void;
59
53
  getSelectionBounding(startRow: number, startColumn: number, endRow: number, endColumn: number): {
60
54
  startRow: number;
61
55
  startColumn: number;
62
56
  endRow: number;
63
57
  endColumn: number;
64
58
  } | undefined;
65
- render(mainCtx: CanvasRenderingContext2D, bounds?: IBoundRect): this;
66
- resizeCacheCanvas(): void;
67
- private _checkNewBounds;
68
- protected _applyCache(ctx?: CanvasRenderingContext2D): void;
69
- protected _draw(ctx: CanvasRenderingContext2D, bounds?: IBoundRect): void;
59
+ render(mainCtx: CanvasRenderingContext2D, bounds?: IViewportBound): this | undefined;
60
+ private _resizeCacheCanvas;
61
+ protected _applyCache(ctx?: CanvasRenderingContext2D, sx?: number, sy?: number, sw?: number, sh?: number, dx?: number, dy?: number, dw?: number, dh?: number): void;
62
+ protected _draw(ctx: CanvasRenderingContext2D, bounds?: IViewportBound): void;
70
63
  private _getAncestorSize;
71
64
  private _getAncestorParent;
72
65
  private _initialDefaultExtension;
@@ -79,6 +72,10 @@ export declare class Spreadsheet extends SheetComponent {
79
72
  * Overflow on the left or right is aligned according to the text's horizontal alignment.
80
73
  */
81
74
  private _calculateOverflow;
82
- private _differentBounds;
83
- private _checkSheetDifferentBounds;
75
+ private _drawAuxiliary;
76
+ /**
77
+ * Clear the guide lines within a range in the table, to make room for merged cells and overflow.
78
+ */
79
+ private _clearRectangle;
80
+ private _clearBackground;
84
81
  }
@@ -14,7 +14,7 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  import { BaseObject } from '../base-object';
17
- import type { IBoundRect, Vector2 } from '../basics/vector2';
17
+ import type { IViewportBound, Vector2 } from '../basics/vector2';
18
18
  export declare class CustomObject extends BaseObject {
19
19
  private _render;
20
20
  private _isHitCustom?;
@@ -22,6 +22,6 @@ export declare class CustomObject extends BaseObject {
22
22
  toJson(): {
23
23
  [x: string]: any;
24
24
  };
25
- render(mainCtx: CanvasRenderingContext2D, bounds?: IBoundRect): this;
25
+ render(mainCtx: CanvasRenderingContext2D, bounds?: IViewportBound): this;
26
26
  isHit(coord: Vector2): boolean;
27
27
  }
@@ -49,8 +49,8 @@ export declare class Engine extends ThinEngine<Scene> {
49
49
  private _pointerLeaveEvent;
50
50
  /** previous pointer position */
51
51
  private pointer;
52
- private __mouseId;
53
- private __isUsingFirefox;
52
+ private _mouseId;
53
+ private _isUsingFirefox;
54
54
  constructor(elemWidth?: number, elemHeight?: number);
55
55
  get width(): number;
56
56
  get height(): number;
@@ -106,5 +106,5 @@ export declare class Engine extends ThinEngine<Scene> {
106
106
  private _handlePointerAction;
107
107
  private _getWheelEventName;
108
108
  private _getPassive;
109
- private __getPointerType;
109
+ private _getPointerType;
110
110
  }
@@ -16,7 +16,7 @@
16
16
  import { BaseObject } from './base-object';
17
17
  import type { CURSOR_TYPE } from './basics/const';
18
18
  import { RENDER_CLASS_TYPE } from './basics/const';
19
- import type { IBoundRect, Vector2 } from './basics/vector2';
19
+ import type { IViewportBound, Vector2 } from './basics/vector2';
20
20
  export declare class Group extends BaseObject {
21
21
  private _objects;
22
22
  constructor(key?: string, ...objects: BaseObject[]);
@@ -27,7 +27,7 @@ export declare class Group extends BaseObject {
27
27
  removeObject(object: BaseObject | string): void;
28
28
  getObjectsByOrder(): BaseObject[];
29
29
  getObjects(): BaseObject[];
30
- render(ctx: CanvasRenderingContext2D, bounds?: IBoundRect): void;
30
+ render(ctx: CanvasRenderingContext2D, bounds?: IViewportBound): void;
31
31
  resize(width?: number | string, height?: number | string): this;
32
32
  scale(scaleX?: number, scaleY?: number): this;
33
33
  skew(skewX?: number, skewY?: number): this;
@@ -18,11 +18,16 @@ import type { ThinScene } from './thin-scene';
18
18
  export declare class Layer {
19
19
  private _scene;
20
20
  private _zIndex;
21
+ private _allowCache;
21
22
  private _objects;
22
- constructor(_scene: ThinScene, objects?: BaseObject[], _zIndex?: number);
23
+ private _cacheCanvas;
24
+ protected _dirty: boolean;
25
+ constructor(_scene: ThinScene, objects?: BaseObject[], _zIndex?: number, _allowCache?: boolean);
23
26
  get scene(): ThinScene;
24
27
  get zIndex(): number;
25
- static create(scene: ThinScene, objects?: BaseObject[], zIndex?: number): Layer;
28
+ enableCache(): void;
29
+ disableCache(): void;
30
+ isAllowCache(): boolean;
26
31
  getObjectsByOrder(): BaseObject[];
27
32
  getObjectsByOrderForPick(): BaseObject[];
28
33
  getObjects(): BaseObject[];
@@ -30,6 +35,13 @@ export declare class Layer {
30
35
  removeObject(object: BaseObject | string): void;
31
36
  addObjects(objects: BaseObject[]): this;
32
37
  removeObjects(objects: BaseObject[] | string[]): void;
38
+ makeDirty(state?: boolean): this;
39
+ isDirty(): boolean;
40
+ render(parentCtx?: CanvasRenderingContext2D, isMaxLayer?: boolean): this;
41
+ private _initialCacheCanvas;
42
+ private _draw;
43
+ private _applyCache;
44
+ private _resizeCacheCanvas;
33
45
  clear(): void;
34
46
  dispose(): void;
35
47
  }
@@ -17,7 +17,7 @@ import type { Nullable } from '@univerjs/core';
17
17
  import { BaseObject } from './base-object';
18
18
  import { RENDER_CLASS_TYPE } from './basics/const';
19
19
  import type { IObjectFullState } from './basics/interfaces';
20
- import type { IBoundRect, Vector2 } from './basics/vector2';
20
+ import type { IViewportBound, Vector2 } from './basics/vector2';
21
21
  import type { ThinScene } from './thin-scene';
22
22
  export declare class SceneViewer extends BaseObject {
23
23
  private _subScenes;
@@ -25,7 +25,7 @@ export declare class SceneViewer extends BaseObject {
25
25
  private _allowSelectedClipElement;
26
26
  constructor(key?: string, props?: IObjectFullState);
27
27
  get classType(): RENDER_CLASS_TYPE;
28
- render(mainCtx: CanvasRenderingContext2D, bounds?: IBoundRect): this;
28
+ render(mainCtx: CanvasRenderingContext2D, bounds?: IViewportBound): this;
29
29
  getSubScenes(): Map<string, ThinScene>;
30
30
  getActiveSubScene(): Nullable<ThinScene>;
31
31
  getSubScene(sceneKey: string): ThinScene | undefined;
@@ -18,7 +18,6 @@ import type { BaseObject } from './base-object';
18
18
  import { CURSOR_TYPE } from './basics/const';
19
19
  import type { IKeyboardEvent, IMouseEvent, IPointerEvent, IWheelEvent } from './basics/i-events';
20
20
  import type { ISceneTransformState } from './basics/interfaces';
21
- import type { IBoundRect } from './basics/vector2';
22
21
  import { Vector2 } from './basics/vector2';
23
22
  import { Layer } from './layer';
24
23
  import type { ITransformerConfig } from './scene.-transformer';
@@ -31,8 +30,6 @@ export declare class Scene extends ThinScene {
31
30
  private _parent;
32
31
  private _layers;
33
32
  private _viewports;
34
- private _isFirstDirty;
35
- private _maxZIndex;
36
33
  private _cursor;
37
34
  private _defaultCursor;
38
35
  private _addObject$;
@@ -54,7 +51,10 @@ export declare class Scene extends ThinScene {
54
51
  detachControl(): this;
55
52
  makeDirty(state?: boolean): this;
56
53
  makeDirtyNoParent(state?: boolean): this;
54
+ enableLayerCache(...layerIndexes: number[]): void;
55
+ disableLayerCache(...layerIndexes: number[]): void;
57
56
  isDirty(): boolean;
57
+ getCursor(): CURSOR_TYPE;
58
58
  resetCursor(): void;
59
59
  setCursor(val: CURSOR_TYPE): void;
60
60
  setDefaultCursor(val: CURSOR_TYPE): void;
@@ -89,7 +89,6 @@ export declare class Scene extends ThinScene {
89
89
  getViewports(): Viewport[];
90
90
  getViewport(key: string): Viewport | undefined;
91
91
  changeObjectOrder(): void;
92
- renderObjects(ctx: CanvasRenderingContext2D, bounds?: IBoundRect): this;
93
92
  render(parentCtx?: CanvasRenderingContext2D): void;
94
93
  requestRender(parentCtx?: CanvasRenderingContext2D): Promise<unknown>;
95
94
  openTransformer(config?: ITransformerConfig): void;
@@ -15,7 +15,7 @@
15
15
  */
16
16
  import type { IDocumentData, IStyleBase, ITransformState, LocaleService } from '@univerjs/core';
17
17
  import { BaseObject } from '../base-object';
18
- import type { IBoundRect } from '../basics/vector2';
18
+ import type { IViewportBound } from '../basics/vector2';
19
19
  export interface IRichTextProps extends ITransformState, IStyleBase {
20
20
  text?: string;
21
21
  richText?: IDocumentData;
@@ -27,8 +27,6 @@ export declare const RICHTEXT_OBJECT_ARRAY: string[];
27
27
  export declare class RichText extends BaseObject {
28
28
  private _localeService;
29
29
  private _documentData;
30
- private _allowCache;
31
- private _cacheCanvas;
32
30
  private _documentSkeleton;
33
31
  private _documents;
34
32
  private _ff?;
@@ -48,12 +46,11 @@ export declare class RichText extends BaseObject {
48
46
  height: number;
49
47
  } | undefined;
50
48
  setProps(props?: IRichTextProps): this | undefined;
51
- render(mainCtx: CanvasRenderingContext2D, bounds?: IBoundRect): this;
49
+ render(mainCtx: CanvasRenderingContext2D, bounds?: IViewportBound): this;
52
50
  toJson(): {
53
51
  [x: string]: any;
54
52
  };
55
53
  protected _draw(ctx: CanvasRenderingContext2D): void;
56
54
  private _convertToDocumentData;
57
55
  private _initialProps;
58
- private _applyCache;
59
56
  }
@@ -16,8 +16,7 @@
16
16
  import type { IScale, Nullable } from '@univerjs/core';
17
17
  import { BaseObject } from '../base-object';
18
18
  import type { IObjectFullState } from '../basics/interfaces';
19
- import type { IBoundRect, Vector2 } from '../basics/vector2';
20
- import { Canvas } from '../canvas';
19
+ import type { IViewportBound, Vector2 } from '../basics/vector2';
21
20
  export type LineJoin = 'round' | 'bevel' | 'miter';
22
21
  export type LineCap = 'butt' | 'round' | 'square';
23
22
  export type PaintFirst = 'fill' | 'stroke';
@@ -28,7 +27,6 @@ export interface IShapeProps extends IObjectFullState {
28
27
  globalCompositeOperation?: string;
29
28
  evented?: boolean;
30
29
  visible?: boolean;
31
- allowCache?: boolean;
32
30
  paintFirst?: PaintFirst;
33
31
  stroke?: Nullable<string | CanvasGradient>;
34
32
  strokeScaleEnabled?: boolean;
@@ -53,12 +51,10 @@ export interface IShapeProps extends IObjectFullState {
53
51
  }
54
52
  export declare const SHAPE_OBJECT_ARRAY: string[];
55
53
  export declare abstract class Shape<T> extends BaseObject {
56
- protected _cacheCanvas: Nullable<Canvas>;
57
54
  private _hoverCursor;
58
55
  private _moveCursor;
59
56
  private _fillRule;
60
57
  private _globalCompositeOperation;
61
- private _allowCache;
62
58
  private _paintFirst;
63
59
  private _stroke;
64
60
  private _strokeScaleEnabled;
@@ -84,7 +80,6 @@ export declare abstract class Shape<T> extends BaseObject {
84
80
  get moveCursor(): string | null;
85
81
  get fillRule(): string;
86
82
  get globalCompositeOperation(): string;
87
- get allowCache(): boolean;
88
83
  get paintFirst(): PaintFirst;
89
84
  get stroke(): Nullable<string | CanvasGradient>;
90
85
  get strokeScaleEnabled(): boolean;
@@ -121,14 +116,11 @@ export declare abstract class Shape<T> extends BaseObject {
121
116
  private static __setFillStyles;
122
117
  private static __setStrokeStyles;
123
118
  private static __setLineDash;
124
- render(mainCtx: CanvasRenderingContext2D, bounds?: IBoundRect): this;
119
+ render(mainCtx: CanvasRenderingContext2D, bounds?: IViewportBound): this;
125
120
  setProps(props?: T): this | undefined;
126
- resizeCacheCanvas(): void;
127
- scaleCacheCanvas(): void;
128
121
  toJson(): {
129
122
  [x: string]: any;
130
123
  };
131
- protected _applyCache(ctx?: CanvasRenderingContext2D): void;
132
124
  protected _draw(ctx: CanvasRenderingContext2D): void;
133
125
  private _initialProps;
134
126
  }
@@ -21,7 +21,7 @@ import { RENDER_CLASS_TYPE } from './basics/const';
21
21
  import type { IKeyboardEvent, IMouseEvent, IPointerEvent, IWheelEvent } from './basics/i-events';
22
22
  import type { ITransformChangeState } from './basics/interfaces';
23
23
  import { Transform } from './basics/transform';
24
- import type { IBoundRect, Vector2 } from './basics/vector2';
24
+ import type { IViewportBound, Vector2 } from './basics/vector2';
25
25
  export declare abstract class ThinScene {
26
26
  onTransformChangeObservable: Observable<ITransformChangeState>;
27
27
  onPointerDownObserver: Observable<IMouseEvent | IPointerEvent>;
@@ -73,7 +73,7 @@ export declare abstract class ThinScene {
73
73
  triggerPointerLeave(evt: IPointerEvent | IMouseEvent): void;
74
74
  triggerPointerOver(evt: IPointerEvent | IMouseEvent): void;
75
75
  triggerPointerEnter(evt: IPointerEvent | IMouseEvent): void;
76
- renderObjects(ctx: CanvasRenderingContext2D, bounds?: IBoundRect): void;
76
+ renderObjects(ctx: CanvasRenderingContext2D, bounds?: IViewportBound): void;
77
77
  render(parentCtx?: CanvasRenderingContext2D): void;
78
78
  getParent(): any;
79
79
  dispose(): void;
@@ -84,7 +84,12 @@ export declare abstract class ThinScene {
84
84
  setObjectBehavior(o: BaseObject): void;
85
85
  applyTransformer(o: BaseObject): void;
86
86
  makeDirtyNoParent(state?: boolean): this;
87
+ makeDirty(state?: boolean): this;
87
88
  pick(coord: Vector2): Nullable<BaseObject | ThinScene>;
88
89
  getViewports(): any[];
89
90
  removeViewport(key: string): void;
91
+ getAncestorScale(): {
92
+ scaleX: number;
93
+ scaleY: number;
94
+ };
90
95
  }