@univerjs/engine-render 1.0.0-alpha.8 → 1.0.0-beta.1

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 (45) hide show
  1. package/lib/cjs/index.js +6526 -5282
  2. package/lib/es/index.js +6513 -5284
  3. package/lib/index.js +6513 -5284
  4. package/lib/types/alignment-snap.d.ts +67 -0
  5. package/lib/types/base-object.d.ts +8 -0
  6. package/lib/types/basics/drawing-effect.d.ts +1 -1
  7. package/lib/types/basics/i-document-skeleton-cached.d.ts +17 -1
  8. package/lib/types/basics/interfaces.d.ts +10 -0
  9. package/lib/types/basics/performance-monitor.d.ts +5 -0
  10. package/lib/types/basics/tools.d.ts +1 -0
  11. package/lib/types/basics/transformer-config.d.ts +2 -0
  12. package/lib/types/components/docs/custom-block-render-viewport.d.ts +2 -0
  13. package/lib/types/components/docs/doc-extension.d.ts +3 -1
  14. package/lib/types/components/docs/document-compatibility.d.ts +1 -1
  15. package/lib/types/components/docs/document.d.ts +3 -2
  16. package/lib/types/components/docs/extensions/font-and-base-line.d.ts +1 -0
  17. package/lib/types/components/docs/extensions/line.d.ts +5 -1
  18. package/lib/types/components/docs/layout/block/paragraph/bullet.d.ts +2 -2
  19. package/lib/types/components/docs/layout/block/paragraph/layout-ruler.d.ts +6 -4
  20. package/lib/types/components/docs/layout/block/paragraph/linebreaking.d.ts +1 -1
  21. package/lib/types/components/docs/layout/doc-no-wrap-measure.d.ts +5 -0
  22. package/lib/types/{basics/unit-convert.d.ts → components/docs/layout/line-breaker/extensions/east-asian-quote-linebreak-extension.d.ts} +2 -2
  23. package/lib/types/components/docs/layout/model/page.d.ts +2 -1
  24. package/lib/types/components/docs/layout/tools.d.ts +1 -0
  25. package/lib/types/components/sheets/constants.d.ts +2 -0
  26. package/lib/types/components/sheets/extensions/column-header-layout.d.ts +1 -1
  27. package/lib/types/components/sheets/extensions/row-header-layout.d.ts +1 -1
  28. package/lib/types/components/sheets/index.d.ts +2 -0
  29. package/lib/types/components/sheets/sheet.render-skeleton.d.ts +8 -1
  30. package/lib/types/components/sheets/spreadsheet.d.ts +8 -3
  31. package/lib/types/components/sheets/util.d.ts +10 -0
  32. package/lib/types/drawing-group.d.ts +1 -1
  33. package/lib/types/engine.d.ts +1 -0
  34. package/lib/types/index.d.ts +4 -1
  35. package/lib/types/layer.d.ts +14 -1
  36. package/lib/types/scene.d.ts +17 -0
  37. package/lib/types/scene.transformer.d.ts +1 -0
  38. package/lib/types/services/canvas-color.service.d.ts +5 -2
  39. package/lib/types/shape/checkbox.d.ts +2 -0
  40. package/lib/types/shape/image.d.ts +4 -0
  41. package/lib/types/shape/scroll-bar.d.ts +6 -2
  42. package/lib/types/shape/shape.d.ts +4 -1
  43. package/lib/types/viewport.d.ts +3 -1
  44. package/lib/umd/index.js +2 -2
  45. package/package.json +3 -3
