@univerjs/engine-render 0.1.0-beta.1 → 0.1.0-beta.3

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 (63) hide show
  1. package/{LICENSE.txt → LICENSE} +0 -2
  2. package/lib/cjs/index.js +4 -4
  3. package/lib/es/index.js +12704 -8240
  4. package/lib/types/base-object.d.ts +2 -1
  5. package/lib/types/basics/draw.d.ts +5 -4
  6. package/lib/types/basics/tools.d.ts +1 -2
  7. package/lib/types/canvas.d.ts +2 -1
  8. package/lib/types/components/component.d.ts +2 -1
  9. package/lib/types/components/docs/common/text-range.d.ts +4 -4
  10. package/lib/types/components/docs/doc-component.d.ts +3 -2
  11. package/lib/types/components/docs/document.d.ts +4 -3
  12. package/lib/types/components/docs/extensions/background.d.ts +2 -1
  13. package/lib/types/components/docs/extensions/border.d.ts +2 -1
  14. package/lib/types/components/docs/extensions/font-and-base-line.d.ts +2 -1
  15. package/lib/types/components/docs/extensions/line.d.ts +2 -2
  16. package/lib/types/components/docs/linebreak/__tests__/linebreak.spec.d.ts +16 -0
  17. package/lib/types/components/docs/linebreak/break.d.ts +20 -0
  18. package/lib/types/components/docs/linebreak/classes.d.ts +58 -0
  19. package/lib/types/components/docs/linebreak/extensions/tab-linebreak-extension.d.ts +17 -0
  20. package/lib/types/components/docs/linebreak/index.d.ts +16 -0
  21. package/lib/types/components/docs/linebreak/linebreaker.d.ts +41 -0
  22. package/lib/types/components/docs/linebreak/pairs.d.ts +21 -0
  23. package/lib/types/components/docs/linebreak/rule.d.ts +23 -0
  24. package/lib/types/components/docs/linebreak/swap.d.ts +16 -0
  25. package/lib/types/components/docs/linebreak/tiny-inflate.d.ts +31 -0
  26. package/lib/types/components/docs/linebreak/trie-data.d.ts +17 -0
  27. package/lib/types/components/docs/linebreak/unicode-trie.d.ts +22 -0
  28. package/lib/types/components/docs/text-selection-render-manager.d.ts +5 -3
  29. package/lib/types/components/extension.d.ts +2 -1
  30. package/lib/types/components/sheets/column-header.d.ts +2 -1
  31. package/lib/types/components/sheets/extensions/background.d.ts +2 -1
  32. package/lib/types/components/sheets/extensions/border.d.ts +2 -1
  33. package/lib/types/components/sheets/extensions/column-header-layout.d.ts +2 -1
  34. package/lib/types/components/sheets/extensions/font.d.ts +3 -2
  35. package/lib/types/components/sheets/extensions/row-header-layout.d.ts +2 -1
  36. package/lib/types/components/sheets/row-header.d.ts +2 -1
  37. package/lib/types/components/sheets/sheet-component.d.ts +4 -3
  38. package/lib/types/components/sheets/sheet-skeleton.d.ts +10 -4
  39. package/lib/types/components/sheets/spreadsheet.d.ts +5 -10
  40. package/lib/types/components/slides/slide.d.ts +2 -1
  41. package/lib/types/context.d.ts +284 -0
  42. package/lib/types/custom/custom-object.d.ts +3 -2
  43. package/lib/types/engine.d.ts +6 -0
  44. package/lib/types/group.d.ts +2 -1
  45. package/lib/types/index.d.ts +1 -0
  46. package/lib/types/layer.d.ts +2 -1
  47. package/lib/types/scene-viewer.d.ts +2 -1
  48. package/lib/types/scene.d.ts +7 -2
  49. package/lib/types/scroll-timer.d.ts +11 -5
  50. package/lib/types/shape/base-scroll-bar.d.ts +2 -1
  51. package/lib/types/shape/circle.d.ts +3 -2
  52. package/lib/types/shape/path.d.ts +4 -3
  53. package/lib/types/shape/picture.d.ts +3 -2
  54. package/lib/types/shape/rect.d.ts +3 -2
  55. package/lib/types/shape/regular-polygon.d.ts +3 -2
  56. package/lib/types/shape/rich-text.d.ts +3 -2
  57. package/lib/types/shape/scroll-bar.d.ts +2 -1
  58. package/lib/types/shape/shape.d.ts +12 -11
  59. package/lib/types/thin-engine.d.ts +1 -0
  60. package/lib/types/thin-scene.d.ts +8 -2
  61. package/lib/types/viewport.d.ts +2 -2
  62. package/lib/umd/index.js +4 -4
  63. package/package.json +26 -23
