@hailin-zheng/editor-core 2.2.42 → 2.2.44
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.js +178 -85
- package/med_editor/doc-editor.d.ts +7 -1
- package/med_editor/framework/doc-layout/arrange-manager.d.ts +96 -0
- package/med_editor/framework/doc-layout/document-arrange.d.ts +1 -1
- package/med_editor/framework/element-define.d.ts +0 -1
- package/med_editor/framework/element-event-define.d.ts +0 -1
- package/med_editor/framework/util/element-util.d.ts +2 -0
- package/package.json +1 -1
- package/index-cjs.d.ts +0 -32
- package/index-cjs.js +0 -29731
- package/index-cjs.js.map +0 -1
- package/index.js.map +0 -1
package/index.js
CHANGED
@@ -1372,8 +1372,6 @@ class Element {
|
|
1372
1372
|
disableClick;
|
1373
1373
|
//是否被释放
|
1374
1374
|
disposed;
|
1375
|
-
//加载完毕
|
1376
|
-
loaded;
|
1377
1375
|
visibleExpr;
|
1378
1376
|
effectExpr;
|
1379
1377
|
attribute;
|
@@ -13512,6 +13510,49 @@ class ElementUtil {
|
|
13512
13510
|
static isDataEle(ele) {
|
13513
13511
|
return validateDataEle(ele) || ele instanceof DataElementGroupElement;
|
13514
13512
|
}
|
13513
|
+
static getPaintRenders(ele) {
|
13514
|
+
const parents = this.getParentElements(ele);
|
13515
|
+
const docRender = parents[parents.length - 1];
|
13516
|
+
const docRenders = docRender.paintRenders;
|
13517
|
+
const getMatchRender = (ele, renders, mode, res) => {
|
13518
|
+
const items = res ?? [];
|
13519
|
+
for (let i = 0; i < renders.length; i++) {
|
13520
|
+
const render = renders[i];
|
13521
|
+
if (render['children']) {
|
13522
|
+
for (let j = 0; j < render.length; j++) {
|
13523
|
+
if (render.getChild(j).element === ele) {
|
13524
|
+
items.push(render.getChild(j));
|
13525
|
+
}
|
13526
|
+
else if (!render.getChild(j).element) {
|
13527
|
+
getMatchRender(ele, [render.getChild(j)], mode, items);
|
13528
|
+
}
|
13529
|
+
else if (ele.type === 'tr' && mode === 'f' && render.getChild(j)['hasMergeCell']) {
|
13530
|
+
items.push(render.getChild(j));
|
13531
|
+
}
|
13532
|
+
}
|
13533
|
+
}
|
13534
|
+
}
|
13535
|
+
return items;
|
13536
|
+
};
|
13537
|
+
let paintRenders = docRenders;
|
13538
|
+
for (let i = parents.length - 2; i >= 0; i--) {
|
13539
|
+
const parent = parents[i];
|
13540
|
+
paintRenders = getMatchRender(parent, paintRenders, i === 0 ? 'r' : 'f');
|
13541
|
+
}
|
13542
|
+
return paintRenders;
|
13543
|
+
}
|
13544
|
+
static iterateChildren(ele, cb) {
|
13545
|
+
cb(ele);
|
13546
|
+
for (let i = 0; i < ele.length; i++) {
|
13547
|
+
const e = ele.getChild(i);
|
13548
|
+
if (e instanceof BranchElement) {
|
13549
|
+
this.iterateChildren(e, cb);
|
13550
|
+
}
|
13551
|
+
else {
|
13552
|
+
cb(e);
|
13553
|
+
}
|
13554
|
+
}
|
13555
|
+
}
|
13515
13556
|
}
|
13516
13557
|
|
13517
13558
|
var TextUnitsHolder;
|
@@ -15877,38 +15918,70 @@ class DocumentArrange {
|
|
15877
15918
|
return;
|
15878
15919
|
}
|
15879
15920
|
const firstRow = cutTable.getChild(0);
|
15880
|
-
|
15881
|
-
|
15921
|
+
//校验首行是否为full-row状态
|
15922
|
+
const firstRowCellWidth = firstRow.getItems().reduce((prev, curr) => prev + curr.rect.width, 0);
|
15923
|
+
if (firstRowCellWidth === cutTable.rect.width) {
|
15882
15924
|
return;
|
15883
15925
|
}
|
15884
|
-
|
15885
|
-
let
|
15886
|
-
|
15887
|
-
const
|
15888
|
-
|
15889
|
-
|
15890
|
-
|
15891
|
-
|
15892
|
-
|
15893
|
-
|
15894
|
-
|
15895
|
-
|
15896
|
-
|
15926
|
+
//向上行打补丁的标记
|
15927
|
+
let patchBelowRowFlag = true;
|
15928
|
+
if (cutTable.length > 1) {
|
15929
|
+
const cells = [...firstRow.getItems()];
|
15930
|
+
//判断下一行中是否有缺失的单元格,恰好能放下
|
15931
|
+
const belowRow = cutTable.getChild(1);
|
15932
|
+
const belowCells = belowRow.getItems();
|
15933
|
+
//判断和下一行的单元格都不相交
|
15934
|
+
if (belowCells.every(a => !cells.some(b => CommonUtil.isIntersect(a.rect, b.rect)))) {
|
15935
|
+
patchBelowRowFlag = false;
|
15936
|
+
}
|
15937
|
+
}
|
15938
|
+
if (patchBelowRowFlag) {
|
15939
|
+
let prevRectX = 0;
|
15940
|
+
let colIndex = 0;
|
15941
|
+
//以下处理被截断的表格只有一行,需要向前方的表格计算位置进行填充空单元格
|
15942
|
+
while (prevRectX < firstRow.rect.width) {
|
15943
|
+
const cell = firstRow.getChild(colIndex);
|
15944
|
+
if (!cell || cell.rect.x !== prevRectX) {
|
15945
|
+
const aboveCell = this.findAboveCellByPos(aboveTable, prevRectX);
|
15946
|
+
if (aboveCell) {
|
15947
|
+
const fillEmptCell = this.pMeasure.createRenderObject(aboveCell.element);
|
15948
|
+
fillEmptCell.rect.x = prevRectX;
|
15949
|
+
fillEmptCell.rect.width = aboveCell.rect.width;
|
15950
|
+
fillEmptCell.rect.height = firstRow.rect.height;
|
15951
|
+
firstRow.insertChild(fillEmptCell, colIndex);
|
15952
|
+
firstRow.hasMergeCells = undefined;
|
15953
|
+
}
|
15954
|
+
else {
|
15955
|
+
throw new Error('未找到可以填充的单元格');
|
15956
|
+
}
|
15897
15957
|
}
|
15898
15958
|
else {
|
15899
|
-
|
15959
|
+
prevRectX += cell.rect.width;
|
15960
|
+
colIndex++;
|
15900
15961
|
}
|
15901
15962
|
}
|
15902
|
-
|
15903
|
-
|
15904
|
-
|
15963
|
+
ElementUtil.remeasure(firstRow);
|
15964
|
+
ElementUtil.remeasure(cutTable);
|
15965
|
+
}
|
15966
|
+
else {
|
15967
|
+
const cells = [...firstRow.getItems()];
|
15968
|
+
//判断下一行中是否有缺失的单元格,恰好能放下
|
15969
|
+
const belowRow = cutTable.getChild(1);
|
15970
|
+
for (let i = 0; i < cells.length; i++) {
|
15971
|
+
const cell = cells[i];
|
15972
|
+
firstRow.removeChild(cell);
|
15973
|
+
belowRow.addChild(cell);
|
15974
|
+
belowRow.hasMergeCells = undefined;
|
15905
15975
|
}
|
15976
|
+
belowRow.getItems().sort((a, b) => a.rect.x - b.rect.x);
|
15977
|
+
firstRow.parent.removeChild(firstRow);
|
15978
|
+
ElementUtil.remeasure(belowRow);
|
15979
|
+
ElementUtil.remeasure(cutTable);
|
15980
|
+
this.fixCutTable2(cutTable, aboveTable);
|
15906
15981
|
}
|
15907
|
-
ElementUtil.remeasure(firstRow);
|
15908
|
-
ElementUtil.remeasure(cutTable);
|
15909
15982
|
}
|
15910
15983
|
/**
|
15911
|
-
*
|
15984
|
+
* 查找指定位置的单元格
|
15912
15985
|
* @param table
|
15913
15986
|
* @param x
|
15914
15987
|
* @returns
|
@@ -15996,18 +16069,18 @@ class DocumentArrange {
|
|
15996
16069
|
* @param ele
|
15997
16070
|
*/
|
15998
16071
|
setMeasureCompletedModifyFlag(ele) {
|
16072
|
+
if (ele.modifyFlag === ModifyFlag.None) {
|
16073
|
+
return;
|
16074
|
+
}
|
15999
16075
|
if (ele instanceof BranchElement) {
|
16000
16076
|
for (let i = 0; i < ele.length; i++) {
|
16001
16077
|
this.setMeasureCompletedModifyFlag(ele.getChild(i));
|
16002
16078
|
}
|
16003
16079
|
}
|
16004
16080
|
ele.modifyFlag = ModifyFlag.None;
|
16005
|
-
if (!ele.loaded) {
|
16006
|
-
ele.loaded = true;
|
16007
|
-
}
|
16008
16081
|
}
|
16009
16082
|
clearPaintCache(ele, data) {
|
16010
|
-
ele.paintRenders
|
16083
|
+
ele.paintRenders = [];
|
16011
16084
|
ele.beginMeasure(data);
|
16012
16085
|
if (ele.modifyFlag !== ModifyFlag.None) {
|
16013
16086
|
ele.onChangeSubject.next();
|
@@ -16058,7 +16131,7 @@ class DocumentArrange {
|
|
16058
16131
|
}
|
16059
16132
|
for (let i = 0; i < renderTree.length; i++) {
|
16060
16133
|
const currRender = renderTree.getChild(i);
|
16061
|
-
if (currRender
|
16134
|
+
if (currRender['children']) {
|
16062
16135
|
this.cacheRenders(currRender);
|
16063
16136
|
}
|
16064
16137
|
else {
|
@@ -16088,52 +16161,58 @@ class DocumentArrange {
|
|
16088
16161
|
if (!ops.length) {
|
16089
16162
|
return false;
|
16090
16163
|
}
|
16091
|
-
|
16164
|
+
//判断当前所有的操作都是一个段落
|
16165
|
+
const paras = ops.map(item => {
|
16092
16166
|
const parentIndex = ops[0].parentIndex;
|
16093
16167
|
//查找父容器
|
16094
16168
|
const parentEle = ElementUtil.getControlByIndex(this.docCtx.document, { currIndex: -1, index: parentIndex }, true);
|
16095
16169
|
const paraEle = ElementUtil.getParent(parentEle, item => item instanceof ParagraphElement);
|
16096
|
-
|
16097
|
-
|
16098
|
-
|
16099
|
-
|
16100
|
-
|
16101
|
-
|
16102
|
-
|
16103
|
-
|
16104
|
-
|
16105
|
-
|
16106
|
-
|
16107
|
-
|
16108
|
-
|
16109
|
-
|
16110
|
-
|
16111
|
-
|
16112
|
-
|
16113
|
-
|
16114
|
-
|
16115
|
-
|
16116
|
-
|
16117
|
-
|
16118
|
-
|
16119
|
-
|
16120
|
-
|
16121
|
-
|
16122
|
-
|
16123
|
-
|
16124
|
-
|
16125
|
-
|
16126
|
-
|
16127
|
-
|
16128
|
-
|
16129
|
-
|
16130
|
-
|
16131
|
-
|
16132
|
-
|
16133
|
-
|
16134
|
-
|
16135
|
-
|
16170
|
+
return paraEle;
|
16171
|
+
});
|
16172
|
+
if (!paras.every(item => item === paras[0])) {
|
16173
|
+
return false;
|
16174
|
+
}
|
16175
|
+
const paraEle = paras[0];
|
16176
|
+
if (!paraEle) {
|
16177
|
+
return false;
|
16178
|
+
}
|
16179
|
+
const cacheRender = paraEle.cacheRender;
|
16180
|
+
if (!cacheRender) {
|
16181
|
+
return false;
|
16182
|
+
}
|
16183
|
+
//已经绘制的渲染对象
|
16184
|
+
const paintRenders = paraEle.paintRenders;
|
16185
|
+
const measureParaRenders = this.pMeasure.measureParagraph(paraEle, cacheRender.rect.width);
|
16186
|
+
if (measureParaRenders.length !== 1) {
|
16187
|
+
return false;
|
16188
|
+
}
|
16189
|
+
const measureParaRender = measureParaRenders[0];
|
16190
|
+
if (cacheRender.rect.width !== measureParaRender.rect.width || cacheRender.rect.height !== measureParaRender.rect.height) {
|
16191
|
+
return false;
|
16192
|
+
}
|
16193
|
+
//第一种情况,出现在页面或者页尾上
|
16194
|
+
const measureParaRenderLines = measureParaRender.length;
|
16195
|
+
const paintRendersLines = paintRenders.reduce((prev, curr) => {
|
16196
|
+
prev.push(...curr.getItems());
|
16197
|
+
return prev;
|
16198
|
+
}, []);
|
16199
|
+
if (paintRendersLines.length % measureParaRenderLines !== 0) {
|
16200
|
+
return false;
|
16201
|
+
}
|
16202
|
+
//完全一致,逐个替换
|
16203
|
+
if (paintRendersLines.length === measureParaRenderLines) {
|
16204
|
+
for (let i = 0; i < paintRendersLines.length; i++) {
|
16205
|
+
const line = paintRendersLines[i];
|
16206
|
+
const index = line.getIndex();
|
16207
|
+
const tempLine = measureParaRender.getChild(i).clone();
|
16208
|
+
tempLine.rect.width = line.rect.width;
|
16209
|
+
tempLine.rect.height = line.rect.height;
|
16210
|
+
tempLine.rect.x = line.rect.x;
|
16211
|
+
tempLine.rect.y = line.rect.y;
|
16212
|
+
line.parent.insertChild(tempLine, index);
|
16213
|
+
line.parent.removeChild(line);
|
16136
16214
|
}
|
16215
|
+
return true;
|
16137
16216
|
}
|
16138
16217
|
return false;
|
16139
16218
|
}
|
@@ -16738,7 +16817,6 @@ class DocumentEvent {
|
|
16738
16817
|
render: hitInfo.render,
|
16739
16818
|
relativeRect: hitInfo.render.rect,
|
16740
16819
|
absoluteRect: hitInfo.absoluteRenderRect,
|
16741
|
-
shadowRenderIndex: element.paintRenders.indexOf(hitInfo.render),
|
16742
16820
|
startRegion: ElementUtil.getRenderObjectRegion(hitInfo.render)
|
16743
16821
|
};
|
16744
16822
|
}
|
@@ -21960,10 +22038,10 @@ class EditorListVNode {
|
|
21960
22038
|
this.currentOpenStatus.value = 'open';
|
21961
22039
|
}
|
21962
22040
|
render() {
|
21963
|
-
|
21964
|
-
|
21965
|
-
|
21966
|
-
|
22041
|
+
const editor = this.editor;
|
22042
|
+
if (editor.viewOptions.docMode === DocMode.View || !editor.selectionState.editable || editor['documentEvent'].ismousedown) {
|
22043
|
+
return null;
|
22044
|
+
}
|
21967
22045
|
// this.init();
|
21968
22046
|
// const dataEle = editor.getCurrentDataElement();
|
21969
22047
|
// if (dataEle && dataEle instanceof DataElementList && dataEle.props.editable) {
|
@@ -21979,7 +22057,6 @@ class EditorListVNode {
|
|
21979
22057
|
if (!this.currentEle) {
|
21980
22058
|
return null;
|
21981
22059
|
}
|
21982
|
-
const editor = this.editor;
|
21983
22060
|
const multiSelect = this.currentEle.props.multiSelect;
|
21984
22061
|
const position = editor.getDataElementPosition(this.currentEle.startDecorate);
|
21985
22062
|
const onChangeHandler = (code) => {
|
@@ -22484,9 +22561,7 @@ class DocEditor {
|
|
22484
22561
|
if (this.docCtx.currentRefreshType) {
|
22485
22562
|
this.onBeforeRefreshDocument.next();
|
22486
22563
|
this.docComment.readComments();
|
22487
|
-
|
22488
|
-
this.documentPaginator.rePages();
|
22489
|
-
});
|
22564
|
+
this.documentPaginator.rePages();
|
22490
22565
|
}
|
22491
22566
|
this.updateSelection();
|
22492
22567
|
this.setCursor();
|
@@ -22742,6 +22817,15 @@ class DocEditor {
|
|
22742
22817
|
height
|
22743
22818
|
};
|
22744
22819
|
}
|
22820
|
+
getPaintRenders(ele) {
|
22821
|
+
const res = ElementUtil.getPaintRenders(ele);
|
22822
|
+
// console.time('getPaintRenders')
|
22823
|
+
// for (let i = 0; i < 1000; i++) {
|
22824
|
+
// ElementUtil.getPaintRenders(ele);
|
22825
|
+
// }
|
22826
|
+
// console.timeEnd('getPaintRenders')
|
22827
|
+
return res;
|
22828
|
+
}
|
22745
22829
|
/**
|
22746
22830
|
* 获取文档模型
|
22747
22831
|
* @returns
|
@@ -23650,13 +23734,14 @@ class DocEditor {
|
|
23650
23734
|
rule.setRuleOptions({ width: this.viewOptions.docPageSettings.width, pagePL, pagePR, docLeft });
|
23651
23735
|
}
|
23652
23736
|
version() {
|
23653
|
-
return "2.2.
|
23737
|
+
return "2.2.44";
|
23654
23738
|
}
|
23655
23739
|
switchPageHeaderEditor() {
|
23656
23740
|
this.docCtx.document.switchPageHeaderEditor(this.selectionState, null);
|
23657
23741
|
}
|
23658
|
-
getTextContent() {
|
23659
|
-
|
23742
|
+
getTextContent(ele) {
|
23743
|
+
ele = ele ?? this.docCtx.document;
|
23744
|
+
const paras = ele.treeFilter(item => item instanceof ParagraphElement);
|
23660
23745
|
const paraTexts = paras.map(item => ElementSerialize.serializeString(item));
|
23661
23746
|
return paraTexts.join('');
|
23662
23747
|
}
|
@@ -23829,11 +23914,14 @@ class DocEditor {
|
|
23829
23914
|
const keyEvent = new KeyboradElementEvent(this.docCtx);
|
23830
23915
|
const keyStr = CommonUtil.getKeyCombination(evt);
|
23831
23916
|
keyEvent.sourceEvent = evt;
|
23917
|
+
if (keyStr === 'Ctrl+f') {
|
23918
|
+
debugger;
|
23919
|
+
}
|
23832
23920
|
if (DocumentEvent.invokeEvent('ElementKeyDown', this.docCtx.selectionState.startControl, keyEvent, 'All')) {
|
23833
23921
|
evt.preventDefault();
|
23834
23922
|
return;
|
23835
23923
|
}
|
23836
|
-
if (['ArrowDown', 'ArrowUp']) {
|
23924
|
+
if (['ArrowDown', 'ArrowUp'].indexOf(keyStr) > -1) {
|
23837
23925
|
if (this.docCtx.suggestions.prepareSuggestions.length) {
|
23838
23926
|
this.onSuggestionsKeydown(evt);
|
23839
23927
|
}
|
@@ -23861,7 +23949,7 @@ class DocEditor {
|
|
23861
23949
|
}
|
23862
23950
|
}
|
23863
23951
|
}
|
23864
|
-
else if (['Ctrl+f', '
|
23952
|
+
else if (['Ctrl+f', 'Meta+f'].indexOf(keyStr) > -1) {
|
23865
23953
|
evt.preventDefault();
|
23866
23954
|
this.searchPanel.switchVisible();
|
23867
23955
|
this.onPatchVNodeSubject.next();
|
@@ -24015,6 +24103,12 @@ class DocEditor {
|
|
24015
24103
|
insertContent(data) {
|
24016
24104
|
this.documentChange.onInsertContent(data);
|
24017
24105
|
}
|
24106
|
+
/**
|
24107
|
+
* 遍历文档节点执行任务
|
24108
|
+
*/
|
24109
|
+
iterateChildren(cb) {
|
24110
|
+
ElementUtil.iterateChildren(this.docCtx.document, cb);
|
24111
|
+
}
|
24018
24112
|
}
|
24019
24113
|
|
24020
24114
|
/**
|
@@ -29422,4 +29516,3 @@ function removeDuplicatesEvent(events) {
|
|
29422
29516
|
}
|
29423
29517
|
|
29424
29518
|
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, HLNode, IDispose, INotifyPropertyChanged, InlineBlockContainer, InlineGroupElement, InlineGroupInputElement, InlineGroupRenderObject, InlineMuiltBlockLineRenderObject, InputElementEvent, IsInSideDataElement, IsInSideDataGroup, IsInSideInlineGroupInputElement, KeyboradElementEvent, LeafElement, LeafRenderObject, LineElement, LineFactory, LineProps, LineRenderObject, LostCursorEvent, MarginProps, ModifyFlag, MouseElementEvent, MousedownElementEvent, MultiBlockLineRenderObject, NS, 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, getCurrentParaGroupRenders, getFocusTextSegment, getRenderPosToDoc, 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, updatePartialProps, validateDataEle, validateDataEleRenderObj, validateDataGroup, validateInlineDataEle, validateInlineInputRenderObj, watchChanged };
|
29425
|
-
//# sourceMappingURL=index.js.map
|
@@ -1,6 +1,7 @@
|
|
1
1
|
import { ContentMenuItem } from './framework/element-event-define';
|
2
2
|
import { ElementReader } from './framework/element-reader';
|
3
3
|
import { SelectionState } from './framework/selection/document-selection';
|
4
|
+
import { RenderObject } from './framework/render-define';
|
4
5
|
import { BlockContainerElement, Element, ICancelTokenFn, LeafElement, MarginProps, OrientType, PageLayoutMode, Position, Rect, SerializeProps, ViewOptions } from './framework/element-define';
|
5
6
|
import { DataElementGroupElement, DataElementInlineGroup, DataElementLeaf, DocumentElement, ParagraphElement, TableCellElement, TableElement, TableRowElement } from './framework/impl';
|
6
7
|
import { CellDiagonal, ParagraphNumberType, ParagraphProps, TextProps } from './framework/element-props';
|
@@ -159,6 +160,7 @@ export declare class DocEditor {
|
|
159
160
|
* @returns
|
160
161
|
*/
|
161
162
|
getDataElementPosition(element: LeafElement): Omit<Rect, 'width'> | null;
|
163
|
+
getPaintRenders(ele: Element): Array<RenderObject>;
|
162
164
|
/**
|
163
165
|
* 获取文档模型
|
164
166
|
* @returns
|
@@ -475,7 +477,7 @@ export declare class DocEditor {
|
|
475
477
|
refreshDocRule(rule: DocRule): void;
|
476
478
|
version(): string;
|
477
479
|
switchPageHeaderEditor(): void;
|
478
|
-
getTextContent(): string;
|
480
|
+
getTextContent(ele?: BlockContainerElement): string;
|
479
481
|
emit(event: string, args: any): void;
|
480
482
|
createResizableElement(): VNode;
|
481
483
|
/**
|
@@ -535,6 +537,10 @@ export declare class DocEditor {
|
|
535
537
|
text: string;
|
536
538
|
doc: string;
|
537
539
|
}): void;
|
540
|
+
/**
|
541
|
+
* 遍历文档节点执行任务
|
542
|
+
*/
|
543
|
+
iterateChildren(cb: (ele: Element) => void): void;
|
538
544
|
}
|
539
545
|
export declare type EditorCurrentPos = {
|
540
546
|
pos: Position;
|
@@ -0,0 +1,96 @@
|
|
1
|
+
import { Element, IBeginMeasureData, ViewOptions } from "../element-define";
|
2
|
+
import { EditorContext } from "../document-context";
|
3
|
+
import { RenderContextType } from "../render-context";
|
4
|
+
import { DocumentRenderObject, ParagraphElement, TableCellRenderObject, TableRenderObject, TableRowRenderObject } from "../impl";
|
5
|
+
import { BlockContentRenderObject, BranchRenderObject } from "../render-define";
|
6
|
+
import { DynamicExecute } from "../code-interpreter/dynamic-execute";
|
7
|
+
import { ParagraphMeasure } from "./paragraph-arrange";
|
8
|
+
import { SelectionEffectObject } from "../element-props";
|
9
|
+
export declare class ArrangeManager {
|
10
|
+
docCtx: EditorContext;
|
11
|
+
renderCtx: RenderContextType;
|
12
|
+
seo: SelectionEffectObject;
|
13
|
+
options: ViewOptions;
|
14
|
+
execute: DynamicExecute;
|
15
|
+
pMeasure: ParagraphMeasure;
|
16
|
+
constructor(docCtx: EditorContext, renderCtx: RenderContextType, seo: SelectionEffectObject);
|
17
|
+
/**
|
18
|
+
* 测量排版过程
|
19
|
+
* 1.先测量排版页眉、页脚
|
20
|
+
* 2.根据页边距以及页眉、页脚测量的高度,获取"页体高度"
|
21
|
+
* 3.根据页体高度测量页体内容,并实时分页
|
22
|
+
* 3.1测量页体直接子内容
|
23
|
+
* 3.1.1页体直接子内容递归测量孙子元素
|
24
|
+
* 3.2完成页体子内容测量,并分页切分
|
25
|
+
*/
|
26
|
+
measureDoc(): Array<DocumentRenderObject>;
|
27
|
+
/**
|
28
|
+
* 重置文档测量的相关信息
|
29
|
+
* @param data
|
30
|
+
* @private
|
31
|
+
*/
|
32
|
+
private reset;
|
33
|
+
private arrangeDoc;
|
34
|
+
private arrangeDocs;
|
35
|
+
private createEmptyBodyRender;
|
36
|
+
private measureControl;
|
37
|
+
private processTableTextLineMode;
|
38
|
+
private getDocInnerRect;
|
39
|
+
/**
|
40
|
+
* 切割渲染元素
|
41
|
+
* @param render 被切割的对象
|
42
|
+
* @param limitHeight
|
43
|
+
* @returns
|
44
|
+
*/
|
45
|
+
cutRenderItem(render: BlockContentRenderObject, limitHeight: number): BlockContentRenderObject | null;
|
46
|
+
/**
|
47
|
+
* 切割渲染元素
|
48
|
+
* @param tbRender 被切割的对象
|
49
|
+
* @param limitHeight
|
50
|
+
* @returns
|
51
|
+
*/
|
52
|
+
cutTable(tbRender: TableRenderObject, limitHeight: number): BlockContentRenderObject | null;
|
53
|
+
cutRowRenderItem(render: TableRowRenderObject, limitHeight: number): TableRowRenderObject | null;
|
54
|
+
/**
|
55
|
+
* 修复->已经截断的合并单元格要向下移动到合适的位置
|
56
|
+
* @param cutTable
|
57
|
+
* @param aboveTable
|
58
|
+
* @returns
|
59
|
+
*/
|
60
|
+
private fixCutTable2;
|
61
|
+
/**
|
62
|
+
* 超找指定位置的单元格
|
63
|
+
* @param table
|
64
|
+
* @param x
|
65
|
+
* @returns
|
66
|
+
*/
|
67
|
+
private findAboveCellByPos;
|
68
|
+
/**
|
69
|
+
* 校验当前是否是一个完整的行,没有Null单元格,检查当前是否还需要向下合并
|
70
|
+
* @param row
|
71
|
+
*/
|
72
|
+
private checkFullRow;
|
73
|
+
private existsCellRender;
|
74
|
+
private getBlockLineHeight;
|
75
|
+
getRowInsertCellIndex(sourceCell: TableCellRenderObject, destRow: TableRowRenderObject): number;
|
76
|
+
private getHeaderRows;
|
77
|
+
/**
|
78
|
+
* 修改测量完毕后的元素状态
|
79
|
+
* @param ele
|
80
|
+
*/
|
81
|
+
setMeasureCompletedModifyFlag(ele: Element): void;
|
82
|
+
clearPaintCache(ele: Element, data: IBeginMeasureData): void;
|
83
|
+
identifyComment(ele: Element): void;
|
84
|
+
private cacheDoc;
|
85
|
+
cacheDocRenders(docs: Array<DocumentRenderObject>): void;
|
86
|
+
/**
|
87
|
+
* 生成批注区间信息
|
88
|
+
* @param renderTree
|
89
|
+
*/
|
90
|
+
generateCommRange(): void;
|
91
|
+
cacheRenders(renderTree: BranchRenderObject): void;
|
92
|
+
endMeasures(ele: Element): void;
|
93
|
+
createDefaultPara(): ParagraphElement;
|
94
|
+
patchParagraph(): boolean;
|
95
|
+
fastPatchReset(docRenders: Array<DocumentRenderObject>): void;
|
96
|
+
}
|
@@ -406,6 +406,8 @@ export declare class ElementUtil {
|
|
406
406
|
static removeEleAttribute(ele: Element, attr: string): void;
|
407
407
|
static getMatchItems(item: Element, predicate: (item: Element) => boolean): Element<any>[];
|
408
408
|
static isDataEle(ele: Element): boolean;
|
409
|
+
static getPaintRenders(ele: Element): Array<RenderObject>;
|
410
|
+
static iterateChildren(ele: BranchElement, cb: (ele: Element) => void): void;
|
409
411
|
}
|
410
412
|
/**
|
411
413
|
* 用于光标定位的信息
|
package/package.json
CHANGED
package/index-cjs.d.ts
DELETED
@@ -1,32 +0,0 @@
|
|
1
|
-
export * from './med_editor/doc-editor';
|
2
|
-
export * from './med_editor/framework/code-interpreter/ast-parser';
|
3
|
-
export * from './med_editor/framework/util/common-util';
|
4
|
-
export * from './med_editor/framework/document-change';
|
5
|
-
export * from './med_editor/framework/document-combine';
|
6
|
-
export * from './med_editor/framework/document-comment';
|
7
|
-
export * from './med_editor/framework/document-context';
|
8
|
-
export * from './med_editor/framework/code-interpreter/document-eval-func';
|
9
|
-
export * from './med_editor/framework/document-event';
|
10
|
-
export * from './med_editor/framework/document-input-cursor';
|
11
|
-
export * from './med_editor/framework/document-paginator';
|
12
|
-
export * from './med_editor/framework/print/document-print-offscreen';
|
13
|
-
export * from './med_editor/framework/util/document-segmenter';
|
14
|
-
export * from './med_editor/framework/selection/document-selection';
|
15
|
-
export * from './med_editor/framework/document-template';
|
16
|
-
export * from './med_editor/framework/document-textline-mode';
|
17
|
-
export * from './med_editor/framework/element-define';
|
18
|
-
export * from './med_editor/framework/element-event-define';
|
19
|
-
export * from './med_editor/framework/element-props';
|
20
|
-
export * from './med_editor/framework/element-reader';
|
21
|
-
export * from './med_editor/framework/element-serialize';
|
22
|
-
export * from './med_editor/framework/history/element-trace-tracking';
|
23
|
-
export * from './med_editor/framework/util/element-util';
|
24
|
-
export * from './med_editor/framework/infrastructure/notify';
|
25
|
-
export * from './med_editor/framework/selection/range-util';
|
26
|
-
export * from './med_editor/framework/render-context';
|
27
|
-
export * from './med_editor/framework/render-define';
|
28
|
-
export * from './med_editor/framework/selection/selection-overlays';
|
29
|
-
export * from './med_editor/framework/infrastructure/event-subject';
|
30
|
-
export * from './med_editor/framework/element-type-handler';
|
31
|
-
export * from './med_editor/framework/impl';
|
32
|
-
export * from './med_editor/framework/suggestions/input-suggestions';
|