@hailin-zheng/editor-core 2.2.9 → 2.2.10
Sign up to get free protection for your applications and to get access to all the features.
- package/index-cjs.js +63 -20
- package/index-cjs.js.map +1 -1
- package/index.js +63 -21
- package/index.js.map +1 -1
- package/med_editor/doc-editor.d.ts +1 -1
- package/med_editor/framework/document-change.d.ts +1 -1
- package/med_editor/framework/impl/data-element/data-element-group-impl.d.ts +9 -3
- package/med_editor/framework/util/element-util.d.ts +7 -0
- package/package.json +2 -2
package/index-cjs.js
CHANGED
@@ -8701,7 +8701,7 @@ class BreakFactory extends ElementFactory {
|
|
8701
8701
|
}
|
8702
8702
|
}
|
8703
8703
|
|
8704
|
-
class DataElementGroupElement extends
|
8704
|
+
class DataElementGroupElement extends InlineGroupInputElement {
|
8705
8705
|
constructor() {
|
8706
8706
|
super('data-group');
|
8707
8707
|
this.props = new DataElementGroupProps();
|
@@ -8741,7 +8741,6 @@ class DataElementGroupElement extends DataElementInlineGroup {
|
|
8741
8741
|
});
|
8742
8742
|
}
|
8743
8743
|
}
|
8744
|
-
this.onChangedValidate();
|
8745
8744
|
}
|
8746
8745
|
getValue() {
|
8747
8746
|
return ElementSerialize.serializeString(this, { all: false });
|
@@ -8793,6 +8792,21 @@ class DataElementGroupFactory extends DataElementBaseFactory {
|
|
8793
8792
|
dataEleProps.dataType = props.dataType;
|
8794
8793
|
return dataEleProps;
|
8795
8794
|
}
|
8795
|
+
}
|
8796
|
+
/**
|
8797
|
+
* 是否在数据组内部
|
8798
|
+
* @param control
|
8799
|
+
* @param offset
|
8800
|
+
*/
|
8801
|
+
function IsInSideDataGroup(control, offset) {
|
8802
|
+
const mathEle = ElementUtil.getParent(control, (item) => item instanceof DataElementGroupElement);
|
8803
|
+
if (mathEle) {
|
8804
|
+
if ((control === mathEle.startDecorate && offset === 0) || (control === mathEle.endDecorate && offset === 1)) {
|
8805
|
+
return false;
|
8806
|
+
}
|
8807
|
+
return true;
|
8808
|
+
}
|
8809
|
+
return false;
|
8796
8810
|
}
|
8797
8811
|
|
8798
8812
|
class DataElementImage extends DataElementLeaf {
|
@@ -12525,6 +12539,14 @@ class ElementUtil {
|
|
12525
12539
|
static getDataElement(ele) {
|
12526
12540
|
return this.getParent(ele, item => item instanceof DataElementInlineGroup);
|
12527
12541
|
}
|
12542
|
+
/**
|
12543
|
+
* 向上查找类型为数据元的父级
|
12544
|
+
* @param ele
|
12545
|
+
* @returns
|
12546
|
+
*/
|
12547
|
+
static getDataGroupElement(ele) {
|
12548
|
+
return this.getParent(ele, item => item instanceof DataElementGroupElement);
|
12549
|
+
}
|
12528
12550
|
static getOSPlatform() {
|
12529
12551
|
const userAgent = navigator.userAgent;
|
12530
12552
|
if (userAgent.indexOf('Windows') > -1) {
|
@@ -12673,23 +12695,35 @@ class ElementUtil {
|
|
12673
12695
|
if (startControl.paintRenders.length === 0) {
|
12674
12696
|
return false;
|
12675
12697
|
}
|
12698
|
+
if (!ElementUtil.verifyHitable(startControl)) {
|
12699
|
+
return false;
|
12700
|
+
}
|
12676
12701
|
if (viewOptions.docMode === exports.DocMode.Design) {
|
12677
12702
|
return true;
|
12678
12703
|
}
|
12679
|
-
|
12704
|
+
//表单模式下
|
12680
12705
|
if (viewOptions.docMode === exports.DocMode.FormEdit) {
|
12681
|
-
|
12682
|
-
|
12706
|
+
//如果光标在数据元素中,判断是否可编辑
|
12707
|
+
if (IsInSideDataElement(startControl, startOffset)) {
|
12708
|
+
const dataEle = ElementUtil.getDataElement(startControl);
|
12709
|
+
//数据元不可编辑
|
12710
|
+
if (dataEle && !dataEle.props.editable) {
|
12711
|
+
return false;
|
12712
|
+
}
|
12713
|
+
return true;
|
12683
12714
|
}
|
12684
|
-
|
12685
|
-
|
12686
|
-
|
12687
|
-
|
12688
|
-
|
12689
|
-
|
12690
|
-
|
12691
|
-
|
12692
|
-
|
12715
|
+
else {
|
12716
|
+
//不在数据元中,需要判断是否在数据组中
|
12717
|
+
if (IsInSideDataGroup(startControl, startOffset)) {
|
12718
|
+
const dataGroup = ElementUtil.getDataGroupElement(startControl);
|
12719
|
+
//数据元不可编辑
|
12720
|
+
if (dataGroup && !dataGroup.props.editable) {
|
12721
|
+
return false;
|
12722
|
+
}
|
12723
|
+
}
|
12724
|
+
else {
|
12725
|
+
return false;
|
12726
|
+
}
|
12693
12727
|
}
|
12694
12728
|
}
|
12695
12729
|
return true;
|
@@ -17531,8 +17565,12 @@ class DocumentChange {
|
|
17531
17565
|
* @private
|
17532
17566
|
*/
|
17533
17567
|
canDeleteInlineGroup(dataEle) {
|
17568
|
+
//当前编辑模式为表单模式,单独的数据元不可删除
|
17569
|
+
//存在于数据组内的数据元可以删除
|
17534
17570
|
if (this.viewOptions.docMode === exports.DocMode.FormEdit) {
|
17535
|
-
|
17571
|
+
if (dataEle.parent.type !== 'data-group') {
|
17572
|
+
return false;
|
17573
|
+
}
|
17536
17574
|
}
|
17537
17575
|
return dataEle.length === 2;
|
17538
17576
|
}
|
@@ -18462,9 +18500,13 @@ class DocumentChange {
|
|
18462
18500
|
}
|
18463
18501
|
getCursorElementByDeleteAction(control) {
|
18464
18502
|
if (this.viewOptions.docMode === exports.DocMode.FormEdit) {
|
18465
|
-
|
18503
|
+
//是否属于数据元或者数据组区域
|
18504
|
+
const isInDataAre = (ele) => {
|
18505
|
+
return ele.parent instanceof DataElementInlineGroup || ele.parent instanceof DataElementGroupElement;
|
18506
|
+
};
|
18507
|
+
if (isInDataAre(control)) {
|
18466
18508
|
const prevLeafElementInPara = ElementUtil.getRecursionPrevSiblingElement(control, true, true, this.viewOptions);
|
18467
|
-
if (prevLeafElementInPara &&
|
18509
|
+
if (prevLeafElementInPara && isInDataAre(prevLeafElementInPara)) {
|
18468
18510
|
return {
|
18469
18511
|
ele: prevLeafElementInPara,
|
18470
18512
|
offset: ElementUtil.getElementEndOffset(prevLeafElementInPara)
|
@@ -18472,7 +18514,7 @@ class DocumentChange {
|
|
18472
18514
|
}
|
18473
18515
|
else {
|
18474
18516
|
return {
|
18475
|
-
ele: control.parent.startDecorate,
|
18517
|
+
ele: (control.parent).startDecorate,
|
18476
18518
|
offset: 1
|
18477
18519
|
};
|
18478
18520
|
}
|
@@ -20945,7 +20987,7 @@ class DocEditor {
|
|
20945
20987
|
this.onDblClickEvent.next(evt);
|
20946
20988
|
}
|
20947
20989
|
/**
|
20948
|
-
*
|
20990
|
+
* 获取当前光标所在的数据元或者数据组
|
20949
20991
|
* @returns
|
20950
20992
|
*/
|
20951
20993
|
getCurrentDataElement() {
|
@@ -21984,7 +22026,7 @@ class DocEditor {
|
|
21984
22026
|
rule.setRuleOptions({ width: this.viewOptions.docPageSettings.width, pagePL, pagePR, docLeft });
|
21985
22027
|
}
|
21986
22028
|
version() {
|
21987
|
-
return "2.2.
|
22029
|
+
return "2.2.10";
|
21988
22030
|
}
|
21989
22031
|
switchPageHeaderEditor() {
|
21990
22032
|
this.docCtx.document.switchPageHeaderEditor(this.selectionState, null);
|
@@ -27839,6 +27881,7 @@ exports.InlineGroupRenderObject = InlineGroupRenderObject;
|
|
27839
27881
|
exports.InlineMuiltBlockLineRenderObject = InlineMuiltBlockLineRenderObject;
|
27840
27882
|
exports.InputElementEvent = InputElementEvent;
|
27841
27883
|
exports.IsInSideDataElement = IsInSideDataElement;
|
27884
|
+
exports.IsInSideDataGroup = IsInSideDataGroup;
|
27842
27885
|
exports.IsInSideInlineGroupInputElement = IsInSideInlineGroupInputElement;
|
27843
27886
|
exports.KeyboradElementEvent = KeyboradElementEvent;
|
27844
27887
|
exports.LeafElement = LeafElement;
|