@@ -14,11 +14,12 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  import type { IRange, IScale } from '@univerjs/core';
17
+ import type { UniverRenderingContext } from '../../../context';
17
18
  import type { SpreadsheetSkeleton } from '../sheet-skeleton';
18
19
  import { SheetExtension } from './sheet-extension';
19
20
  export declare class Border extends SheetExtension {
20
21
  uKey: string;
21
22
  zIndex: number;
22
- draw(ctx: CanvasRenderingContext2D, parentScale: IScale, spreadsheetSkeleton: SpreadsheetSkeleton, diffRanges?: IRange[]): void;
23
+ draw(ctx: UniverRenderingContext, parentScale: IScale, spreadsheetSkeleton: SpreadsheetSkeleton, diffRanges?: IRange[]): void;
23
24
  private _getOverflowExclusion;
24
25
  }
@@ -14,10 +14,11 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  import type { IScale } from '@univerjs/core';
17
+ import type { UniverRenderingContext } from '../../../context';
17
18
  import type { SpreadsheetSkeleton } from '../sheet-skeleton';
18
19
  import { SheetExtension } from './sheet-extension';
19
20
  export declare class ColumnHeaderLayout extends SheetExtension {
20
21
  uKey: string;
21
22
  zIndex: number;
22
- draw(ctx: CanvasRenderingContext2D, parentScale: IScale, spreadsheetSkeleton: SpreadsheetSkeleton): void;
23
+ draw(ctx: UniverRenderingContext, parentScale: IScale, spreadsheetSkeleton: SpreadsheetSkeleton): void;
23
24
  }
@@ -15,7 +15,8 @@
15
15
  */
16
16
  import type { IColorStyle, IRange, IScale } from '@univerjs/core';
17
17
  import { ObjectMatrix } from '@univerjs/core';
18
- import type { SpreadsheetSkeleton } from '../sheet-skeleton';
18
+ import type { UniverRenderingContext } from '../../../context';
19
+ import { type SpreadsheetSkeleton } from '../sheet-skeleton';
19
20
  import { SheetExtension } from './sheet-extension';
20
21
  export declare class Font extends SheetExtension {
21
22
  uKey: string;
@@ -23,7 +24,7 @@ export declare class Font extends SheetExtension {
23
24
  changeFontColor: ObjectMatrix<IColorStyle>;
24
25
  getDocuments(): any;
25
26
  setChangeFontColor(r: number, c: number, color: IColorStyle): void;
26
- draw(ctx: CanvasRenderingContext2D, parentScale: IScale, spreadsheetSkeleton: SpreadsheetSkeleton, diffRanges?: IRange[]): void;
27
+ draw(ctx: UniverRenderingContext, parentScale: IScale, spreadsheetSkeleton: SpreadsheetSkeleton, diffRanges?: IRange[]): void;
27
28
  private _renderDocuments;
28
29
  private _clipRectangle;
29
30
  }
@@ -14,10 +14,11 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  import type { IScale } from '@univerjs/core';
17
+ import type { UniverRenderingContext } from '../../../context';
17
18
  import type { SpreadsheetSkeleton } from '../sheet-skeleton';
18
19
  import { SheetExtension } from './sheet-extension';
19
20
  export declare class RowHeaderLayout extends SheetExtension {
20
21
  uKey: string;
21
22
  zIndex: number;
22
- draw(ctx: CanvasRenderingContext2D, parentScale: IScale, spreadsheetSkeleton: SpreadsheetSkeleton): void;
23
+ draw(ctx: UniverRenderingContext, parentScale: IScale, spreadsheetSkeleton: SpreadsheetSkeleton): void;
23
24
  }
@@ -14,6 +14,7 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  import type { IViewportBound, Vector2 } from '../../basics/vector2';
17
+ import type { UniverRenderingContext } from '../../context';
17
18
  import type { RowHeaderLayout } from './extensions/row-header-layout';
18
19
  import { SpreadsheetHeader } from './sheet-component';
19
20
  import type { SpreadsheetSkeleton } from './sheet-skeleton';
@@ -21,7 +22,7 @@ export declare class SpreadsheetRowHeader extends SpreadsheetHeader {
21
22
  private _rowHeaderLayoutExtension;
22
23
  constructor(oKey: string, spreadsheetSkeleton?: SpreadsheetSkeleton);
23
24
  get rowHeaderLayoutExtension(): RowHeaderLayout;
24
- draw(ctx: CanvasRenderingContext2D, bounds?: IViewportBound): void;
25
+ draw(ctx: UniverRenderingContext, bounds?: IViewportBound): void;
25
26
  isHit(coord: Vector2): boolean;
26
27
  private _initialDefaultExtension;
27
28
  }
@@ -15,6 +15,7 @@
15
15
  */
16
16
  import type { IRange, Nullable } from '@univerjs/core';
17
17
  import type { IViewportBound, Vector2 } from '../../basics/vector2';
18
+ import type { UniverRenderingContext } from '../../context';
18
19
  import { RenderComponent } from '../component';
19
20
  import type { SHEET_EXTENSION_TYPE } from './extensions/sheet-extension';
20
21
  import type { SpreadsheetSkeleton } from './sheet-skeleton';
@@ -23,7 +24,7 @@ export declare class SheetComponent extends RenderComponent<SpreadsheetSkeleton,
23
24
  constructor(oKey: string, _skeleton?: SpreadsheetSkeleton | undefined);
24
25
  getSkeleton(): SpreadsheetSkeleton | undefined;
25
26
  updateSkeleton(spreadsheetSkeleton: SpreadsheetSkeleton): void;
26
- render(mainCtx: CanvasRenderingContext2D, bounds?: IViewportBound): this | undefined;
27
+ render(mainCtx: UniverRenderingContext, bounds?: IViewportBound): this | undefined;
27
28
  getParentScale(): {
28
29
  scaleX: number;
29
30
  scaleY: number;
@@ -45,8 +46,8 @@ export declare class SheetComponent extends RenderComponent<SpreadsheetSkeleton,
45
46
  endRow: number;
46
47
  endColumn: number;
47
48
  }>;
48
- protected _draw(ctx: CanvasRenderingContext2D, bounds?: IViewportBound): void;
49
+ protected _draw(ctx: UniverRenderingContext, bounds?: IViewportBound): void;
49
50
  }
