@rowsncolumns/spreadsheet 10.5.10 → 10.5.11

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../components/canvas-grid/index.tsx"],"names":[],"mappings":"AAoDA,OAAO,KASN,MAAM,OAAO,CAAC;AAqNf,OAAO,KAAK,EAGV,QAAQ,EAWT,MAAM,aAAa,CAAC;AAoBrB,OAAO,KAAK,EACV,wBAAwB,EACxB,iBAAiB,EACjB,eAAe,EAEhB,MAAM,WAAW,CAAC;AA0/LnB,eAAO,MAAM,UAAU,EAA4C,CACjE,CAAC,SAAS,QAAQ,CAAC,GAAG,CAAC,EAEvB,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,GACvB,wBAAwB,GAAG;IAAE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;CAAE,KAChE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../components/canvas-grid/index.tsx"],"names":[],"mappings":"AAoDA,OAAO,KASN,MAAM,OAAO,CAAC;AAqNf,OAAO,KAAK,EAGV,QAAQ,EAWT,MAAM,aAAa,CAAC;AAoBrB,OAAO,KAAK,EACV,wBAAwB,EACxB,iBAAiB,EACjB,eAAe,EAEhB,MAAM,WAAW,CAAC;AA2/LnB,eAAO,MAAM,UAAU,EAA4C,CACjE,CAAC,SAAS,QAAQ,CAAC,GAAG,CAAC,EAEvB,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,GACvB,wBAAwB,GAAG;IAAE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;CAAE,KAChE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC"}
@@ -2045,7 +2045,8 @@ function CanvasGridComponent(props, forwardedRef) {
2045
2045
  minColumnDimension: config_1.MIN_COLUMN_WIDTH,
2046
2046
  minRowDimension: defaultRowHeight,
2047
2047
  cellHorizontalSpacing: 5, // 2 + 2 + (padding) + 1 border
2048
- cellVerticalSpacing: 5, // 2 + 2 (padding) + 1 border
2048
+ // No vertical spacing: a row is fitted to its text block plus one
2049
+ // leading, Excel's row for the text (#1199).
2049
2050
  isHiddenRow: isHiddenRow,
2050
2051
  isHiddenColumn: isHiddenColumn,
2051
2052
  getTextFormat: getTextFormat,
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../components/cell/index.tsx"],"names":[],"mappings":"AAQA,OAAO,KAA4B,MAAM,OAAO,CAAC;AA4CjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAU3C,eAAO,MAAM,IAAI,oCAAgB,SAAS,uBA8oBxC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../components/cell/index.tsx"],"names":[],"mappings":"AAQA,OAAO,KAA4B,MAAM,OAAO,CAAC;AA4CjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAU3C,eAAO,MAAM,IAAI,oCAAgB,SAAS,uBA0oBxC,CAAC"}
@@ -196,11 +196,11 @@ exports.Cell = (0, react_1.memo)(function (props) {
196
196
  var textLineHeight = effectiveFontSize > 0
197
197
  ? textLineMetrics.advance / effectiveFontSize
198
198
  : lineHeight;
199
- // The sizer fitted the row to a block with the leading between lines
200
- // only; Konva counts a leading per line, so the node grows by one,
201
- // half above and half below the cell, and shows every fitted line
202
- // (#1182).
203
- var textNode = (0, grid_1.getTextNodeBounds)(y + cellSpacingY, height, textLineMetrics.leading);
199
+ // The sizer fitted the row to Konva's text block exactly — one advance
200
+ // per line, the leading the only vertical spacing — so the node grows
201
+ // by the padding on both sides, its padding box is the cell, and every
202
+ // fitted line shows (#1182, #1199).
203
+ var textNode = (0, grid_1.getTextNodeBounds)(y + cellSpacingY, height, padding);
204
204
  // For rotated text, anchor the rotation pivot to an alignment-aware
205
205
  // corner of the cell so the text stays inside instead of sliding off
206
206
  // (Konva otherwise rotates around the Text's top-left at x/y).
@@ -30,11 +30,17 @@ export interface UseSizerProps {
30
30
  minColumnDimension?: number;
31
31
  minRowDimension?: number;
32
32
  /**
33
- * Spacing added around the measured text — the painter's padding on both
33
+ * Extra height on top of a fitted row. A row is fitted to its text block
34
+ * plus one leading (`getFittedTextHeight`) — Excel's `n * (box + 2)`, the
35
+ * default row height for one line of the font — so a single line of the
36
+ * default font keeps the default row (#1199); `CanvasGrid` adds nothing.
37
+ */
38
+ cellVerticalSpacing?: number;
39
+ /**
40
+ * Spacing added beside the measured text — the painter's padding on both
34
41
  * sides and the border. Wrapping does not use it: the sizer wraps at
35
42
  * `getTextWrapWidth`, where the painter wraps (#1182).
36
43
  */
37
- cellVerticalSpacing?: number;
38
44
  cellHorizontalSpacing?: number;
39
45
  /**
40
46
  * Font used to calculate width
@@ -1 +1 @@
1
- {"version":3,"file":"use-sizer.d.ts","sourceRoot":"","sources":["../../../hooks/use-sizer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-sizer.d.ts","sourceRoot":"","sources":["../../../hooks/use-sizer.ts"],"names":[],"mappings":"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"}
@@ -88,7 +88,8 @@ var useSizer = function (_a) {
88
88
  * leading of the tallest atom, as `CellTextRuns` does. For wrapped
89
89
  * cells it applies greedy whitespace-break wrap with per-atom font
90
90
  * metrics, matching what `CellTextRuns` paints. Returns the raw
91
- * scaled glyph box — caller adds cell-spacing padding afterwards.
91
+ * scaled glyph block and the leading its lines are stacked with —
92
+ * the caller fits the row with `getFittedTextHeight`.
92
93
  */
93
94
  var measureRichTextDimensions = (0, react_1.useCallback)(function (text, runs, base, shouldWrap, maxGlyphWidth, currentScale) {
94
95
  var e_1, _a;
@@ -102,10 +103,13 @@ var useSizer = function (_a) {
102
103
  var totalWidth = 0;
103
104
  var totalHeight = 0;
104
105
  var lineCount = 0;
106
+ var maxLeading = 0;
105
107
  // `getTextBlockHeight` with each line's own box: the leading goes
106
108
  // between lines only.
107
109
  var pushLine = function (box, leading) {
108
110
  totalHeight += lineCount === 0 ? box : leading + box;
111
+ if (leading > maxLeading)
112
+ maxLeading = leading;
109
113
  lineCount++;
110
114
  };
111
115
  var _loop_1 = function (line) {
@@ -232,7 +236,7 @@ var useSizer = function (_a) {
232
236
  }
233
237
  finally { if (e_1) throw e_1.error; }
234
238
  }
235
- return { width: totalWidth, height: totalHeight };
239
+ return { width: totalWidth, height: totalHeight, leading: maxLeading };
236
240
  }, [measureAtom, setAutoSizerTextFormat]);
237
241
  /**
238
242
  * Get dimension of a single cell
@@ -282,14 +286,21 @@ var useSizer = function (_a) {
282
286
  if (richRuns === null || richRuns === void 0 ? void 0 : richRuns.length) {
283
287
  var richDims = measureRichTextDimensions(String(text), richRuns, textFormat, shouldWrap, scaledWidth, scale_1);
284
288
  width += Math.ceil(richDims.width) + horizontalSpacing;
285
- height += Math.ceil(richDims.height) + verticalSpacing;
289
+ height +=
290
+ Math.ceil((0, grid_1.getFittedTextHeight)(richDims.height, richDims.leading)) +
291
+ verticalSpacing;
286
292
  return { width: width, height: height };
287
293
  }
288
294
  // Get height if wrapped
289
295
  var metrics = autoSizer.current.measureText(text, shouldWrap, scaledWidth);
290
296
  if (metrics) {
297
+ // The row is the block plus one leading — Excel's row for the
298
+ // text, and the block the painter shows whole (#1199).
299
+ var leading = autoSizer.current.lineMetrics().leading;
291
300
  width += Math.ceil(metrics.width) + horizontalSpacing;
292
- height += Math.ceil(metrics.height) + verticalSpacing;
301
+ height +=
302
+ Math.ceil((0, grid_1.getFittedTextHeight)(metrics.height, leading)) +
303
+ verticalSpacing;
293
304
  }
294
305
  }
295
306
  return { width: width, height: height };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../components/canvas-grid/index.tsx"],"names":[],"mappings":"AAoDA,OAAO,KASN,MAAM,OAAO,CAAC;AAqNf,OAAO,KAAK,EAGV,QAAQ,EAWT,MAAM,aAAa,CAAC;AAoBrB,OAAO,KAAK,EACV,wBAAwB,EACxB,iBAAiB,EACjB,eAAe,EAEhB,MAAM,WAAW,CAAC;AA0/LnB,eAAO,MAAM,UAAU,EAA4C,CACjE,CAAC,SAAS,QAAQ,CAAC,GAAG,CAAC,EAEvB,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,GACvB,wBAAwB,GAAG;IAAE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;CAAE,KAChE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../components/canvas-grid/index.tsx"],"names":[],"mappings":"AAoDA,OAAO,KASN,MAAM,OAAO,CAAC;AAqNf,OAAO,KAAK,EAGV,QAAQ,EAWT,MAAM,aAAa,CAAC;AAoBrB,OAAO,KAAK,EACV,wBAAwB,EACxB,iBAAiB,EACjB,eAAe,EAEhB,MAAM,WAAW,CAAC;AA2/LnB,eAAO,MAAM,UAAU,EAA4C,CACjE,CAAC,SAAS,QAAQ,CAAC,GAAG,CAAC,EAEvB,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,GACvB,wBAAwB,GAAG;IAAE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;CAAE,KAChE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC"}
@@ -1892,7 +1892,8 @@ function CanvasGridComponent(props, forwardedRef) {
1892
1892
  minColumnDimension: MIN_COLUMN_WIDTH,
1893
1893
  minRowDimension: defaultRowHeight,
1894
1894
  cellHorizontalSpacing: 5, // 2 + 2 + (padding) + 1 border
1895
- cellVerticalSpacing: 5, // 2 + 2 (padding) + 1 border
1895
+ // No vertical spacing: a row is fitted to its text block plus one
1896
+ // leading, Excel's row for the text (#1199).
1896
1897
  isHiddenRow,
1897
1898
  isHiddenColumn,
1898
1899
  getTextFormat,
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../components/cell/index.tsx"],"names":[],"mappings":"AAQA,OAAO,KAA4B,MAAM,OAAO,CAAC;AA4CjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAU3C,eAAO,MAAM,IAAI,oCAAgB,SAAS,uBA8oBxC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../components/cell/index.tsx"],"names":[],"mappings":"AAQA,OAAO,KAA4B,MAAM,OAAO,CAAC;AA4CjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAU3C,eAAO,MAAM,IAAI,oCAAgB,SAAS,uBA0oBxC,CAAC"}
@@ -181,11 +181,11 @@ export const Cell = memo((props) => {
181
181
  const textLineHeight = effectiveFontSize > 0
182
182
  ? textLineMetrics.advance / effectiveFontSize
183
183
  : lineHeight;
184
- // The sizer fitted the row to a block with the leading between lines
185
- // only; Konva counts a leading per line, so the node grows by one,
186
- // half above and half below the cell, and shows every fitted line
187
- // (#1182).
188
- const textNode = getTextNodeBounds(y + cellSpacingY, height, textLineMetrics.leading);
184
+ // The sizer fitted the row to Konva's text block exactly — one advance
185
+ // per line, the leading the only vertical spacing — so the node grows
186
+ // by the padding on both sides, its padding box is the cell, and every
187
+ // fitted line shows (#1182, #1199).
188
+ const textNode = getTextNodeBounds(y + cellSpacingY, height, padding);
189
189
  // For rotated text, anchor the rotation pivot to an alignment-aware
190
190
  // corner of the cell so the text stays inside instead of sliding off
191
191
  // (Konva otherwise rotates around the Text's top-left at x/y).
@@ -30,11 +30,17 @@ export interface UseSizerProps {
30
30
  minColumnDimension?: number;
31
31
  minRowDimension?: number;
32
32
  /**
33
- * Spacing added around the measured text — the painter's padding on both
33
+ * Extra height on top of a fitted row. A row is fitted to its text block
34
+ * plus one leading (`getFittedTextHeight`) — Excel's `n * (box + 2)`, the
35
+ * default row height for one line of the font — so a single line of the
36
+ * default font keeps the default row (#1199); `CanvasGrid` adds nothing.
37
+ */
38
+ cellVerticalSpacing?: number;
39
+ /**
40
+ * Spacing added beside the measured text — the painter's padding on both
34
41
  * sides and the border. Wrapping does not use it: the sizer wraps at
35
42
  * `getTextWrapWidth`, where the painter wraps (#1182).
36
43
  */
37
- cellVerticalSpacing?: number;
38
44
  cellHorizontalSpacing?: number;
39
45
  /**
40
46
  * Font used to calculate width
@@ -1 +1 @@
1
- {"version":3,"file":"use-sizer.d.ts","sourceRoot":"","sources":["../../../hooks/use-sizer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-sizer.d.ts","sourceRoot":"","sources":["../../../hooks/use-sizer.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { autoSizerCanvas, getTextWrapWidth, isNull } from "@rowsncolumns/grid";
1
+ import { autoSizerCanvas, getFittedTextHeight, getTextWrapWidth, isNull, } from "@rowsncolumns/grid";
2
2
  import { useCallback, useRef } from "react";
3
3
  import { buildRichTextSegments, segmentsToLines, segmentToAtoms, } from "../components/cell/rich-text";
4
4
  import { DEFAULT_COLUMN_WIDTH, DEFAULT_ROW_HEIGHT } from "../config";
@@ -81,7 +81,8 @@ export const useSizer = ({ getTextFormat, getTextFormatRuns, initialVisibleRows
81
81
  * leading of the tallest atom, as `CellTextRuns` does. For wrapped
82
82
  * cells it applies greedy whitespace-break wrap with per-atom font
83
83
  * metrics, matching what `CellTextRuns` paints. Returns the raw
84
- * scaled glyph box — caller adds cell-spacing padding afterwards.
84
+ * scaled glyph block and the leading its lines are stacked with —
85
+ * the caller fits the row with `getFittedTextHeight`.
85
86
  */
86
87
  const measureRichTextDimensions = useCallback((text, runs, base, shouldWrap, maxGlyphWidth, currentScale) => {
87
88
  const segments = buildRichTextSegments(text, runs);
@@ -94,10 +95,13 @@ export const useSizer = ({ getTextFormat, getTextFormatRuns, initialVisibleRows
94
95
  let totalWidth = 0;
95
96
  let totalHeight = 0;
96
97
  let lineCount = 0;
98
+ let maxLeading = 0;
97
99
  // `getTextBlockHeight` with each line's own box: the leading goes
98
100
  // between lines only.
99
101
  const pushLine = (box, leading) => {
100
102
  totalHeight += lineCount === 0 ? box : leading + box;
103
+ if (leading > maxLeading)
104
+ maxLeading = leading;
101
105
  lineCount++;
102
106
  };
103
107
  for (const line of inputLines) {
@@ -169,7 +173,7 @@ export const useSizer = ({ getTextFormat, getTextFormatRuns, initialVisibleRows
169
173
  }
170
174
  flush();
171
175
  }
172
- return { width: totalWidth, height: totalHeight };
176
+ return { width: totalWidth, height: totalHeight, leading: maxLeading };
173
177
  }, [measureAtom, setAutoSizerTextFormat]);
174
178
  /**
175
179
  * Get dimension of a single cell
@@ -218,14 +222,21 @@ export const useSizer = ({ getTextFormat, getTextFormatRuns, initialVisibleRows
218
222
  if (richRuns?.length) {
219
223
  const richDims = measureRichTextDimensions(String(text), richRuns, textFormat, shouldWrap, scaledWidth, scale);
220
224
  width += Math.ceil(richDims.width) + horizontalSpacing;
221
- height += Math.ceil(richDims.height) + verticalSpacing;
225
+ height +=
226
+ Math.ceil(getFittedTextHeight(richDims.height, richDims.leading)) +
227
+ verticalSpacing;
222
228
  return { width, height };
223
229
  }
224
230
  // Get height if wrapped
225
231
  const metrics = autoSizer.current.measureText(text, shouldWrap, scaledWidth);
226
232
  if (metrics) {
233
+ // The row is the block plus one leading — Excel's row for the
234
+ // text, and the block the painter shows whole (#1199).
235
+ const { leading } = autoSizer.current.lineMetrics();
227
236
  width += Math.ceil(metrics.width) + horizontalSpacing;
228
- height += Math.ceil(metrics.height) + verticalSpacing;
237
+ height +=
238
+ Math.ceil(getFittedTextHeight(metrics.height, leading)) +
239
+ verticalSpacing;
229
240
  }
230
241
  }
231
242
  return { width, height };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rowsncolumns/spreadsheet",
3
- "version": "10.5.10",
3
+ "version": "10.5.11",
4
4
  "author": "Vinay M",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "main": "./dist/cjs/index.js",
@@ -45,7 +45,7 @@
45
45
  "@rowsncolumns/common-types": ">=5.3.2",
46
46
  "@rowsncolumns/fast-formula-parser": ">=6.2.43",
47
47
  "@rowsncolumns/functions": ">=15.1.0",
48
- "@rowsncolumns/grid": ">=13.2.37",
48
+ "@rowsncolumns/grid": ">=13.2.38",
49
49
  "@rowsncolumns/icons": ">=7.2.33",
50
50
  "@rowsncolumns/ui": ">=16.1.0",
51
51
  "@rowsncolumns/utils": ">=9.5.4",