@hailin-zheng/editor-core 2.2.26 → 2.2.27
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 +107 -17
- package/index-cjs.js.map +1 -1
- package/index.js +107 -18
- package/index.js.map +1 -1
- package/med_editor/doc-editor.d.ts +6 -0
- package/med_editor/framework/document-change.d.ts +13 -1
- package/med_editor/framework/element-props.d.ts +3 -2
- package/package.json +1 -1
package/index.js
CHANGED
@@ -2575,9 +2575,9 @@ class DataEleListProps extends DataEleBaseTextProps {
|
|
2575
2575
|
}
|
2576
2576
|
options = [];
|
2577
2577
|
/**
|
2578
|
-
*
|
2578
|
+
* 是否持久化选项到病历文件里面
|
2579
2579
|
*/
|
2580
|
-
|
2580
|
+
persistItems = true;
|
2581
2581
|
dropDownStyle;
|
2582
2582
|
/**
|
2583
2583
|
* 是否允许多选
|
@@ -2591,28 +2591,41 @@ class DataEleListProps extends DataEleBaseTextProps {
|
|
2591
2591
|
clone.dropDownStyle = this.dropDownStyle;
|
2592
2592
|
clone.multiSelect = this.multiSelect;
|
2593
2593
|
clone.displayField = this.displayField;
|
2594
|
+
clone.persistItems = this.persistItems;
|
2594
2595
|
return clone;
|
2595
2596
|
}
|
2596
2597
|
getSerializeProps(options) {
|
2597
2598
|
const props = {
|
2598
|
-
options: [...this.options],
|
2599
2599
|
multiSelect: this.multiSelect,
|
2600
2600
|
dropDownStyle: this.dropDownStyle,
|
2601
|
+
persistItems: this.persistItems,
|
2601
2602
|
};
|
2602
2603
|
if (this.displayField && this.displayField !== 'value') {
|
2603
2604
|
props['displayField'] = this.displayField;
|
2604
2605
|
}
|
2606
|
+
if (this.persistItems) {
|
2607
|
+
props.options = [...this.options];
|
2608
|
+
}
|
2605
2609
|
super.getBaseProps(props, options);
|
2606
2610
|
return props;
|
2607
2611
|
}
|
2608
2612
|
updateProps(props) {
|
2609
2613
|
super.updateProps(props);
|
2610
|
-
this
|
2611
|
-
this.multiSelect = props.multiSelect;
|
2612
|
-
this.dropDownStyle = props.dropDownStyle;
|
2613
|
-
this.displayField = props.displayField;
|
2614
|
+
updatePartialProps(this, props);
|
2614
2615
|
}
|
2615
2616
|
}
|
2617
|
+
function updatePartialProps(destProps, sourceProps) {
|
2618
|
+
const destPropsKeys = Object.keys(destProps);
|
2619
|
+
const sourcePropsKeys = Object.keys(sourceProps);
|
2620
|
+
sourcePropsKeys.forEach(key => {
|
2621
|
+
if (destPropsKeys.includes(key)) {
|
2622
|
+
if (destProps[key] === sourceProps[key]) {
|
2623
|
+
return;
|
2624
|
+
}
|
2625
|
+
destProps[key] = sourceProps[key];
|
2626
|
+
}
|
2627
|
+
});
|
2628
|
+
}
|
2616
2629
|
class CommContentProps extends INotifyPropertyChanged {
|
2617
2630
|
id;
|
2618
2631
|
createId;
|
@@ -9379,6 +9392,7 @@ class DataElementListFactory extends DataElementBaseFactory {
|
|
9379
9392
|
dataEleProps.options = [...options];
|
9380
9393
|
dataEleProps.dropDownStyle = props.dropDownStyle;
|
9381
9394
|
dataEleProps.displayField = props.displayField ?? 'value';
|
9395
|
+
dataEleProps.persistItems = props.persistItems ?? true;
|
9382
9396
|
return dataEleProps;
|
9383
9397
|
}
|
9384
9398
|
}
|
@@ -18624,18 +18638,45 @@ class DocumentChange {
|
|
18624
18638
|
*/
|
18625
18639
|
insertElement(targetElement, targetOffset, destEleArray) {
|
18626
18640
|
let lastEle;
|
18641
|
+
//创建文本元素并插入
|
18642
|
+
const insertNewText = (text, parent, index) => {
|
18643
|
+
const inputTextProps = this.getDefaultTextPropsByOptions();
|
18644
|
+
const newTextEle = ElementUtil.getNewTextGroup(inputTextProps);
|
18645
|
+
newTextEle.text = text;
|
18646
|
+
parent.addChild(newTextEle, index);
|
18647
|
+
};
|
18627
18648
|
if (targetElement instanceof TextGroupElement) {
|
18628
18649
|
const { leftElement, rightElement } = this.splitText(targetElement, targetOffset);
|
18629
18650
|
if (leftElement) {
|
18630
18651
|
for (let i = 0; i < destEleArray.length; i++) {
|
18631
18652
|
lastEle = destEleArray[i];
|
18632
|
-
|
18653
|
+
//判断是否可以插入元素
|
18654
|
+
if (this.canInsertElement(leftElement.parent, lastEle)) {
|
18655
|
+
leftElement.parent.addChild(lastEle, leftElement.getIndex() + 1 + i);
|
18656
|
+
}
|
18657
|
+
else {
|
18658
|
+
//序列化为纯文本
|
18659
|
+
const serializeString = ElementSerialize.serializeString(lastEle);
|
18660
|
+
if (serializeString) {
|
18661
|
+
insertNewText(serializeString, leftElement.parent, leftElement.getIndex() + 1 + i);
|
18662
|
+
}
|
18663
|
+
}
|
18633
18664
|
}
|
18634
18665
|
}
|
18635
18666
|
else if (rightElement) {
|
18636
18667
|
for (let i = 0; i < destEleArray.length; i++) {
|
18637
18668
|
lastEle = destEleArray[i];
|
18638
|
-
|
18669
|
+
//判断是否可以插入元素
|
18670
|
+
if (this.canInsertElement(rightElement.parent, lastEle)) {
|
18671
|
+
rightElement.parent.addChild(lastEle, rightElement.getIndex());
|
18672
|
+
}
|
18673
|
+
else {
|
18674
|
+
//序列化为纯文本
|
18675
|
+
const serializeString = ElementSerialize.serializeString(lastEle);
|
18676
|
+
if (serializeString) {
|
18677
|
+
insertNewText(serializeString, rightElement.parent, rightElement.getIndex());
|
18678
|
+
}
|
18679
|
+
}
|
18639
18680
|
}
|
18640
18681
|
}
|
18641
18682
|
}
|
@@ -18644,13 +18685,39 @@ class DocumentChange {
|
|
18644
18685
|
let insertTargetOffset = targetOffset;
|
18645
18686
|
for (let i = 0; i < destEleArray.length; i++) {
|
18646
18687
|
lastEle = destEleArray[i];
|
18647
|
-
|
18648
|
-
insertTarget
|
18649
|
-
|
18688
|
+
//判断是否可以插入元素
|
18689
|
+
if (this.canInsertElement(insertTarget.parent, lastEle)) {
|
18690
|
+
insertTarget.parent.addChild(lastEle, insertTarget.getIndex() + insertTargetOffset);
|
18691
|
+
insertTarget = lastEle;
|
18692
|
+
insertTargetOffset = 1;
|
18693
|
+
}
|
18650
18694
|
}
|
18651
18695
|
}
|
18652
18696
|
return lastEle;
|
18653
18697
|
}
|
18698
|
+
/**
|
18699
|
+
* 校验容器是否允许插入元素
|
18700
|
+
* @param container
|
18701
|
+
* @param ele
|
18702
|
+
* @returns
|
18703
|
+
*/
|
18704
|
+
canInsertElement(container, ele) {
|
18705
|
+
//是否为数据元
|
18706
|
+
const isDataEle = container instanceof DataElementInlineGroup;
|
18707
|
+
//数据元内部不能嵌套数据元
|
18708
|
+
if (isDataEle && ele instanceof DataElementInlineGroup) {
|
18709
|
+
return false;
|
18710
|
+
}
|
18711
|
+
//非布局元素不可以插入段落
|
18712
|
+
if (!(container instanceof BlockContainerElement) && ele instanceof BlockContentElement) {
|
18713
|
+
return false;
|
18714
|
+
}
|
18715
|
+
//段落内容内不能插入布局元素
|
18716
|
+
if (!(container instanceof BlockContentElement) && ele instanceof BlockContainerElement) {
|
18717
|
+
return false;
|
18718
|
+
}
|
18719
|
+
return true;
|
18720
|
+
}
|
18654
18721
|
/**
|
18655
18722
|
* 根据开始位置和结束位置,将字符切割成指定的区间
|
18656
18723
|
* @param text
|
@@ -18906,10 +18973,7 @@ class DocumentChange {
|
|
18906
18973
|
}
|
18907
18974
|
//表单模式:如果复制的是单格式的文本,需要序列化为纯文本处理
|
18908
18975
|
if (this.viewOptions.docMode === DocMode.FormEdit) {
|
18909
|
-
|
18910
|
-
if (pasteString) {
|
18911
|
-
this.pastePlainText(pasteString);
|
18912
|
-
}
|
18976
|
+
this.handlePasteInFormEditMode(pasteEles);
|
18913
18977
|
return;
|
18914
18978
|
}
|
18915
18979
|
//复制的内容为表格,且操作位于单元格内
|
@@ -18937,6 +19001,23 @@ class DocumentChange {
|
|
18937
19001
|
this.selectionState.resetRange(lastEle, -1);
|
18938
19002
|
}
|
18939
19003
|
}
|
19004
|
+
/**
|
19005
|
+
* 处理表单模式下的粘贴事件
|
19006
|
+
* @param data 要粘贴的元素
|
19007
|
+
*/
|
19008
|
+
handlePasteInFormEditMode(data) {
|
19009
|
+
// if (data.some(item => this.canInsertElement()))
|
19010
|
+
// const pasteString = data.map(item => ElementSerialize.serializeString(item)).join('');
|
19011
|
+
// if (pasteString) {
|
19012
|
+
// this.pastePlainText(pasteString);
|
19013
|
+
// }
|
19014
|
+
const { startControl, startOffset } = this.selectionState;
|
19015
|
+
const lastEle = this.insertElement(startControl, startOffset, data);
|
19016
|
+
this.selectionState.clear();
|
19017
|
+
if (lastEle && lastEle.parent) {
|
19018
|
+
this.selectionState.resetRange(lastEle, -1);
|
19019
|
+
}
|
19020
|
+
}
|
18940
19021
|
/**
|
18941
19022
|
* 复制单元格向另一个单元格粘贴
|
18942
19023
|
* @private
|
@@ -22013,6 +22094,14 @@ class DocEditor {
|
|
22013
22094
|
getDocSchema() {
|
22014
22095
|
return ElementSerialize.serialize(this.docCtx.document, this.viewOptions);
|
22015
22096
|
}
|
22097
|
+
/**
|
22098
|
+
* 获取元素模型
|
22099
|
+
* @param ele
|
22100
|
+
* @returns
|
22101
|
+
*/
|
22102
|
+
getEleSchemaJSON(ele) {
|
22103
|
+
return JSON.stringify(ElementSerialize.serialize(ele, this.viewOptions));
|
22104
|
+
}
|
22016
22105
|
getDocSchemaJSON() {
|
22017
22106
|
const res = JSON.stringify(this.getDocSchema());
|
22018
22107
|
return res;
|
@@ -23023,7 +23112,7 @@ class DocEditor {
|
|
23023
23112
|
rule.setRuleOptions({ width: this.viewOptions.docPageSettings.width, pagePL, pagePR, docLeft });
|
23024
23113
|
}
|
23025
23114
|
version() {
|
23026
|
-
return "2.2.
|
23115
|
+
return "2.2.27";
|
23027
23116
|
}
|
23028
23117
|
switchPageHeaderEditor() {
|
23029
23118
|
this.docCtx.document.switchPageHeaderEditor(this.selectionState, null);
|
@@ -28793,5 +28882,5 @@ function removeDuplicatesEvent(events) {
|
|
28793
28882
|
return arr;
|
28794
28883
|
}
|
28795
28884
|
|
28796
|
-
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, 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, validateDataEle, validateDataEleRenderObj, validateDataGroup, validateInlineInputRenderObj, watchChanged };
|
28885
|
+
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, 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, validateInlineInputRenderObj, watchChanged };
|
28797
28886
|
//# sourceMappingURL=index.js.map
|