@@ -55,6 +55,13 @@ export declare class Scene extends Disposable {
55
55
  private _evented;
56
56
  private _layers;
57
57
  private _viewports;
58
+ private _preserveEngineOnRender;
59
+ private _scrollbarDragViewport;
60
+ private _isScrollbarSeeking;
61
+ private _isScrollbarPreviewDirty;
62
+ private _lastScrollbarSeekInputAt;
63
+ private _estimatedFullRenderDuration;
64
+ private _renderedViewportScrollPositions;
58
65
  private _cursor;
59
66
  private _defaultCursor;
60
67
  private _addObject$;
@@ -121,6 +128,11 @@ export declare class Scene extends Disposable {
121
128
  attachControl(options?: ISceneInputControlOptions): this | undefined;
122
129
  detachControl(): this;
123
130
  makeDirty(state?: boolean): this;
131
+ makeDirtyForScrolling(): this;
132
+ beginScrollbarDrag(viewport: Viewport): void;
133
+ updateScrollbarDrag(viewport: Viewport): void;
134
+ endScrollbarDrag(viewport: Viewport): void;
135
+ isScrollRenderPending(): boolean;
124
136
  makeDirtyNoParent(state?: boolean): this;
125
137
  enableLayerCache(...layerIndexes: number[]): void;
126
138
  disableLayerCache(...layerIndexes: number[]): void;
@@ -218,6 +230,11 @@ export declare class Scene extends Disposable {
218
230
  getViewports(): Viewport[];
219
231
  getMainViewport(): Viewport;
220
232
  getViewport(key: string): Viewport | undefined;
233
+ private _createScrollRenderState;
234
+ private _renderScrollbarSeekPreview;
235
+ private _shouldDeferScrollbarSeekRender;
236
+ private _recordRenderedViewportScrollPositions;
237
+ private _recordFullRenderDuration;
221
238
  render(parentCtx?: UniverRenderingContext): void;
222
239
  requestRender(parentCtx?: UniverRenderingContext): Promise<unknown>;
223
240
  /**
@@ -95,6 +95,7 @@ export declare class Transformer extends Disposable implements ITransformerConfi
95
95
  boundBoxFunc: Nullable<(oldBox: BaseObject, newBox: BaseObject) => BaseObject>;
96
96
  useSingleNodeRotation: boolean;
97
97
  shouldOverdrawWholeArea: boolean;
98
+ controlLayerIndex: number | undefined;
98
99
  private readonly _changeStart$;
99
100
  /**
100
101
  * actually pointer down on a object,
@@ -31,10 +31,13 @@ export declare class DumbCanvasColorService implements ICanvasColorService {
31
31
  */
32
32
  export declare class CanvasColorService extends Disposable implements ICanvasColorService {
33
33
  private readonly _themeService;
34
- private readonly _cache;
34
+ private readonly _darkModeCache;
35
+ private readonly _resolvedColorCache;
35
36
  private _invertAlgo;
36
37
  constructor(_themeService: ThemeService);
37
- getRenderColor(color: string): string;
38
+ getRenderColor(inputColor: string): string;
39
+ private _resolveColor;
40
+ private _resolveThemeColor;
38
41
  }
39
42
  export declare function getDarkRenderColorOverride(color: string): string | null;
40
43
  export declare function hexToRgb(_hex: string): RGBColorType;
@@ -20,6 +20,8 @@ export interface ICheckboxShapeProps extends IShapeProps {
20
20
  checked?: boolean;
21
21
  }
22
22
  export declare const CHECK_OBJECT_ARRAY: string[];
23
+ export declare function isCheckboxGlyph(content: string): boolean;
24
+ export declare function getCheckboxShapeSize(fontSize?: number): number;
23
25
  export declare class CheckboxShape extends Shape<ICheckboxShapeProps> {
24
26
  _checked: boolean;
25
27
  constructor(key: string, props: ICheckboxShapeProps);
@@ -63,6 +63,8 @@ export declare class Image extends Shape<IImageProps> {
63
63
  private _renderByCropper;
64
64
  private _transformCalculateSrcRect;
65
65
  private _clipService;
66
+ private _rasterCacheSource;
67
+ private _autoRasterCache;
66
68
  objectType: ObjectType;
67
69
  isDrawingObject: boolean;
68
70
  constructor(id: string, config: IImageProps);
@@ -70,6 +72,7 @@ export declare class Image extends Shape<IImageProps> {
70
72
  get prstGeom(): Nullable<string>;
71
73
  get opacity(): number;
72
74
  get clipBounds(): Nullable<IShapeClipBounds>;
75
+ private _shouldRasterCache;
73
76
  setOpacity(opacity: number): void;
74
77
  setClipBounds(clipBounds?: Nullable<IShapeClipBounds>): void;
75
78
  setClipService(clipService: Nullable<IImageShapeClipService>): void;
@@ -100,6 +103,7 @@ export declare class Image extends Shape<IImageProps> {
100
103
  private _transformBySrcRect;
101
104
  render(mainCtx: UniverRenderingContext, bounds?: IViewportInfo): this;
102
105
  protected _draw(ctx: UniverRenderingContext, _bounds?: IViewportInfo, renderWidth?: number, renderHeight?: number): void;
106
+ private _drawNative;
103
107
  private _init;
104
108
  private _updateSrcRectByTransform;
105
109
  set transform(trans: Transform);
@@ -43,14 +43,18 @@ export interface IScrollBarProps {
43
43
  enableHorizontal?: boolean;
44
44
  /** Enable the vertical scroll bar. True by default. */
45
45
  enableVertical?: boolean;
46
+ /** Hide the track when the corresponding content axis does not overflow. False by default. */
47
+ hideTrackWhenUnscrollable?: boolean;
46
48
  /** The min width of horizon thumb. Default is 17 px. */
47
49
  minThumbSizeH?: number;
48
50
  /** The min height of vertical thumb. Default is 17 px. */
49
51
  minThumbSizeV?: number;
50
52
  }
51
53
  export declare class ScrollBar extends Disposable {
54
+ static readonly DEFAULT_TOTAL_SIZE: number;
52
55
  _enableHorizontal: boolean;
53
56
  _enableVertical: boolean;
57
+ private _hideTrackWhenUnscrollable;
54
58
  horizontalThumbSize: number;
55
59
  horizontalMinusMiniThumb: number;
56
60
  horizontalTrackWidth: number;
@@ -71,7 +75,6 @@ export declare class ScrollBar extends Disposable {
71
75
  private _pendingBarDeltaX;
72
76
  private _pendingBarDeltaY;
73
77
  private _pendingBarScrollFrameId;
74
- private _pendingBarScrollThrottleId;
75
78
  private _horizonPointerMoveSub;
76
79
  private _horizonPointerUpSub;
77
80
  private _verticalPointerMoveSub;
@@ -109,6 +112,8 @@ export declare class ScrollBar extends Disposable {
109
112
  set enableHorizontal(val: boolean);
110
113
  get enableVertical(): boolean;
111
114
  set enableVertical(val: boolean);
115
+ get hideTrackWhenUnscrollable(): boolean;
116
+ set hideTrackWhenUnscrollable(val: boolean);
112
117
  get limitX(): number;
113
118
  get limitY(): number;
114
119
  get ratioScrollX(): number;
@@ -137,7 +142,6 @@ export declare class ScrollBar extends Disposable {
137
142
  static attachTo(view: Viewport, props?: IScrollBarProps): ScrollBar;
138
143
  dispose(): void;
139
144
  private _scheduleBarScrollDelta;
140
- private _requestPendingBarScrollFrame;
141
145
  private _flushPendingBarScroll;
142
146
  private _applyPendingBarScroll;
143
147
  render(ctx: UniverRenderingContext, left?: number, top?: number): void;
@@ -58,6 +58,7 @@ export declare abstract class Shape<T extends IShapeProps> extends BaseObject {
58
58
  private _renderCacheCanvas;
59
59
  private _renderCacheBounds;
60
60
  private _renderCachePixelRatio;
61
+ private _renderCacheTransformSize;
61
62
  private _hoverCursor;
62
63
  private _moveCursor;
63
64
  private _fillRule;
@@ -132,7 +133,9 @@ export declare abstract class Shape<T extends IShapeProps> extends BaseObject {
132
133
  toJson(): {
133
134
  [x: string]: any;
134
135
  };
135
- protected _renderWithCache(ctx: UniverRenderingContext, bounds: IBoundRectNoAngle, draw: (cacheContext: UniverRenderingContext) => void): void;
136
+ transformByState(option: IObjectFullState): this | undefined;
137
+ translate(x?: number | string, y?: number | string): this;
138
+ protected _renderWithCache(ctx: UniverRenderingContext, bounds: IBoundRectNoAngle, draw: (cacheContext: UniverRenderingContext) => void, fixedPixelRatio?: number): void;
136
139
  protected _releaseRenderCache(): void;
137
140
  protected _draw(ctx: UniverRenderingContext, bounds?: IViewportInfo): void;
138
141
  private _initialProps;
@@ -253,6 +253,7 @@ export declare class Viewport {
253
253
  get _deltaViewportScrollX(): number;
254
254
  get _deltaViewportScrollY(): number;
255
255
  get canvas(): UniverCanvas | null;
256
+ swapCacheCanvas(cacheCanvas: UniverCanvas): UniverCanvas | null;
256
257
  enable(): void;
257
258
  disable(): void;
258
259
  /**
@@ -343,7 +344,7 @@ export declare class Viewport {
343
344
  * @param objects
344
345
  * @param isMaxLayer
345
346
  */
346
- render(parentCtx?: UniverRenderingContext, objects?: BaseObject[], isMaxLayer?: boolean): void;
347
+ render(parentCtx?: UniverRenderingContext, objects?: BaseObject[], isMaxLayer?: boolean, viewportInfo?: IViewportInfo): void;
347
348
  private _makeDefaultViewport;
348
349
  calcViewportInfo(): IViewportInfo;
349
350
  /**
@@ -431,6 +432,7 @@ export declare class Viewport {
431
432
  private _diffViewBound;
432
433
  private _calcDiffCacheBound;
433
434
  private _drawScrollbar;
435
+ renderScrollbarOnly(ctx: UniverRenderingContext, pixelRatio: number): void;
434
436
  setViewportSize(props?: IViewProps): void;
435
437
  }
436
438
  export {};