@univerjs/docs-ui 0.2.12 → 0.2.13

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 (77) hide show
  1. package/lib/cjs/index.js +28 -6
  2. package/lib/es/index.js +8694 -3109
  3. package/lib/index.css +1 -1
  4. package/lib/types/basics/__tests__/plain-text.spec.d.ts +16 -0
  5. package/lib/types/basics/component-tools.d.ts +17 -0
  6. package/lib/types/basics/const/plugin-name.d.ts +1 -1
  7. package/lib/types/basics/custom-decoration-factory.d.ts +24 -0
  8. package/lib/types/basics/custom-range-factory.d.ts +25 -0
  9. package/lib/types/basics/docs-view-key.d.ts +30 -0
  10. package/lib/types/basics/paragraph.d.ts +2 -0
  11. package/lib/types/basics/plain-text.d.ts +11 -0
  12. package/lib/types/basics/replace.d.ts +20 -0
  13. package/lib/types/basics/table.d.ts +16 -0
  14. package/lib/types/commands/commands/__tests__/clipboard.command.spec.d.ts +16 -0
  15. package/lib/types/commands/commands/__tests__/core-editing.command.spec.d.ts +16 -0
  16. package/lib/types/commands/commands/__tests__/create-command-test-bed.d.ts +34 -0
  17. package/lib/types/commands/commands/__tests__/inline-format.command.spec.d.ts +16 -0
  18. package/lib/types/commands/commands/__tests__/replace-content.command.spec.d.ts +16 -0
  19. package/lib/types/commands/commands/auto-format.command.d.ts +7 -0
  20. package/lib/types/commands/commands/break-line.command.d.ts +3 -0
  21. package/lib/types/commands/commands/clipboard.inner.command.d.ts +16 -0
  22. package/lib/types/commands/commands/core-editing.command.d.ts +44 -0
  23. package/lib/types/commands/commands/delete.command.d.ts +19 -0
  24. package/lib/types/commands/commands/ime-input.command.d.ts +9 -0
  25. package/lib/types/commands/commands/inline-format.command.d.ts +17 -0
  26. package/lib/types/commands/commands/list.command.d.ts +42 -0
  27. package/lib/types/commands/commands/paragraph-align.command.d.ts +18 -0
  28. package/lib/types/commands/commands/replace-content.command.d.ts +26 -0
  29. package/lib/types/commands/commands/set-doc-zoom-ratio.command.d.ts +6 -0
  30. package/lib/types/commands/commands/table/doc-table-create.command.d.ts +10 -0
  31. package/lib/types/commands/commands/table/doc-table-delete.command.d.ts +10 -0
  32. package/lib/types/commands/commands/table/doc-table-insert.command.d.ts +34 -0
  33. package/lib/types/commands/commands/table/doc-table-tab.command.d.ts +5 -0
  34. package/lib/types/commands/commands/table/table.d.ts +93 -0
  35. package/lib/types/commands/operations/doc-cursor.operation.d.ts +12 -0
  36. package/lib/types/commands/operations/select-all.operation.d.ts +5 -0
  37. package/lib/types/commands/operations/set-doc-zoom-ratio.operation.d.ts +7 -0
  38. package/lib/types/commands/util.d.ts +9 -0
  39. package/lib/types/controllers/app-ui-controller.d.ts +1 -6
  40. package/lib/types/controllers/doc-auto-format.controller.d.ts +1 -1
  41. package/lib/types/controllers/doc-header-footer.controller.d.ts +6 -5
  42. package/lib/types/controllers/doc-move-cursor.controller.d.ts +20 -0
  43. package/lib/types/controllers/menu/menu.d.ts +1 -1
  44. package/lib/types/controllers/render-controllers/back-scroll.render-controller.d.ts +4 -4
  45. package/lib/types/controllers/render-controllers/doc-checklist.render-controller.d.ts +3 -3
  46. package/lib/types/controllers/render-controllers/doc-clipboard.controller.d.ts +14 -0
  47. package/lib/types/controllers/render-controllers/{contextmenu.render-controller.d.ts → doc-contextmenu.render-controller.d.ts} +3 -5
  48. package/lib/types/controllers/render-controllers/doc-editor-bridge.controller.d.ts +27 -0
  49. package/lib/types/controllers/render-controllers/doc-ime-input.controller.d.ts +25 -0
  50. package/lib/types/controllers/render-controllers/doc-input.controller.d.ts +15 -0
  51. package/lib/types/controllers/render-controllers/doc-resize.render-controller.d.ts +2 -2
  52. package/lib/types/controllers/render-controllers/{text-selection.render-controller.d.ts → doc-selection-render.controller.d.ts} +9 -6
  53. package/lib/types/controllers/render-controllers/doc.render-controller.d.ts +2 -2
  54. package/lib/types/controllers/render-controllers/zoom.render-controller.d.ts +4 -4
  55. package/lib/types/docs-ui-plugin.d.ts +1 -1
  56. package/lib/types/index.d.ts +62 -11
  57. package/lib/types/services/clipboard/clipboard.service.d.ts +5 -5
  58. package/lib/types/services/doc-auto-format.service.d.ts +38 -0
  59. package/lib/types/services/doc-event-manager.service.d.ts +3 -1
  60. package/lib/types/services/doc-ime-input-manager.service.d.ts +30 -0
  61. package/lib/types/services/doc-page-layout.service.d.ts +1 -1
  62. package/lib/types/services/doc-popup-manager.service.d.ts +4 -4
  63. package/lib/types/services/doc-state-change-manager.service.d.ts +23 -0
  64. package/lib/types/services/selection/convert-rect-range.d.ts +27 -0
  65. package/lib/types/services/selection/convert-text-range.d.ts +60 -0
  66. package/lib/types/services/selection/doc-selection-render.service.d.ts +121 -0
  67. package/lib/types/services/selection/range-interface.d.ts +19 -0
  68. package/lib/types/services/selection/rect-range.d.ts +47 -0
  69. package/lib/types/services/selection/selection-utils.d.ts +26 -0
  70. package/lib/types/services/selection/text-range.d.ts +63 -0
  71. package/lib/types/types/const/padding.d.ts +16 -0
  72. package/lib/types/types/delete-direction.d.ts +19 -0
  73. package/lib/types/views/paragraph-setting/hook/utils.d.ts +1 -1
  74. package/lib/umd/index.js +28 -6
  75. package/package.json +16 -16
  76. package/lib/types/controllers/clipboard.controller.d.ts +0 -14
  77. package/lib/types/controllers/doc-editor-bridge.controller.d.ts +0 -23
