@hailin-zheng/editor-core 2.2.17 → 2.2.19
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 +175 -59
- package/index-cjs.js.map +1 -1
- package/index.js +174 -60
- package/index.js.map +1 -1
- package/med_editor/doc-editor.d.ts +8 -0
- package/med_editor/framework/document-change.d.ts +8 -0
- package/med_editor/framework/element-define.d.ts +7 -1
- package/med_editor/framework/impl/data-element/data-element-base-impl.d.ts +8 -1
- package/package.json +1 -1
package/index-cjs.js
CHANGED
@@ -1749,18 +1749,26 @@ class ViewOptions {
|
|
1749
1749
|
dataEleEmptyBgColor = '';
|
1750
1750
|
//数据元鼠标悬浮颜色
|
1751
1751
|
dataEleMouseEnterBgColor = '#d9d9d9';
|
1752
|
+
dataEleMouseEnterDecoratorMode = 'background';
|
1752
1753
|
//数据元只读背景颜色
|
1753
1754
|
dataEleReadOnlyBgColor = '#d9d9d9';
|
1754
1755
|
//数据元焦点背景颜色
|
1755
1756
|
dataEleFocusedBgColor = '#d9d9d9';
|
1757
|
+
dataEleFocusedDecoratorMode = 'background';
|
1756
1758
|
//数据元正常背景颜色
|
1757
1759
|
dataEleNormalBgColor = '#fafafa';
|
1760
|
+
//数据元外部框线颜色
|
1761
|
+
dataEleOutlineColor = '#0050b3';
|
1762
|
+
//数据组外部框线颜色
|
1763
|
+
dataGroupOutlineColor = '#0050b3';
|
1758
1764
|
//数据元错误背景颜色
|
1759
1765
|
dataEleErrorBgColor = '#ff4d4f';
|
1760
1766
|
//数据组修饰符号颜色
|
1761
1767
|
dataGroupDecoratorNormalColor = '#0050b3';
|
1762
1768
|
dataGroupDecoratorMouseEnterColor = '#0050b3';
|
1769
|
+
dataGroupMouseEnterDecoratorMode = 'outline';
|
1763
1770
|
dataGroupDecoratorFocusedColor = '#0050b3';
|
1771
|
+
dataGroupFocusedDecoratorMode = 'outline';
|
1764
1772
|
//数据组正常背景颜色
|
1765
1773
|
dataGroupNormalBgColor = '#fafafa';
|
1766
1774
|
//数据元没有输入值时背景颜色
|
@@ -1781,8 +1789,6 @@ class ViewOptions {
|
|
1781
1789
|
trackDelColor = '#000';
|
1782
1790
|
showLineRect;
|
1783
1791
|
showCharRect;
|
1784
|
-
//数据元交互修饰模式
|
1785
|
-
dataEleDecoratorMode = 'outline';
|
1786
1792
|
showTabChar;
|
1787
1793
|
showSpaceChar;
|
1788
1794
|
showLineBreak;
|
@@ -3759,7 +3765,7 @@ class DocumentRenderObject extends BlockContainerRenderObject {
|
|
3759
3765
|
},
|
3760
3766
|
},
|
3761
3767
|
children: [
|
3762
|
-
pageCorner, highlight, ...CommonUtil.toArray(event.getChildNodes(this)), pageNum,
|
3768
|
+
pageCorner, highlight, selection, ...CommonUtil.toArray(event.getChildNodes(this)), pageNum, copyright
|
3763
3769
|
]
|
3764
3770
|
};
|
3765
3771
|
}
|
@@ -4086,7 +4092,11 @@ class DataElementInlineGroup extends InlineGroupInputElement {
|
|
4086
4092
|
}
|
4087
4093
|
});
|
4088
4094
|
}
|
4089
|
-
this.parserExpress = {
|
4095
|
+
this.parserExpress = {
|
4096
|
+
compliedCode,
|
4097
|
+
func: new Function(`with(this){ ${compliedCode} }`),
|
4098
|
+
depItems: depEleMap
|
4099
|
+
};
|
4090
4100
|
}
|
4091
4101
|
catch (e) {
|
4092
4102
|
console.error('解析表达式出错,parseEleExpression', this.props.expression);
|
@@ -4203,6 +4213,7 @@ function exportDataEleDecoratorSVG$1(event, r) {
|
|
4203
4213
|
return;
|
4204
4214
|
}
|
4205
4215
|
const options = event.options;
|
4216
|
+
let mode = 'background';
|
4206
4217
|
let color = options.dataEleNormalBgColor;
|
4207
4218
|
//空数据元填充颜色
|
4208
4219
|
if (r.element.length === 2 && options.dataEleEmptyBgColor) {
|
@@ -4210,17 +4221,70 @@ function exportDataEleDecoratorSVG$1(event, r) {
|
|
4210
4221
|
}
|
4211
4222
|
if (r.element.isMouseenter && options.dataEleMouseEnterBgColor) {
|
4212
4223
|
color = options.dataEleMouseEnterBgColor;
|
4224
|
+
mode = options.dataEleMouseEnterDecoratorMode;
|
4213
4225
|
}
|
4214
4226
|
if (r.element.isFocused && options.dataEleFocusedBgColor) {
|
4215
4227
|
color = options.dataEleFocusedBgColor;
|
4228
|
+
mode = options.dataEleFocusedDecoratorMode;
|
4216
4229
|
}
|
4217
4230
|
if (!color) {
|
4218
4231
|
return;
|
4219
4232
|
}
|
4220
4233
|
//绘制背景
|
4221
|
-
|
4222
|
-
|
4223
|
-
|
4234
|
+
if (['all', 'background'].includes(mode)) {
|
4235
|
+
const bgX = event.relativePagePos.x;
|
4236
|
+
const bgY = event.relativePagePos.y + 1;
|
4237
|
+
//+1,-2,放置渲染元素边框被遮挡
|
4238
|
+
event.highlights.push(ElementUtil.getFillSvgRect(bgX, bgY, r.rect.width, r.rect.height - 2, color));
|
4239
|
+
}
|
4240
|
+
if (['all', 'outline'].includes(mode)) {
|
4241
|
+
color = event.options.dataEleOutlineColor;
|
4242
|
+
const verOffset = 0;
|
4243
|
+
const renderPosMap = getCurrentParaGroupRenders(r).map(item => ({ pos: getRenderPosToDoc(item), render: item }));
|
4244
|
+
if (renderPosMap.length > 1) {
|
4245
|
+
const secondGroupRenderPos = renderPosMap[1].pos;
|
4246
|
+
if (secondGroupRenderPos.x + renderPosMap[1].render.rect.width > event.relativePagePos.x) {
|
4247
|
+
const leftPoints = [];
|
4248
|
+
const rightPoints = [];
|
4249
|
+
for (let i = 0; i < renderPosMap.length; i++) {
|
4250
|
+
const groupRender = renderPosMap[i].render;
|
4251
|
+
const groupRenderPos = renderPosMap[i].pos;
|
4252
|
+
leftPoints.push({ x: groupRenderPos.x, y: groupRenderPos.y - verOffset });
|
4253
|
+
rightPoints.push({
|
4254
|
+
x: groupRenderPos.x + groupRender.rect.width,
|
4255
|
+
y: groupRenderPos.y - verOffset
|
4256
|
+
});
|
4257
|
+
leftPoints.push({
|
4258
|
+
x: groupRenderPos.x,
|
4259
|
+
y: groupRenderPos.y + groupRender.rect.height + verOffset * 2
|
4260
|
+
});
|
4261
|
+
rightPoints.push({
|
4262
|
+
x: groupRenderPos.x + groupRender.rect.width,
|
4263
|
+
y: groupRenderPos.y + groupRender.rect.height + verOffset * 2
|
4264
|
+
});
|
4265
|
+
}
|
4266
|
+
const sharpPoints1 = CommonUtil.resharpPoints(rightPoints);
|
4267
|
+
const sharpPoints = CommonUtil.resharpPoints([...leftPoints.reverse()]);
|
4268
|
+
const path = [...sharpPoints, ...sharpPoints1, sharpPoints[0]].map((item, index) => ((index === 0) ? 'M' : "L") + item.x + " " + item.y).join(" ");
|
4269
|
+
event.highlights.push(ElementUtil.createSvgPath({
|
4270
|
+
d: path,
|
4271
|
+
stroke: color,
|
4272
|
+
fill: 'none',
|
4273
|
+
'stroke-width': 1
|
4274
|
+
}));
|
4275
|
+
return;
|
4276
|
+
}
|
4277
|
+
}
|
4278
|
+
for (let i = 0; i < renderPosMap.length; i++) {
|
4279
|
+
const currRen = renderPosMap[i];
|
4280
|
+
event.highlights.push(ElementUtil.createSvgPath({
|
4281
|
+
d: `M${currRen.pos.x} ${currRen.pos.y} L${currRen.pos.x + currRen.render.rect.width} ${currRen.pos.y} L${currRen.pos.x + currRen.render.rect.width} ${currRen.pos.y + currRen.render.rect.height} L${currRen.pos.x} ${currRen.pos.y + currRen.render.rect.height} Z`,
|
4282
|
+
stroke: color,
|
4283
|
+
fill: 'none',
|
4284
|
+
'stroke-width': 1
|
4285
|
+
}));
|
4286
|
+
}
|
4287
|
+
}
|
4224
4288
|
// const canPaint = r.element.isMouseenter || r.element.isFocused;
|
4225
4289
|
// if (!canPaint) {
|
4226
4290
|
// return;
|
@@ -4235,51 +4299,6 @@ function exportDataEleDecoratorSVG$1(event, r) {
|
|
4235
4299
|
// event.highlights.push(ElementUtil.getFillSvgRect(bgX, bgY, r.rect.width, r.rect.height, color));
|
4236
4300
|
// return;
|
4237
4301
|
// } else if (mode === 'outline') {
|
4238
|
-
// const verOffset = 0;
|
4239
|
-
// const renderPosMap = getCurrentParaGroupRenders(r).map(item => ({ pos: getRenderPosToDoc(item), render: item }));
|
4240
|
-
// if (renderPosMap.length > 1) {
|
4241
|
-
// const secondGroupRenderPos = renderPosMap[1].pos;
|
4242
|
-
// if (secondGroupRenderPos.x + renderPosMap[1].render.rect.width > event.relativePagePos.x) {
|
4243
|
-
// const leftPoints: Array<Position> = [];
|
4244
|
-
// const rightPoints: Array<Position> = [];
|
4245
|
-
// for (let i = 0; i < renderPosMap.length; i++) {
|
4246
|
-
// const groupRender = renderPosMap[i].render;
|
4247
|
-
// const groupRenderPos = renderPosMap[i].pos;
|
4248
|
-
// leftPoints.push({ x: groupRenderPos.x, y: groupRenderPos.y - verOffset });
|
4249
|
-
// rightPoints.push({
|
4250
|
-
// x: groupRenderPos.x + groupRender.rect.width,
|
4251
|
-
// y: groupRenderPos.y - verOffset
|
4252
|
-
// });
|
4253
|
-
// leftPoints.push({
|
4254
|
-
// x: groupRenderPos.x,
|
4255
|
-
// y: groupRenderPos.y + groupRender.rect.height + verOffset * 2
|
4256
|
-
// });
|
4257
|
-
// rightPoints.push({
|
4258
|
-
// x: groupRenderPos.x + groupRender.rect.width,
|
4259
|
-
// y: groupRenderPos.y + groupRender.rect.height + verOffset * 2
|
4260
|
-
// });
|
4261
|
-
// }
|
4262
|
-
// const sharpPoints1 = CommonUtil.resharpPoints(rightPoints);
|
4263
|
-
// const sharpPoints = CommonUtil.resharpPoints([...leftPoints.reverse()]);
|
4264
|
-
// const path = [...sharpPoints, ...sharpPoints1, sharpPoints[0]].map((item, index) => ((index === 0) ? 'M' : "L") + item.x + " " + item.y).join(" ")
|
4265
|
-
// event.highlights.push(ElementUtil.createSvgPath({
|
4266
|
-
// d: path,
|
4267
|
-
// stroke: color,
|
4268
|
-
// fill: 'none',
|
4269
|
-
// 'stroke-width': 1
|
4270
|
-
// }));
|
4271
|
-
// return;
|
4272
|
-
// }
|
4273
|
-
// }
|
4274
|
-
// for (let i = 0; i < renderPosMap.length; i++) {
|
4275
|
-
// const currRen = renderPosMap[i];
|
4276
|
-
// event.highlights.push(ElementUtil.createSvgPath({
|
4277
|
-
// d: `M${currRen.pos.x} ${currRen.pos.y} L${currRen.pos.x + currRen.render.rect.width} ${currRen.pos.y} L${currRen.pos.x + currRen.render.rect.width} ${currRen.pos.y + currRen.render.rect.height} L${currRen.pos.x} ${currRen.pos.y + currRen.render.rect.height} Z`,
|
4278
|
-
// stroke: '#0050b3',
|
4279
|
-
// fill: 'none',
|
4280
|
-
// 'stroke-width': 1
|
4281
|
-
// }));
|
4282
|
-
// }
|
4283
4302
|
// }
|
4284
4303
|
}
|
4285
4304
|
/**
|
@@ -4386,6 +4405,30 @@ function renderUnderWavyLine(event, r, color) {
|
|
4386
4405
|
const path = ElementUtil.createSvgPath({ d, fill: 'none', stroke: color });
|
4387
4406
|
event.highlights.push(path);
|
4388
4407
|
}
|
4408
|
+
/**
|
4409
|
+
* 获取渲染元素相对稳当的位置
|
4410
|
+
* @param render
|
4411
|
+
* @param refPos
|
4412
|
+
*/
|
4413
|
+
function getRenderPosToDoc(render, refPos = null) {
|
4414
|
+
refPos = refPos ?? { x: 0, y: 0 };
|
4415
|
+
if (render instanceof DocumentRenderObject) {
|
4416
|
+
return refPos;
|
4417
|
+
}
|
4418
|
+
const currPos = { x: render.rect.x + refPos.x, y: render.rect.y + refPos.y };
|
4419
|
+
return getRenderPosToDoc(render.parent, currPos);
|
4420
|
+
}
|
4421
|
+
function getCurrentParaGroupRenders(r) {
|
4422
|
+
const renders = [];
|
4423
|
+
const currParaRender = ElementUtil.getParentRender(r, ParagraphRenderObject);
|
4424
|
+
for (let i = 0; i < r.element.paintRenders.length; i++) {
|
4425
|
+
const paraRender = ElementUtil.getParentRender(r.element.paintRenders[i], ParagraphRenderObject);
|
4426
|
+
if (paraRender === currParaRender) {
|
4427
|
+
renders.push(r.element.paintRenders[i]);
|
4428
|
+
}
|
4429
|
+
}
|
4430
|
+
return renders;
|
4431
|
+
}
|
4389
4432
|
function renderUnderline(event, render) {
|
4390
4433
|
const { x, y } = event.relativePagePos;
|
4391
4434
|
event.highlights.push({
|
@@ -8928,23 +8971,76 @@ function exportDataEleDecoratorSVG(event, r) {
|
|
8928
8971
|
}
|
8929
8972
|
const options = event.options;
|
8930
8973
|
let color = options.dataGroupNormalBgColor;
|
8974
|
+
let mode = 'background';
|
8931
8975
|
//空数据元填充颜色
|
8932
8976
|
if (r.element.length === 2 && options.dataGroupEmptyBgColor) {
|
8933
8977
|
color = options.dataGroupEmptyBgColor;
|
8934
8978
|
}
|
8935
8979
|
if (r.element.isMouseenter && options.dataGroupMouseEnterBgColor) {
|
8936
8980
|
color = options.dataGroupMouseEnterBgColor;
|
8981
|
+
mode = options.dataGroupMouseEnterDecoratorMode;
|
8937
8982
|
}
|
8938
8983
|
if (r.element.isFocused && options.dataGroupFocusedBgColor) {
|
8939
8984
|
color = options.dataGroupFocusedBgColor;
|
8985
|
+
mode = options.dataGroupFocusedDecoratorMode;
|
8940
8986
|
}
|
8941
8987
|
if (!color) {
|
8942
8988
|
return;
|
8943
8989
|
}
|
8944
8990
|
//绘制背景
|
8945
|
-
|
8946
|
-
|
8947
|
-
|
8991
|
+
if (['all', 'background'].includes(mode)) {
|
8992
|
+
const bgX = event.relativePagePos.x;
|
8993
|
+
const bgY = event.relativePagePos.y;
|
8994
|
+
event.highlights.push(ElementUtil.getFillSvgRect(bgX, bgY, r.rect.width, r.rect.height, color));
|
8995
|
+
}
|
8996
|
+
if (['all', 'outline'].includes(mode)) {
|
8997
|
+
color = event.options.dataGroupOutlineColor;
|
8998
|
+
const verOffset = 0;
|
8999
|
+
const renderPosMap = getCurrentParaGroupRenders(r).map(item => ({ pos: getRenderPosToDoc(item), render: item }));
|
9000
|
+
if (renderPosMap.length > 1) {
|
9001
|
+
const secondGroupRenderPos = renderPosMap[1].pos;
|
9002
|
+
if (secondGroupRenderPos.x + renderPosMap[1].render.rect.width > event.relativePagePos.x) {
|
9003
|
+
const leftPoints = [];
|
9004
|
+
const rightPoints = [];
|
9005
|
+
for (let i = 0; i < renderPosMap.length; i++) {
|
9006
|
+
const groupRender = renderPosMap[i].render;
|
9007
|
+
const groupRenderPos = renderPosMap[i].pos;
|
9008
|
+
leftPoints.push({ x: groupRenderPos.x, y: groupRenderPos.y - verOffset });
|
9009
|
+
rightPoints.push({
|
9010
|
+
x: groupRenderPos.x + groupRender.rect.width,
|
9011
|
+
y: groupRenderPos.y - verOffset
|
9012
|
+
});
|
9013
|
+
leftPoints.push({
|
9014
|
+
x: groupRenderPos.x,
|
9015
|
+
y: groupRenderPos.y + groupRender.rect.height + verOffset * 2
|
9016
|
+
});
|
9017
|
+
rightPoints.push({
|
9018
|
+
x: groupRenderPos.x + groupRender.rect.width,
|
9019
|
+
y: groupRenderPos.y + groupRender.rect.height + verOffset * 2
|
9020
|
+
});
|
9021
|
+
}
|
9022
|
+
const sharpPoints1 = CommonUtil.resharpPoints(rightPoints);
|
9023
|
+
const sharpPoints = CommonUtil.resharpPoints([...leftPoints.reverse()]);
|
9024
|
+
const path = [...sharpPoints, ...sharpPoints1, sharpPoints[0]].map((item, index) => ((index === 0) ? 'M' : "L") + item.x + " " + item.y).join(" ");
|
9025
|
+
event.highlights.push(ElementUtil.createSvgPath({
|
9026
|
+
d: path,
|
9027
|
+
stroke: color,
|
9028
|
+
fill: 'none',
|
9029
|
+
'stroke-width': 1
|
9030
|
+
}));
|
9031
|
+
return;
|
9032
|
+
}
|
9033
|
+
}
|
9034
|
+
for (let i = 0; i < renderPosMap.length; i++) {
|
9035
|
+
const currRen = renderPosMap[i];
|
9036
|
+
event.highlights.push(ElementUtil.createSvgPath({
|
9037
|
+
d: `M${currRen.pos.x} ${currRen.pos.y} L${currRen.pos.x + currRen.render.rect.width} ${currRen.pos.y} L${currRen.pos.x + currRen.render.rect.width} ${currRen.pos.y + currRen.render.rect.height} L${currRen.pos.x} ${currRen.pos.y + currRen.render.rect.height} Z`,
|
9038
|
+
stroke: color,
|
9039
|
+
fill: 'none',
|
9040
|
+
'stroke-width': 1
|
9041
|
+
}));
|
9042
|
+
}
|
9043
|
+
}
|
8948
9044
|
}
|
8949
9045
|
|
8950
9046
|
class DataElementImage extends DataElementLeaf {
|
@@ -14257,6 +14353,11 @@ class ParagraphMeasure {
|
|
14257
14353
|
parent: parentLine,
|
14258
14354
|
isCloseToBody: parentLine.isCloseToBody,
|
14259
14355
|
applyNewLine() {
|
14356
|
+
//申请新行前,需要将当前内联元素的宽度扩充到可用最大宽度
|
14357
|
+
const space = parentLine.limitWidth - parentLine.lineWidth();
|
14358
|
+
if (space > 0) {
|
14359
|
+
render.rect.width += space;
|
14360
|
+
}
|
14260
14361
|
parentLine.applyNewLine();
|
14261
14362
|
render = ele.createRenderObject({ options, renderCtx, execute });
|
14262
14363
|
parentLine.add(render);
|
@@ -18492,6 +18593,13 @@ class DocumentChange {
|
|
18492
18593
|
}
|
18493
18594
|
let pasteText = evt.clipboardData?.getData('text/plain') ?? '';
|
18494
18595
|
const pasteData = evt.clipboardData?.getData('doc/plain') ?? '';
|
18596
|
+
this.onInsertContent({ text: pasteText, doc: pasteData });
|
18597
|
+
}
|
18598
|
+
/**
|
18599
|
+
* 在光标处插入内容
|
18600
|
+
* @param data
|
18601
|
+
*/
|
18602
|
+
onInsertContent(data) {
|
18495
18603
|
const { collapsed } = this.selectionState;
|
18496
18604
|
if (!collapsed) {
|
18497
18605
|
//TODO:如果一个容器内的元素被全部删除,则返回 null
|
@@ -18500,12 +18608,12 @@ class DocumentChange {
|
|
18500
18608
|
// startOffset = cursorOffset;
|
18501
18609
|
this.onRangeDelete();
|
18502
18610
|
const cb = () => {
|
18503
|
-
this.handlePasteContent({ text:
|
18611
|
+
this.handlePasteContent({ text: data.text, doc: data.doc }, this.selectionState);
|
18504
18612
|
};
|
18505
18613
|
this.docCtx.onNextView(cb);
|
18506
18614
|
return;
|
18507
18615
|
}
|
18508
|
-
this.handlePasteContent({ text:
|
18616
|
+
this.handlePasteContent({ text: data.text, doc: data.doc }, this.selectionState);
|
18509
18617
|
}
|
18510
18618
|
/**
|
18511
18619
|
* 处理粘贴的内容
|
@@ -19752,7 +19860,6 @@ class DocumentSvg {
|
|
19752
19860
|
fill: item.color ?? this.viewOptions.selectionColor,
|
19753
19861
|
'paint-order': 'stroke fill markers',
|
19754
19862
|
d: `M${item.x} ${item.y} L${item.x + item.width} ${item.y} L${item.x + item.width} ${item.y + item.height} L${item.x} ${item.y + item.height} Z`,
|
19755
|
-
'fill-opacity': '0.5'
|
19756
19863
|
}
|
19757
19864
|
}
|
19758
19865
|
}));
|
@@ -22374,7 +22481,7 @@ class DocEditor {
|
|
22374
22481
|
rule.setRuleOptions({ width: this.viewOptions.docPageSettings.width, pagePL, pagePR, docLeft });
|
22375
22482
|
}
|
22376
22483
|
version() {
|
22377
|
-
return "2.2.
|
22484
|
+
return "2.2.19";
|
22378
22485
|
}
|
22379
22486
|
switchPageHeaderEditor() {
|
22380
22487
|
this.docCtx.document.switchPageHeaderEditor(this.selectionState, null);
|
@@ -22721,6 +22828,13 @@ class DocEditor {
|
|
22721
22828
|
removeEleAttribute(ele, attr) {
|
22722
22829
|
ElementUtil.removeEleAttribute(ele, attr);
|
22723
22830
|
}
|
22831
|
+
/**
|
22832
|
+
* 在光标处插入内容
|
22833
|
+
* @param data
|
22834
|
+
*/
|
22835
|
+
onInsertContent(data) {
|
22836
|
+
this.documentChange.onInsertContent(data);
|
22837
|
+
}
|
22724
22838
|
}
|
22725
22839
|
|
22726
22840
|
/**
|
@@ -28366,7 +28480,9 @@ exports.formatEle = formatEle;
|
|
28366
28480
|
exports.fromEvent = fromEvent;
|
28367
28481
|
exports.generatePatch = generatePatch;
|
28368
28482
|
exports.getCalleeName = getCalleeName;
|
28483
|
+
exports.getCurrentParaGroupRenders = getCurrentParaGroupRenders;
|
28369
28484
|
exports.getFocusTextSegment = getFocusTextSegment;
|
28485
|
+
exports.getRenderPosToDoc = getRenderPosToDoc;
|
28370
28486
|
exports.inputText = inputText;
|
28371
28487
|
exports.insertEle = insertEle;
|
28372
28488
|
exports.invokeTypeHandler = invokeTypeHandler;
|