@univerjs/engine-render 0.1.2 → 0.1.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.
@@ -27,7 +27,14 @@ export interface IContext2D extends CanvasRenderingContext2D {
27
27
  backingStorePixelRatio: number;
28
28
  }
29
29
  export declare function getDevicePixelRatio(): number;
30
- export declare function drawLineByBorderType(ctx: UniverRenderingContext, type: BORDER_TYPE, position: IPosition): void;
30
+ /**
31
+ *
32
+ * @param ctx canvas context
33
+ * @param type top bottom left right
34
+ * @param lineWidthBuffer Solving the problem of mitered corners in the drawing of borders thicker than 2 pixels, caused by the line segments being centered.
35
+ * @param position border draw position
36
+ */
37
+ export declare function drawLineByBorderType(ctx: UniverRenderingContext, type: BORDER_TYPE, lineWidthBuffer: number, position: IPosition): void;
31
38
  export declare function drawDiagonalLineByBorderType(ctx: UniverRenderingContext, type: BORDER_TYPE, position: IPosition): void;
32
39
  export declare function clearLineByBorderType(ctx: UniverRenderingContext, type: BORDER_TYPE, position: IPosition): void;
33
40
  export declare function setLineType(ctx: UniverRenderingContext, style: BorderStyleTypes): void;
@@ -15,7 +15,7 @@
15
15
  */
16
16
  import { type ITextRotation } from '@univerjs/core';
17
17
  export declare const VERTICAL_ROTATE_ANGLE = 90;