@@ -0,0 +1,30 @@
1
+ import { RxDisposable, DocumentDataModel, Nullable } from '@univerjs/core';
2
+ import { IRichTextEditingMutationParams } from '@univerjs/docs';
3
+ import { IRenderContext, IRenderModule, ITextRangeWithStyle } from '@univerjs/engine-render';
4
+ interface ICacheParams {
5
+ undoCache: IRichTextEditingMutationParams[];
6
+ redoCache: IRichTextEditingMutationParams[];
7
+ }
8
+ export declare class DocIMEInputManagerService extends RxDisposable implements IRenderModule {
9
+ private readonly _context;
10
+ private _previousActiveRange;
11
+ private _undoMutationParamsCache;
12
+ private _redoMutationParamsCache;
13
+ constructor(_context: IRenderContext<DocumentDataModel>);
14
+ clearUndoRedoMutationParamsCache(): void;
15
+ getUndoRedoMutationParamsCache(): {
16
+ undoCache: IRichTextEditingMutationParams[];
17
+ redoCache: IRichTextEditingMutationParams[];
18
+ };
19
+ setUndoRedoMutationParamsCache({ undoCache, redoCache }: ICacheParams): void;
20
+ getActiveRange(): Nullable<ITextRangeWithStyle>;
21
+ setActiveRange(range: Nullable<ITextRangeWithStyle>): void;
22
+ pushUndoRedoMutationParams(undoParams: IRichTextEditingMutationParams, redoParams: IRichTextEditingMutationParams): void;
23
+ fetchComposedUndoRedoMutationParams(): {
24
+ redoMutationParams: IRichTextEditingMutationParams;
25
+ undoMutationParams: IRichTextEditingMutationParams;
26
+ previousActiveRange: ITextRangeWithStyle;
27
+ } | null;
28
+ dispose(): void;
29
+ }
30
+ export {};
@@ -1,4 +1,4 @@
1
- import { DocumentDataModel, Disposable } from '@univerjs/core';
1
+ import { Disposable, DocumentDataModel } from '@univerjs/core';
2
2
  import { IRenderContext, IRenderModule } from '@univerjs/engine-render';
