@hailin-zheng/editor-core 2.2.13 → 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 +330 -95
- package/index-cjs.js.map +1 -1
- package/index.js +328 -95
- 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 +10 -6
- package/med_editor/framework/element-event-define.d.ts +0 -2
- package/med_editor/framework/impl/data-element/data-decorate-impl.d.ts +3 -2
- 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,11 @@ 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';
|
1715
|
+
//数据元修饰符宽度
|
1716
|
+
dataDecoratorWidth = 1;
|
1711
1717
|
//是否显示数据元修饰符
|
1712
1718
|
showDataEleDecorator = true;
|
1713
1719
|
//数据元没有输入值时背景颜色
|
@@ -1722,12 +1728,18 @@ class ViewOptions {
|
|
1722
1728
|
dataEleNormalBgColor = '#fafafa';
|
1723
1729
|
//数据元错误背景颜色
|
1724
1730
|
dataEleErrorBgColor = '#ff4d4f';
|
1725
|
-
|
1726
|
-
|
1731
|
+
//数据组修饰符号颜色
|
1732
|
+
dataGroupDecoratorNormalColor = '#0050b3';
|
1733
|
+
dataGroupDecoratorMouseEnterColor = '#0050b3';
|
1734
|
+
dataGroupDecoratorFocusedColor = '#0050b3';
|
1735
|
+
//数据组正常背景颜色
|
1736
|
+
dataGroupNormalBgColor = '#fafafa';
|
1737
|
+
//数据元没有输入值时背景颜色
|
1738
|
+
dataGroupEmptyBgColor = '';
|
1727
1739
|
//数据元鼠标悬浮颜色
|
1728
|
-
dataGroupMouseEnterBgColor = '';
|
1729
|
-
|
1730
|
-
dataGroupFocusedBgColor = '';
|
1740
|
+
dataGroupMouseEnterBgColor = '#f5f5f5';
|
1741
|
+
//数据元焦点背景颜色
|
1742
|
+
dataGroupFocusedBgColor = '#f0f0f0';
|
1731
1743
|
viewBackcolor = 'rgb(230,230,230)';
|
1732
1744
|
paraSymbolColor = 'rgb(128,128,128)';
|
1733
1745
|
dataGroupColor = 'rgb(0,80,179)';
|
@@ -1772,6 +1784,8 @@ class ViewOptions {
|
|
1772
1784
|
showEnterSymbol = false;
|
1773
1785
|
enableVisibleExpression = false;
|
1774
1786
|
shapeRendering = 'auto';
|
1787
|
+
//是否开启快速测量
|
1788
|
+
enableFastMeasure = false;
|
1775
1789
|
get fullPageView() {
|
1776
1790
|
return this._fullPageView;
|
1777
1791
|
}
|
@@ -2912,10 +2926,10 @@ class DataDecorateElement extends LeafElement {
|
|
2912
2926
|
this.disableClick = !isPrefix;
|
2913
2927
|
this.isDecorate = true;
|
2914
2928
|
}
|
2915
|
-
createRenderObject() {
|
2929
|
+
createRenderObject(data) {
|
2916
2930
|
const render = new DataDecorateRenderObject(this);
|
2917
2931
|
//render.rect.width = this.dProps.size / 2;
|
2918
|
-
render.rect.width =
|
2932
|
+
render.rect.width = data.options.dataDecoratorWidth;
|
2919
2933
|
render.rect.height = Math.ceil(14 * TEXT_HEIGHT_FACTOR);
|
2920
2934
|
return render;
|
2921
2935
|
}
|
@@ -2939,16 +2953,22 @@ class DataDecorateRenderObject extends LeafRenderObject {
|
|
2939
2953
|
if (event.mode === 'print') {
|
2940
2954
|
return null;
|
2941
2955
|
}
|
2956
|
+
if (this.element.dataEle.type === 'data-group') {
|
2957
|
+
return this.exportDataGroupSVG(event);
|
2958
|
+
}
|
2942
2959
|
// if(this.element.parent.parent.type==='data-group'){
|
2943
2960
|
// return null;
|
2944
2961
|
// }
|
2945
2962
|
const options = event.options;
|
2946
|
-
let color = options.
|
2947
|
-
if (this.element.dataEle.isMouseenter && options.
|
2948
|
-
color = options.
|
2963
|
+
let color = options.dataEleDecoratorNormalColor;
|
2964
|
+
if (this.element.dataEle.isMouseenter && options.dataEleDecoratorMouseEnterColor) {
|
2965
|
+
color = options.dataEleDecoratorMouseEnterColor;
|
2949
2966
|
}
|
2950
|
-
if (this.element.dataEle.isFocused && options.
|
2951
|
-
color = options.
|
2967
|
+
if (this.element.dataEle.isFocused && options.dataEleDecoratorFocusedColor) {
|
2968
|
+
color = options.dataEleDecoratorFocusedColor;
|
2969
|
+
}
|
2970
|
+
if (!color) {
|
2971
|
+
return null;
|
2952
2972
|
}
|
2953
2973
|
const element = this.element;
|
2954
2974
|
const lineWidth = 3;
|
@@ -2969,6 +2989,37 @@ class DataDecorateRenderObject extends LeafRenderObject {
|
|
2969
2989
|
d: path
|
2970
2990
|
});
|
2971
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
|
+
}
|
2972
3023
|
}
|
2973
3024
|
|
2974
3025
|
function parser(code, objects) {
|
@@ -3450,6 +3501,7 @@ class DocumentElement extends BlockContainerElement {
|
|
3450
3501
|
footerElement;
|
3451
3502
|
//commentsContainerElement!: CommsContainerElement;
|
3452
3503
|
headerEditState = false;
|
3504
|
+
editorContext = null;
|
3453
3505
|
constructor() {
|
3454
3506
|
super('doc');
|
3455
3507
|
this.props = new DocumentProps();
|
@@ -3483,11 +3535,11 @@ class DocumentElement extends BlockContainerElement {
|
|
3483
3535
|
}
|
3484
3536
|
};
|
3485
3537
|
}
|
3486
|
-
clone() {
|
3538
|
+
clone(data) {
|
3487
3539
|
const clone = new DocumentElement();
|
3488
3540
|
this.props.clone(clone.props);
|
3489
3541
|
cloneElementBase(this, clone);
|
3490
|
-
cloneChildren(this, clone,
|
3542
|
+
cloneChildren(this, clone, data);
|
3491
3543
|
return clone;
|
3492
3544
|
}
|
3493
3545
|
/**
|
@@ -3523,7 +3575,7 @@ class DocumentElement extends BlockContainerElement {
|
|
3523
3575
|
this.headerEditState = false;
|
3524
3576
|
}
|
3525
3577
|
ss.clear();
|
3526
|
-
this.refreshView();
|
3578
|
+
//this.refreshView();
|
3527
3579
|
}
|
3528
3580
|
markPairs = [];
|
3529
3581
|
/**
|
@@ -3798,7 +3850,7 @@ class InlineGroupInputElement extends InlineGroupElement {
|
|
3798
3850
|
this.addEvent('ElementKeyDown', (evt) => {
|
3799
3851
|
const { selectionState, sourceEvent, source } = evt;
|
3800
3852
|
const { startControl, startOffset } = selectionState;
|
3801
|
-
if (
|
3853
|
+
if (IsInSideInlineGroupInputElement(startControl, startOffset)) {
|
3802
3854
|
if (sourceEvent.shiftKey && sourceEvent.keyCode === 13) ;
|
3803
3855
|
else if (!sourceEvent.shiftKey && sourceEvent.keyCode === 13) {
|
3804
3856
|
evt.isCancel = true;
|
@@ -3807,7 +3859,7 @@ class InlineGroupInputElement extends InlineGroupElement {
|
|
3807
3859
|
}, true);
|
3808
3860
|
this.addEvent('GotCursor', (evt) => {
|
3809
3861
|
const { startControl, startOffset } = evt.selectionState;
|
3810
|
-
if (
|
3862
|
+
if (IsInSideInlineGroupInputElement(startControl, startOffset)) {
|
3811
3863
|
this.isFocused = true;
|
3812
3864
|
}
|
3813
3865
|
});
|
@@ -3904,11 +3956,13 @@ class DataElementInlineGroup extends InlineGroupInputElement {
|
|
3904
3956
|
});
|
3905
3957
|
this.addEvent('ElementMousemove', (evt) => {
|
3906
3958
|
this.isMouseenter = true;
|
3907
|
-
|
3959
|
+
evt.ctx.refreshView();
|
3960
|
+
//this.refreshView();
|
3908
3961
|
});
|
3909
3962
|
this.addEvent('ElementMouseLeave', (evt) => {
|
3910
3963
|
this.isMouseenter = false;
|
3911
|
-
|
3964
|
+
evt.ctx.refreshView();
|
3965
|
+
//this.refreshView()
|
3912
3966
|
});
|
3913
3967
|
this.addEvent('GotCursor', (evt) => {
|
3914
3968
|
this.onGotCursorEvent(evt);
|
@@ -4048,21 +4102,10 @@ function getCurrOptions(ele) {
|
|
4048
4102
|
class DataElementRenderObject extends InlineGroupRenderObject {
|
4049
4103
|
exportSVG(event) {
|
4050
4104
|
const node = super.exportSVG(event);
|
4051
|
-
|
4105
|
+
exportDataEleDecoratorSVG$1(event, this);
|
4106
|
+
//绘制下划线
|
4052
4107
|
if (this.element.props.underline) {
|
4053
|
-
|
4054
|
-
event.highlights.push({
|
4055
|
-
sel: 'path',
|
4056
|
-
data: {
|
4057
|
-
ns: 'http://www.w3.org/2000/svg',
|
4058
|
-
attrs: {
|
4059
|
-
d: `M${x} ${y + this.rect.height} L${x + this.rect.width} ${y + this.rect.height}`,
|
4060
|
-
stroke: '#000',
|
4061
|
-
fill: 'none',
|
4062
|
-
'stroke-width': 1
|
4063
|
-
}
|
4064
|
-
}
|
4065
|
-
});
|
4108
|
+
renderUnderline(event, this);
|
4066
4109
|
}
|
4067
4110
|
renderErrorTip(event, this);
|
4068
4111
|
return node;
|
@@ -4125,7 +4168,7 @@ class DataElementBaseFactory extends ElementFactory {
|
|
4125
4168
|
* @param event
|
4126
4169
|
* @param r
|
4127
4170
|
*/
|
4128
|
-
function
|
4171
|
+
function exportDataEleDecoratorSVG$1(event, r) {
|
4129
4172
|
if (event.mode === 'print') {
|
4130
4173
|
return;
|
4131
4174
|
}
|
@@ -4141,6 +4184,9 @@ function exportDecoratorHTML(event, r) {
|
|
4141
4184
|
if (r.element.isFocused && options.dataEleFocusedBgColor) {
|
4142
4185
|
color = options.dataEleFocusedBgColor;
|
4143
4186
|
}
|
4187
|
+
if (!color) {
|
4188
|
+
return;
|
4189
|
+
}
|
4144
4190
|
//绘制背景
|
4145
4191
|
const bgX = event.relativePagePos.x;
|
4146
4192
|
const bgY = event.relativePagePos.y;
|
@@ -4309,6 +4355,21 @@ function renderUnderWavyLine(event, r, color) {
|
|
4309
4355
|
d += Array(Math.ceil(width / 3)).fill("3,0").join(' t ');
|
4310
4356
|
const path = ElementUtil.createSvgPath({ d, fill: 'none', stroke: color });
|
4311
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
|
+
});
|
4312
4373
|
}
|
4313
4374
|
|
4314
4375
|
class DocumentBodyElement extends BlockContainerElement {
|
@@ -5586,7 +5647,7 @@ class TableUtil {
|
|
5586
5647
|
if (startCell) {
|
5587
5648
|
this.restoreCellMerge(startCell);
|
5588
5649
|
ss.resetRange(startCell, 0);
|
5589
|
-
startCell.refreshView();
|
5650
|
+
//startCell.refreshView();
|
5590
5651
|
}
|
5591
5652
|
}
|
5592
5653
|
static restoreCellMerge(cell) {
|
@@ -5684,7 +5745,7 @@ class TableUtil {
|
|
5684
5745
|
tb.setCellWidth(insertColIndex === colsCount ? insertColIndex - 1 : insertColIndex, insertColWidth - newColWidth);
|
5685
5746
|
tb.insertCol(insertColIndex, newColWidth);
|
5686
5747
|
tb.pubOnChange('self');
|
5687
|
-
tb.refreshView();
|
5748
|
+
//tb.refreshView();
|
5688
5749
|
}
|
5689
5750
|
/**
|
5690
5751
|
* 在指定位置插入行
|
@@ -5713,7 +5774,7 @@ class TableUtil {
|
|
5713
5774
|
//新行插在第一行或者最后一行
|
5714
5775
|
if (insertRowIndex === 0 || insertRowIndex === tb.length) {
|
5715
5776
|
tb.addChild(newRow, insertRowIndex);
|
5716
|
-
tb.refreshView();
|
5777
|
+
//tb.refreshView();
|
5717
5778
|
return newRow;
|
5718
5779
|
}
|
5719
5780
|
const destRow = tb.getChild(insertRowIndex);
|
@@ -5732,7 +5793,7 @@ class TableUtil {
|
|
5732
5793
|
newCell.props.hMerge = destCell.props.hMerge;
|
5733
5794
|
}
|
5734
5795
|
tb.addChild(newRow, insertRowIndex);
|
5735
|
-
tb.refreshView();
|
5796
|
+
//tb.refreshView();
|
5736
5797
|
return newRow;
|
5737
5798
|
}
|
5738
5799
|
/**
|
@@ -5794,14 +5855,14 @@ class TableUtil {
|
|
5794
5855
|
const nextCell = this.getNextCell(ss);
|
5795
5856
|
if (nextCell) {
|
5796
5857
|
ss.resetRange(nextCell, 0);
|
5797
|
-
nextCell.refreshView();
|
5858
|
+
//nextCell.refreshView();
|
5798
5859
|
return;
|
5799
5860
|
}
|
5800
5861
|
//新增行,并定位
|
5801
5862
|
const tb = ElementUtil.getParentByType(startCell, TableElement);
|
5802
5863
|
const newRow = this.insertNewRow(tb, rowIndex + 1);
|
5803
5864
|
ss.resetRange(newRow, 0);
|
5804
|
-
newRow.refreshView();
|
5865
|
+
//newRow.refreshView();
|
5805
5866
|
}
|
5806
5867
|
/**
|
5807
5868
|
* 获取下一个可定位的单元格
|
@@ -5843,7 +5904,7 @@ class TableUtil {
|
|
5843
5904
|
console.warn('当前位置不存在表格');
|
5844
5905
|
return;
|
5845
5906
|
}
|
5846
|
-
tb.parent.refreshView();
|
5907
|
+
//tb.parent.refreshView();
|
5847
5908
|
tb.remove();
|
5848
5909
|
}
|
5849
5910
|
/**
|
@@ -5864,7 +5925,7 @@ class TableUtil {
|
|
5864
5925
|
else if (tc.props.diagonal === diagonal) {
|
5865
5926
|
tc.props.diagonal = null;
|
5866
5927
|
}
|
5867
|
-
tc.refreshView();
|
5928
|
+
//tc.refreshView();
|
5868
5929
|
}
|
5869
5930
|
/**
|
5870
5931
|
* 将当前表格截断成两个相邻的表格
|
@@ -6474,11 +6535,11 @@ class CommContentBaseElement extends BlockContainerElement {
|
|
6474
6535
|
super(type);
|
6475
6536
|
this.addEvent('GotCursor', () => {
|
6476
6537
|
this.focus = true;
|
6477
|
-
this.refreshView()
|
6538
|
+
//this.refreshView()
|
6478
6539
|
});
|
6479
6540
|
this.addEvent('LostCursor', () => {
|
6480
6541
|
this.focus = false;
|
6481
|
-
this.refreshView()
|
6542
|
+
//this.refreshView()
|
6482
6543
|
});
|
6483
6544
|
}
|
6484
6545
|
}
|
@@ -8687,11 +8748,13 @@ class DataElementGroupElement extends InlineGroupInputElement {
|
|
8687
8748
|
this.props = new DataElementGroupProps();
|
8688
8749
|
this.addEvent('ElementMousemove', (evt) => {
|
8689
8750
|
this.isMouseenter = true;
|
8690
|
-
this.refreshView();
|
8751
|
+
//this.refreshView();
|
8752
|
+
evt.ctx.refreshView();
|
8691
8753
|
});
|
8692
8754
|
this.addEvent('ElementMouseLeave', (evt) => {
|
8693
8755
|
this.isMouseenter = false;
|
8694
|
-
|
8756
|
+
evt.ctx.refreshView();
|
8757
|
+
//this.refreshView();
|
8695
8758
|
});
|
8696
8759
|
}
|
8697
8760
|
setValue(val) {
|
@@ -8752,6 +8815,15 @@ class DataElementGroupRenderObject extends InlineGroupRenderObject {
|
|
8752
8815
|
}
|
8753
8816
|
return cloneRender;
|
8754
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
|
+
}
|
8755
8827
|
}
|
8756
8828
|
class DataElementGroupFactory extends DataElementBaseFactory {
|
8757
8829
|
match(type) {
|
@@ -8790,6 +8862,35 @@ function IsInSideDataGroup(control, offset) {
|
|
8790
8862
|
}
|
8791
8863
|
function validateDataGroup(control) {
|
8792
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));
|
8793
8894
|
}
|
8794
8895
|
|
8795
8896
|
class DataElementImage extends DataElementLeaf {
|
@@ -9145,11 +9246,13 @@ class DataContainerElement extends BlockContainerElement {
|
|
9145
9246
|
this.props = new DataContainerProps();
|
9146
9247
|
this.addEvent('GotCursor', (evt) => {
|
9147
9248
|
this.isFocused = true;
|
9148
|
-
|
9249
|
+
evt.ctx.refreshView();
|
9250
|
+
//this.refreshView();
|
9149
9251
|
});
|
9150
9252
|
this.addEvent('LostCursor', (evt) => {
|
9151
9253
|
this.isFocused = false;
|
9152
|
-
|
9254
|
+
evt.ctx.refreshView();
|
9255
|
+
//this.refreshView();
|
9153
9256
|
});
|
9154
9257
|
}
|
9155
9258
|
createRenderObject() {
|
@@ -9264,19 +9367,23 @@ class DocumentBodyPartElement extends BlockContainerElement {
|
|
9264
9367
|
super('body-part');
|
9265
9368
|
this.addEvent('ElementMousemove', (evt) => {
|
9266
9369
|
this.isMouseenter = true;
|
9267
|
-
|
9370
|
+
evt.ctx.refreshView();
|
9371
|
+
//this.refreshView();
|
9268
9372
|
});
|
9269
9373
|
this.addEvent('ElementMouseLeave', (evt) => {
|
9270
9374
|
this.isMouseenter = false;
|
9271
|
-
|
9375
|
+
evt.ctx.refreshView();
|
9376
|
+
//this.refreshView();
|
9272
9377
|
});
|
9273
9378
|
this.addEvent('GotCursor', (evt) => {
|
9274
9379
|
this.isFocused = true;
|
9275
|
-
|
9380
|
+
evt.ctx.refreshView();
|
9381
|
+
//this.refreshView();
|
9276
9382
|
});
|
9277
9383
|
this.addEvent('LostCursor', (evt) => {
|
9278
9384
|
this.isFocused = false;
|
9279
|
-
|
9385
|
+
evt.ctx.refreshView();
|
9386
|
+
//this.refreshView();
|
9280
9387
|
});
|
9281
9388
|
this.props = new BodyPartProps();
|
9282
9389
|
}
|
@@ -10190,7 +10297,7 @@ class TableSplitCell {
|
|
10190
10297
|
}
|
10191
10298
|
}
|
10192
10299
|
tb.pubOnChange('self');
|
10193
|
-
tb.refreshView();
|
10300
|
+
//tb.refreshView();
|
10194
10301
|
}
|
10195
10302
|
/**
|
10196
10303
|
* 拆分合并的单元格
|
@@ -10297,7 +10404,7 @@ class TableSplitCell {
|
|
10297
10404
|
}
|
10298
10405
|
}
|
10299
10406
|
tb.pubOnChange('to-child');
|
10300
|
-
tb.refreshView();
|
10407
|
+
//tb.refreshView();
|
10301
10408
|
return {
|
10302
10409
|
startColIndex: focusCellIndex,
|
10303
10410
|
endColIndex: focusCellIndex + cols - 1
|
@@ -10327,7 +10434,7 @@ class TableSplitCell {
|
|
10327
10434
|
TableUtil.restoreCell(ss);
|
10328
10435
|
this.applyHorSplitColumnCurrPatchPacks(tb, focusRowIndex, focusCellIndex, rows, currPacks);
|
10329
10436
|
tb.pubOnChange('to-child');
|
10330
|
-
tb.refreshView();
|
10437
|
+
//tb.refreshView();
|
10331
10438
|
return {
|
10332
10439
|
startColIndex: focusCellIndex,
|
10333
10440
|
endColIndex: this.getPrepareNewColCounts(otherPacks, hMergeCols)
|
@@ -10695,6 +10802,9 @@ class ElementSerialize {
|
|
10695
10802
|
if (element instanceof PSymbolElement) {
|
10696
10803
|
return '\n';
|
10697
10804
|
}
|
10805
|
+
if (element instanceof BreakElement) {
|
10806
|
+
return '\n';
|
10807
|
+
}
|
10698
10808
|
if (element instanceof BranchElement) {
|
10699
10809
|
const items = [];
|
10700
10810
|
for (let i = 0; i < element.length; i++) {
|
@@ -13243,6 +13353,7 @@ class EditorContext {
|
|
13243
13353
|
//suggestionsList: Array<ISuggestionData> = [];
|
13244
13354
|
//currentSuggestionsList: Array<ISuggestionData> = [];
|
13245
13355
|
suggestions = new DocInputSuggestions();
|
13356
|
+
//editor->this->others
|
13246
13357
|
onKeyDownEvent = new Subject();
|
13247
13358
|
constructor(selectionState, viewOptions) {
|
13248
13359
|
this.selectionState = selectionState;
|
@@ -13252,6 +13363,16 @@ class EditorContext {
|
|
13252
13363
|
this.syncRefresh?.();
|
13253
13364
|
});
|
13254
13365
|
}
|
13366
|
+
/**
|
13367
|
+
* 刷新视图
|
13368
|
+
*/
|
13369
|
+
refreshView() {
|
13370
|
+
this.syncRefresh?.();
|
13371
|
+
}
|
13372
|
+
/**
|
13373
|
+
* 编辑器文档刷新后回调(DOM渲染完成后回调)
|
13374
|
+
* @param cb
|
13375
|
+
*/
|
13255
13376
|
onNextView(cb) {
|
13256
13377
|
if (!cb) {
|
13257
13378
|
this.nextViewFns.length = 0;
|
@@ -13266,25 +13387,27 @@ class EditorContext {
|
|
13266
13387
|
set document(value) {
|
13267
13388
|
this.clearPrevDocCb?.();
|
13268
13389
|
this._document = value;
|
13390
|
+
this._document['editorContext'] = this;
|
13269
13391
|
// this.refSub = this._document.refreshSubject.subscribe((data) => {
|
13270
13392
|
// data = data ?? 'content';
|
13271
13393
|
// this.isDirty = this.isDirty || data === 'content';
|
13272
13394
|
// this.syncRefresh?.(data);
|
13273
13395
|
// });
|
13274
|
-
const docRefreshSub = this._document.refreshSubject.subscribe(() => {
|
13275
|
-
|
13276
|
-
});
|
13396
|
+
// const docRefreshSub = this._document.refreshSubject.subscribe(() => {
|
13397
|
+
// this.syncRefresh?.();
|
13398
|
+
// });
|
13277
13399
|
const docChangedSub = this._document.onChangeSubject.subscribe(() => {
|
13278
13400
|
this.syncRefresh?.();
|
13279
13401
|
});
|
13280
13402
|
this.syncRefresh();
|
13281
13403
|
this.clearPrevDocCb = () => {
|
13282
|
-
docRefreshSub.unsubscribe();
|
13404
|
+
//docRefreshSub.unsubscribe();
|
13283
13405
|
docChangedSub.unsubscribe();
|
13284
13406
|
if (this._document) {
|
13285
13407
|
this.selectionState?.renderContainer?.destroy();
|
13286
13408
|
this.clear();
|
13287
13409
|
this._document.destroy();
|
13410
|
+
this._document.editorContext = null;
|
13288
13411
|
clearTraces(this._document);
|
13289
13412
|
}
|
13290
13413
|
this.clearPrevDocCb = null;
|
@@ -13295,6 +13418,7 @@ class EditorContext {
|
|
13295
13418
|
this.selectionState.clear();
|
13296
13419
|
this.isDirty = false;
|
13297
13420
|
this.suggestions.clear();
|
13421
|
+
this.currentOpsLog.length = 0;
|
13298
13422
|
//this.clearEleDepMaps();
|
13299
13423
|
}
|
13300
13424
|
get defaultCtx() {
|
@@ -13337,6 +13461,7 @@ class EditorContext {
|
|
13337
13461
|
//this.ele_types_handlers.length = 0;
|
13338
13462
|
//this.imageLoader.clear();
|
13339
13463
|
this._document = null;
|
13464
|
+
this.currentOpsLog.length = 0;
|
13340
13465
|
this.suggestions.destroy();
|
13341
13466
|
}
|
13342
13467
|
/**
|
@@ -13359,11 +13484,13 @@ class EditorContext {
|
|
13359
13484
|
oldDataElement.remove();
|
13360
13485
|
}
|
13361
13486
|
currentRefreshType = null;
|
13487
|
+
//当前操作日志
|
13488
|
+
currentOpsLog = [];
|
13362
13489
|
get refreshType() {
|
13363
|
-
if (!this._document) {
|
13490
|
+
if (!this._document || this._document.modifyFlag === ModifyFlag.None) {
|
13364
13491
|
return null;
|
13365
13492
|
}
|
13366
|
-
return this._document.modifyFlag === ModifyFlag.
|
13493
|
+
return this._document.modifyFlag === ModifyFlag.Track ? 'appearance' : 'content';
|
13367
13494
|
}
|
13368
13495
|
adaptiveScale() {
|
13369
13496
|
if (this.viewOptions.pageLayoutMode !== 'fit-page') {
|
@@ -13639,6 +13766,18 @@ class DocumentContext {
|
|
13639
13766
|
}
|
13640
13767
|
return arr;
|
13641
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
|
+
}
|
13642
13781
|
}
|
13643
13782
|
|
13644
13783
|
class DynamicExecute {
|
@@ -15169,6 +15308,83 @@ class DocumentArrange {
|
|
15169
15308
|
tmp.props.lineHeight = this.options.defaultLineHeight;
|
15170
15309
|
return tmp;
|
15171
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
|
+
}
|
15172
15388
|
}
|
15173
15389
|
|
15174
15390
|
/**
|
@@ -15196,7 +15412,12 @@ class DocumentPaginator {
|
|
15196
15412
|
this.docCtx.selectionState.renderContainer = this.docContainer;
|
15197
15413
|
this.docContainer.rect.width = this.viewOptions.docPageSettings.width;
|
15198
15414
|
const newMeasure = new DocumentArrange(this.docCtx, this.renderContext, this.seo);
|
15199
|
-
|
15415
|
+
if (newMeasure.patchParagraph()) {
|
15416
|
+
newMeasure.fastPatchReset(this.docPages);
|
15417
|
+
}
|
15418
|
+
else {
|
15419
|
+
this.docPages = newMeasure.measureDoc();
|
15420
|
+
}
|
15200
15421
|
this.adjustTipLayoutWidth();
|
15201
15422
|
this.layoutPages();
|
15202
15423
|
}
|
@@ -20666,7 +20887,7 @@ class DocEditor {
|
|
20666
20887
|
},
|
20667
20888
|
on: {
|
20668
20889
|
resize: () => {
|
20669
|
-
console.log('resize')
|
20890
|
+
//console.log('resize')
|
20670
20891
|
}
|
20671
20892
|
}
|
20672
20893
|
},
|
@@ -20684,10 +20905,13 @@ class DocEditor {
|
|
20684
20905
|
const target = evt.target;
|
20685
20906
|
this.viewOptions.pageOffset.x = target.scrollLeft;
|
20686
20907
|
this.viewOptions.pageOffset.y = target.scrollTop;
|
20687
|
-
this.onChange();
|
20908
|
+
//this.onChange();
|
20909
|
+
//滚动的时候,不需要重新计算元素
|
20910
|
+
//只需要重新渲染vnode即可
|
20911
|
+
this.onPatchVNodeSubject.next();
|
20688
20912
|
},
|
20689
20913
|
resize: () => {
|
20690
|
-
console.log('resize')
|
20914
|
+
//console.log('resize')
|
20691
20915
|
}
|
20692
20916
|
},
|
20693
20917
|
hook: {
|
@@ -20750,12 +20974,12 @@ class DocEditor {
|
|
20750
20974
|
this.refreshDocument();
|
20751
20975
|
this.flushTask = null;
|
20752
20976
|
//回调
|
20753
|
-
let cbs = [...this.docCtx.nextViewFns];
|
20754
|
-
if (cbs.length) {
|
20755
|
-
|
20756
|
-
|
20757
|
-
|
20758
|
-
}
|
20977
|
+
// let cbs = [...this.docCtx.nextViewFns];
|
20978
|
+
// if (cbs.length) {
|
20979
|
+
// this.docCtx.onNextView(null);
|
20980
|
+
// cbs.forEach(cb => cb());
|
20981
|
+
// return;
|
20982
|
+
// }
|
20759
20983
|
this.historyMange.generateTrack();
|
20760
20984
|
this.historyMange.generateSelectionLog();
|
20761
20985
|
};
|
@@ -20805,9 +21029,9 @@ class DocEditor {
|
|
20805
21029
|
* @returns
|
20806
21030
|
*/
|
20807
21031
|
refreshDocument() {
|
20808
|
-
if (this.docCtx.refreshType === null) {
|
20809
|
-
|
20810
|
-
}
|
21032
|
+
// if (this.docCtx.refreshType === null) {
|
21033
|
+
// return;
|
21034
|
+
// }
|
20811
21035
|
this.docCtx.currentRefreshType = this.docCtx.refreshType;
|
20812
21036
|
if (this.docCtx.currentRefreshType) {
|
20813
21037
|
this.onBeforeRefreshDocument.next();
|
@@ -21688,6 +21912,7 @@ class DocEditor {
|
|
21688
21912
|
this.vNodeDocContent = this.nodePatch(this.svgContainer, vNode);
|
21689
21913
|
}
|
21690
21914
|
this.afterNodePatch.next();
|
21915
|
+
this.onNextView();
|
21691
21916
|
//console.timeEnd('patch');
|
21692
21917
|
};
|
21693
21918
|
render();
|
@@ -21698,6 +21923,13 @@ class DocEditor {
|
|
21698
21923
|
render();
|
21699
21924
|
}, 32));
|
21700
21925
|
}
|
21926
|
+
onNextView() {
|
21927
|
+
let cbs = [...this.docCtx.nextViewFns];
|
21928
|
+
if (cbs.length) {
|
21929
|
+
this.docCtx.onNextView();
|
21930
|
+
cbs.forEach(cb => cb());
|
21931
|
+
}
|
21932
|
+
}
|
21701
21933
|
/**
|
21702
21934
|
* 留痕提示的容器框,用于渲染后重新计算纵向位置
|
21703
21935
|
* @private
|
@@ -22053,7 +22285,7 @@ class DocEditor {
|
|
22053
22285
|
rule.setRuleOptions({ width: this.viewOptions.docPageSettings.width, pagePL, pagePR, docLeft });
|
22054
22286
|
}
|
22055
22287
|
version() {
|
22056
|
-
return "2.2.
|
22288
|
+
return "2.2.15";
|
22057
22289
|
}
|
22058
22290
|
switchPageHeaderEditor() {
|
22059
22291
|
this.docCtx.document.switchPageHeaderEditor(this.selectionState, null);
|
@@ -22136,6 +22368,7 @@ class DocEditor {
|
|
22136
22368
|
readDocChangeLog() {
|
22137
22369
|
//获取文档的变更日志
|
22138
22370
|
const ops = generatePatch(this.docCtx.document, false);
|
22371
|
+
this.docCtx.currentOpsLog = [...ops];
|
22139
22372
|
//1.处理批注删除不对称的问题
|
22140
22373
|
for (let i = 0; i < ops.length; i++) {
|
22141
22374
|
const op = ops[i];
|
@@ -22391,7 +22624,7 @@ class DocumentCombine {
|
|
22391
22624
|
* 用于合并文档计算
|
22392
22625
|
*/
|
22393
22626
|
load() {
|
22394
|
-
const template = this.mainTemplate.clone();
|
22627
|
+
const template = this.mainTemplate.clone(true);
|
22395
22628
|
const body = template.find((item) => item instanceof DocumentBodyElement);
|
22396
22629
|
body.clearItems();
|
22397
22630
|
for (let i = 0; i < this.docParts.length; i++) {
|
@@ -27753,13 +27986,13 @@ const onTableContextmenu = (evt) => {
|
|
27753
27986
|
evt.menus.push({
|
27754
27987
|
caption: '上方插入段落', click: () => {
|
27755
27988
|
currentElement.parent.addChild(ParagraphElement.createElement(), currentElement.getIndex());
|
27756
|
-
currentElement.refreshView()
|
27989
|
+
//currentElement.refreshView()
|
27757
27990
|
}
|
27758
27991
|
});
|
27759
27992
|
evt.menus.push({
|
27760
27993
|
caption: '下方插入段落', click: () => {
|
27761
27994
|
currentElement.parent.addChild(ParagraphElement.createElement(), currentElement.getIndex() + 1);
|
27762
|
-
currentElement.refreshView()
|
27995
|
+
//currentElement.refreshView()
|
27763
27996
|
}
|
27764
27997
|
});
|
27765
27998
|
evt.menus = removeDuplicatesEvent(evt.menus);
|
@@ -27775,5 +28008,5 @@ function removeDuplicatesEvent(events) {
|
|
27775
28008
|
return arr;
|
27776
28009
|
}
|
27777
28010
|
|
27778
|
-
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 };
|
27779
28012
|
//# sourceMappingURL=index.js.map
|