@univerjs/engine-render 0.1.17 → 0.2.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.
- package/lib/cjs/index.js +2 -2
- package/lib/es/index.js +20947 -20435
- package/lib/types/basics/i-document-skeleton-cached.d.ts +7 -16
- package/lib/types/basics/interfaces.d.ts +8 -4
- package/lib/types/basics/range.d.ts +2 -0
- package/lib/types/basics/tools.d.ts +5 -5
- package/lib/types/components/docs/document.d.ts +2 -1
- package/lib/types/components/docs/layout/block/paragraph/language-ruler.d.ts +4 -4
- package/lib/types/components/docs/layout/block/paragraph/linebreaking.d.ts +2 -1
- package/lib/types/components/docs/layout/doc-skeleton.d.ts +11 -6
- package/lib/types/components/docs/layout/shaping-engine/text-shaping.d.ts +1 -2
- package/lib/types/components/docs/layout/style/custom-decoration.d.ts +3 -0
- package/lib/types/components/docs/layout/style/custom-range.d.ts +3 -0
- package/lib/types/components/docs/layout/tools.d.ts +1 -1
- package/lib/types/components/docs/liquid.d.ts +1 -1
- package/lib/types/components/docs/text-selection/text-range.d.ts +6 -0
- package/lib/types/components/docs/text-selection/text-selection-render-manager.d.ts +10 -1
- package/lib/types/components/docs/view-model/document-view-model.d.ts +21 -2
- package/lib/types/components/sheets/extensions/sheet-extension.d.ts +1 -1
- package/lib/types/components/sheets/interfaces.d.ts +2 -2
- package/lib/types/components/sheets/sheet-skeleton.d.ts +7 -12
- package/lib/types/components/sheets/spreadsheet.d.ts +0 -1
- package/lib/types/engine.d.ts +2 -0
- package/lib/types/index.d.ts +2 -1
- package/lib/types/layer.d.ts +6 -0
- package/lib/types/render-manager/render-unit.d.ts +1 -1
- package/lib/types/scene.d.ts +7 -2
- package/lib/types/scene.input-manager.d.ts +3 -1
- package/lib/types/shape/dashedrect.d.ts +8 -0
- package/lib/types/shape/index.d.ts +1 -0
- package/lib/types/shape/shape.d.ts +2 -2
- package/lib/types/thin-scene.d.ts +2 -0
- package/lib/types/viewport.d.ts +35 -6
- package/lib/umd/index.js +2 -2
- package/package.json +8 -8
|
@@ -9,8 +9,8 @@ export interface IDocumentSkeletonCached extends ISkeletonResourceReference {
|
|
|
9
9
|
ed?: number;
|
|
10
10
|
}
|
|
11
11
|
export interface ISkeletonResourceReference {
|
|
12
|
-
skeHeaders: Map<string, Map<number,
|
|
13
|
-
skeFooters: Map<string, Map<number,
|
|
12
|
+
skeHeaders: Map<string, Map<number, IDocumentSkeletonHeaderFooter>>;
|
|
13
|
+
skeFooters: Map<string, Map<number, IDocumentSkeletonHeaderFooter>>;
|
|
14
14
|
skeListLevel?: Map<string, IDocumentSkeletonBullet[]>;
|
|
15
15
|
drawingAnchor?: Map<number, IDocumentSkeletonDrawingAnchor>;
|
|
16
16
|
}
|
|
@@ -19,20 +19,6 @@ export interface IDocumentSkeletonDrawingAnchor {
|
|
|
19
19
|
paragraphIndex: number;
|
|
20
20
|
top: number;
|
|
21
21
|
}
|
|
22
|
-
export interface IDocumentSkeletonHeaderFooterBase {
|
|
23
|
-
lines: IDocumentSkeletonLine[];
|
|
24
|
-
skeDrawings: Map<string, IDocumentSkeletonDrawing>;
|
|
25
|
-
height: number;
|
|
26
|
-
st: number;
|
|
27
|
-
ed: number;
|
|
28
|
-
marginLeft: number;
|
|
29
|
-
}
|
|
30
|
-
export interface IDocumentSkeletonHeader extends IDocumentSkeletonHeaderFooterBase {
|
|
31
|
-
marginTop: number;
|
|
32
|
-
}
|
|
33
|
-
export interface IDocumentSkeletonFooter extends IDocumentSkeletonHeaderFooterBase {
|
|
34
|
-
marginBottom: number;
|
|
35
|
-
}
|
|
36
22
|
export interface IDocumentSkeletonPage {
|
|
37
23
|
sections: IDocumentSkeletonSection[];
|
|
38
24
|
headerId: string;
|
|
@@ -42,7 +28,9 @@ export interface IDocumentSkeletonPage {
|
|
|
42
28
|
pageOrient: PageOrientType;
|
|
43
29
|
marginLeft: number;
|
|
44
30
|
marginRight: number;
|
|
31
|
+
originMarginTop: number;
|
|
45
32
|
marginTop: number;
|
|
33
|
+
originMarginBottom: number;
|
|
46
34
|
marginBottom: number;
|
|
47
35
|
pageNumber: number;
|
|
48
36
|
pageNumberStart: number;
|
|
@@ -57,6 +45,8 @@ export interface IDocumentSkeletonPage {
|
|
|
57
45
|
renderConfig?: IDocumentRenderConfig;
|
|
58
46
|
parent?: IDocumentSkeletonCached;
|
|
59
47
|
}
|
|
48
|
+
export interface IDocumentSkeletonHeaderFooter extends IDocumentSkeletonPage {
|
|
49
|
+
}
|
|
60
50
|
export interface IDocumentSkeletonSection {
|
|
61
51
|
columns: IDocumentSkeletonColumn[];
|
|
62
52
|
colCount: number;
|
|
@@ -127,6 +117,7 @@ export interface IDocumentSkeletonGlyph {
|
|
|
127
117
|
left: number;
|
|
128
118
|
count: number;
|
|
129
119
|
content: string;
|
|
120
|
+
raw: string;
|
|
130
121
|
adjustability: IAdjustability;
|
|
131
122
|
isJustifiable: boolean;
|
|
132
123
|
ts?: ITextStyle;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BooleanNumber, GridType, IDocStyleBase, IDocumentLayout, IOffset, IParagraphStyle, IReferenceSource, IScale, ISectionBreakBase, ISize, ITextStyle, ITransformState, LocaleService } from '@univerjs/core';
|
|
2
2
|
import { DocumentViewModel } from '../components/docs/view-model/document-view-model';
|
|
3
|
-
import { IDocumentSkeletonBullet, IDocumentSkeletonDrawing, IDocumentSkeletonDrawingAnchor, IDocumentSkeletonFontStyle,
|
|
3
|
+
import { IDocumentSkeletonBullet, IDocumentSkeletonDrawing, IDocumentSkeletonDrawingAnchor, IDocumentSkeletonFontStyle, IDocumentSkeletonGlyph, IDocumentSkeletonHeaderFooter } from './i-document-skeleton-cached';
|
|
4
4
|
import { Vector2 } from './vector2';
|
|
5
5
|
import { ITransformerConfig } from './transformer-config';
|
|
6
6
|
|
|
@@ -54,7 +54,7 @@ export interface ISectionBreakConfig extends IDocStyleBase, ISectionBreakBase, I
|
|
|
54
54
|
headerIds?: IHeaderIds;
|
|
55
55
|
footerIds?: IFooterIds;
|
|
56
56
|
useFirstPageHeaderFooter?: BooleanNumber;
|
|
57
|
-
|
|
57
|
+
evenAndOddHeaders?: BooleanNumber;
|
|
58
58
|
}
|
|
59
59
|
export interface IParagraphConfig {
|
|
60
60
|
paragraphIndex: number;
|
|
@@ -62,8 +62,8 @@ export interface IParagraphConfig {
|
|
|
62
62
|
paragraphInlineSkeDrawings?: Map<string, IDocumentSkeletonDrawing>;
|
|
63
63
|
bulletSkeleton?: IDocumentSkeletonBullet;
|
|
64
64
|
paragraphStyle?: IParagraphStyle;
|
|
65
|
-
skeHeaders: Map<string, Map<number,
|
|
66
|
-
skeFooters: Map<string, Map<number,
|
|
65
|
+
skeHeaders: Map<string, Map<number, IDocumentSkeletonHeaderFooter>>;
|
|
66
|
+
skeFooters: Map<string, Map<number, IDocumentSkeletonHeaderFooter>>;
|
|
67
67
|
drawingAnchor?: Map<number, IDocumentSkeletonDrawingAnchor>;
|
|
68
68
|
}
|
|
69
69
|
export interface IFontCreateConfig {
|
|
@@ -78,6 +78,8 @@ export interface INodeInfo {
|
|
|
78
78
|
node: IDocumentSkeletonGlyph;
|
|
79
79
|
ratioX: number;
|
|
80
80
|
ratioY: number;
|
|
81
|
+
segmentId: string;
|
|
82
|
+
segmentPage: number;
|
|
81
83
|
}
|
|
82
84
|
export interface INodeSearch {
|
|
83
85
|
glyph: number;
|
|
@@ -86,6 +88,8 @@ export interface INodeSearch {
|
|
|
86
88
|
column: number;
|
|
87
89
|
section: number;
|
|
88
90
|
page: number;
|
|
91
|
+
segmentPage: number;
|
|
92
|
+
isInBody: boolean;
|
|
89
93
|
}
|
|
90
94
|
export interface INodePosition extends INodeSearch {
|
|
91
95
|
isBack: boolean;
|
|
@@ -13,6 +13,8 @@ export interface ITextRangeWithStyle extends ITextRangeParam {
|
|
|
13
13
|
export interface ISuccinctTextRangeParam {
|
|
14
14
|
startOffset: number;
|
|
15
15
|
endOffset: number;
|
|
16
|
+
segmentId?: string;
|
|
17
|
+
segmentPage?: number;
|
|
16
18
|
style?: ITextSelectionStyle;
|
|
17
19
|
}
|
|
18
20
|
export declare enum RANGE_DIRECTION {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IRange, IRangeWithCoord, IScale,
|
|
1
|
+
import { IRange, IRangeWithCoord, IScale, ISelectionCellWithMergeInfo, IStyleBase, LocaleService, Nullable } from '@univerjs/core';
|
|
2
2
|
import { IBoundRectNoAngle } from './vector2';
|
|
3
3
|
import { IDocumentSkeletonFontStyle } from './i-document-skeleton-cached';
|
|
4
4
|
|
|
@@ -72,7 +72,7 @@ export declare function getCellPositionByIndex(row: number, column: number, rowH
|
|
|
72
72
|
startX: number;
|
|
73
73
|
endX: number;
|
|
74
74
|
};
|
|
75
|
-
export declare function getCellByIndex(row: number, column: number, rowHeightAccumulation: number[], columnWidthAccumulation: number[], mergeData: IRange[]):
|
|
75
|
+
export declare function getCellByIndex(row: number, column: number, rowHeightAccumulation: number[], columnWidthAccumulation: number[], mergeData: IRange[]): ISelectionCellWithMergeInfo;
|
|
76
76
|
/**
|
|
77
77
|
* Determine whether there are any cells in a row that are not in the merged cells, mainly used for the calculation of auto height
|
|
78
78
|
*/
|
|
@@ -84,9 +84,9 @@ export declare function mergeInfoOffset(mergeInfo: IRangeWithCoord, offsetX: num
|
|
|
84
84
|
endY: number;
|
|
85
85
|
startColumn: number;
|
|
86
86
|
endColumn: number;
|
|
87
|
-
rangeType?: import('@univerjs/core').RANGE_TYPE
|
|
88
|
-
startAbsoluteRefType?: import('@univerjs/core').AbsoluteRefType
|
|
89
|
-
endAbsoluteRefType?: import('@univerjs/core').AbsoluteRefType
|
|
87
|
+
rangeType?: import('@univerjs/core').RANGE_TYPE;
|
|
88
|
+
startAbsoluteRefType?: import('@univerjs/core').AbsoluteRefType;
|
|
89
|
+
endAbsoluteRefType?: import('@univerjs/core').AbsoluteRefType;
|
|
90
90
|
startRow: number;
|
|
91
91
|
endRow: number;
|
|
92
92
|
};
|
|
@@ -29,9 +29,10 @@ export declare class Documents extends DocComponent {
|
|
|
29
29
|
dispose(): void;
|
|
30
30
|
getOffsetConfig(): IDocumentOffsetConfig;
|
|
31
31
|
getEngine(): Nullable<import('../..').ThinEngine<Scene>>;
|
|
32
|
-
draw(ctx: UniverRenderingContext, bounds?: IViewportInfo): void;
|
|
33
32
|
changeSkeleton(newSkeleton: DocumentSkeleton): this;
|
|
34
33
|
protected _draw(ctx: UniverRenderingContext, bounds?: IViewportInfo): void;
|
|
34
|
+
draw(ctx: UniverRenderingContext, bounds?: IViewportInfo): void;
|
|
35
|
+
private _drawHeaderFooter;
|
|
35
36
|
private _horizontalHandler;
|
|
36
37
|
private _verticalHandler;
|
|
37
38
|
private _startRotation;
|
|
@@ -3,19 +3,19 @@ import { ISectionBreakConfig } from '../../../../../basics/interfaces';
|
|
|
3
3
|
import { DataStreamTreeNode } from '../../../view-model/data-stream-tree-node';
|
|
4
4
|
import { DocumentViewModel } from '../../../view-model/document-view-model';
|
|
5
5
|
|
|
6
|
-
export declare function otherHandler(index: number, charArray: string,
|
|
6
|
+
export declare function otherHandler(index: number, charArray: string, viewModel: DocumentViewModel, paragraphNode: DataStreamTreeNode, sectionBreakConfig: ISectionBreakConfig, paragraphStyle: IParagraphStyle): {
|
|
7
7
|
step: number;
|
|
8
8
|
glyphGroup: import('../../../../..').IDocumentSkeletonGlyph[];
|
|
9
9
|
};
|
|
10
|
-
export declare function ArabicHandler(index: number, charArray: string,
|
|
10
|
+
export declare function ArabicHandler(index: number, charArray: string, viewModel: DocumentViewModel, paragraphNode: DataStreamTreeNode, sectionBreakConfig: ISectionBreakConfig, paragraphStyle: IParagraphStyle): {
|
|
11
11
|
step: number;
|
|
12
12
|
glyphGroup: import('../../../../..').IDocumentSkeletonGlyph[];
|
|
13
13
|
};
|
|
14
|
-
export declare function emojiHandler(index: number, charArray: string,
|
|
14
|
+
export declare function emojiHandler(index: number, charArray: string, viewModel: DocumentViewModel, paragraphNode: DataStreamTreeNode, sectionBreakConfig: ISectionBreakConfig, paragraphStyle: IParagraphStyle): {
|
|
15
15
|
step: number;
|
|
16
16
|
glyphGroup: import('../../../../..').IDocumentSkeletonGlyph[];
|
|
17
17
|
};
|
|
18
|
-
export declare function TibetanHandler(index: number, charArray: string,
|
|
18
|
+
export declare function TibetanHandler(index: number, charArray: string, viewModel: DocumentViewModel, paragraphNode: DataStreamTreeNode, sectionBreakConfig: ISectionBreakConfig, paragraphStyle: IParagraphStyle): {
|
|
19
19
|
step: number;
|
|
20
20
|
glyphGroup: import('../../../../..').IDocumentSkeletonGlyph[];
|
|
21
21
|
};
|
|
@@ -2,6 +2,7 @@ import { IDocumentSkeletonPage } from '../../../../../basics/i-document-skeleton
|
|
|
2
2
|
import { ILayoutContext } from '../../tools';
|
|
3
3
|
import { DataStreamTreeNode } from '../../../view-model/data-stream-tree-node';
|
|
4
4
|
import { ISectionBreakConfig } from '../../../../../basics/interfaces';
|
|
5
|
+
import { DocumentViewModel } from '../../../view-model/document-view-model';
|
|
5
6
|
import { IShapedText } from './shaping';
|
|
6
7
|
|
|
7
|
-
export declare function lineBreaking(ctx: ILayoutContext, shapedTextList: IShapedText[], curPage: IDocumentSkeletonPage, paragraphNode: DataStreamTreeNode, sectionBreakConfig: ISectionBreakConfig): IDocumentSkeletonPage[];
|
|
8
|
+
export declare function lineBreaking(ctx: ILayoutContext, viewModel: DocumentViewModel, shapedTextList: IShapedText[], curPage: IDocumentSkeletonPage, paragraphNode: DataStreamTreeNode, sectionBreakConfig: ISectionBreakConfig): IDocumentSkeletonPage[];
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { LocaleService, Nullable } from '@univerjs/core';
|
|
2
|
-
import { IDocumentSkeletonCached, IDocumentSkeletonGlyph, PageLayoutType } from '../../../basics/i-document-skeleton-cached';
|
|
2
|
+
import { IDocumentSkeletonCached, IDocumentSkeletonGlyph, IDocumentSkeletonPage, PageLayoutType } from '../../../basics/i-document-skeleton-cached';
|
|
3
3
|
import { INodeInfo, INodePosition, INodeSearch } from '../../../basics/interfaces';
|
|
4
4
|
import { IViewportInfo, Vector2 } from '../../../basics/vector2';
|
|
5
5
|
import { Skeleton } from '../../skeleton';
|
|
6
|
-
import { DocumentViewModel } from '../view-model/document-view-model';
|
|
6
|
+
import { DocumentViewModel, DocumentEditArea } from '../view-model/document-view-model';
|
|
7
7
|
|
|
8
8
|
export declare enum DocumentSkeletonState {
|
|
9
9
|
PENDING = "pending",
|
|
@@ -30,10 +30,15 @@ export declare class DocumentSkeleton extends Skeleton {
|
|
|
30
30
|
};
|
|
31
31
|
private _getPageActualWidth;
|
|
32
32
|
getPageSize(): import('@univerjs/core').ISize | undefined;
|
|
33
|
-
findPositionByGlyph(glyph: IDocumentSkeletonGlyph): Nullable<INodeSearch>;
|
|
34
|
-
findNodePositionByCharIndex(charIndex: number, isBack?: boolean): Nullable<INodePosition>;
|
|
35
|
-
findNodeByCharIndex(charIndex: number): Nullable<IDocumentSkeletonGlyph>;
|
|
33
|
+
findPositionByGlyph(glyph: IDocumentSkeletonGlyph, segmentPage: number): Nullable<INodeSearch>;
|
|
34
|
+
findNodePositionByCharIndex(charIndex: number, isBack?: boolean, segmentId?: string, segmentPIndex?: number): Nullable<INodePosition>;
|
|
35
|
+
findNodeByCharIndex(charIndex: number, segmentId?: string, segmentPageIndex?: number): Nullable<IDocumentSkeletonGlyph>;
|
|
36
36
|
findGlyphByPosition(position: Nullable<INodePosition>): IDocumentSkeletonGlyph | undefined;
|
|
37
|
+
findEditAreaByCoord(coord: Vector2, pageLayoutType: PageLayoutType, pageMarginLeft: number, pageMarginTop: number): {
|
|
38
|
+
editArea: DocumentEditArea;
|
|
39
|
+
pageNumber: number;
|
|
40
|
+
page: Nullable<IDocumentSkeletonPage>;
|
|
41
|
+
};
|
|
37
42
|
findNodeByCoord(coord: Vector2, pageLayoutType: PageLayoutType, pageMarginLeft: number, pageMarginTop: number): Nullable<INodeInfo>;
|
|
38
43
|
private _getNearestNode;
|
|
39
44
|
private _getPageBoundingBox;
|
|
@@ -68,5 +73,5 @@ export declare class DocumentSkeleton extends Skeleton {
|
|
|
68
73
|
*/
|
|
69
74
|
private _createSkeleton;
|
|
70
75
|
private _addNewSectionByContinuous;
|
|
71
|
-
private
|
|
76
|
+
private _findNodeByIndex;
|
|
72
77
|
}
|
|
@@ -72,7 +72,7 @@ export declare function getFontConfigFromLastGlyph(glyph: IDocumentSkeletonGlyph
|
|
|
72
72
|
snapToGrid: BooleanNumber;
|
|
73
73
|
pageWidth: number;
|
|
74
74
|
};
|
|
75
|
-
export declare function getFontCreateConfig(index: number,
|
|
75
|
+
export declare function getFontCreateConfig(index: number, viewModel: DocumentViewModel, paragraphNode: DataStreamTreeNode, sectionBreakConfig: ISectionBreakConfig, paragraphStyle: IParagraphStyle): IFontCreateConfig;
|
|
76
76
|
export declare function getNullSkeleton(): IDocumentSkeletonCached;
|
|
77
77
|
export declare function setPageParent(pages: IDocumentSkeletonPage[], parent: IDocumentSkeletonCached): void;
|
|
78
78
|
export interface ILayoutContext {
|
|
@@ -16,6 +16,12 @@ export declare function getAnchorBounding(pointsGroup: IPoint[][]): {
|
|
|
16
16
|
width: number;
|
|
17
17
|
height: number;
|
|
18
18
|
};
|
|
19
|
+
export declare function getLineBounding(pointsGroup: IPoint[][]): {
|
|
20
|
+
left: number;
|
|
21
|
+
right: number;
|
|
22
|
+
top: number;
|
|
23
|
+
bottom: number;
|
|
24
|
+
}[];
|
|
19
25
|
export declare class TextRange {
|
|
20
26
|
private _scene;
|
|
21
27
|
private _document;
|
|
@@ -19,6 +19,7 @@ export interface ITextSelectionInnerParam {
|
|
|
19
19
|
segmentId: string;
|
|
20
20
|
isEditing: boolean;
|
|
21
21
|
style: ITextSelectionStyle;
|
|
22
|
+
segmentPage: number;
|
|
22
23
|
}
|
|
23
24
|
export interface IActiveTextRange {
|
|
24
25
|
startOffset: number;
|
|
@@ -28,6 +29,7 @@ export interface IActiveTextRange {
|
|
|
28
29
|
endNodePosition: Nullable<INodePosition>;
|
|
29
30
|
direction: RANGE_DIRECTION;
|
|
30
31
|
segmentId: string;
|
|
32
|
+
segmentPage: number;
|
|
31
33
|
style: ITextSelectionStyle;
|
|
32
34
|
}
|
|
33
35
|
export interface ITextSelectionRenderManager {
|
|
@@ -47,6 +49,8 @@ export interface ITextSelectionRenderManager {
|
|
|
47
49
|
enableSelection(): void;
|
|
48
50
|
disableSelection(): void;
|
|
49
51
|
setSegment(id: string): void;
|
|
52
|
+
setSegmentPage(pageIndex: number): void;
|
|
53
|
+
getSegmentPage(): number;
|
|
50
54
|
setStyle(style: ITextSelectionStyle): void;
|
|
51
55
|
resetStyle(): void;
|
|
52
56
|
removeAllTextRanges(): void;
|
|
@@ -98,8 +102,11 @@ export declare class TextSelectionRenderManager extends RxDisposable implements
|
|
|
98
102
|
private _inputParent;
|
|
99
103
|
private _input;
|
|
100
104
|
private _scrollTimers;
|
|
105
|
+
private _viewportScrollX;
|
|
106
|
+
private _viewportScrollY;
|
|
101
107
|
private _rangeList;
|
|
102
108
|
private _currentSegmentId;
|
|
109
|
+
private _currentSegmentPage;
|
|
103
110
|
private _selectionStyle;
|
|
104
111
|
private _isSelectionEnabled;
|
|
105
112
|
private _viewPortObserverMap;
|
|
@@ -114,11 +121,14 @@ export declare class TextSelectionRenderManager extends RxDisposable implements
|
|
|
114
121
|
__getEditorContainer(): HTMLElement;
|
|
115
122
|
getViewPort(): Viewport;
|
|
116
123
|
setSegment(id: string): void;
|
|
124
|
+
setSegmentPage(pageIndex: number): void;
|
|
125
|
+
getSegmentPage(): number;
|
|
117
126
|
setStyle(style?: ITextSelectionStyle): void;
|
|
118
127
|
resetStyle(): void;
|
|
119
128
|
enableSelection(): void;
|
|
120
129
|
disableSelection(): void;
|
|
121
130
|
addTextRanges(ranges: ISuccinctTextRangeParam[], isEditing?: boolean): void;
|
|
131
|
+
setCursorManually(evtOffsetX: number, evtOffsetY: number): void;
|
|
122
132
|
sync(): void;
|
|
123
133
|
activate(x: number, y: number): void;
|
|
124
134
|
hasFocus(): boolean;
|
|
@@ -128,7 +138,6 @@ export declare class TextSelectionRenderManager extends RxDisposable implements
|
|
|
128
138
|
changeRuntime(docSkeleton: DocumentSkeleton, scene: Scene, document: Documents): void;
|
|
129
139
|
handleDblClick(evt: IPointerEvent | IMouseEvent): void;
|
|
130
140
|
handleTripleClick(evt: IPointerEvent | IMouseEvent): void;
|
|
131
|
-
setCursorManually(evtOffsetX: number, evtOffsetY: number): void;
|
|
132
141
|
eventTrigger(evt: IPointerEvent | IMouseEvent): void;
|
|
133
142
|
removeAllTextRanges(): void;
|
|
134
143
|
private _setSystemHighlightColorToStyle;
|
|
@@ -1,9 +1,19 @@
|
|
|
1
|
-
import { IDocumentBody, ITextRun, DocumentDataModel } from '@univerjs/core';
|
|
1
|
+
import { ICustomDecorationForInterceptor, ICustomRangeForInterceptor, IDocumentBody, ITextRun, Nullable, DocumentDataModel } from '@univerjs/core';
|
|
2
2
|
import { IDisposable } from '@wendellhu/redi';
|
|
3
3
|
import { DataStreamTreeNode } from './data-stream-tree-node';
|
|
4
4
|
|
|
5
|
+
export interface ICustomRangeInterceptor {
|
|
6
|
+
getCustomRange: (index: number) => Nullable<ICustomRangeForInterceptor>;
|
|
7
|
+
getCustomDecoration: (index: number) => Nullable<ICustomDecorationForInterceptor>;
|
|
8
|
+
}
|
|
9
|
+
export declare enum DocumentEditArea {
|
|
10
|
+
BODY = "BODY",
|
|
11
|
+
HEADER = "HEADER",
|
|
12
|
+
FOOTER = "FOOTER"
|
|
13
|
+
}
|
|
5
14
|
export declare class DocumentViewModel implements IDisposable {
|
|
6
15
|
private _documentDataModel;
|
|
16
|
+
private _interceptor;
|
|
7
17
|
children: DataStreamTreeNode[];
|
|
8
18
|
private _sectionBreakCurrentIndex;
|
|
9
19
|
private _paragraphCurrentIndex;
|
|
@@ -11,11 +21,17 @@ export declare class DocumentViewModel implements IDisposable {
|
|
|
11
21
|
private _customBlockCurrentIndex;
|
|
12
22
|
private _tableBlockCurrentIndex;
|
|
13
23
|
private _customRangeCurrentIndex;
|
|
24
|
+
private _editArea;
|
|
25
|
+
private readonly _editAreaChange$;
|
|
26
|
+
readonly editAreaChange$: import('rxjs').Observable<Nullable<DocumentEditArea>>;
|
|
14
27
|
headerTreeMap: Map<string, DocumentViewModel>;
|
|
15
28
|
footerTreeMap: Map<string, DocumentViewModel>;
|
|
16
29
|
constructor(_documentDataModel: DocumentDataModel);
|
|
30
|
+
registerCustomRangeInterceptor(interceptor: ICustomRangeInterceptor): IDisposable;
|
|
17
31
|
dispose(): void;
|
|
18
32
|
selfPlus(len: number, index: number): void;
|
|
33
|
+
getEditArea(): DocumentEditArea;
|
|
34
|
+
setEditArea(editArea: DocumentEditArea): void;
|
|
19
35
|
getPositionInParent(): number;
|
|
20
36
|
getLastIndex(): number;
|
|
21
37
|
getBody(): IDocumentBody | undefined;
|
|
@@ -36,7 +52,10 @@ export declare class DocumentViewModel implements IDisposable {
|
|
|
36
52
|
getTextRun(index: number): ITextRun | undefined;
|
|
37
53
|
getCustomBlock(index: number): import('@univerjs/core').ICustomBlock | undefined;
|
|
38
54
|
getTable(index: number): import('@univerjs/core').ITable | undefined;
|
|
39
|
-
|
|
55
|
+
getCustomRangeRaw(index: number): import('@univerjs/core').ICustomRange | undefined;
|
|
56
|
+
getCustomRange(index: number): Nullable<ICustomRangeForInterceptor>;
|
|
57
|
+
getCustomDecorationRaw(index: number): import('@univerjs/core').ICustomDecoration | undefined;
|
|
58
|
+
getCustomDecoration(index: number): Nullable<ICustomDecorationForInterceptor>;
|
|
40
59
|
protected _transformToTree(dataStream: string): DataStreamTreeNode[];
|
|
41
60
|
private _processPreviousNodesUntil;
|
|
42
61
|
private _batchParent;
|
|
@@ -7,7 +7,7 @@ export declare enum SHEET_EXTENSION_TYPE {
|
|
|
7
7
|
}
|
|
8
8
|
export declare class SheetExtension extends ComponentExtension<SpreadsheetSkeleton, SHEET_EXTENSION_TYPE, IRange[]> {
|
|
9
9
|
type: SHEET_EXTENSION_TYPE;
|
|
10
|
-
getCellIndex(rowIndex: number, columnIndex: number, rowHeightAccumulation: number[], columnWidthAccumulation: number[], dataMergeCache: IRange[]): import('@univerjs/core').
|
|
10
|
+
getCellIndex(rowIndex: number, columnIndex: number, rowHeightAccumulation: number[], columnWidthAccumulation: number[], dataMergeCache: IRange[]): import('@univerjs/core').ISelectionCellWithMergeInfo;
|
|
11
11
|
isRenderDiffRangesByCell(rangeP: IRange, diffRanges?: IRange[]): boolean;
|
|
12
12
|
isRenderDiffRangesByColumn(curStartColumn: number, curEndColumn: number, diffRanges?: IRange[]): boolean;
|
|
13
13
|
isRenderDiffRangesByRow(curStartRow: number, curEndRow: number, diffRanges?: IRange[]): boolean;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BorderStyleTypes, HorizontalAlign,
|
|
1
|
+
import { BorderStyleTypes, HorizontalAlign, ISelectionCellWithMergeInfo, ObjectMatrix, VerticalAlign, WrapStrategy } from '@univerjs/core';
|
|
2
2
|
import { BORDER_TYPE } from '../../basics/const';
|
|
3
3
|
import { DocumentSkeleton } from '../docs/layout/doc-skeleton';
|
|
4
4
|
import { Canvas } from '../../canvas';
|
|
@@ -28,7 +28,7 @@ interface fontCache {
|
|
|
28
28
|
}
|
|
29
29
|
export interface IStylesCache {
|
|
30
30
|
background?: backgroundCache;
|
|
31
|
-
backgroundPositions?: ObjectMatrix<
|
|
31
|
+
backgroundPositions?: ObjectMatrix<ISelectionCellWithMergeInfo>;
|
|
32
32
|
font?: fontCache;
|
|
33
33
|
border?: ObjectMatrix<BorderCache>;
|
|
34
34
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BooleanNumber, DocumentDataModel, HorizontalAlign, IContextService, LocaleService, ObjectMatrix, VerticalAlign, WrapStrategy, ICellData, IPaddingData, IRange, IRowAutoHeightInfo,
|
|
1
|
+
import { BooleanNumber, DocumentDataModel, HorizontalAlign, IContextService, LocaleService, ObjectMatrix, VerticalAlign, WrapStrategy, ICellData, IPaddingData, IRange, IRowAutoHeightInfo, ISelectionCellWithMergeInfo, ITextRotation, IWorksheetData, Nullable, Styles, Worksheet } from '@univerjs/core';
|
|
2
2
|
import { IBoundRectNoAngle, IViewportInfo } from '../../basics/vector2';
|
|
3
3
|
import { DocumentSkeleton } from '../docs/layout/doc-skeleton';
|
|
4
4
|
import { Skeleton } from '../skeleton';
|
|
@@ -165,7 +165,7 @@ export declare class SpreadsheetSkeleton extends Skeleton {
|
|
|
165
165
|
calculateCellIndexByPosition(offsetX: number, offsetY: number, scaleX: number, scaleY: number, scrollXY: {
|
|
166
166
|
x: number;
|
|
167
167
|
y: number;
|
|
168
|
-
}): Nullable<
|
|
168
|
+
}): Nullable<ISelectionCellWithMergeInfo>;
|
|
169
169
|
/**
|
|
170
170
|
*
|
|
171
171
|
* @param offsetX HTML coordinate system, mouse position x.
|
|
@@ -222,7 +222,7 @@ export declare class SpreadsheetSkeleton extends Skeleton {
|
|
|
222
222
|
* @param row Specified Row Coordinate
|
|
223
223
|
* @param column Specified Column Coordinate
|
|
224
224
|
*/
|
|
225
|
-
getCellByIndex(row: number, column: number):
|
|
225
|
+
getCellByIndex(row: number, column: number): ISelectionCellWithMergeInfo;
|
|
226
226
|
getCellByIndexWithNoHeader(row: number, column: number): {
|
|
227
227
|
actualRow: number;
|
|
228
228
|
actualColumn: number;
|
|
@@ -239,9 +239,9 @@ export declare class SpreadsheetSkeleton extends Skeleton {
|
|
|
239
239
|
endY: number;
|
|
240
240
|
startColumn: number;
|
|
241
241
|
endColumn: number;
|
|
242
|
-
rangeType?: import('@univerjs/core').RANGE_TYPE
|
|
243
|
-
startAbsoluteRefType?: import('@univerjs/core').AbsoluteRefType
|
|
244
|
-
endAbsoluteRefType?: import('@univerjs/core').AbsoluteRefType
|
|
242
|
+
rangeType?: import('@univerjs/core').RANGE_TYPE;
|
|
243
|
+
startAbsoluteRefType?: import('@univerjs/core').AbsoluteRefType;
|
|
244
|
+
endAbsoluteRefType?: import('@univerjs/core').AbsoluteRefType;
|
|
245
245
|
startRow: number;
|
|
246
246
|
endRow: number;
|
|
247
247
|
};
|
|
@@ -254,12 +254,7 @@ export declare class SpreadsheetSkeleton extends Skeleton {
|
|
|
254
254
|
x: number;
|
|
255
255
|
y: number;
|
|
256
256
|
}): number;
|
|
257
|
-
getSelectionBounding(startRow: number, startColumn: number, endRow: number, endColumn: number):
|
|
258
|
-
startRow: number;
|
|
259
|
-
startColumn: number;
|
|
260
|
-
endRow: number;
|
|
261
|
-
endColumn: number;
|
|
262
|
-
};
|
|
257
|
+
getSelectionBounding(startRow: number, startColumn: number, endRow: number, endColumn: number): IRange;
|
|
263
258
|
getBlankCellDocumentModel(cell: Nullable<ICellData>): IDocumentLayoutObject;
|
|
264
259
|
getCellDocumentModelWithFormula(cell: ICellData): Nullable<IDocumentLayoutObject>;
|
|
265
260
|
private _getCellDocumentModel;
|
|
@@ -65,7 +65,6 @@ export declare class Spreadsheet extends SheetComponent {
|
|
|
65
65
|
/**
|
|
66
66
|
* 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
67
|
* @param state
|
|
68
|
-
* @returns
|
|
69
68
|
*/
|
|
70
69
|
makeDirty(state?: boolean): this;
|
|
71
70
|
setDirtyArea(dirtyBounds: IBoundRectNoAngle[]): void;
|
package/lib/types/engine.d.ts
CHANGED
|
@@ -24,6 +24,8 @@ export declare class Engine extends ThinEngine<Scene> {
|
|
|
24
24
|
private _pointerMoveEvent;
|
|
25
25
|
private _pointerDownEvent;
|
|
26
26
|
private _pointerUpEvent;
|
|
27
|
+
private _pointerOutEvent;
|
|
28
|
+
private _pointerCancelEvent;
|
|
27
29
|
private _pointerBlurEvent;
|
|
28
30
|
private _pointerWheelEvent;
|
|
29
31
|
private _pointerEnterEvent;
|
package/lib/types/index.d.ts
CHANGED
|
@@ -31,7 +31,7 @@ export * from './scroll-timer';
|
|
|
31
31
|
export * from './shape';
|
|
32
32
|
export * from './viewport';
|
|
33
33
|
export { DocumentViewModel } from './components/docs/view-model/document-view-model';
|
|
34
|
-
export { getAnchorBounding, TEXT_RANGE_LAYER_INDEX, TextRange } from './components/docs/text-selection/text-range';
|
|
34
|
+
export { getAnchorBounding, TEXT_RANGE_LAYER_INDEX, TextRange, getLineBounding } from './components/docs/text-selection/text-range';
|
|
35
35
|
export { NodePositionConvertToCursor } from './components/docs/text-selection/convert-cursor';
|
|
36
36
|
export { Liquid } from './components/docs/liquid';
|
|
37
37
|
export { ITextSelectionRenderManager, TextSelectionRenderManager, getCanvasOffsetByEngine, } from './components/docs/text-selection/text-selection-render-manager';
|
|
@@ -44,3 +44,4 @@ export { ThinEngine } from './thin-engine';
|
|
|
44
44
|
export { getCharSpaceApply, getNumberUnitValue } from './components/docs/layout/tools';
|
|
45
45
|
export { type IChangeObserverConfig } from './scene.transformer';
|
|
46
46
|
export { DEFAULT_PADDING_DATA } from './components/sheets/sheet-skeleton';
|
|
47
|
+
export { DocumentEditArea } from './components/docs/view-model/document-view-model';
|
package/lib/types/layer.d.ts
CHANGED
|
@@ -20,6 +20,12 @@ export declare class Layer extends Disposable {
|
|
|
20
20
|
getObjectsByOrder(): BaseObject[];
|
|
21
21
|
getObjectsByOrderForPick(): BaseObject[];
|
|
22
22
|
getObjects(): BaseObject[];
|
|
23
|
+
/**
|
|
24
|
+
* insert o to _objects[]
|
|
25
|
+
* if o is a group, insert all its children and group itself to _objects[]
|
|
26
|
+
* @param o
|
|
27
|
+
* @returns
|
|
28
|
+
*/
|
|
23
29
|
addObject(o: BaseObject): this;
|
|
24
30
|
removeObject(object: BaseObject | string): void;
|
|
25
31
|
addObjects(objects: BaseObject[]): this;
|
|
@@ -29,7 +29,7 @@ export interface IRenderContext<T extends UnitModel = UnitModel> extends Omit<IR
|
|
|
29
29
|
* This class is responsible
|
|
30
30
|
*/
|
|
31
31
|
export declare class RenderUnit extends Disposable implements IRender {
|
|
32
|
-
readonly isRenderUnit:
|
|
32
|
+
readonly isRenderUnit: boolean;
|
|
33
33
|
get unitId(): string;
|
|
34
34
|
get type(): UnitType;
|
|
35
35
|
private readonly _injector;
|
package/lib/types/scene.d.ts
CHANGED
|
@@ -70,11 +70,16 @@ export declare class Scene extends ThinScene {
|
|
|
70
70
|
getLayer(zIndex?: number): Layer;
|
|
71
71
|
getLayerMaxZIndex(): number;
|
|
72
72
|
addLayer(...argument: Layer[]): void;
|
|
73
|
+
addObjects(objects: BaseObject[], zIndex?: number): this;
|
|
73
74
|
addObject(o: BaseObject, zIndex?: number): this;
|
|
75
|
+
/**
|
|
76
|
+
* make object parent to scene
|
|
77
|
+
* @param o
|
|
78
|
+
*/
|
|
74
79
|
setObjectBehavior(o: BaseObject): void;
|
|
75
|
-
addObjects(objects: BaseObject[], zIndex?: number): this;
|
|
76
80
|
removeObject(object?: BaseObject | string): this | undefined;
|
|
77
81
|
removeObjects(objects?: BaseObject[] | string[]): this | undefined;
|
|
82
|
+
getObjectsByLayer(zIndex: number): BaseObject[];
|
|
78
83
|
getAllObjects(): BaseObject[];
|
|
79
84
|
getAllObjectsByOrder(isDesc?: boolean): BaseObject[];
|
|
80
85
|
getAllObjectsByOrderForPick(isDesc?: boolean): BaseObject[];
|
|
@@ -119,7 +124,7 @@ export declare class Scene extends ThinScene {
|
|
|
119
124
|
scaleY: number;
|
|
120
125
|
};
|
|
121
126
|
dispose(): void;
|
|
122
|
-
pick(
|
|
127
|
+
pick(vec: Vector2): Nullable<BaseObject | Scene | ThinScene>;
|
|
123
128
|
triggerKeyDown(evt: IKeyboardEvent): void;
|
|
124
129
|
triggerKeyUp(evt: IKeyboardEvent): void;
|
|
125
130
|
triggerPointerUp(evt: IPointerEvent | IMouseEvent): boolean;
|
|
@@ -18,6 +18,8 @@ export declare class InputManager extends Disposable {
|
|
|
18
18
|
private _onPointerMove;
|
|
19
19
|
private _onPointerDown;
|
|
20
20
|
private _onPointerUp;
|
|
21
|
+
private _onPointerOut;
|
|
22
|
+
private _onPointerCancel;
|
|
21
23
|
private _onPointerEnter;
|
|
22
24
|
private _onPointerLeave;
|
|
23
25
|
private _onMouseWheel;
|
|
@@ -42,7 +44,7 @@ export declare class InputManager extends Disposable {
|
|
|
42
44
|
dispose(): void;
|
|
43
45
|
mouseLeaveEnterHandler(evt: IMouseEvent): void;
|
|
44
46
|
dragLeaveEnterHandler(evt: IMouseEvent): void;
|
|
45
|
-
attachControl(hasDown?: boolean, hasUp?: boolean,
|
|
47
|
+
attachControl(hasDown?: boolean, hasUp?: boolean, enableMove?: boolean, hasWheel?: boolean, hasEnter?: boolean, hasLeave?: boolean): void;
|
|
46
48
|
/**
|
|
47
49
|
* Detaches all event handlers
|
|
48
50
|
*/
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { IViewportInfo } from '../basics/vector2';
|
|
2
|
+
import { UniverRenderingContext } from '../context';
|
|
3
|
+
import { IRectProps, Rect } from './rect';
|
|
4
|
+
|
|
5
|
+
export declare class DashedRect extends Rect {
|
|
6
|
+
static drawWith(ctx: UniverRenderingContext, props: IRectProps | Rect): void;
|
|
7
|
+
protected _draw(ctx: UniverRenderingContext, viewportInfo?: IViewportInfo): void;
|
|
8
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IScale, Nullable } from '@univerjs/core';
|
|
1
|
+
import { IOffset, IScale, ISize, Nullable } from '@univerjs/core';
|
|
2
2
|
import { BaseObject } from '../base-object';
|
|
3
3
|
import { IObjectFullState } from '../basics/interfaces';
|
|
4
4
|
import { IViewportInfo, Vector2 } from '../basics/vector2';
|
|
@@ -7,7 +7,7 @@ import { UniverRenderingContext } from '../context';
|
|
|
7
7
|
export type LineJoin = 'round' | 'bevel' | 'miter';
|
|
8
8
|
export type LineCap = 'butt' | 'round' | 'square';
|
|
9
9
|
export type PaintFirst = 'fill' | 'stroke';
|
|
10
|
-
export interface IShapeProps extends IObjectFullState {
|
|
10
|
+
export interface IShapeProps extends IObjectFullState, ISize, IOffset, IScale {
|
|
11
11
|
hoverCursor?: Nullable<string>;
|
|
12
12
|
moveCursor?: string | null;
|
|
13
13
|
fillRule?: string;
|
|
@@ -16,6 +16,8 @@ export declare abstract class ThinScene extends Disposable {
|
|
|
16
16
|
onPointerMove$: EventSubject<IMouseEvent | IPointerEvent>;
|
|
17
17
|
onPointerUp$: EventSubject<IMouseEvent | IPointerEvent>;
|
|
18
18
|
onPointerEnter$: EventSubject<IMouseEvent | IPointerEvent>;
|
|
19
|
+
onPointerOut$: EventSubject<IMouseEvent | IPointerEvent>;
|
|
20
|
+
onPointerCancel$: EventSubject<IMouseEvent | IPointerEvent>;
|
|
19
21
|
onPointerLeave$: EventSubject<IMouseEvent | IPointerEvent>;
|
|
20
22
|
onDragEnter$: EventSubject<IDragEvent>;
|
|
21
23
|
onDragOver$: EventSubject<IDragEvent>;
|