@hailin-zheng/editor-core 1.0.1 → 1.0.5
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/package.json +1 -1
- package/tsconfig.json +1 -1
- package/webpack.config.js +0 -1
- package/dist/doc-ruler.d.ts +0 -51
- package/dist/doc-ruler.js +0 -313
- package/dist/doc-ruler.js.map +0 -1
- package/dist/framework/common-util.d.ts +0 -63
- package/dist/framework/common-util.js +0 -178
- package/dist/framework/common-util.js.map +0 -1
- package/dist/framework/document-change.d.ts +0 -265
- package/dist/framework/document-change.js +0 -1342
- package/dist/framework/document-change.js.map +0 -1
- package/dist/framework/document-combine.d.ts +0 -24
- package/dist/framework/document-combine.js +0 -40
- package/dist/framework/document-combine.js.map +0 -1
- package/dist/framework/document-comment.d.ts +0 -46
- package/dist/framework/document-comment.js +0 -148
- package/dist/framework/document-comment.js.map +0 -1
- package/dist/framework/document-context.d.ts +0 -149
- package/dist/framework/document-context.js +0 -330
- package/dist/framework/document-context.js.map +0 -1
- package/dist/framework/document-eval-func.d.ts +0 -18
- package/dist/framework/document-eval-func.js +0 -48
- package/dist/framework/document-eval-func.js.map +0 -1
- package/dist/framework/document-event.d.ts +0 -213
- package/dist/framework/document-event.js +0 -1054
- package/dist/framework/document-event.js.map +0 -1
- package/dist/framework/document-history.d.ts +0 -26
- package/dist/framework/document-history.js +0 -65
- package/dist/framework/document-history.js.map +0 -1
- package/dist/framework/document-images-loader.d.ts +0 -16
- package/dist/framework/document-images-loader.js +0 -66
- package/dist/framework/document-images-loader.js.map +0 -1
- package/dist/framework/document-input-cursor.d.ts +0 -78
- package/dist/framework/document-input-cursor.js +0 -239
- package/dist/framework/document-input-cursor.js.map +0 -1
- package/dist/framework/document-paint.d.ts +0 -34
- package/dist/framework/document-paint.js +0 -103
- package/dist/framework/document-paint.js.map +0 -1
- package/dist/framework/document-print-offscreen.d.ts +0 -38
- package/dist/framework/document-print-offscreen.js +0 -128
- package/dist/framework/document-print-offscreen.js.map +0 -1
- package/dist/framework/document-print.d.ts +0 -60
- package/dist/framework/document-print.js +0 -203
- package/dist/framework/document-print.js.map +0 -1
- package/dist/framework/document-segmenter.d.ts +0 -2
- package/dist/framework/document-segmenter.js +0 -106
- package/dist/framework/document-segmenter.js.map +0 -1
- package/dist/framework/document-selection.d.ts +0 -89
- package/dist/framework/document-selection.js +0 -358
- package/dist/framework/document-selection.js.map +0 -1
- package/dist/framework/document-template.d.ts +0 -4
- package/dist/framework/document-template.js +0 -20
- package/dist/framework/document-template.js.map +0 -1
- package/dist/framework/document-textline-mode.d.ts +0 -7
- package/dist/framework/document-textline-mode.js +0 -30
- package/dist/framework/document-textline-mode.js.map +0 -1
- package/dist/framework/element-define.d.ts +0 -319
- package/dist/framework/element-define.js +0 -579
- package/dist/framework/element-define.js.map +0 -1
- package/dist/framework/element-event-define.d.ts +0 -99
- package/dist/framework/element-event-define.js +0 -108
- package/dist/framework/element-event-define.js.map +0 -1
- package/dist/framework/element-measure.d.ts +0 -97
- package/dist/framework/element-measure.js +0 -551
- package/dist/framework/element-measure.js.map +0 -1
- package/dist/framework/element-paint.d.ts +0 -42
- package/dist/framework/element-paint.js +0 -170
- package/dist/framework/element-paint.js.map +0 -1
- package/dist/framework/element-props.d.ts +0 -301
- package/dist/framework/element-props.js +0 -809
- package/dist/framework/element-props.js.map +0 -1
- package/dist/framework/element-reader.d.ts +0 -19
- package/dist/framework/element-reader.js +0 -151
- package/dist/framework/element-reader.js.map +0 -1
- package/dist/framework/element-render-cut.d.ts +0 -55
- package/dist/framework/element-render-cut.js +0 -449
- package/dist/framework/element-render-cut.js.map +0 -1
- package/dist/framework/element-serialize.d.ts +0 -30
- package/dist/framework/element-serialize.js +0 -113
- package/dist/framework/element-serialize.js.map +0 -1
- package/dist/framework/element-util.d.ts +0 -369
- package/dist/framework/element-util.js +0 -1463
- package/dist/framework/element-util.js.map +0 -1
- package/dist/framework/impl/checkbox/checkbox-impl.d.ts +0 -24
- package/dist/framework/impl/checkbox/checkbox-impl.js +0 -64
- package/dist/framework/impl/checkbox/checkbox-impl.js.map +0 -1
- package/dist/framework/impl/comments/comment-content-impl.d.ts +0 -40
- package/dist/framework/impl/comments/comment-content-impl.js +0 -105
- package/dist/framework/impl/comments/comment-content-impl.js.map +0 -1
- package/dist/framework/impl/comments/comment-element-impl.d.ts +0 -21
- package/dist/framework/impl/comments/comment-element-impl.js +0 -62
- package/dist/framework/impl/comments/comment-element-impl.js.map +0 -1
- package/dist/framework/impl/comments/comments-container-impl.d.ts +0 -22
- package/dist/framework/impl/comments/comments-container-impl.js +0 -62
- package/dist/framework/impl/comments/comments-container-impl.js.map +0 -1
- package/dist/framework/impl/comments/comments-util.d.ts +0 -12
- package/dist/framework/impl/comments/comments-util.js +0 -67
- package/dist/framework/impl/comments/comments-util.js.map +0 -1
- package/dist/framework/impl/comments/validate-msg-impl.d.ts +0 -21
- package/dist/framework/impl/comments/validate-msg-impl.js +0 -83
- package/dist/framework/impl/comments/validate-msg-impl.js.map +0 -1
- package/dist/framework/impl/data-element/data-decorate-impl.d.ts +0 -30
- package/dist/framework/impl/data-element/data-decorate-impl.js +0 -91
- package/dist/framework/impl/data-element/data-decorate-impl.js.map +0 -1
- package/dist/framework/impl/data-element/data-element-barcode.d.ts +0 -31
- package/dist/framework/impl/data-element/data-element-barcode.js +0 -115
- package/dist/framework/impl/data-element/data-element-barcode.js.map +0 -1
- package/dist/framework/impl/data-element/data-element-base-impl.d.ts +0 -68
- package/dist/framework/impl/data-element/data-element-base-impl.js +0 -205
- package/dist/framework/impl/data-element/data-element-base-impl.js.map +0 -1
- package/dist/framework/impl/data-element/data-element-check-impl.d.ts +0 -35
- package/dist/framework/impl/data-element/data-element-check-impl.js +0 -133
- package/dist/framework/impl/data-element/data-element-check-impl.js.map +0 -1
- package/dist/framework/impl/data-element/data-element-date-impl.d.ts +0 -23
- package/dist/framework/impl/data-element/data-element-date-impl.js +0 -111
- package/dist/framework/impl/data-element/data-element-date-impl.js.map +0 -1
- package/dist/framework/impl/data-element/data-element-group-impl.d.ts +0 -23
- package/dist/framework/impl/data-element/data-element-group-impl.js +0 -130
- package/dist/framework/impl/data-element/data-element-group-impl.js.map +0 -1
- package/dist/framework/impl/data-element/data-element-image-impl.d.ts +0 -30
- package/dist/framework/impl/data-element/data-element-image-impl.js +0 -137
- package/dist/framework/impl/data-element/data-element-image-impl.js.map +0 -1
- package/dist/framework/impl/data-element/data-element-list-impl.d.ts +0 -22
- package/dist/framework/impl/data-element/data-element-list-impl.js +0 -131
- package/dist/framework/impl/data-element/data-element-list-impl.js.map +0 -1
- package/dist/framework/impl/data-element/data-element-text-impl.d.ts +0 -23
- package/dist/framework/impl/data-element/data-element-text-impl.js +0 -103
- package/dist/framework/impl/data-element/data-element-text-impl.js.map +0 -1
- package/dist/framework/impl/decorate/fill-null-space-imple.d.ts +0 -21
- package/dist/framework/impl/decorate/fill-null-space-imple.js +0 -43
- package/dist/framework/impl/decorate/fill-null-space-imple.js.map +0 -1
- package/dist/framework/impl/document/doc-body-impl.d.ts +0 -27
- package/dist/framework/impl/document/doc-body-impl.js +0 -79
- package/dist/framework/impl/document/doc-body-impl.js.map +0 -1
- package/dist/framework/impl/document/doc-body-part-impl.d.ts +0 -30
- package/dist/framework/impl/document/doc-body-part-impl.js +0 -94
- package/dist/framework/impl/document/doc-body-part-impl.js.map +0 -1
- package/dist/framework/impl/document/doc-container-impl.d.ts +0 -16
- package/dist/framework/impl/document/doc-container-impl.js +0 -21
- package/dist/framework/impl/document/doc-container-impl.js.map +0 -1
- package/dist/framework/impl/document/doc-footer-impl.d.ts +0 -26
- package/dist/framework/impl/document/doc-footer-impl.js +0 -77
- package/dist/framework/impl/document/doc-footer-impl.js.map +0 -1
- package/dist/framework/impl/document/doc-header-impl.d.ts +0 -26
- package/dist/framework/impl/document/doc-header-impl.js +0 -83
- package/dist/framework/impl/document/doc-header-impl.js.map +0 -1
- package/dist/framework/impl/document/doc-impl.d.ts +0 -61
- package/dist/framework/impl/document/doc-impl.js +0 -209
- package/dist/framework/impl/document/doc-impl.js.map +0 -1
- package/dist/framework/impl/media-formula/menstrual-history.d.ts +0 -35
- package/dist/framework/impl/media-formula/menstrual-history.js +0 -153
- package/dist/framework/impl/media-formula/menstrual-history.js.map +0 -1
- package/dist/framework/impl/paragraph/p-impl.d.ts +0 -45
- package/dist/framework/impl/paragraph/p-impl.js +0 -156
- package/dist/framework/impl/paragraph/p-impl.js.map +0 -1
- package/dist/framework/impl/picture/image-impl.d.ts +0 -31
- package/dist/framework/impl/picture/image-impl.js +0 -124
- package/dist/framework/impl/picture/image-impl.js.map +0 -1
- package/dist/framework/impl/radio/radio-impl.d.ts +0 -22
- package/dist/framework/impl/radio/radio-impl.js +0 -72
- package/dist/framework/impl/radio/radio-impl.js.map +0 -1
- package/dist/framework/impl/symbol/br-symbol-impl.d.ts +0 -22
- package/dist/framework/impl/symbol/br-symbol-impl.js +0 -54
- package/dist/framework/impl/symbol/br-symbol-impl.js.map +0 -1
- package/dist/framework/impl/symbol/p-symbol-impl.d.ts +0 -19
- package/dist/framework/impl/symbol/p-symbol-impl.js +0 -54
- package/dist/framework/impl/symbol/p-symbol-impl.js.map +0 -1
- package/dist/framework/impl/table/table-cell-impl.d.ts +0 -37
- package/dist/framework/impl/table/table-cell-impl.js +0 -145
- package/dist/framework/impl/table/table-cell-impl.js.map +0 -1
- package/dist/framework/impl/table/table-impl.d.ts +0 -55
- package/dist/framework/impl/table/table-impl.js +0 -363
- package/dist/framework/impl/table/table-impl.js.map +0 -1
- package/dist/framework/impl/table/table-row-impl.d.ts +0 -26
- package/dist/framework/impl/table/table-row-impl.js +0 -75
- package/dist/framework/impl/table/table-row-impl.js.map +0 -1
- package/dist/framework/impl/table/table-split-cell-patch.d.ts +0 -20
- package/dist/framework/impl/table/table-split-cell-patch.js +0 -89
- package/dist/framework/impl/table/table-split-cell-patch.js.map +0 -1
- package/dist/framework/impl/table/table-split-cell.d.ts +0 -90
- package/dist/framework/impl/table/table-split-cell.js +0 -464
- package/dist/framework/impl/table/table-split-cell.js.map +0 -1
- package/dist/framework/impl/table/table-util.d.ts +0 -150
- package/dist/framework/impl/table/table-util.js +0 -678
- package/dist/framework/impl/table/table-util.js.map +0 -1
- package/dist/framework/impl/text/text-impl.d.ts +0 -32
- package/dist/framework/impl/text/text-impl.js +0 -149
- package/dist/framework/impl/text/text-impl.js.map +0 -1
- package/dist/framework/impl/text/track-run-impl.d.ts +0 -27
- package/dist/framework/impl/text/track-run-impl.js +0 -112
- package/dist/framework/impl/text/track-run-impl.js.map +0 -1
- package/dist/framework/notify.d.ts +0 -13
- package/dist/framework/notify.js +0 -116
- package/dist/framework/notify.js.map +0 -1
- package/dist/framework/range-util.d.ts +0 -40
- package/dist/framework/range-util.js +0 -312
- package/dist/framework/range-util.js.map +0 -1
- package/dist/framework/render-context.d.ts +0 -91
- package/dist/framework/render-context.js +0 -384
- package/dist/framework/render-context.js.map +0 -1
- package/dist/framework/render-define.d.ts +0 -109
- package/dist/framework/render-define.js +0 -195
- package/dist/framework/render-define.js.map +0 -1
- package/dist/framework/selection-overlays.d.ts +0 -30
- package/dist/framework/selection-overlays.js +0 -124
- package/dist/framework/selection-overlays.js.map +0 -1
- package/dist/texteditor.d.ts +0 -318
- package/dist/texteditor.js +0 -913
- package/dist/texteditor.js.map +0 -1
- package/dist/util/subject.d.ts +0 -34
- package/dist/util/subject.js +0 -88
- package/dist/util/subject.js.map +0 -1
- package/dist/util/table-bind.d.ts +0 -5
- package/dist/util/table-bind.js +0 -6
- package/dist/util/table-bind.js.map +0 -1
@@ -1,195 +0,0 @@
|
|
1
|
-
import { Rect, MarginProps, PaddingProps } from './element-define';
|
2
|
-
/**
|
3
|
-
* 定义组件的UI形式的渲染
|
4
|
-
*/
|
5
|
-
export class RenderObject {
|
6
|
-
element;
|
7
|
-
margin;
|
8
|
-
padding;
|
9
|
-
rect = new Rect();
|
10
|
-
parent;
|
11
|
-
/**
|
12
|
-
* 可点击性,例如:null-text 占位符元素不具备可点击能力
|
13
|
-
*/
|
14
|
-
disableClick;
|
15
|
-
constructor(element) {
|
16
|
-
this.element = element;
|
17
|
-
this.margin = new MarginProps();
|
18
|
-
this.padding = new PaddingProps();
|
19
|
-
}
|
20
|
-
pagePaintCompleted(ctx, position) { }
|
21
|
-
destroy() {
|
22
|
-
//this.parent = null;
|
23
|
-
//this.margin = null;
|
24
|
-
//this.padding = null;
|
25
|
-
//this.rect = null;
|
26
|
-
//this.element = null;
|
27
|
-
}
|
28
|
-
/**
|
29
|
-
* 获取内容区域框体
|
30
|
-
* @param render
|
31
|
-
* @returns
|
32
|
-
*/
|
33
|
-
getInnnerRect() {
|
34
|
-
const { padding } = this;
|
35
|
-
const rect = new Rect();
|
36
|
-
rect.x = padding.left;
|
37
|
-
rect.y = padding.top;
|
38
|
-
rect.maxWidth = this.rect.maxWidth - padding.left - padding.right;
|
39
|
-
if (this.rect.maxHeight) {
|
40
|
-
rect.maxHeight = this.rect.maxHeight - padding.top - padding.bottom;
|
41
|
-
}
|
42
|
-
return rect;
|
43
|
-
}
|
44
|
-
getInnerMaxWidth() {
|
45
|
-
if (!this.rect.maxWidth) {
|
46
|
-
throw new Error('this.rect.maxWidth is null');
|
47
|
-
}
|
48
|
-
const { padding, margin } = this;
|
49
|
-
return this.rect.maxWidth - padding.left - padding.right - margin.left - margin.bottom;
|
50
|
-
}
|
51
|
-
/**
|
52
|
-
* 根据内框内容高度,更新外框框体高度
|
53
|
-
* @param render
|
54
|
-
* @param innerRect
|
55
|
-
*/
|
56
|
-
updateRenderHeight(innerRect) {
|
57
|
-
const innnerHeight = typeof innerRect === 'number' ? innerRect : innerRect.height;
|
58
|
-
const { padding, margin } = this;
|
59
|
-
//外层容器高度等于内容高度+外边距+内边距
|
60
|
-
this.rect.height = innnerHeight + padding.top + padding.bottom;
|
61
|
-
}
|
62
|
-
getIndex() {
|
63
|
-
if (this.parent) {
|
64
|
-
return this.parent.getChildIndex(this);
|
65
|
-
}
|
66
|
-
else {
|
67
|
-
return 0;
|
68
|
-
}
|
69
|
-
}
|
70
|
-
}
|
71
|
-
/**
|
72
|
-
* 叶子节点渲染元素
|
73
|
-
*/
|
74
|
-
export class LeafRenderObject extends RenderObject {
|
75
|
-
constructor(element) {
|
76
|
-
super(element);
|
77
|
-
}
|
78
|
-
}
|
79
|
-
/**
|
80
|
-
* 枝干节点渲染元素
|
81
|
-
*/
|
82
|
-
export class BranchRenderObject extends RenderObject {
|
83
|
-
constructor(element) {
|
84
|
-
super(element);
|
85
|
-
}
|
86
|
-
chilren = [];
|
87
|
-
getItems() {
|
88
|
-
return this.chilren;
|
89
|
-
}
|
90
|
-
addChild(...items) {
|
91
|
-
for (let i = 0; i < items.length; i++) {
|
92
|
-
const item = items[i];
|
93
|
-
item.parent = this;
|
94
|
-
this.chilren.push(item);
|
95
|
-
}
|
96
|
-
}
|
97
|
-
insertChild(item, index) {
|
98
|
-
this.chilren.splice(index, 0, item);
|
99
|
-
item.parent = this;
|
100
|
-
}
|
101
|
-
removeChild(child) {
|
102
|
-
const index = this.chilren.indexOf(child);
|
103
|
-
if (index < 0) {
|
104
|
-
throw new Error('为查找到当前元素');
|
105
|
-
}
|
106
|
-
if (child.parent === this) {
|
107
|
-
//child.parent = null;
|
108
|
-
}
|
109
|
-
this.chilren.splice(index, 1);
|
110
|
-
}
|
111
|
-
removeChildByIndex(index) {
|
112
|
-
const child = this.chilren[index];
|
113
|
-
if (child) {
|
114
|
-
this.chilren.splice(index, 1);
|
115
|
-
//child.parent = null;
|
116
|
-
}
|
117
|
-
else {
|
118
|
-
throw new Error('为查找到当前元素');
|
119
|
-
}
|
120
|
-
}
|
121
|
-
clear() {
|
122
|
-
const items = [...this.chilren];
|
123
|
-
for (let i = items.length - 1; i >= 0; i--) {
|
124
|
-
this.removeChildByIndex(i);
|
125
|
-
}
|
126
|
-
}
|
127
|
-
get length() {
|
128
|
-
return this.chilren.length;
|
129
|
-
}
|
130
|
-
getChild(index) {
|
131
|
-
return this.chilren[index];
|
132
|
-
}
|
133
|
-
getChildIndex(child) {
|
134
|
-
return this.chilren.indexOf(child);
|
135
|
-
}
|
136
|
-
destroy() {
|
137
|
-
super.destroy();
|
138
|
-
const len = this.length;
|
139
|
-
for (let i = len - 1; i >= 0; i--) {
|
140
|
-
const child = this.getChild(i);
|
141
|
-
child.destroy();
|
142
|
-
//this.removeChild(child);
|
143
|
-
}
|
144
|
-
this.chilren.length = 0;
|
145
|
-
//this.chilren = null;
|
146
|
-
}
|
147
|
-
}
|
148
|
-
/**
|
149
|
-
* 块级渲染元素
|
150
|
-
*/
|
151
|
-
export class BlockContentRenderObject extends BranchRenderObject {
|
152
|
-
setRenderWidth(maxWidth) {
|
153
|
-
this.rect.maxWidth = maxWidth;
|
154
|
-
this.rect.width = maxWidth;
|
155
|
-
}
|
156
|
-
}
|
157
|
-
export class InlineGroupRenderObject extends BranchRenderObject {
|
158
|
-
}
|
159
|
-
/**
|
160
|
-
* 包含块级渲染元素的容器元素,例如body、table-cell等
|
161
|
-
*/
|
162
|
-
export class BlockContainerRenderObject extends BranchRenderObject {
|
163
|
-
setRenderWidth(maxWidth) {
|
164
|
-
this.rect.maxWidth = maxWidth;
|
165
|
-
this.rect.width = maxWidth;
|
166
|
-
}
|
167
|
-
}
|
168
|
-
/**
|
169
|
-
* 多级 ‘BlockLineRectRenderObject’ 包裹元素,例如 p、table
|
170
|
-
*/
|
171
|
-
export class MuiltBlockLineRenderObject extends BlockContentRenderObject {
|
172
|
-
}
|
173
|
-
/**
|
174
|
-
* 容器-子内容为多个行内块级元素,例如table-row
|
175
|
-
*/
|
176
|
-
export class InlineBlockContainer extends MuiltBlockLineRenderObject {
|
177
|
-
}
|
178
|
-
/**
|
179
|
-
* 服务于table-cell
|
180
|
-
* 可被多级拆分的元素
|
181
|
-
*/
|
182
|
-
export class InlineMuiltBlockLineRenderObject extends MuiltBlockLineRenderObject {
|
183
|
-
}
|
184
|
-
/**
|
185
|
-
* 最小不可分割单位的块级行框,例如 p-line
|
186
|
-
* 一行不可存在于两个页面中,块级行框不能分布在两个页面中
|
187
|
-
*/
|
188
|
-
export class BlockLineRectRenderObject extends BlockContentRenderObject {
|
189
|
-
}
|
190
|
-
export var RenderObjectType;
|
191
|
-
(function (RenderObjectType) {
|
192
|
-
RenderObjectType[RenderObjectType["Branch"] = 0] = "Branch";
|
193
|
-
RenderObjectType[RenderObjectType["Leaf"] = 1] = "Leaf";
|
194
|
-
})(RenderObjectType || (RenderObjectType = {}));
|
195
|
-
//# sourceMappingURL=render-define.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"render-define.js","sourceRoot":"","sources":["../../src/med_editor/framework/render-define.ts"],"names":[],"mappings":"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"}
|
@@ -1,30 +0,0 @@
|
|
1
|
-
import { SelectionState } from "./document-selection";
|
2
|
-
import { Element, SelectionContentRange } from "./element-define";
|
3
|
-
/**
|
4
|
-
* 用于处理选区拖蓝
|
5
|
-
*/
|
6
|
-
export declare class SelectionOverlays {
|
7
|
-
private selectionState;
|
8
|
-
private selectionRange;
|
9
|
-
selectedSets: Map<Element, SelectionContentRange>;
|
10
|
-
constructor(selectionState: SelectionState);
|
11
|
-
getSelectionTreeData(): void;
|
12
|
-
private convertSelectRangeToSet;
|
13
|
-
static addToSets(range: SelectionContentRange, set: Map<Element, SelectionContentRange>): void;
|
14
|
-
/**
|
15
|
-
* 添加到批注集合
|
16
|
-
* @param range
|
17
|
-
* @param set
|
18
|
-
*/
|
19
|
-
static addToCommentSets(range: SelectionContentRange, set: Map<Element, SelectionContentRange>): void;
|
20
|
-
/**
|
21
|
-
* 修正开始选区内容
|
22
|
-
* 1.如果当前选区开始于表格内容,结束选区位于表格外,则需要开始选区内容重定位到单元格第一个元素
|
23
|
-
*/
|
24
|
-
private fixStartSelectionElement;
|
25
|
-
/**
|
26
|
-
* 修正开始选区内容
|
27
|
-
* 1.如果当前选区开始于表格内容,结束选区位于表格外,则需要开始选区内容重定位到单元格第一个元素
|
28
|
-
*/
|
29
|
-
private fixEndSelectionElement;
|
30
|
-
}
|
@@ -1,124 +0,0 @@
|
|
1
|
-
import { ElementUtil } from "./element-util";
|
2
|
-
import { RangeUtil } from "./range-util";
|
3
|
-
import { TableElement } from "./impl/table/table-impl";
|
4
|
-
import { TableCellElement } from "./impl/table/table-cell-impl";
|
5
|
-
/**
|
6
|
-
* 用于处理选区拖蓝
|
7
|
-
*/
|
8
|
-
export class SelectionOverlays {
|
9
|
-
selectionState;
|
10
|
-
selectionRange;
|
11
|
-
selectedSets = new Map();
|
12
|
-
constructor(selectionState) {
|
13
|
-
this.selectionState = selectionState;
|
14
|
-
}
|
15
|
-
getSelectionTreeData() {
|
16
|
-
let { ancestorCommonControl, startControl, startOffset, endControl, endOffset, collapsed } = this.selectionState;
|
17
|
-
this.selectedSets.clear();
|
18
|
-
if (this.selectionRange) {
|
19
|
-
this.selectionRange.selectedChildren.length = 0;
|
20
|
-
}
|
21
|
-
this.selectionRange = null;
|
22
|
-
if (!startControl || !endControl || !ancestorCommonControl) {
|
23
|
-
//this.selectionRange?.selectedChildren.length=0;
|
24
|
-
this.selectionState.selectedRange = null;
|
25
|
-
return;
|
26
|
-
}
|
27
|
-
if (collapsed) {
|
28
|
-
const commonRange = RangeUtil.getSelctionRange(startControl, startOffset, endControl, endOffset, ancestorCommonControl);
|
29
|
-
this.selectionState.selectedRange = commonRange;
|
30
|
-
this.selectedSets.clear();
|
31
|
-
return;
|
32
|
-
}
|
33
|
-
const fixStartElement = this.fixStartSelectionElement(startControl, startOffset, ancestorCommonControl);
|
34
|
-
startControl = fixStartElement.element;
|
35
|
-
startOffset = fixStartElement.offset;
|
36
|
-
const fixEndElement = this.fixEndSelectionElement(endControl, endOffset, ancestorCommonControl);
|
37
|
-
endControl = fixEndElement.element;
|
38
|
-
endOffset = fixEndElement.offset;
|
39
|
-
const commonRange = RangeUtil.getSelctionRange(startControl, startOffset, endControl, endOffset, ancestorCommonControl);
|
40
|
-
//console.log(commonRange);
|
41
|
-
this.selectionRange = commonRange;
|
42
|
-
this.convertSelectRangeToSet();
|
43
|
-
this.selectionState.selectedRange = commonRange;
|
44
|
-
}
|
45
|
-
convertSelectRangeToSet() {
|
46
|
-
this.selectedSets.clear();
|
47
|
-
if (this.selectionRange) {
|
48
|
-
SelectionOverlays.addToSets(this.selectionRange, this.selectedSets);
|
49
|
-
}
|
50
|
-
}
|
51
|
-
static addToSets(range, set) {
|
52
|
-
set.set(range.target, range);
|
53
|
-
for (let i = 0; i < range.selectedChildren.length; i++) {
|
54
|
-
//单元格全部选中效果,单元格整个拖蓝即可
|
55
|
-
if (range.isFullSelected && range.target.type === 'tbc') {
|
56
|
-
continue;
|
57
|
-
}
|
58
|
-
this.addToSets(range.selectedChildren[i], set);
|
59
|
-
}
|
60
|
-
}
|
61
|
-
/**
|
62
|
-
* 添加到批注集合
|
63
|
-
* @param range
|
64
|
-
* @param set
|
65
|
-
*/
|
66
|
-
static addToCommentSets(range, set) {
|
67
|
-
set.set(range.target, range);
|
68
|
-
for (let i = 0; i < range.selectedChildren.length; i++) {
|
69
|
-
this.addToCommentSets(range.selectedChildren[i], set);
|
70
|
-
}
|
71
|
-
}
|
72
|
-
/**
|
73
|
-
* 修正开始选区内容
|
74
|
-
* 1.如果当前选区开始于表格内容,结束选区位于表格外,则需要开始选区内容重定位到单元格第一个元素
|
75
|
-
*/
|
76
|
-
fixStartSelectionElement(element, offset, ancestorCommonControl) {
|
77
|
-
if (!(ancestorCommonControl instanceof TableElement)) {
|
78
|
-
const lookupParentCell = ElementUtil.getParentByType(element, TableCellElement);
|
79
|
-
if (lookupParentCell) {
|
80
|
-
if (!lookupParentCell.parent || !lookupParentCell.parent.parent) {
|
81
|
-
}
|
82
|
-
const lookupParentTbIndex = ElementUtil.getControlIndex(lookupParentCell.parent.parent);
|
83
|
-
const ancestorCommonControlIndex = ElementUtil.getControlIndex(ancestorCommonControl);
|
84
|
-
if (ancestorCommonControlIndex < lookupParentTbIndex) {
|
85
|
-
const rowFirstLeafElement = ElementUtil.getFirstLeafElement(lookupParentCell.parent);
|
86
|
-
if (!rowFirstLeafElement) {
|
87
|
-
throw new Error('当前元素处于表格内元素,未能定位到当前单元格首个元素');
|
88
|
-
}
|
89
|
-
return {
|
90
|
-
element: rowFirstLeafElement,
|
91
|
-
offset: 0
|
92
|
-
};
|
93
|
-
}
|
94
|
-
}
|
95
|
-
}
|
96
|
-
return { element, offset };
|
97
|
-
}
|
98
|
-
/**
|
99
|
-
* 修正开始选区内容
|
100
|
-
* 1.如果当前选区开始于表格内容,结束选区位于表格外,则需要开始选区内容重定位到单元格第一个元素
|
101
|
-
*/
|
102
|
-
fixEndSelectionElement(element, offset, ancestorCommonControl) {
|
103
|
-
if (!(ancestorCommonControl instanceof TableElement)) {
|
104
|
-
const lookupParentCell = ElementUtil.getParentByType(element, TableCellElement);
|
105
|
-
if (lookupParentCell) {
|
106
|
-
const lookupParentTbIndex = ElementUtil.getControlIndex(lookupParentCell.parent.parent);
|
107
|
-
const ancestorCommonControlIndex = ElementUtil.getControlIndex(ancestorCommonControl);
|
108
|
-
if (ancestorCommonControlIndex < lookupParentTbIndex) {
|
109
|
-
const rowLastLeafElement = ElementUtil.getLastLeafElement(lookupParentCell.parent);
|
110
|
-
if (!rowLastLeafElement) {
|
111
|
-
const rowLastLeafElement = ElementUtil.getLastLeafElement(lookupParentCell.parent);
|
112
|
-
throw new Error('当前元素处于表格内元素,未能定位到当前单元格首个元素');
|
113
|
-
}
|
114
|
-
return {
|
115
|
-
element: rowLastLeafElement,
|
116
|
-
offset: 1
|
117
|
-
};
|
118
|
-
}
|
119
|
-
}
|
120
|
-
}
|
121
|
-
return { element, offset };
|
122
|
-
}
|
123
|
-
}
|
124
|
-
//# sourceMappingURL=selection-overlays.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"selection-overlays.js","sourceRoot":"","sources":["../../src/med_editor/framework/selection-overlays.ts"],"names":[],"mappings":"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"}
|
package/dist/texteditor.d.ts
DELETED
@@ -1,318 +0,0 @@
|
|
1
|
-
import { ContentMenuItem } from './framework/element-event-define';
|
2
|
-
import { ElementReader } from './framework/element-reader';
|
3
|
-
import { Subject } from 'rxjs';
|
4
|
-
import { SelectionState } from './framework/document-selection';
|
5
|
-
import { BranchElement, Element, ICancelTokenFn, LeafElement, MarginProps, OrientType, Position, TextAlign, ViewOptions } from './framework/element-define';
|
6
|
-
import { DataElementInlineGroup, DataElementLeaf } from './framework/impl/data-element/data-element-base-impl';
|
7
|
-
import { ParagraphProps, TextProps } from './framework/element-props';
|
8
|
-
import { EditorContext } from './framework/document-context';
|
9
|
-
import { DocumentElement } from './framework/impl/document/doc-impl';
|
10
|
-
export declare class CanvasTextEditor {
|
11
|
-
private docScroll;
|
12
|
-
private holdSpace;
|
13
|
-
private ruleCanvas;
|
14
|
-
private editCanvasContainer;
|
15
|
-
private editCanvas;
|
16
|
-
private editInput;
|
17
|
-
private editCursor;
|
18
|
-
private cursorWrapper;
|
19
|
-
private scaleContainer;
|
20
|
-
private contentCtx;
|
21
|
-
viewOptions: ViewOptions;
|
22
|
-
docCtx: EditorContext;
|
23
|
-
private docComment;
|
24
|
-
private renderContext;
|
25
|
-
private documentPaint;
|
26
|
-
elementReader: ElementReader;
|
27
|
-
private documentEvent;
|
28
|
-
private documentSelection;
|
29
|
-
private documentInput;
|
30
|
-
private documentChange;
|
31
|
-
private selectionOverlays;
|
32
|
-
private docRule;
|
33
|
-
private docHistory;
|
34
|
-
private eventMap;
|
35
|
-
selectionChanged: Subject<SelectionState>;
|
36
|
-
beforeRenderSubject: Subject<void>;
|
37
|
-
afterRenderSubject: Subject<void>;
|
38
|
-
selectionState: SelectionState;
|
39
|
-
onContextMenuItemChanged: Subject<EditorContenxtProps>;
|
40
|
-
onShowDataElementEditPanelEvent: Subject<EditorPanelProps>;
|
41
|
-
onDblClickEvent: Subject<Event>;
|
42
|
-
onClickEvent: Subject<Event>;
|
43
|
-
onScrollViewEvent: Subject<number>;
|
44
|
-
onDocChangedEvent: Subject<void>;
|
45
|
-
constructor(docScroll: HTMLDivElement, holdSpace: HTMLDivElement, ruleCanvas: HTMLCanvasElement, editCanvasContainer: HTMLDivElement, editCanvas: HTMLCanvasElement, editInput: HTMLInputElement, editCursor: HTMLSpanElement, cursorWrapper: HTMLDivElement, scaleContainer: HTMLDivElement);
|
46
|
-
/**
|
47
|
-
* 设置标尺
|
48
|
-
*/
|
49
|
-
refreshDocRule(): void;
|
50
|
-
createDocViewer(): void;
|
51
|
-
measureMMToPixs(): number;
|
52
|
-
flushTask: (() => void) | null;
|
53
|
-
flushTaskThen: Array<(() => void)>;
|
54
|
-
private trackChangeState;
|
55
|
-
flushToSchedule(): void;
|
56
|
-
/**
|
57
|
-
* 触发文档改变事件
|
58
|
-
* @returns
|
59
|
-
*/
|
60
|
-
triggerDocChange(): void;
|
61
|
-
/**
|
62
|
-
* fn函数执行时,不触发onDocChange
|
63
|
-
* @param fn
|
64
|
-
*/
|
65
|
-
noEffectChange(fn: () => void): void;
|
66
|
-
loadDoc(data: any | DocumentElement): void;
|
67
|
-
/**
|
68
|
-
* 更新文档容器高度尺寸
|
69
|
-
*/
|
70
|
-
updateDocumentContainerSize(): void;
|
71
|
-
scrollView(evt: Event): void;
|
72
|
-
private refreshDocument;
|
73
|
-
private hitInfoChanged;
|
74
|
-
/**
|
75
|
-
* 设置光标
|
76
|
-
*/
|
77
|
-
private setCursor;
|
78
|
-
/**
|
79
|
-
* 判断是否光标可以设置接受编辑
|
80
|
-
* @returns
|
81
|
-
*/
|
82
|
-
private canSetCursor;
|
83
|
-
/**
|
84
|
-
* 修改光标
|
85
|
-
* @param newCursor
|
86
|
-
*/
|
87
|
-
private changeCursor;
|
88
|
-
/**
|
89
|
-
* 文档点击事件
|
90
|
-
*/
|
91
|
-
private docClickHandle;
|
92
|
-
/**
|
93
|
-
* 文档双击事件
|
94
|
-
* 处理全选当前段落
|
95
|
-
*/
|
96
|
-
private docDblClickHandle;
|
97
|
-
/**
|
98
|
-
* 获取当前光标所在的数据元
|
99
|
-
* @returns
|
100
|
-
*/
|
101
|
-
getCurrentDataElement(): DataElementInlineGroup | DataElementLeaf | null;
|
102
|
-
/**
|
103
|
-
* 设置当前光标所在的数据元的值
|
104
|
-
* @param val
|
105
|
-
*/
|
106
|
-
setCurrentDataElementValue(val: any): void;
|
107
|
-
/**
|
108
|
-
* 获取数据元位置
|
109
|
-
* @param element
|
110
|
-
* @returns
|
111
|
-
*/
|
112
|
-
getDataElementPosition(element: LeafElement): {
|
113
|
-
x: number;
|
114
|
-
y: number;
|
115
|
-
translateY: number;
|
116
|
-
};
|
117
|
-
/**
|
118
|
-
* 获取文档模型
|
119
|
-
* @returns
|
120
|
-
*/
|
121
|
-
getDocSchema(): any;
|
122
|
-
getDocSchemaJSON(): string;
|
123
|
-
/**
|
124
|
-
* 右键菜单
|
125
|
-
* @param evt
|
126
|
-
*/
|
127
|
-
onContextMenu(evt: MouseEvent): void;
|
128
|
-
resizeObserver: ResizeObserver | null;
|
129
|
-
listenContainerHeight(): void;
|
130
|
-
private updateDocHeight;
|
131
|
-
resetViewer(type?: 'demand' | 'force' | undefined): void;
|
132
|
-
/**
|
133
|
-
* 缩放视图
|
134
|
-
* @param scale
|
135
|
-
* @returns
|
136
|
-
*/
|
137
|
-
scaleView(scale: number): number;
|
138
|
-
getContainerHeight(): {
|
139
|
-
height: number;
|
140
|
-
width: number;
|
141
|
-
};
|
142
|
-
setCanvasProps(): void;
|
143
|
-
/**
|
144
|
-
* 在当前位置插入表格
|
145
|
-
* @param row
|
146
|
-
* @param col
|
147
|
-
*/
|
148
|
-
insertTable(rows: number, cols: number): void;
|
149
|
-
/**
|
150
|
-
* 打印所有文档
|
151
|
-
*/
|
152
|
-
printAllPages(): void;
|
153
|
-
/**
|
154
|
-
* 导出所有页到base64
|
155
|
-
*/
|
156
|
-
exportAllPagesToBase64(fileName: string): void;
|
157
|
-
exportPDF(): void;
|
158
|
-
/**
|
159
|
-
* 清除文档
|
160
|
-
*/
|
161
|
-
clearDoc(): void;
|
162
|
-
/**
|
163
|
-
* 新建文档
|
164
|
-
* @param options
|
165
|
-
*/
|
166
|
-
createNewDoc(doc?: DocumentElement | null): void;
|
167
|
-
destroy(): void;
|
168
|
-
/**
|
169
|
-
* 获取选区文本属性
|
170
|
-
* @returns
|
171
|
-
*/
|
172
|
-
getSelectionTextGroupProps(): TextProps | null;
|
173
|
-
getSelectionParaProps(): ParagraphProps | null;
|
174
|
-
/**
|
175
|
-
* 设置文本字体大小
|
176
|
-
* @param fontSize
|
177
|
-
* @returns
|
178
|
-
*/
|
179
|
-
setTextFontSize(fontSize: number): void;
|
180
|
-
/**
|
181
|
-
* 设置文本颜色
|
182
|
-
* @param color \
|
183
|
-
*/
|
184
|
-
setTextColor(color: string): void;
|
185
|
-
/**
|
186
|
-
* 设置文本字体名称
|
187
|
-
* @param font
|
188
|
-
*/
|
189
|
-
setTextFont(font: string): void;
|
190
|
-
/**
|
191
|
-
* 应用选中文本格式,用于批量设置格式,例如:格式刷
|
192
|
-
* @param newStyle
|
193
|
-
*/
|
194
|
-
applyStyle(newStyle: TextProps): void;
|
195
|
-
/**
|
196
|
-
* 开启格式刷
|
197
|
-
*/
|
198
|
-
enableFormatBrush(): ICancelTokenFn | null;
|
199
|
-
/**
|
200
|
-
* 设置文本背景颜色
|
201
|
-
* @param color
|
202
|
-
*/
|
203
|
-
setTextBackColor(color: string): void;
|
204
|
-
/**
|
205
|
-
* 切换文本加粗、下划线、删除等文本样式
|
206
|
-
* @param isEffective
|
207
|
-
* @param style
|
208
|
-
* @param matchValue
|
209
|
-
*/
|
210
|
-
switchTextStyle<P extends keyof TextProps, V extends TextProps[P]>(isEffective: boolean, style: P, matchValue: V, defaultValue?: any): void;
|
211
|
-
/**
|
212
|
-
* 修改字间距
|
213
|
-
*/
|
214
|
-
setLetterSpace(letterSpace: number): void;
|
215
|
-
/**
|
216
|
-
* 设置段落对齐
|
217
|
-
* @param align
|
218
|
-
*/
|
219
|
-
switchParaAlign(align: TextAlign): void;
|
220
|
-
combineCell(): void;
|
221
|
-
/**
|
222
|
-
* 切换当前段落项目符号状态
|
223
|
-
*/
|
224
|
-
setParagraphNumberType(): void;
|
225
|
-
/**
|
226
|
-
* 删除当前批注
|
227
|
-
* @param id
|
228
|
-
*/
|
229
|
-
removeComment(id: string): void;
|
230
|
-
/**
|
231
|
-
* 移除焦点所在的批注
|
232
|
-
*/
|
233
|
-
removeCurrentComment(): void;
|
234
|
-
/**
|
235
|
-
* 插入批注
|
236
|
-
*/
|
237
|
-
insertComment(): void;
|
238
|
-
/**
|
239
|
-
* 清除所有批注
|
240
|
-
*/
|
241
|
-
clearAllComments(): void;
|
242
|
-
cutTable(): void;
|
243
|
-
/**
|
244
|
-
* 初始化当前文档创建用户信息
|
245
|
-
* 一份文档只需要设置一次
|
246
|
-
*/
|
247
|
-
initCurrentDocUser(userId: string, userName: string, date: string): void;
|
248
|
-
/**
|
249
|
-
* 验证文档内容
|
250
|
-
* @returns
|
251
|
-
*/
|
252
|
-
validate(): boolean;
|
253
|
-
/**
|
254
|
-
* 撤销
|
255
|
-
*/
|
256
|
-
undo(): void;
|
257
|
-
/**
|
258
|
-
* 恢复
|
259
|
-
*/
|
260
|
-
redo(): void;
|
261
|
-
/**
|
262
|
-
* 是否可以撤销
|
263
|
-
*/
|
264
|
-
canUndo(): boolean;
|
265
|
-
/**
|
266
|
-
* 是否可以恢复
|
267
|
-
*/
|
268
|
-
canRedo(): boolean;
|
269
|
-
switchTrackChanges(eleCtx?: BranchElement | null): void;
|
270
|
-
get trackTipsChanged(): Subject<{
|
271
|
-
pos: Position;
|
272
|
-
tips: import("./framework/element-event-define").ITrackTips;
|
273
|
-
}>;
|
274
|
-
switchFullViewPage(): void;
|
275
|
-
getSelectedJSON(): string;
|
276
|
-
getSelectedText(): string;
|
277
|
-
/**
|
278
|
-
* 设置纸张方向
|
279
|
-
* @param orientation
|
280
|
-
*/
|
281
|
-
setPaperOrient(orientation: OrientType): void;
|
282
|
-
/**
|
283
|
-
* 设置纸张大小,单位为毫米(mm)
|
284
|
-
* @param width
|
285
|
-
* @param height
|
286
|
-
*/
|
287
|
-
setPaperSize(width: number, height: number): void;
|
288
|
-
/**
|
289
|
-
* 插入强制换页符
|
290
|
-
*/
|
291
|
-
insertPageBreakPara(): void;
|
292
|
-
/**
|
293
|
-
* 显示当前元素到视图中
|
294
|
-
* @param element
|
295
|
-
*/
|
296
|
-
bringToView(element: Element): void;
|
297
|
-
/**
|
298
|
-
* 设置当前文档页边距
|
299
|
-
*/
|
300
|
-
setDocumentMargin(pageMargin: Partial<MarginProps>): void;
|
301
|
-
/**
|
302
|
-
* 插入元素
|
303
|
-
* @param targetElement
|
304
|
-
* @param targetOffset
|
305
|
-
* @param destEleArray
|
306
|
-
* @returns
|
307
|
-
*/
|
308
|
-
insertElement(targetElement: Element, targetOffset: number, destEleArray: Array<Element>): Element | null;
|
309
|
-
}
|
310
|
-
export declare type EditorCurrentPos = {
|
311
|
-
pos: Position;
|
312
|
-
};
|
313
|
-
export declare type EditorContenxtProps = {
|
314
|
-
menus: Array<ContentMenuItem>;
|
315
|
-
} & EditorCurrentPos;
|
316
|
-
export declare type EditorPanelProps = {
|
317
|
-
type: string;
|
318
|
-
} & EditorCurrentPos;
|