@hailin-zheng/editor-core 2.2.14 → 2.2.15
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/index-cjs.js +326 -93
- package/index-cjs.js.map +1 -1
- package/index.js +324 -93
- package/index.js.map +1 -1
- package/med_editor/doc-editor.d.ts +1 -0
- package/med_editor/editor-core.d.ts +4 -7
- package/med_editor/framework/doc-layout/document-arrange.d.ts +2 -0
- package/med_editor/framework/document-context.d.ts +12 -1
- package/med_editor/framework/element-define.d.ts +9 -6
- package/med_editor/framework/element-event-define.d.ts +0 -2
- package/med_editor/framework/impl/data-element/data-decorate-impl.d.ts +1 -0
- package/med_editor/framework/impl/data-element/data-element-base-impl.d.ts +2 -1
- package/med_editor/framework/impl/data-element/data-element-group-impl.d.ts +2 -1
- package/med_editor/framework/impl/document/doc-impl.d.ts +3 -1
- package/package.json +2 -2
package/index.js
CHANGED
@@ -24,8 +24,6 @@ class ElementEvent {
|
|
24
24
|
* 当前所在的对象
|
25
25
|
*/
|
26
26
|
currentElement;
|
27
|
-
currentRenderObjectX;
|
28
|
-
currentRenderObjectY;
|
29
27
|
//是否取消向上冒泡
|
30
28
|
isCancel;
|
31
29
|
globalX;
|
@@ -741,8 +739,11 @@ class CommonUtil {
|
|
741
739
|
const shouldCallNow = elapsed >= wait;
|
742
740
|
clearTimeout(timeout);
|
743
741
|
if (shouldCallNow) {
|
744
|
-
|
745
|
-
|
742
|
+
//延迟执行,微任务
|
743
|
+
Promise.resolve().then(() => {
|
744
|
+
fn.apply(context, args);
|
745
|
+
lastExecTime = Date.now();
|
746
|
+
});
|
746
747
|
}
|
747
748
|
else {
|
748
749
|
timeout = setTimeout(() => {
|
@@ -971,6 +972,8 @@ function generatePatch(doc, clear = true) {
|
|
971
972
|
}
|
972
973
|
if ('insert' in op.ops) {
|
973
974
|
insertOpsMap.set(ele, op);
|
975
|
+
//对象复制出来,避免paintRenders等内存占用
|
976
|
+
op.ops.insert = op.ops.insert.clone(true);
|
974
977
|
}
|
975
978
|
//当前为新插入的元素
|
976
979
|
if ('insText' in op.ops) {
|
@@ -1225,7 +1228,7 @@ class Element {
|
|
1225
1228
|
modifyFlag = ModifyFlag.Modify;
|
1226
1229
|
isMouseenter;
|
1227
1230
|
_eventMap;
|
1228
|
-
_refreshEvent = new Subject();
|
1231
|
+
//private _refreshEvent: Subject<void> = new Subject();
|
1229
1232
|
_onChangeEvent = new Subject();
|
1230
1233
|
observers = new WeakMap();
|
1231
1234
|
paintRenders = [];
|
@@ -1330,14 +1333,15 @@ class Element {
|
|
1330
1333
|
return 0;
|
1331
1334
|
}
|
1332
1335
|
}
|
1333
|
-
get refreshSubject() {
|
1334
|
-
|
1335
|
-
}
|
1336
|
+
// get refreshSubject(): Subject<void> {
|
1337
|
+
// return this._refreshEvent;
|
1338
|
+
// }
|
1336
1339
|
get onChangeSubject() {
|
1337
1340
|
return this._onChangeEvent;
|
1338
1341
|
}
|
1339
1342
|
refreshView() {
|
1340
|
-
this._refreshEvent.next();
|
1343
|
+
//this._refreshEvent.next();
|
1344
|
+
//refreshEditor(this);
|
1341
1345
|
}
|
1342
1346
|
unsubscribe(element) {
|
1343
1347
|
const subs = this.observers.get(element);
|
@@ -1419,13 +1423,13 @@ class BranchElement extends Element {
|
|
1419
1423
|
child.parent = this;
|
1420
1424
|
this.chilren.splice(index, 0, child);
|
1421
1425
|
insertEle(child);
|
1422
|
-
const refSub = child.refreshSubject.subscribe((data) => {
|
1423
|
-
|
1424
|
-
});
|
1426
|
+
//const refSub = child.refreshSubject.subscribe((data) => {
|
1427
|
+
//this.refreshSubject.next(data);
|
1428
|
+
// });
|
1425
1429
|
const onChangeSub = child.onChangeSubject.subscribe((data) => {
|
1426
1430
|
this.pubOnChange('tracker');
|
1427
1431
|
});
|
1428
|
-
this.addsubscribe(child,
|
1432
|
+
this.addsubscribe(child, onChangeSub);
|
1429
1433
|
this.pubOnChange('self');
|
1430
1434
|
}
|
1431
1435
|
removeChild(child) {
|
@@ -1705,9 +1709,9 @@ class ViewOptions {
|
|
1705
1709
|
currentFontName = '宋体';
|
1706
1710
|
//选区颜色
|
1707
1711
|
selectionColor = 'rgb(131,175,155,0.5)';
|
1708
|
-
|
1709
|
-
|
1710
|
-
|
1712
|
+
dataEleDecoratorNormalColor = '#0050b3';
|
1713
|
+
dataEleDecoratorMouseEnterColor = '#0050b3';
|
1714
|
+
dataEleDecoratorFocusedColor = '#0050b3';
|
1711
1715
|
//数据元修饰符宽度
|
1712
1716
|
dataDecoratorWidth = 1;
|
1713
1717
|
//是否显示数据元修饰符
|
@@ -1724,12 +1728,18 @@ class ViewOptions {
|
|
1724
1728
|
dataEleNormalBgColor = '#fafafa';
|
1725
1729
|
//数据元错误背景颜色
|
1726
1730
|
dataEleErrorBgColor = '#ff4d4f';
|
1727
|
-
|
1728
|
-
|
1731
|
+
//数据组修饰符号颜色
|
1732
|
+
dataGroupDecoratorNormalColor = '#0050b3';
|
1733
|
+
dataGroupDecoratorMouseEnterColor = '#0050b3';
|
1734
|
+
dataGroupDecoratorFocusedColor = '#0050b3';
|
1735
|
+
//数据组正常背景颜色
|
1736
|
+
dataGroupNormalBgColor = '#fafafa';
|
1737
|
+
//数据元没有输入值时背景颜色
|
1738
|
+
dataGroupEmptyBgColor = '';
|
1729
1739
|
//数据元鼠标悬浮颜色
|
1730
|
-
dataGroupMouseEnterBgColor = '';
|
1731
|
-
|
1732
|
-
dataGroupFocusedBgColor = '';
|
1740
|
+
dataGroupMouseEnterBgColor = '#f5f5f5';
|
1741
|
+
//数据元焦点背景颜色
|
1742
|
+
dataGroupFocusedBgColor = '#f0f0f0';
|
1733
1743
|
viewBackcolor = 'rgb(230,230,230)';
|
1734
1744
|
paraSymbolColor = 'rgb(128,128,128)';
|
1735
1745
|
dataGroupColor = 'rgb(0,80,179)';
|
@@ -1774,6 +1784,8 @@ class ViewOptions {
|
|
1774
1784
|
showEnterSymbol = false;
|
1775
1785
|
enableVisibleExpression = false;
|
1776
1786
|
shapeRendering = 'auto';
|
1787
|
+
//是否开启快速测量
|
1788
|
+
enableFastMeasure = false;
|
1777
1789
|
get fullPageView() {
|
1778
1790
|
return this._fullPageView;
|
1779
1791
|
}
|
@@ -2941,16 +2953,22 @@ class DataDecorateRenderObject extends LeafRenderObject {
|
|
2941
2953
|
if (event.mode === 'print') {
|
2942
2954
|
return null;
|
2943
2955
|
}
|
2956
|
+
if (this.element.dataEle.type === 'data-group') {
|
2957
|
+
return this.exportDataGroupSVG(event);
|
2958
|
+
}
|
2944
2959
|
// if(this.element.parent.parent.type==='data-group'){
|
2945
2960
|
// return null;
|
2946
2961
|
// }
|
2947
2962
|
const options = event.options;
|
2948
|
-
let color = options.
|
2949
|
-
if (this.element.dataEle.isMouseenter && options.
|
2950
|
-
color = options.
|
2963
|
+
let color = options.dataEleDecoratorNormalColor;
|
2964
|
+
if (this.element.dataEle.isMouseenter && options.dataEleDecoratorMouseEnterColor) {
|
2965
|
+
color = options.dataEleDecoratorMouseEnterColor;
|
2966
|
+
}
|
2967
|
+
if (this.element.dataEle.isFocused && options.dataEleDecoratorFocusedColor) {
|
2968
|
+
color = options.dataEleDecoratorFocusedColor;
|
2951
2969
|
}
|
2952
|
-
if (
|
2953
|
-
|
2970
|
+
if (!color) {
|
2971
|
+
return null;
|
2954
2972
|
}
|
2955
2973
|
const element = this.element;
|
2956
2974
|
const lineWidth = 3;
|
@@ -2971,6 +2989,37 @@ class DataDecorateRenderObject extends LeafRenderObject {
|
|
2971
2989
|
d: path
|
2972
2990
|
});
|
2973
2991
|
}
|
2992
|
+
exportDataGroupSVG(event) {
|
2993
|
+
const options = event.options;
|
2994
|
+
let color = options.dataGroupDecoratorNormalColor;
|
2995
|
+
if (this.element.dataEle.isMouseenter && options.dataGroupDecoratorMouseEnterColor) {
|
2996
|
+
color = options.dataGroupDecoratorMouseEnterColor;
|
2997
|
+
}
|
2998
|
+
if (this.element.dataEle.isFocused && options.dataGroupDecoratorFocusedColor) {
|
2999
|
+
color = options.dataGroupDecoratorFocusedColor;
|
3000
|
+
}
|
3001
|
+
if (!color) {
|
3002
|
+
return null;
|
3003
|
+
}
|
3004
|
+
const element = this.element;
|
3005
|
+
const lineWidth = 4;
|
3006
|
+
let path = '';
|
3007
|
+
const height = this.parent.rect.height - 4;
|
3008
|
+
if (element.isPrefix) {
|
3009
|
+
const x = this.rect.x + this.rect.width / 2;
|
3010
|
+
path = `M ${x + lineWidth} 2 L ${x} 2 L ${x} ${height} L ${x + lineWidth} ${height}`;
|
3011
|
+
}
|
3012
|
+
else {
|
3013
|
+
const x = this.rect.x + this.rect.width / 2;
|
3014
|
+
path = `M ${x - lineWidth} 2 L ${x} 2 L ${x} ${height} L ${x - lineWidth} ${height}`;
|
3015
|
+
}
|
3016
|
+
return ElementUtil.createSvgPath({
|
3017
|
+
stroke: color,
|
3018
|
+
fill: "none",
|
3019
|
+
'stroke-width': 2,
|
3020
|
+
d: path
|
3021
|
+
});
|
3022
|
+
}
|
2974
3023
|
}
|
2975
3024
|
|
2976
3025
|
function parser(code, objects) {
|
@@ -3452,6 +3501,7 @@ class DocumentElement extends BlockContainerElement {
|
|
3452
3501
|
footerElement;
|
3453
3502
|
//commentsContainerElement!: CommsContainerElement;
|
3454
3503
|
headerEditState = false;
|
3504
|
+
editorContext = null;
|
3455
3505
|
constructor() {
|
3456
3506
|
super('doc');
|
3457
3507
|
this.props = new DocumentProps();
|
@@ -3485,11 +3535,11 @@ class DocumentElement extends BlockContainerElement {
|
|
3485
3535
|
}
|
3486
3536
|
};
|
3487
3537
|
}
|
3488
|
-
clone() {
|
3538
|
+
clone(data) {
|
3489
3539
|
const clone = new DocumentElement();
|
3490
3540
|
this.props.clone(clone.props);
|
3491
3541
|
cloneElementBase(this, clone);
|
3492
|
-
cloneChildren(this, clone,
|
3542
|
+
cloneChildren(this, clone, data);
|
3493
3543
|
return clone;
|
3494
3544
|
}
|
3495
3545
|
/**
|
@@ -3525,7 +3575,7 @@ class DocumentElement extends BlockContainerElement {
|
|
3525
3575
|
this.headerEditState = false;
|
3526
3576
|
}
|
3527
3577
|
ss.clear();
|
3528
|
-
this.refreshView();
|
3578
|
+
//this.refreshView();
|
3529
3579
|
}
|
3530
3580
|
markPairs = [];
|
3531
3581
|
/**
|
@@ -3800,7 +3850,7 @@ class InlineGroupInputElement extends InlineGroupElement {
|
|
3800
3850
|
this.addEvent('ElementKeyDown', (evt) => {
|
3801
3851
|
const { selectionState, sourceEvent, source } = evt;
|
3802
3852
|
const { startControl, startOffset } = selectionState;
|
3803
|
-
if (
|
3853
|
+
if (IsInSideInlineGroupInputElement(startControl, startOffset)) {
|
3804
3854
|
if (sourceEvent.shiftKey && sourceEvent.keyCode === 13) ;
|
3805
3855
|
else if (!sourceEvent.shiftKey && sourceEvent.keyCode === 13) {
|
3806
3856
|
evt.isCancel = true;
|
@@ -3809,7 +3859,7 @@ class InlineGroupInputElement extends InlineGroupElement {
|
|
3809
3859
|
}, true);
|
3810
3860
|
this.addEvent('GotCursor', (evt) => {
|
3811
3861
|
const { startControl, startOffset } = evt.selectionState;
|
3812
|
-
if (
|
3862
|
+
if (IsInSideInlineGroupInputElement(startControl, startOffset)) {
|
3813
3863
|
this.isFocused = true;
|
3814
3864
|
}
|
3815
3865
|
});
|
@@ -3906,11 +3956,13 @@ class DataElementInlineGroup extends InlineGroupInputElement {
|
|
3906
3956
|
});
|
3907
3957
|
this.addEvent('ElementMousemove', (evt) => {
|
3908
3958
|
this.isMouseenter = true;
|
3909
|
-
|
3959
|
+
evt.ctx.refreshView();
|
3960
|
+
//this.refreshView();
|
3910
3961
|
});
|
3911
3962
|
this.addEvent('ElementMouseLeave', (evt) => {
|
3912
3963
|
this.isMouseenter = false;
|
3913
|
-
|
3964
|
+
evt.ctx.refreshView();
|
3965
|
+
//this.refreshView()
|
3914
3966
|
});
|
3915
3967
|
this.addEvent('GotCursor', (evt) => {
|
3916
3968
|
this.onGotCursorEvent(evt);
|
@@ -4050,21 +4102,10 @@ function getCurrOptions(ele) {
|
|
4050
4102
|
class DataElementRenderObject extends InlineGroupRenderObject {
|
4051
4103
|
exportSVG(event) {
|
4052
4104
|
const node = super.exportSVG(event);
|
4053
|
-
|
4105
|
+
exportDataEleDecoratorSVG$1(event, this);
|
4106
|
+
//绘制下划线
|
4054
4107
|
if (this.element.props.underline) {
|
4055
|
-
|
4056
|
-
event.highlights.push({
|
4057
|
-
sel: 'path',
|
4058
|
-
data: {
|
4059
|
-
ns: 'http://www.w3.org/2000/svg',
|
4060
|
-
attrs: {
|
4061
|
-
d: `M${x} ${y + this.rect.height} L${x + this.rect.width} ${y + this.rect.height}`,
|
4062
|
-
stroke: '#000',
|
4063
|
-
fill: 'none',
|
4064
|
-
'stroke-width': 1
|
4065
|
-
}
|
4066
|
-
}
|
4067
|
-
});
|
4108
|
+
renderUnderline(event, this);
|
4068
4109
|
}
|
4069
4110
|
renderErrorTip(event, this);
|
4070
4111
|
return node;
|
@@ -4127,7 +4168,7 @@ class DataElementBaseFactory extends ElementFactory {
|
|
4127
4168
|
* @param event
|
4128
4169
|
* @param r
|
4129
4170
|
*/
|
4130
|
-
function
|
4171
|
+
function exportDataEleDecoratorSVG$1(event, r) {
|
4131
4172
|
if (event.mode === 'print') {
|
4132
4173
|
return;
|
4133
4174
|
}
|
@@ -4143,6 +4184,9 @@ function exportDecoratorHTML(event, r) {
|
|
4143
4184
|
if (r.element.isFocused && options.dataEleFocusedBgColor) {
|
4144
4185
|
color = options.dataEleFocusedBgColor;
|
4145
4186
|
}
|
4187
|
+
if (!color) {
|
4188
|
+
return;
|
4189
|
+
}
|
4146
4190
|
//绘制背景
|
4147
4191
|
const bgX = event.relativePagePos.x;
|
4148
4192
|
const bgY = event.relativePagePos.y;
|
@@ -4311,6 +4355,21 @@ function renderUnderWavyLine(event, r, color) {
|
|
4311
4355
|
d += Array(Math.ceil(width / 3)).fill("3,0").join(' t ');
|
4312
4356
|
const path = ElementUtil.createSvgPath({ d, fill: 'none', stroke: color });
|
4313
4357
|
event.highlights.push(path);
|
4358
|
+
}
|
4359
|
+
function renderUnderline(event, render) {
|
4360
|
+
const { x, y } = event.relativePagePos;
|
4361
|
+
event.highlights.push({
|
4362
|
+
sel: 'path',
|
4363
|
+
data: {
|
4364
|
+
ns: 'http://www.w3.org/2000/svg',
|
4365
|
+
attrs: {
|
4366
|
+
d: `M${x} ${y + render.rect.height} L${x + render.rect.width} ${y + render.rect.height}`,
|
4367
|
+
stroke: '#000',
|
4368
|
+
fill: 'none',
|
4369
|
+
'stroke-width': 1
|
4370
|
+
}
|
4371
|
+
}
|
4372
|
+
});
|
4314
4373
|
}
|
4315
4374
|
|
4316
4375
|
class DocumentBodyElement extends BlockContainerElement {
|
@@ -5588,7 +5647,7 @@ class TableUtil {
|
|
5588
5647
|
if (startCell) {
|
5589
5648
|
this.restoreCellMerge(startCell);
|
5590
5649
|
ss.resetRange(startCell, 0);
|
5591
|
-
startCell.refreshView();
|
5650
|
+
//startCell.refreshView();
|
5592
5651
|
}
|
5593
5652
|
}
|
5594
5653
|
static restoreCellMerge(cell) {
|
@@ -5686,7 +5745,7 @@ class TableUtil {
|
|
5686
5745
|
tb.setCellWidth(insertColIndex === colsCount ? insertColIndex - 1 : insertColIndex, insertColWidth - newColWidth);
|
5687
5746
|
tb.insertCol(insertColIndex, newColWidth);
|
5688
5747
|
tb.pubOnChange('self');
|
5689
|
-
tb.refreshView();
|
5748
|
+
//tb.refreshView();
|
5690
5749
|
}
|
5691
5750
|
/**
|
5692
5751
|
* 在指定位置插入行
|
@@ -5715,7 +5774,7 @@ class TableUtil {
|
|
5715
5774
|
//新行插在第一行或者最后一行
|
5716
5775
|
if (insertRowIndex === 0 || insertRowIndex === tb.length) {
|
5717
5776
|
tb.addChild(newRow, insertRowIndex);
|
5718
|
-
tb.refreshView();
|
5777
|
+
//tb.refreshView();
|
5719
5778
|
return newRow;
|
5720
5779
|
}
|
5721
5780
|
const destRow = tb.getChild(insertRowIndex);
|
@@ -5734,7 +5793,7 @@ class TableUtil {
|
|
5734
5793
|
newCell.props.hMerge = destCell.props.hMerge;
|
5735
5794
|
}
|
5736
5795
|
tb.addChild(newRow, insertRowIndex);
|
5737
|
-
tb.refreshView();
|
5796
|
+
//tb.refreshView();
|
5738
5797
|
return newRow;
|
5739
5798
|
}
|
5740
5799
|
/**
|
@@ -5796,14 +5855,14 @@ class TableUtil {
|
|
5796
5855
|
const nextCell = this.getNextCell(ss);
|
5797
5856
|
if (nextCell) {
|
5798
5857
|
ss.resetRange(nextCell, 0);
|
5799
|
-
nextCell.refreshView();
|
5858
|
+
//nextCell.refreshView();
|
5800
5859
|
return;
|
5801
5860
|
}
|
5802
5861
|
//新增行,并定位
|
5803
5862
|
const tb = ElementUtil.getParentByType(startCell, TableElement);
|
5804
5863
|
const newRow = this.insertNewRow(tb, rowIndex + 1);
|
5805
5864
|
ss.resetRange(newRow, 0);
|
5806
|
-
newRow.refreshView();
|
5865
|
+
//newRow.refreshView();
|
5807
5866
|
}
|
5808
5867
|
/**
|
5809
5868
|
* 获取下一个可定位的单元格
|
@@ -5845,7 +5904,7 @@ class TableUtil {
|
|
5845
5904
|
console.warn('当前位置不存在表格');
|
5846
5905
|
return;
|
5847
5906
|
}
|
5848
|
-
tb.parent.refreshView();
|
5907
|
+
//tb.parent.refreshView();
|
5849
5908
|
tb.remove();
|
5850
5909
|
}
|
5851
5910
|
/**
|
@@ -5866,7 +5925,7 @@ class TableUtil {
|
|
5866
5925
|
else if (tc.props.diagonal === diagonal) {
|
5867
5926
|
tc.props.diagonal = null;
|
5868
5927
|
}
|
5869
|
-
tc.refreshView();
|
5928
|
+
//tc.refreshView();
|
5870
5929
|
}
|
5871
5930
|
/**
|
5872
5931
|
* 将当前表格截断成两个相邻的表格
|
@@ -6476,11 +6535,11 @@ class CommContentBaseElement extends BlockContainerElement {
|
|
6476
6535
|
super(type);
|
6477
6536
|
this.addEvent('GotCursor', () => {
|
6478
6537
|
this.focus = true;
|
6479
|
-
this.refreshView()
|
6538
|
+
//this.refreshView()
|
6480
6539
|
});
|
6481
6540
|
this.addEvent('LostCursor', () => {
|
6482
6541
|
this.focus = false;
|
6483
|
-
this.refreshView()
|
6542
|
+
//this.refreshView()
|
6484
6543
|
});
|
6485
6544
|
}
|
6486
6545
|
}
|
@@ -8689,11 +8748,13 @@ class DataElementGroupElement extends InlineGroupInputElement {
|
|
8689
8748
|
this.props = new DataElementGroupProps();
|
8690
8749
|
this.addEvent('ElementMousemove', (evt) => {
|
8691
8750
|
this.isMouseenter = true;
|
8692
|
-
this.refreshView();
|
8751
|
+
//this.refreshView();
|
8752
|
+
evt.ctx.refreshView();
|
8693
8753
|
});
|
8694
8754
|
this.addEvent('ElementMouseLeave', (evt) => {
|
8695
8755
|
this.isMouseenter = false;
|
8696
|
-
|
8756
|
+
evt.ctx.refreshView();
|
8757
|
+
//this.refreshView();
|
8697
8758
|
});
|
8698
8759
|
}
|
8699
8760
|
setValue(val) {
|
@@ -8754,6 +8815,15 @@ class DataElementGroupRenderObject extends InlineGroupRenderObject {
|
|
8754
8815
|
}
|
8755
8816
|
return cloneRender;
|
8756
8817
|
}
|
8818
|
+
exportSVG(event) {
|
8819
|
+
const node = super.exportSVG(event);
|
8820
|
+
exportDataEleDecoratorSVG(event, this);
|
8821
|
+
//绘制下划线
|
8822
|
+
if (this.element.props.underline) {
|
8823
|
+
renderUnderline(event, this);
|
8824
|
+
}
|
8825
|
+
return node;
|
8826
|
+
}
|
8757
8827
|
}
|
8758
8828
|
class DataElementGroupFactory extends DataElementBaseFactory {
|
8759
8829
|
match(type) {
|
@@ -8792,6 +8862,35 @@ function IsInSideDataGroup(control, offset) {
|
|
8792
8862
|
}
|
8793
8863
|
function validateDataGroup(control) {
|
8794
8864
|
return control instanceof DataElementGroupElement;
|
8865
|
+
}
|
8866
|
+
/**
|
8867
|
+
* 渲染数据元背景修饰
|
8868
|
+
* @param event
|
8869
|
+
* @param r
|
8870
|
+
*/
|
8871
|
+
function exportDataEleDecoratorSVG(event, r) {
|
8872
|
+
if (event.mode === 'print') {
|
8873
|
+
return;
|
8874
|
+
}
|
8875
|
+
const options = event.options;
|
8876
|
+
let color = options.dataGroupNormalBgColor;
|
8877
|
+
//空数据元填充颜色
|
8878
|
+
if (r.element.length === 2 && options.dataGroupEmptyBgColor) {
|
8879
|
+
color = options.dataGroupEmptyBgColor;
|
8880
|
+
}
|
8881
|
+
if (r.element.isMouseenter && options.dataGroupMouseEnterBgColor) {
|
8882
|
+
color = options.dataGroupMouseEnterBgColor;
|
8883
|
+
}
|
8884
|
+
if (r.element.isFocused && options.dataGroupFocusedBgColor) {
|
8885
|
+
color = options.dataGroupFocusedBgColor;
|
8886
|
+
}
|
8887
|
+
if (!color) {
|
8888
|
+
return;
|
8889
|
+
}
|
8890
|
+
//绘制背景
|
8891
|
+
const bgX = event.relativePagePos.x;
|
8892
|
+
const bgY = event.relativePagePos.y;
|
8893
|
+
event.highlights.push(ElementUtil.getFillSvgRect(bgX, bgY, r.rect.width, r.rect.height, color));
|
8795
8894
|
}
|
8796
8895
|
|
8797
8896
|
class DataElementImage extends DataElementLeaf {
|
@@ -9147,11 +9246,13 @@ class DataContainerElement extends BlockContainerElement {
|
|
9147
9246
|
this.props = new DataContainerProps();
|
9148
9247
|
this.addEvent('GotCursor', (evt) => {
|
9149
9248
|
this.isFocused = true;
|
9150
|
-
|
9249
|
+
evt.ctx.refreshView();
|
9250
|
+
//this.refreshView();
|
9151
9251
|
});
|
9152
9252
|
this.addEvent('LostCursor', (evt) => {
|
9153
9253
|
this.isFocused = false;
|
9154
|
-
|
9254
|
+
evt.ctx.refreshView();
|
9255
|
+
//this.refreshView();
|
9155
9256
|
});
|
9156
9257
|
}
|
9157
9258
|
createRenderObject() {
|
@@ -9266,19 +9367,23 @@ class DocumentBodyPartElement extends BlockContainerElement {
|
|
9266
9367
|
super('body-part');
|
9267
9368
|
this.addEvent('ElementMousemove', (evt) => {
|
9268
9369
|
this.isMouseenter = true;
|
9269
|
-
|
9370
|
+
evt.ctx.refreshView();
|
9371
|
+
//this.refreshView();
|
9270
9372
|
});
|
9271
9373
|
this.addEvent('ElementMouseLeave', (evt) => {
|
9272
9374
|
this.isMouseenter = false;
|
9273
|
-
|
9375
|
+
evt.ctx.refreshView();
|
9376
|
+
//this.refreshView();
|
9274
9377
|
});
|
9275
9378
|
this.addEvent('GotCursor', (evt) => {
|
9276
9379
|
this.isFocused = true;
|
9277
|
-
|
9380
|
+
evt.ctx.refreshView();
|
9381
|
+
//this.refreshView();
|
9278
9382
|
});
|
9279
9383
|
this.addEvent('LostCursor', (evt) => {
|
9280
9384
|
this.isFocused = false;
|
9281
|
-
|
9385
|
+
evt.ctx.refreshView();
|
9386
|
+
//this.refreshView();
|
9282
9387
|
});
|
9283
9388
|
this.props = new BodyPartProps();
|
9284
9389
|
}
|
@@ -10192,7 +10297,7 @@ class TableSplitCell {
|
|
10192
10297
|
}
|
10193
10298
|
}
|
10194
10299
|
tb.pubOnChange('self');
|
10195
|
-
tb.refreshView();
|
10300
|
+
//tb.refreshView();
|
10196
10301
|
}
|
10197
10302
|
/**
|
10198
10303
|
* 拆分合并的单元格
|
@@ -10299,7 +10404,7 @@ class TableSplitCell {
|
|
10299
10404
|
}
|
10300
10405
|
}
|
10301
10406
|
tb.pubOnChange('to-child');
|
10302
|
-
tb.refreshView();
|
10407
|
+
//tb.refreshView();
|
10303
10408
|
return {
|
10304
10409
|
startColIndex: focusCellIndex,
|
10305
10410
|
endColIndex: focusCellIndex + cols - 1
|
@@ -10329,7 +10434,7 @@ class TableSplitCell {
|
|
10329
10434
|
TableUtil.restoreCell(ss);
|
10330
10435
|
this.applyHorSplitColumnCurrPatchPacks(tb, focusRowIndex, focusCellIndex, rows, currPacks);
|
10331
10436
|
tb.pubOnChange('to-child');
|
10332
|
-
tb.refreshView();
|
10437
|
+
//tb.refreshView();
|
10333
10438
|
return {
|
10334
10439
|
startColIndex: focusCellIndex,
|
10335
10440
|
endColIndex: this.getPrepareNewColCounts(otherPacks, hMergeCols)
|
@@ -10697,6 +10802,9 @@ class ElementSerialize {
|
|
10697
10802
|
if (element instanceof PSymbolElement) {
|
10698
10803
|
return '\n';
|
10699
10804
|
}
|
10805
|
+
if (element instanceof BreakElement) {
|
10806
|
+
return '\n';
|
10807
|
+
}
|
10700
10808
|
if (element instanceof BranchElement) {
|
10701
10809
|
const items = [];
|
10702
10810
|
for (let i = 0; i < element.length; i++) {
|
@@ -13245,6 +13353,7 @@ class EditorContext {
|
|
13245
13353
|
//suggestionsList: Array<ISuggestionData> = [];
|
13246
13354
|
//currentSuggestionsList: Array<ISuggestionData> = [];
|
13247
13355
|
suggestions = new DocInputSuggestions();
|
13356
|
+
//editor->this->others
|
13248
13357
|
onKeyDownEvent = new Subject();
|
13249
13358
|
constructor(selectionState, viewOptions) {
|
13250
13359
|
this.selectionState = selectionState;
|
@@ -13254,6 +13363,16 @@ class EditorContext {
|
|
13254
13363
|
this.syncRefresh?.();
|
13255
13364
|
});
|
13256
13365
|
}
|
13366
|
+
/**
|
13367
|
+
* 刷新视图
|
13368
|
+
*/
|
13369
|
+
refreshView() {
|
13370
|
+
this.syncRefresh?.();
|
13371
|
+
}
|
13372
|
+
/**
|
13373
|
+
* 编辑器文档刷新后回调(DOM渲染完成后回调)
|
13374
|
+
* @param cb
|
13375
|
+
*/
|
13257
13376
|
onNextView(cb) {
|
13258
13377
|
if (!cb) {
|
13259
13378
|
this.nextViewFns.length = 0;
|
@@ -13268,25 +13387,27 @@ class EditorContext {
|
|
13268
13387
|
set document(value) {
|
13269
13388
|
this.clearPrevDocCb?.();
|
13270
13389
|
this._document = value;
|
13390
|
+
this._document['editorContext'] = this;
|
13271
13391
|
// this.refSub = this._document.refreshSubject.subscribe((data) => {
|
13272
13392
|
// data = data ?? 'content';
|
13273
13393
|
// this.isDirty = this.isDirty || data === 'content';
|
13274
13394
|
// this.syncRefresh?.(data);
|
13275
13395
|
// });
|
13276
|
-
const docRefreshSub = this._document.refreshSubject.subscribe(() => {
|
13277
|
-
|
13278
|
-
});
|
13396
|
+
// const docRefreshSub = this._document.refreshSubject.subscribe(() => {
|
13397
|
+
// this.syncRefresh?.();
|
13398
|
+
// });
|
13279
13399
|
const docChangedSub = this._document.onChangeSubject.subscribe(() => {
|
13280
13400
|
this.syncRefresh?.();
|
13281
13401
|
});
|
13282
13402
|
this.syncRefresh();
|
13283
13403
|
this.clearPrevDocCb = () => {
|
13284
|
-
docRefreshSub.unsubscribe();
|
13404
|
+
//docRefreshSub.unsubscribe();
|
13285
13405
|
docChangedSub.unsubscribe();
|
13286
13406
|
if (this._document) {
|
13287
13407
|
this.selectionState?.renderContainer?.destroy();
|
13288
13408
|
this.clear();
|
13289
13409
|
this._document.destroy();
|
13410
|
+
this._document.editorContext = null;
|
13290
13411
|
clearTraces(this._document);
|
13291
13412
|
}
|
13292
13413
|
this.clearPrevDocCb = null;
|
@@ -13297,6 +13418,7 @@ class EditorContext {
|
|
13297
13418
|
this.selectionState.clear();
|
13298
13419
|
this.isDirty = false;
|
13299
13420
|
this.suggestions.clear();
|
13421
|
+
this.currentOpsLog.length = 0;
|
13300
13422
|
//this.clearEleDepMaps();
|
13301
13423
|
}
|
13302
13424
|
get defaultCtx() {
|
@@ -13339,6 +13461,7 @@ class EditorContext {
|
|
13339
13461
|
//this.ele_types_handlers.length = 0;
|
13340
13462
|
//this.imageLoader.clear();
|
13341
13463
|
this._document = null;
|
13464
|
+
this.currentOpsLog.length = 0;
|
13342
13465
|
this.suggestions.destroy();
|
13343
13466
|
}
|
13344
13467
|
/**
|
@@ -13361,11 +13484,13 @@ class EditorContext {
|
|
13361
13484
|
oldDataElement.remove();
|
13362
13485
|
}
|
13363
13486
|
currentRefreshType = null;
|
13487
|
+
//当前操作日志
|
13488
|
+
currentOpsLog = [];
|
13364
13489
|
get refreshType() {
|
13365
|
-
if (!this._document) {
|
13490
|
+
if (!this._document || this._document.modifyFlag === ModifyFlag.None) {
|
13366
13491
|
return null;
|
13367
13492
|
}
|
13368
|
-
return this._document.modifyFlag === ModifyFlag.
|
13493
|
+
return this._document.modifyFlag === ModifyFlag.Track ? 'appearance' : 'content';
|
13369
13494
|
}
|
13370
13495
|
adaptiveScale() {
|
13371
13496
|
if (this.viewOptions.pageLayoutMode !== 'fit-page') {
|
@@ -13641,6 +13766,18 @@ class DocumentContext {
|
|
13641
13766
|
}
|
13642
13767
|
return arr;
|
13643
13768
|
}
|
13769
|
+
}
|
13770
|
+
function refreshEditor(ele) {
|
13771
|
+
const doc = ElementUtil.getParent(ele, e => e.type === 'doc');
|
13772
|
+
if (doc) {
|
13773
|
+
const editorCtx = doc['editorContext'];
|
13774
|
+
if (editorCtx) {
|
13775
|
+
editorCtx.refreshView();
|
13776
|
+
}
|
13777
|
+
else {
|
13778
|
+
console.warn("doc.editorContext is null,不能刷新!");
|
13779
|
+
}
|
13780
|
+
}
|
13644
13781
|
}
|
13645
13782
|
|
13646
13783
|
class DynamicExecute {
|
@@ -15171,6 +15308,83 @@ class DocumentArrange {
|
|
15171
15308
|
tmp.props.lineHeight = this.options.defaultLineHeight;
|
15172
15309
|
return tmp;
|
15173
15310
|
}
|
15311
|
+
patchParagraph() {
|
15312
|
+
if (!this.options.enableFastMeasure) {
|
15313
|
+
return false;
|
15314
|
+
}
|
15315
|
+
this.pMeasure = new ParagraphMeasure(this.options, this.renderCtx, this.execute);
|
15316
|
+
const ops = this.docCtx.currentOpsLog;
|
15317
|
+
if (!ops.length) {
|
15318
|
+
return false;
|
15319
|
+
}
|
15320
|
+
if (ops.every(op => 'delText' in op.ops || 'insText' in op.ops || ('insert' in op.ops && op.ops.insert.type === 'text'))) {
|
15321
|
+
const parentIndex = ops[0].parentIndex;
|
15322
|
+
//查找父容器
|
15323
|
+
const parentEle = ElementUtil.getControlByIndex(this.docCtx.document, { currIndex: -1, index: parentIndex }, true);
|
15324
|
+
const paraEle = ElementUtil.getParent(parentEle, item => item instanceof ParagraphElement);
|
15325
|
+
if (!paraEle) {
|
15326
|
+
return false;
|
15327
|
+
}
|
15328
|
+
const cacheRender = paraEle.cacheRender;
|
15329
|
+
if (!cacheRender) {
|
15330
|
+
return false;
|
15331
|
+
}
|
15332
|
+
//已经绘制的渲染对象
|
15333
|
+
const paintRenders = paraEle.paintRenders;
|
15334
|
+
const measureParaRenders = this.pMeasure.measureParagraph(paraEle, cacheRender.rect.width);
|
15335
|
+
if (measureParaRenders.length !== 1) {
|
15336
|
+
return false;
|
15337
|
+
}
|
15338
|
+
const measureParaRender = measureParaRenders[0];
|
15339
|
+
if (cacheRender.rect.width !== measureParaRender.rect.width || cacheRender.rect.height !== measureParaRender.rect.height) {
|
15340
|
+
return false;
|
15341
|
+
}
|
15342
|
+
//第一种情况,出现在页面或者页尾上
|
15343
|
+
const measureParaRenderLines = measureParaRender.length;
|
15344
|
+
const paintRendersLines = paintRenders.reduce((prev, curr) => {
|
15345
|
+
prev.push(...curr.getItems());
|
15346
|
+
return prev;
|
15347
|
+
}, []);
|
15348
|
+
if (paintRendersLines.length % measureParaRenderLines !== 0) {
|
15349
|
+
return false;
|
15350
|
+
}
|
15351
|
+
//完全一致,逐个替换
|
15352
|
+
if (paintRendersLines.length === measureParaRenderLines) {
|
15353
|
+
for (let i = 0; i < paintRendersLines.length; i++) {
|
15354
|
+
const line = paintRendersLines[i];
|
15355
|
+
const index = line.getIndex();
|
15356
|
+
const tempLine = measureParaRender.getChild(i).clone();
|
15357
|
+
tempLine.rect.width = line.rect.width;
|
15358
|
+
tempLine.rect.height = line.rect.height;
|
15359
|
+
tempLine.rect.x = line.rect.x;
|
15360
|
+
tempLine.rect.y = line.rect.y;
|
15361
|
+
line.parent.insertChild(tempLine, index);
|
15362
|
+
line.parent.removeChild(line);
|
15363
|
+
}
|
15364
|
+
return true;
|
15365
|
+
}
|
15366
|
+
}
|
15367
|
+
return false;
|
15368
|
+
}
|
15369
|
+
fastPatchReset(docRenders) {
|
15370
|
+
//测量阶段,对于空段落会插入段落符号,新表格会插入空段落,此时不需要记录节点的更改,以最大的节点进行记录
|
15371
|
+
return suppressTracking(() => {
|
15372
|
+
const doc = this.docCtx.document;
|
15373
|
+
this.execute = new DynamicExecute(doc, this.docCtx.selectionState);
|
15374
|
+
this.pMeasure = new ParagraphMeasure(this.options, this.renderCtx, this.execute);
|
15375
|
+
const data = {
|
15376
|
+
doc,
|
15377
|
+
options: this.options,
|
15378
|
+
execute: this.execute,
|
15379
|
+
renderCtx: this.renderCtx,
|
15380
|
+
createParaFn: () => this.createDefaultPara()
|
15381
|
+
};
|
15382
|
+
this.reset(data);
|
15383
|
+
this.setMeasureCompletedModifyFlag(doc);
|
15384
|
+
this.cacheDocRenders(docRenders);
|
15385
|
+
this.generateCommRange();
|
15386
|
+
});
|
15387
|
+
}
|
15174
15388
|
}
|
15175
15389
|
|
15176
15390
|
/**
|
@@ -15198,7 +15412,12 @@ class DocumentPaginator {
|
|
15198
15412
|
this.docCtx.selectionState.renderContainer = this.docContainer;
|
15199
15413
|
this.docContainer.rect.width = this.viewOptions.docPageSettings.width;
|
15200
15414
|
const newMeasure = new DocumentArrange(this.docCtx, this.renderContext, this.seo);
|
15201
|
-
|
15415
|
+
if (newMeasure.patchParagraph()) {
|
15416
|
+
newMeasure.fastPatchReset(this.docPages);
|
15417
|
+
}
|
15418
|
+
else {
|
15419
|
+
this.docPages = newMeasure.measureDoc();
|
15420
|
+
}
|
15202
15421
|
this.adjustTipLayoutWidth();
|
15203
15422
|
this.layoutPages();
|
15204
15423
|
}
|
@@ -20668,7 +20887,7 @@ class DocEditor {
|
|
20668
20887
|
},
|
20669
20888
|
on: {
|
20670
20889
|
resize: () => {
|
20671
|
-
console.log('resize')
|
20890
|
+
//console.log('resize')
|
20672
20891
|
}
|
20673
20892
|
}
|
20674
20893
|
},
|
@@ -20686,10 +20905,13 @@ class DocEditor {
|
|
20686
20905
|
const target = evt.target;
|
20687
20906
|
this.viewOptions.pageOffset.x = target.scrollLeft;
|
20688
20907
|
this.viewOptions.pageOffset.y = target.scrollTop;
|
20689
|
-
this.onChange();
|
20908
|
+
//this.onChange();
|
20909
|
+
//滚动的时候,不需要重新计算元素
|
20910
|
+
//只需要重新渲染vnode即可
|
20911
|
+
this.onPatchVNodeSubject.next();
|
20690
20912
|
},
|
20691
20913
|
resize: () => {
|
20692
|
-
console.log('resize')
|
20914
|
+
//console.log('resize')
|
20693
20915
|
}
|
20694
20916
|
},
|
20695
20917
|
hook: {
|
@@ -20752,12 +20974,12 @@ class DocEditor {
|
|
20752
20974
|
this.refreshDocument();
|
20753
20975
|
this.flushTask = null;
|
20754
20976
|
//回调
|
20755
|
-
let cbs = [...this.docCtx.nextViewFns];
|
20756
|
-
if (cbs.length) {
|
20757
|
-
|
20758
|
-
|
20759
|
-
|
20760
|
-
}
|
20977
|
+
// let cbs = [...this.docCtx.nextViewFns];
|
20978
|
+
// if (cbs.length) {
|
20979
|
+
// this.docCtx.onNextView(null);
|
20980
|
+
// cbs.forEach(cb => cb());
|
20981
|
+
// return;
|
20982
|
+
// }
|
20761
20983
|
this.historyMange.generateTrack();
|
20762
20984
|
this.historyMange.generateSelectionLog();
|
20763
20985
|
};
|
@@ -20807,9 +21029,9 @@ class DocEditor {
|
|
20807
21029
|
* @returns
|
20808
21030
|
*/
|
20809
21031
|
refreshDocument() {
|
20810
|
-
if (this.docCtx.refreshType === null) {
|
20811
|
-
|
20812
|
-
}
|
21032
|
+
// if (this.docCtx.refreshType === null) {
|
21033
|
+
// return;
|
21034
|
+
// }
|
20813
21035
|
this.docCtx.currentRefreshType = this.docCtx.refreshType;
|
20814
21036
|
if (this.docCtx.currentRefreshType) {
|
20815
21037
|
this.onBeforeRefreshDocument.next();
|
@@ -21690,6 +21912,7 @@ class DocEditor {
|
|
21690
21912
|
this.vNodeDocContent = this.nodePatch(this.svgContainer, vNode);
|
21691
21913
|
}
|
21692
21914
|
this.afterNodePatch.next();
|
21915
|
+
this.onNextView();
|
21693
21916
|
//console.timeEnd('patch');
|
21694
21917
|
};
|
21695
21918
|
render();
|
@@ -21700,6 +21923,13 @@ class DocEditor {
|
|
21700
21923
|
render();
|
21701
21924
|
}, 32));
|
21702
21925
|
}
|
21926
|
+
onNextView() {
|
21927
|
+
let cbs = [...this.docCtx.nextViewFns];
|
21928
|
+
if (cbs.length) {
|
21929
|
+
this.docCtx.onNextView();
|
21930
|
+
cbs.forEach(cb => cb());
|
21931
|
+
}
|
21932
|
+
}
|
21703
21933
|
/**
|
21704
21934
|
* 留痕提示的容器框,用于渲染后重新计算纵向位置
|
21705
21935
|
* @private
|
@@ -22055,7 +22285,7 @@ class DocEditor {
|
|
22055
22285
|
rule.setRuleOptions({ width: this.viewOptions.docPageSettings.width, pagePL, pagePR, docLeft });
|
22056
22286
|
}
|
22057
22287
|
version() {
|
22058
|
-
return "2.2.
|
22288
|
+
return "2.2.15";
|
22059
22289
|
}
|
22060
22290
|
switchPageHeaderEditor() {
|
22061
22291
|
this.docCtx.document.switchPageHeaderEditor(this.selectionState, null);
|
@@ -22138,6 +22368,7 @@ class DocEditor {
|
|
22138
22368
|
readDocChangeLog() {
|
22139
22369
|
//获取文档的变更日志
|
22140
22370
|
const ops = generatePatch(this.docCtx.document, false);
|
22371
|
+
this.docCtx.currentOpsLog = [...ops];
|
22141
22372
|
//1.处理批注删除不对称的问题
|
22142
22373
|
for (let i = 0; i < ops.length; i++) {
|
22143
22374
|
const op = ops[i];
|
@@ -22393,7 +22624,7 @@ class DocumentCombine {
|
|
22393
22624
|
* 用于合并文档计算
|
22394
22625
|
*/
|
22395
22626
|
load() {
|
22396
|
-
const template = this.mainTemplate.clone();
|
22627
|
+
const template = this.mainTemplate.clone(true);
|
22397
22628
|
const body = template.find((item) => item instanceof DocumentBodyElement);
|
22398
22629
|
body.clearItems();
|
22399
22630
|
for (let i = 0; i < this.docParts.length; i++) {
|
@@ -27755,13 +27986,13 @@ const onTableContextmenu = (evt) => {
|
|
27755
27986
|
evt.menus.push({
|
27756
27987
|
caption: '上方插入段落', click: () => {
|
27757
27988
|
currentElement.parent.addChild(ParagraphElement.createElement(), currentElement.getIndex());
|
27758
|
-
currentElement.refreshView()
|
27989
|
+
//currentElement.refreshView()
|
27759
27990
|
}
|
27760
27991
|
});
|
27761
27992
|
evt.menus.push({
|
27762
27993
|
caption: '下方插入段落', click: () => {
|
27763
27994
|
currentElement.parent.addChild(ParagraphElement.createElement(), currentElement.getIndex() + 1);
|
27764
|
-
currentElement.refreshView()
|
27995
|
+
//currentElement.refreshView()
|
27765
27996
|
}
|
27766
27997
|
});
|
27767
27998
|
evt.menus = removeDuplicatesEvent(evt.menus);
|
@@ -27777,5 +28008,5 @@ function removeDuplicatesEvent(events) {
|
|
27777
28008
|
return arr;
|
27778
28009
|
}
|
27779
28010
|
|
27780
|
-
export { BlockContainerElement, BlockContainerRenderObject, BlockContentElement, BlockContentRenderObject, BlockLineRectRenderObject, BodyPartProps, BooleanEnum, BorderProps, BranchElement, BranchRenderObject, BreakElement, BreakFactory, BreakRenderObject, CheckBoxElement, CheckBoxFactory, CheckBoxProps, CheckBoxRenderObject, ColumnPatchUtil, CommContentBaseElement, CommContentBaseRenderObject, CommContentElement, CommContentProps, CommContentRenderObject, CommProps, CommentContentFactory, CommentElement, CommentFactory, CommentRenderObject, CommentsFactory, CommonUtil, CommsContainerElement, CommsContainerRenderObject, ContentMenuItem, ContextMenuElementEvent, CopyElementEvent, DOMEventSource, DOMSubscription, DataContainerElement, DataContainerFactory, DataContainerProps, DataContainerRenderObject, DataDecorateElement, DataDecorateProps, DataDecorateRenderObject, DataEleBaseProps, DataEleBaseTextProps, DataEleCheckProps, DataEleDateProps, DataEleImageProps, DataEleListProps, DataEleMHProps, DataElementBarcode, DataElementBarcodeFactory, DataElementBarcodeProps, DataElementBarcodeRenderObject, DataElementBaseFactory, DataElementCheck, DataElementCheckFactory, DataElementCheckRenderObject, DataElementDate, DataElementDateFactory, DataElementDateRenderObject, DataElementGroupElement, DataElementGroupFactory, DataElementGroupProps, DataElementGroupRenderObject, DataElementImage, DataElementImgFactory, DataElementInlineGroup, DataElementLeaf, DataElementList, DataElementListFactory, DataElementListRenderObject, DataElementMH, DataElementMHFactory, DataElementRenderObject, DataElementText, DataElementTextFactory, DataElementTextRenderObject, DataImageRenderObject, DataRenderMH, DocEditor, DocInputSuggestions, DocMode, DocumentBodyElement, DocumentBodyFactory, DocumentBodyPartElement, DocumentBodyPartFactory, DocumentBodyPartRenderObject, DocumentBodyRenderObject, DocumentChange, DocumentCombine, DocumentComment, DocumentContainerRender, DocumentContext, DocumentCursor, DocumentElement, DocumentEvalFunc, DocumentEvent, DocumentFactory, DocumentFooterElement, DocumentFooterFactory, DocumentFooterRenderObject, DocumentHeaderElement, DocumentHeaderFactory, DocumentHeaderRenderObject, DocumentInput, DocumentPaginator, DocumentPrintOffscreen, DocumentPrintOffscreenBase, DocumentProps, DocumentRenderObject, DocumentSelection, DocumentTemplate, DropElementEvent, EditMode, EditorContext, Element, ElementEvent, ElementFactory, ElementReader, ElementSerialize, ElementUtil, EventBus, EventMap, EventSourceCore, FillNullSpaceElement, FillNullSpaceRenderObject, GetTrackTipsEvent, GotCursorEvent, IDispose, INotifyPropertyChanged, InlineBlockContainer, InlineGroupElement, InlineGroupInputElement, InlineGroupRenderObject, InlineMuiltBlockLineRenderObject, InputElementEvent, IsInSideDataElement, IsInSideDataGroup, IsInSideInlineGroupInputElement, KeyboradElementEvent, LeafElement, LeafRenderObject, LostCursorEvent, MarginProps, ModifyFlag, MouseElementEvent, MousedownElementEvent, MultiBlockLineRenderObject, OnceSubject, PSymbolElement, PSymbolRenderObject, PaddingProps, PageBreakElement, PageBreakFactory, PageBreakRenderObject, PageOptions, PaintContent, ParagraphElement, ParagraphFactory, ParagraphLineRectRenderObject, ParagraphNumberType, ParagraphProps, ParagraphRenderObject, PasteElementEvent, PermanentTeethElement, PermanentTeethFactory, PermanentTeethProps, PermanentTeethRenderObject, PictureElement, PictureFactory, PictureProps, PictureRenderObject, RadioBoxElement, RadioBoxFactory, RadioBoxProps, RadioBoxRenderObject, RangeUtil, Rect, RenderContext, RenderObject, RenderObjectType, ResizeLeafRenderObject, RowMinHeight, RunElementFactory, SVGElement, SVGFactory, SVGProps, SVGRenderObject, SelectionOverlays, SelectionRange, SelectionState, Subject, SubjectSubscription, Subscription, TEXT_HEIGHT_FACTOR, TabElement, TabFactory, TabRenderObject, TableCellElement, TableCellFactory, TableCellProps, TableCellRenderObject, TableElement, TableFactory, TableProps, TableRenderObject, TableRowElement, TableRowFactory, TableRowProps, TableRowRenderObject, TableSplitCell, TableUtil, TextGroupElement, TextGroupFactory, TextGroupRenderObject, TextProps, TextUnitsHolder, TrackRunElement, TrackRunProps, TrackRunRenderObject, TrackRunTypeEnum, ValidateCondition, ValidateElement, ValidateProps, ValidateRenderObject, ViewOptions, addReturn, clearChildrenRenderCache, clearTraces, cloneChildren, cloneElementBase, defaultParaHanging, deleteCurrentParagraph, docOpsMap, elementTypeEventHandler,
|
28011
|
+
export { BlockContainerElement, BlockContainerRenderObject, BlockContentElement, BlockContentRenderObject, BlockLineRectRenderObject, BodyPartProps, BooleanEnum, BorderProps, BranchElement, BranchRenderObject, BreakElement, BreakFactory, BreakRenderObject, CheckBoxElement, CheckBoxFactory, CheckBoxProps, CheckBoxRenderObject, ColumnPatchUtil, CommContentBaseElement, CommContentBaseRenderObject, CommContentElement, CommContentProps, CommContentRenderObject, CommProps, CommentContentFactory, CommentElement, CommentFactory, CommentRenderObject, CommentsFactory, CommonUtil, CommsContainerElement, CommsContainerRenderObject, ContentMenuItem, ContextMenuElementEvent, CopyElementEvent, DOMEventSource, DOMSubscription, DataContainerElement, DataContainerFactory, DataContainerProps, DataContainerRenderObject, DataDecorateElement, DataDecorateProps, DataDecorateRenderObject, DataEleBaseProps, DataEleBaseTextProps, DataEleCheckProps, DataEleDateProps, DataEleImageProps, DataEleListProps, DataEleMHProps, DataElementBarcode, DataElementBarcodeFactory, DataElementBarcodeProps, DataElementBarcodeRenderObject, DataElementBaseFactory, DataElementCheck, DataElementCheckFactory, DataElementCheckRenderObject, DataElementDate, DataElementDateFactory, DataElementDateRenderObject, DataElementGroupElement, DataElementGroupFactory, DataElementGroupProps, DataElementGroupRenderObject, DataElementImage, DataElementImgFactory, DataElementInlineGroup, DataElementLeaf, DataElementList, DataElementListFactory, DataElementListRenderObject, DataElementMH, DataElementMHFactory, DataElementRenderObject, DataElementText, DataElementTextFactory, DataElementTextRenderObject, DataImageRenderObject, DataRenderMH, DocEditor, DocInputSuggestions, DocMode, DocumentBodyElement, DocumentBodyFactory, DocumentBodyPartElement, DocumentBodyPartFactory, DocumentBodyPartRenderObject, DocumentBodyRenderObject, DocumentChange, DocumentCombine, DocumentComment, DocumentContainerRender, DocumentContext, DocumentCursor, DocumentElement, DocumentEvalFunc, DocumentEvent, DocumentFactory, DocumentFooterElement, DocumentFooterFactory, DocumentFooterRenderObject, DocumentHeaderElement, DocumentHeaderFactory, DocumentHeaderRenderObject, DocumentInput, DocumentPaginator, DocumentPrintOffscreen, DocumentPrintOffscreenBase, DocumentProps, DocumentRenderObject, DocumentSelection, DocumentTemplate, DropElementEvent, EditMode, EditorContext, Element, ElementEvent, ElementFactory, ElementReader, ElementSerialize, ElementUtil, EventBus, EventMap, EventSourceCore, FillNullSpaceElement, FillNullSpaceRenderObject, GetTrackTipsEvent, GotCursorEvent, IDispose, INotifyPropertyChanged, InlineBlockContainer, InlineGroupElement, InlineGroupInputElement, InlineGroupRenderObject, InlineMuiltBlockLineRenderObject, InputElementEvent, IsInSideDataElement, IsInSideDataGroup, IsInSideInlineGroupInputElement, KeyboradElementEvent, LeafElement, LeafRenderObject, LostCursorEvent, MarginProps, ModifyFlag, MouseElementEvent, MousedownElementEvent, MultiBlockLineRenderObject, OnceSubject, PSymbolElement, PSymbolRenderObject, PaddingProps, PageBreakElement, PageBreakFactory, PageBreakRenderObject, PageOptions, PaintContent, ParagraphElement, ParagraphFactory, ParagraphLineRectRenderObject, ParagraphNumberType, ParagraphProps, ParagraphRenderObject, PasteElementEvent, PermanentTeethElement, PermanentTeethFactory, PermanentTeethProps, PermanentTeethRenderObject, PictureElement, PictureFactory, PictureProps, PictureRenderObject, RadioBoxElement, RadioBoxFactory, RadioBoxProps, RadioBoxRenderObject, RangeUtil, Rect, RenderContext, RenderObject, RenderObjectType, ResizeLeafRenderObject, RowMinHeight, RunElementFactory, SVGElement, SVGFactory, SVGProps, SVGRenderObject, SelectionOverlays, SelectionRange, SelectionState, Subject, SubjectSubscription, Subscription, TEXT_HEIGHT_FACTOR, TabElement, TabFactory, TabRenderObject, TableCellElement, TableCellFactory, TableCellProps, TableCellRenderObject, TableElement, TableFactory, TableProps, TableRenderObject, TableRowElement, TableRowFactory, TableRowProps, TableRowRenderObject, TableSplitCell, TableUtil, TextGroupElement, TextGroupFactory, TextGroupRenderObject, TextProps, TextUnitsHolder, TrackRunElement, TrackRunProps, TrackRunRenderObject, TrackRunTypeEnum, ValidateCondition, ValidateElement, ValidateProps, ValidateRenderObject, ViewOptions, addReturn, clearChildrenRenderCache, clearTraces, cloneChildren, cloneElementBase, defaultParaHanging, deleteCurrentParagraph, docOpsMap, elementTypeEventHandler, exportDataEleDecoratorSVG$1 as exportDataEleDecoratorSVG, falseChar, fontMapFunc, formatEle, fromEvent, generatePatch, getCalleeName, getFocusTextSegment, inputText, insertEle, invokeTypeHandler, isDate, logUpdateEleProps, objectToString$4 as objectToString, onTableContextmenu, onceTask, parser, reactiveMap, refreshEditor, removeEle, removeText, renderErrorTip, renderUnderWavyLine, renderUnderline, runTextLineRender, setChildrenModifyFlag, setNotifyChangedCallback, setTraceTrackingFlag, suppressTracking, targetMaps, textLineRenderMode, toRawType, toTypeString, trueChar, validateDataEle, validateDataEleRenderObj, validateDataGroup, validateInlineInputRenderObj, watchChanged };
|
27781
28012
|
//# sourceMappingURL=index.js.map
|