3
3
  export declare class DocPageLayoutService extends Disposable implements IRenderModule {
4
4
  private _context;
@@ -1,6 +1,6 @@
1
- import { IDisposable, ITextRangeParam, Disposable, ICommandService, IUniverInstanceService } from '@univerjs/core';
1
+ import { Disposable, ICommandService, IUniverInstanceService, IDisposable, INeedCheckDisposable, ITextRangeParam } from '@univerjs/core';
2
2
  import { IRenderManagerService, BaseObject, IBoundRectNoAngle, IRender, Scene } from '@univerjs/engine-render';
3
- import { IPopup, ICanvasPopupService } from '@univerjs/ui';
3
+ import { ICanvasPopupService, IPopup } from '@univerjs/ui';
4
4
  export declare function transformBound2OffsetBound(originBound: IBoundRectNoAngle, scene: Scene): IBoundRectNoAngle;
5
5
  export declare function transformPosition2Offset(x: number, y: number, scene: Scene): {
6
6
  x: number;
@@ -10,7 +10,7 @@ export declare function transformOffset2Bound(offsetX: number, offsetY: number,
10
10
  x: number;
11
11
  y: number;
12
12
  };
13
- export interface IDocCanvasPopup extends Pick<IPopup, 'direction' | 'excludeOutside' | 'closeOnSelfTarget' | 'componentKey' | 'offset' | 'onClickOutside' | 'hideOnInvisible'> {
13
+ export interface IDocCanvasPopup extends Pick<IPopup, 'direction' | 'excludeOutside' | 'componentKey' | 'offset' | 'onClickOutside' | 'hideOnInvisible'> {
14
14
  mask?: boolean;
15
15
  extraProps?: Record<string, any>;
16
16
  multipleDirection?: IPopup['direction'];
@@ -38,5 +38,5 @@ export declare class DocCanvasPopManagerService extends Disposable {
38
38
  * @param unitId unit id
39
39
  * @returns disposable
40
40
  */
41
- attachPopupToRange(range: ITextRangeParam, popup: IDocCanvasPopup, unitId: string): IDisposable;
41
+ attachPopupToRange(range: ITextRangeParam, popup: IDocCanvasPopup, unitId: string): INeedCheckDisposable;
42
42
  }
@@ -0,0 +1,23 @@
1
+ import { ICommandService, IUndoRedoService, IUniverInstanceService, RxDisposable, Nullable } from '@univerjs/core';
2
+ import { DocStateEmitService, IDocStateChangeParams } from '@univerjs/docs';
3
+ import { IRenderManagerService } from '@univerjs/engine-render';
4
+ export declare class DocStateChangeManagerService extends RxDisposable {
5
+ private _undoRedoService;
6
+ private readonly _commandService;
7
+ private readonly _univerInstanceService;
8
+ private readonly _docStateEmitService;
9
+ private readonly _renderManagerService;
10
+ private readonly _docStateChange$;
11
+ readonly docStateChange$: import('rxjs').Observable<Nullable<IDocStateChangeParams>>;
12
+ private _historyStateCache;
13
+ private _changeStateCache;
14
+ private _historyTimer;
15
+ private _changeStateCacheTimer;
16
+ constructor(_undoRedoService: IUndoRedoService, _commandService: ICommandService, _univerInstanceService: IUniverInstanceService, _docStateEmitService: DocStateEmitService, _renderManagerService: IRenderManagerService);
17
+ private _setChangeState;
18
+ private _initialize;
19
+ private _listenDocStateChange;
20
+ private _cacheChangeState;
21
+ private _pushHistory;
22
+ private _emitChangeState;
23
+ }
@@ -0,0 +1,27 @@
1
+ import { Nullable } from '@univerjs/core';
2
+ import { DocumentSkeleton, IDocumentOffsetConfig, INodePosition, IPoint } from '@univerjs/engine-render';
3
+ export declare function isValidRectRange(anchorNodePosition: INodePosition, focusNodePosition: INodePosition): boolean;
4
+ export declare function isInSameTableCell(anchorNodePosition: INodePosition, focusNodePosition: INodePosition): boolean;
5
+ export declare function compareNodePositionInTable(a: INodePosition, b: INodePosition): boolean;
6
+ interface IRectRangeNodePositions {
7
+ anchor: INodePosition;
8
+ focus: INodePosition;
9
+ }
10
+ export declare class NodePositionConvertToRectRange {
11
+ private _documentOffsetConfig;
12
+ private _docSkeleton;
13
+ private _liquid;
14
+ constructor(_documentOffsetConfig: IDocumentOffsetConfig, _docSkeleton: DocumentSkeleton);
15
+ getRangePointData(startNodePosition: INodePosition, endNodePosition: INodePosition): {
16
+ pointGroup: IPoint[][];
17
+ startRow: number;
18
+ startColumn: number;
19
+ endRow: number;
20
+ endColumn: number;
21
+ tableId: string;
22
+ } | undefined;
23
+ getNodePositionGroup(anchorNodePosition: INodePosition, focusNodePosition: INodePosition): Nullable<IRectRangeNodePositions[]>;
24
+ private _collectPositionGroup;
25
+ private _getTableRectRangeInfo;
26
+ }
27
+ export {};
@@ -0,0 +1,60 @@
1
+ import { IPosition, ITextRange, Nullable } from '@univerjs/core';
2
+ import { DocumentSkeleton, IDocumentOffsetConfig, INodePosition, IPoint } from '@univerjs/engine-render';
3
+ export declare enum NodePositionStateType {
4
+ NORMAL = 0,
5
+ START = 1,
6
+ END = 2
7
+ }
8
+ export declare enum NodePositionType {
9
+ page = 0,
10
+ section = 1,
11
+ column = 2,
12
+ line = 3,
13
+ divide = 4,
14
+ glyph = 5
15
+ }
16
+ export interface ICurrentNodePositionState {
17
+ page: NodePositionStateType;
18
+ section: NodePositionStateType;
19
+ column: NodePositionStateType;
20
+ line: NodePositionStateType;
21
+ divide: NodePositionStateType;
22
+ glyph: NodePositionStateType;
23
+ }
24
+ export declare const NodePositionMap: {
25
+ page: number;
26
+ section: number;
27
+ column: number;
28
+ line: number;
29
+ divide: number;
30
+ glyph: number;
31
+ };
32
+ export declare function compareNodePositionLogic(pos1: INodePosition, pos2: INodePosition): boolean;
33
+ export declare function compareNodePosition(pos1: INodePosition, pos2: INodePosition): {
34
+ start: INodePosition;
35
+ end: INodePosition;
36
+ };
37
+ export declare function getOneTextSelectionRange(rangeList: ITextRange[]): Nullable<ITextRange>;
38
+ export declare function pushToPoints(position: IPosition): {
39
+ x: number;
40
+ y: number;
41
+ }[];
42
+ export declare class NodePositionConvertToCursor {
43
+ private _documentOffsetConfig;
44
+ private _docSkeleton;
45
+ private _liquid;
46
+ private _currentStartState;
47
+ private _currentEndState;
48
+ constructor(_documentOffsetConfig: IDocumentOffsetConfig, _docSkeleton: DocumentSkeleton);
49
+ getRangePointData(startOrigin: Nullable<INodePosition>, endOrigin: Nullable<INodePosition>): {
50
+ borderBoxPointGroup: IPoint[][];
51
+ contentBoxPointGroup: IPoint[][];
52
+ cursorList: ITextRange[];
53
+ };
54
+ private _isValidPosition;
55
+ private _resetCurrentNodePositionState;
56
+ private _setNodePositionState;
57
+ private _checkPreviousNodePositionState;
58
+ private _getSelectionRuler;
59
+ private _selectionIterator;
60
+ }
@@ -0,0 +1,121 @@
1
+ import { ILogService, RxDisposable, DocumentDataModel, Nullable } from '@univerjs/core';
2
+ import { DocSkeletonManagerService } from '@univerjs/docs';
3
+ import { ILayoutService } from '@univerjs/ui';
4
+ import { IDocSelectionInnerParam, IMouseEvent, INodePosition, IPointerEvent, IRenderContext, IRenderModule, ISuccinctDocRangeParam, ITextRangeWithStyle, ITextSelectionStyle, Viewport } from '@univerjs/engine-render';
5
+ import { TextRange } from './text-range';
6
+ export interface IEditorInputConfig {
7
+ event: Event | CompositionEvent | KeyboardEvent;
8
+ content?: string;
9
+ activeRange?: Nullable<ITextRangeWithStyle>;
10
+ rangeList?: ITextRangeWithStyle[];
11
+ }
12
+ export declare class DocSelectionRenderService extends RxDisposable implements IRenderModule {
13
+ private readonly _context;
14
+ private readonly _layoutService;
15
+ private readonly _logService;
16
+ private readonly _docSkeletonManagerService;
17
+ private readonly _onInputBefore$;
18
+ readonly onInputBefore$: import('rxjs').Observable<Nullable<IEditorInputConfig>>;
19
+ private readonly _onKeydown$;
20
+ readonly onKeydown$: import('rxjs').Observable<Nullable<IEditorInputConfig>>;
21
+ private readonly _onInput$;
22
+ readonly onInput$: import('rxjs').Observable<Nullable<IEditorInputConfig>>;
23
+ private readonly _onCompositionstart$;
24
+ readonly onCompositionstart$: import('rxjs').Observable<Nullable<IEditorInputConfig>>;
25
+ private readonly _onCompositionupdate$;
26
+ readonly onCompositionupdate$: import('rxjs').Observable<Nullable<IEditorInputConfig>>;
27
+ private readonly _onCompositionend$;
28
+ readonly onCompositionend$: import('rxjs').Observable<Nullable<IEditorInputConfig>>;
29
+ private readonly _onSelectionStart$;
30
+ readonly onSelectionStart$: import('rxjs').Observable<Nullable<INodePosition>>;
31
+ private readonly _onPaste$;
32
+ readonly onPaste$: import('rxjs').Observable<Nullable<IEditorInputConfig>>;
33
+ private readonly _textSelectionInner$;
34
+ readonly textSelectionInner$: import('rxjs').Observable<Nullable<IDocSelectionInnerParam>>;
35
+ private readonly _onFocus$;
36
+ readonly onFocus$: import('rxjs').Observable<Nullable<IEditorInputConfig>>;
37
+ private readonly _onBlur$;
38
+ readonly onBlur$: import('rxjs').Observable<Nullable<IEditorInputConfig>>;
39
+ private readonly _onPointerDown$;
40
+ readonly onPointerDown$: import('rxjs').Observable<void>;
41
+ private _container;
42
+ private _inputParent;
43
+ private _input;
44
+ private _scrollTimers;
45
+ private _rangeList;
46
+ private _rangeListCache;
47
+ private _rectRangeList;
48
+ private _rectRangeListCache;
49
+ private _anchorNodePosition;
50
+ private _focusNodePosition;
51
+ private _currentSegmentId;
52
+ private _currentSegmentPage;
53
+ private _selectionStyle;
54
+ private _isSelectionEnabled;
55
+ private _viewPortObserverMap;
56
+ private _isIMEInputApply;
57
+ private _scenePointerMoveSubs;
58
+ private _scenePointerUpSubs;
59
+ private _editorFocusing;
60
+ constructor(_context: IRenderContext<DocumentDataModel>, _layoutService: ILayoutService, _logService: ILogService, _docSkeletonManagerService: DocSkeletonManagerService);
61
+ get activeViewPort(): Viewport;
62
+ setSegment(id: string): void;
63
+ getSegment(): string;
64
+ setSegmentPage(pageIndex: number): void;
65
+ getSegmentPage(): number;
66
+ setStyle(style?: ITextSelectionStyle): void;
67
+ resetStyle(): void;
68
+ enableSelection(): void;
69
+ disableSelection(): void;
70
+ addDocRanges(ranges: ISuccinctDocRangeParam[], isEditing?: boolean, options?: {
71
+ [key: string]: boolean;
72
+ }): void;
73
+ setCursorManually(evtOffsetX: number, evtOffsetY: number): void;
74
+ sync(): void;
75
+ activate(x: number, y: number, force?: boolean): void;
76
+ hasFocus(): boolean;
77
+ focus(): void;
78
+ blur(): void;
79
+ focusEditor(): void;
80
+ blurEditor(): void;
81
+ deactivate(): void;
82
+ handleDblClick(evt: IPointerEvent | IMouseEvent): void;
83
+ handleTripleClick(evt: IPointerEvent | IMouseEvent): void;
84
+ onPointDown(evt: IPointerEvent | IMouseEvent): void;
85
+ removeAllRanges(): void;
86
+ getActiveTextRange(): TextRange | undefined;
87
+ private _setSystemHighlightColorToStyle;
88
+ private _getAllTextRanges;
89
+ private _getAllRectRanges;
90
+ private _getActiveRange;
91
+ private _getActiveRangeInstance;
92
+ dispose(): void;
93
+ private _initDOM;
94
+ private _registerContainer;
95
+ private _initInput;
96
+ private _getNodePosition;
97
+ private _interactTextRanges;
98
+ private _interactRectRanges;
99
+ private _removeAllRanges;
100
+ private _removeAllCacheRanges;
101
+ private _removeAllTextRanges;
102
+ private _removeAllRectRanges;
103
+ private _deactivateAllTextRanges;
104
+ private _deactivateAllRectRanges;
105
+ private _addTextRangesToCache;
106
+ private _addTextRange;
107
+ private _addRectRangesToCache;
108
+ private _addRectRanges;
109
+ private _createTextRangeByAnchorPosition;
110
+ private _updateActiveRangePosition;
111
+ private _isEmpty;
112
+ private _getCanvasOffset;
113
+ private _updateInputPosition;
114
+ private _moving;
115
+ attachScrollEvent(viewport: Nullable<Viewport>): void;
116
+ private _initInputEvents;
117
+ private _eventHandle;
118
+ private _getTransformCoordForDocumentOffset;
119
+ private _findNodeByCoord;
120
+ private _detachEvent;
121
+ }
@@ -0,0 +1,19 @@
1
+ import { DOC_RANGE_TYPE, Nullable, RANGE_DIRECTION } from '@univerjs/core';
2
+ import { INodePosition, ITextSelectionStyle } from '@univerjs/engine-render';
3
+ export interface IDocRange {
4
+ rangeType: DOC_RANGE_TYPE;
5
+ anchorNodePosition?: Nullable<INodePosition>;
6
+ focusNodePosition?: Nullable<INodePosition>;
7
+ style: ITextSelectionStyle;
8
+ get startOffset(): Nullable<number>;
9
+ get endOffset(): Nullable<number>;
10
+ get collapsed(): boolean;
11
+ get startNodePosition(): Nullable<INodePosition>;
12
+ get endNodePosition(): Nullable<INodePosition>;
13
+ get direction(): RANGE_DIRECTION;
14
+ get segmentId(): string;
15
+ get segmentPage(): number;
16
+ isActive(): boolean;
17
+ dispose(): void;
18
+ refresh(): void;
19
+ }
@@ -0,0 +1,47 @@
1
+ import { DOC_RANGE_TYPE, Nullable, RANGE_DIRECTION } from '@univerjs/core';
2
+ import { Documents, DocumentSkeleton, INodePosition, ITextSelectionStyle, ThinScene } from '@univerjs/engine-render';
3
+ import { IDocRange } from './range-interface';
4
+ export declare function convertPositionsToRectRanges(scene: ThinScene, document: Documents, docSkeleton: DocumentSkeleton, anchorNodePosition: INodePosition, focusNodePosition: INodePosition, style?: ITextSelectionStyle, segmentId?: string, segmentPage?: number): RectRange[];
5
+ export declare class RectRange implements IDocRange {
6
+ private _scene;
7
+ private _document;
8
+ private _docSkeleton;
9
+ anchorNodePosition: INodePosition;
10
+ focusNodePosition: INodePosition;
11
+ style: ITextSelectionStyle;
12
+ private _segmentId;
13
+ private _segmentPage;
14
+ rangeType: DOC_RANGE_TYPE;
15
+ private _rangeShape;
16
+ private _current;
17
+ private _startRow;
18
+ private _startCol;
19
+ private _endRow;
20
+ private _endCol;
21
+ private _tableId;
22
+ constructor(_scene: ThinScene, _document: Documents, _docSkeleton: DocumentSkeleton, anchorNodePosition: INodePosition, focusNodePosition: INodePosition, style?: ITextSelectionStyle, _segmentId?: string, _segmentPage?: number);
23
+ get startOffset(): Nullable<number>;
24
+ get endOffset(): Nullable<number>;
25
+ get collapsed(): boolean;
26
+ get startRow(): number;
27
+ get startColumn(): number;
28
+ get endRow(): number;
29
+ get endColumn(): number;
30
+ get tableId(): string;
31
+ get segmentId(): string;
32
+ get segmentPage(): number;
33
+ get spanEntireRow(): boolean;
34
+ get spanEntireColumn(): boolean;
35
+ get spanEntireTable(): boolean;
36
+ get startNodePosition(): INodePosition;
37
+ get endNodePosition(): INodePosition;
38
+ get direction(): RANGE_DIRECTION;
39
+ isActive(): boolean;
40
+ activate(): void;
41
+ deactivate(): void;
42
+ dispose(): void;
43
+ isIntersection(compareRange: RectRange): boolean;
44
+ refresh(): void;
45
+ private _updateTableInfo;
46
+ private _createOrUpdateRange;
47
+ }
@@ -0,0 +1,26 @@
1
+ import { Nullable } from '@univerjs/core';
2
+ import { Documents, DocumentSkeleton, Engine, IDocumentSkeletonGlyph, INodePosition, IRectRangeWithStyle, ITextRangeWithStyle, ITextSelectionStyle, Scene } from '@univerjs/engine-render';
3
+ import { RectRange } from './rect-range';
4
+ import { TextRange } from './text-range';
5
+ import { IDocRange } from './range-interface';
6
+ interface IDocRangeList {
7
+ textRanges: TextRange[];
8
+ rectRanges: RectRange[];
9
+ }
10
+ export declare function getTextRangeFromCharIndex(startOffset: number, endOffset: number, scene: Scene, document: Documents, skeleton: DocumentSkeleton, style: ITextSelectionStyle, segmentId: string, segmentPage: number): Nullable<TextRange>;
11
+ export declare function getRectRangeFromCharIndex(startOffset: number, endOffset: number, scene: Scene, document: Documents, skeleton: DocumentSkeleton, style: ITextSelectionStyle, segmentId: string, segmentPage: number): Nullable<RectRange>;
12
+ export declare function getRangeListFromCharIndex(startOffset: number, endOffset: number, scene: Scene, document: Documents, skeleton: DocumentSkeleton, style: ITextSelectionStyle, segmentId: string, segmentPage: number): Nullable<IDocRangeList>;
13
+ export declare function getRangeListFromSelection(anchorPosition: INodePosition, focusPosition: INodePosition, scene: Scene, document: Documents, skeleton: DocumentSkeleton, style: ITextSelectionStyle, segmentId: string, segmentPage: number): Nullable<IDocRangeList>;
14
+ export declare function getCanvasOffsetByEngine(engine: Nullable<Engine>): {
15
+ left: number;
16
+ top: number;
17
+ };
18
+ export declare function getParagraphInfoByGlyph(node: IDocumentSkeletonGlyph): {
19
+ st: number;
20
+ ed: number;
21
+ content: string;
22
+ nodeIndex: number;
23
+ } | undefined;
24
+ export declare function serializeTextRange(textRange: IDocRange): ITextRangeWithStyle;
25
+ export declare function serializeRectRange(rectRange: RectRange): IRectRangeWithStyle;
26
+ export {};
@@ -0,0 +1,63 @@
1
+ import { DOC_RANGE_TYPE, RANGE_DIRECTION, Nullable } from '@univerjs/core';
2
+ import { Rect, Documents, DocumentSkeleton, INodePosition, IPoint, ISuccinctDocRangeParam, ITextSelectionStyle, Scene, ThinScene } from '@univerjs/engine-render';
3
+ import { IDocRange } from './range-interface';
4
+ export declare const TEXT_RANGE_LAYER_INDEX = 3;
5
+ export declare function cursorConvertToTextRange(scene: Scene, range: ISuccinctDocRangeParam, docSkeleton: DocumentSkeleton, document: Documents): Nullable<TextRange>;
6
+ export declare function getAnchorBounding(pointsGroup: IPoint[][]): {
7
+ left: number;
8
+ top: number;
9
+ width: number;
10
+ height: number;
11
+ };
12
+ export declare function getLineBounding(pointsGroup: IPoint[][]): {
13
+ left: number;
14
+ right: number;
15
+ top: number;
16
+ bottom: number;
17
+ }[];
18
+ export declare class TextRange implements IDocRange {
19
+ private _scene;
20
+ private _document;
21
+ private _docSkeleton;
22
+ anchorNodePosition?: Nullable<INodePosition>;
23
+ focusNodePosition?: Nullable<INodePosition>;
24
+ style: ITextSelectionStyle;
25
+ private _segmentId;
26
+ private _segmentPage;
27
+ rangeType: DOC_RANGE_TYPE;
28
+ private _current;
29
+ private _rangeShape;
30
+ private _anchorShape;
31
+ private _cursorList;
32
+ private _anchorBlinkTimer;
33
+ constructor(_scene: ThinScene, _document: Documents, _docSkeleton: DocumentSkeleton, anchorNodePosition?: Nullable<INodePosition>, focusNodePosition?: Nullable<INodePosition>, style?: ITextSelectionStyle, _segmentId?: string, _segmentPage?: number);
34
+ private _anchorBlink;
35
+ get startOffset(): number | undefined;
36
+ get endOffset(): number | undefined;
37
+ get collapsed(): boolean;
38
+ get startNodePosition(): INodePosition | null;
39
+ get endNodePosition(): Nullable<INodePosition>;
40
+ get direction(): RANGE_DIRECTION;
41
+ get segmentId(): string;
42
+ get segmentPage(): number;
43
+ getAbsolutePosition(): {
44
+ left: number;
45
+ top: number;
46
+ width: number;
47
+ height: number;
48
+ } | undefined;
49
+ getAnchor(): Nullable<Rect<import('@univerjs/engine-render').IRectProps>>;
50
+ activeStatic(): void;
51
+ deactivateStatic(): void;
52
+ isActive(): boolean;
53
+ activate(): void;
54
+ deactivate(): void;
55
+ dispose(): void;
56
+ isIntersection(compareRange: TextRange): boolean;
57
+ refresh(): void;
58
+ private _isEmpty;
59
+ private _isCollapsed;
60
+ private _createOrUpdateRange;
61
+ private _createOrUpdateAnchor;
62
+ private _setCursorList;
63
+ }
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Copyright 2023-present DreamNum Inc.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ export declare const DOC_VERTICAL_PADDING = 4;
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Copyright 2023-present DreamNum Inc.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ export declare enum DeleteDirection {
17
+ LEFT = 0,
18
+ RIGHT = 1
19
+ }
@@ -1,4 +1,4 @@
1
- import { IParagraph, ISectionBreak, SpacingRule } from '@univerjs/core';
1
+ import { SpacingRule, IParagraph, ISectionBreak } from '@univerjs/core';
2
2
  export declare const useCurrentParagraph: () => IParagraph[];
3
3
  export declare const useCurrentSections: (currentParagraphs: IParagraph[]) => ISectionBreak[];
4
4
  export declare const useFirstParagraphHorizontalAlign: (paragraph: IParagraph[], defaultValue: string) => readonly [string, (v: string) => Promise<boolean>];