50
51
  export declare class SpreadsheetHeader extends SheetComponent {
51
- protected _draw(ctx: CanvasRenderingContext2D, bounds?: IViewportBound): void;
52
+ protected _draw(ctx: UniverRenderingContext, bounds?: IViewportBound): void;
52
53
  }
@@ -144,13 +144,13 @@ export declare class SpreadsheetSkeleton extends Skeleton {
144
144
  startColumn: number;
145
145
  endColumn: number;
146
146
  };
147
- getNoMergeCellPositionByIndex(rowIndex: number, columnIndex: number, scaleX: number, scaleY: number): {
147
+ getNoMergeCellPositionByIndex(rowIndex: number, columnIndex: number): {
148
148
  startY: number;
149
149
  endY: number;
150
150
  startX: number;
151
151
  endX: number;
152
152
  };
153
- getNoMergeCellPositionByIndexWithNoHeader(rowIndex: number, columnIndex: number, scaleX: number, scaleY: number): {
153
+ getNoMergeCellPositionByIndexWithNoHeader(rowIndex: number, columnIndex: number): {
154
154
  startY: number;
155
155
  endY: number;
156
156
  startX: number;
@@ -224,8 +224,8 @@ export declare class SpreadsheetSkeleton extends Skeleton {
224
224
  * @param scaleX render scene scale x-axis, current Horizontal Scale, scene.getAncestorScale
225
225
  * @param scaleY render scene scale y-axis, current Vertical Scale, scene.getAncestorScale
226
226
  */
227
- getCellByIndex(row: number, column: number, scaleX: number, scaleY: number): ISelectionCellWithCoord;
228
- getCellByIndexWithNoHeader(row: number, column: number, scaleX: number, scaleY: number): {
227
+ getCellByIndex(row: number, column: number): ISelectionCellWithCoord;
228
+ getCellByIndexWithNoHeader(row: number, column: number): {
229
229
  actualRow: number;
230
230
  actualColumn: number;
231
231
  startY: number;
@@ -271,6 +271,12 @@ export declare class SpreadsheetSkeleton extends Skeleton {
271
271
  columnOffset: number;
272
272
  rowOffset: number;
273
273
  };
274
+ /**
275
+ * Calculate the overflow of cell text. If there is no value on either side of the cell,
276
+ * the text content of this cell can be drawn to both sides, not limited by the cell's width.
277
+ * Overflow on the left or right is aligned according to the text's horizontal alignment.
278
+ */
279
+ private _calculateOverflowCell;
274
280
  /**
275
281
  *
276
282
  * @param rowHeightAccumulation Row layout information
@@ -14,6 +14,7 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  import type { IViewportBound, Vector2 } from '../../basics/vector2';
17
+ import type { UniverRenderingContext } from '../../context';
17
18
  import { Documents } from '../docs/document';
18
19
  import type { Background } from './extensions/background';
19
20
  import type { Border } from './extensions/border';
@@ -37,7 +38,7 @@ export declare class Spreadsheet extends SheetComponent {
37
38
  get borderExtension(): Border;
38
39
  get fontExtension(): Font;
39
40
  getDocuments(): Documents;
40
- draw(ctx: CanvasRenderingContext2D, bounds?: IViewportBound): void;
41
+ draw(ctx: UniverRenderingContext, bounds?: IViewportBound): void;
41
42
  isHit(coord: Vector2): boolean;
42
43
  getNoMergeCellPositionByIndex(rowIndex: number, columnIndex: number): {
43
44
  startY: number;
@@ -56,22 +57,16 @@ export declare class Spreadsheet extends SheetComponent {
56
57
  endRow: number;
57
58
  endColumn: number;
58
59
  } | undefined;
59
- render(mainCtx: CanvasRenderingContext2D, bounds?: IViewportBound): this | undefined;
60
+ render(mainCtx: UniverRenderingContext, bounds?: IViewportBound): this | undefined;
60
61
  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;
62
+ protected _applyCache(ctx?: UniverRenderingContext, sx?: number, sy?: number, sw?: number, sh?: number, dx?: number, dy?: number, dw?: number, dh?: number): void;
63
+ protected _draw(ctx: UniverRenderingContext, bounds?: IViewportBound): void;
63
64
  private _getAncestorSize;
64
65
  private _getAncestorParent;
65
66
  private _initialDefaultExtension;
66
67
  private _addMakeDirtyToScroll;
67
68
  private _hasScrollViewportOperator;
68
69
  private _getHasScrollViewports;
69
- /**
70
- * Calculate the overflow of cell text. If there is no value on either side of the cell,
71
- * the text content of this cell can be drawn to both sides, not limited by the cell's width.
72
- * Overflow on the left or right is aligned according to the text's horizontal alignment.
73
- */
74
- private _calculateOverflow;
75
70
  private _drawAuxiliary;
76
71
  /**
77
72
  * Clear the guide lines within a range in the table, to make room for merged cells and overflow.
@@ -15,6 +15,7 @@
15
15
  */
16
16
  import type { Nullable } from '@univerjs/core';
17
17
  import { Observable } from '@univerjs/core';
18
+ import type { UniverRenderingContext } from '../../context';
18
19
  import type { Scene } from '../../scene';
19
20
  import { SceneViewer } from '../../scene-viewer';
20
21
  export declare enum SLIDE_NAVIGATION_KEY {
@@ -34,7 +35,7 @@ export declare class Slide extends SceneViewer {
34
35
  disableNav(): void;
35
36
  hiddenNav(): void;
36
37
  showNav(): void;
37
- renderToThumb(mainCtx: CanvasRenderingContext2D, pageId: string, scaleX?: number, scaleY?: number): void;
38
+ renderToThumb(mainCtx: UniverRenderingContext, pageId: string, scaleX?: number, scaleY?: number): void;
38
39
  private _getSubScenesIndex;
39
40
  private _addNavTrigger;
40
41
  private _getArrowColor;
@@ -0,0 +1,284 @@
1
+ /**
2
+ * Copyright 2023-present DreamNum Inc.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ export declare class UniverRenderingContext2D implements CanvasRenderingContext2D {
17
+ readonly canvas: HTMLCanvasElement;
18
+ _context: CanvasRenderingContext2D;
19
+ constructor(context: CanvasRenderingContext2D);
20
+ get globalAlpha(): number;
21
+ set globalAlpha(val: number);
22
+ get globalCompositeOperation(): GlobalCompositeOperation;
23
+ set globalCompositeOperation(val: GlobalCompositeOperation);
24
+ get fillStyle(): string | CanvasGradient | CanvasPattern;
25
+ set fillStyle(val: string | CanvasGradient | CanvasPattern);
26
+ get strokeStyle(): string | CanvasGradient | CanvasPattern;
27
+ set strokeStyle(val: string | CanvasGradient | CanvasPattern);
28
+ get filter(): string;
29
+ set filter(val: string);
30
+ get imageSmoothingEnabled(): boolean;
31
+ set imageSmoothingEnabled(val: boolean);
32
+ get imageSmoothingQuality(): ImageSmoothingQuality;
33
+ set imageSmoothingQuality(val: ImageSmoothingQuality);
34
+ get lineCap(): CanvasLineCap;
35
+ set lineCap(val: CanvasLineCap);
36
+ get lineDashOffset(): number;
37
+ set lineDashOffset(val: number);
38
+ get lineJoin(): CanvasLineJoin;
39
+ set lineJoin(val: CanvasLineJoin);
40
+ get lineWidth(): number;
41
+ set lineWidth(val: number);
42
+ get miterLimit(): number;
43
+ set miterLimit(val: number);
44
+ get shadowBlur(): number;
45
+ set shadowBlur(val: number);
46
+ get shadowColor(): string;
47
+ set shadowColor(val: string);
48
+ get shadowOffsetX(): number;
49
+ set shadowOffsetX(val: number);
50
+ get shadowOffsetY(): number;
51
+ set shadowOffsetY(val: number);
52
+ get direction(): CanvasDirection;
53
+ set direction(val: CanvasDirection);
54
+ get font(): string;
55
+ set font(val: string);
56
+ get fontKerning(): CanvasFontKerning;
57
+ set fontKerning(val: CanvasFontKerning);
58
+ get textAlign(): CanvasTextAlign;
59
+ set textAlign(val: CanvasTextAlign);
60
+ get textBaseline(): CanvasTextBaseline;
61
+ set textBaseline(val: CanvasTextBaseline);
62
+ private _getScale;
63
+ getContextAttributes(): CanvasRenderingContext2DSettings;
64
+ isPointInStroke(x: number, y: number): boolean;
65
+ isPointInStroke(path: Path2D, x: number, y: number): boolean;
66
+ createConicGradient(startAngle: number, x: number, y: number): CanvasGradient;
67
+ roundRect(x: number, y: number, w: number, h: number, radii?: number | DOMPointInit | Array<number | DOMPointInit>): void;
68
+ getTransform(): DOMMatrix;
69
+ resetTransform(): void;
70
+ drawFocusIfNeeded(element: Element): void;
71
+ drawFocusIfNeeded(path: Path2D, element: Element): void;
72
+ /**
73
+ * reset canvas context transform
74
+ * @method
75
+ */
76
+ reset(): void;
77
+ /**
78
+ * arc function.
79
+ * @method
80
+ */
81
+ arc(x: number, y: number, radius: number, startAngle: number, endAngle: number, counterClockwise?: boolean): void;
82
+ /**
83
+ * arcTo function.
84
+ * @method
85
+ *
86
+ */
87
+ arcTo(x1: number, y1: number, x2: number, y2: number, radius: number): void;
88
+ /**
89
+ * beginPath function.
90
+ * @method
91
+ */
92
+ beginPath(): void;
93
+ /**
94
+ * bezierCurveTo function.
95
+ * @method
96
+ */
97
+ bezierCurveTo(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number): void;
98
+ /**
99
+ * clearRect function.
100
+ * @method
101
+ */
102
+ clearRect(x: number, y: number, width: number, height: number): void;
103
+ /**
104
+ * clip function.
105
+ * @method
106
+ */
107
+ clip(): void;
108
+ clip(path: Path2D): void;
109
+ clip(fillRule?: CanvasFillRule): void;
110
+ clip(path: Path2D, fillRule?: CanvasFillRule): void;
111
+ /**
112
+ * closePath function.
113
+ * @method
114
+ */
115
+ closePath(): void;
116
+ /**
117
+ * createImageData function.
118
+ * @method
119
+ */
120
+ createImageData(width: number, height: number, settings?: ImageDataSettings): ImageData;
121
+ createImageData(imagedata: ImageData): ImageData;
122
+ /**
123
+ * createLinearGradient function.
124
+ * @method
125
+ */
126
+ createLinearGradient(x0: number, y0: number, x1: number, y1: number): CanvasGradient;
127
+ /**
128
+ * createPattern function.
129
+ * @method
130
+ */
131
+ createPattern(image: CanvasImageSource, repetition: string | null): CanvasPattern | null;
132
+ /**
133
+ * createRadialGradient function.
134
+ * @method
135
+ */
136
+ createRadialGradient(x0: number, y0: number, r0: number, x1: number, y1: number, r1: number): CanvasGradient;
137
+ /**
138
+ * drawImage function.
139
+ * @method
140
+ */
141
+ drawImage(image: CanvasImageSource, sx: number, sy: number, sWidth?: number, sHeight?: number, dx?: number, dy?: number, dWidth?: number, dHeight?: number): void;
142
+ /**
143
+ * ellipse function.
144
+ * @method
145
+ */
146
+ ellipse(x: number, y: number, radiusX: number, radiusY: number, rotation: number, startAngle: number, endAngle: number, counterclockwise?: boolean): void;
147
+ /**
148
+ * isPointInPath function.
149
+ * @method
150
+ */
151
+ isPointInPath(x: number, y: number, fillRule?: CanvasFillRule): boolean;
152
+ isPointInPath(path: Path2D, x: number, y: number, fillRule?: CanvasFillRule): boolean;
153
+ /**
154
+ * fill function.
155
+ * @method
156
+ */
157
+ fill(fillRule?: CanvasFillRule): void;
158
+ fill(path: Path2D, fillRule?: CanvasFillRule): void;
159
+ /**
160
+ * fillRect function.
161
+ * @method
162
+ */
163
+ fillRect(x: number, y: number, width: number, height: number): void;
164
+ /**
165
+ * strokeRect function.
166
+ * @method
167
+ */
168
+ strokeRect(x: number, y: number, width: number, height: number): void;
169
+ /**
170
+ * fillText function.
171
+ * @method
172
+ */
173
+ fillText(text: string, x: number, y: number, maxWidth?: number): void;
174
+ /**
175
+ * fillText function.
176
+ * @method
177
+ */
178
+ fillTextPrecision(text: string, x: number, y: number, maxWidth?: number): void;
179
+ /**
180
+ * measureText function.
181
+ * @method
182
+ */
183
+ measureText(text: string): TextMetrics;
184
+ /**
185
+ * getImageData function.
186
+ * @method
187
+ */
188
+ getImageData(sx: number, sy: number, sw: number, sh: number): ImageData;
189
+ /**
190
+ * lineTo function.
191
+ * @method
192
+ */
193
+ lineTo(x: number, y: number): void;
194
+ /**
195
+ * moveTo function.
196
+ * @method
197
+ */
198
+ moveTo(x: number, y: number): void;
199
+ /**
200
+ * rect function.
201
+ * @method
202
+ */
203
+ rect(x: number, y: number, width: number, height: number): void;
204
+ /**
205
+ * putImageData function.
206
+ * @method
207
+ */
208
+ putImageData(imageData: ImageData, dx: number, dy: number): void;
209
+ /**
210
+ * quadraticCurveTo function.
211
+ * @method
212
+ */
213
+ quadraticCurveTo(cpx: number, cpy: number, x: number, y: number): void;
214
+ /**
215
+ * restore function.
216
+ * @method
217
+ */
218
+ restore(): void;
219
+ /**
220
+ * rotate function.
221
+ * @method
222
+ */
223
+ rotate(angle: number): void;
224
+ /**
225
+ * save function.
226
+ * @method
227
+ */
228
+ save(): void;
229
+ /**
230
+ * scale function.
231
+ * @method
232
+ */
233
+ scale(x: number, y: number): void;
234
+ /**
235
+ * setLineDash function.
236
+ * @method
237
+ */
238
+ setLineDash(segments: number[]): void;
239
+ /**
240
+ * getLineDash function.
241
+ * @method
242
+ */
243
+ getLineDash(): number[];
244
+ /**
245
+ * setTransform function.
246
+ * @method
247
+ */
248
+ setTransform(transform?: DOMMatrix2DInit): void;
249
+ setTransform(a: number, b: number, c: number, d: number, e: number, f: number): void;
250
+ /**
251
+ * stroke function.
252
+ * @method
253
+ */
254
+ stroke(path2d?: Path2D): void;
255
+ /**
256
+ * strokeText function.
257
+ * @method
258
+ */
259
+ strokeText(text: string, x: number, y: number, maxWidth?: number): void;
260
+ /**
261
+ * transform function.
262
+ * @method
263
+ */
264
+ transform(a: number, b: number, c: number, d: number, e: number, f: number): void;
265
+ /**
266
+ * translate function.
267
+ * @method
268
+ */
269
+ translate(x: number, y: number): void;
270
+ translateWithPrecision(x: number, y: number): void;
271
+ translateWithPrecisionRatio(x: number, y: number): void;
272
+ }
273
+ /**
274
+ * TODO
275
+ */
276
+ export declare class UniverRenderingContextWebGL {
277
+ }
278
+ /**
279
+ * TODO
280
+ */
281
+ export declare class UniverRenderingContextWebGPU {
282
+ }
283
+ export declare class UniverRenderingContext extends UniverRenderingContext2D {
284
+ }
@@ -15,13 +15,14 @@
15
15
  */
16
16
  import { BaseObject } from '../base-object';
17
17
  import type { IViewportBound, Vector2 } from '../basics/vector2';
18
+ import type { UniverRenderingContext } from '../context';
18
19
  export declare class CustomObject extends BaseObject {
19
20
  private _render;
20
21
  private _isHitCustom?;
21
- constructor(key?: string, _render?: (mainCtx: CanvasRenderingContext2D) => void, _isHitCustom?: ((coord: Vector2) => boolean) | undefined);
22
+ constructor(key?: string, _render?: (mainCtx: UniverRenderingContext) => void, _isHitCustom?: ((coord: Vector2) => boolean) | undefined);
22
23
  toJson(): {
23
24
  [x: string]: any;
24
25
  };
25
- render(mainCtx: CanvasRenderingContext2D, bounds?: IViewportBound): this;
26
+ render(mainCtx: UniverRenderingContext, bounds?: IViewportBound): this;
26
27
  isHit(coord: Vector2): boolean;
27
28
  }
@@ -47,6 +47,7 @@ export declare class Engine extends ThinEngine<Scene> {
47
47
  private _pointerWheelEvent;
48
48
  private _pointerEnterEvent;
49
49
  private _pointerLeaveEvent;
50
+ private _remainCapture;
50
51
  /** previous pointer position */
51
52
  private pointer;
52
53
  private _mouseId;
@@ -63,6 +64,11 @@ export declare class Engine extends ThinEngine<Scene> {
63
64
  clearCanvas(): void;
64
65
  getCanvas(): Canvas;
65
66
  getCanvasElement(): HTMLCanvasElement;
67
+ /**
68
+ * To ensure mouse events remain bound to the host element,
69
+ * preventing the events from becoming ineffective once the mouse leaves the host.
70
+ */
71
+ setRemainCapture(): void;
66
72
  getPixelRatio(): number;
67
73
  setContainer(elem: HTMLElement): void;
68
74
  resize(): void;
@@ -17,6 +17,7 @@ import { BaseObject } from './base-object';
17
17
  import type { CURSOR_TYPE } from './basics/const';
18
18
  import { RENDER_CLASS_TYPE } from './basics/const';
19
19
  import type { IViewportBound, Vector2 } from './basics/vector2';
20
+ import type { UniverRenderingContext } from './context';
20
21
  export declare class Group extends BaseObject {
21
22
  private _objects;
22
23
  constructor(key?: string, ...objects: BaseObject[]);
@@ -27,7 +28,7 @@ export declare class Group extends BaseObject {
27
28
  removeObject(object: BaseObject | string): void;
28
29
  getObjectsByOrder(): BaseObject[];
29
30
  getObjects(): BaseObject[];
30
- render(ctx: CanvasRenderingContext2D, bounds?: IViewportBound): void;
31
+ render(ctx: UniverRenderingContext, bounds?: IViewportBound): void;
31
32
  resize(width?: number | string, height?: number | string): this;
32
33
  scale(scaleX?: number, scaleY?: number): this;
33
34
  skew(skewX?: number, skewY?: number): this;
@@ -18,6 +18,7 @@ export * from './basics';
18
18
  export * from './canvas';
19
19
  export * from './components';
20
20
  export { DocumentViewModel } from './components/docs/view-model/document-view-model';
21
+ export * from './context';
21
22
  export * from './custom';
22
23
  export * from './engine';
23
24
  export * from './group';
@@ -14,6 +14,7 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  import { BaseObject } from './base-object';
17
+ import type { UniverRenderingContext } from './context';
17
18
  import type { ThinScene } from './thin-scene';
18
19
  export declare class Layer {
19
20
  private _scene;
@@ -37,7 +38,7 @@ export declare class Layer {
37
38
  removeObjects(objects: BaseObject[] | string[]): void;
38
39
  makeDirty(state?: boolean): this;
39
40
  isDirty(): boolean;
40
- render(parentCtx?: CanvasRenderingContext2D, isMaxLayer?: boolean): this;
41
+ render(parentCtx?: UniverRenderingContext, isMaxLayer?: boolean): this;
41
42
  private _initialCacheCanvas;
42
43
  private _draw;
43
44
  private _applyCache;
@@ -18,6 +18,7 @@ import { BaseObject } from './base-object';
18
18
  import { RENDER_CLASS_TYPE } from './basics/const';
19
19
  import type { IObjectFullState } from './basics/interfaces';
20
20
  import type { IViewportBound, Vector2 } from './basics/vector2';
21
+ import type { UniverRenderingContext } from './context';
21
22
  import type { ThinScene } from './thin-scene';
22
23
  export declare class SceneViewer extends BaseObject {
23
24
  private _subScenes;
@@ -25,7 +26,7 @@ export declare class SceneViewer extends BaseObject {
25
26
  private _allowSelectedClipElement;
26
27
  constructor(key?: string, props?: IObjectFullState);
27
28
  get classType(): RENDER_CLASS_TYPE;
28
- render(mainCtx: CanvasRenderingContext2D, bounds?: IViewportBound): this;
29
+ render(mainCtx: UniverRenderingContext, bounds?: IViewportBound): this;
29
30
  getSubScenes(): Map<string, ThinScene>;
30
31
  getActiveSubScene(): Nullable<ThinScene>;
31
32
  getSubScene(sceneKey: string): ThinScene | undefined;
@@ -19,6 +19,7 @@ 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
21
  import { Vector2 } from './basics/vector2';
22
+ import type { UniverRenderingContext } from './context';
22
23
  import { Layer } from './layer';
23
24
  import type { ITransformerConfig } from './scene.-transformer';
24
25
  import { Transformer } from './scene.-transformer';
@@ -89,8 +90,8 @@ export declare class Scene extends ThinScene {
89
90
  getViewports(): Viewport[];
90
91
  getViewport(key: string): Viewport | undefined;
91
92
  changeObjectOrder(): void;
92
- render(parentCtx?: CanvasRenderingContext2D): void;
93
- requestRender(parentCtx?: CanvasRenderingContext2D): Promise<unknown>;
93
+ render(parentCtx?: UniverRenderingContext): void;
94
+ requestRender(parentCtx?: UniverRenderingContext): Promise<unknown>;
94
95
  openTransformer(config?: ITransformerConfig): void;
95
96
  closeTransformer(isDestroyed?: boolean): void;
96
97
  applyTransformer(o: BaseObject): void;
@@ -117,6 +118,10 @@ export declare class Scene extends ThinScene {
117
118
  scaleX: number;
118
119
  scaleY: number;
119
120
  };
121
+ getPrecisionScale(): {
122
+ scaleX: number;
123
+ scaleY: number;
124
+ };
120
125
  dispose(): void;
121
126
  pick(coord: Vector2): Nullable<BaseObject | Scene | ThinScene>;
122
127
  triggerKeyDown(evt: IKeyboardEvent): void;
@@ -14,11 +14,13 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  import type { IPaddingData } from '@univerjs/core';
17
+ import type { Scene } from './scene';
18
+ import type { Viewport } from './viewport';
17
19
  export declare enum ScrollTimerType {
18
- ALL = 0,
20
+ NONE = 0,
19
21
  X = 1,
20
22
  Y = 2,
21
- NONE = 3
23
+ ALL = 3
22
24
  }
23
25
  export declare class ScrollTimer {
24
26
  private _scene;
@@ -35,15 +37,19 @@ export declare class ScrollTimer {
35
37
  private _scrollX;
36
38
  private _scrollY;
37
39
  private _scrollFunction;
38
- constructor(_scene: any, _scrollTimerType?: ScrollTimerType, _padding?: IPaddingData | undefined, _smoothRatioX?: number, _smoothRatioY?: number);
40
+ constructor(_scene: Scene, _scrollTimerType?: ScrollTimerType, _padding?: IPaddingData | undefined, _smoothRatioX?: number, _smoothRatioY?: number);
39
41
  static create(scene: any, scrollTimerType?: ScrollTimerType, padding?: IPaddingData): ScrollTimer;
42
+ set scrollTimerType(type: ScrollTimerType);
43
+ get scrollTimerType(): ScrollTimerType;
44
+ setActiveViewport(viewport: Viewport): void;
45
+ getActiveViewport(): any;
40
46
  startScroll(offsetX: number, offsetY: number, targetViewport?: any): void;
41
47
  private _scroll;
42
48
  scrolling(offsetX: number, offsetY: number, scrollFunction: (x?: number, y?: number) => void): void;
43
49
  stopScroll(): void;
44
50
  dispose(): void;
45
- getViewportByCoord(scene?: any): any;
46
- getScene(): any;
51
+ getViewportByCoord(scene?: Scene): Viewport | undefined;
52
+ getScene(): Scene;
47
53
  private _runRenderLoop;
48
54
  private _findAncestorScene;
49
55
  }