@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.
- package/README.md +11 -2
- package/lib/cjs/index.js +2 -2
- package/lib/es/index.js +8361 -8089
- package/lib/types/basics/i-document-skeleton-cached.d.ts +5 -0
- package/lib/types/basics/tools.d.ts +4 -2
- package/lib/types/components/component.d.ts +1 -1
- package/lib/types/components/docs/layout/block/paragraph/layout-ruler.d.ts +2 -1
- package/lib/types/components/docs/layout/hyphenation/hyphen.d.ts +1 -1
- package/lib/types/components/docs/layout/hyphenation/language-detector.d.ts +1 -1
- package/lib/types/components/docs/layout/line-breaker/extensions/custom-block-linebreak-extension.d.ts +3 -0
- package/lib/types/components/docs/layout/model/line.d.ts +2 -1
- package/lib/types/components/docs/layout/tools.d.ts +6 -5
- package/lib/types/components/docs/text-selection/text-selection-render-manager.d.ts +14 -3
- package/lib/types/components/docs/view-model/document-view-model.d.ts +2 -2
- package/lib/types/components/sheets/sheet-skeleton.d.ts +12 -22
- package/lib/types/components/sheets/spreadsheet.d.ts +2 -6
- package/lib/types/engine.d.ts +5 -2
- package/lib/types/floating/util.d.ts +3 -0
- package/lib/types/index.d.ts +3 -1
- package/lib/types/render-engine.d.ts +2 -3
- package/lib/types/render-manager/render-manager.service.d.ts +17 -7
- package/lib/types/render-manager/render-unit.d.ts +4 -8
- package/lib/types/scene.d.ts +15 -4
- package/lib/types/scene.transformer.d.ts +3 -1
- package/lib/types/shape/image.d.ts +3 -0
- package/lib/types/thin-engine.d.ts +1 -2
- package/lib/umd/index.js +2 -2
- 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,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;
|
|
@@ -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):
|
|
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:
|
|
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
|
|
53
|
-
export declare function
|
|
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
|
|
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
|
|
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('@
|
|
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
|
-
|
|
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(
|
|
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
|
-
|
|
95
|
+
getsStyles(): Styles;
|
|
104
96
|
/**
|
|
105
|
-
*
|
|
97
|
+
* Get which Workbook and Worksheet this skeleton is attached to.
|
|
98
|
+
* @returns [unitId, sheetId]
|
|
106
99
|
*/
|
|
107
|
-
|
|
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
|
-
|
|
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
|
package/lib/types/engine.d.ts
CHANGED
|
@@ -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$:
|
|
10
|
+
readonly beginFrame$: Observable<void>;
|
|
10
11
|
private readonly _endFrame$;
|
|
11
|
-
readonly endFrame$:
|
|
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;
|
package/lib/types/index.d.ts
CHANGED
|
@@ -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
|
|
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('@
|
|
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,
|
|
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,
|
|
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
|
|
53
|
+
private readonly _renderDependencies;
|
|
47
54
|
constructor(_injector: Injector, _univerInstanceService: IUniverInstanceService);
|
|
48
55
|
dispose(): void;
|
|
49
|
-
|
|
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('@
|
|
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(
|
|
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
|
-
|
|
53
|
-
private
|
|
48
|
+
addRenderDependencies(dependencies: Dependency[]): void;
|
|
49
|
+
private _initDependencies;
|
|
54
50
|
}
|
package/lib/types/scene.d.ts
CHANGED
|
@@ -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
|
-
|
|
100
|
+
/**
|
|
101
|
+
* prev getActiveViewportByRelativeCoord
|
|
102
|
+
* @param coord
|
|
103
|
+
* @returns
|
|
104
|
+
*/
|
|
105
|
+
findViewportByPosToViewport(coord: Vector2): Viewport | undefined;
|
|
101
106
|
getActiveViewportByCoord(coord: Vector2): Viewport | undefined;
|
|
102
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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';
|