@hailin-zheng/editor-core 2.2.8 → 2.2.9
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/editor.css +3 -0
- package/index-cjs.js +114 -73
- package/index-cjs.js.map +1 -1
- package/index.js +114 -73
- package/index.js.map +1 -1
- package/med_editor/framework/document-context.d.ts +6 -2
- package/med_editor/framework/element-define.d.ts +3 -1
- package/med_editor/framework/element-props.d.ts +1 -3
- package/med_editor/framework/impl/data-element/data-element-group-impl.d.ts +5 -2
- package/package.json +1 -1
package/editor.css
CHANGED
package/index-cjs.js
CHANGED
@@ -1537,12 +1537,19 @@ class BranchElement extends Element {
|
|
1537
1537
|
}
|
1538
1538
|
return len;
|
1539
1539
|
}
|
1540
|
-
treeFilter(predicate) {
|
1540
|
+
treeFilter(predicate, options) {
|
1541
|
+
if (!options) {
|
1542
|
+
options = { includeChildren: true };
|
1543
|
+
}
|
1541
1544
|
const items = [];
|
1542
1545
|
for (let i = 0; i < this.length; i++) {
|
1543
1546
|
const item = this.getChild(i);
|
1544
1547
|
if (predicate(item)) {
|
1545
1548
|
items.push(item);
|
1549
|
+
//已经匹配节点,不需要匹配当前元素的子节点
|
1550
|
+
if (!options.includeChildren) {
|
1551
|
+
continue;
|
1552
|
+
}
|
1546
1553
|
}
|
1547
1554
|
if (item instanceof BranchElement) {
|
1548
1555
|
items.push(...item.treeFilter(predicate));
|
@@ -2870,15 +2877,7 @@ class ValidateProps {
|
|
2870
2877
|
return clone;
|
2871
2878
|
}
|
2872
2879
|
}
|
2873
|
-
class DataElementGroupProps extends
|
2874
|
-
clone(dest) {
|
2875
|
-
const clone = dest ?? new DataElementGroupProps();
|
2876
|
-
super.cloneBaseProps(clone);
|
2877
|
-
}
|
2878
|
-
getSerializeProps(options) {
|
2879
|
-
const props = {};
|
2880
|
-
return this.getBaseProps(props, options);
|
2881
|
-
}
|
2880
|
+
class DataElementGroupProps extends DataEleBaseTextProps {
|
2882
2881
|
}
|
2883
2882
|
class DataElementBarcodeProps {
|
2884
2883
|
type = 'code128';
|
@@ -8647,7 +8646,62 @@ class DataElementDateFactory extends DataElementBaseFactory {
|
|
8647
8646
|
}
|
8648
8647
|
}
|
8649
8648
|
|
8650
|
-
class
|
8649
|
+
class BreakElement extends LeafElement {
|
8650
|
+
textProps;
|
8651
|
+
constructor() {
|
8652
|
+
super('br');
|
8653
|
+
this.textProps = new TextProps();
|
8654
|
+
this.textProps.fontSize = 14;
|
8655
|
+
this.textProps.fontName = '宋体';
|
8656
|
+
this.textProps.color = '#595959';
|
8657
|
+
}
|
8658
|
+
createRenderObject() {
|
8659
|
+
const symbol = new BreakRenderObject(this);
|
8660
|
+
symbol.rect.height = 14;
|
8661
|
+
symbol.rect.width = 7;
|
8662
|
+
return symbol;
|
8663
|
+
}
|
8664
|
+
serialize() {
|
8665
|
+
return {
|
8666
|
+
type: 'br',
|
8667
|
+
props: {}
|
8668
|
+
};
|
8669
|
+
}
|
8670
|
+
clone() {
|
8671
|
+
const clone = new BreakElement();
|
8672
|
+
cloneElementBase(this, clone);
|
8673
|
+
return clone;
|
8674
|
+
}
|
8675
|
+
}
|
8676
|
+
class BreakRenderObject extends LeafRenderObject {
|
8677
|
+
exportSVG(event) {
|
8678
|
+
if (!event.options.showEnterSymbol || event.mode === 'print') {
|
8679
|
+
return null;
|
8680
|
+
}
|
8681
|
+
return ElementUtil.createSvgText('↓', { 'dominant-baseline': 'hanging',
|
8682
|
+
'font-family': 'Courier',
|
8683
|
+
'font-size': this.rect.height,
|
8684
|
+
x: this.rect.x + 4,
|
8685
|
+
y: this.rect.y,
|
8686
|
+
fill: 'green' });
|
8687
|
+
}
|
8688
|
+
clone() {
|
8689
|
+
const render = new BreakRenderObject(this.element);
|
8690
|
+
render.rect = ElementUtil.cloneRect(this.rect);
|
8691
|
+
return render;
|
8692
|
+
}
|
8693
|
+
}
|
8694
|
+
class BreakFactory extends ElementFactory {
|
8695
|
+
match(type) {
|
8696
|
+
return type === 'br';
|
8697
|
+
}
|
8698
|
+
createElement(data) {
|
8699
|
+
const ele = new BreakElement();
|
8700
|
+
return ele;
|
8701
|
+
}
|
8702
|
+
}
|
8703
|
+
|
8704
|
+
class DataElementGroupElement extends DataElementInlineGroup {
|
8651
8705
|
constructor() {
|
8652
8706
|
super('data-group');
|
8653
8707
|
this.props = new DataElementGroupProps();
|
@@ -8660,6 +8714,38 @@ class DataElementGroupElement extends InlineGroupInputElement {
|
|
8660
8714
|
this.refreshView();
|
8661
8715
|
});
|
8662
8716
|
}
|
8717
|
+
setValue(val) {
|
8718
|
+
if (val === null || val === undefined) {
|
8719
|
+
val = '';
|
8720
|
+
}
|
8721
|
+
if (this.getValue() === val) {
|
8722
|
+
return;
|
8723
|
+
}
|
8724
|
+
this.pubOnChange('self');
|
8725
|
+
this.clearInnerItems();
|
8726
|
+
if (typeof val !== 'string') {
|
8727
|
+
val += '';
|
8728
|
+
}
|
8729
|
+
if (val) {
|
8730
|
+
const items = val.split('<br/>');
|
8731
|
+
if (items.length) {
|
8732
|
+
items.forEach((item, index) => {
|
8733
|
+
const valueText = new TextGroupElement();
|
8734
|
+
this.props.valueTextProps.clone(valueText.props);
|
8735
|
+
valueText.text = item + '';
|
8736
|
+
this.addChild(valueText, this.length - 1);
|
8737
|
+
if (index < items.length - 1) {
|
8738
|
+
const brElement = new BreakElement();
|
8739
|
+
this.addChild(brElement, this.length - 1);
|
8740
|
+
}
|
8741
|
+
});
|
8742
|
+
}
|
8743
|
+
}
|
8744
|
+
this.onChangedValidate();
|
8745
|
+
}
|
8746
|
+
getValue() {
|
8747
|
+
return ElementSerialize.serializeString(this, { all: false });
|
8748
|
+
}
|
8663
8749
|
clone(data) {
|
8664
8750
|
return super.cloneSelf(data, DataElementGroupElement);
|
8665
8751
|
}
|
@@ -8695,9 +8781,18 @@ class DataElementGroupFactory extends DataElementBaseFactory {
|
|
8695
8781
|
createElement(data) {
|
8696
8782
|
const props = data.props;
|
8697
8783
|
const ele = new DataElementGroupElement();
|
8698
|
-
|
8784
|
+
this.createDataEleProps(ele.props, props);
|
8699
8785
|
return ele;
|
8700
8786
|
}
|
8787
|
+
createDataEleProps(dest, props) {
|
8788
|
+
const dataEleProps = dest;
|
8789
|
+
ElementUtil.readEleBaseProps(dataEleProps, props);
|
8790
|
+
dataEleProps.nullText = props.nullText;
|
8791
|
+
dataEleProps.nullTextProps = ElementUtil.readTextProps(null, props.nullTextProps, this.options);
|
8792
|
+
dataEleProps.valueTextProps = ElementUtil.readTextProps(null, props.valueTextProps, this.options);
|
8793
|
+
dataEleProps.dataType = props.dataType;
|
8794
|
+
return dataEleProps;
|
8795
|
+
}
|
8701
8796
|
}
|
8702
8797
|
|
8703
8798
|
class DataElementImage extends DataElementLeaf {
|
@@ -8939,61 +9034,6 @@ class DataElementListFactory extends DataElementBaseFactory {
|
|
8939
9034
|
}
|
8940
9035
|
}
|
8941
9036
|
|
8942
|
-
class BreakElement extends LeafElement {
|
8943
|
-
textProps;
|
8944
|
-
constructor() {
|
8945
|
-
super('br');
|
8946
|
-
this.textProps = new TextProps();
|
8947
|
-
this.textProps.fontSize = 14;
|
8948
|
-
this.textProps.fontName = '宋体';
|
8949
|
-
this.textProps.color = '#595959';
|
8950
|
-
}
|
8951
|
-
createRenderObject() {
|
8952
|
-
const symbol = new BreakRenderObject(this);
|
8953
|
-
symbol.rect.height = 14;
|
8954
|
-
symbol.rect.width = 7;
|
8955
|
-
return symbol;
|
8956
|
-
}
|
8957
|
-
serialize() {
|
8958
|
-
return {
|
8959
|
-
type: 'br',
|
8960
|
-
props: {}
|
8961
|
-
};
|
8962
|
-
}
|
8963
|
-
clone() {
|
8964
|
-
const clone = new BreakElement();
|
8965
|
-
cloneElementBase(this, clone);
|
8966
|
-
return clone;
|
8967
|
-
}
|
8968
|
-
}
|
8969
|
-
class BreakRenderObject extends LeafRenderObject {
|
8970
|
-
exportSVG(event) {
|
8971
|
-
if (!event.options.showEnterSymbol || event.mode === 'print') {
|
8972
|
-
return null;
|
8973
|
-
}
|
8974
|
-
return ElementUtil.createSvgText('↓', { 'dominant-baseline': 'hanging',
|
8975
|
-
'font-family': 'Courier',
|
8976
|
-
'font-size': this.rect.height,
|
8977
|
-
x: this.rect.x + 4,
|
8978
|
-
y: this.rect.y,
|
8979
|
-
fill: 'green' });
|
8980
|
-
}
|
8981
|
-
clone() {
|
8982
|
-
const render = new BreakRenderObject(this.element);
|
8983
|
-
render.rect = ElementUtil.cloneRect(this.rect);
|
8984
|
-
return render;
|
8985
|
-
}
|
8986
|
-
}
|
8987
|
-
class BreakFactory extends ElementFactory {
|
8988
|
-
match(type) {
|
8989
|
-
return type === 'br';
|
8990
|
-
}
|
8991
|
-
createElement(data) {
|
8992
|
-
const ele = new BreakElement();
|
8993
|
-
return ele;
|
8994
|
-
}
|
8995
|
-
}
|
8996
|
-
|
8997
9037
|
class DataElementText extends DataElementInlineGroup {
|
8998
9038
|
//props: DataEleBaseTextProps;
|
8999
9039
|
constructor() {
|
@@ -13332,8 +13372,8 @@ class DocumentContext {
|
|
13332
13372
|
const dataEleList = this.ctx.treeFilter(item => validateDataEle(item));
|
13333
13373
|
return dataEleList.map(item => item.props.id);
|
13334
13374
|
}
|
13335
|
-
getControlInstanceList() {
|
13336
|
-
return this.ctx.treeFilter(item => validateDataEle(item));
|
13375
|
+
getControlInstanceList(options) {
|
13376
|
+
return this.ctx.treeFilter(item => validateDataEle(item), options);
|
13337
13377
|
}
|
13338
13378
|
getControlById(id) {
|
13339
13379
|
return this.ctx.treeFind(item => validateDataEle(item) && item['props']['id'] === id);
|
@@ -13356,8 +13396,9 @@ class DocumentContext {
|
|
13356
13396
|
* 获取数据元结构以及get\set闭包调用函数
|
13357
13397
|
* @returns
|
13358
13398
|
*/
|
13359
|
-
getDataElementModelList() {
|
13360
|
-
const dataEleList = this.ctx.treeFilter(item => validateDataEle(item)
|
13399
|
+
getDataElementModelList(options) {
|
13400
|
+
const dataEleList = this.ctx.treeFilter(item => validateDataEle(item), options);
|
13401
|
+
//数据元、数据组
|
13361
13402
|
const dataInlineGroups = dataEleList.filter(item => item instanceof DataElementInlineGroup);
|
13362
13403
|
const dataLeafs = dataEleList.filter(item => item instanceof DataElementLeaf);
|
13363
13404
|
//复选框数据元
|
@@ -13366,7 +13407,7 @@ class DocumentContext {
|
|
13366
13407
|
const dataOtherLeafValues = CommonUtil.removeUnionSet(dataLeafs, dataCheckList).map(item => ({
|
13367
13408
|
id: item.props.id,
|
13368
13409
|
name: item.props.name,
|
13369
|
-
fieldName: item.props.
|
13410
|
+
fieldName: item.props.fieldName,
|
13370
13411
|
item,
|
13371
13412
|
getValue: () => {
|
13372
13413
|
return item.getValue();
|
@@ -21943,7 +21984,7 @@ class DocEditor {
|
|
21943
21984
|
rule.setRuleOptions({ width: this.viewOptions.docPageSettings.width, pagePL, pagePR, docLeft });
|
21944
21985
|
}
|
21945
21986
|
version() {
|
21946
|
-
return "2.2.
|
21987
|
+
return "2.2.9";
|
21947
21988
|
}
|
21948
21989
|
switchPageHeaderEditor() {
|
21949
21990
|
this.docCtx.document.switchPageHeaderEditor(this.selectionState, null);
|