@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.
Files changed (121) hide show
  1. package/lib/cjs/index.js +4 -2
  2. package/lib/es/index.js +6581 -5298
  3. package/lib/types/base-object.d.ts +4 -1
  4. package/lib/types/basics/cell-data.d.ts +0 -1
  5. package/lib/types/basics/document-node-tools.d.ts +7 -2
  6. package/lib/types/basics/draw.d.ts +0 -1
  7. package/lib/types/basics/group-transform.d.ts +0 -1
  8. package/lib/types/basics/i-document-skeleton-cached.d.ts +30 -4
  9. package/lib/types/basics/i-events.d.ts +0 -1
  10. package/lib/types/basics/interfaces.d.ts +8 -2
  11. package/lib/types/basics/offset-rotation-axis.d.ts +0 -1
  12. package/lib/types/basics/path2.d.ts +0 -1
  13. package/lib/types/basics/position.d.ts +0 -1
  14. package/lib/types/basics/quick-event.d.ts +0 -1
  15. package/lib/types/basics/range.d.ts +4 -2
  16. package/lib/types/basics/text-rotation.d.ts +0 -1
  17. package/lib/types/basics/tools.d.ts +0 -1
  18. package/lib/types/basics/transform.d.ts +0 -1
  19. package/lib/types/basics/transformer-config.d.ts +0 -1
  20. package/lib/types/basics/vector2.d.ts +0 -1
  21. package/lib/types/basics/viewport-subtract.d.ts +0 -1
  22. package/lib/types/canvas.d.ts +0 -1
  23. package/lib/types/components/component.d.ts +0 -1
  24. package/lib/types/components/docs/doc-background.d.ts +0 -1
  25. package/lib/types/components/docs/doc-component.d.ts +0 -1
  26. package/lib/types/components/docs/doc-extension.d.ts +0 -1
  27. package/lib/types/components/docs/document.d.ts +3 -1
  28. package/lib/types/components/docs/extensions/background.d.ts +0 -1
  29. package/lib/types/components/docs/extensions/border.d.ts +0 -1
  30. package/lib/types/components/docs/extensions/font-and-base-line.d.ts +0 -1
  31. package/lib/types/components/docs/extensions/line.d.ts +0 -1
  32. package/lib/types/components/docs/layout/block/paragraph/bullet-ruler.d.ts +0 -1
  33. package/lib/types/components/docs/layout/block/paragraph/bullet.d.ts +0 -1
  34. package/lib/types/components/docs/layout/block/paragraph/language-ruler.d.ts +0 -1
  35. package/lib/types/components/docs/layout/block/paragraph/layout-ruler.d.ts +0 -1
  36. package/lib/types/components/docs/layout/block/paragraph/line-adjustment.d.ts +0 -1
  37. package/lib/types/components/docs/layout/block/paragraph/linebreaking.d.ts +3 -3
  38. package/lib/types/components/docs/layout/block/paragraph/{layout.d.ts → paragraph-layout.d.ts} +0 -1
  39. package/lib/types/components/docs/layout/block/paragraph/shaping.d.ts +0 -1
  40. package/lib/types/components/docs/layout/block/section.d.ts +0 -1
  41. package/lib/types/components/docs/layout/block/table.d.ts +12 -0
  42. package/lib/types/components/docs/layout/doc-skeleton.d.ts +1 -1
  43. package/lib/types/components/docs/layout/hyphenation/hyphen.d.ts +0 -1
  44. package/lib/types/components/docs/layout/hyphenation/language-detector.d.ts +0 -1
  45. package/lib/types/components/docs/layout/line-breaker/enhancers/hyphen-enhancer.d.ts +0 -1
  46. package/lib/types/components/docs/layout/line-breaker/extensions/custom-block-linebreak-extension.d.ts +0 -1
  47. package/lib/types/components/docs/layout/line-breaker/extensions/tab-linebreak-extension.d.ts +0 -1
  48. package/lib/types/components/docs/layout/line-breaker/line-breaker.d.ts +0 -1
  49. package/lib/types/components/docs/layout/line-breaker/rule.d.ts +0 -1
  50. package/lib/types/components/docs/layout/model/column.d.ts +0 -1
  51. package/lib/types/components/docs/layout/model/glyph.d.ts +0 -1
  52. package/lib/types/components/docs/layout/model/line.d.ts +3 -3
  53. package/lib/types/components/docs/layout/model/page.d.ts +4 -1
  54. package/lib/types/components/docs/layout/model/section.d.ts +0 -1
  55. package/lib/types/components/docs/layout/model/table.d.ts +15 -0
  56. package/lib/types/components/docs/layout/shaping-engine/font-cache.d.ts +0 -1
  57. package/lib/types/components/docs/layout/shaping-engine/font-library.d.ts +0 -1
  58. package/lib/types/components/docs/layout/shaping-engine/text-shaping.d.ts +0 -1
  59. package/lib/types/components/docs/layout/shaping-engine/utils.d.ts +0 -1
  60. package/lib/types/components/docs/layout/style/custom-decoration.d.ts +0 -1
  61. package/lib/types/components/docs/layout/style/custom-range.d.ts +0 -1
  62. package/lib/types/components/docs/layout/tools.d.ts +2 -2
  63. package/lib/types/components/docs/liquid.d.ts +0 -1
  64. package/lib/types/components/docs/text-selection/convert-rect-range.d.ts +29 -0
  65. package/lib/types/components/docs/text-selection/{convert-cursor.d.ts → convert-text-range.d.ts} +7 -3
  66. package/lib/types/components/docs/text-selection/range-interface.d.ts +21 -0
  67. package/lib/types/components/docs/text-selection/rect-range.d.ts +48 -0
  68. package/lib/types/components/docs/text-selection/selection-utils.d.ts +27 -0
  69. package/lib/types/components/docs/text-selection/text-range.d.ts +8 -5
  70. package/lib/types/components/docs/text-selection/text-selection-render-manager.d.ts +28 -21
  71. package/lib/types/components/docs/view-model/data-stream-tree-node.d.ts +0 -1
  72. package/lib/types/components/docs/view-model/document-view-model.d.ts +4 -6
  73. package/lib/types/components/extension.d.ts +0 -1
  74. package/lib/types/components/sheets/column-header.d.ts +0 -1
  75. package/lib/types/components/sheets/extensions/background.d.ts +0 -1
  76. package/lib/types/components/sheets/extensions/border.d.ts +0 -1
  77. package/lib/types/components/sheets/extensions/column-header-layout.d.ts +0 -1
  78. package/lib/types/components/sheets/extensions/custom.d.ts +0 -1
  79. package/lib/types/components/sheets/extensions/font.d.ts +0 -1
  80. package/lib/types/components/sheets/extensions/marker.d.ts +0 -1
  81. package/lib/types/components/sheets/extensions/row-header-layout.d.ts +0 -1
  82. package/lib/types/components/sheets/extensions/sheet-extension.d.ts +0 -1
  83. package/lib/types/components/sheets/interfaces.d.ts +0 -1
  84. package/lib/types/components/sheets/row-header.d.ts +0 -1
  85. package/lib/types/components/sheets/sheet-component.d.ts +0 -1
  86. package/lib/types/components/sheets/sheet-skeleton.d.ts +1 -1
  87. package/lib/types/components/sheets/spreadsheet.d.ts +0 -1
  88. package/lib/types/components/skeleton.d.ts +0 -1
  89. package/lib/types/components/slides/slide.d.ts +6 -2
  90. package/lib/types/custom/custom-object.d.ts +0 -1
  91. package/lib/types/engine.d.ts +5 -1
  92. package/lib/types/floating/util.d.ts +0 -1
  93. package/lib/types/group.d.ts +0 -1
  94. package/lib/types/index.d.ts +11 -3
  95. package/lib/types/layer.d.ts +4 -1
  96. package/lib/types/render-engine.d.ts +0 -1
  97. package/lib/types/render-manager/render-manager.service.d.ts +49 -3
  98. package/lib/types/render-manager/render-unit.d.ts +4 -3
  99. package/lib/types/scene-viewer.d.ts +0 -1
  100. package/lib/types/scene.d.ts +13 -1
  101. package/lib/types/scene.input-manager.d.ts +0 -1
  102. package/lib/types/scene.transformer.d.ts +5 -1
  103. package/lib/types/scroll-timer.d.ts +0 -1
  104. package/lib/types/shape/base-scroll-bar.d.ts +0 -1
  105. package/lib/types/shape/checkbox.d.ts +0 -1
  106. package/lib/types/shape/circle.d.ts +0 -1
  107. package/lib/types/shape/dashedrect.d.ts +0 -1
  108. package/lib/types/shape/dropdown-item.d.ts +0 -1
  109. package/lib/types/shape/image.d.ts +0 -1
  110. package/lib/types/shape/path.d.ts +0 -1
  111. package/lib/types/shape/rect.d.ts +0 -1
  112. package/lib/types/shape/regular-polygon.d.ts +0 -1
  113. package/lib/types/shape/rich-text.d.ts +67 -6
  114. package/lib/types/shape/scroll-bar.d.ts +0 -1
  115. package/lib/types/shape/shape.d.ts +0 -1
  116. package/lib/types/shape/text.d.ts +0 -1
  117. package/lib/types/thin-engine.d.ts +0 -1
  118. package/lib/types/thin-scene.d.ts +0 -1
  119. package/lib/types/viewport.d.ts +0 -1
  120. package/lib/umd/index.js +4 -2
  121. 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;
