@windoc/core 0.2.9 → 0.2.10
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/dist/index.d.mts +3 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +55 -23
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +55 -23
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -454,6 +454,8 @@ interface IRow {
|
|
|
454
454
|
listIndex?: number;
|
|
455
455
|
offsetX?: number;
|
|
456
456
|
offsetY?: number;
|
|
457
|
+
spaceAbove?: number;
|
|
458
|
+
spaceBelow?: number;
|
|
457
459
|
elementList: IRowElement[];
|
|
458
460
|
isWidthNotEnough?: boolean;
|
|
459
461
|
rowIndex: number;
|
|
@@ -2519,6 +2521,7 @@ declare class Draw {
|
|
|
2519
2521
|
getElementSize(el: IElement): number;
|
|
2520
2522
|
getElementRowMargin(el: IElement): number;
|
|
2521
2523
|
computeRowList(payload: IComputeRowListPayload): IRow[];
|
|
2524
|
+
private _applyRowSpacing;
|
|
2522
2525
|
private _computePageList;
|
|
2523
2526
|
private _drawHighlight;
|
|
2524
2527
|
drawRow(ctx: CanvasRenderingContext2D, payload: IDrawRowPayload): void;
|
package/dist/index.d.ts
CHANGED
|
@@ -454,6 +454,8 @@ interface IRow {
|
|
|
454
454
|
listIndex?: number;
|
|
455
455
|
offsetX?: number;
|
|
456
456
|
offsetY?: number;
|
|
457
|
+
spaceAbove?: number;
|
|
458
|
+
spaceBelow?: number;
|
|
457
459
|
elementList: IRowElement[];
|
|
458
460
|
isWidthNotEnough?: boolean;
|
|
459
461
|
rowIndex: number;
|
|
@@ -2519,6 +2521,7 @@ declare class Draw {
|
|
|
2519
2521
|
getElementSize(el: IElement): number;
|
|
2520
2522
|
getElementRowMargin(el: IElement): number;
|
|
2521
2523
|
computeRowList(payload: IComputeRowListPayload): IRow[];
|
|
2524
|
+
private _applyRowSpacing;
|
|
2522
2525
|
private _computePageList;
|
|
2523
2526
|
private _drawHighlight;
|
|
2524
2527
|
drawRow(ctx: CanvasRenderingContext2D, payload: IDrawRowPayload): void;
|
package/dist/index.js
CHANGED
|
@@ -145,6 +145,17 @@ var LETTER_CLASS = {
|
|
|
145
145
|
};
|
|
146
146
|
var METRICS_BASIS_TEXT = "M";
|
|
147
147
|
|
|
148
|
+
// src/dataset/enum/Title.ts
|
|
149
|
+
var TitleLevel = /* @__PURE__ */ ((TitleLevel2) => {
|
|
150
|
+
TitleLevel2["FIRST"] = "first";
|
|
151
|
+
TitleLevel2["SECOND"] = "second";
|
|
152
|
+
TitleLevel2["THIRD"] = "third";
|
|
153
|
+
TitleLevel2["FOURTH"] = "fourth";
|
|
154
|
+
TitleLevel2["FIFTH"] = "fifth";
|
|
155
|
+
TitleLevel2["SIXTH"] = "sixth";
|
|
156
|
+
return TitleLevel2;
|
|
157
|
+
})(TitleLevel || {});
|
|
158
|
+
|
|
148
159
|
// src/dataset/enum/Row.ts
|
|
149
160
|
var RowFlex = /* @__PURE__ */ ((RowFlex2) => {
|
|
150
161
|
RowFlex2["LEFT"] = "left";
|
|
@@ -3964,17 +3975,6 @@ var ulPresetCycles = {
|
|
|
3964
3975
|
var INDENT_PER_LEVEL = 20;
|
|
3965
3976
|
var MAX_LIST_LEVEL = 8;
|
|
3966
3977
|
|
|
3967
|
-
// src/dataset/enum/Title.ts
|
|
3968
|
-
var TitleLevel = /* @__PURE__ */ ((TitleLevel2) => {
|
|
3969
|
-
TitleLevel2["FIRST"] = "first";
|
|
3970
|
-
TitleLevel2["SECOND"] = "second";
|
|
3971
|
-
TitleLevel2["THIRD"] = "third";
|
|
3972
|
-
TitleLevel2["FOURTH"] = "fourth";
|
|
3973
|
-
TitleLevel2["FIFTH"] = "fifth";
|
|
3974
|
-
TitleLevel2["SIXTH"] = "sixth";
|
|
3975
|
-
return TitleLevel2;
|
|
3976
|
-
})(TitleLevel || {});
|
|
3977
|
-
|
|
3978
3978
|
// src/dataset/constant/Title.ts
|
|
3979
3979
|
var defaultTitleOption = {
|
|
3980
3980
|
defaultFirstSize: 20,
|
|
@@ -6515,11 +6515,13 @@ var Cursor = class {
|
|
|
6515
6515
|
const curIndex = cursorPosition.index;
|
|
6516
6516
|
const curElement = elementList[curIndex];
|
|
6517
6517
|
const nextElement = elementList[curIndex + 1];
|
|
6518
|
-
|
|
6518
|
+
const isNearImage = curElement && curElement.type === "image" /* IMAGE */ || nextElement && nextElement.type === "image" /* IMAGE */;
|
|
6519
|
+
const isNearSeparator = curElement && curElement.type === "separator" /* SEPARATOR */ || nextElement && nextElement.type === "separator" /* SEPARATOR */;
|
|
6520
|
+
if (isNearImage || isNearSeparator) {
|
|
6519
6521
|
const { defaultSize, defaultFont } = this.options;
|
|
6520
6522
|
const ctx = this.draw.getCtx();
|
|
6521
6523
|
ctx.save();
|
|
6522
|
-
ctx.font = `${defaultSize * scale}px ${defaultFont}`;
|
|
6524
|
+
ctx.font = `${defaultSize * (96 / 72) * scale}px ${defaultFont}`;
|
|
6523
6525
|
const textMetrics = ctx.measureText("M");
|
|
6524
6526
|
ctx.restore();
|
|
6525
6527
|
const textHeight = textMetrics.actualBoundingBoxAscent + textMetrics.actualBoundingBoxDescent;
|
|
@@ -6530,10 +6532,9 @@ var Cursor = class {
|
|
|
6530
6532
|
boundingBoxDescent: textMetrics.actualBoundingBoxDescent
|
|
6531
6533
|
};
|
|
6532
6534
|
}
|
|
6533
|
-
const descent = effectiveMetrics.boundingBoxDescent < 0 ? 0 : effectiveMetrics.boundingBoxDescent;
|
|
6534
6535
|
const cursorPadding = 2 * scale;
|
|
6535
|
-
const cursorHeight = effectiveMetrics.
|
|
6536
|
-
const cursorTop = leftTop[1] +
|
|
6536
|
+
const cursorHeight = effectiveMetrics.boundingBoxAscent + effectiveMetrics.boundingBoxDescent + cursorPadding;
|
|
6537
|
+
const cursorTop = isNearImage ? leftTop[1] + cursorPosition.lineHeight - effectiveMetrics.boundingBoxDescent - cursorPadding / 2 + preY : leftTop[1] + ascent - effectiveMetrics.boundingBoxAscent - cursorPadding / 2 + preY;
|
|
6537
6538
|
const cursorLeft = hitLineStartIndex ? leftTop[0] : rightTop[0];
|
|
6538
6539
|
agentCursorDom.style.left = `${cursorLeft}px`;
|
|
6539
6540
|
agentCursorDom.style.top = `${cursorTop}px`;
|
|
@@ -9310,7 +9311,7 @@ var Position = class {
|
|
|
9310
9311
|
}
|
|
9311
9312
|
}
|
|
9312
9313
|
x += curRow.offsetX || 0;
|
|
9313
|
-
y += curRow.offsetY || 0;
|
|
9314
|
+
y += (curRow.offsetY || 0) + (curRow.spaceAbove || 0);
|
|
9314
9315
|
const tablePreX = x;
|
|
9315
9316
|
const tablePreY = y;
|
|
9316
9317
|
for (let j = 0; j < curRow.elementList.length; j++) {
|
|
@@ -9423,7 +9424,7 @@ var Position = class {
|
|
|
9423
9424
|
}
|
|
9424
9425
|
}
|
|
9425
9426
|
x = startX;
|
|
9426
|
-
y += curRow.height;
|
|
9427
|
+
y += curRow.height + (curRow.spaceBelow || 0);
|
|
9427
9428
|
}
|
|
9428
9429
|
return { x, y, index };
|
|
9429
9430
|
}
|
|
@@ -21812,6 +21813,28 @@ var Draw = class {
|
|
|
21812
21813
|
}
|
|
21813
21814
|
return rowList;
|
|
21814
21815
|
}
|
|
21816
|
+
_applyRowSpacing() {
|
|
21817
|
+
const { scale } = this.options;
|
|
21818
|
+
const PT_TO_PX = 96 / 72;
|
|
21819
|
+
const HEADING_SPACE = {
|
|
21820
|
+
["first" /* FIRST */]: { above: 20, below: 6 },
|
|
21821
|
+
["second" /* SECOND */]: { above: 18, below: 6 },
|
|
21822
|
+
["third" /* THIRD */]: { above: 16, below: 4 },
|
|
21823
|
+
["fourth" /* FOURTH */]: { above: 14, below: 4 },
|
|
21824
|
+
["fifth" /* FIFTH */]: { above: 12, below: 4 },
|
|
21825
|
+
["sixth" /* SIXTH */]: { above: 12, below: 4 }
|
|
21826
|
+
};
|
|
21827
|
+
for (const row of this.rowList) {
|
|
21828
|
+
const headingEl = row.elementList.find((el) => el.level != null);
|
|
21829
|
+
if (headingEl?.level != null) {
|
|
21830
|
+
const space = HEADING_SPACE[headingEl.level];
|
|
21831
|
+
if (space) {
|
|
21832
|
+
row.spaceAbove = space.above * PT_TO_PX * scale;
|
|
21833
|
+
row.spaceBelow = space.below * PT_TO_PX * scale;
|
|
21834
|
+
}
|
|
21835
|
+
}
|
|
21836
|
+
}
|
|
21837
|
+
}
|
|
21815
21838
|
_computePageList() {
|
|
21816
21839
|
const pageRowList = [[]];
|
|
21817
21840
|
const {
|
|
@@ -21828,7 +21851,7 @@ var Draw = class {
|
|
|
21828
21851
|
this.rowList[i].columnNo = 0;
|
|
21829
21852
|
}
|
|
21830
21853
|
pageHeight += this.rowList.reduce(
|
|
21831
|
-
(pre, cur) => pre + cur.height + (cur.offsetY || 0),
|
|
21854
|
+
(pre, cur) => pre + cur.height + (cur.offsetY || 0) + (cur.spaceAbove || 0) + (cur.spaceBelow || 0),
|
|
21832
21855
|
0
|
|
21833
21856
|
);
|
|
21834
21857
|
const dpr = this.getPagePixelRatio();
|
|
@@ -21851,10 +21874,11 @@ var Draw = class {
|
|
|
21851
21874
|
const rowOffsetY = row.offsetY || 0;
|
|
21852
21875
|
const isPageBreak = this.rowList[i - 1]?.isPageBreak;
|
|
21853
21876
|
const isColumnBreak = this.rowList[i - 1]?.isColumnBreak;
|
|
21854
|
-
|
|
21877
|
+
const rowTotalHeight = row.height + rowOffsetY + (row.spaceAbove || 0) + (row.spaceBelow || 0);
|
|
21878
|
+
if (rowTotalHeight + pageHeight > height || isPageBreak || isColumnBreak) {
|
|
21855
21879
|
if ((!isPageBreak || isColumnBreak) && columnCount > 1 && columnNo < columnCount - 1) {
|
|
21856
21880
|
columnNo++;
|
|
21857
|
-
pageHeight = marginHeight +
|
|
21881
|
+
pageHeight = marginHeight + rowTotalHeight;
|
|
21858
21882
|
row.columnNo = columnNo;
|
|
21859
21883
|
pageRowList[pageNo].push(row);
|
|
21860
21884
|
} else {
|
|
@@ -21863,14 +21887,14 @@ var Draw = class {
|
|
|
21863
21887
|
break;
|
|
21864
21888
|
}
|
|
21865
21889
|
columnNo = 0;
|
|
21866
|
-
pageHeight = marginHeight +
|
|
21890
|
+
pageHeight = marginHeight + rowTotalHeight;
|
|
21867
21891
|
row.columnNo = columnNo;
|
|
21868
21892
|
pageRowList.push([row]);
|
|
21869
21893
|
pageNo++;
|
|
21870
21894
|
}
|
|
21871
21895
|
} else {
|
|
21872
21896
|
row.columnNo = columnNo;
|
|
21873
|
-
pageHeight +=
|
|
21897
|
+
pageHeight += rowTotalHeight;
|
|
21874
21898
|
pageRowList[pageNo].push(row);
|
|
21875
21899
|
}
|
|
21876
21900
|
}
|
|
@@ -22393,6 +22417,7 @@ var Draw = class {
|
|
|
22393
22417
|
surroundElementList,
|
|
22394
22418
|
elementList: this.elementList
|
|
22395
22419
|
});
|
|
22420
|
+
this._applyRowSpacing();
|
|
22396
22421
|
this.pageRowList = this._computePageList();
|
|
22397
22422
|
this.position.computePositionList();
|
|
22398
22423
|
this.area.compute();
|
|
@@ -23720,6 +23745,13 @@ var CommandAdapt = class {
|
|
|
23720
23745
|
]);
|
|
23721
23746
|
curIndex = startIndex;
|
|
23722
23747
|
}
|
|
23748
|
+
const afterSepIndex = curIndex + 2;
|
|
23749
|
+
if (elementList[afterSepIndex]?.value !== ZERO) {
|
|
23750
|
+
this.draw.spliceElementList(elementList, afterSepIndex, 0, [
|
|
23751
|
+
{ value: ZERO }
|
|
23752
|
+
]);
|
|
23753
|
+
}
|
|
23754
|
+
curIndex = afterSepIndex - 1;
|
|
23723
23755
|
}
|
|
23724
23756
|
this.range.setRange(curIndex, curIndex);
|
|
23725
23757
|
this.draw.render({ curIndex });
|