@univerjs/engine-render 0.2.6 → 0.2.8
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 +4 -2
- package/lib/es/index.js +6581 -5298
- package/lib/types/base-object.d.ts +4 -1
- package/lib/types/basics/cell-data.d.ts +0 -1
- package/lib/types/basics/document-node-tools.d.ts +7 -2
- package/lib/types/basics/draw.d.ts +0 -1
- package/lib/types/basics/group-transform.d.ts +0 -1
- package/lib/types/basics/i-document-skeleton-cached.d.ts +30 -4
- package/lib/types/basics/i-events.d.ts +0 -1
- package/lib/types/basics/interfaces.d.ts +8 -2
- package/lib/types/basics/offset-rotation-axis.d.ts +0 -1
- package/lib/types/basics/path2.d.ts +0 -1
- package/lib/types/basics/position.d.ts +0 -1
- package/lib/types/basics/quick-event.d.ts +0 -1
- package/lib/types/basics/range.d.ts +4 -2
- package/lib/types/basics/text-rotation.d.ts +0 -1
- package/lib/types/basics/tools.d.ts +0 -1
- package/lib/types/basics/transform.d.ts +0 -1
- package/lib/types/basics/transformer-config.d.ts +0 -1
- package/lib/types/basics/vector2.d.ts +0 -1
- package/lib/types/basics/viewport-subtract.d.ts +0 -1
- package/lib/types/canvas.d.ts +0 -1
- package/lib/types/components/component.d.ts +0 -1
- package/lib/types/components/docs/doc-background.d.ts +0 -1
- package/lib/types/components/docs/doc-component.d.ts +0 -1
- package/lib/types/components/docs/doc-extension.d.ts +0 -1
- package/lib/types/components/docs/document.d.ts +3 -1
- package/lib/types/components/docs/extensions/background.d.ts +0 -1
- package/lib/types/components/docs/extensions/border.d.ts +0 -1
- package/lib/types/components/docs/extensions/font-and-base-line.d.ts +0 -1
- package/lib/types/components/docs/extensions/line.d.ts +0 -1
- package/lib/types/components/docs/layout/block/paragraph/bullet-ruler.d.ts +0 -1
- package/lib/types/components/docs/layout/block/paragraph/bullet.d.ts +0 -1
- package/lib/types/components/docs/layout/block/paragraph/language-ruler.d.ts +0 -1
- package/lib/types/components/docs/layout/block/paragraph/layout-ruler.d.ts +0 -1
- package/lib/types/components/docs/layout/block/paragraph/line-adjustment.d.ts +0 -1
- package/lib/types/components/docs/layout/block/paragraph/linebreaking.d.ts +3 -3
- package/lib/types/components/docs/layout/block/paragraph/{layout.d.ts → paragraph-layout.d.ts} +0 -1
- package/lib/types/components/docs/layout/block/paragraph/shaping.d.ts +0 -1
- package/lib/types/components/docs/layout/block/section.d.ts +0 -1
- package/lib/types/components/docs/layout/block/table.d.ts +12 -0
- package/lib/types/components/docs/layout/doc-skeleton.d.ts +1 -1
- package/lib/types/components/docs/layout/hyphenation/hyphen.d.ts +0 -1
- package/lib/types/components/docs/layout/hyphenation/language-detector.d.ts +0 -1
- package/lib/types/components/docs/layout/line-breaker/enhancers/hyphen-enhancer.d.ts +0 -1
- package/lib/types/components/docs/layout/line-breaker/extensions/custom-block-linebreak-extension.d.ts +0 -1
- package/lib/types/components/docs/layout/line-breaker/extensions/tab-linebreak-extension.d.ts +0 -1
- package/lib/types/components/docs/layout/line-breaker/line-breaker.d.ts +0 -1
- package/lib/types/components/docs/layout/line-breaker/rule.d.ts +0 -1
- package/lib/types/components/docs/layout/model/column.d.ts +0 -1
- package/lib/types/components/docs/layout/model/glyph.d.ts +0 -1
- package/lib/types/components/docs/layout/model/line.d.ts +3 -3
- package/lib/types/components/docs/layout/model/page.d.ts +4 -1
- package/lib/types/components/docs/layout/model/section.d.ts +0 -1
- package/lib/types/components/docs/layout/model/table.d.ts +15 -0
- package/lib/types/components/docs/layout/shaping-engine/font-cache.d.ts +0 -1
- package/lib/types/components/docs/layout/shaping-engine/font-library.d.ts +0 -1
- package/lib/types/components/docs/layout/shaping-engine/text-shaping.d.ts +0 -1
- package/lib/types/components/docs/layout/shaping-engine/utils.d.ts +0 -1
- package/lib/types/components/docs/layout/style/custom-decoration.d.ts +0 -1
- package/lib/types/components/docs/layout/style/custom-range.d.ts +0 -1
- package/lib/types/components/docs/layout/tools.d.ts +2 -2
- package/lib/types/components/docs/liquid.d.ts +0 -1
- package/lib/types/components/docs/text-selection/convert-rect-range.d.ts +29 -0
- package/lib/types/components/docs/text-selection/{convert-cursor.d.ts → convert-text-range.d.ts} +7 -3
- package/lib/types/components/docs/text-selection/range-interface.d.ts +21 -0
- package/lib/types/components/docs/text-selection/rect-range.d.ts +48 -0
- package/lib/types/components/docs/text-selection/selection-utils.d.ts +27 -0
- package/lib/types/components/docs/text-selection/text-range.d.ts +8 -5
- package/lib/types/components/docs/text-selection/text-selection-render-manager.d.ts +28 -21
- package/lib/types/components/docs/view-model/data-stream-tree-node.d.ts +0 -1
- package/lib/types/components/docs/view-model/document-view-model.d.ts +4 -6
- package/lib/types/components/extension.d.ts +0 -1
- package/lib/types/components/sheets/column-header.d.ts +0 -1
- package/lib/types/components/sheets/extensions/background.d.ts +0 -1
- package/lib/types/components/sheets/extensions/border.d.ts +0 -1
- package/lib/types/components/sheets/extensions/column-header-layout.d.ts +0 -1
- package/lib/types/components/sheets/extensions/custom.d.ts +0 -1
- package/lib/types/components/sheets/extensions/font.d.ts +0 -1
- package/lib/types/components/sheets/extensions/marker.d.ts +0 -1
- package/lib/types/components/sheets/extensions/row-header-layout.d.ts +0 -1
- package/lib/types/components/sheets/extensions/sheet-extension.d.ts +0 -1
- package/lib/types/components/sheets/interfaces.d.ts +0 -1
- package/lib/types/components/sheets/row-header.d.ts +0 -1
- package/lib/types/components/sheets/sheet-component.d.ts +0 -1
- package/lib/types/components/sheets/sheet-skeleton.d.ts +1 -1
- package/lib/types/components/sheets/spreadsheet.d.ts +0 -1
- package/lib/types/components/skeleton.d.ts +0 -1
- package/lib/types/components/slides/slide.d.ts +6 -2
- package/lib/types/custom/custom-object.d.ts +0 -1
- package/lib/types/engine.d.ts +5 -1
- package/lib/types/floating/util.d.ts +0 -1
- package/lib/types/group.d.ts +0 -1
- package/lib/types/index.d.ts +11 -3
- package/lib/types/layer.d.ts +4 -1
- package/lib/types/render-engine.d.ts +0 -1
- package/lib/types/render-manager/render-manager.service.d.ts +49 -3
- package/lib/types/render-manager/render-unit.d.ts +4 -3
- package/lib/types/scene-viewer.d.ts +0 -1
- package/lib/types/scene.d.ts +13 -1
- package/lib/types/scene.input-manager.d.ts +0 -1
- package/lib/types/scene.transformer.d.ts +5 -1
- package/lib/types/scroll-timer.d.ts +0 -1
- package/lib/types/shape/base-scroll-bar.d.ts +0 -1
- package/lib/types/shape/checkbox.d.ts +0 -1
- package/lib/types/shape/circle.d.ts +0 -1
- package/lib/types/shape/dashedrect.d.ts +0 -1
- package/lib/types/shape/dropdown-item.d.ts +0 -1
- package/lib/types/shape/image.d.ts +0 -1
- package/lib/types/shape/path.d.ts +0 -1
- package/lib/types/shape/rect.d.ts +0 -1
- package/lib/types/shape/regular-polygon.d.ts +0 -1
- package/lib/types/shape/rich-text.d.ts +67 -6
- package/lib/types/shape/scroll-bar.d.ts +0 -1
- package/lib/types/shape/shape.d.ts +0 -1
- package/lib/types/shape/text.d.ts +0 -1
- package/lib/types/thin-engine.d.ts +0 -1
- package/lib/types/thin-scene.d.ts +0 -1
- package/lib/types/viewport.d.ts +0 -1
- package/lib/umd/index.js +4 -2
- package/package.json +6 -6
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { Nullable } from '@univerjs/core';
|
|
2
2
|
import { IDocumentSkeletonBoundingBox, IDocumentSkeletonFontStyle } from '../../../../basics/i-document-skeleton-cached';
|
|
3
3
|
import { IOpenTypeGlyphInfo } from './text-shaping';
|
|
4
|
-
|
|
5
4
|
export declare const DEFAULT_MEASURE_TEXT = "0";
|
|
6
5
|
export interface IMeasureTextCache {
|
|
7
6
|
fontBoundingBoxAscent: number;
|
|
@@ -5,7 +5,6 @@ import { DataStreamTreeNode } from '../view-model/data-stream-tree-node';
|
|
|
5
5
|
import { DocumentViewModel } from '../view-model/document-view-model';
|
|
6
6
|
import { Hyphen } from './hyphenation/hyphen';
|
|
7
7
|
import { LanguageDetector } from './hyphenation/language-detector';
|
|
8
|
-
|
|
9
8
|
export declare function getLastPage(pages: IDocumentSkeletonPage[]): IDocumentSkeletonPage;
|
|
10
9
|
export declare function getLastSection(page: IDocumentSkeletonPage): IDocumentSkeletonSection;
|
|
11
10
|
export declare function getLastColumn(page: IDocumentSkeletonPage): IDocumentSkeletonColumn;
|
|
@@ -51,7 +50,7 @@ export declare function getCharSpaceConfig(sectionBreakConfig: ISectionBreakConf
|
|
|
51
50
|
export declare function updateBlockIndex(pages: IDocumentSkeletonPage[], start?: number): void;
|
|
52
51
|
export declare function updateInlineDrawingCoords(ctx: ILayoutContext, pages: IDocumentSkeletonPage[]): void;
|
|
53
52
|
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(
|
|
53
|
+
export declare function lineIterator(pagesOrCells: (IDocumentSkeletonPage)[], cb: (line: IDocumentSkeletonLine, column: IDocumentSkeletonColumn, section: IDocumentSkeletonSection, page: IDocumentSkeletonPage) => void): void;
|
|
55
54
|
export declare function columnIterator(pages: IDocumentSkeletonPage[], iteratorFunction: (column: IDocumentSkeletonColumn) => void): void;
|
|
56
55
|
export declare function getPositionHorizon(positionH: IObjectPositionH, column: IDocumentSkeletonColumn, page: IDocumentSkeletonPage, objectWidth: number, isPageBreak?: boolean): number | undefined;
|
|
57
56
|
export declare function getPositionVertical(positionV: IObjectPositionV, page: IDocumentSkeletonPage, lineTop: number, lineHeight: number, objectHeight: number, blockAnchorTop?: number, isPageBreak?: boolean): number | undefined;
|
|
@@ -101,4 +100,5 @@ export declare const DEFAULT_PAGE_SIZE: {
|
|
|
101
100
|
};
|
|
102
101
|
export declare function prepareSectionBreakConfig(ctx: ILayoutContext, nodeIndex: number): ISectionBreakConfig;
|
|
103
102
|
export declare function resetContext(ctx: ILayoutContext): void;
|
|
103
|
+
export declare function mergeByV<T = unknown>(object: unknown, originObject: unknown, type: 'max' | 'min'): T;
|
|
104
104
|
export {};
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { IDocumentSkeletonColumn, IDocumentSkeletonDivide, IDocumentSkeletonGlyph, IDocumentSkeletonLine, IDocumentSkeletonPage, IDocumentSkeletonSection, PageLayoutType } from '../../basics/i-document-skeleton-cached';
|
|
2
|
-
|
|
3
2
|
export declare class Liquid {
|
|
4
3
|
private _translateX;
|
|
5
4
|
private _translateY;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Nullable } from '@univerjs/core';
|
|
2
|
+
import { INodePosition, IPoint } from '../../../basics';
|
|
3
|
+
import { IDocumentOffsetConfig } from '../document';
|
|
4
|
+
import { DocumentSkeleton } from '../layout/doc-skeleton';
|
|
5
|
+
export declare function isValidRectRange(anchorNodePosition: INodePosition, focusNodePosition: INodePosition): boolean;
|
|
6
|
+
export declare function isInSameTableCell(anchorNodePosition: INodePosition, focusNodePosition: INodePosition): boolean;
|
|
7
|
+
export declare function compareNodePositionInTable(a: INodePosition, b: INodePosition): boolean;
|
|
8
|
+
interface IRectRangeNodePositions {
|
|
9
|
+
anchor: INodePosition;
|
|
10
|
+
focus: INodePosition;
|
|
11
|
+
}
|
|
12
|
+
export declare class NodePositionConvertToRectRange {
|
|
13
|
+
private _documentOffsetConfig;
|
|
14
|
+
private _docSkeleton;
|
|
15
|
+
private _liquid;
|
|
16
|
+
constructor(_documentOffsetConfig: IDocumentOffsetConfig, _docSkeleton: DocumentSkeleton);
|
|
17
|
+
getRangePointData(startNodePosition: INodePosition, endNodePosition: INodePosition): {
|
|
18
|
+
pointGroup: IPoint[][];
|
|
19
|
+
startRow: number;
|
|
20
|
+
startColumn: number;
|
|
21
|
+
endRow: number;
|
|
22
|
+
endColumn: number;
|
|
23
|
+
tableId: string;
|
|
24
|
+
} | undefined;
|
|
25
|
+
getNodePositionGroup(anchorNodePosition: INodePosition, focusNodePosition: INodePosition): Nullable<IRectRangeNodePositions[]>;
|
|
26
|
+
private _collectPositionGroup;
|
|
27
|
+
private _getTableRectRangeInfo;
|
|
28
|
+
}
|
|
29
|
+
export {};
|
package/lib/types/components/docs/text-selection/{convert-cursor.d.ts → convert-text-range.d.ts}
RENAMED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { ITextRange, Nullable } from '@univerjs/core';
|
|
1
|
+
import { IPosition, ITextRange, Nullable } from '@univerjs/core';
|
|
2
|
+
import { IDocumentSkeletonCached, IDocumentSkeletonPage } from '../../../basics/i-document-skeleton-cached';
|
|
2
3
|
import { INodePosition } from '../../../basics/interfaces';
|
|
3
4
|
import { IPoint } from '../../../basics/vector2';
|
|
4
5
|
import { DocumentSkeleton } from '../layout/doc-skeleton';
|
|
5
6
|
import { IDocumentOffsetConfig } from '../document';
|
|
6
|
-
|
|
7
7
|
export declare enum NodePositionStateType {
|
|
8
8
|
NORMAL = 0,
|
|
9
9
|
START = 1,
|
|
@@ -39,6 +39,11 @@ export declare function compareNodePosition(pos1: INodePosition, pos2: INodePosi
|
|
|
39
39
|
end: INodePosition;
|
|
40
40
|
};
|
|
41
41
|
export declare function getOneTextSelectionRange(rangeList: ITextRange[]): Nullable<ITextRange>;
|
|
42
|
+
export declare function pushToPoints(position: IPosition): {
|
|
43
|
+
x: number;
|
|
44
|
+
y: number;
|
|
45
|
+
}[];
|
|
46
|
+
export declare function getPageFromPath(skeletonData: IDocumentSkeletonCached, path: (string | number)[]): Nullable<IDocumentSkeletonPage>;
|
|
42
47
|
export declare class NodePositionConvertToCursor {
|
|
43
48
|
private _documentOffsetConfig;
|
|
44
49
|
private _docSkeleton;
|
|
@@ -56,6 +61,5 @@ export declare class NodePositionConvertToCursor {
|
|
|
56
61
|
private _setNodePositionState;
|
|
57
62
|
private _checkPreviousNodePositionState;
|
|
58
63
|
private _getSelectionRuler;
|
|
59
|
-
private _pushToPoints;
|
|
60
64
|
private _selectionIterator;
|
|
61
65
|
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Nullable } from '@univerjs/core';
|
|
2
|
+
import { INodePosition, ITextSelectionStyle, RANGE_DIRECTION } from '../../../basics';
|
|
3
|
+
export declare enum DOC_RANGE_TYPE {
|
|
4
|
+
RECT = "RECT",
|
|
5
|
+
TEXT = "TEXT"
|
|
6
|
+
}
|
|
7
|
+
export interface IDocRange {
|
|
8
|
+
rangeType: DOC_RANGE_TYPE;
|
|
9
|
+
anchorNodePosition?: Nullable<INodePosition>;
|
|
10
|
+
focusNodePosition?: Nullable<INodePosition>;
|
|
11
|
+
style: ITextSelectionStyle;
|
|
12
|
+
get startOffset(): Nullable<number>;
|
|
13
|
+
get endOffset(): Nullable<number>;
|
|
14
|
+
get collapsed(): boolean;
|
|
15
|
+
get startNodePosition(): Nullable<INodePosition>;
|
|
16
|
+
get endNodePosition(): Nullable<INodePosition>;
|
|
17
|
+
get direction(): RANGE_DIRECTION;
|
|
18
|
+
isActive(): boolean;
|
|
19
|
+
dispose(): void;
|
|
20
|
+
refresh(): void;
|
|
21
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { Nullable } from '@univerjs/core';
|
|
2
|
+
import { INodePosition, ITextSelectionStyle, RANGE_DIRECTION } from '../../../basics';
|
|
3
|
+
import { ThinScene } from '../../../thin-scene';
|
|
4
|
+
import { Documents } from '../document';
|
|
5
|
+
import { DocumentSkeleton } from '../layout/doc-skeleton';
|
|
6
|
+
import { IDocRange, DOC_RANGE_TYPE } from './range-interface';
|
|
7
|
+
export declare function convertPositionsToRectRanges(scene: ThinScene, document: Documents, docSkeleton: DocumentSkeleton, anchorNodePosition: INodePosition, focusNodePosition: INodePosition, style?: ITextSelectionStyle, segmentId?: string): RectRange[];
|
|
8
|
+
export declare class RectRange implements IDocRange {
|
|
9
|
+
private _scene;
|
|
10
|
+
private _document;
|
|
11
|
+
private _docSkeleton;
|
|
12
|
+
anchorNodePosition: INodePosition;
|
|
13
|
+
focusNodePosition: INodePosition;
|
|
14
|
+
style: ITextSelectionStyle;
|
|
15
|
+
private _segmentId;
|
|
16
|
+
rangeType: DOC_RANGE_TYPE;
|
|
17
|
+
private _rangeShape;
|
|
18
|
+
private _current;
|
|
19
|
+
private _startRow;
|
|
20
|
+
private _startCol;
|
|
21
|
+
private _endRow;
|
|
22
|
+
private _endCol;
|
|
23
|
+
private _tableId;
|
|
24
|
+
constructor(_scene: ThinScene, _document: Documents, _docSkeleton: DocumentSkeleton, anchorNodePosition: INodePosition, focusNodePosition: INodePosition, style?: ITextSelectionStyle, _segmentId?: string);
|
|
25
|
+
get startOffset(): Nullable<number>;
|
|
26
|
+
get endOffset(): Nullable<number>;
|
|
27
|
+
get collapsed(): boolean;
|
|
28
|
+
get startRow(): number;
|
|
29
|
+
get startColumn(): number;
|
|
30
|
+
get endRow(): number;
|
|
31
|
+
get endColumn(): number;
|
|
32
|
+
get tableId(): string;
|
|
33
|
+
get segmentId(): string;
|
|
34
|
+
get spanEntireRow(): boolean;
|
|
35
|
+
get spanEntireColumn(): boolean;
|
|
36
|
+
get spanEntireTable(): boolean;
|
|
37
|
+
get startNodePosition(): INodePosition;
|
|
38
|
+
get endNodePosition(): INodePosition;
|
|
39
|
+
get direction(): RANGE_DIRECTION;
|
|
40
|
+
isActive(): boolean;
|
|
41
|
+
activate(): void;
|
|
42
|
+
deactivate(): void;
|
|
43
|
+
dispose(): void;
|
|
44
|
+
isIntersection(compareRange: RectRange): boolean;
|
|
45
|
+
refresh(): void;
|
|
46
|
+
private _updateTableInfo;
|
|
47
|
+
private _createOrUpdateRange;
|
|
48
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Nullable } from '@univerjs/core';
|
|
2
|
+
import { IDocumentSkeletonGlyph, INodePosition, ITextSelectionStyle } from '../../../basics';
|
|
3
|
+
import { DocumentSkeleton } from '../layout/doc-skeleton';
|
|
4
|
+
import { Engine } from '../../../engine';
|
|
5
|
+
import { Documents } from '../document';
|
|
6
|
+
import { Scene } from '../../../scene';
|
|
7
|
+
import { RectRange } from './rect-range';
|
|
8
|
+
import { TextRange } from './text-range';
|
|
9
|
+
interface IDocRangeList {
|
|
10
|
+
textRanges: TextRange[];
|
|
11
|
+
rectRanges: RectRange[];
|
|
12
|
+
}
|
|
13
|
+
export declare function getTextRangeFromCharIndex(startOffset: number, endOffset: number, scene: Scene, document: Documents, skeleton: DocumentSkeleton, style: ITextSelectionStyle, segmentId: string, segmentPage: number): Nullable<TextRange>;
|
|
14
|
+
export declare function getRectRangeFromCharIndex(startOffset: number, endOffset: number, scene: Scene, document: Documents, skeleton: DocumentSkeleton, style: ITextSelectionStyle, segmentId: string, segmentPage: number): Nullable<RectRange>;
|
|
15
|
+
export declare function getRangeListFromCharIndex(startOffset: number, endOffset: number, scene: Scene, document: Documents, skeleton: DocumentSkeleton, style: ITextSelectionStyle, segmentId: string, segmentPage: number): Nullable<IDocRangeList>;
|
|
16
|
+
export declare function getRangeListFromSelection(anchorPosition: INodePosition, focusPosition: INodePosition, scene: Scene, document: Documents, skeleton: DocumentSkeleton, style: ITextSelectionStyle, segmentId: string, segmentPage: number): Nullable<IDocRangeList>;
|
|
17
|
+
export declare function getCanvasOffsetByEngine(engine: Nullable<Engine>): {
|
|
18
|
+
left: number;
|
|
19
|
+
top: number;
|
|
20
|
+
};
|
|
21
|
+
export declare function getParagraphInfoByGlyph(node: IDocumentSkeletonGlyph): {
|
|
22
|
+
st: number;
|
|
23
|
+
ed: number;
|
|
24
|
+
content: string;
|
|
25
|
+
nodeIndex: number;
|
|
26
|
+
} | undefined;
|
|
27
|
+
export {};
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { Nullable } from '@univerjs/core';
|
|
2
2
|
import { INodePosition } from '../../../basics/interfaces';
|
|
3
|
-
import {
|
|
3
|
+
import { ISuccinctDocRangeParam, ITextSelectionStyle, RANGE_DIRECTION } from '../../../basics/range';
|
|
4
4
|
import { IPoint } from '../../../basics/vector2';
|
|
5
5
|
import { Scene } from '../../../scene';
|
|
6
6
|
import { Rect } from '../../../shape/rect';
|
|
7
7
|
import { ThinScene } from '../../../thin-scene';
|
|
8
8
|
import { DocumentSkeleton } from '../layout/doc-skeleton';
|
|
9
9
|
import { Documents } from '../document';
|
|
10
|
-
|
|
10
|
+
import { IDocRange, DOC_RANGE_TYPE } from './range-interface';
|
|
11
11
|
export declare const TEXT_RANGE_LAYER_INDEX = 3;
|
|
12
|
-
export declare function cursorConvertToTextRange(scene: Scene, range:
|
|
12
|
+
export declare function cursorConvertToTextRange(scene: Scene, range: ISuccinctDocRangeParam, docSkeleton: DocumentSkeleton, document: Documents): Nullable<TextRange>;
|
|
13
13
|
export declare function getAnchorBounding(pointsGroup: IPoint[][]): {
|
|
14
14
|
left: number;
|
|
15
15
|
top: number;
|
|
@@ -22,19 +22,21 @@ export declare function getLineBounding(pointsGroup: IPoint[][]): {
|
|
|
22
22
|
top: number;
|
|
23
23
|
bottom: number;
|
|
24
24
|
}[];
|
|
25
|
-
export declare class TextRange {
|
|
25
|
+
export declare class TextRange implements IDocRange {
|
|
26
26
|
private _scene;
|
|
27
27
|
private _document;
|
|
28
28
|
private _docSkeleton;
|
|
29
29
|
anchorNodePosition?: Nullable<INodePosition>;
|
|
30
30
|
focusNodePosition?: Nullable<INodePosition>;
|
|
31
31
|
style: ITextSelectionStyle;
|
|
32
|
+
private _segmentId;
|
|
33
|
+
rangeType: DOC_RANGE_TYPE;
|
|
32
34
|
private _current;
|
|
33
35
|
private _rangeShape;
|
|
34
36
|
private _anchorShape;
|
|
35
37
|
private _cursorList;
|
|
36
38
|
private _anchorBlinkTimer;
|
|
37
|
-
constructor(_scene: ThinScene, _document: Documents, _docSkeleton: DocumentSkeleton, anchorNodePosition?: Nullable<INodePosition>, focusNodePosition?: Nullable<INodePosition>, style?: ITextSelectionStyle);
|
|
39
|
+
constructor(_scene: ThinScene, _document: Documents, _docSkeleton: DocumentSkeleton, anchorNodePosition?: Nullable<INodePosition>, focusNodePosition?: Nullable<INodePosition>, style?: ITextSelectionStyle, _segmentId?: string);
|
|
38
40
|
private _anchorBlink;
|
|
39
41
|
get startOffset(): number | undefined;
|
|
40
42
|
get endOffset(): number | undefined;
|
|
@@ -42,6 +44,7 @@ export declare class TextRange {
|
|
|
42
44
|
get startNodePosition(): INodePosition | null;
|
|
43
45
|
get endNodePosition(): Nullable<INodePosition>;
|
|
44
46
|
get direction(): RANGE_DIRECTION;
|
|
47
|
+
get segmentId(): string;
|
|
45
48
|
getAbsolutePosition(): {
|
|
46
49
|
left: number;
|
|
47
50
|
top: number;
|
|
@@ -1,21 +1,17 @@
|
|
|
1
1
|
import { Nullable, ILogService, RxDisposable } from '@univerjs/core';
|
|
2
2
|
import { Observable } from 'rxjs';
|
|
3
3
|
import { IMouseEvent, IPointerEvent } from '../../../basics/i-events';
|
|
4
|
-
import { INodePosition } from '../../../basics/interfaces';
|
|
5
|
-
import {
|
|
6
|
-
import { Engine } from '../../../engine';
|
|
4
|
+
import { INodeInfo, INodePosition } from '../../../basics/interfaces';
|
|
5
|
+
import { ISuccinctDocRangeParam, ITextRangeWithStyle, ITextSelectionStyle, RANGE_DIRECTION } from '../../../basics/range';
|
|
7
6
|
import { Scene } from '../../../scene';
|
|
8
7
|
import { Viewport } from '../../../viewport';
|
|
9
|
-
import { DocumentSkeleton } from '../layout/doc-skeleton';
|
|
8
|
+
import { DocumentSkeleton, IFindNodeRestrictions } from '../layout/doc-skeleton';
|
|
10
9
|
import { Documents } from '../document';
|
|
11
10
|
import { TextRange } from './text-range';
|
|
12
|
-
|
|
13
|
-
export declare function getCanvasOffsetByEngine(engine: Nullable<Engine>): {
|
|
14
|
-
left: number;
|
|
15
|
-
top: number;
|
|
16
|
-
};
|
|
11
|
+
import { RectRange } from './rect-range';
|
|
17
12
|
export interface ITextSelectionInnerParam {
|
|
18
13
|
textRanges: TextRange[];
|
|
14
|
+
rectRanges: RectRange[];
|
|
19
15
|
segmentId: string;
|
|
20
16
|
isEditing: boolean;
|
|
21
17
|
style: ITextSelectionStyle;
|
|
@@ -58,8 +54,8 @@ export interface ITextSelectionRenderManager {
|
|
|
58
54
|
getSegmentPage(): number;
|
|
59
55
|
setStyle(style: ITextSelectionStyle): void;
|
|
60
56
|
resetStyle(): void;
|
|
61
|
-
|
|
62
|
-
|
|
57
|
+
removeAllRanges(): void;
|
|
58
|
+
addDocRanges(ranges: ISuccinctDocRangeParam[], isEditing?: boolean, options?: {
|
|
63
59
|
[key: string]: boolean;
|
|
64
60
|
}): void;
|
|
65
61
|
sync(): void;
|
|
@@ -74,7 +70,7 @@ export interface ITextSelectionRenderManager {
|
|
|
74
70
|
dispose(): void;
|
|
75
71
|
handleDblClick(evt: IPointerEvent | IMouseEvent): void;
|
|
76
72
|
handleTripleClick(evt: IPointerEvent | IMouseEvent): void;
|
|
77
|
-
|
|
73
|
+
onPointDown(evt: IPointerEvent | IMouseEvent): void;
|
|
78
74
|
setCursorManually(evtOffsetX: number, evtOffsetY: number): void;
|
|
79
75
|
}
|
|
80
76
|
export interface IEditorInputConfig {
|
|
@@ -113,9 +109,12 @@ export declare class TextSelectionRenderManager extends RxDisposable implements
|
|
|
113
109
|
private _inputParent;
|
|
114
110
|
private _input;
|
|
115
111
|
private _scrollTimers;
|
|
116
|
-
private _viewportScrollX;
|
|
117
|
-
private _viewportScrollY;
|
|
118
112
|
private _rangeList;
|
|
113
|
+
private _rangeListCache;
|
|
114
|
+
private _rectRangeList;
|
|
115
|
+
private _rectRangeListCache;
|
|
116
|
+
private _anchorNodePosition;
|
|
117
|
+
private _focusNodePosition;
|
|
119
118
|
private _currentSegmentId;
|
|
120
119
|
private _currentSegmentPage;
|
|
121
120
|
private _selectionStyle;
|
|
@@ -140,7 +139,7 @@ export declare class TextSelectionRenderManager extends RxDisposable implements
|
|
|
140
139
|
resetStyle(): void;
|
|
141
140
|
enableSelection(): void;
|
|
142
141
|
disableSelection(): void;
|
|
143
|
-
|
|
142
|
+
addDocRanges(ranges: ISuccinctDocRangeParam[], isEditing?: boolean, options?: {
|
|
144
143
|
[key: string]: boolean;
|
|
145
144
|
}): void;
|
|
146
145
|
setCursorManually(evtOffsetX: number, evtOffsetY: number): void;
|
|
@@ -155,23 +154,31 @@ export declare class TextSelectionRenderManager extends RxDisposable implements
|
|
|
155
154
|
changeRuntime(docSkeleton: DocumentSkeleton, scene: Scene, document: Documents): void;
|
|
156
155
|
handleDblClick(evt: IPointerEvent | IMouseEvent): void;
|
|
157
156
|
handleTripleClick(evt: IPointerEvent | IMouseEvent): void;
|
|
158
|
-
|
|
159
|
-
|
|
157
|
+
onPointDown(evt: IPointerEvent | IMouseEvent): void;
|
|
158
|
+
removeAllRanges(): void;
|
|
160
159
|
private _setSystemHighlightColorToStyle;
|
|
161
160
|
private _getAllTextRanges;
|
|
161
|
+
private _getAllRectRanges;
|
|
162
162
|
private _getActiveRange;
|
|
163
|
-
private _add;
|
|
164
163
|
private _getActiveRangeInstance;
|
|
165
164
|
dispose(): void;
|
|
166
165
|
private _initDOM;
|
|
167
166
|
private _initInput;
|
|
168
167
|
private _getNodePosition;
|
|
169
|
-
private
|
|
168
|
+
private _interactTextRanges;
|
|
169
|
+
private _interactRectRanges;
|
|
170
|
+
private _removeAllRanges;
|
|
171
|
+
private _removeAllCacheRanges;
|
|
170
172
|
private _removeAllTextRanges;
|
|
173
|
+
private _removeAllRectRanges;
|
|
171
174
|
private _deactivateAllTextRanges;
|
|
175
|
+
private _deactivateAllRectRanges;
|
|
176
|
+
private _addTextRangesToCache;
|
|
172
177
|
private _addTextRange;
|
|
178
|
+
private _addRectRangesToCache;
|
|
179
|
+
private _addRectRanges;
|
|
173
180
|
private _updateTextRangeAnchorPosition;
|
|
174
|
-
private
|
|
181
|
+
private _updateActiveRangePosition;
|
|
175
182
|
private _isEmpty;
|
|
176
183
|
private _getCanvasOffset;
|
|
177
184
|
private _updateInputPosition;
|
|
@@ -180,7 +187,7 @@ export declare class TextSelectionRenderManager extends RxDisposable implements
|
|
|
180
187
|
private _initInputEvents;
|
|
181
188
|
private _eventHandle;
|
|
182
189
|
private _getTransformCoordForDocumentOffset;
|
|
183
|
-
|
|
190
|
+
findNodeByCoord(evtOffsetX: number, evtOffsetY: number, restrictions: IFindNodeRestrictions): Nullable<INodeInfo>;
|
|
184
191
|
private _getNodeIndex;
|
|
185
192
|
private _detachEvent;
|
|
186
193
|
private _activeSelectionRefresh;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { ICustomDecorationForInterceptor, ICustomRangeForInterceptor, IDisposable, IDocumentBody, ITextRun, Nullable, DocumentDataModel } from '@univerjs/core';
|
|
2
2
|
import { DataStreamTreeNode } from './data-stream-tree-node';
|
|
3
|
-
|
|
4
3
|
export interface ICustomRangeInterceptor {
|
|
5
4
|
getCustomRange: (index: number) => Nullable<ICustomRangeForInterceptor>;
|
|
6
5
|
getCustomDecoration: (index: number) => Nullable<ICustomDecorationForInterceptor>;
|
|
@@ -10,6 +9,7 @@ export declare enum DocumentEditArea {
|
|
|
10
9
|
HEADER = "HEADER",
|
|
11
10
|
FOOTER = "FOOTER"
|
|
12
11
|
}
|
|
12
|
+
export declare function parseDataStreamToTree(dataStream: string): DataStreamTreeNode[];
|
|
13
13
|
export declare class DocumentViewModel implements IDisposable {
|
|
14
14
|
private _documentDataModel;
|
|
15
15
|
private _interceptor;
|
|
@@ -28,12 +28,13 @@ export declare class DocumentViewModel implements IDisposable {
|
|
|
28
28
|
constructor(_documentDataModel: DocumentDataModel);
|
|
29
29
|
registerCustomRangeInterceptor(interceptor: ICustomRangeInterceptor): IDisposable;
|
|
30
30
|
dispose(): void;
|
|
31
|
-
selfPlus(
|
|
31
|
+
selfPlus(_len: number, _index: number): void;
|
|
32
32
|
getEditArea(): DocumentEditArea;
|
|
33
33
|
setEditArea(editArea: DocumentEditArea): void;
|
|
34
34
|
getPositionInParent(): number;
|
|
35
35
|
getLastIndex(): number;
|
|
36
36
|
getBody(): IDocumentBody | undefined;
|
|
37
|
+
getSnapshot(): import('@univerjs/core').IDocumentData;
|
|
37
38
|
getDataModel(): DocumentDataModel;
|
|
38
39
|
getSelfOrHeaderFooterViewModel(segmentId?: string): DocumentViewModel;
|
|
39
40
|
reset(documentDataModel: DocumentDataModel): void;
|
|
@@ -43,7 +44,7 @@ export declare class DocumentViewModel implements IDisposable {
|
|
|
43
44
|
getText(): string;
|
|
44
45
|
resetCache(): void;
|
|
45
46
|
getSectionBreak(index: number): import('@univerjs/core').ISectionBreak | undefined;
|
|
46
|
-
getParagraph(index: number): import('@univerjs/core').IParagraph | undefined;
|
|
47
|
+
getParagraph(index: number, fromStart?: boolean): import('@univerjs/core').IParagraph | undefined;
|
|
47
48
|
getTextRunRange(startIndex: number | undefined, endIndex: number): ITextRun[];
|
|
48
49
|
/**
|
|
49
50
|
* textRun matches according to the selection. If the text length is 10, then the range of textRun is from 0 to 11.
|
|
@@ -56,9 +57,6 @@ export declare class DocumentViewModel implements IDisposable {
|
|
|
56
57
|
getCustomRange(index: number): Nullable<ICustomRangeForInterceptor>;
|
|
57
58
|
getCustomDecorationRaw(index: number): import('@univerjs/core').ICustomDecoration | undefined;
|
|
58
59
|
getCustomDecoration(index: number): Nullable<ICustomDecorationForInterceptor>;
|
|
59
|
-
protected _transformToTree(dataStream: string): DataStreamTreeNode[];
|
|
60
|
-
private _processPreviousNodesUntil;
|
|
61
|
-
private _batchParent;
|
|
62
60
|
private _buildHeaderFooterViewModel;
|
|
63
61
|
private _getParagraphByIndex;
|
|
64
62
|
private _forEachTop;
|
|
@@ -2,7 +2,6 @@ import { IDocumentRenderConfig, IRange, IScale, Nullable, Registry } from '@univ
|
|
|
2
2
|
import { BaseObject } from '../base-object';
|
|
3
3
|
import { Vector2 } from '../basics/vector2';
|
|
4
4
|
import { UniverRenderingContext } from '../context';
|
|
5
|
-
|
|
6
5
|
export interface IExtensionConfig {
|
|
7
6
|
originTranslate?: Vector2;
|
|
8
7
|
spanStartPoint?: Vector2;
|
|
@@ -4,7 +4,6 @@ import { UniverRenderingContext } from '../../context';
|
|
|
4
4
|
import { ColumnHeaderLayout, IColumnsHeaderCfgParam } from './extensions/column-header-layout';
|
|
5
5
|
import { SpreadsheetHeader } from './sheet-component';
|
|
6
6
|
import { SpreadsheetSkeleton } from './sheet-skeleton';
|
|
7
|
-
|
|
8
7
|
export declare class SpreadsheetColumnHeader extends SpreadsheetHeader {
|
|
9
8
|
getDocuments(): void;
|
|
10
9
|
getNoMergeCellPositionByIndex(rowIndex: number, columnIndex: number): Nullable<{
|
|
@@ -3,7 +3,6 @@ import { UniverRenderingContext } from '../../../context';
|
|
|
3
3
|
import { IDrawInfo } from '../../extension';
|
|
4
4
|
import { SpreadsheetSkeleton } from '../sheet-skeleton';
|
|
5
5
|
import { SheetExtension } from './sheet-extension';
|
|
6
|
-
|
|
7
6
|
export declare class Background extends SheetExtension {
|
|
8
7
|
uKey: string;
|
|
9
8
|
Z_INDEX: number;
|
|
@@ -2,7 +2,6 @@ import { IRange, IScale } from '@univerjs/core';
|
|
|
2
2
|
import { UniverRenderingContext } from '../../../context';
|
|
3
3
|
import { SpreadsheetSkeleton } from '../sheet-skeleton';
|
|
4
4
|
import { SheetExtension } from './sheet-extension';
|
|
5
|
-
|
|
6
5
|
export declare class Border extends SheetExtension {
|
|
7
6
|
uKey: string;
|
|
8
7
|
Z_INDEX: number;
|
|
@@ -3,7 +3,6 @@ import { UniverRenderingContext } from '../../../context';
|
|
|
3
3
|
import { SpreadsheetSkeleton } from '../sheet-skeleton';
|
|
4
4
|
import { IAColumnCfg, IAColumnCfgObj, IColumnStyleCfg } from '../interfaces';
|
|
5
5
|
import { SheetExtension } from './sheet-extension';
|
|
6
|
-
|
|
7
6
|
export interface IColumnsHeaderCfgParam {
|
|
8
7
|
headerStyle?: Partial<IColumnStyleCfg>;
|
|
9
8
|
columnsCfg?: IAColumnCfg[];
|
|
@@ -2,7 +2,6 @@ import { IRange, IScale } from '@univerjs/core';
|
|
|
2
2
|
import { UniverRenderingContext } from '../../../context';
|
|
3
3
|
import { SpreadsheetSkeleton } from '../sheet-skeleton';
|
|
4
4
|
import { SheetExtension } from './sheet-extension';
|
|
5
|
-
|
|
6
5
|
export declare class Custom extends SheetExtension {
|
|
7
6
|
protected Z_INDEX: number;
|
|
8
7
|
uKey: string;
|
|
@@ -3,7 +3,6 @@ import { UniverRenderingContext } from '../../../context';
|
|
|
3
3
|
import { IDrawInfo } from '../../extension';
|
|
4
4
|
import { SpreadsheetSkeleton } from '../sheet-skeleton';
|
|
5
5
|
import { SheetExtension } from './sheet-extension';
|
|
6
|
-
|
|
7
6
|
export interface ISheetFontRenderExtension {
|
|
8
7
|
fontRenderExtension?: {
|
|
9
8
|
leftOffset?: number;
|
|
@@ -2,7 +2,6 @@ import { IRange, IScale } from '@univerjs/core';
|
|
|
2
2
|
import { UniverRenderingContext } from '../../../context';
|
|
3
3
|
import { SpreadsheetSkeleton } from '../sheet-skeleton';
|
|
4
4
|
import { SheetExtension } from './sheet-extension';
|
|
5
|
-
|
|
6
5
|
export declare class Marker extends SheetExtension {
|
|
7
6
|
protected Z_INDEX: number;
|
|
8
7
|
uKey: string;
|
|
@@ -3,7 +3,6 @@ import { UniverRenderingContext } from '../../../context';
|
|
|
3
3
|
import { SpreadsheetSkeleton } from '../sheet-skeleton';
|
|
4
4
|
import { IARowCfg, IARowCfgObj, IColumnStyleCfg, IRowStyleCfg } from '../interfaces.ts';
|
|
5
5
|
import { SheetExtension } from './sheet-extension';
|
|
6
|
-
|
|
7
6
|
export interface IRowsHeaderCfgParam {
|
|
8
7
|
headerStyle?: Partial<IRowStyleCfg>;
|
|
9
8
|
rowsCfg?: IARowCfg[];
|
|
@@ -3,7 +3,6 @@ import { BORDER_TYPE } from '../../basics/const';
|
|
|
3
3
|
import { DocumentSkeleton } from '../docs/layout/doc-skeleton';
|
|
4
4
|
import { Canvas } from '../../canvas';
|
|
5
5
|
import { UniverRenderingContext } from '../../context';
|
|
6
|
-
|
|
7
6
|
export interface BorderCache {
|
|
8
7
|
[key: string]: BorderCacheItem | {};
|
|
9
8
|
}
|
|
@@ -4,7 +4,6 @@ import { UniverRenderingContext } from '../../context';
|
|
|
4
4
|
import { IRowsHeaderCfgParam, RowHeaderLayout } from './extensions/row-header-layout';
|
|
5
5
|
import { SpreadsheetHeader } from './sheet-component';
|
|
6
6
|
import { SpreadsheetSkeleton } from './sheet-skeleton';
|
|
7
|
-
|
|
8
7
|
export declare class SpreadsheetRowHeader extends SpreadsheetHeader {
|
|
9
8
|
getDocuments(): void;
|
|
10
9
|
getNoMergeCellPositionByIndex(rowIndex: number, columnIndex: number): Nullable<{
|
|
@@ -4,7 +4,6 @@ import { UniverRenderingContext } from '../../context';
|
|
|
4
4
|
import { RenderComponent } from '../component';
|
|
5
5
|
import { SHEET_EXTENSION_TYPE } from './extensions/sheet-extension';
|
|
6
6
|
import { SpreadsheetSkeleton } from './sheet-skeleton';
|
|
7
|
-
|
|
8
7
|
export declare abstract class SheetComponent extends RenderComponent<SpreadsheetSkeleton, SHEET_EXTENSION_TYPE, IRange[]> {
|
|
9
8
|
private _skeleton?;
|
|
10
9
|
constructor(oKey: string, _skeleton?: SpreadsheetSkeleton | undefined);
|
|
@@ -3,7 +3,6 @@ import { IBoundRectNoAngle, IViewportInfo } from '../../basics/vector2';
|
|
|
3
3
|
import { DocumentSkeleton } from '../docs/layout/doc-skeleton';
|
|
4
4
|
import { Skeleton } from '../skeleton';
|
|
5
5
|
import { IStylesCache } from './interfaces';
|
|
6
|
-
|
|
7
6
|
/**
|
|
8
7
|
* Obtain the height and width of a cell's text, taking into account scenarios with rotated text.
|
|
9
8
|
* @param documentSkeleton Data of the document's ViewModel
|
|
@@ -274,6 +273,7 @@ export declare class SpreadsheetSkeleton extends Skeleton {
|
|
|
274
273
|
intersectMergeRange(row: number, column: number): boolean;
|
|
275
274
|
private _calculateStylesCache;
|
|
276
275
|
private _resetCache;
|
|
276
|
+
resetCache(): void;
|
|
277
277
|
private _makeDocumentSkeletonDirty;
|
|
278
278
|
private _setCellCache;
|
|
279
279
|
private _updateConfigAndGetDocumentModel;
|
|
@@ -9,7 +9,6 @@ import { Font } from './extensions/font';
|
|
|
9
9
|
import { SheetComponent } from './sheet-component';
|
|
10
10
|
import { SpreadsheetSkeleton } from './sheet-skeleton';
|
|
11
11
|
import { IPaintForRefresh, IPaintForScrolling, SHEET_VIEWPORT_KEY } from './interfaces';
|
|
12
|
-
|
|
13
12
|
export declare class Spreadsheet extends SheetComponent {
|
|
14
13
|
private _allowCache;
|
|
15
14
|
private _backgroundExtension;
|
|
@@ -2,16 +2,20 @@ import { Nullable, EventSubject } from '@univerjs/core';
|
|
|
2
2
|
import { UniverRenderingContext } from '../../context';
|
|
3
3
|
import { Scene } from '../../scene';
|
|
4
4
|
import { SceneViewer } from '../../scene-viewer';
|
|
5
|
-
|
|
6
5
|
export declare enum SLIDE_NAVIGATION_KEY {
|
|
7
6
|
LEFT = "__slideNavigationLeft__",
|
|
8
7
|
RIGHT = "__slideNavigationRight__"
|
|
9
8
|
}
|
|
10
9
|
export declare class Slide extends SceneViewer {
|
|
11
10
|
slideChangePageByNavigation$: EventSubject<Nullable<string>>;
|
|
11
|
+
subSceneChanged$: EventSubject<Scene>;
|
|
12
12
|
private _navigationEnabled;
|
|
13
13
|
activeFirstPage(): void;
|
|
14
|
-
|
|
14
|
+
/**
|
|
15
|
+
* add pageScene to this._subScenes
|
|
16
|
+
* @param pageScene
|
|
17
|
+
*/
|
|
18
|
+
addPageScene(pageScene: Scene): void;
|
|
15
19
|
changePage(id?: string): void;
|
|
16
20
|
hasPage(key: string): import('../../thin-scene').ThinScene | undefined;
|
|
17
21
|
addNavigation(): void;
|