@hailin-zheng/editor-core 2.2.8 → 2.2.9
Sign up to get free protection for your applications and to get access to all the features.
- 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/index.js
CHANGED
@@ -1508,12 +1508,19 @@ class BranchElement extends Element {
|
|
1508
1508
|
}
|
1509
1509
|
return len;
|
1510
1510
|
}
|
1511
|
-
treeFilter(predicate) {
|
1511
|
+
treeFilter(predicate, options) {
|
1512
|
+
if (!options) {
|
1513
|
+
options = { includeChildren: true };
|
1514
|
+
}
|
1512
1515
|
const items = [];
|
1513
1516
|
for (let i = 0; i < this.length; i++) {
|
1514
1517
|
const item = this.getChild(i);
|
1515
1518
|
if (predicate(item)) {
|
1516
1519
|
items.push(item);
|
1520
|
+
//已经匹配节点,不需要匹配当前元素的子节点
|
1521
|
+
if (!options.includeChildren) {
|
1522
|
+
continue;
|
1523
|
+
}
|
1517
1524
|
}
|
1518
1525
|
if (item instanceof BranchElement) {
|
1519
1526
|
items.push(...item.treeFilter(predicate));
|
@@ -2841,15 +2848,7 @@ class ValidateProps {
|
|
2841
2848
|
return clone;
|
2842
2849
|
}
|
2843
2850
|
}
|
2844
|
-
class DataElementGroupProps extends
|
2845
|
-
clone(dest) {
|
2846
|
-
const clone = dest ?? new DataElementGroupProps();
|
2847
|
-
super.cloneBaseProps(clone);
|
2848
|
-
}
|
2849
|
-
getSerializeProps(options) {
|
2850
|
-
const props = {};
|
2851
|
-
return this.getBaseProps(props, options);
|
2852
|
-
}
|
2851
|
+
class DataElementGroupProps extends DataEleBaseTextProps {
|
2853
2852
|
}
|
2854
2853
|
class DataElementBarcodeProps {
|
2855
2854
|
type = 'code128';
|
@@ -8618,7 +8617,62 @@ class DataElementDateFactory extends DataElementBaseFactory {
|
|
8618
8617
|
}
|
8619
8618
|
}
|
8620
8619
|
|
8621
|
-
class
|
8620
|
+
class BreakElement extends LeafElement {
|
8621
|
+
textProps;
|
8622
|
+
constructor() {
|
8623
|
+
super('br');
|
8624
|
+
this.textProps = new TextProps();
|
8625
|
+
this.textProps.fontSize = 14;
|
8626
|
+
this.textProps.fontName = '宋体';
|
8627
|
+
this.textProps.color = '#595959';
|
8628
|
+
}
|
8629
|
+
createRenderObject() {
|
8630
|
+
const symbol = new BreakRenderObject(this);
|
8631
|
+
symbol.rect.height = 14;
|
8632
|
+
symbol.rect.width = 7;
|
8633
|
+
return symbol;
|
8634
|
+
}
|
8635
|
+
serialize() {
|
8636
|
+
return {
|
8637
|
+
type: 'br',
|
8638
|
+
props: {}
|
8639
|
+
};
|
8640
|
+
}
|
8641
|
+
clone() {
|
8642
|
+
const clone = new BreakElement();
|
8643
|
+
cloneElementBase(this, clone);
|
8644
|
+
return clone;
|
8645
|
+
}
|
8646
|
+
}
|
8647
|
+
class BreakRenderObject extends LeafRenderObject {
|
8648
|
+
exportSVG(event) {
|
8649
|
+
if (!event.options.showEnterSymbol || event.mode === 'print') {
|
8650
|
+
return null;
|
8651
|
+
}
|
8652
|
+
return ElementUtil.createSvgText('↓', { 'dominant-baseline': 'hanging',
|
8653
|
+
'font-family': 'Courier',
|
8654
|
+
'font-size': this.rect.height,
|
8655
|
+
x: this.rect.x + 4,
|
8656
|
+
y: this.rect.y,
|
8657
|
+
fill: 'green' });
|
8658
|
+
}
|
8659
|
+
clone() {
|
8660
|
+
const render = new BreakRenderObject(this.element);
|
8661
|
+
render.rect = ElementUtil.cloneRect(this.rect);
|
8662
|
+
return render;
|
8663
|
+
}
|
8664
|
+
}
|
8665
|
+
class BreakFactory extends ElementFactory {
|
8666
|
+
match(type) {
|
8667
|
+
return type === 'br';
|
8668
|
+
}
|
8669
|
+
createElement(data) {
|
8670
|
+
const ele = new BreakElement();
|
8671
|
+
return ele;
|
8672
|
+
}
|
8673
|
+
}
|
8674
|
+
|
8675
|
+
class DataElementGroupElement extends DataElementInlineGroup {
|
8622
8676
|
constructor() {
|
8623
8677
|
super('data-group');
|
8624
8678
|
this.props = new DataElementGroupProps();
|
@@ -8631,6 +8685,38 @@ class DataElementGroupElement extends InlineGroupInputElement {
|
|
8631
8685
|
this.refreshView();
|
8632
8686
|
});
|
8633
8687
|
}
|
8688
|
+
setValue(val) {
|
8689
|
+
if (val === null || val === undefined) {
|
8690
|
+
val = '';
|
8691
|
+
}
|
8692
|
+
if (this.getValue() === val) {
|
8693
|
+
return;
|
8694
|
+
}
|
8695
|
+
this.pubOnChange('self');
|
8696
|
+
this.clearInnerItems();
|
8697
|
+
if (typeof val !== 'string') {
|
8698
|
+
val += '';
|
8699
|
+
}
|
8700
|
+
if (val) {
|
8701
|
+
const items = val.split('<br/>');
|
8702
|
+
if (items.length) {
|
8703
|
+
items.forEach((item, index) => {
|
8704
|
+
const valueText = new TextGroupElement();
|
8705
|
+
this.props.valueTextProps.clone(valueText.props);
|
8706
|
+
valueText.text = item + '';
|
8707
|
+
this.addChild(valueText, this.length - 1);
|
8708
|
+
if (index < items.length - 1) {
|
8709
|
+
const brElement = new BreakElement();
|
8710
|
+
this.addChild(brElement, this.length - 1);
|
8711
|
+
}
|
8712
|
+
});
|
8713
|
+
}
|
8714
|
+
}
|
8715
|
+
this.onChangedValidate();
|
8716
|
+
}
|
8717
|
+
getValue() {
|
8718
|
+
return ElementSerialize.serializeString(this, { all: false });
|
8719
|
+
}
|
8634
8720
|
clone(data) {
|
8635
8721
|
return super.cloneSelf(data, DataElementGroupElement);
|
8636
8722
|
}
|
@@ -8666,9 +8752,18 @@ class DataElementGroupFactory extends DataElementBaseFactory {
|
|
8666
8752
|
createElement(data) {
|
8667
8753
|
const props = data.props;
|
8668
8754
|
const ele = new DataElementGroupElement();
|
8669
|
-
|
8755
|
+
this.createDataEleProps(ele.props, props);
|
8670
8756
|
return ele;
|
8671
8757
|
}
|
8758
|
+
createDataEleProps(dest, props) {
|
8759
|
+
const dataEleProps = dest;
|
8760
|
+
ElementUtil.readEleBaseProps(dataEleProps, props);
|
8761
|
+
dataEleProps.nullText = props.nullText;
|
8762
|
+
dataEleProps.nullTextProps = ElementUtil.readTextProps(null, props.nullTextProps, this.options);
|
8763
|
+
dataEleProps.valueTextProps = ElementUtil.readTextProps(null, props.valueTextProps, this.options);
|
8764
|
+
dataEleProps.dataType = props.dataType;
|
8765
|
+
return dataEleProps;
|
8766
|
+
}
|
8672
8767
|
}
|
8673
8768
|
|
8674
8769
|
class DataElementImage extends DataElementLeaf {
|
@@ -8910,61 +9005,6 @@ class DataElementListFactory extends DataElementBaseFactory {
|
|
8910
9005
|
}
|
8911
9006
|
}
|
8912
9007
|
|
8913
|
-
class BreakElement extends LeafElement {
|
8914
|
-
textProps;
|
8915
|
-
constructor() {
|
8916
|
-
super('br');
|
8917
|
-
this.textProps = new TextProps();
|
8918
|
-
this.textProps.fontSize = 14;
|
8919
|
-
this.textProps.fontName = '宋体';
|
8920
|
-
this.textProps.color = '#595959';
|
8921
|
-
}
|
8922
|
-
createRenderObject() {
|
8923
|
-
const symbol = new BreakRenderObject(this);
|
8924
|
-
symbol.rect.height = 14;
|
8925
|
-
symbol.rect.width = 7;
|
8926
|
-
return symbol;
|
8927
|
-
}
|
8928
|
-
serialize() {
|
8929
|
-
return {
|
8930
|
-
type: 'br',
|
8931
|
-
props: {}
|
8932
|
-
};
|
8933
|
-
}
|
8934
|
-
clone() {
|
8935
|
-
const clone = new BreakElement();
|
8936
|
-
cloneElementBase(this, clone);
|
8937
|
-
return clone;
|
8938
|
-
}
|
8939
|
-
}
|
8940
|
-
class BreakRenderObject extends LeafRenderObject {
|
8941
|
-
exportSVG(event) {
|
8942
|
-
if (!event.options.showEnterSymbol || event.mode === 'print') {
|
8943
|
-
return null;
|
8944
|
-
}
|
8945
|
-
return ElementUtil.createSvgText('↓', { 'dominant-baseline': 'hanging',
|
8946
|
-
'font-family': 'Courier',
|
8947
|
-
'font-size': this.rect.height,
|
8948
|
-
x: this.rect.x + 4,
|
8949
|
-
y: this.rect.y,
|
8950
|
-
fill: 'green' });
|
8951
|
-
}
|
8952
|
-
clone() {
|
8953
|
-
const render = new BreakRenderObject(this.element);
|
8954
|
-
render.rect = ElementUtil.cloneRect(this.rect);
|
8955
|
-
return render;
|
8956
|
-
}
|
8957
|
-
}
|
8958
|
-
class BreakFactory extends ElementFactory {
|
8959
|
-
match(type) {
|
8960
|
-
return type === 'br';
|
8961
|
-
}
|
8962
|
-
createElement(data) {
|
8963
|
-
const ele = new BreakElement();
|
8964
|
-
return ele;
|
8965
|
-
}
|
8966
|
-
}
|
8967
|
-
|
8968
9008
|
class DataElementText extends DataElementInlineGroup {
|
8969
9009
|
//props: DataEleBaseTextProps;
|
8970
9010
|
constructor() {
|
@@ -13303,8 +13343,8 @@ class DocumentContext {
|
|
13303
13343
|
const dataEleList = this.ctx.treeFilter(item => validateDataEle(item));
|
13304
13344
|
return dataEleList.map(item => item.props.id);
|
13305
13345
|
}
|
13306
|
-
getControlInstanceList() {
|
13307
|
-
return this.ctx.treeFilter(item => validateDataEle(item));
|
13346
|
+
getControlInstanceList(options) {
|
13347
|
+
return this.ctx.treeFilter(item => validateDataEle(item), options);
|
13308
13348
|
}
|
13309
13349
|
getControlById(id) {
|
13310
13350
|
return this.ctx.treeFind(item => validateDataEle(item) && item['props']['id'] === id);
|
@@ -13327,8 +13367,9 @@ class DocumentContext {
|
|
13327
13367
|
* 获取数据元结构以及get\set闭包调用函数
|
13328
13368
|
* @returns
|
13329
13369
|
*/
|
13330
|
-
getDataElementModelList() {
|
13331
|
-
const dataEleList = this.ctx.treeFilter(item => validateDataEle(item)
|
13370
|
+
getDataElementModelList(options) {
|
13371
|
+
const dataEleList = this.ctx.treeFilter(item => validateDataEle(item), options);
|
13372
|
+
//数据元、数据组
|
13332
13373
|
const dataInlineGroups = dataEleList.filter(item => item instanceof DataElementInlineGroup);
|
13333
13374
|
const dataLeafs = dataEleList.filter(item => item instanceof DataElementLeaf);
|
13334
13375
|
//复选框数据元
|
@@ -13337,7 +13378,7 @@ class DocumentContext {
|
|
13337
13378
|
const dataOtherLeafValues = CommonUtil.removeUnionSet(dataLeafs, dataCheckList).map(item => ({
|
13338
13379
|
id: item.props.id,
|
13339
13380
|
name: item.props.name,
|
13340
|
-
fieldName: item.props.
|
13381
|
+
fieldName: item.props.fieldName,
|
13341
13382
|
item,
|
13342
13383
|
getValue: () => {
|
13343
13384
|
return item.getValue();
|
@@ -21914,7 +21955,7 @@ class DocEditor {
|
|
21914
21955
|
rule.setRuleOptions({ width: this.viewOptions.docPageSettings.width, pagePL, pagePR, docLeft });
|
21915
21956
|
}
|
21916
21957
|
version() {
|
21917
|
-
return "2.2.
|
21958
|
+
return "2.2.9";
|
21918
21959
|
}
|
21919
21960
|
switchPageHeaderEditor() {
|
21920
21961
|
this.docCtx.document.switchPageHeaderEditor(this.selectionState, null);
|