@univerjs/engine-render 0.1.0-alpha.2 → 0.1.0-alpha.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/lib/cjs/index.js +3 -3
- package/lib/es/index.js +6453 -5083
- package/lib/types/base-object.d.ts +6 -5
- package/lib/types/basics/const.d.ts +1 -153
- package/lib/types/basics/range.d.ts +5 -0
- package/lib/types/basics/tools.d.ts +4 -3
- package/lib/types/basics/vector2.d.ts +8 -0
- package/lib/types/components/component.d.ts +7 -7
- package/lib/types/components/docs/block/paragraph/bullet.d.ts +1 -1
- package/lib/types/components/docs/block/paragraph/language-ruler.d.ts +17 -8
- package/lib/types/components/docs/common/range.d.ts +2 -2
- package/lib/types/components/docs/doc-component.d.ts +6 -10
- package/lib/types/components/docs/doc-extension.d.ts +2 -1
- package/lib/types/components/docs/doc-skeleton.d.ts +2 -2
- package/lib/types/components/docs/document.d.ts +3 -4
- package/lib/types/components/docs/text-selection-render-manager.d.ts +26 -24
- package/lib/types/components/extension.d.ts +2 -2
- package/lib/types/components/sheets/column-header.d.ts +2 -2
- package/lib/types/components/sheets/extensions/background.d.ts +2 -2
- package/lib/types/components/sheets/extensions/border.d.ts +2 -2
- package/lib/types/components/sheets/extensions/font.d.ts +2 -2
- package/lib/types/components/sheets/extensions/index.d.ts +0 -1
- package/lib/types/components/sheets/extensions/sheet-extension.d.ts +4 -1
- package/lib/types/components/sheets/interfaces.d.ts +2 -1
- package/lib/types/components/sheets/row-header.d.ts +2 -2
- package/lib/types/components/sheets/sheet-component.d.ts +8 -8
- package/lib/types/components/sheets/sheet-skeleton.d.ts +28 -10
- package/lib/types/components/sheets/spreadsheet.d.ts +18 -16
- package/lib/types/custom/custom-object.d.ts +2 -2
- package/lib/types/engine.d.ts +3 -3
- package/lib/types/group.d.ts +2 -2
- package/lib/types/layer.d.ts +14 -2
- package/lib/types/scene-viewer.d.ts +2 -2
- package/lib/types/scene.d.ts +3 -4
- package/lib/types/shape/rich-text.d.ts +2 -5
- package/lib/types/shape/shape.d.ts +2 -10
- package/lib/types/thin-scene.d.ts +3 -2
- package/lib/types/viewport.d.ts +11 -10
- package/lib/umd/index.js +3 -3
- package/package.json +8 -7
- package/lib/types/components/sheets/extensions/border-auxiliary.d.ts +0 -27
|
@@ -20,7 +20,7 @@ import { CURSOR_TYPE, RENDER_CLASS_TYPE } from './basics/const';
|
|
|
20
20
|
import type { IMouseEvent, IPointerEvent, IWheelEvent } from './basics/i-events';
|
|
21
21
|
import type { IObjectFullState, ITransformChangeState } from './basics/interfaces';
|
|
22
22
|
import { Transform } from './basics/transform';
|
|
23
|
-
import type {
|
|
23
|
+
import type { IViewportBound, Vector2 } from './basics/vector2';
|
|
24
24
|
export declare const BASE_OBJECT_ARRAY: string[];
|
|
25
25
|
export declare abstract class BaseObject {
|
|
26
26
|
groupKey?: string;
|
|
@@ -65,6 +65,7 @@ export declare abstract class BaseObject {
|
|
|
65
65
|
private _cursor;
|
|
66
66
|
private _isTransformer;
|
|
67
67
|
private _forceRender;
|
|
68
|
+
private _layer;
|
|
68
69
|
constructor(key?: string);
|
|
69
70
|
get transform(): Transform;
|
|
70
71
|
get topOrigin(): string | number;
|
|
@@ -94,6 +95,7 @@ export declare abstract class BaseObject {
|
|
|
94
95
|
get debounceParentDirty(): boolean;
|
|
95
96
|
get isTransformer(): boolean;
|
|
96
97
|
get cursor(): CURSOR_TYPE;
|
|
98
|
+
get layer(): any;
|
|
97
99
|
set transform(trans: Transform);
|
|
98
100
|
set zIndex(index: number);
|
|
99
101
|
set parent(o: any);
|
|
@@ -101,6 +103,7 @@ export declare abstract class BaseObject {
|
|
|
101
103
|
set debounceParentDirty(state: boolean);
|
|
102
104
|
set isTransformer(state: boolean);
|
|
103
105
|
set cursor(val: CURSOR_TYPE);
|
|
106
|
+
set layer(layer: any);
|
|
104
107
|
protected set top(num: number | string);
|
|
105
108
|
protected set left(num: number | string);
|
|
106
109
|
protected set width(num: number | string);
|
|
@@ -122,7 +125,7 @@ export declare abstract class BaseObject {
|
|
|
122
125
|
skew(skewX?: number, skewY?: number): this;
|
|
123
126
|
flip(flipX?: boolean, flipY?: boolean): this;
|
|
124
127
|
transformByState(option: IObjectFullState): this | undefined;
|
|
125
|
-
isRender(bounds?:
|
|
128
|
+
isRender(bounds?: IViewportBound): boolean | undefined;
|
|
126
129
|
getParent(): any;
|
|
127
130
|
getState(): {
|
|
128
131
|
left: number;
|
|
@@ -139,13 +142,11 @@ export declare abstract class BaseObject {
|
|
|
139
142
|
};
|
|
140
143
|
hide(): void;
|
|
141
144
|
show(): void;
|
|
142
|
-
render(ctx: CanvasRenderingContext2D, bounds?:
|
|
145
|
+
render(ctx: CanvasRenderingContext2D, bounds?: IViewportBound): void;
|
|
143
146
|
isHit(coord: Vector2): boolean;
|
|
144
147
|
on(eventType: EVENT_TYPE, func: (evt: unknown, state: EventState) => void): Nullable<Observer<unknown>>;
|
|
145
148
|
off(eventType: EVENT_TYPE, observer: Nullable<Observer<unknown>>): void;
|
|
146
149
|
clear(eventType: EVENT_TYPE): void;
|
|
147
|
-
resizeCacheCanvas(): void;
|
|
148
|
-
scaleCacheCanvas(): void;
|
|
149
150
|
triggerPointerMove(evt: IPointerEvent | IMouseEvent): boolean;
|
|
150
151
|
triggerPointerDown(evt: IPointerEvent | IMouseEvent): boolean;
|
|
151
152
|
triggerPointerUp(evt: IPointerEvent | IMouseEvent): boolean;
|
|
@@ -13,159 +13,6 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
-
export declare const RGB_PAREN = "rgb(";
|
|
17
|
-
export declare const RGBA_PAREN = "rgba(";
|
|
18
|
-
export declare const COLORS: {
|
|
19
|
-
aliceBlue: number[];
|
|
20
|
-
antiqueWhite: number[];
|
|
21
|
-
aqua: number[];
|
|
22
|
-
aquamarine: number[];
|
|
23
|
-
azure: number[];
|
|
24
|
-
beige: number[];
|
|
25
|
-
bisque: number[];
|
|
26
|
-
black: number[];
|
|
27
|
-
blancheAlmond: number[];
|
|
28
|
-
blue: number[];
|
|
29
|
-
blueViolet: number[];
|
|
30
|
-
brown: number[];
|
|
31
|
-
burlyWood: number[];
|
|
32
|
-
cadetBlue: number[];
|
|
33
|
-
chartreuse: number[];
|
|
34
|
-
chocolate: number[];
|
|
35
|
-
coral: number[];
|
|
36
|
-
cornFlowerBlue: number[];
|
|
37
|
-
cornSilk: number[];
|
|
38
|
-
crimson: number[];
|
|
39
|
-
cyan: number[];
|
|
40
|
-
darkblue: number[];
|
|
41
|
-
darkCyan: number[];
|
|
42
|
-
darkGoldenrod: number[];
|
|
43
|
-
darkGray: number[];
|
|
44
|
-
darkGreen: number[];
|
|
45
|
-
darkGrey: number[];
|
|
46
|
-
darkKhaki: number[];
|
|
47
|
-
darkMagenta: number[];
|
|
48
|
-
darkOliveGreen: number[];
|
|
49
|
-
darkOrange: number[];
|
|
50
|
-
darkOrchid: number[];
|
|
51
|
-
darkRed: number[];
|
|
52
|
-
darkSalmon: number[];
|
|
53
|
-
darkSeaGreen: number[];
|
|
54
|
-
darkSlateBlue: number[];
|
|
55
|
-
darkSlateGray: number[];
|
|
56
|
-
darkSlateGrey: number[];
|
|
57
|
-
darkTurquoise: number[];
|
|
58
|
-
darkViolet: number[];
|
|
59
|
-
deepPink: number[];
|
|
60
|
-
deepSkyBlue: number[];
|
|
61
|
-
dimGray: number[];
|
|
62
|
-
dimGrey: number[];
|
|
63
|
-
dodgerBlue: number[];
|
|
64
|
-
firebrick: number[];
|
|
65
|
-
floralWhite: number[];
|
|
66
|
-
forestGreen: number[];
|
|
67
|
-
fuchsia: number[];
|
|
68
|
-
gainsboro: number[];
|
|
69
|
-
ghostWhite: number[];
|
|
70
|
-
gold: number[];
|
|
71
|
-
goldenrod: number[];
|
|
72
|
-
gray: number[];
|
|
73
|
-
green: number[];
|
|
74
|
-
greenYellow: number[];
|
|
75
|
-
grey: number[];
|
|
76
|
-
honeydew: number[];
|
|
77
|
-
hotPink: number[];
|
|
78
|
-
indianRed: number[];
|
|
79
|
-
indigo: number[];
|
|
80
|
-
ivory: number[];
|
|
81
|
-
khaki: number[];
|
|
82
|
-
lavender: number[];
|
|
83
|
-
lavenderBlush: number[];
|
|
84
|
-
lawnGreen: number[];
|
|
85
|
-
lemonChiffon: number[];
|
|
86
|
-
lightblue: number[];
|
|
87
|
-
lightCoral: number[];
|
|
88
|
-
lightCyan: number[];
|
|
89
|
-
lightGoldenrodYellow: number[];
|
|
90
|
-
lightGray: number[];
|
|
91
|
-
lightGreen: number[];
|
|
92
|
-
lightGrey: number[];
|
|
93
|
-
lightPink: number[];
|
|
94
|
-
lightSalmon: number[];
|
|
95
|
-
lightSeaGreen: number[];
|
|
96
|
-
lightSkyBlue: number[];
|
|
97
|
-
lightSlateGray: number[];
|
|
98
|
-
lightSlateGrey: number[];
|
|
99
|
-
lightSteelBlue: number[];
|
|
100
|
-
lightYellow: number[];
|
|
101
|
-
lime: number[];
|
|
102
|
-
limeGreen: number[];
|
|
103
|
-
linen: number[];
|
|
104
|
-
magenta: number[];
|
|
105
|
-
maroon: number[];
|
|
106
|
-
mediumAquamarine: number[];
|
|
107
|
-
mediumBlue: number[];
|
|
108
|
-
mediumOrchid: number[];
|
|
109
|
-
mediumPurple: number[];
|
|
110
|
-
mediumSeaGreen: number[];
|
|
111
|
-
mediumSlateBlue: number[];
|
|
112
|
-
mediumSpringGreen: number[];
|
|
113
|
-
mediumTurquoise: number[];
|
|
114
|
-
mediumVioletRed: number[];
|
|
115
|
-
midBightBlue: number[];
|
|
116
|
-
mintCream: number[];
|
|
117
|
-
mistyRose: number[];
|
|
118
|
-
moccasin: number[];
|
|
119
|
-
navajoWhite: number[];
|
|
120
|
-
navy: number[];
|
|
121
|
-
oldLace: number[];
|
|
122
|
-
olive: number[];
|
|
123
|
-
oliveDrab: number[];
|
|
124
|
-
orange: number[];
|
|
125
|
-
orangeRed: number[];
|
|
126
|
-
orchid: number[];
|
|
127
|
-
paleGoldenrod: number[];
|
|
128
|
-
paleGreen: number[];
|
|
129
|
-
paleTurquoise: number[];
|
|
130
|
-
paleVioletRed: number[];
|
|
131
|
-
papayaWhip: number[];
|
|
132
|
-
peachPuff: number[];
|
|
133
|
-
peru: number[];
|
|
134
|
-
pink: number[];
|
|
135
|
-
plum: number[];
|
|
136
|
-
powderBlue: number[];
|
|
137
|
-
purple: number[];
|
|
138
|
-
rebeccaPurple: number[];
|
|
139
|
-
red: number[];
|
|
140
|
-
rosyBrown: number[];
|
|
141
|
-
royalBlue: number[];
|
|
142
|
-
saddleBrown: number[];
|
|
143
|
-
salmon: number[];
|
|
144
|
-
sandyBrown: number[];
|
|
145
|
-
seaGreen: number[];
|
|
146
|
-
seashell: number[];
|
|
147
|
-
sienna: number[];
|
|
148
|
-
silver: number[];
|
|
149
|
-
skyBlue: number[];
|
|
150
|
-
slateBlue: number[];
|
|
151
|
-
slateGray: number[];
|
|
152
|
-
slateGrey: number[];
|
|
153
|
-
snow: number[];
|
|
154
|
-
springGreen: number[];
|
|
155
|
-
steelBlue: number[];
|
|
156
|
-
tan: number[];
|
|
157
|
-
teal: number[];
|
|
158
|
-
thistle: number[];
|
|
159
|
-
transparent: number[];
|
|
160
|
-
tomato: number[];
|
|
161
|
-
turquoise: number[];
|
|
162
|
-
violet: number[];
|
|
163
|
-
wheat: number[];
|
|
164
|
-
white: number[];
|
|
165
|
-
whiteSmoke: number[];
|
|
166
|
-
yellow: number[];
|
|
167
|
-
yellowGreen: number[];
|
|
168
|
-
};
|
|
169
16
|
export declare enum SHAPE_TYPE {
|
|
170
17
|
RECT = "rect",
|
|
171
18
|
CIRCLE = "circle",
|
|
@@ -275,3 +122,4 @@ export declare enum RENDER_CLASS_TYPE {
|
|
|
275
122
|
}
|
|
276
123
|
export declare const DEFAULT_SELECTION_LAYER_INDEX = 1000;
|
|
277
124
|
export declare const MAXIMUM_ROW_HEIGHT = 2000;
|
|
125
|
+
export declare const FIX_ONE_PIXEL_BLUR_OFFSET = 0.5;
|
|
@@ -24,6 +24,11 @@ export declare const NORMAL_TEXT_SELECTION_PLUGIN_STYLE: ITextSelectionStyle;
|
|
|
24
24
|
export interface ITextRangeWithStyle extends ITextRangeParam {
|
|
25
25
|
style?: ITextSelectionStyle;
|
|
26
26
|
}
|
|
27
|
+
export interface ISuccinctTextRangeParam {
|
|
28
|
+
startOffset: number;
|
|
29
|
+
endOffset: number;
|
|
30
|
+
style?: ITextSelectionStyle;
|
|
31
|
+
}
|
|
27
32
|
export declare enum RANGE_DIRECTION {
|
|
28
33
|
NONE = "none",
|
|
29
34
|
BACKWARD = "backward",
|
|
@@ -51,6 +51,7 @@ export declare function isNumber(value?: unknown): value is number;
|
|
|
51
51
|
export declare function isObject(value?: unknown): value is object;
|
|
52
52
|
export declare function precisionTo(num: number, accurate: number): number;
|
|
53
53
|
/**
|
|
54
|
+
* When drawing lines, it is necessary to align their precision.
|
|
54
55
|
* performance testing
|
|
55
56
|
* var time = performance.now(); for(let i=0;i<100000000;i++){ fixLineWidthByScale(i, 0.666); }; console.log(performance.now()-time);
|
|
56
57
|
*/
|
|
@@ -73,7 +74,7 @@ export declare const EMOJI_REG: RegExp;
|
|
|
73
74
|
export declare function startWithEmoji(text: string): boolean;
|
|
74
75
|
export declare function hasArabic(text: string): boolean;
|
|
75
76
|
export declare function hasTibetan(text: string): boolean;
|
|
76
|
-
export declare function
|
|
77
|
+
export declare function hasSpace(text: string): boolean;
|
|
77
78
|
export declare function getDPI(): number;
|
|
78
79
|
export declare function ptToPx(pt: number): number;
|
|
79
80
|
export declare function pxToPt(px: number): number;
|
|
@@ -100,13 +101,13 @@ export declare function mergeInfoOffset(mergeInfo: IRangeWithCoord, offsetX: num
|
|
|
100
101
|
startY: number;
|
|
101
102
|
endX: number;
|
|
102
103
|
endY: number;
|
|
103
|
-
startRow: number;
|
|
104
104
|
startColumn: number;
|
|
105
|
-
endRow: number;
|
|
106
105
|
endColumn: number;
|
|
107
106
|
rangeType?: import("@univerjs/core").RANGE_TYPE | undefined;
|
|
108
107
|
startAbsoluteRefType?: import("@univerjs/core").AbsoluteRefType | undefined;
|
|
109
108
|
endAbsoluteRefType?: import("@univerjs/core").AbsoluteRefType | undefined;
|
|
109
|
+
startRow: number;
|
|
110
|
+
endRow: number;
|
|
110
111
|
};
|
|
111
112
|
export declare function isRectIntersect(rect1: IBoundRectNoAngle, rect2: IBoundRectNoAngle): boolean;
|
|
112
113
|
export declare function injectStyle(styles: string[]): void;
|
|
@@ -450,3 +450,11 @@ export interface IBoundRectNoAngle {
|
|
|
450
450
|
right: number;
|
|
451
451
|
bottom: number;
|
|
452
452
|
}
|
|
453
|
+
export interface IViewportBound {
|
|
454
|
+
viewBound: IBoundRectNoAngle;
|
|
455
|
+
diffBounds: IBoundRectNoAngle[];
|
|
456
|
+
diffX: number;
|
|
457
|
+
diffY: number;
|
|
458
|
+
viewPortPosition: IBoundRectNoAngle;
|
|
459
|
+
viewPortKey?: string;
|
|
460
|
+
}
|
|
@@ -14,14 +14,14 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
import { BaseObject } from '../base-object';
|
|
17
|
-
import type {
|
|
17
|
+
import type { IViewportBound } from '../basics/vector2';
|
|
18
18
|
import type { ComponentExtension } from './extension';
|
|
19
|
-
export declare class RenderComponent<T, U> extends BaseObject {
|
|
19
|
+
export declare class RenderComponent<T, U, V> extends BaseObject {
|
|
20
20
|
private _extensions;
|
|
21
|
-
get extensions(): Map<string, ComponentExtension<T, U>>;
|
|
22
|
-
register(...extensions: Array<ComponentExtension<T, U>>): void;
|
|
21
|
+
get extensions(): Map<string, ComponentExtension<T, U, V>>;
|
|
22
|
+
register(...extensions: Array<ComponentExtension<T, U, V>>): void;
|
|
23
23
|
unRegister(...uKeys: string[]): void;
|
|
24
|
-
getExtensionsByOrder(): ComponentExtension<T, U>[];
|
|
25
|
-
getExtensionByKey(uKey: string): ComponentExtension<T, U> | undefined;
|
|
26
|
-
draw(ctx: CanvasRenderingContext2D, bounds?:
|
|
24
|
+
getExtensionsByOrder(): ComponentExtension<T, U, V>[];
|
|
25
|
+
getExtensionByKey(uKey: string): ComponentExtension<T, U, V> | undefined;
|
|
26
|
+
draw(ctx: CanvasRenderingContext2D, bounds?: IViewportBound): void;
|
|
27
27
|
}
|
|
@@ -15,5 +15,5 @@
|
|
|
15
15
|
*/
|
|
16
16
|
import type { IBullet, ILists, LocaleService, Nullable } from '@univerjs/core';
|
|
17
17
|
import type { IDocumentSkeletonBullet } from '../../../../basics/i-document-skeleton-cached';
|
|
18
|
-
export declare function
|
|
18
|
+
export declare function dealWithBullet(bullet?: IBullet, lists?: ILists, listLevelAncestors?: Array<Nullable<IDocumentSkeletonBullet>>, localeService?: LocaleService): IDocumentSkeletonBullet | undefined;
|
|
19
19
|
export declare function getDefaultBulletSke(listId: string, startIndex?: number): IDocumentSkeletonBullet;
|
|
@@ -13,14 +13,23 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
-
import type { IParagraphStyle
|
|
17
|
-
import type { IDocumentSkeletonSpan } from '../../../../basics/i-document-skeleton-cached';
|
|
16
|
+
import type { IParagraphStyle } from '@univerjs/core';
|
|
18
17
|
import type { ISectionBreakConfig } from '../../../../basics/interfaces';
|
|
19
18
|
import type { DataStreamTreeNode } from '../../view-model/data-stream-tree-node';
|
|
20
19
|
import type { DocumentViewModel } from '../../view-model/document-view-model';
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
spanGroup: IDocumentSkeletonSpan[];
|
|
24
|
-
}
|
|
25
|
-
export declare function
|
|
26
|
-
|
|
20
|
+
export declare function otherHandler(index: number, charArray: string, bodyModel: DocumentViewModel, paragraphNode: DataStreamTreeNode, sectionBreakConfig: ISectionBreakConfig, paragraphStyle: IParagraphStyle): {
|
|
21
|
+
step: number;
|
|
22
|
+
spanGroup: import("../../../..").IDocumentSkeletonSpan[];
|
|
23
|
+
};
|
|
24
|
+
export declare function ArabicHandler(index: number, charArray: string, bodyModel: DocumentViewModel, paragraphNode: DataStreamTreeNode, sectionBreakConfig: ISectionBreakConfig, paragraphStyle: IParagraphStyle): {
|
|
25
|
+
step: number;
|
|
26
|
+
spanGroup: import("../../../..").IDocumentSkeletonSpan[];
|
|
27
|
+
};
|
|
28
|
+
export declare function emojiHandler(index: number, charArray: string, bodyModel: DocumentViewModel, paragraphNode: DataStreamTreeNode, sectionBreakConfig: ISectionBreakConfig, paragraphStyle: IParagraphStyle): {
|
|
29
|
+
step: number;
|
|
30
|
+
spanGroup: import("../../../..").IDocumentSkeletonSpan[];
|
|
31
|
+
};
|
|
32
|
+
export declare function TibetanHandler(index: number, charArray: string, bodyModel: DocumentViewModel, paragraphNode: DataStreamTreeNode, sectionBreakConfig: ISectionBreakConfig, paragraphStyle: IParagraphStyle): {
|
|
33
|
+
step: number;
|
|
34
|
+
spanGroup: import("../../../..").IDocumentSkeletonSpan[];
|
|
35
|
+
};
|
|
@@ -15,14 +15,14 @@
|
|
|
15
15
|
*/
|
|
16
16
|
import type { Nullable } from '@univerjs/core';
|
|
17
17
|
import type { INodePosition } from '../../../basics/interfaces';
|
|
18
|
-
import type {
|
|
18
|
+
import type { ISuccinctTextRangeParam, ITextSelectionStyle } from '../../../basics/range';
|
|
19
19
|
import { RANGE_DIRECTION } from '../../../basics/range';
|
|
20
20
|
import type { Scene } from '../../../scene';
|
|
21
21
|
import { Rect } from '../../../shape/rect';
|
|
22
22
|
import type { ThinScene } from '../../../thin-scene';
|
|
23
23
|
import type { DocumentSkeleton } from '../doc-skeleton';
|
|
24
24
|
import type { IDocumentOffsetConfig } from '../document';
|
|
25
|
-
export declare function cursorConvertToTextRange(scene: Scene, range:
|
|
25
|
+
export declare function cursorConvertToTextRange(scene: Scene, range: ISuccinctTextRangeParam, docSkeleton: DocumentSkeleton, documentOffsetConfig: IDocumentOffsetConfig): Nullable<TextRange>;
|
|
26
26
|
export declare class TextRange {
|
|
27
27
|
private _scene;
|
|
28
28
|
private _documentOffsetConfig;
|
|
@@ -17,23 +17,19 @@ import type { Nullable } from '@univerjs/core';
|
|
|
17
17
|
import type { IDocumentSkeletonLine, IDocumentSkeletonSpan } from '../../basics/i-document-skeleton-cached';
|
|
18
18
|
import { PageLayoutType } from '../../basics/i-document-skeleton-cached';
|
|
19
19
|
import type { INodeInfo } from '../../basics/interfaces';
|
|
20
|
-
import type {
|
|
21
|
-
import { Canvas } from '../../canvas';
|
|
20
|
+
import type { IBoundRectNoAngle, IViewportBound } from '../../basics/vector2';
|
|
22
21
|
import { RenderComponent } from '../component';
|
|
23
22
|
import type { DOCS_EXTENSION_TYPE } from './doc-extension';
|
|
24
23
|
import type { DocumentSkeleton } from './doc-skeleton';
|
|
25
|
-
export declare class DocComponent extends RenderComponent<IDocumentSkeletonSpan | IDocumentSkeletonLine, DOCS_EXTENSION_TYPE> {
|
|
24
|
+
export declare class DocComponent extends RenderComponent<IDocumentSkeletonSpan | IDocumentSkeletonLine, DOCS_EXTENSION_TYPE, IBoundRectNoAngle[]> {
|
|
26
25
|
private _skeleton?;
|
|
27
|
-
private _allowCache;
|
|
28
26
|
pageMarginLeft: number;
|
|
29
27
|
pageMarginTop: number;
|
|
30
28
|
pageLayoutType: PageLayoutType;
|
|
31
|
-
|
|
32
|
-
constructor(oKey: string, _skeleton?: DocumentSkeleton | undefined, _allowCache?: boolean);
|
|
33
|
-
setAllowCache(state?: boolean): void;
|
|
29
|
+
constructor(oKey: string, _skeleton?: DocumentSkeleton | undefined);
|
|
34
30
|
getSkeleton(): DocumentSkeleton | undefined;
|
|
35
31
|
setSkeleton(skeleton: DocumentSkeleton): void;
|
|
36
|
-
render(mainCtx: CanvasRenderingContext2D, bounds?:
|
|
32
|
+
render(mainCtx: CanvasRenderingContext2D, bounds?: IViewportBound): this | undefined;
|
|
37
33
|
getParentScale(): {
|
|
38
34
|
scaleX: any;
|
|
39
35
|
scaleY: any;
|
|
@@ -43,6 +39,6 @@ export declare class DocComponent extends RenderComponent<IDocumentSkeletonSpan
|
|
|
43
39
|
remainActiveSelection(): void;
|
|
44
40
|
findNodeByCoord(offsetX: number, offsetY: number): Nullable<INodeInfo>;
|
|
45
41
|
findCoordByNode(span: IDocumentSkeletonSpan): void;
|
|
46
|
-
protected _getBounding(bounds?:
|
|
47
|
-
protected _draw(ctx: CanvasRenderingContext2D, bounds?:
|
|
42
|
+
protected _getBounding(bounds?: IViewportBound): void;
|
|
43
|
+
protected _draw(ctx: CanvasRenderingContext2D, bounds?: IViewportBound): void;
|
|
48
44
|
}
|
|
@@ -13,13 +13,14 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
+
import type { IBoundRectNoAngle } from '../..';
|
|
16
17
|
import type { IDocumentSkeletonLine, IDocumentSkeletonSpan } from '../../basics/i-document-skeleton-cached';
|
|
17
18
|
import { ComponentExtension } from '../extension';
|
|
18
19
|
export declare enum DOCS_EXTENSION_TYPE {
|
|
19
20
|
SPAN = 0,
|
|
20
21
|
LINE = 1
|
|
21
22
|
}
|
|
22
|
-
export declare class docExtension extends ComponentExtension<IDocumentSkeletonSpan | IDocumentSkeletonLine, DOCS_EXTENSION_TYPE> {
|
|
23
|
+
export declare class docExtension extends ComponentExtension<IDocumentSkeletonSpan | IDocumentSkeletonLine, DOCS_EXTENSION_TYPE, IBoundRectNoAngle> {
|
|
23
24
|
type: DOCS_EXTENSION_TYPE;
|
|
24
25
|
translateX: number;
|
|
25
26
|
translateY: number;
|
|
@@ -17,7 +17,7 @@ import type { LocaleService, Nullable } from '@univerjs/core';
|
|
|
17
17
|
import type { IDocumentSkeletonCached, IDocumentSkeletonSpan } from '../../basics/i-document-skeleton-cached';
|
|
18
18
|
import { PageLayoutType } from '../../basics/i-document-skeleton-cached';
|
|
19
19
|
import type { INodeInfo, INodePosition, INodeSearch } from '../../basics/interfaces';
|
|
20
|
-
import type {
|
|
20
|
+
import type { IViewportBound, Vector2 } from '../../basics/vector2';
|
|
21
21
|
import { Skeleton } from '../skeleton';
|
|
22
22
|
import type { DocumentViewModel } from './view-model/document-view-model';
|
|
23
23
|
export declare enum DocumentSkeletonState {
|
|
@@ -34,7 +34,7 @@ export declare class DocumentSkeleton extends Skeleton {
|
|
|
34
34
|
constructor(_docViewModel: DocumentViewModel, localeService: LocaleService);
|
|
35
35
|
static create(docViewModel: DocumentViewModel, localeService: LocaleService): DocumentSkeleton;
|
|
36
36
|
getViewModel(): DocumentViewModel;
|
|
37
|
-
calculate(bounds?:
|
|
37
|
+
calculate(bounds?: IViewportBound): void;
|
|
38
38
|
getSkeletonData(): Nullable<IDocumentSkeletonCached>;
|
|
39
39
|
getActualSize(): {
|
|
40
40
|
actualWidth: number;
|
|
@@ -18,7 +18,7 @@ import { Observable } from '@univerjs/core';
|
|
|
18
18
|
import type { IDocumentSkeletonPage } from '../../basics/i-document-skeleton-cached';
|
|
19
19
|
import { PageLayoutType } from '../../basics/i-document-skeleton-cached';
|
|
20
20
|
import type { Transform } from '../../basics/transform';
|
|
21
|
-
import type {
|
|
21
|
+
import type { IViewportBound } from '../../basics/vector2';
|
|
22
22
|
import type { Scene } from '../../scene';
|
|
23
23
|
import { DocComponent } from './doc-component';
|
|
24
24
|
import type { DocumentSkeleton } from './doc-skeleton';
|
|
@@ -28,7 +28,6 @@ interface IPageMarginLayout {
|
|
|
28
28
|
pageLayoutType?: PageLayoutType;
|
|
29
29
|
}
|
|
30
30
|
export interface IDocumentsConfig extends IPageMarginLayout {
|
|
31
|
-
allowCache?: boolean;
|
|
32
31
|
hasEditor?: boolean;
|
|
33
32
|
}
|
|
34
33
|
export interface IPageRenderConfig {
|
|
@@ -54,9 +53,9 @@ export declare class Documents extends DocComponent {
|
|
|
54
53
|
setConfig(config?: IDocumentsConfig): void;
|
|
55
54
|
getOffsetConfig(): IDocumentOffsetConfig;
|
|
56
55
|
getEngine(): Nullable<import("../../thin-engine").ThinEngine<Scene>>;
|
|
57
|
-
draw(ctx: CanvasRenderingContext2D, bounds?:
|
|
56
|
+
draw(ctx: CanvasRenderingContext2D, bounds?: IViewportBound): void;
|
|
58
57
|
changeSkeleton(newSkeleton: DocumentSkeleton): this;
|
|
59
|
-
protected _draw(ctx: CanvasRenderingContext2D, bounds?:
|
|
58
|
+
protected _draw(ctx: CanvasRenderingContext2D, bounds?: IViewportBound): void;
|
|
60
59
|
private _horizontalHandler;
|
|
61
60
|
private _verticalHandler;
|
|
62
61
|
private _startRotation;
|
|
@@ -18,7 +18,7 @@ import { RxDisposable } from '@univerjs/core';
|
|
|
18
18
|
import type { Observable } from 'rxjs';
|
|
19
19
|
import type { IMouseEvent, IPointerEvent } from '../../basics/i-events';
|
|
20
20
|
import type { INodePosition } from '../../basics/interfaces';
|
|
21
|
-
import type { ITextRangeWithStyle, ITextSelectionStyle, RANGE_DIRECTION } from '../../basics/range';
|
|
21
|
+
import type { ISuccinctTextRangeParam, ITextRangeWithStyle, ITextSelectionStyle, RANGE_DIRECTION } from '../../basics/range';
|
|
22
22
|
import type { Engine } from '../../engine';
|
|
23
23
|
import type { Scene } from '../../scene';
|
|
24
24
|
import type { Viewport } from '../../viewport';
|
|
@@ -34,6 +34,21 @@ interface IAddTextRangesConfig {
|
|
|
34
34
|
skeleton: DocumentSkeleton;
|
|
35
35
|
documentOffsetConfig: IDocumentOffsetConfig;
|
|
36
36
|
}
|
|
37
|
+
export interface ITextSelectionInnerParam {
|
|
38
|
+
textRanges: TextRange[];
|
|
39
|
+
segmentId: string;
|
|
40
|
+
style: ITextSelectionStyle;
|
|
41
|
+
}
|
|
42
|
+
export interface IActiveTextRange {
|
|
43
|
+
startOffset: number;
|
|
44
|
+
endOffset: number;
|
|
45
|
+
collapsed: boolean;
|
|
46
|
+
startNodePosition: Nullable<INodePosition>;
|
|
47
|
+
endNodePosition: Nullable<INodePosition>;
|
|
48
|
+
direction: RANGE_DIRECTION;
|
|
49
|
+
segmentId: string;
|
|
50
|
+
style: ITextSelectionStyle;
|
|
51
|
+
}
|
|
37
52
|
export interface ITextSelectionRenderManager {
|
|
38
53
|
readonly onInputBefore$: Observable<Nullable<IEditorInputConfig>>;
|
|
39
54
|
readonly onKeydown$: Observable<Nullable<IEditorInputConfig>>;
|
|
@@ -43,16 +58,16 @@ export interface ITextSelectionRenderManager {
|
|
|
43
58
|
readonly onCompositionend$: Observable<Nullable<IEditorInputConfig>>;
|
|
44
59
|
readonly onSelectionStart$: Observable<Nullable<INodePosition>>;
|
|
45
60
|
readonly onPaste$: Observable<Nullable<IEditorInputConfig>>;
|
|
46
|
-
readonly
|
|
61
|
+
readonly textSelectionInner$: Observable<Nullable<ITextSelectionInnerParam>>;
|
|
62
|
+
__getEditorContainer(): HTMLElement;
|
|
47
63
|
getViewPort(): Viewport;
|
|
48
64
|
enableSelection(): void;
|
|
49
65
|
disableSelection(): void;
|
|
50
66
|
setSegment(id: string): void;
|
|
51
67
|
setStyle(style: ITextSelectionStyle): void;
|
|
52
68
|
resetStyle(): void;
|
|
53
|
-
getAllTextRanges(): TextRange[];
|
|
54
69
|
removeAllTextRanges(): void;
|
|
55
|
-
addTextRanges(ranges:
|
|
70
|
+
addTextRanges(ranges: ISuccinctTextRangeParam[], config?: IAddTextRangesConfig): void;
|
|
56
71
|
sync(): void;
|
|
57
72
|
activate(x: number, y: number): void;
|
|
58
73
|
focus(): void;
|
|
@@ -60,11 +75,6 @@ export interface ITextSelectionRenderManager {
|
|
|
60
75
|
deactivate(): void;
|
|
61
76
|
changeRuntime(docSkeleton: DocumentSkeleton, scene: Scene, viewport?: Nullable<Viewport>, documentOffsetConfig?: IDocumentOffsetConfig): void;
|
|
62
77
|
dispose(): void;
|
|
63
|
-
getActiveRange(): Nullable<ITextRangeWithStyle & {
|
|
64
|
-
startNodePosition: Nullable<INodePosition>;
|
|
65
|
-
endNodePosition: Nullable<INodePosition>;
|
|
66
|
-
direction: RANGE_DIRECTION;
|
|
67
|
-
}>;
|
|
68
78
|
handleDblClick(evt: IPointerEvent | IMouseEvent, documentOffsetConfig: IDocumentOffsetConfig, viewport: Nullable<Viewport>): void;
|
|
69
79
|
handleTripleClick(evt: IPointerEvent | IMouseEvent, documentOffsetConfig: IDocumentOffsetConfig, viewport: Nullable<Viewport>): void;
|
|
70
80
|
eventTrigger(evt: IPointerEvent | IMouseEvent, documentOffsetConfig: IDocumentOffsetConfig, viewport: Nullable<Viewport>): void;
|
|
@@ -94,8 +104,8 @@ export declare class TextSelectionRenderManager extends RxDisposable implements
|
|
|
94
104
|
readonly onSelectionStart$: Observable<Nullable<INodePosition>>;
|
|
95
105
|
private readonly _onPaste$;
|
|
96
106
|
readonly onPaste$: Observable<Nullable<IEditorInputConfig>>;
|
|
97
|
-
private readonly
|
|
98
|
-
readonly
|
|
107
|
+
private readonly _textSelectionInner$;
|
|
108
|
+
readonly textSelectionInner$: Observable<Nullable<ITextSelectionInnerParam>>;
|
|
99
109
|
private _container;
|
|
100
110
|
private _inputParent;
|
|
101
111
|
private _input;
|
|
@@ -113,24 +123,14 @@ export declare class TextSelectionRenderManager extends RxDisposable implements
|
|
|
113
123
|
private _isIMEInputApply;
|
|
114
124
|
private _activeViewport;
|
|
115
125
|
constructor(_docSkeleton?: Nullable<DocumentSkeleton>, _scene?: Nullable<Scene>, viewport?: Nullable<Viewport>);
|
|
126
|
+
__getEditorContainer(): HTMLElement;
|
|
116
127
|
getViewPort(): Viewport;
|
|
117
128
|
setSegment(id: string): void;
|
|
118
129
|
setStyle(style?: ITextSelectionStyle): void;
|
|
119
130
|
resetStyle(): void;
|
|
120
131
|
enableSelection(): void;
|
|
121
132
|
disableSelection(): void;
|
|
122
|
-
|
|
123
|
-
startOffset: number;
|
|
124
|
-
endOffset: number;
|
|
125
|
-
collapsed: boolean;
|
|
126
|
-
startNodePosition: INodePosition | null;
|
|
127
|
-
endNodePosition: Nullable<INodePosition>;
|
|
128
|
-
direction: RANGE_DIRECTION;
|
|
129
|
-
segmentId: string;
|
|
130
|
-
style: ITextSelectionStyle;
|
|
131
|
-
} | null;
|
|
132
|
-
getAllTextRanges(): TextRange[];
|
|
133
|
-
addTextRanges(ranges: ITextRangeWithStyle[], config?: IAddTextRangesConfig): void;
|
|
133
|
+
addTextRanges(ranges: ISuccinctTextRangeParam[]): void;
|
|
134
134
|
sync(): void;
|
|
135
135
|
activate(x: number, y: number): void;
|
|
136
136
|
focus(): void;
|
|
@@ -141,6 +141,8 @@ export declare class TextSelectionRenderManager extends RxDisposable implements
|
|
|
141
141
|
handleTripleClick(evt: IPointerEvent | IMouseEvent, documentOffsetConfig: IDocumentOffsetConfig, viewportMain: Nullable<Viewport>): void;
|
|
142
142
|
eventTrigger(evt: IPointerEvent | IMouseEvent, documentOffsetConfig: IDocumentOffsetConfig, viewportMain: Nullable<Viewport>): void;
|
|
143
143
|
removeAllTextRanges(): void;
|
|
144
|
+
private _getAllTextRanges;
|
|
145
|
+
private _getActiveRange;
|
|
144
146
|
private _add;
|
|
145
147
|
private _getActiveRangeInstance;
|
|
146
148
|
dispose(): void;
|
|
@@ -156,7 +158,7 @@ export declare class TextSelectionRenderManager extends RxDisposable implements
|
|
|
156
158
|
private _isEmpty;
|
|
157
159
|
private _getCanvasOffset;
|
|
158
160
|
private _scrollToSelection;
|
|
159
|
-
private
|
|
161
|
+
private _updateDomCursorPositionAndSize;
|
|
160
162
|
private _moving;
|
|
161
163
|
private _attachScrollEvent;
|
|
162
164
|
private _initInputEvents;
|
|
@@ -25,7 +25,7 @@ export interface IExtensionConfig {
|
|
|
25
25
|
alignOffset?: Vector2;
|
|
26
26
|
renderConfig?: IDocumentRenderConfig;
|
|
27
27
|
}
|
|
28
|
-
export declare class ComponentExtension<T, U> {
|
|
28
|
+
export declare class ComponentExtension<T, U, V> {
|
|
29
29
|
uKey: string;
|
|
30
30
|
type: U;
|
|
31
31
|
zIndex: number;
|
|
@@ -33,7 +33,7 @@ export declare class ComponentExtension<T, U> {
|
|
|
33
33
|
translateX: number;
|
|
34
34
|
translateY: number;
|
|
35
35
|
extensionOffset: IExtensionConfig;
|
|
36
|
-
draw(ctx: CanvasRenderingContext2D, parentScale: IScale, skeleton: T): void;
|
|
36
|
+
draw(ctx: CanvasRenderingContext2D, parentScale: IScale, skeleton: T, diffBounds?: V): void;
|
|
37
37
|
clearCache(): void;
|
|
38
38
|
protected _getScale(parentScale: IScale): number;
|
|
39
39
|
}
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
-
import type {
|
|
16
|
+
import type { IViewportBound, Vector2 } from '../../basics/vector2';
|
|
17
17
|
import type { ColumnHeaderLayout } from './extensions/column-header-layout';
|
|
18
18
|
import { SpreadsheetHeader } from './sheet-component';
|
|
19
19
|
import type { SpreadsheetSkeleton } from './sheet-skeleton';
|
|
@@ -21,7 +21,7 @@ export declare class SpreadsheetColumnHeader extends SpreadsheetHeader {
|
|
|
21
21
|
private _columnHeaderLayoutExtension;
|
|
22
22
|
constructor(oKey: string, spreadsheetSkeleton?: SpreadsheetSkeleton);
|
|
23
23
|
get columnHeaderLayoutExtension(): ColumnHeaderLayout;
|
|
24
|
-
draw(ctx: CanvasRenderingContext2D, bounds?:
|
|
24
|
+
draw(ctx: CanvasRenderingContext2D, bounds?: IViewportBound): void;
|
|
25
25
|
isHit(coord: Vector2): boolean;
|
|
26
26
|
private _initialDefaultExtension;
|
|
27
27
|
}
|
|
@@ -13,11 +13,11 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
-
import type { IScale } from '@univerjs/core';
|
|
16
|
+
import type { IRange, IScale } from '@univerjs/core';
|
|
17
17
|
import type { SpreadsheetSkeleton } from '../sheet-skeleton';
|
|
18
18
|
import { SheetExtension } from './sheet-extension';
|
|
19
19
|
export declare class Background extends SheetExtension {
|
|
20
20
|
uKey: string;
|
|
21
21
|
zIndex: number;
|
|
22
|
-
draw(ctx: CanvasRenderingContext2D, parentScale: IScale, spreadsheetSkeleton: SpreadsheetSkeleton): void;
|
|
22
|
+
draw(ctx: CanvasRenderingContext2D, parentScale: IScale, spreadsheetSkeleton: SpreadsheetSkeleton, diffRanges?: IRange[]): void;
|
|
23
23
|
}
|
|
@@ -13,12 +13,12 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
-
import type { IScale } from '@univerjs/core';
|
|
16
|
+
import type { IRange, IScale } from '@univerjs/core';
|
|
17
17
|
import type { SpreadsheetSkeleton } from '../sheet-skeleton';
|
|
18
18
|
import { SheetExtension } from './sheet-extension';
|
|
19
19
|
export declare class Border extends SheetExtension {
|
|
20
20
|
uKey: string;
|
|
21
21
|
zIndex: number;
|
|
22
|
-
draw(ctx: CanvasRenderingContext2D, parentScale: IScale, spreadsheetSkeleton: SpreadsheetSkeleton): void;
|
|
22
|
+
draw(ctx: CanvasRenderingContext2D, parentScale: IScale, spreadsheetSkeleton: SpreadsheetSkeleton, diffRanges?: IRange[]): void;
|
|
23
23
|
private _getOverflowExclusion;
|
|
24
24
|
}
|