@univerjs/engine-render 0.2.2 → 0.2.4-alpha.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 (28) hide show
  1. package/README.md +11 -2
  2. package/lib/cjs/index.js +2 -2
  3. package/lib/es/index.js +8361 -8089
  4. package/lib/types/basics/i-document-skeleton-cached.d.ts +5 -0
  5. package/lib/types/basics/tools.d.ts +4 -2
  6. package/lib/types/components/component.d.ts +1 -1
  7. package/lib/types/components/docs/layout/block/paragraph/layout-ruler.d.ts +2 -1
  8. package/lib/types/components/docs/layout/hyphenation/hyphen.d.ts +1 -1
  9. package/lib/types/components/docs/layout/hyphenation/language-detector.d.ts +1 -1
  10. package/lib/types/components/docs/layout/line-breaker/extensions/custom-block-linebreak-extension.d.ts +3 -0
  11. package/lib/types/components/docs/layout/model/line.d.ts +2 -1
  12. package/lib/types/components/docs/layout/tools.d.ts +6 -5
  13. package/lib/types/components/docs/text-selection/text-selection-render-manager.d.ts +14 -3
  14. package/lib/types/components/docs/view-model/document-view-model.d.ts +2 -2
  15. package/lib/types/components/sheets/sheet-skeleton.d.ts +12 -22
  16. package/lib/types/components/sheets/spreadsheet.d.ts +2 -6
  17. package/lib/types/engine.d.ts +5 -2
  18. package/lib/types/floating/util.d.ts +3 -0
  19. package/lib/types/index.d.ts +3 -1
  20. package/lib/types/render-engine.d.ts +2 -3
  21. package/lib/types/render-manager/render-manager.service.d.ts +17 -7
  22. package/lib/types/render-manager/render-unit.d.ts +4 -8
  23. package/lib/types/scene.d.ts +15 -4
  24. package/lib/types/scene.transformer.d.ts +3 -1
  25. package/lib/types/shape/image.d.ts +3 -0
  26. package/lib/types/thin-engine.d.ts +1 -2
  27. package/lib/umd/index.js +2 -2
  28. package/package.json +8 -8
@@ -147,6 +147,11 @@ export interface IDocumentSkeletonDrawing {
147
147
  angle: number;
148
148
  initialState: boolean;
149
149
  drawingOrigin: IDocDrawingBase;
150
+ columnLeft: number;
151
+ isPageBreak: boolean;
152
+ lineTop: number;
153
+ lineHeight: number;
154
+ blockAnchorTop: number;
150
155
  }
