@hailin-zheng/editor-core 2.1.21 → 2.1.22
Sign up to get free protection for your applications and to get access to all the features.
- package/index-cjs.js +23 -9
- package/index-cjs.js.map +1 -1
- package/index.js +23 -9
- package/index.js.map +1 -1
- package/med_editor/framework/render-context.d.ts +2 -0
- package/package.json +1 -1
package/index-cjs.js
CHANGED
@@ -660,7 +660,6 @@ class CommonUtil {
|
|
660
660
|
static cloneValue(val) {
|
661
661
|
return CommonUtil.cloneDeep(val);
|
662
662
|
}
|
663
|
-
// @ts-ignore
|
664
663
|
static cloneDeep(source, visited = new WeakMap()) {
|
665
664
|
if (source === null || typeof source !== 'object') {
|
666
665
|
// 如果是基本类型或 null,则直接返回
|
@@ -4883,6 +4882,8 @@ class TextGroupRenderObject extends LeafRenderObject {
|
|
4883
4882
|
return;
|
4884
4883
|
}
|
4885
4884
|
const props = this.element.props;
|
4885
|
+
//基线位置到top的距离
|
4886
|
+
const actualFontBoundingBoxAscent = event.renderCtx.mainContext.getActualFontBoundingBoxAscent(props.getFont());
|
4886
4887
|
let { width, height } = this.rect;
|
4887
4888
|
let vertHeight = 0; //baseLine;
|
4888
4889
|
if (props.vertAlign === 'subscript') {
|
@@ -4901,10 +4902,11 @@ class TextGroupRenderObject extends LeafRenderObject {
|
|
4901
4902
|
return curr.actualSize + prev;
|
4902
4903
|
}, this.rect.x);
|
4903
4904
|
const x = arr.join(' ');
|
4904
|
-
|
4905
|
-
|
4906
|
-
|
4907
|
-
|
4905
|
+
let y = this.rect.y + vertHeight;
|
4906
|
+
//基线处理
|
4907
|
+
y += actualFontBoundingBoxAscent ?? 0;
|
4908
|
+
//行高处理
|
4909
|
+
y += (height - props.fontSize) / 2;
|
4908
4910
|
const t = {
|
4909
4911
|
sel: 'text',
|
4910
4912
|
text: text,
|
@@ -4912,8 +4914,6 @@ class TextGroupRenderObject extends LeafRenderObject {
|
|
4912
4914
|
ns: "http://www.w3.org/2000/svg",
|
4913
4915
|
attrs: {
|
4914
4916
|
//"transform": `translate(0,${(height - props.fontSize) / 2})`,
|
4915
|
-
"translate": { x: 0, y: (height - props.fontSize) / 2 },
|
4916
|
-
'dominant-baseline': 'hanging',
|
4917
4917
|
'font-family': this.element.props.fontName,
|
4918
4918
|
'font-size': fontSize,
|
4919
4919
|
x,
|
@@ -4921,6 +4921,9 @@ class TextGroupRenderObject extends LeafRenderObject {
|
|
4921
4921
|
}
|
4922
4922
|
},
|
4923
4923
|
};
|
4924
|
+
if (actualFontBoundingBoxAscent === undefined) {
|
4925
|
+
t.data.attrs['dominant-baseline'] = 'hanging';
|
4926
|
+
}
|
4924
4927
|
if (this.element.props.fontWeight !== 'normal') {
|
4925
4928
|
t.data.attrs['font-weight'] = this.element.props.fontWeight;
|
4926
4929
|
}
|
@@ -12868,7 +12871,18 @@ class PaintContent {
|
|
12868
12871
|
this.init();
|
12869
12872
|
}
|
12870
12873
|
init() {
|
12871
|
-
this.ctx.textBaseline = 'top';
|
12874
|
+
//this.ctx.textBaseline = 'top';
|
12875
|
+
}
|
12876
|
+
cacheFontBoundingBoxAscentMap = new Map();
|
12877
|
+
getActualFontBoundingBoxAscent(font) {
|
12878
|
+
if (this.cacheFontBoundingBoxAscentMap.has(font)) {
|
12879
|
+
return this.cacheFontBoundingBoxAscentMap.get(font);
|
12880
|
+
}
|
12881
|
+
this.ctx.font = font;
|
12882
|
+
const textMetrics = this.ctx.measureText('正');
|
12883
|
+
const value = textMetrics.actualBoundingBoxAscent;
|
12884
|
+
this.cacheFontBoundingBoxAscentMap.set(font, value);
|
12885
|
+
return value;
|
12872
12886
|
}
|
12873
12887
|
setGlobalAlpha(alpha) {
|
12874
12888
|
this.ctx.globalAlpha = alpha;
|
@@ -27835,7 +27849,7 @@ class DocEditor {
|
|
27835
27849
|
rule.setRuleOptions({ width: this.viewOptions.docPageSettings.width, pagePL, pagePR, docLeft });
|
27836
27850
|
}
|
27837
27851
|
version() {
|
27838
|
-
return "2.1.
|
27852
|
+
return "2.1.22";
|
27839
27853
|
}
|
27840
27854
|
switchPageHeaderEditor() {
|
27841
27855
|
this.docCtx.document.switchPageHeaderEditor(this.selectionState, null);
|