@@ -1,5 +1,4 @@
1
1
  import { IStyleBase, Nullable } from '@univerjs/core';
2
-
3
2
  interface IFontData {
4
3
  readonly family: string;
5
4
  readonly fullName: string;
@@ -1,6 +1,5 @@
1
1
  import { IDocumentBody, Nullable } from '@univerjs/core';
2
2
  import { default as Opentype } from 'opentype.js';
3
-
4
3
  interface IBoundingBox {
5
4
  x1: number;
6
5
  y1: number;
@@ -1,5 +1,4 @@
1
1
  import { IDocumentBody, IStyleBase } from '@univerjs/core';
2
-
3
2
  interface ITextChunk {
4
3
  content: string;
5
4
  style?: IStyleBase;
@@ -1,3 +1,2 @@
1
1
  import { ICustomDecorationForInterceptor, ITextStyle, Nullable } from '@univerjs/core';
2
-
3
2
  export declare function getCustomDecorationStyle(customDecoration: ICustomDecorationForInterceptor): Nullable<ITextStyle>;
@@ -1,3 +1,2 @@
1
1
  import { ICustomRangeForInterceptor, ITextStyle, Nullable } from '@univerjs/core';
2
-
3
2
  export declare function getCustomRangeStyle(customRange: ICustomRangeForInterceptor): Nullable<ITextStyle>;
@@ -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(pages: IDocumentSkeletonPage[], cb: (line: IDocumentSkeletonLine, column: IDocumentSkeletonColumn, section: IDocumentSkeletonSection, page: IDocumentSkeletonPage) => void): void;
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 {};
@@ -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 { ISuccinctTextRangeParam, ITextSelectionStyle, RANGE_DIRECTION } from '../../../basics/range';
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: ISuccinctTextRangeParam, docSkeleton: DocumentSkeleton, document: Documents): Nullable<TextRange>;
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 { ISuccinctTextRangeParam, ITextRangeWithStyle, ITextSelectionStyle, RANGE_DIRECTION } from '../../../basics/range';
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
- removeAllTextRanges(): void;
62
- addTextRanges(ranges: ISuccinctTextRangeParam[], isEditing?: boolean, options?: {
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
- eventTrigger(evt: IPointerEvent | IMouseEvent): void;
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
- addTextRanges(ranges: ISuccinctTextRangeParam[], isEditing?: boolean, options?: {
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
- eventTrigger(evt: IPointerEvent | IMouseEvent): void;
159
- removeAllTextRanges(): void;
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 _interactTextRange;
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 _updateActiveRangeFocusPosition;
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
- private _findNodeByCoord;
190
+ findNodeByCoord(evtOffsetX: number, evtOffsetY: number, restrictions: IFindNodeRestrictions): Nullable<INodeInfo>;
184
191
  private _getNodeIndex;
185
192
  private _detachEvent;
186
193
  private _activeSelectionRefresh;
@@ -1,5 +1,4 @@
1
1
  import { Nullable, DataStreamTreeNodeType } from '@univerjs/core';
2
-
3
2
  export declare class DataStreamTreeNode {
4
3
  nodeType: DataStreamTreeNodeType;
5
4
  content?: string | undefined;
@@ -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(len: number, index: number): void;
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[];
@@ -1,7 +1,6 @@
1
1
  import { IRange } from '@univerjs/core';
2
2
  import { ComponentExtension } from '../../extension';
3
3
  import { SpreadsheetSkeleton } from '../sheet-skeleton';
4
-
5
4
  export declare enum SHEET_EXTENSION_TYPE {
6
5
  GRID = 0
7
6
  }
@@ -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;
@@ -1,6 +1,5 @@
1
1
  import { Disposable, LocaleService } from '@univerjs/core';
2
2
  import { IFontLocale } from '../basics/interfaces';
3
-
4
3
  export declare class Skeleton extends Disposable {
5
4
  protected readonly _localService: LocaleService;
6
5
  private _fontLocale;
@@ -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
- addPage(scene: Scene): void;
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;