@hailin-zheng/editor-core 2.1.21 → 2.1.23
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 +44 -14
- package/index-cjs.js.map +1 -1
- package/index.js +45 -15
- package/index.js.map +1 -1
- package/med_editor/framework/impl/table/table-row-impl.d.ts +1 -0
- package/med_editor/framework/render-context.d.ts +8 -0
- package/package.json +1 -1
package/index.js
CHANGED
@@ -631,7 +631,6 @@ class CommonUtil {
|
|
631
631
|
static cloneValue(val) {
|
632
632
|
return CommonUtil.cloneDeep(val);
|
633
633
|
}
|
634
|
-
// @ts-ignore
|
635
634
|
static cloneDeep(source, visited = new WeakMap()) {
|
636
635
|
if (source === null || typeof source !== 'object') {
|
637
636
|
// 如果是基本类型或 null,则直接返回
|
@@ -4650,7 +4649,9 @@ class TableRowElement extends BlockContainerElement {
|
|
4650
4649
|
}
|
4651
4650
|
}
|
4652
4651
|
createRenderObject() {
|
4653
|
-
|
4652
|
+
const rowRender = new TableRowRenderObject(this);
|
4653
|
+
rowRender.minHeight = this.props.minHeight;
|
4654
|
+
return rowRender;
|
4654
4655
|
}
|
4655
4656
|
serialize(viewOptions) {
|
4656
4657
|
return {
|
@@ -4683,10 +4684,13 @@ class TableRowRenderObject extends MuiltBlockLineRenderObject {
|
|
4683
4684
|
remeasureState = true;
|
4684
4685
|
//当前行是否存在合并单元格
|
4685
4686
|
hasMergeCells = undefined;
|
4687
|
+
//行最小高度,用于标记当前行临时的最小高度状态
|
4688
|
+
minHeight = -1;
|
4686
4689
|
clone() {
|
4687
4690
|
const cloneRender = new TableRowRenderObject(this.element);
|
4688
4691
|
cloneRender.remeasureState = this.remeasureState;
|
4689
4692
|
cloneRender.hasMergeCells = this.hasMergeCells;
|
4693
|
+
cloneRender.minHeight = this.minHeight;
|
4690
4694
|
cloneRender.rect = ElementUtil.cloneRect(this.rect);
|
4691
4695
|
for (let i = 0; i < this.length; i++) {
|
4692
4696
|
cloneRender.addChild(this.getChild(i).clone());
|
@@ -4854,6 +4858,8 @@ class TextGroupRenderObject extends LeafRenderObject {
|
|
4854
4858
|
return;
|
4855
4859
|
}
|
4856
4860
|
const props = this.element.props;
|
4861
|
+
//基线位置到top的距离
|
4862
|
+
const actualFontBoundingBoxAscent = event.renderCtx.mainContext.getActualFontBoundingBoxAscent(props.getFont());
|
4857
4863
|
let { width, height } = this.rect;
|
4858
4864
|
let vertHeight = 0; //baseLine;
|
4859
4865
|
if (props.vertAlign === 'subscript') {
|
@@ -4872,10 +4878,11 @@ class TextGroupRenderObject extends LeafRenderObject {
|
|
4872
4878
|
return curr.actualSize + prev;
|
4873
4879
|
}, this.rect.x);
|
4874
4880
|
const x = arr.join(' ');
|
4875
|
-
|
4876
|
-
|
4877
|
-
|
4878
|
-
|
4881
|
+
let y = this.rect.y + vertHeight;
|
4882
|
+
//基线处理
|
4883
|
+
y += actualFontBoundingBoxAscent ?? 0;
|
4884
|
+
//行高处理
|
4885
|
+
y += (height - props.fontSize) / 2;
|
4879
4886
|
const t = {
|
4880
4887
|
sel: 'text',
|
4881
4888
|
text: text,
|
@@ -4883,8 +4890,6 @@ class TextGroupRenderObject extends LeafRenderObject {
|
|
4883
4890
|
ns: "http://www.w3.org/2000/svg",
|
4884
4891
|
attrs: {
|
4885
4892
|
//"transform": `translate(0,${(height - props.fontSize) / 2})`,
|
4886
|
-
"translate": { x: 0, y: (height - props.fontSize) / 2 },
|
4887
|
-
'dominant-baseline': 'hanging',
|
4888
4893
|
'font-family': this.element.props.fontName,
|
4889
4894
|
'font-size': fontSize,
|
4890
4895
|
x,
|
@@ -4892,6 +4897,9 @@ class TextGroupRenderObject extends LeafRenderObject {
|
|
4892
4897
|
}
|
4893
4898
|
},
|
4894
4899
|
};
|
4900
|
+
if (actualFontBoundingBoxAscent === undefined) {
|
4901
|
+
t.data.attrs['dominant-baseline'] = 'hanging';
|
4902
|
+
}
|
4895
4903
|
if (this.element.props.fontWeight !== 'normal') {
|
4896
4904
|
t.data.attrs['font-weight'] = this.element.props.fontWeight;
|
4897
4905
|
}
|
@@ -11068,7 +11076,7 @@ class ElementUtil {
|
|
11068
11076
|
canvas.style.height = scaleHeight + 'px';
|
11069
11077
|
canvas.width = scaleWidth * dpr;
|
11070
11078
|
canvas.height = scaleHeight * dpr;
|
11071
|
-
ctx.textBaseline = 'top';
|
11079
|
+
//ctx.textBaseline = 'top';
|
11072
11080
|
ctx.scale(dpr, dpr);
|
11073
11081
|
}
|
11074
11082
|
// static setOffscreenCanvas(canvas: OffscreenCanvas, ctx: OffscreenCanvasRenderingContext2D, viewOptions: { width: number, height: number }, scale: number = 1): void {
|
@@ -11218,8 +11226,7 @@ class ElementUtil {
|
|
11218
11226
|
return innerRect.height;
|
11219
11227
|
}
|
11220
11228
|
static remeasureTableRow(rowRender, forceColIndex = -1) {
|
11221
|
-
|
11222
|
-
let maxCellHeight = rowEle.props.minHeight > 20 ? rowEle.props.minHeight : 20;
|
11229
|
+
let maxCellHeight = rowRender.minHeight > 20 ? rowRender.minHeight : 20;
|
11223
11230
|
//限制行最小高度
|
11224
11231
|
maxCellHeight = maxCellHeight < 20 ? 20 : maxCellHeight;
|
11225
11232
|
//获取行内非纵向合并单元格的最高单元格高度
|
@@ -12767,6 +12774,13 @@ class ElementUtil {
|
|
12767
12774
|
}
|
12768
12775
|
}
|
12769
12776
|
|
12777
|
+
var TextUnitsHolder;
|
12778
|
+
(function (TextUnitsHolder) {
|
12779
|
+
TextUnitsHolder[TextUnitsHolder["char"] = 0] = "char";
|
12780
|
+
TextUnitsHolder[TextUnitsHolder["sourceSize"] = 1] = "sourceSize";
|
12781
|
+
TextUnitsHolder[TextUnitsHolder["actualSize"] = 2] = "actualSize";
|
12782
|
+
TextUnitsHolder[TextUnitsHolder["actualBoundingBoxAscent"] = 3] = "actualBoundingBoxAscent";
|
12783
|
+
})(TextUnitsHolder || (TextUnitsHolder = {}));
|
12770
12784
|
class RenderContext {
|
12771
12785
|
mainContext;
|
12772
12786
|
contentContext;
|
@@ -12839,7 +12853,18 @@ class PaintContent {
|
|
12839
12853
|
this.init();
|
12840
12854
|
}
|
12841
12855
|
init() {
|
12842
|
-
this.ctx.textBaseline = 'top';
|
12856
|
+
//this.ctx.textBaseline = 'top';
|
12857
|
+
}
|
12858
|
+
cacheFontBoundingBoxAscentMap = new Map();
|
12859
|
+
getActualFontBoundingBoxAscent(font) {
|
12860
|
+
if (this.cacheFontBoundingBoxAscentMap.has(font)) {
|
12861
|
+
return this.cacheFontBoundingBoxAscentMap.get(font);
|
12862
|
+
}
|
12863
|
+
this.ctx.font = font;
|
12864
|
+
const textMetrics = this.ctx.measureText('正');
|
12865
|
+
const value = textMetrics.actualBoundingBoxAscent;
|
12866
|
+
this.cacheFontBoundingBoxAscentMap.set(font, value);
|
12867
|
+
return value;
|
12843
12868
|
}
|
12844
12869
|
setGlobalAlpha(alpha) {
|
12845
12870
|
this.ctx.globalAlpha = alpha;
|
@@ -14971,13 +14996,15 @@ class DocumentArrange {
|
|
14971
14996
|
let currRow = rows[j];
|
14972
14997
|
const cutRows = [];
|
14973
14998
|
while (currRow) {
|
14974
|
-
const minHeight = currRow.
|
14999
|
+
const minHeight = currRow.minHeight;
|
14975
15000
|
const rowContentHeight = this.getBlockLineHeight(currRow);
|
14976
15001
|
if (rowContentHeight + sumHeight > limitHeight) {
|
14977
15002
|
//行存在最小高度,且当前行内容的高度小于最小高度,且当前行跨页的情况下,不截断该行
|
14978
15003
|
if (minHeight > 0 && minHeight > rowContentHeight) {
|
14979
15004
|
break;
|
14980
15005
|
}
|
15006
|
+
//设定最小高度不生效
|
15007
|
+
currRow.minHeight = -1;
|
14981
15008
|
//限制的外框尺寸
|
14982
15009
|
const availHeight = limitHeight - sumHeight;
|
14983
15010
|
const limitRenderInnerHeight = ElementUtil.innerRectMaxHeight(tbRender, availHeight);
|
@@ -15028,6 +15055,9 @@ class DocumentArrange {
|
|
15028
15055
|
// }
|
15029
15056
|
render.remeasureState = true;
|
15030
15057
|
const cloneRowRender = render.element.createRenderObject();
|
15058
|
+
if (cloneRowRender.minHeight > 0 && render.minHeight <= 0) {
|
15059
|
+
cloneRowRender.minHeight = render.minHeight;
|
15060
|
+
}
|
15031
15061
|
cloneRowRender.rect.width = render.rect.width;
|
15032
15062
|
//cloneRowRender.rect.maxWidth = render.rect.height;
|
15033
15063
|
const cellRenders = [...render.getItems()];
|
@@ -27806,7 +27836,7 @@ class DocEditor {
|
|
27806
27836
|
rule.setRuleOptions({ width: this.viewOptions.docPageSettings.width, pagePL, pagePR, docLeft });
|
27807
27837
|
}
|
27808
27838
|
version() {
|
27809
|
-
return "2.1.
|
27839
|
+
return "2.1.23";
|
27810
27840
|
}
|
27811
27841
|
switchPageHeaderEditor() {
|
27812
27842
|
this.docCtx.document.switchPageHeaderEditor(this.selectionState, null);
|
@@ -28010,5 +28040,5 @@ function removeDuplicatesEvent(events) {
|
|
28010
28040
|
return arr;
|
28011
28041
|
}
|
28012
28042
|
|
28013
|
-
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, CommentsUtil, CommonUtil, CommsContainerElement, CommsContainerRenderObject, ContentMenuItem, ContextMenuElementEvent, CopyElementEvent, DOMEventSource, DOMSubscription, 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, DocMode, DocumentBodyElement, DocumentBodyFactory, DocumentBodyPartElement, DocumentBodyPartFactory, DocumentBodyPartRenderObject, DocumentBodyRenderObject, DocumentChange, DocumentCombine, DocumentComment, DocumentContainerRender, DocumentContext, DocumentCursor, DocumentElement, DocumentEvalFunc, DocumentEvent, DocumentFactory, DocumentFooterElement, DocumentFooterFactory, DocumentFooterRenderObject, DocumentHeaderElement, DocumentHeaderFactory, DocumentHeaderRenderObject, DocumentInput, DocumentPaint, DocumentPrintOffscreen, DocumentPrintOffscreenBase, DocumentProps, DocumentRenderObject, DocumentSelection, DocumentTemplate, DropElementEvent, EditMode, EditorContext, Element, ElementEvent, ElementFactory, ElementPaint, ElementReader, ElementSerialize, ElementUtil, EventBus, EventMap, EventSourceCore$1 as EventSourceCore, FillNullSpaceElement, FillNullSpaceRenderObject, GetTrackTipsEvent, GotCursorEvent, IDispose, INotifyPropertyChanged, InlineBlockContainer, InlineGroupElement, InlineGroupInputElement, InlineGroupRenderObject, InlineMuiltBlockLineRenderObject, InputElementEvent, IsInSideDataElement, IsInSideInlineGroupInputElement, KeyboradElementEvent, LeafElement, LeafRenderObject, LostCursorEvent, MarginProps, ModifyFlag$1 as ModifyFlag, MouseElementEvent, MousedownElementEvent, MuiltBlockLineRenderObject, 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, RunElementFactory, SVGElement, SVGFactory, SVGProps, SVGRenderObject, SelectionOverlays, SelectionRange, SelectionState, Subject$1 as Subject, SubjectSubscription$1 as SubjectSubscription, Subscription$1 as Subscription, TabElement, TabFactory, TabRenderObject, TableCellElement, TableCellFactory, TableCellProps, TableCellRenderObject, TableElement, TableFactory, TableProps, TableRenderObject, TableRowElement, TableRowFactory, TableRowProps, TableRowRenderObject, TableSplitCell, TableUtil, TextGroupElement, TextGroupFactory, TextGroupRenderObject, TextProps, TrackRunElement, TrackRunProps, TrackRunRenderObject, TrackRunTypeEnum, ValidateCondition, ValidateElement, ValidateProps, ValidateRenderObject, ViewOptions, addReturn, clearChildrenRenderCache, clearTraces, cloneChildren, cloneElementBase, createPrintTemplate, defaultParaHanging, deleteCurrentParagraph, docOpsMap, documentPrint, drawDecorator, elementTypeEventHandler, exportDecoratorHTML, falseChar, fontMapFunc, formatEle, fromEvent, generatePatch, getCalleeName, getFocusTextSegment, inputText, insertEle, invokeTypeHandler, isDate, logUpdateEleProps, objectToString$4 as objectToString, onTableContextmenu, onceTask, parser, printNodes, reactiveMap, removeEle, removeText, runTextLineRender, setChildrenModifyFlag, setDataElementProps, setNotifyChangedCallback, setTraceTrackingFlag, suppressTracking, targetMaps, textLineRenderMode, toRawType, toTypeString, trueChar, validateDataEle, validateDataEleRenderObj, validateInlineInputRenderObj, watchChanged };
|
28043
|
+
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, CommentsUtil, CommonUtil, CommsContainerElement, CommsContainerRenderObject, ContentMenuItem, ContextMenuElementEvent, CopyElementEvent, DOMEventSource, DOMSubscription, 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, DocMode, DocumentBodyElement, DocumentBodyFactory, DocumentBodyPartElement, DocumentBodyPartFactory, DocumentBodyPartRenderObject, DocumentBodyRenderObject, DocumentChange, DocumentCombine, DocumentComment, DocumentContainerRender, DocumentContext, DocumentCursor, DocumentElement, DocumentEvalFunc, DocumentEvent, DocumentFactory, DocumentFooterElement, DocumentFooterFactory, DocumentFooterRenderObject, DocumentHeaderElement, DocumentHeaderFactory, DocumentHeaderRenderObject, DocumentInput, DocumentPaint, DocumentPrintOffscreen, DocumentPrintOffscreenBase, DocumentProps, DocumentRenderObject, DocumentSelection, DocumentTemplate, DropElementEvent, EditMode, EditorContext, Element, ElementEvent, ElementFactory, ElementPaint, ElementReader, ElementSerialize, ElementUtil, EventBus, EventMap, EventSourceCore$1 as EventSourceCore, FillNullSpaceElement, FillNullSpaceRenderObject, GetTrackTipsEvent, GotCursorEvent, IDispose, INotifyPropertyChanged, InlineBlockContainer, InlineGroupElement, InlineGroupInputElement, InlineGroupRenderObject, InlineMuiltBlockLineRenderObject, InputElementEvent, IsInSideDataElement, IsInSideInlineGroupInputElement, KeyboradElementEvent, LeafElement, LeafRenderObject, LostCursorEvent, MarginProps, ModifyFlag$1 as ModifyFlag, MouseElementEvent, MousedownElementEvent, MuiltBlockLineRenderObject, 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, RunElementFactory, SVGElement, SVGFactory, SVGProps, SVGRenderObject, SelectionOverlays, SelectionRange, SelectionState, Subject$1 as Subject, SubjectSubscription$1 as SubjectSubscription, Subscription$1 as Subscription, 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, createPrintTemplate, defaultParaHanging, deleteCurrentParagraph, docOpsMap, documentPrint, drawDecorator, elementTypeEventHandler, exportDecoratorHTML, falseChar, fontMapFunc, formatEle, fromEvent, generatePatch, getCalleeName, getFocusTextSegment, inputText, insertEle, invokeTypeHandler, isDate, logUpdateEleProps, objectToString$4 as objectToString, onTableContextmenu, onceTask, parser, printNodes, reactiveMap, removeEle, removeText, runTextLineRender, setChildrenModifyFlag, setDataElementProps, setNotifyChangedCallback, setTraceTrackingFlag, suppressTracking, targetMaps, textLineRenderMode, toRawType, toTypeString, trueChar, validateDataEle, validateDataEleRenderObj, validateInlineInputRenderObj, watchChanged };
|
28014
28044
|
//# sourceMappingURL=index.js.map
|