@rowsncolumns/grid 13.2.36 → 13.2.38
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/cjs/helpers.d.ts +47 -1
- package/dist/cjs/helpers.d.ts.map +1 -1
- package/dist/cjs/helpers.js +66 -4
- package/dist/esm/helpers.d.ts +47 -1
- package/dist/esm/helpers.d.ts.map +1 -1
- package/dist/esm/helpers.js +51 -2
- package/package.json +1 -1
package/dist/cjs/helpers.d.ts
CHANGED
|
@@ -245,9 +245,55 @@ export declare const clearFontLineMetricsCache: () => void;
|
|
|
245
245
|
* `FONT_LINE_LEADING * scale`; when the context cannot report font metrics
|
|
246
246
|
* (jsdom, node-canvas, older engines) or under `fixed`, the box is
|
|
247
247
|
* `fontSize * DEFAULT_LINE_HEIGHT_RATIO` with no leading — the pre-#1141
|
|
248
|
-
* line box. A block of `n` lines is `
|
|
248
|
+
* line box. A block of `n` lines is `getTextBlockHeight(n, metrics)` tall.
|
|
249
249
|
*/
|
|
250
250
|
export declare const getFontLineMetrics: (font: FontLineMetricsFont, mode?: LineHeightMode, scale?: number, context?: MeasureContext | null) => FontLineMetrics;
|
|
251
|
+
/**
|
|
252
|
+
* Inner padding of a cell's Konva `Text` node, in CSS pixels on every side
|
|
253
|
+
* at any zoom. The sizer wraps at the width it leaves (`getTextWrapWidth`)
|
|
254
|
+
* and fits a row to the block it holds (`getTextBlockHeight`).
|
|
255
|
+
*/
|
|
256
|
+
export declare const CELL_TEXT_PADDING = 2;
|
|
257
|
+
/**
|
|
258
|
+
* Height of a block of `lineCount` lines of text: one line box per line, the
|
|
259
|
+
* leading only between lines. The sizer fits a row to `getFittedTextHeight`
|
|
260
|
+
* of this block and the painter shows every line of it (#1182).
|
|
261
|
+
*/
|
|
262
|
+
export declare const getTextBlockHeight: (lineCount: number, { box, leading }: Pick<FontLineMetrics, "box" | "leading">) => number;
|
|
263
|
+
/**
|
|
264
|
+
* Height of the row that holds a block of text `blockHeight` tall
|
|
265
|
+
* (`getTextBlockHeight`): the block plus one leading, half above the first
|
|
266
|
+
* line and half below the last. The leading is the only vertical spacing —
|
|
267
|
+
* that is Excel's row for `n` lines of a font, `n * (box + 2)`, and so its
|
|
268
|
+
* default row height for one line (Calibri 11 → 18 + 2 = 20px), and it is
|
|
269
|
+
* exactly Konva's text block of `n` lines (`n * advance`), which the painter
|
|
270
|
+
* shows whole in a row this tall (`getTextNodeBounds`). Padding on top of
|
|
271
|
+
* the leading grew every single-line row of the default font past the
|
|
272
|
+
* default row height (#1199).
|
|
273
|
+
*/
|
|
274
|
+
export declare const getFittedTextHeight: (blockHeight: number, leading: number) => number;
|
|
275
|
+
/**
|
|
276
|
+
* Width a cell's text wraps at: the cell minus `padding` on both sides,
|
|
277
|
+
* which is where Konva `Text` breaks its lines. The sizer wraps at the same
|
|
278
|
+
* width or it fits a row for a line the painter never paints (#1182).
|
|
279
|
+
* `width` is in painted pixels (zoom applied); the padding is not scaled.
|
|
280
|
+
*/
|
|
281
|
+
export declare const getTextWrapWidth: (width: number, padding?: number) => number;
|
|
282
|
+
/**
|
|
283
|
+
* Bounds of the Konva `Text` node that shows exactly the lines the sizer
|
|
284
|
+
* fitted a cell `height` tall at `y` (`getFittedTextHeight`). Konva stacks
|
|
285
|
+
* lines `advance` apart with each glyph box centred in its advance, and it
|
|
286
|
+
* keeps a line only while `lines * advance <= height - 2 * padding`; the
|
|
287
|
+
* fitted row is `lines * advance` exactly, so the node is grown by the
|
|
288
|
+
* padding on both sides and its padding box is the cell itself (#1182,
|
|
289
|
+
* #1199). The glyph block then sits half a leading from the cell's top or
|
|
290
|
+
* bottom edge when aligned there, as Excel paints it; `padding` still
|
|
291
|
+
* insets the text horizontally (`getTextWrapWidth`).
|
|
292
|
+
*/
|
|
293
|
+
export declare const getTextNodeBounds: (y: number, height: number, padding?: number) => {
|
|
294
|
+
y: number;
|
|
295
|
+
height: number;
|
|
296
|
+
};
|
|
251
297
|
/**
|
|
252
298
|
* Simple Canvas element to measure text size
|
|
253
299
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../helpers.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../helpers.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/helpers.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
exports.getPreviousCellInDirection = exports.getDevicePixelRatio = exports.useCallbackRef = exports.useIsomorphicLayoutEffect = exports.getScrollIncrement = exports.isArrowKey = exports.castToString = exports.findNextCellInDataRegion = void 0;
|
|
3
|
+
exports.isNull = exports.autoSizerCanvas = exports.AutoSizerCanvas = exports.getTextNodeBounds = exports.getTextWrapWidth = exports.getFittedTextHeight = exports.getTextBlockHeight = exports.CELL_TEXT_PADDING = exports.getFontLineMetrics = exports.clearFontLineMetricsCache = exports.toCanvasFont = exports.FONT_LINE_LEADING = exports.DEFAULT_LINE_HEIGHT_RATIO = exports.toCssFontFamily = exports.getOwnerWindow = exports.getOwnerDocument = exports.canUseDOM = exports.cellToArea = exports.cellRangeToBounds = exports.extendAreaToMergedCells = exports.isAreasEqual = exports.areaInsideArea = exports.areaIntersects = exports.findNextCellWithinBounds = exports.prepareClipboardData = exports.numberToAlphabet = exports.clampCellCoords = exports.newSelectionFromDrag = exports.selectionSpansCells = exports.selectionFromActiveCell = exports.getOffsetForRowAndAlignment = exports.getOffsetForColumnAndAlignment = exports.getOffsetForIndexAndAlignment = exports.scheduleIdlePriorityCallback = exports.cellIdentifier = exports.getEstimatedTotalWidth = exports.getEstimatedTotalHeight = exports.getItemMetadata = exports.getColumnWidth = exports.getRowHeight = exports.getColumnOffset = exports.getRowOffset = exports.itemKey = exports.getBoundedCells = exports.getColumnStopIndexForStartIndex = exports.getColumnStartIndexForOffset = exports.getRowStopIndexForStartIndex = exports.getRowStartIndexForOffset = exports.ItemType = exports.Align = void 0;
|
|
4
|
+
exports.getPreviousCellInDirection = exports.getDevicePixelRatio = exports.useCallbackRef = exports.useIsomorphicLayoutEffect = exports.getScrollIncrement = exports.isArrowKey = exports.castToString = exports.findNextCellInDataRegion = exports.findLastContentfulCell = exports.findNextContentfulCell = exports.clampIndex = exports.isCellWithinBounds = exports.isEqualCells = void 0;
|
|
5
5
|
exports.throttle = throttle;
|
|
6
6
|
exports.debounce = debounce;
|
|
7
7
|
exports.rafThrottle = rafThrottle;
|
|
@@ -1019,7 +1019,7 @@ var measureFontBox = function (font, context) {
|
|
|
1019
1019
|
* `FONT_LINE_LEADING * scale`; when the context cannot report font metrics
|
|
1020
1020
|
* (jsdom, node-canvas, older engines) or under `fixed`, the box is
|
|
1021
1021
|
* `fontSize * DEFAULT_LINE_HEIGHT_RATIO` with no leading — the pre-#1141
|
|
1022
|
-
* line box. A block of `n` lines is `
|
|
1022
|
+
* line box. A block of `n` lines is `getTextBlockHeight(n, metrics)` tall.
|
|
1023
1023
|
*/
|
|
1024
1024
|
var getFontLineMetrics = function (font, mode, scale, context) {
|
|
1025
1025
|
if (mode === void 0) { mode = "fontMetrics"; }
|
|
@@ -1036,6 +1036,65 @@ var getFontLineMetrics = function (font, mode, scale, context) {
|
|
|
1036
1036
|
return { box: box, leading: leading, advance: box + leading };
|
|
1037
1037
|
};
|
|
1038
1038
|
exports.getFontLineMetrics = getFontLineMetrics;
|
|
1039
|
+
/**
|
|
1040
|
+
* Inner padding of a cell's Konva `Text` node, in CSS pixels on every side
|
|
1041
|
+
* at any zoom. The sizer wraps at the width it leaves (`getTextWrapWidth`)
|
|
1042
|
+
* and fits a row to the block it holds (`getTextBlockHeight`).
|
|
1043
|
+
*/
|
|
1044
|
+
exports.CELL_TEXT_PADDING = 2;
|
|
1045
|
+
/**
|
|
1046
|
+
* Height of a block of `lineCount` lines of text: one line box per line, the
|
|
1047
|
+
* leading only between lines. The sizer fits a row to `getFittedTextHeight`
|
|
1048
|
+
* of this block and the painter shows every line of it (#1182).
|
|
1049
|
+
*/
|
|
1050
|
+
var getTextBlockHeight = function (lineCount, _a) {
|
|
1051
|
+
var box = _a.box, leading = _a.leading;
|
|
1052
|
+
return lineCount > 0 ? lineCount * box + (lineCount - 1) * leading : 0;
|
|
1053
|
+
};
|
|
1054
|
+
exports.getTextBlockHeight = getTextBlockHeight;
|
|
1055
|
+
/**
|
|
1056
|
+
* Height of the row that holds a block of text `blockHeight` tall
|
|
1057
|
+
* (`getTextBlockHeight`): the block plus one leading, half above the first
|
|
1058
|
+
* line and half below the last. The leading is the only vertical spacing —
|
|
1059
|
+
* that is Excel's row for `n` lines of a font, `n * (box + 2)`, and so its
|
|
1060
|
+
* default row height for one line (Calibri 11 → 18 + 2 = 20px), and it is
|
|
1061
|
+
* exactly Konva's text block of `n` lines (`n * advance`), which the painter
|
|
1062
|
+
* shows whole in a row this tall (`getTextNodeBounds`). Padding on top of
|
|
1063
|
+
* the leading grew every single-line row of the default font past the
|
|
1064
|
+
* default row height (#1199).
|
|
1065
|
+
*/
|
|
1066
|
+
var getFittedTextHeight = function (blockHeight, leading) { return (blockHeight > 0 ? blockHeight + leading : 0); };
|
|
1067
|
+
exports.getFittedTextHeight = getFittedTextHeight;
|
|
1068
|
+
/**
|
|
1069
|
+
* Width a cell's text wraps at: the cell minus `padding` on both sides,
|
|
1070
|
+
* which is where Konva `Text` breaks its lines. The sizer wraps at the same
|
|
1071
|
+
* width or it fits a row for a line the painter never paints (#1182).
|
|
1072
|
+
* `width` is in painted pixels (zoom applied); the padding is not scaled.
|
|
1073
|
+
*/
|
|
1074
|
+
var getTextWrapWidth = function (width, padding) {
|
|
1075
|
+
if (padding === void 0) { padding = exports.CELL_TEXT_PADDING; }
|
|
1076
|
+
return Math.max(width - 2 * padding, 0);
|
|
1077
|
+
};
|
|
1078
|
+
exports.getTextWrapWidth = getTextWrapWidth;
|
|
1079
|
+
/**
|
|
1080
|
+
* Bounds of the Konva `Text` node that shows exactly the lines the sizer
|
|
1081
|
+
* fitted a cell `height` tall at `y` (`getFittedTextHeight`). Konva stacks
|
|
1082
|
+
* lines `advance` apart with each glyph box centred in its advance, and it
|
|
1083
|
+
* keeps a line only while `lines * advance <= height - 2 * padding`; the
|
|
1084
|
+
* fitted row is `lines * advance` exactly, so the node is grown by the
|
|
1085
|
+
* padding on both sides and its padding box is the cell itself (#1182,
|
|
1086
|
+
* #1199). The glyph block then sits half a leading from the cell's top or
|
|
1087
|
+
* bottom edge when aligned there, as Excel paints it; `padding` still
|
|
1088
|
+
* insets the text horizontally (`getTextWrapWidth`).
|
|
1089
|
+
*/
|
|
1090
|
+
var getTextNodeBounds = function (y, height, padding) {
|
|
1091
|
+
if (padding === void 0) { padding = exports.CELL_TEXT_PADDING; }
|
|
1092
|
+
return ({
|
|
1093
|
+
y: y - padding,
|
|
1094
|
+
height: height + 2 * padding,
|
|
1095
|
+
});
|
|
1096
|
+
};
|
|
1097
|
+
exports.getTextNodeBounds = getTextNodeBounds;
|
|
1039
1098
|
var AutoSizerCanvas = function (defaults) {
|
|
1040
1099
|
if (defaults === void 0) { defaults = {}; }
|
|
1041
1100
|
var _a = defaults.fontFamily, fontFamily = _a === void 0 ? "Arial" : _a, _b = defaults.fontSize, fontSize = _b === void 0 ? 12 : _b, _c = defaults.fontWeight, fontWeight = _c === void 0 ? "" : _c, _d = defaults.fontStyle, fontStyle = _d === void 0 ? "" : _d, _e = defaults.lineHeight, lineHeight = _e === void 0 ? 16 : _e, _f = defaults.scale, scale = _f === void 0 ? 1 : _f, _g = defaults.lineHeightMode, lineHeightMode = _g === void 0 ? "fontMetrics" : _g;
|
|
@@ -1235,7 +1294,10 @@ var AutoSizerCanvas = function (defaults) {
|
|
|
1235
1294
|
}
|
|
1236
1295
|
return {
|
|
1237
1296
|
width: textWidth,
|
|
1238
|
-
height:
|
|
1297
|
+
height: (0, exports.getTextBlockHeight)(lineCount, {
|
|
1298
|
+
box: lineBoxPx,
|
|
1299
|
+
leading: lineLeadingPx,
|
|
1300
|
+
}),
|
|
1239
1301
|
};
|
|
1240
1302
|
};
|
|
1241
1303
|
var measureText = function (text, shouldWrap, boundedWidth) { return getWidthOfLongestText((0, exports.castToString)(text), shouldWrap, boundedWidth); };
|
package/dist/esm/helpers.d.ts
CHANGED
|
@@ -245,9 +245,55 @@ export declare const clearFontLineMetricsCache: () => void;
|
|
|
245
245
|
* `FONT_LINE_LEADING * scale`; when the context cannot report font metrics
|
|
246
246
|
* (jsdom, node-canvas, older engines) or under `fixed`, the box is
|
|
247
247
|
* `fontSize * DEFAULT_LINE_HEIGHT_RATIO` with no leading — the pre-#1141
|
|
248
|
-
* line box. A block of `n` lines is `
|
|
248
|
+
* line box. A block of `n` lines is `getTextBlockHeight(n, metrics)` tall.
|
|
249
249
|
*/
|
|
250
250
|
export declare const getFontLineMetrics: (font: FontLineMetricsFont, mode?: LineHeightMode, scale?: number, context?: MeasureContext | null) => FontLineMetrics;
|
|
251
|
+
/**
|
|
252
|
+
* Inner padding of a cell's Konva `Text` node, in CSS pixels on every side
|
|
253
|
+
* at any zoom. The sizer wraps at the width it leaves (`getTextWrapWidth`)
|
|
254
|
+
* and fits a row to the block it holds (`getTextBlockHeight`).
|
|
255
|
+
*/
|
|
256
|
+
export declare const CELL_TEXT_PADDING = 2;
|
|
257
|
+
/**
|
|
258
|
+
* Height of a block of `lineCount` lines of text: one line box per line, the
|
|
259
|
+
* leading only between lines. The sizer fits a row to `getFittedTextHeight`
|
|
260
|
+
* of this block and the painter shows every line of it (#1182).
|
|
261
|
+
*/
|
|
262
|
+
export declare const getTextBlockHeight: (lineCount: number, { box, leading }: Pick<FontLineMetrics, "box" | "leading">) => number;
|
|
263
|
+
/**
|
|
264
|
+
* Height of the row that holds a block of text `blockHeight` tall
|
|
265
|
+
* (`getTextBlockHeight`): the block plus one leading, half above the first
|
|
266
|
+
* line and half below the last. The leading is the only vertical spacing —
|
|
267
|
+
* that is Excel's row for `n` lines of a font, `n * (box + 2)`, and so its
|
|
268
|
+
* default row height for one line (Calibri 11 → 18 + 2 = 20px), and it is
|
|
269
|
+
* exactly Konva's text block of `n` lines (`n * advance`), which the painter
|
|
270
|
+
* shows whole in a row this tall (`getTextNodeBounds`). Padding on top of
|
|
271
|
+
* the leading grew every single-line row of the default font past the
|
|
272
|
+
* default row height (#1199).
|
|
273
|
+
*/
|
|
274
|
+
export declare const getFittedTextHeight: (blockHeight: number, leading: number) => number;
|
|
275
|
+
/**
|
|
276
|
+
* Width a cell's text wraps at: the cell minus `padding` on both sides,
|
|
277
|
+
* which is where Konva `Text` breaks its lines. The sizer wraps at the same
|
|
278
|
+
* width or it fits a row for a line the painter never paints (#1182).
|
|
279
|
+
* `width` is in painted pixels (zoom applied); the padding is not scaled.
|
|
280
|
+
*/
|
|
281
|
+
export declare const getTextWrapWidth: (width: number, padding?: number) => number;
|
|
282
|
+
/**
|
|
283
|
+
* Bounds of the Konva `Text` node that shows exactly the lines the sizer
|
|
284
|
+
* fitted a cell `height` tall at `y` (`getFittedTextHeight`). Konva stacks
|
|
285
|
+
* lines `advance` apart with each glyph box centred in its advance, and it
|
|
286
|
+
* keeps a line only while `lines * advance <= height - 2 * padding`; the
|
|
287
|
+
* fitted row is `lines * advance` exactly, so the node is grown by the
|
|
288
|
+
* padding on both sides and its padding box is the cell itself (#1182,
|
|
289
|
+
* #1199). The glyph block then sits half a leading from the cell's top or
|
|
290
|
+
* bottom edge when aligned there, as Excel paints it; `padding` still
|
|
291
|
+
* insets the text horizontally (`getTextWrapWidth`).
|
|
292
|
+
*/
|
|
293
|
+
export declare const getTextNodeBounds: (y: number, height: number, padding?: number) => {
|
|
294
|
+
y: number;
|
|
295
|
+
height: number;
|
|
296
|
+
};
|
|
251
297
|
/**
|
|
252
298
|
* Simple Canvas element to measure text size
|
|
253
299
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../helpers.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../helpers.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,eAAe,EAAmB,MAAM,OAAO,CAAC;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAGnD,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EACZ,SAAS,EACT,iBAAiB,EACjB,SAAS,EACT,aAAa,EACd,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAE,SAAS,EAAY,QAAQ,EAAE,MAAM,SAAS,CAAC;AAExD,oBAAY,KAAK;IACf,KAAK,UAAU;IACf,GAAG,QAAQ;IACX,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,KAAK,UAAU;CAChB;AAED,oBAAY,QAAQ;IAClB,GAAG,QAAQ;IACX,MAAM,WAAW;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,SAAS,CAAC;IACrB,WAAW,EAAE,SAAS,CAAC;IACvB,aAAa,EAAE,iBAAiB,CAAC;IACjC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,yBAAyB,GAAI,kFAQvC,IAAI,CAAC,aAAa,EAAE,OAAO,GAAG,UAAU,CAAC,KAAG,MAW9C,CAAC;AAEF,UAAU,aACR,SAAQ,IAAI,CAAC,aAAa,EAAE,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,aAAa,CAAC;IAC5E,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,QAAQ,EAAE,CAAC;CAC/B;AACD,eAAO,MAAM,4BAA4B,GAAI,uHAU1C,aAAa,KAAG,MA4ElB,CAAC;AAEF,eAAO,MAAM,4BAA4B,GAAI,kFAQ1C,IAAI,CAAC,aAAa,EAAE,OAAO,GAAG,UAAU,CAAC,KAAG,MAW9C,CAAC;AAEF,UAAU,gBACR,SAAQ,IAAI,CAAC,aAAa,EAAE,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,CAAC;IACzE,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;CACpB;AACD,eAAO,MAAM,+BAA+B,GAAI,wGAS7C,gBAAgB,KAAG,MA2BrB,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,MAAM,SAAS,GAAG,IAAI,GAAG,SAAS,gBAejE,CAAC;AAEF,eAAO,MAAM,OAAO,GAAI,2BAA2B,aAAa,WAClC,CAAC;AAE/B,eAAO,MAAM,YAAY,GAAI,sFAQ1B,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,KAAG,MAWvC,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,oEAO7B,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,KAAG,MAUvC,CAAC;AAEF,eAAO,MAAM,YAAY,GACvB,OAAO,MAAM,EACb,eAAe,iBAAiB,WAGjC,CAAC;AAEF,eAAO,MAAM,cAAc,GACzB,OAAO,MAAM,EACb,eAAe,iBAAiB,WAGjC,CAAC;AAEF,KAAK,gBAAgB,GAAG,IAAI,CAC1B,aAAa,EACb,UAAU,GAAG,OAAO,GAAG,WAAW,GAAG,aAAa,GAAG,eAAe,GAAG,OAAO,CAC/E,GAAG;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,gBAAgB,CAAC,EAAE,QAAQ,EAAE,CAAA;CAAE,CAAC;AAC1D,eAAO,MAAM,eAAe,GAAI,gGAS7B,gBAAgB,KAAG,YA+DrB,CAAC;AA0IF,eAAO,MAAM,uBAAuB,GAClC,UAAU,MAAM,EAChB,eAAe,iBAAiB,WAsBjC,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,aAAa,MAAM,EACnB,eAAe,iBAAiB,WAuBjC,CAAC;AAGF,eAAO,MAAM,cAAc,GAAI,UAAU,MAAM,EAAE,aAAa,MAAM,KAAG,MACzC,CAAC;AAE/B;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,GASzD,CAAC,CACV;AAED,wBAAgB,QAAQ,CAAC,CAAC,SAAS,QAAQ,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,SAAM,GAMpD,CAAC,CACV;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,QAAQ,IAQhB,GAAG,GAAG,UAUnC;AAED,eAAO,MAAM,4BAA4B,GAAI,UAAU,iBAAiB,qCACZ,CAAC;AAE7D,wBAAgB,WAAW,CAAC,QAAQ,EAAE,QAAQ,IAQhB,GAAG,GAAG,UAUnC;AAED,MAAM,WAAW,cAAe,SAAQ,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC;IACnE,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,eAAO,MAAM,6BAA6B,GAAI,yNAiB3C,cAAc,KAAG,MAyDnB,CAAC;AAEF,eAAO,MAAM,8BAA8B,GACzC,OAAO,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC,WAMxC,CAAC;AAEF,eAAO,MAAM,2BAA2B,GACtC,OAAO,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC,WAMxC,CAAC;AAYF,MAAM,MAAM,SAAS,GAAG;IACtB,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC;AAEF,wBAAgB,aAAa,CAAC,SAAS,EAAE,SAAS,QAEjD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,CAgB3E;AAED,eAAO,MAAM,uBAAuB,GAClC,YAAY,aAAa,GAAG,IAAI,KAC/B,aAAa,EAYf,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,GAAI,KAAK,SAAS,GAAG,SAAS,YAM7D,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,GAC/B,kBAAkB,aAAa,EAC/B,MAAM,aAAa,EACnB,IAAI,aAAa,EACjB,4BAAY,EACZ,6BAAa,EACb,UAAU,MAAM,EAChB,aAAa,MAAM,KAClB,aA4BF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,eAAe,GAC1B,QAAQ,aAAa,EACrB,YAAY,aAAa,GAAG,SAAS,EACrC,WAAW,aAAa,GAAG,SAAS,kBAiBrC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,GAAI,GAAG,MAAM,KAAG,MAK5C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,oBAAoB,GAC/B,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,EAAE,KAC7B,CAAC,MAAM,EAAE,MAAM,CAmBjB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,GACnC,kBAAkB,SAAS,EAC3B,iBAAiB,SAAS,EAC1B,YAAW,SAA2B,KACrC,aAAa,GAAG,IAyDlB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,cAAc,GACzB,OAAO,SAAS,EAChB,OAAO,SAAS,GAAG,SAAS,KAC3B,OAiBF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,cAAc,GAAI,QAAQ,SAAS,EAAE,UAAU,SAAS,YAOpE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,YAAY,GACvB,OAAO,SAAS,GAAG,SAAS,EAC5B,OAAO,SAAS,GAAG,SAAS,YAW7B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,GAClC,OAAO,SAAS,EAChB,aAAa,SAAS,EAAE,KACvB,SAiBF,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,GAC5B,OAAO,aAAa,EACpB,KAAK,aAAa,EAClB,+BAAiB,EACjB,eAAe,CAAC,IAAI,EAAE,aAAa,KAAK,SAAS,EACjD,qBAAoB,MAAU,EAC9B,oBAAmB,MAAU;;;;;CAqD9B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,UAAU,GAAI,4BAGxB,aAAa,KAAG,SAOlB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,SAGkB,CAAC;AAEzC;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAC3B,OAAO,WAAW,GAAG,IAAI,GAAG,IAAI,KAC/B,QAAQ,GAAG,SAUb,CAAC;AAEF,8EAA8E;AAC9E,eAAO,MAAM,cAAc,GACzB,OAAO,WAAW,GAAG,IAAI,GAAG,IAAI,KAC/B,MAAM,GAAG,SAC6D,CAAC;AAE1E;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,GAAI,QAAQ,MAAM,KAAG,MAWlC,CAAC;AAEhB;;;;;;;GAOG;AACH,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG,OAAO,CAAC;AAErD,6EAA6E;AAC7E,eAAO,MAAM,yBAAyB,MAAM,CAAC;AAE7C;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,IAAI,CAAC;AAEnC,MAAM,WAAW,mBAAmB;IAClC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,uEAAuE;IACvE,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B,2CAA2C;IAC3C,GAAG,EAAE,MAAM,CAAC;IACZ,0EAA0E;IAC1E,OAAO,EAAE,MAAM,CAAC;IAChB,iEAAiE;IACjE,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GAAI,kDAK1B,mBAAmB,KAAG,MAKxB,CAAC;AAEF,KAAK,cAAc,GAAG;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG;QACzB,qBAAqB,CAAC,EAAE,MAAM,CAAC;QAC/B,sBAAsB,CAAC,EAAE,MAAM,CAAC;KACjC,CAAC;CACH,CAAC;AAKF,0EAA0E;AAC1E,eAAO,MAAM,yBAAyB,YAErC,CAAC;AA6CF;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,GAC7B,MAAM,mBAAmB,EACzB,OAAM,cAA8B,EACpC,cAAS,EACT,UAAS,cAAc,GAAG,IAA0B,KACnD,eAWF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,IAAI,CAAC;AAEnC;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAC7B,WAAW,MAAM,EACjB,kBAAkB,IAAI,CAAC,eAAe,EAAE,KAAK,GAAG,SAAS,CAAC,KACzD,MAC8D,CAAC;AAElE;;;;;;;;;;GAUG;AACH,eAAO,MAAM,mBAAmB,GAC9B,aAAa,MAAM,EACnB,SAAS,MAAM,KACd,MAAuD,CAAC;AAE3D;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAC3B,OAAO,MAAM,EACb,UAAS,MAA0B,KAClC,MAA0C,CAAC;AAE9C;;;;;;;;;;GAUG;AACH,eAAO,MAAM,iBAAiB,GAC5B,GAAG,MAAM,EACT,QAAQ,MAAM,EACd,UAAS,MAA0B,KAClC;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAG5B,CAAC;AAEH;;;;;;;;;GASG;AACH,UAAU,cAAc;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC;AAED,KAAK,QAAQ,GAAG;IACd,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,WAAU,cAAmB;;wBAiNnD,MAAM,eACC,OAAO,iBACL,MAAM;;;;uBA7JC,eAAe;wBArBb,QAAQ;;CA+LnC,CAAC;AAGF,eAAO,MAAM,eAAe;;wBAlBlB,MAAM,eACC,OAAO,iBACL,MAAM;;;;uBA7JC,eAAe;wBArBb,QAAQ;;CAkMY,CAAC;AAGjD,eAAO,MAAM,MAAM,GAAI,OAAO,GAAG,KAAG,KAAK,IAAI,SAAS,GAAG,IAAI,GAAG,EACZ,CAAC;AAErD,eAAO,MAAM,YAAY,GACvB,GAAG,aAAa,GAAG,IAAI,GAAG,SAAS,EACnC,GAAG,aAAa,GAAG,IAAI,GAAG,SAAS,YAYpC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAAI,MAAM,aAAa,EAAE,SAAS,SAAS,YAiBzE,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;AAChD,eAAO,MAAM,UAAU,GACrB,OAAO,MAAM,EACb,UAAU,UAAU,GAAG,SAAS,EAChC,WAAW,SAAS,WAsBrB,CAAC;AAEF,KAAK,WAAW,GAAG,CACjB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,KAChB,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;AAExC;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,sBAAsB,GACjC,SAAS,MAAM,EACf,YAAY,aAAa,EACzB,UAAU,WAAW,EACrB,UAAU,UAAU,GAAG,SAAS,EAChC,WAAW,SAAS,EACpB,OAAO,MAAM,kBA2Ed,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,GACjC,SAAS,MAAM,EACf,YAAY,aAAa,EACzB,UAAU,WAAW,EACrB,UAAU,UAAU,GAAG,SAAS,EAChC,WAAW,SAAS,EACpB,OAAO,MAAM,KACZ,aAwFF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB,GACnC,SAAS,MAAM,EACf,YAAY,aAAa,EACzB,UAAU,WAAW,EACrB,UAAU,UAAU,GAAG,SAAS,EAChC,WAAW,SAAS,EACpB,OAAO,MAAM,KACZ,MA2HF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,GAAI,OAAO,GAAG,KAAG,MAAM,GAAG,SAGlD,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,KAAK,MAAM,YAIrC,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,OAAO,MAAM,EAAE,eAAU,WACT,CAAC;AAEpD,eAAO,MAAM,yBAAyB,wBAEzB,CAAC;AAGd,eAAO,MAAM,cAAc,GAAI,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EAC9D,UAAU,CAAC,GAAG,SAAS,KACtB,CASF,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,OAAO,WAAW,GAAG,IAAI,GAAG,IAAI,WACvB,CAAC;AAE9C,eAAO,MAAM,0BAA0B,GACrC,MAAM,aAAa,EACnB,YAAW,SAAS,GAAG,SAA0B,KAChD,aAAa,GAAG,SAalB,CAAC"}
|
package/dist/esm/helpers.js
CHANGED
|
@@ -926,7 +926,7 @@ const measureFontBox = (font, context) => {
|
|
|
926
926
|
* `FONT_LINE_LEADING * scale`; when the context cannot report font metrics
|
|
927
927
|
* (jsdom, node-canvas, older engines) or under `fixed`, the box is
|
|
928
928
|
* `fontSize * DEFAULT_LINE_HEIGHT_RATIO` with no leading — the pre-#1141
|
|
929
|
-
* line box. A block of `n` lines is `
|
|
929
|
+
* line box. A block of `n` lines is `getTextBlockHeight(n, metrics)` tall.
|
|
930
930
|
*/
|
|
931
931
|
export const getFontLineMetrics = (font, mode = "fontMetrics", scale = 1, context = getFontBoxContext()) => {
|
|
932
932
|
const box = mode === "fontMetrics"
|
|
@@ -939,6 +939,52 @@ export const getFontLineMetrics = (font, mode = "fontMetrics", scale = 1, contex
|
|
|
939
939
|
const leading = FONT_LINE_LEADING * scale;
|
|
940
940
|
return { box, leading, advance: box + leading };
|
|
941
941
|
};
|
|
942
|
+
/**
|
|
943
|
+
* Inner padding of a cell's Konva `Text` node, in CSS pixels on every side
|
|
944
|
+
* at any zoom. The sizer wraps at the width it leaves (`getTextWrapWidth`)
|
|
945
|
+
* and fits a row to the block it holds (`getTextBlockHeight`).
|
|
946
|
+
*/
|
|
947
|
+
export const CELL_TEXT_PADDING = 2;
|
|
948
|
+
/**
|
|
949
|
+
* Height of a block of `lineCount` lines of text: one line box per line, the
|
|
950
|
+
* leading only between lines. The sizer fits a row to `getFittedTextHeight`
|
|
951
|
+
* of this block and the painter shows every line of it (#1182).
|
|
952
|
+
*/
|
|
953
|
+
export const getTextBlockHeight = (lineCount, { box, leading }) => lineCount > 0 ? lineCount * box + (lineCount - 1) * leading : 0;
|
|
954
|
+
/**
|
|
955
|
+
* Height of the row that holds a block of text `blockHeight` tall
|
|
956
|
+
* (`getTextBlockHeight`): the block plus one leading, half above the first
|
|
957
|
+
* line and half below the last. The leading is the only vertical spacing —
|
|
958
|
+
* that is Excel's row for `n` lines of a font, `n * (box + 2)`, and so its
|
|
959
|
+
* default row height for one line (Calibri 11 → 18 + 2 = 20px), and it is
|
|
960
|
+
* exactly Konva's text block of `n` lines (`n * advance`), which the painter
|
|
961
|
+
* shows whole in a row this tall (`getTextNodeBounds`). Padding on top of
|
|
962
|
+
* the leading grew every single-line row of the default font past the
|
|
963
|
+
* default row height (#1199).
|
|
964
|
+
*/
|
|
965
|
+
export const getFittedTextHeight = (blockHeight, leading) => (blockHeight > 0 ? blockHeight + leading : 0);
|
|
966
|
+
/**
|
|
967
|
+
* Width a cell's text wraps at: the cell minus `padding` on both sides,
|
|
968
|
+
* which is where Konva `Text` breaks its lines. The sizer wraps at the same
|
|
969
|
+
* width or it fits a row for a line the painter never paints (#1182).
|
|
970
|
+
* `width` is in painted pixels (zoom applied); the padding is not scaled.
|
|
971
|
+
*/
|
|
972
|
+
export const getTextWrapWidth = (width, padding = CELL_TEXT_PADDING) => Math.max(width - 2 * padding, 0);
|
|
973
|
+
/**
|
|
974
|
+
* Bounds of the Konva `Text` node that shows exactly the lines the sizer
|
|
975
|
+
* fitted a cell `height` tall at `y` (`getFittedTextHeight`). Konva stacks
|
|
976
|
+
* lines `advance` apart with each glyph box centred in its advance, and it
|
|
977
|
+
* keeps a line only while `lines * advance <= height - 2 * padding`; the
|
|
978
|
+
* fitted row is `lines * advance` exactly, so the node is grown by the
|
|
979
|
+
* padding on both sides and its padding box is the cell itself (#1182,
|
|
980
|
+
* #1199). The glyph block then sits half a leading from the cell's top or
|
|
981
|
+
* bottom edge when aligned there, as Excel paints it; `padding` still
|
|
982
|
+
* insets the text horizontally (`getTextWrapWidth`).
|
|
983
|
+
*/
|
|
984
|
+
export const getTextNodeBounds = (y, height, padding = CELL_TEXT_PADDING) => ({
|
|
985
|
+
y: y - padding,
|
|
986
|
+
height: height + 2 * padding,
|
|
987
|
+
});
|
|
942
988
|
export const AutoSizerCanvas = (defaults = {}) => {
|
|
943
989
|
const { fontFamily = "Arial", fontSize = 12, fontWeight = "", fontStyle = "", lineHeight = 16, scale = 1, lineHeightMode = "fontMetrics", } = defaults;
|
|
944
990
|
const o = {
|
|
@@ -1098,7 +1144,10 @@ export const AutoSizerCanvas = (defaults = {}) => {
|
|
|
1098
1144
|
}
|
|
1099
1145
|
return {
|
|
1100
1146
|
width: textWidth,
|
|
1101
|
-
height: lineCount
|
|
1147
|
+
height: getTextBlockHeight(lineCount, {
|
|
1148
|
+
box: lineBoxPx,
|
|
1149
|
+
leading: lineLeadingPx,
|
|
1150
|
+
}),
|
|
1102
1151
|
};
|
|
1103
1152
|
};
|
|
1104
1153
|
const measureText = (text, shouldWrap, boundedWidth) => getWidthOfLongestText(castToString(text), shouldWrap, boundedWidth);
|
package/package.json
CHANGED