18
- export declare function convertTextRotation(textRotation: ITextRotation): {
18
+ export declare function convertTextRotation(textRotation?: ITextRotation): {
19
19
  centerAngle: number;
20
20
  vertexAngle: number;
21
21
  };
@@ -13,6 +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 { IDisposable } from '@wendellhu/redi';
16
17
  import { BaseObject } from '../base-object';
17
18
  import type { IViewportBound } from '../basics/vector2';
18
19
  import type { UniverRenderingContext } from '../context';
@@ -20,8 +21,7 @@ import type { ComponentExtension } from './extension';
20
21
  export declare class RenderComponent<T, U, V> extends BaseObject {
21
22
  private _extensions;
22
23
  get extensions(): Map<string, ComponentExtension<T, U, V>>;
23
- register(...extensions: Array<ComponentExtension<T, U, V>>): void;
24
- unRegister(...uKeys: string[]): void;
24
+ register(...extensions: Array<ComponentExtension<T, U, V>>): IDisposable;
25
25
  getExtensionsByOrder(): ComponentExtension<T, U, V>[];
26
26
  getExtensionByKey(uKey: string): ComponentExtension<T, U, V> | undefined;
27
27
  draw(ctx: UniverRenderingContext, bounds?: IViewportBound): void;
@@ -111,8 +111,9 @@ export declare class TextSelectionRenderManager extends RxDisposable implements
111
111
  private _container;
112
112
  private _inputParent;
113
113
  private _input;
114
- private _moveObserver;
115
- private _upObserver;
114
+ private _moveObservers;
115
+ private _upObservers;
116
+ private _scrollTimers;
116
117
  private _viewportScrollX;
117
118
  private _viewportScrollY;
118
119
  private _rangeList;
@@ -18,4 +18,5 @@ export * from './docs';
18
18
  export * from './extension';
19
19
  export * from './sheets';
20
20
  export * from './skeleton';
21
+ export { RENDER_RAW_FORMULA_KEY } from './sheets/sheet-skeleton';
21
22
  export * from './slides';
@@ -13,19 +13,23 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import type { IColorStyle, IRange, IScale } from '@univerjs/core';
17
- import { ObjectMatrix } from '@univerjs/core';
16
+ import type { IRange, IScale } from '@univerjs/core';
18
17
  import type { UniverRenderingContext } from '../../../context';
19
18
  import { type SpreadsheetSkeleton } from '../sheet-skeleton';
20
- import type { Spreadsheet } from '../spreadsheet';
21
19
  import { SheetExtension } from './sheet-extension';
20
+ export interface ISheetFontRenderExtension {
21
+ fontRenderExtension?: {
22
+ leftOffset?: number;
23
+ rightOffset?: number;
24
+ topOffset?: number;
25
+ downOffset?: number;
26
+ isSkip?: boolean;
27
+ };
28
+ }
22
29
  export declare class Font extends SheetExtension {
23
30
  uKey: string;
24
31
  Z_INDEX: number;
25
- changeFontColor: ObjectMatrix<IColorStyle>;
26
- get spreadsheet(): Spreadsheet;
27
32
  getDocuments(): any;
28
- setChangeFontColor(r: number, c: number, color: IColorStyle): void;
29
33
  draw(ctx: UniverRenderingContext, parentScale: IScale, spreadsheetSkeleton: SpreadsheetSkeleton, diffRanges?: IRange[]): void;
30
34
  private _renderDocuments;
31
35
  private _clipRectangle;
@@ -26,7 +26,8 @@ export interface BorderCacheItem {
26
26
  }
27
27
  export interface IFontCacheItem {
28
28
  documentSkeleton: DocumentSkeleton;
29
- angle?: number;
29
+ vertexAngle?: number;
30
+ centerAngle?: number;
30
31
  verticalAlign: VerticalAlign;
31
32
  horizontalAlign: HorizontalAlign;
32
33
  wrapStrategy: WrapStrategy;
@@ -13,8 +13,8 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import type { ICellData, IPaddingData, IRange, ISelectionCellWithCoord, ITextRotation, IWorksheetData, LocaleService, Nullable, Styles, Worksheet } from '@univerjs/core';
17
- import { BooleanNumber, DocumentDataModel, HorizontalAlign, ObjectMatrix, VerticalAlign, WrapStrategy } from '@univerjs/core';
16
+ import type { ICellData, IPaddingData, IRange, ISelectionCellWithCoord, ITextRotation, IWorksheetData, Nullable, Styles, Worksheet } from '@univerjs/core';
17
+ import { BooleanNumber, DocumentDataModel, HorizontalAlign, IContextService, LocaleService, ObjectMatrix, VerticalAlign, WrapStrategy } from '@univerjs/core';
18
18
  import type { IBoundRectNoAngle, IViewportBound } from '../../basics/vector2';
19
19
  import { DocumentSkeleton } from '../docs/doc-skeleton';
20
20
  import { Skeleton } from '../skeleton';
@@ -48,14 +48,16 @@ export interface IDocumentLayoutObject {
48
48
  paddingData: IPaddingData;
49
49
  fill?: Nullable<string>;
50
50
  }
51
+ export declare const RENDER_RAW_FORMULA_KEY = "RENDER_RAW_FORMULA";
51
52
  export declare class SpreadsheetSkeleton extends Skeleton {
52
53
  private _worksheet;
53
54
  private _config;
54
55
  private _cellData;
55
56
  private _styles;
57
+ private readonly _contextService;
56
58
  private _rowHeightAccumulation;
57
- private _rowTotalHeight;
58
59
  private _columnWidthAccumulation;
60
+ private _rowTotalHeight;
59
61
  private _columnTotalWidth;
60
62
  private _rowHeaderWidth;
61
63
  private _columnHeaderHeight;
@@ -63,11 +65,13 @@ export declare class SpreadsheetSkeleton extends Skeleton {
63
65
  private _dataMergeCache;
64
66
  private _overflowCache;
65
67
  private _stylesCache;
68
+ /** A matrix to store if a (row, column) position has render cache. */
66
69
  private _renderedCellCache;
67
70
  private _showGridlines;
68
71
  private _marginTop;
69
72
  private _marginLeft;
70
- constructor(_worksheet: Worksheet | undefined, _config: IWorksheetData, _cellData: ObjectMatrix<Nullable<ICellData>>, _styles: Styles, _localeService: LocaleService);
73
+ private _renderRawFormula;
74
+ constructor(_worksheet: Worksheet | undefined, _config: IWorksheetData, _cellData: ObjectMatrix<Nullable<ICellData>>, _styles: Styles, _localeService: LocaleService, _contextService: IContextService);
71
75
  get rowHeightAccumulation(): number[];
72
76
  get rowTotalHeight(): number;
73
77
  get columnWidthAccumulation(): number[];
@@ -82,14 +86,11 @@ export declare class SpreadsheetSkeleton extends Skeleton {
82
86
  get mergeData(): IRange[];
83
87
  get rowHeaderWidthAndMarginLeft(): number;
84
88
  get columnHeaderHeightAndMarginTop(): number;
89
+ get worksheet(): Worksheet | undefined;
85
90
  /**
86
91
  * @deprecated
87
92
  */
88
- static create(worksheet: Worksheet | undefined, config: IWorksheetData, cellData: ObjectMatrix<Nullable<ICellData>>, styles: Styles, LocaleService: LocaleService): SpreadsheetSkeleton;
89
- /**
90
- * @deprecated should never expose a property that is provided by another module!
91
- */
92
- getWorksheetConfig(): IWorksheetData;
93
+ static create(worksheet: Worksheet | undefined, config: IWorksheetData, cellData: ObjectMatrix<Nullable<ICellData>>, styles: Styles, localeService: LocaleService, contextService: IContextService): SpreadsheetSkeleton;
93
94
  /**
94
95
  * @deprecated should never expose a property that is provided by another module!
95
96
  */
@@ -98,6 +99,7 @@ export declare class SpreadsheetSkeleton extends Skeleton {
98
99
  * @deprecated should never expose a property that is provided by another module!
99
100
  */
100
101
  getsStyles(): Styles;
102
+ private _initContextListener;
101
103
  setOverflowCache(value: ObjectMatrix<IRange>): void;
102
104
  setMarginLeft(left: number): void;
103
105
  setMarginTop(top: number): void;
@@ -106,7 +108,7 @@ export declare class SpreadsheetSkeleton extends Skeleton {
106
108
  calculate(bounds?: IViewportBound): this;
107
109
  calculateAutoHeightInRange(ranges: Nullable<IRange[]>): IRowAutoHeightInfo[];
108
110
  private _calculateRowAutoHeight;
109
- updateLayout(): this | undefined;
111
+ private _updateLayout;
110
112
  private _dynamicallyUpdateRowHeaderWidth;
111
113
  getRowColumnSegment(bounds?: IViewportBound): {
112
114
  startRow: number;
@@ -114,6 +116,11 @@ export declare class SpreadsheetSkeleton extends Skeleton {
114
116
  startColumn: number;
115
117
  endColumn: number;
116
118
  };
119
+ /**
120
+ * @deprecated should never expose a property that is provided by another module!
121
+ * @returns
122
+ */
123
+ getWorksheetConfig(): IWorksheetData;
117
124
  getRowColumnSegmentByViewBound(bound?: IBoundRectNoAngle): {
118
125
  startRow: number;
119
126
  endRow: number;
@@ -295,6 +302,11 @@ export declare class SpreadsheetSkeleton extends Skeleton {
295
302
  private _setCellCache;
296
303
  private _updateConfigAndGetDocumentModel;
297
304
  private _getDocumentDataByStyle;
305
+ /**
306
+ * pro/issues/344
307
+ * In Excel, for the border rendering of merged cells to take effect, the outermost cells need to have the same border style.
308
+ */
309
+ private _setMergeBorderProps;
298
310
  private _setBorderProps;
299
311
  private _getFontFormat;
300
312
  private _getOtherStyle;
@@ -39,7 +39,7 @@ export declare class UniverRenderingContext2D implements CanvasRenderingContext2
39
39
  set lineJoin(val: CanvasLineJoin);
40
40
  get lineWidth(): number;
41
41
  set lineWidth(val: number);
42
- setLineWidthNative(val: number): void;
42
+ setLineWidthByPrecision(val: number): void;
43
43
  get miterLimit(): number;
44
44
  set miterLimit(val: number);
45
45
  get shadowBlur(): number;
@@ -56,16 +56,31 @@ export declare class UniverRenderingContext2D implements CanvasRenderingContext2
56
56
  set font(val: string);
57
57
  get fontKerning(): CanvasFontKerning;
58
58
  set fontKerning(val: CanvasFontKerning);
59
+ get fontStretch(): CanvasFontStretch;
60
+ set fontStretch(val: CanvasFontStretch);
61
+ get fontVariantCaps(): CanvasFontVariantCaps;
62
+ set fontVariantCaps(val: CanvasFontVariantCaps);
63
+ get letterSpacing(): string;
64
+ set letterSpacing(val: string);
65
+ get textRendering(): CanvasTextRendering;
66
+ set textRendering(val: CanvasTextRendering);
67
+ get wordSpacing(): string;
68
+ set wordSpacing(val: string);
59
69
  get textAlign(): CanvasTextAlign;
60
70
  set textAlign(val: CanvasTextAlign);
61
71
  get textBaseline(): CanvasTextBaseline;
62
72
  set textBaseline(val: CanvasTextBaseline);
63
73
  private _getScale;
74
+ getScale(): {
75
+ scaleX: number;
76
+ scaleY: number;
77
+ };
64
78
  getContextAttributes(): CanvasRenderingContext2DSettings;
65
79
  isPointInStroke(x: number, y: number): boolean;
66
80
  isPointInStroke(path: Path2D, x: number, y: number): boolean;
67
81
  createConicGradient(startAngle: number, x: number, y: number): CanvasGradient;
68
82
  roundRect(x: number, y: number, w: number, h: number, radii?: number | DOMPointInit | Array<number | DOMPointInit>): void;
83
+ roundRectByPrecision(x: number, y: number, w: number, h: number, radii?: number | DOMPointInit | Array<number | DOMPointInit>): void;
69
84
  getTransform(): DOMMatrix;
70
85
  resetTransform(): void;
71
86
  drawFocusIfNeeded(element: Element): void;
@@ -80,12 +95,23 @@ export declare class UniverRenderingContext2D implements CanvasRenderingContext2
80
95
  * @method
81
96
  */
82
97
  arc(x: number, y: number, radius: number, startAngle: number, endAngle: number, counterClockwise?: boolean): void;
98
+ /**
99
+ * arc function.
100
+ * @method
101
+ */
102
+ arcByPrecision(x: number, y: number, radius: number, startAngle: number, endAngle: number, counterClockwise?: boolean): void;
83
103
  /**
84
104
  * arcTo function.
85
105
  * @method
86
106
  *
87
107
  */
88
108
  arcTo(x1: number, y1: number, x2: number, y2: number, radius: number): void;
109
+ /**
110
+ * arcTo function.
111
+ * @method
112
+ *
113
+ */
114
+ arcToByPrecision(x1: number, y1: number, x2: number, y2: number, radius: number): void;
89
115
  /**
90
116
  * beginPath function.
91
117
  * @method
@@ -96,11 +122,21 @@ export declare class UniverRenderingContext2D implements CanvasRenderingContext2
96
122
  * @method
97
123
  */
98
124
  bezierCurveTo(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number): void;
125
+ /**
126
+ * bezierCurveTo function precision.
127
+ * @method
128
+ */
129
+ bezierCurveToByPrecision(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number): void;
99
130
  /**
100
131
  * clearRect function.
101
132
  * @method
102
133
  */
103
134
  clearRect(x: number, y: number, width: number, height: number): void;
135
+ /**
136
+ * clearRect function.
137
+ * @method
138
+ */
139
+ clearRectByPrecision(x: number, y: number, width: number, height: number): void;
104
140
  /**
105
141
  * clip function.
106
142
  * @method
@@ -162,11 +198,21 @@ export declare class UniverRenderingContext2D implements CanvasRenderingContext2
162
198
  * @method
163
199
  */
164
200
  fillRect(x: number, y: number, width: number, height: number): void;
201
+ /**
202
+ * fillRect function precision.
203
+ * @method
204
+ */
205
+ fillRectByPrecision(x: number, y: number, width: number, height: number): void;
165
206
  /**
166
207
  * strokeRect function.
167
208
  * @method
168
209
  */
169
210
  strokeRect(x: number, y: number, width: number, height: number): void;
211
+ /**
212
+ * strokeRect function precision.
213
+ * @method
214
+ */
215
+ strokeRectPrecision(x: number, y: number, width: number, height: number): void;
170
216
  /**
171
217
  * fillText function.
172
218
  * @method
@@ -192,16 +238,31 @@ export declare class UniverRenderingContext2D implements CanvasRenderingContext2
192
238
  * @method
193
239
  */
194
240
  lineTo(x: number, y: number): void;
241
+ /**
242
+ * lineTo function precision.
243
+ * @method
244
+ */
245
+ lineToByPrecision(x: number, y: number): void;
195
246
  /**
196
247
  * moveTo function.
197
248
  * @method
198
249
  */
199
250
  moveTo(x: number, y: number): void;
251
+ /**
252
+ * moveTo function precision.
253
+ * @method
254
+ */
255
+ moveToByPrecision(x: number, y: number): void;
200
256
  /**
201
257
  * rect function.
202
258
  * @method
203
259
  */
204
260
  rect(x: number, y: number, width: number, height: number): void;
261
+ /**
262
+ * rect function.
263
+ * @method
264
+ */
265
+ rectByPrecision(x: number, y: number, width: number, height: number): void;
205
266
  /**
206
267
  * putImageData function.
207
268
  * @method
@@ -258,6 +319,11 @@ export declare class UniverRenderingContext2D implements CanvasRenderingContext2
258
319
  * @method
259
320
  */
260
321
  strokeText(text: string, x: number, y: number, maxWidth?: number): void;
322
+ /**
323
+ * strokeText function precision.
324
+ * @method
325
+ */
326
+ strokeTextByPrecision(text: string, x: number, y: number, maxWidth?: number): void;
261
327
  /**
262
328
  * transform function.
263
329
  * @method
@@ -21,8 +21,8 @@ import type { ISceneTransformState } from './basics/interfaces';
21
21
  import { Vector2 } from './basics/vector2';
22
22
  import type { UniverRenderingContext } from './context';
23
23
  import { Layer } from './layer';
24
- import type { ITransformerConfig } from './scene.-transformer';
25
- import { Transformer } from './scene.-transformer';
24
+ import type { ITransformerConfig } from './scene.transformer';
25
+ import { Transformer } from './scene.transformer';
26
26
  import type { SceneViewer } from './scene-viewer';
27
27
  import type { ThinEngine } from './thin-engine';
28
28
  import { ThinScene } from './thin-scene';