table 6.9.3 → 6.9.5
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.
|
@@ -14,20 +14,28 @@ const getContainingRange = (rangeConfig, context) => {
|
|
|
14
14
|
const width = (0, calculateSpanningCellWidth_1.calculateSpanningCellWidth)(rangeConfig, context);
|
|
15
15
|
const wrappedContent = (0, alignSpanningCell_1.wrapRangeContent)(rangeConfig, width, context);
|
|
16
16
|
const alignedContent = (0, alignSpanningCell_1.alignVerticalRangeContent)(rangeConfig, wrappedContent, context);
|
|
17
|
-
|
|
17
|
+
/**
|
|
18
|
+
* Counts the horizontal borders drawn inside the spanning cell, from the one below its top row up to
|
|
19
|
+
* and including the given border; each of them takes up a line of the spanning cell content.
|
|
20
|
+
*/
|
|
21
|
+
const countDrawnHorizontalBorders = (lastBorderIndex) => {
|
|
18
22
|
const { topLeft } = rangeConfig;
|
|
19
23
|
const { drawHorizontalLine, rowHeights } = context;
|
|
20
|
-
|
|
21
|
-
const totalHiddenHorizontalBorderHeight = (0, utils_1.sequence)(topLeft.row + 1, rowIndex).filter((index) => {
|
|
24
|
+
return (0, utils_1.sequence)(topLeft.row + 1, lastBorderIndex).filter((index) => {
|
|
22
25
|
/* istanbul ignore next */
|
|
23
|
-
return
|
|
26
|
+
return drawHorizontalLine === null || drawHorizontalLine === void 0 ? void 0 : drawHorizontalLine(index, rowHeights.length);
|
|
24
27
|
}).length;
|
|
25
|
-
|
|
28
|
+
};
|
|
29
|
+
const getCellContent = (rowIndex) => {
|
|
30
|
+
const { topLeft } = rangeConfig;
|
|
31
|
+
const { rowHeights } = context;
|
|
32
|
+
const offset = (0, utils_1.sumArray)(rowHeights.slice(topLeft.row, rowIndex)) + countDrawnHorizontalBorders(rowIndex);
|
|
26
33
|
return alignedContent.slice(offset, offset + rowHeights[rowIndex]);
|
|
27
34
|
};
|
|
28
35
|
const getBorderContent = (borderIndex) => {
|
|
29
36
|
const { topLeft } = rangeConfig;
|
|
30
|
-
|
|
37
|
+
// The border being drawn is itself the next line, so only the borders above it count.
|
|
38
|
+
const offset = (0, utils_1.sumArray)(context.rowHeights.slice(topLeft.row, borderIndex)) + countDrawnHorizontalBorders(borderIndex - 1);
|
|
31
39
|
return alignedContent[offset];
|
|
32
40
|
};
|
|
33
41
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spanningCellManager.js","sourceRoot":"","sources":["../../src/spanningCellManager.ts"],"names":[],"mappings":";;;AAAA,2DAE6B;AAC7B,6EAEsC;AACtC,uDAE2B;AAa3B,mCAIiB;AAuBjB,MAAM,eAAe,GAAG,CAAC,IAAqB,EAAE,YAA2B,EAA2B,EAAE;IACtG,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,EAAE;QAC3C,OAAO,IAAA,qBAAa,EAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,WAAwB,EAAE,OAA4B,EAAmC,EAAE;IACrH,MAAM,KAAK,GAAG,IAAA,uDAA0B,EAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAE/D,MAAM,cAAc,GAAG,IAAA,oCAAgB,EAAC,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAErE,MAAM,cAAc,GAAG,IAAA,6CAAyB,EAAC,WAAW,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;IAEvF,MAAM,
|
|
1
|
+
{"version":3,"file":"spanningCellManager.js","sourceRoot":"","sources":["../../src/spanningCellManager.ts"],"names":[],"mappings":";;;AAAA,2DAE6B;AAC7B,6EAEsC;AACtC,uDAE2B;AAa3B,mCAIiB;AAuBjB,MAAM,eAAe,GAAG,CAAC,IAAqB,EAAE,YAA2B,EAA2B,EAAE;IACtG,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,EAAE;QAC3C,OAAO,IAAA,qBAAa,EAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,WAAwB,EAAE,OAA4B,EAAmC,EAAE;IACrH,MAAM,KAAK,GAAG,IAAA,uDAA0B,EAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAE/D,MAAM,cAAc,GAAG,IAAA,oCAAgB,EAAC,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAErE,MAAM,cAAc,GAAG,IAAA,6CAAyB,EAAC,WAAW,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;IAEvF;;;OAGG;IACH,MAAM,2BAA2B,GAAG,CAAC,eAAuB,EAAU,EAAE;QACtE,MAAM,EAAC,OAAO,EAAC,GAAG,WAAW,CAAC;QAC9B,MAAM,EAAC,kBAAkB,EAAE,UAAU,EAAC,GAAG,OAAO,CAAC;QAEjD,OAAO,IAAA,gBAAQ,EAAC,OAAO,CAAC,GAAG,GAAG,CAAC,EAAE,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;YACjE,0BAA0B;YAC1B,OAAO,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAG,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC,MAAM,CAAC;IACZ,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,CAAC,QAAgB,EAAE,EAAE;QAC1C,MAAM,EAAC,OAAO,EAAC,GAAG,WAAW,CAAC;QAC9B,MAAM,EAAC,UAAU,EAAC,GAAG,OAAO,CAAC;QAE7B,MAAM,MAAM,GAAG,IAAA,gBAAQ,EAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,GAAG,2BAA2B,CAAC,QAAQ,CAAC,CAAC;QAEzG,OAAO,cAAc,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;IACrE,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,CAAC,WAAmB,EAAE,EAAE;QAC/C,MAAM,EAAC,OAAO,EAAC,GAAG,WAAW,CAAC;QAE9B,sFAAsF;QACtF,MAAM,MAAM,GAAG,IAAA,gBAAQ,EAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,GAAG,2BAA2B,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;QAE3H,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC,CAAC;IAEF,OAAO;QACL,GAAG,WAAW;QACd,oBAAoB,EAAE,gBAAgB;QACtC,kBAAkB,EAAE,cAAc;QAClC,MAAM,EAAE,cAAc,CAAC,MAAM;QAC7B,KAAK;KACN,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,KAAsB,EAAE,KAAsB,EAAE,MAAqB,EAAW,EAAE;IACrG,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAE9C,IAAI,MAAM,IAAI,MAAM,EAAE;QACpB,OAAO,IAAA,oBAAY,EAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;KACrD;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,CAAC,KAAkB,EAAU,EAAE;IAC/C,MAAM,EAAC,GAAG,EAAE,GAAG,EAAC,GAAG,KAAK,CAAC,OAAO,CAAC;IAEjC,OAAO,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;AACzB,CAAC,CAAC;AAEK,MAAM,yBAAyB,GAAG,CAAC,UAAkC,EAAuB,EAAE;IACnG,MAAM,EAAC,mBAAmB,EAAE,aAAa,EAAC,GAAG,UAAU,CAAC;IACxD,MAAM,MAAM,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QAChD,OAAO,IAAA,iCAAe,EAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,MAAM,UAAU,GAAoD,EAAE,CAAC;IAEvE,IAAI,UAAU,GAAa,EAAE,CAAC;IAC9B,IAAI,eAAe,GAAa,EAAE,CAAC;IAEnC,OAAO,EAAC,kBAAkB,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;;YAC5C,MAAM,WAAW,GAAG,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,EAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;YAE3E,MAAM,KAAK,GAAG,eAAe,CAAC,EAAC,GAAG,IAAI;gBACpC,GAAG,EAAE,WAAW,EAAC,EAAE,MAAM,CAAC,CAAC;YAC7B,IAAI,CAAC,KAAK,EAAE;gBACV,OAAO,SAAS,CAAC;aAClB;YAED,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC3B,OAAO,kBAAkB,CAAC,KAAK,EAAE,EAAC,GAAG,UAAU;oBAC7C,UAAU,EAAC,CAAC,CAAC;aAChB;YAED,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;YAC9B,MAAA,UAAU,CAAC,IAAI,qCAAf,UAAU,CAAC,IAAI,IAAM,kBAAkB,CAAC,KAAK,EAAE,EAAC,GAAG,UAAU;gBAC3D,UAAU,EAAC,CAAC,EAAC;YAEf,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QACD,WAAW,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YAC5B,OAAO,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAC3C,CAAC;QACD,UAAU;QACV,eAAe;QACf,aAAa,EAAE,CAAC,WAAqB,EAAE,EAAE;YACvC,UAAU,GAAG,WAAW,CAAC;QAC3B,CAAC;QACD,kBAAkB,EAAE,CAAC,gBAA0B,EAAE,EAAE;YACjD,eAAe,GAAG,IAAA,eAAO,EAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;gBAC/D,OAAO,KAAK,CAAC,IAAI,CAAC,EAAC,MAAM,EAAE,MAAM,EAAC,EAAE,GAAG,EAAE;oBACvC,OAAO,KAAK,CAAC;gBACf,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC,CAAC;QACN,CAAC,EAAC,CAAC;AACL,CAAC,CAAC;AA9CW,QAAA,yBAAyB,6BA8CpC"}
|
|
@@ -5,14 +5,28 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.truncateTableData = exports.truncateString = void 0;
|
|
7
7
|
const lodash_truncate_1 = __importDefault(require("lodash.truncate"));
|
|
8
|
+
const slice_ansi_1 = __importDefault(require("slice-ansi"));
|
|
9
|
+
const strip_ansi_1 = __importDefault(require("strip-ansi"));
|
|
10
|
+
const utils_1 = require("./utils");
|
|
11
|
+
const omission = '…';
|
|
8
12
|
const truncateString = (input, length) => {
|
|
9
|
-
|
|
10
|
-
|
|
13
|
+
// Not even the escape codes and the text together exceed the length.
|
|
14
|
+
if (input.length <= length) {
|
|
15
|
+
return input;
|
|
16
|
+
}
|
|
17
|
+
// Truncate the visible text, so that ANSI escape codes do not count towards the length.
|
|
18
|
+
const visible = (0, strip_ansi_1.default)(input);
|
|
19
|
+
const truncated = (0, lodash_truncate_1.default)(visible, { length,
|
|
20
|
+
omission });
|
|
21
|
+
if (truncated === visible) {
|
|
22
|
+
return input;
|
|
23
|
+
}
|
|
24
|
+
// Cut the input after the same characters, which keeps its ANSI escape codes and closes any that
|
|
25
|
+
// are still open, so that styles do not leak past the cell.
|
|
26
|
+
const kept = truncated.slice(0, -omission.length);
|
|
27
|
+
return (0, slice_ansi_1.default)(input, 0, (0, utils_1.calculateSliceLength)(kept, Number.POSITIVE_INFINITY)) + omission;
|
|
11
28
|
};
|
|
12
29
|
exports.truncateString = truncateString;
|
|
13
|
-
/**
|
|
14
|
-
* @todo Make it work with ASCII content.
|
|
15
|
-
*/
|
|
16
30
|
const truncateTableData = (rows, truncates) => {
|
|
17
31
|
return rows.map((cells) => {
|
|
18
32
|
return cells.map((cell, cellIndex) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"truncateTableData.js","sourceRoot":"","sources":["../../src/truncateTableData.ts"],"names":[],"mappings":";;;;;;AAAA,sEAAuC;
|
|
1
|
+
{"version":3,"file":"truncateTableData.js","sourceRoot":"","sources":["../../src/truncateTableData.ts"],"names":[],"mappings":";;;;;;AAAA,sEAAuC;AACvC,4DAA+B;AAC/B,4DAAmC;AAInC,mCAEiB;AAEjB,MAAM,QAAQ,GAAG,GAAG,CAAC;AAEd,MAAM,cAAc,GAAG,CAAC,KAAa,EAAE,MAAc,EAAU,EAAE;IACtE,qEAAqE;IACrE,IAAI,KAAK,CAAC,MAAM,IAAI,MAAM,EAAE;QAC1B,OAAO,KAAK,CAAC;KACd;IAED,wFAAwF;IACxF,MAAM,OAAO,GAAG,IAAA,oBAAS,EAAC,KAAK,CAAC,CAAC;IACjC,MAAM,SAAS,GAAG,IAAA,yBAAQ,EAAC,OAAO,EAAE,EAAC,MAAM;QACzC,QAAQ,EAAC,CAAC,CAAC;IAEb,IAAI,SAAS,KAAK,OAAO,EAAE;QACzB,OAAO,KAAK,CAAC;KACd;IAED,iGAAiG;IACjG,4DAA4D;IAC5D,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAElD,OAAO,IAAA,oBAAK,EAAC,KAAK,EAAE,CAAC,EAAE,IAAA,4BAAoB,EAAC,IAAI,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAC,GAAG,QAAQ,CAAC;AAC1F,CAAC,CAAC;AApBW,QAAA,cAAc,kBAoBzB;AAEK,MAAM,iBAAiB,GAAG,CAAC,IAAW,EAAE,SAAmB,EAAS,EAAE;IAC3E,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACxB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE;YACnC,OAAO,IAAA,sBAAc,EAAC,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AANW,QAAA,iBAAiB,qBAM5B"}
|
package/package.json
CHANGED