151
156
  export interface IDocumentSkeletonFontStyle {
152
157
  fontString: string;
@@ -82,13 +82,15 @@ export declare function mergeInfoOffset(mergeInfo: IRangeWithCoord, offsetX: num
82
82
  startY: number;
83
83
  endX: number;
84
84
  endY: number;
85
- startColumn: number;
86
- endColumn: number;
87
85
  rangeType?: import('@univerjs/core').RANGE_TYPE;
88
86
  startAbsoluteRefType?: import('@univerjs/core').AbsoluteRefType;
89
87
  endAbsoluteRefType?: import('@univerjs/core').AbsoluteRefType;
90
88
  startRow: number;
91
89
  endRow: number;
90
+ unitId?: string;
91
+ sheetId?: string;
92
+ startColumn: number;
93
+ endColumn: number;
92
94
  };
93
95
  export declare function isRectIntersect(rect1: IBoundRectNoAngle, rect2: IBoundRectNoAngle): boolean;
94
96
  export declare function injectStyle(styles: string[]): void;
@@ -1,4 +1,4 @@
1
- import { IDisposable } from '@wendellhu/redi';
1
+ import { IDisposable } from '@univerjs/core';
2
2
  import { BaseObject } from '../base-object';
3
3
  import { IViewportInfo } from '../basics/vector2';
4
4
  import { UniverRenderingContext } from '../context';
@@ -1,6 +1,7 @@
1
- import { IDocumentSkeletonGlyph, IDocumentSkeletonPage } from '../../../../../basics/i-document-skeleton-cached';
1
+ import { IDocumentSkeletonDrawing, IDocumentSkeletonGlyph, IDocumentSkeletonLine, IDocumentSkeletonPage } from '../../../../../basics/i-document-skeleton-cached';
2
2
  import { IParagraphConfig, ISectionBreakConfig } from '../../../../../basics/interfaces';
3
3
  import { ILayoutContext } from '../../tools';
4
4
  import { BreakPointType } from '../../line-breaker/break';
5
5
 
6
6
  export declare function layoutParagraph(ctx: ILayoutContext, glyphGroup: IDocumentSkeletonGlyph[], pages: IDocumentSkeletonPage[], sectionBreakConfig: ISectionBreakConfig, paragraphConfig: IParagraphConfig, paragraphStart?: boolean, breakPointType?: BreakPointType): IDocumentSkeletonPage[];
7
+ export declare function updateInlineDrawingPosition(line: IDocumentSkeletonLine, paragraphInlineSkeDrawings?: Map<string, IDocumentSkeletonDrawing>, blockAnchorTop?: number): void;
@@ -1,4 +1,4 @@
1
- import { IDisposable } from '@wendellhu/redi';
1
+ import { IDisposable } from '@univerjs/core';
2
2
  import { Lang } from './lang';
3
3
 
4
4
  export declare class Hyphen implements IDisposable {
@@ -1,4 +1,4 @@
1
- import { IDisposable } from '@wendellhu/redi';
1
+ import { IDisposable } from '@univerjs/core';
2
2
  import { Lang } from './lang';
3
3
 
4
4
  export declare class LanguageDetector implements IDisposable {
@@ -0,0 +1,3 @@
1
+ import { LineBreaker } from '../line-breaker';
2
+
3
+ export declare function customBlockLineBreakExtension(breaker: LineBreaker): void;
@@ -15,6 +15,7 @@ export declare function createSkeletonLine(paragraphIndex: number, lineType: Lin
15
15
  export declare function calculateLineTopByDrawings(lineHeight?: number, lineTop?: number, pageSkeDrawings?: Map<string, IDocumentSkeletonDrawing>, headersDrawings?: Map<string, IDocumentSkeletonDrawing>, footersDrawings?: Map<string, IDocumentSkeletonDrawing>): number;
16
16
  export declare function updateDivideInfo(divide: IDocumentSkeletonDivide, states: Partial<IDocumentSkeletonDivide>): void;
17
17
  export declare function setLineMarginBottom(line: IDocumentSkeletonLine, marginBottom: number): void;
18
- export declare function collisionDetection(drawing: IDocumentSkeletonDrawing, lineHeight: number, lineTop: number, columnWidth: number): boolean;
18
+ export declare function collisionDetection(drawing: IDocumentSkeletonDrawing, lineHeight: number, lineTop: number, columnLeft: number, columnWidth: number): boolean;
19
+ export declare function getBoundingBox(angle: number, left: number, width: number, top: number, height: number): import('../../../..').IRect;
19
20
  export declare function createAndUpdateBlockAnchor(paragraphIndex: number, line: IDocumentSkeletonLine, top: number, drawingAnchor?: Map<number, IDocumentSkeletonDrawingAnchor>): void;
20
21
  export {};
@@ -1,5 +1,5 @@
1
1
  import { DocumentDataModel, INumberUnit, IObjectPositionH, IObjectPositionV, IParagraphStyle, ITextStyle, Nullable, BooleanNumber, GridType, SpacingRule } from '@univerjs/core';
2
- import { IDocumentSkeletonCached, IDocumentSkeletonColumn, IDocumentSkeletonDivide, IDocumentSkeletonDrawing, IDocumentSkeletonFontStyle, IDocumentSkeletonGlyph, IDocumentSkeletonLine, IDocumentSkeletonPage, ISkeletonResourceReference } from '../../../basics/i-document-skeleton-cached';
2
+ import { IDocumentSkeletonCached, IDocumentSkeletonColumn, IDocumentSkeletonDivide, IDocumentSkeletonDrawing, IDocumentSkeletonFontStyle, IDocumentSkeletonGlyph, IDocumentSkeletonLine, IDocumentSkeletonPage, IDocumentSkeletonSection, ISkeletonResourceReference } from '../../../basics/i-document-skeleton-cached';
3
3
  import { IDocsConfig, IParagraphConfig, ISectionBreakConfig } from '../../../basics/interfaces';
4
4
  import { DataStreamTreeNode } from '../view-model/data-stream-tree-node';
5
5
  import { DocumentViewModel } from '../view-model/document-view-model';
@@ -7,7 +7,7 @@ import { Hyphen } from './hyphenation/hyphen';
7
7
  import { LanguageDetector } from './hyphenation/language-detector';
8
8
 
9
9
  export declare function getLastPage(pages: IDocumentSkeletonPage[]): IDocumentSkeletonPage;
10
- export declare function getLastSection(page: IDocumentSkeletonPage): import('../../../basics/i-document-skeleton-cached').IDocumentSkeletonSection;
10
+ export declare function getLastSection(page: IDocumentSkeletonPage): IDocumentSkeletonSection;
11
11
  export declare function getLastColumn(page: IDocumentSkeletonPage): IDocumentSkeletonColumn;
12
12
  export declare function getLastLine(page: IDocumentSkeletonPage): IDocumentSkeletonLine | undefined;
13
13
  export declare function getLastLineByColumn(column: IDocumentSkeletonColumn): IDocumentSkeletonLine;
@@ -30,7 +30,7 @@ export declare function getLastSpan(page: IDocumentSkeletonPage): IDocumentSkele
30
30
  export declare function isColumnFull(page: IDocumentSkeletonPage): boolean;
31
31
  export declare function isBlankPage(page: IDocumentSkeletonPage): boolean;
32
32
  export declare function isBlankColumn(column: IDocumentSkeletonColumn): boolean;
33
- export declare function getNumberUnitValue(unitValue: number | INumberUnit, benchMark: number): number;
33
+ export declare function getNumberUnitValue(unitValue: Nullable<INumberUnit>, benchMark: number): number;
34
34
  export declare function getCharSpaceApply(charSpace: number | undefined, defaultTabStop: number, gridType?: GridType, snapToGrid?: BooleanNumber): number;
35
35
  export declare function validationGrid(gridType?: GridType, snapToGrid?: BooleanNumber): boolean;
36
36
  export declare function getLineHeightConfig(sectionBreakConfig: ISectionBreakConfig, paragraphConfig: IParagraphConfig): {
@@ -49,8 +49,9 @@ export declare function getCharSpaceConfig(sectionBreakConfig: ISectionBreakConf
49
49
  snapToGrid: BooleanNumber;
50
50
  };
51
51
  export declare function updateBlockIndex(pages: IDocumentSkeletonPage[], start?: number): void;
52
- export declare function spanIterator(pages: IDocumentSkeletonPage[], iteratorFunction: (glyph: IDocumentSkeletonGlyph) => void): void;
53
- export declare function lineIterator(pages: IDocumentSkeletonPage[], iteratorFunction: (line: IDocumentSkeletonLine) => void): void;
52
+ export declare function updateInlineDrawingCoords(ctx: ILayoutContext, pages: IDocumentSkeletonPage[]): void;
53
+ export declare function glyphIterator(pages: IDocumentSkeletonPage[], cb: (glyph: IDocumentSkeletonGlyph, divide: IDocumentSkeletonDivide, line: IDocumentSkeletonLine, column: IDocumentSkeletonColumn, section: IDocumentSkeletonSection, page: IDocumentSkeletonPage) => void): void;
54
+ export declare function lineIterator(pages: IDocumentSkeletonPage[], cb: (line: IDocumentSkeletonLine, column: IDocumentSkeletonColumn, section: IDocumentSkeletonSection, page: IDocumentSkeletonPage) => void): void;
54
55
  export declare function columnIterator(pages: IDocumentSkeletonPage[], iteratorFunction: (column: IDocumentSkeletonColumn) => void): void;
55
56
  export declare function getPositionHorizon(positionH: IObjectPositionH, column: IDocumentSkeletonColumn, page: IDocumentSkeletonPage, objectWidth: number, isPageBreak?: boolean): number | undefined;
56
57
  export declare function getPositionVertical(positionV: IObjectPositionV, page: IDocumentSkeletonPage, lineTop: number, lineHeight: number, objectHeight: number, blockAnchorTop?: number, isPageBreak?: boolean): number | undefined;
@@ -20,6 +20,9 @@ export interface ITextSelectionInnerParam {
20
20
  isEditing: boolean;
21
21
  style: ITextSelectionStyle;
22
22
  segmentPage: number;
23
+ options?: {
24
+ [key: string]: boolean;
25
+ };
23
26
  }
24
27
  export interface IActiveTextRange {
25
28
  startOffset: number;
@@ -36,6 +39,7 @@ export interface ITextSelectionRenderManager {
36
39
  readonly onInputBefore$: Observable<Nullable<IEditorInputConfig>>;
37
40
  readonly onKeydown$: Observable<Nullable<IEditorInputConfig>>;
38
41
  readonly onInput$: Observable<Nullable<IEditorInputConfig>>;
42
+ readonly onPointerDown$: Observable<void>;
39
43
  readonly onCompositionstart$: Observable<Nullable<IEditorInputConfig>>;
40
44
  readonly onCompositionupdate$: Observable<Nullable<IEditorInputConfig>>;
41
45
  readonly onCompositionend$: Observable<Nullable<IEditorInputConfig>>;
@@ -54,7 +58,9 @@ export interface ITextSelectionRenderManager {
54
58
  setStyle(style: ITextSelectionStyle): void;
55
59
  resetStyle(): void;
56
60
  removeAllTextRanges(): void;
57
- addTextRanges(ranges: ISuccinctTextRangeParam[], isEditing?: boolean): void;
61
+ addTextRanges(ranges: ISuccinctTextRangeParam[], isEditing?: boolean, options?: {
62
+ [key: string]: boolean;
63
+ }): void;
58
64
  sync(): void;
59
65
  activate(x: number, y: number): void;
60
66
  deactivate(): void;
@@ -98,6 +104,8 @@ export declare class TextSelectionRenderManager extends RxDisposable implements
98
104
  readonly onFocus$: Observable<Nullable<IEditorInputConfig>>;
99
105
  private readonly _onBlur$;
100
106
  readonly onBlur$: Observable<Nullable<IEditorInputConfig>>;
107
+ private readonly _onPointerDown$;
108
+ readonly onPointerDown$: Observable<void>;
101
109
  private _container;
102
110
  private _inputParent;
103
111
  private _input;
@@ -121,13 +129,16 @@ export declare class TextSelectionRenderManager extends RxDisposable implements
121
129
  __getEditorContainer(): HTMLElement;
122
130
  getViewPort(): Viewport;
123
131
  setSegment(id: string): void;
132
+ getSegment(): string;
124
133
  setSegmentPage(pageIndex: number): void;
125
134
  getSegmentPage(): number;
126
135
  setStyle(style?: ITextSelectionStyle): void;
127
136
  resetStyle(): void;
128
137
  enableSelection(): void;
129
138
  disableSelection(): void;
130
- addTextRanges(ranges: ISuccinctTextRangeParam[], isEditing?: boolean): void;
139
+ addTextRanges(ranges: ISuccinctTextRangeParam[], isEditing?: boolean, options?: {
140
+ [key: string]: boolean;
141
+ }): void;
131
142
  setCursorManually(evtOffsetX: number, evtOffsetY: number): void;
132
143
  sync(): void;
133
144
  activate(x: number, y: number): void;
@@ -167,4 +178,4 @@ export declare class TextSelectionRenderManager extends RxDisposable implements
167
178
  private _detachEvent;
168
179
  private _activeSelectionRefresh;
169
180
  }
170
- export declare const ITextSelectionRenderManager: import('@wendellhu/redi').IdentifierDecorator<TextSelectionRenderManager>;
181
+ export declare const ITextSelectionRenderManager: import('@univerjs/core').IdentifierDecorator<TextSelectionRenderManager>;
@@ -1,5 +1,4 @@
1
- import { ICustomDecorationForInterceptor, ICustomRangeForInterceptor, IDocumentBody, ITextRun, Nullable, DocumentDataModel } from '@univerjs/core';
2
- import { IDisposable } from '@wendellhu/redi';
1
+ import { ICustomDecorationForInterceptor, ICustomRangeForInterceptor, IDisposable, IDocumentBody, ITextRun, Nullable, DocumentDataModel } from '@univerjs/core';
3
2
  import { DataStreamTreeNode } from './data-stream-tree-node';
4
3
 
5
4
  export interface ICustomRangeInterceptor {
@@ -51,6 +50,7 @@ export declare class DocumentViewModel implements IDisposable {
51
50
  */
52
51
  getTextRun(index: number): ITextRun | undefined;
53
52
  getCustomBlock(index: number): import('@univerjs/core').ICustomBlock | undefined;
53
+ getCustomBlockWithoutSetCurrentIndex(index: number): import('@univerjs/core').ICustomBlock | undefined;
54
54
  getTable(index: number): import('@univerjs/core').ITable | undefined;
55
55
  getCustomRangeRaw(index: number): import('@univerjs/core').ICustomRange | undefined;
56
56
  getCustomRange(index: number): Nullable<ICustomRangeForInterceptor>;
@@ -37,7 +37,7 @@ export declare const DEFAULT_PADDING_DATA: {
37
37
  };
38
38
  export declare const RENDER_RAW_FORMULA_KEY = "RENDER_RAW_FORMULA";
39
39
  export declare class SpreadsheetSkeleton extends Skeleton {
40
- private _worksheet;
40
+ readonly worksheet: Worksheet;
41
41
  /**
42
42
  * @deprecated avoid use `IWorksheetData` directly, use API provided by `Worksheet`, otherwise
43
43
  * `ViewModel` will be not working.
@@ -65,7 +65,7 @@ export declare class SpreadsheetSkeleton extends Skeleton {
65
65
  private _marginTop;
66
66
  private _marginLeft;
67
67
  private _renderRawFormula;
68
- constructor(_worksheet: Worksheet | undefined,
68
+ constructor(worksheet: Worksheet,
69
69
  /**
70
70
  * @deprecated avoid use `IWorksheetData` directly, use API provided by `Worksheet`, otherwise
71
71
  * `ViewModel` will be not working.
@@ -88,23 +88,16 @@ export declare class SpreadsheetSkeleton extends Skeleton {
88
88
  get mergeData(): IRange[];
89
89
  get rowHeaderWidthAndMarginLeft(): number;
90
90
  get columnHeaderHeightAndMarginTop(): number;
91
- get worksheet(): Worksheet | undefined;
92
- /**
93
- * @deprecated
94
- */
95
- static create(worksheet: Worksheet | undefined, config: IWorksheetData, cellData: ObjectMatrix<Nullable<ICellData>>, styles: Styles, localeService: LocaleService, contextService: IContextService): SpreadsheetSkeleton;
96
- /**
97
- * TODO: DR-Univer, fix as unknown as
98
- */
99
91
  dispose(): void;
100
92
  /**
101
93
  * @deprecated should never expose a property that is provided by another module!
102
94
  */
103
- getCellData(): ObjectMatrix<Nullable<ICellData>>;
95
+ getsStyles(): Styles;
104
96
  /**
105
- * @deprecated should never expose a property that is provided by another module!
97
+ * Get which Workbook and Worksheet this skeleton is attached to.
98
+ * @returns [unitId, sheetId]
106
99
  */
107
- getsStyles(): Styles;
100
+ getLocation(): [string, string];
108
101
  private _initContextListener;
109
102
  setOverflowCache(value: ObjectMatrix<IRange>): void;
110
103
  setMarginLeft(left: number): void;
@@ -123,12 +116,7 @@ export declare class SpreadsheetSkeleton extends Skeleton {
123
116
  */
124
117
  getWorksheetConfig(): IWorksheetData;
125
118
  getRowColumnSegmentByViewBound(bound?: IBoundRectNoAngle): IRange;
126
- getMergeBounding(startRow: number, startColumn: number, endRow: number, endColumn: number): {
127
- startRow: number;
128
- startColumn: number;
129
- endRow: number;
130
- endColumn: number;
131
- };
119
+ getMergeBounding(startRow: number, startColumn: number, endRow: number, endColumn: number): IRange;
132
120
  appendToOverflowCache(row: number, column: number, startColumn: number, endColumn: number): void;
133
121
  getColumnCount(): number;
134
122
  getRowCount(): number;
@@ -237,13 +225,15 @@ export declare class SpreadsheetSkeleton extends Skeleton {
237
225
  startY: number;
238
226
  endX: number;
239
227
  endY: number;
240
- startColumn: number;
241
- endColumn: number;
242
228
  rangeType?: import('@univerjs/core').RANGE_TYPE;
243
229
  startAbsoluteRefType?: import('@univerjs/core').AbsoluteRefType;
244
230
  endAbsoluteRefType?: import('@univerjs/core').AbsoluteRefType;
245
231
  startRow: number;
246
232
  endRow: number;
233
+ unitId?: string;
234
+ sheetId?: string;
235
+ startColumn: number;
236
+ endColumn: number;
247
237
  };
248
238
  };
249
239
  convertTransformToOffsetX(offsetX: number, scaleX: number, scrollXY: {
@@ -254,7 +244,7 @@ export declare class SpreadsheetSkeleton extends Skeleton {
254
244
  x: number;
255
245
  y: number;
256
246
  }): number;
257
- getSelectionBounding(startRow: number, startColumn: number, endRow: number, endColumn: number): IRange;
247
+ getSelectionMergeBounding(startRow: number, startColumn: number, endRow: number, endColumn: number): IRange;
258
248
  getBlankCellDocumentModel(cell: Nullable<ICellData>): IDocumentLayoutObject;
259
249
  getCellDocumentModelWithFormula(cell: ICellData): Nullable<IDocumentLayoutObject>;
260
250
  private _getCellDocumentModel;
@@ -1,3 +1,4 @@
1
+ import { IRange } from '@univerjs/core';
1
2
  import { IBoundRectNoAngle, IViewportInfo, Vector2 } from '../../basics/vector2';
2
3
  import { Canvas } from '../../canvas';
3
4
  import { UniverRenderingContext } from '../../context';
@@ -56,12 +57,7 @@ export declare class Spreadsheet extends SheetComponent {
56
57
  */
57
58
  makeForceDirty(state?: boolean): void;
58
59
  setForceDisableGridlines(disabled: boolean): void;
59
- getSelectionBounding(startRow: number, startColumn: number, endRow: number, endColumn: number): {
60
- startRow: number;
61
- startColumn: number;
62
- endRow: number;
63
- endColumn: number;
64
- } | undefined;
60
+ getSelectionBounding(startRow: number, startColumn: number, endRow: number, endColumn: number): IRange | undefined;
65
61
  /**
66
62
  * Since multiple controllers, not just the sheet-render.controller, invoke spreadsheet.makeDirty() — for instance, the cf.render-controller — it's essential to also call viewport.markDirty() whenever spreadsheet.makeDirty() is triggered.
67
63
  * @param state
@@ -1,3 +1,4 @@
1
+ import { Observable } from 'rxjs';
1
2
  import { CURSOR_TYPE } from './basics/const';
2
3
  import { Canvas, CanvasRenderMode } from './canvas';
3
4
  import { Scene } from './scene';
@@ -6,9 +7,11 @@ import { ThinEngine } from './thin-engine';
6
7
  export declare class Engine extends ThinEngine<Scene> {
7
8
  renderEvenInBackground: boolean;
8
9
  private readonly _beginFrame$;
9
- readonly beginFrame$: import('rxjs').Observable<void>;
10
+ readonly beginFrame$: Observable<void>;
10
11
  private readonly _endFrame$;
11
- readonly endFrame$: import('rxjs').Observable<void>;
12
+ readonly endFrame$: Observable<void>;
13
+ private _rect$;
14
+ get clientRect$(): Observable<void>;
12
15
  private _container;
13
16
  private _canvas;
14
17
  private _renderingQueueLaunched;
@@ -0,0 +1,3 @@
1
+ import { Observable } from 'rxjs';
2
+
3
+ export declare function observeClientRect(containerElement: HTMLElement): Observable<void>;
@@ -24,7 +24,7 @@ export * from './group';
24
24
  export * from './layer';
25
25
  export { IRenderingEngine, UniverRenderEnginePlugin } from './render-engine';
26
26
  export { type RenderComponentType, IRenderManagerService, RenderManagerService } from './render-manager/render-manager.service';
27
- export { RenderUnit, type IRender, type IRenderModuleCtor, type IRenderModule, type IRenderContext } from './render-manager/render-unit';
27
+ export { RenderUnit, type IRender, type IRenderModule, type IRenderContext } from './render-manager/render-unit';
28
28
  export * from './scene';
29
29
  export * from './scene-viewer';
30
30
  export * from './scroll-timer';
@@ -45,3 +45,5 @@ export { getCharSpaceApply, getNumberUnitValue } from './components/docs/layout/
45
45
  export { type IChangeObserverConfig } from './scene.transformer';
46
46
  export { DEFAULT_PADDING_DATA } from './components/sheets/sheet-skeleton';
47
47
  export { DocumentEditArea } from './components/docs/view-model/document-view-model';
48
+ export { lineIterator, glyphIterator } from './components/docs/layout/tools';
49
+ export { getOneTextSelectionRange } from './components/docs/text-selection/convert-cursor';
@@ -1,11 +1,10 @@
1
- import { Plugin } from '@univerjs/core';
2
- import { Injector } from '@wendellhu/redi';
1
+ import { Injector, Plugin } from '@univerjs/core';
3
2
  import { Engine } from './engine';
4
3
 
5
4
  /**
6
5
  * The global rendering engine.
7
6
  */
8
- export declare const IRenderingEngine: import('@wendellhu/redi').IdentifierDecorator<Engine>;
7
+ export declare const IRenderingEngine: import('@univerjs/core').IdentifierDecorator<Engine>;
9
8
  export declare class UniverRenderEnginePlugin extends Plugin {
10
9
  readonly _injector: Injector;
11
10
  static pluginName: string;
@@ -1,12 +1,11 @@
1
- import { Nullable, UnitModel, UnitType, UniverInstanceType, Disposable, IUniverInstanceService } from '@univerjs/core';
2
- import { DependencyIdentifier, IDisposable, Injector } from '@wendellhu/redi';
1
+ import { Dependency, DependencyIdentifier, IDisposable, Nullable, UnitModel, UnitType, UniverInstanceType, Disposable, Injector, IUniverInstanceService } from '@univerjs/core';
3
2
  import { Observable } from 'rxjs';
4
3
  import { BaseObject } from '../base-object';
5
4
  import { DocComponent } from '../components/docs/doc-component';
6
5
  import { SheetComponent } from '../components/sheets/sheet-component';
7
6
  import { Slide } from '../components/slides/slide';
8
7
  import { Engine } from '../engine';
9
- import { IRender, IRenderModuleCtor } from './render-unit';
8
+ import { IRender, RenderUnit } from './render-unit';
10
9
 
11
10
  export type RenderComponentType = SheetComponent | DocComponent | Slide | BaseObject;
12
11
  export interface IRenderManagerService extends IDisposable {
@@ -17,19 +16,23 @@ export interface IRenderManagerService extends IDisposable {
17
16
  removeRender(unitId: string): void;
18
17
  setCurrent(unitId: string): void;
19
18
  getRenderById(unitId: string): Nullable<IRender>;
19
+ getAllRenderersOfType(type: UniverInstanceType): RenderUnit[];
20
+ getCurrentTypeOfRenderer(type: UniverInstanceType): Nullable<RenderUnit>;
20
21
  getRenderAll(): Map<string, IRender>;
21
22
  defaultEngine: Engine;
22
23
  /** @deprecated */
23
24
  createRender$: Observable<string>;
24
25
  /** @deprecated this design is very very weird! Remove it. */
25
26
  create(unitId: string): void;
27
+ created$: Observable<IRender>;
28
+ disposed$: Observable<string>;
26
29
  /** @deprecated There will be multi units to render at the same time, so there is no *current*. */
27
30
  getCurrent(): Nullable<IRender>;
28
31
  /** @deprecated There will be multi units to render at the same time, so there is no *first*. */
29
32
  getFirst(): Nullable<IRender>;
30
33
  has(unitId: string): boolean;
31
34
  withCurrentTypeOfUnit<T>(type: UniverInstanceType, id: DependencyIdentifier<T>): Nullable<T>;
32
- registerRenderModule<T extends UnitModel>(type: UnitType, ctor: IRenderModuleCtor<T>): IDisposable;
35
+ registerRenderModule<T extends UnitModel>(type: UnitType, dep: Dependency<T>): IDisposable;
33
36
  }
34
37
  export declare class RenderManagerService extends Disposable implements IRenderManagerService {
35
38
  private readonly _injector;
@@ -42,14 +45,21 @@ export declare class RenderManagerService extends Disposable implements IRenderM
42
45
  private readonly _createRender$;
43
46
  /** @deprecated */
44
47
  readonly createRender$: Observable<string>;
48
+ private readonly _renderCreated$;
49
+ readonly created$: Observable<IRender>;
50
+ private readonly _renderDisposed$;
51
+ readonly disposed$: Observable<string>;
45
52
  get defaultEngine(): Engine;
46
- private readonly _renderControllers;
53
+ private readonly _renderDependencies;
47
54
  constructor(_injector: Injector, _univerInstanceService: IUniverInstanceService);
48
55
  dispose(): void;
49
- registerRenderModule(type: UnitType, ctor: IRenderModuleCtor): IDisposable;
56
+ registerRenderModules(type: UnitType, deps: Dependency[]): IDisposable;
57
+ registerRenderModule(type: UnitType, ctor: Dependency): IDisposable;
50
58
  private _getRenderControllersForType;
51
59
  create(unitId: string): void;
52
60
  createRender(unitId: string): IRender;
61
+ getAllRenderersOfType(type: UniverInstanceType): RenderUnit[];
62
+ getCurrentTypeOfRenderer(type: UniverInstanceType): Nullable<RenderUnit>;
53
63
  withCurrentTypeOfUnit<T>(type: UniverInstanceType, id: DependencyIdentifier<T>): Nullable<T>;
54
64
  private _createRender;
55
65
  addRender(unitId: string, item: IRender): void;
@@ -63,5 +73,5 @@ export declare class RenderManagerService extends Disposable implements IRenderM
63
73
  getRenderAll(): Map<string, IRender>;
64
74
  private _disposeItem;
65
75
  }
66
- export declare const IRenderManagerService: import('@wendellhu/redi').IdentifierDecorator<IRenderManagerService>;
76
+ export declare const IRenderManagerService: import('@univerjs/core').IdentifierDecorator<IRenderManagerService>;
67
77
  export declare function isDisposable(thing: unknown): thing is IDisposable;
@@ -1,5 +1,4 @@
1
- import { Nullable, UnitModel, UnitType, Disposable } from '@univerjs/core';
2
- import { DependencyIdentifier, IDisposable, Injector } from '@wendellhu/redi';
1
+ import { Dependency, DependencyIdentifier, IDisposable, Nullable, UnitModel, UnitType, Disposable, Injector } from '@univerjs/core';
3
2
  import { Engine } from '../engine';
4
3
  import { Scene } from '../scene';
5
4
  import { RenderComponentType } from './render-manager.service';
@@ -13,9 +12,6 @@ export interface IRender {
13
12
  isMainScene: boolean;
14
13
  with<T>(dependency: DependencyIdentifier<T>): T;
15
14
  }
16
- export interface IRenderModuleCtor<T extends UnitModel = UnitModel> {
17
- new (unit: IRenderContext<T>, ...args: any[]): IRenderModule;
18
- }
19
15
  export interface IRenderModule extends IDisposable {
20
16
  }
21
17
  /**
@@ -43,12 +39,12 @@ export declare class RenderUnit extends Disposable implements IRender {
43
39
  set scene(scene: Scene);
44
40
  get scene(): Scene;
45
41
  get components(): Map<string, RenderComponentType>;
46
- constructor(parentInjector: Injector, init: Pick<IRenderContext, 'engine' | 'scene' | 'isMainScene' | 'unit'>);
42
+ constructor(init: Pick<IRenderContext, 'engine' | 'scene' | 'isMainScene' | 'unit'>, parentInjector: Injector);
47
43
  dispose(): void;
48
44
  /**
49
45
  * Get render controller hold by this render unit.
50
46
  */
51
47
  with<T>(dependency: DependencyIdentifier<T>): T;
52
- addRenderControllers(ctors: IRenderModuleCtor[]): void;
53
- private _initControllers;
48
+ addRenderDependencies(dependencies: Dependency[]): void;
49
+ private _initDependencies;
54
50
  }
@@ -97,13 +97,24 @@ export declare class Scene extends ThinScene {
97
97
  initTransformer(config?: ITransformerConfig): void;
98
98
  getTransformerByCreate(): Transformer;
99
99
  getTransformer(): Nullable<Transformer>;
100
- getActiveViewportByRelativeCoord(coord: Vector2): Viewport | undefined;
100
+ /**
101
+ * prev getActiveViewportByRelativeCoord
102
+ * @param coord
103
+ * @returns
104
+ */
105
+ findViewportByPosToViewport(coord: Vector2): Viewport | undefined;
101
106
  getActiveViewportByCoord(coord: Vector2): Viewport | undefined;
102
- getScrollXYByRelativeCoords(coord: Vector2, viewPort?: Viewport): {
107
+ /**
108
+ * getViewportScrollXYInfo by viewport under cursor position
109
+ * prev getScrollXYByRelativeCoords
110
+ * @param pos
111
+ * @param viewPort
112
+ */
113
+ getVpScrollXYInfoByPosToVp(pos: Vector2, viewPort?: Viewport): {
103
114
  x: number;
104
115
  y: number;
105
116
  };
106
- getScrollXY(viewPort: Viewport): {
117
+ getViewportScrollXY(viewPort: Viewport): {
107
118
  x: number;
108
119
  y: number;
109
120
  };
@@ -112,7 +123,7 @@ export declare class Scene extends ThinScene {
112
123
  * @param coord Coordinates to be converted.
113
124
  * @returns
114
125
  */
115
- getRelativeCoord(coord: Vector2): Vector2;
126
+ getRelativeToViewportCoord(coord: Vector2): Vector2;
116
127
  clearLayer(): void;
117
128
  clearViewports(): void;
118
129
  getAncestorScale(): {
@@ -12,10 +12,12 @@ declare enum MoveObserverType {
12
12
  }
13
13
  export interface IChangeObserverConfig {
14
14
  objects: Map<string, BaseObject>;
15
+ type: MoveObserverType;
15
16
  moveX?: number;
16
17
  moveY?: number;
17
18
  angle?: number;
18
- type: MoveObserverType;
19
+ offsetX?: number;
20
+ offsetY?: number;
19
21
  }
20
22
  /**
21
23
  * Transformer constructor. Transformer is a special type of group that allow you transform
@@ -16,6 +16,7 @@ export interface IImageProps extends IShapeProps {
16
16
  * 20.1.9.18 prstGeom (Preset geometry)
17
17
  */
18
18
  prstGeom?: Nullable<PresetGeometryType>;
19
+ opacity?: number;
19
20
  }
20
21
  export declare class Image extends Shape<IImageProps> {
21
22
  protected _props: IImageProps;
@@ -25,6 +26,8 @@ export declare class Image extends Shape<IImageProps> {
25
26
  constructor(id: string, config: IImageProps);
26
27
  get srcRect(): Nullable<ISrcRect>;
27
28
  get prstGeom(): Nullable<PresetGeometryType>;
29
+ get opacity(): number;
30
+ setOpacity(opacity: number): void;
28
31
  get classType(): RENDER_CLASS_TYPE;
29
32
  transformByStateCloseCropper(option: IObjectFullState): void;
30
33
  changeSource(url: string): void;
@@ -1,5 +1,4 @@
1
- import { Disposable, EventSubject } from '@univerjs/core';
2
- import { IDisposable } from '@wendellhu/redi';
1
+ import { Disposable, EventSubject, IDisposable } from '@univerjs/core';
3
2
  import { CURSOR_TYPE, RENDER_CLASS_TYPE } from './basics/const';
4
3
  import { IEvent } from './basics/i-events';
5
4
  import { ITransformChangeState } from './basics/interfaces';