@rowsncolumns/spreadsheet 10.5.2 → 10.5.3
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/components/canvas-grid/index.d.ts.map +1 -1
- package/dist/cjs/components/canvas-grid/index.js +85 -70
- package/dist/cjs/components/canvas-grid/typings.d.ts +18 -1
- package/dist/cjs/components/canvas-grid/typings.d.ts.map +1 -1
- package/dist/cjs/components/cell/cell-text-runs.d.ts +10 -3
- package/dist/cjs/components/cell/cell-text-runs.d.ts.map +1 -1
- package/dist/cjs/components/cell/cell-text-runs.js +21 -9
- package/dist/cjs/components/cell/index.d.ts.map +1 -1
- package/dist/cjs/components/cell/index.js +9 -5
- package/dist/cjs/components/cell/line-height.d.ts +22 -0
- package/dist/cjs/components/cell/line-height.d.ts.map +1 -0
- package/dist/cjs/components/cell/line-height.js +32 -0
- package/dist/cjs/components/cell/typings.d.ts +8 -2
- package/dist/cjs/components/cell/typings.d.ts.map +1 -1
- package/dist/cjs/hooks/export-range-tiles.d.ts +81 -0
- package/dist/cjs/hooks/export-range-tiles.d.ts.map +1 -0
- package/dist/cjs/hooks/export-range-tiles.js +171 -0
- package/dist/cjs/hooks/use-cell-renderer.d.ts +6 -1
- package/dist/cjs/hooks/use-cell-renderer.d.ts.map +1 -1
- package/dist/cjs/hooks/use-cell-renderer.js +3 -2
- package/dist/cjs/hooks/use-copy-paste-cut.d.ts +5 -1
- package/dist/cjs/hooks/use-copy-paste-cut.d.ts.map +1 -1
- package/dist/cjs/hooks/use-copy-paste-cut.js +19 -5
- package/dist/cjs/hooks/use-editor-submit.d.ts +7 -1
- package/dist/cjs/hooks/use-editor-submit.d.ts.map +1 -1
- package/dist/cjs/hooks/use-editor-submit.js +36 -16
- package/dist/cjs/hooks/use-export-range.d.ts +14 -6
- package/dist/cjs/hooks/use-export-range.d.ts.map +1 -1
- package/dist/cjs/hooks/use-export-range.js +240 -158
- package/dist/cjs/hooks/use-grid-children.d.ts +4 -1
- package/dist/cjs/hooks/use-grid-children.d.ts.map +1 -1
- package/dist/cjs/hooks/use-grid-children.js +4 -2
- package/dist/cjs/hooks/use-navigate-sheet-range.d.ts.map +1 -1
- package/dist/cjs/hooks/use-navigate-sheet-range.js +5 -2
- package/dist/cjs/hooks/use-sizer.d.ts +8 -2
- package/dist/cjs/hooks/use-sizer.d.ts.map +1 -1
- package/dist/cjs/hooks/use-sizer.js +54 -33
- package/dist/cjs/providers/spreadsheet-provider.d.ts +11 -2
- package/dist/cjs/providers/spreadsheet-provider.d.ts.map +1 -1
- package/dist/cjs/providers/spreadsheet-provider.js +7 -5
- package/dist/cjs/release-date.js +1 -1
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/esm/components/canvas-grid/index.d.ts.map +1 -1
- package/dist/esm/components/canvas-grid/index.js +27 -12
- package/dist/esm/components/canvas-grid/typings.d.ts +18 -1
- package/dist/esm/components/canvas-grid/typings.d.ts.map +1 -1
- package/dist/esm/components/cell/cell-text-runs.d.ts +10 -3
- package/dist/esm/components/cell/cell-text-runs.d.ts.map +1 -1
- package/dist/esm/components/cell/cell-text-runs.js +14 -9
- package/dist/esm/components/cell/index.d.ts.map +1 -1
- package/dist/esm/components/cell/index.js +7 -3
- package/dist/esm/components/cell/line-height.d.ts +22 -0
- package/dist/esm/components/cell/line-height.d.ts.map +1 -0
- package/dist/esm/components/cell/line-height.js +25 -0
- package/dist/esm/components/cell/typings.d.ts +8 -2
- package/dist/esm/components/cell/typings.d.ts.map +1 -1
- package/dist/esm/hooks/export-range-tiles.d.ts +81 -0
- package/dist/esm/hooks/export-range-tiles.d.ts.map +1 -0
- package/dist/esm/hooks/export-range-tiles.js +126 -0
- package/dist/esm/hooks/use-cell-renderer.d.ts +6 -1
- package/dist/esm/hooks/use-cell-renderer.d.ts.map +1 -1
- package/dist/esm/hooks/use-cell-renderer.js +3 -2
- package/dist/esm/hooks/use-copy-paste-cut.d.ts +5 -1
- package/dist/esm/hooks/use-copy-paste-cut.d.ts.map +1 -1
- package/dist/esm/hooks/use-copy-paste-cut.js +17 -3
- package/dist/esm/hooks/use-editor-submit.d.ts +7 -1
- package/dist/esm/hooks/use-editor-submit.d.ts.map +1 -1
- package/dist/esm/hooks/use-editor-submit.js +24 -6
- package/dist/esm/hooks/use-export-range.d.ts +14 -6
- package/dist/esm/hooks/use-export-range.d.ts.map +1 -1
- package/dist/esm/hooks/use-export-range.js +158 -120
- package/dist/esm/hooks/use-grid-children.d.ts +4 -1
- package/dist/esm/hooks/use-grid-children.d.ts.map +1 -1
- package/dist/esm/hooks/use-grid-children.js +4 -2
- package/dist/esm/hooks/use-navigate-sheet-range.d.ts.map +1 -1
- package/dist/esm/hooks/use-navigate-sheet-range.js +5 -2
- package/dist/esm/hooks/use-sizer.d.ts +8 -2
- package/dist/esm/hooks/use-sizer.d.ts.map +1 -1
- package/dist/esm/hooks/use-sizer.js +53 -31
- package/dist/esm/providers/spreadsheet-provider.d.ts +11 -2
- package/dist/esm/providers/spreadsheet-provider.d.ts.map +1 -1
- package/dist/esm/providers/spreadsheet-provider.js +8 -6
- package/dist/esm/release-date.js +1 -1
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/package.json +6 -6
|
@@ -3,54 +3,107 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.useExportRange = void 0;
|
|
4
4
|
var tslib_1 = require("tslib");
|
|
5
5
|
var grid_1 = require("@rowsncolumns/grid");
|
|
6
|
-
var grid_2 = require("@rowsncolumns/grid");
|
|
7
6
|
var react_1 = require("react");
|
|
7
|
+
var export_range_tiles_1 = require("./export-range-tiles");
|
|
8
8
|
var use_callback_ref_1 = require("./use-callback-ref");
|
|
9
|
+
var use_stable_ref_1 = require("./use-stable-ref");
|
|
10
|
+
/** The export zooms out this far to fit a range in the viewport before it tiles. */
|
|
11
|
+
var MIN_EXPORT_SCALE = 0.25;
|
|
12
|
+
/**
|
|
13
|
+
* Frames to keep waiting for a repaint that never comes (a host that ignores
|
|
14
|
+
* `onChangeScale`, a scroll the grid clamped elsewhere). The capture then goes
|
|
15
|
+
* on from whatever the grid did land on, so the output stays right.
|
|
16
|
+
*/
|
|
17
|
+
var PAINT_WAIT_FRAME_BUDGET = 120;
|
|
18
|
+
/** A scrollbar-driven scroll can settle a hair off the requested offset on sheets taller than the scrollbar can address. */
|
|
19
|
+
var SCROLL_TOLERANCE = 2;
|
|
20
|
+
/**
|
|
21
|
+
* Resolves once the layer has repainted with `ready()` holding and a whole
|
|
22
|
+
* animation frame has then passed without another paint. The grid's canvas is
|
|
23
|
+
* drawn by react-konva's batched draw on the frame after a React commit, and a
|
|
24
|
+
* windowed engine folds the rows of a freshly scrolled-to viewport in a second
|
|
25
|
+
* commit right behind the first — the quiet frame is what lets that second
|
|
26
|
+
* paint land before the copy, instead of a fixed number of frames that may or
|
|
27
|
+
* may not cover it. Paints from before `ready()` held do not count.
|
|
28
|
+
*/
|
|
29
|
+
var waitForPaint = function (layer, ready) {
|
|
30
|
+
return new Promise(function (resolve) {
|
|
31
|
+
var paintedThisFrame = false;
|
|
32
|
+
var paintedWhileReady = false;
|
|
33
|
+
var frames = 0;
|
|
34
|
+
var onDraw = function () {
|
|
35
|
+
paintedThisFrame = true;
|
|
36
|
+
};
|
|
37
|
+
layer.on("draw", onDraw);
|
|
38
|
+
var finish = function () {
|
|
39
|
+
layer.off("draw", onDraw);
|
|
40
|
+
resolve();
|
|
41
|
+
};
|
|
42
|
+
var tick = function () {
|
|
43
|
+
frames += 1;
|
|
44
|
+
if (!ready()) {
|
|
45
|
+
paintedThisFrame = false;
|
|
46
|
+
paintedWhileReady = false;
|
|
47
|
+
}
|
|
48
|
+
else if (paintedThisFrame) {
|
|
49
|
+
paintedThisFrame = false;
|
|
50
|
+
paintedWhileReady = true;
|
|
51
|
+
}
|
|
52
|
+
else if (paintedWhileReady) {
|
|
53
|
+
finish();
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
if (frames >= PAINT_WAIT_FRAME_BUDGET) {
|
|
57
|
+
finish();
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
requestAnimationFrame(tick);
|
|
61
|
+
};
|
|
62
|
+
requestAnimationFrame(tick);
|
|
63
|
+
});
|
|
64
|
+
};
|
|
65
|
+
var isAtScroll = function (position, target) {
|
|
66
|
+
return Math.abs(position.scrollTop - target.scrollTop) <= SCROLL_TOLERANCE &&
|
|
67
|
+
Math.abs(position.scrollLeft - target.scrollLeft) <= SCROLL_TOLERANCE;
|
|
68
|
+
};
|
|
69
|
+
var getFileExtension = function (fmt) {
|
|
70
|
+
switch (fmt) {
|
|
71
|
+
case "image/jpeg":
|
|
72
|
+
case "image/jpg":
|
|
73
|
+
return ".jpg";
|
|
74
|
+
case "image/webp":
|
|
75
|
+
return ".webp";
|
|
76
|
+
case "image/png":
|
|
77
|
+
default:
|
|
78
|
+
return ".png";
|
|
79
|
+
}
|
|
80
|
+
};
|
|
9
81
|
var useExportRange = function (_a) {
|
|
10
|
-
var sheetId = _a.sheetId, gridLineWidth = _a.gridLineWidth, cellBackgroundColor = _a.cellBackgroundColor,
|
|
82
|
+
var sheetId = _a.sheetId, gridLineWidth = _a.gridLineWidth, cellBackgroundColor = _a.cellBackgroundColor, frozenRows = _a.frozenRows, frozenColumns = _a.frozenColumns, getCanvasLayers = _a.getCanvasLayers, getColumnHeaderCanvasLayer = _a.getColumnHeaderCanvasLayer, getRowHeaderCanvasLayer = _a.getRowHeaderCanvasLayer, getSheetName = _a.getSheetName, getR1C1AddressFromSelection = _a.getR1C1AddressFromSelection, getScrollPosition = _a.getScrollPosition, getRowOffset = _a.getRowOffset, getColumnOffset = _a.getColumnOffset, getSheetDimensions = _a.getSheetDimensions, getGridDimensions = _a.getGridDimensions, scrollTo = _a.scrollTo, scale = _a.scale, onChangeScale = _a.onChangeScale;
|
|
83
|
+
// The capture spans renders; this is how it sees the scale the host applied.
|
|
84
|
+
var scaleRef = (0, use_stable_ref_1.useStableRef)(scale);
|
|
11
85
|
return (0, use_callback_ref_1.useCallbackRef)((0, react_1.useCallback)(function (range, options) {
|
|
12
86
|
var layers = getCanvasLayers();
|
|
13
|
-
|
|
87
|
+
var layer = layers === null || layers === void 0 ? void 0 : layers[0];
|
|
88
|
+
if (!layer)
|
|
14
89
|
return undefined;
|
|
15
90
|
var _a = options || {}, filename = _a.filename, format = _a.format, includeHeaders = _a.includeHeaders;
|
|
16
91
|
var baseScale = scale !== null && scale !== void 0 ? scale : 1;
|
|
17
|
-
var
|
|
18
|
-
var waitForPaint = function () {
|
|
19
|
-
return new Promise(function (resolve) {
|
|
20
|
-
requestAnimationFrame(function () {
|
|
21
|
-
requestAnimationFrame(function () { return resolve(); });
|
|
22
|
-
});
|
|
23
|
-
});
|
|
24
|
-
};
|
|
25
|
-
var normalizeRangeStart = function (rangeValue) { return (tslib_1.__assign(tslib_1.__assign({}, rangeValue), { startRowIndex: Math.max(1, rangeValue.startRowIndex), startColumnIndex: Math.max(1, rangeValue.startColumnIndex) })); };
|
|
26
|
-
var isStartInViewport = function (viewport, normalizedRange) {
|
|
27
|
-
return normalizedRange.startRowIndex >= viewport.visibleRowStartIndex &&
|
|
28
|
-
normalizedRange.startRowIndex <= viewport.visibleRowStopIndex &&
|
|
29
|
-
normalizedRange.startColumnIndex >=
|
|
30
|
-
viewport.visibleColumnStartIndex &&
|
|
31
|
-
normalizedRange.startColumnIndex <= viewport.visibleColumnStopIndex;
|
|
32
|
-
};
|
|
33
|
-
var isRangeInViewport = function (viewport, normalizedRange) {
|
|
34
|
-
return normalizedRange.startRowIndex >= viewport.visibleRowStartIndex &&
|
|
35
|
-
normalizedRange.endRowIndex <= viewport.visibleRowStopIndex &&
|
|
36
|
-
normalizedRange.startColumnIndex >=
|
|
37
|
-
viewport.visibleColumnStartIndex &&
|
|
38
|
-
normalizedRange.endColumnIndex <= viewport.visibleColumnStopIndex;
|
|
39
|
-
};
|
|
92
|
+
var normalizedRange = tslib_1.__assign(tslib_1.__assign({}, range), { startRowIndex: Math.max(1, range.startRowIndex), startColumnIndex: Math.max(1, range.startColumnIndex) });
|
|
40
93
|
var exportRangeAsync = function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
|
|
41
|
-
var initialScrollCoords, nextScale,
|
|
42
|
-
var
|
|
43
|
-
|
|
44
|
-
|
|
94
|
+
var initialScrollCoords, nextScale, startX, endX, startY, endY, currentWidth, currentHeight, _a, viewWidth, viewHeight, unscaledWidth, unscaledHeight, fitScale, minScale, dimensions, headerWidth, headerHeight, rangeLeft, rangeRight, rangeTop, rangeBottom, scrollAtPlan, stops, sheetName, dpr_1, width, height, finalFileName, canvases_1, tempCanvas_1, tempCtx_1, copyPiece, _loop_1, stops_1, stops_1_1, stop_1, e_1_1, dataURL, anchor, shouldRestoreScale, current;
|
|
95
|
+
var e_1, _b;
|
|
96
|
+
var _c, _d, _e, _f, _g, _h;
|
|
97
|
+
return tslib_1.__generator(this, function (_j) {
|
|
98
|
+
switch (_j.label) {
|
|
45
99
|
case 0:
|
|
46
100
|
initialScrollCoords = getScrollPosition();
|
|
47
101
|
nextScale = baseScale;
|
|
48
|
-
didScroll = false;
|
|
49
102
|
if (onChangeScale) {
|
|
50
|
-
startX = getColumnOffset(
|
|
51
|
-
endX = getColumnOffset(
|
|
52
|
-
startY = getRowOffset(
|
|
53
|
-
endY = getRowOffset(
|
|
103
|
+
startX = getColumnOffset(normalizedRange.startColumnIndex);
|
|
104
|
+
endX = getColumnOffset(normalizedRange.endColumnIndex + 1);
|
|
105
|
+
startY = getRowOffset(normalizedRange.startRowIndex);
|
|
106
|
+
endY = getRowOffset(normalizedRange.endRowIndex + 1);
|
|
54
107
|
currentWidth = Math.max(endX - startX, 0);
|
|
55
108
|
currentHeight = Math.max(endY - startY, 0);
|
|
56
109
|
_a = tslib_1.__read(getSheetDimensions(), 2), viewWidth = _a[0], viewHeight = _a[1];
|
|
@@ -58,124 +111,148 @@ var useExportRange = function (_a) {
|
|
|
58
111
|
unscaledWidth = currentWidth / baseScale;
|
|
59
112
|
unscaledHeight = currentHeight / baseScale;
|
|
60
113
|
fitScale = Math.min(viewWidth / unscaledWidth, viewHeight / unscaledHeight, baseScale);
|
|
61
|
-
minScale = Math.min(
|
|
114
|
+
minScale = Math.min(MIN_EXPORT_SCALE, baseScale);
|
|
62
115
|
nextScale = Math.min(Math.max(fitScale, minScale), baseScale);
|
|
63
116
|
}
|
|
64
117
|
}
|
|
65
|
-
|
|
118
|
+
_j.label = 1;
|
|
66
119
|
case 1:
|
|
67
|
-
|
|
120
|
+
_j.trys.push([1, , 14, 19]);
|
|
68
121
|
if (!(onChangeScale && nextScale !== baseScale)) return [3 /*break*/, 3];
|
|
69
122
|
onChangeScale(nextScale);
|
|
70
|
-
return [4 /*yield*/, waitForPaint()];
|
|
123
|
+
return [4 /*yield*/, waitForPaint(layer, function () { return scaleRef.current === nextScale; })];
|
|
71
124
|
case 2:
|
|
72
|
-
|
|
73
|
-
|
|
125
|
+
_j.sent();
|
|
126
|
+
_j.label = 3;
|
|
74
127
|
case 3:
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
scrollToCell === null || scrollToCell === void 0 ? void 0 : scrollToCell({
|
|
79
|
-
rowIndex: normalizedRange.startRowIndex,
|
|
80
|
-
columnIndex: normalizedRange.startColumnIndex,
|
|
81
|
-
}, grid_1.Align.start);
|
|
82
|
-
didScroll = true;
|
|
83
|
-
return [4 /*yield*/, waitForPaint()];
|
|
84
|
-
case 4:
|
|
85
|
-
_q.sent();
|
|
86
|
-
_q.label = 5;
|
|
87
|
-
case 5:
|
|
88
|
-
viewportAfterStart = getViewPort();
|
|
89
|
-
if (!!isRangeInViewport(viewportAfterStart, normalizedRange)) return [3 /*break*/, 7];
|
|
90
|
-
scrollToCell === null || scrollToCell === void 0 ? void 0 : scrollToCell({
|
|
91
|
-
rowIndex: normalizedRange.endRowIndex,
|
|
92
|
-
columnIndex: normalizedRange.endColumnIndex,
|
|
93
|
-
}, grid_1.Align.end);
|
|
94
|
-
didScroll = true;
|
|
95
|
-
return [4 /*yield*/, waitForPaint()];
|
|
96
|
-
case 6:
|
|
97
|
-
_q.sent();
|
|
98
|
-
_q.label = 7;
|
|
99
|
-
case 7:
|
|
100
|
-
scrollCoords = getScrollPosition();
|
|
101
|
-
tl = getCellOffsetFromCoords({
|
|
102
|
-
rowIndex: normalizedRange.startRowIndex,
|
|
103
|
-
columnIndex: normalizedRange.startColumnIndex,
|
|
104
|
-
});
|
|
105
|
-
br = getCellOffsetFromCoords({
|
|
106
|
-
rowIndex: normalizedRange.endRowIndex,
|
|
107
|
-
columnIndex: normalizedRange.endColumnIndex,
|
|
108
|
-
});
|
|
109
|
-
// @ts-ignore
|
|
110
|
-
tl.x -= scrollCoords.scrollLeft;
|
|
111
|
-
// @ts-ignore
|
|
112
|
-
tl.y -= scrollCoords.scrollTop;
|
|
113
|
-
// @ts-ignore
|
|
114
|
-
br.x -= scrollCoords.scrollLeft;
|
|
115
|
-
// @ts-ignore
|
|
116
|
-
br.y -= scrollCoords.scrollTop;
|
|
117
|
-
sheetName = getSheetName === null || getSheetName === void 0 ? void 0 : getSheetName((_b = range.sheetId) !== null && _b !== void 0 ? _b : sheetId);
|
|
118
|
-
dpr = (0, grid_2.getDevicePixelRatio)();
|
|
119
|
-
baseX = (_c = tl === null || tl === void 0 ? void 0 : tl.x) !== null && _c !== void 0 ? _c : 0;
|
|
120
|
-
baseY = (_d = tl === null || tl === void 0 ? void 0 : tl.y) !== null && _d !== void 0 ? _d : 0;
|
|
121
|
-
baseWidth = ((_e = br === null || br === void 0 ? void 0 : br.x) !== null && _e !== void 0 ? _e : 0) - baseX + ((_f = br === null || br === void 0 ? void 0 : br.width) !== null && _f !== void 0 ? _f : 0) + gridLineWidth;
|
|
122
|
-
baseHeight = ((_g = br === null || br === void 0 ? void 0 : br.y) !== null && _g !== void 0 ? _g : 0) - baseY + ((_h = br === null || br === void 0 ? void 0 : br.height) !== null && _h !== void 0 ? _h : 0) + gridLineWidth;
|
|
128
|
+
dimensions = getGridDimensions();
|
|
129
|
+
if (!dimensions)
|
|
130
|
+
return [2 /*return*/, undefined];
|
|
123
131
|
headerWidth = includeHeaders ? getColumnOffset(1) : 0;
|
|
124
132
|
headerHeight = includeHeaders ? getRowOffset(1) : 0;
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
}
|
|
133
|
+
rangeLeft = getColumnOffset(normalizedRange.startColumnIndex);
|
|
134
|
+
rangeRight = getColumnOffset(normalizedRange.endColumnIndex + 1) +
|
|
135
|
+
gridLineWidth;
|
|
136
|
+
rangeTop = getRowOffset(normalizedRange.startRowIndex);
|
|
137
|
+
rangeBottom = getRowOffset(normalizedRange.endRowIndex + 1) + gridLineWidth;
|
|
138
|
+
scrollAtPlan = getScrollPosition();
|
|
139
|
+
stops = (0, export_range_tiles_1.planExportStops)({
|
|
140
|
+
x: {
|
|
141
|
+
rangeStart: rangeLeft,
|
|
142
|
+
rangeEnd: rangeRight,
|
|
143
|
+
frozenSize: getColumnOffset(frozenColumns),
|
|
144
|
+
viewportSize: dimensions.containerWidth,
|
|
145
|
+
maxScroll: Math.max(0, dimensions.estimatedTotalWidth - dimensions.containerWidth),
|
|
146
|
+
currentScroll: scrollAtPlan.scrollLeft,
|
|
147
|
+
headerSize: headerWidth,
|
|
148
|
+
},
|
|
149
|
+
y: {
|
|
150
|
+
rangeStart: rangeTop,
|
|
151
|
+
rangeEnd: rangeBottom,
|
|
152
|
+
frozenSize: getRowOffset(frozenRows),
|
|
153
|
+
viewportSize: dimensions.containerHeight,
|
|
154
|
+
maxScroll: Math.max(0, dimensions.estimatedTotalHeight - dimensions.containerHeight),
|
|
155
|
+
currentScroll: scrollAtPlan.scrollTop,
|
|
156
|
+
headerSize: headerHeight,
|
|
157
|
+
},
|
|
158
|
+
});
|
|
159
|
+
sheetName = getSheetName === null || getSheetName === void 0 ? void 0 : getSheetName((_c = range.sheetId) !== null && _c !== void 0 ? _c : sheetId);
|
|
160
|
+
dpr_1 = (0, grid_1.getDevicePixelRatio)();
|
|
161
|
+
width = rangeRight - rangeLeft + headerWidth;
|
|
162
|
+
height = rangeBottom - rangeTop + headerHeight;
|
|
163
|
+
finalFileName = filename !== null && filename !== void 0 ? filename : (_d = getR1C1AddressFromSelection === null || getR1C1AddressFromSelection === void 0 ? void 0 : getR1C1AddressFromSelection(normalizedRange, sheetName)) === null || _d === void 0 ? void 0 : _d.substring(1);
|
|
164
|
+
canvases_1 = {
|
|
165
|
+
body: layer.getCanvas()._canvas,
|
|
166
|
+
rowHeader: includeHeaders
|
|
167
|
+
? (_f = (_e = getRowHeaderCanvasLayer()) === null || _e === void 0 ? void 0 : _e[0]) === null || _f === void 0 ? void 0 : _f.getCanvas()._canvas
|
|
168
|
+
: null,
|
|
169
|
+
columnHeader: includeHeaders
|
|
170
|
+
? (_h = (_g = getColumnHeaderCanvasLayer()) === null || _g === void 0 ? void 0 : _g[0]) === null || _h === void 0 ? void 0 : _h.getCanvas()._canvas
|
|
171
|
+
: null,
|
|
141
172
|
};
|
|
142
|
-
|
|
143
|
-
rowHeaderCanvas = includeHeaders
|
|
144
|
-
? (_m = (_l = getRowHeaderCanvasLayer()) === null || _l === void 0 ? void 0 : _l[0]) === null || _m === void 0 ? void 0 : _m.getCanvas()._canvas
|
|
145
|
-
: null;
|
|
146
|
-
columnHeaderCanvas = includeHeaders
|
|
147
|
-
? (_p = (_o = getColumnHeaderCanvasLayer()) === null || _o === void 0 ? void 0 : _o[0]) === null || _p === void 0 ? void 0 : _p.getCanvas()._canvas
|
|
148
|
-
: null;
|
|
149
|
-
if (!bodyCanvas)
|
|
173
|
+
if (!canvases_1.body)
|
|
150
174
|
return [2 /*return*/, undefined];
|
|
151
|
-
canvas = bodyCanvas;
|
|
152
175
|
tempCanvas_1 = document.createElement("canvas");
|
|
153
|
-
tempCanvas_1.width = width *
|
|
154
|
-
tempCanvas_1.height = height *
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
intermediateCtx = intermediateCanvas.getContext("2d");
|
|
160
|
-
bodySourceX = baseX;
|
|
161
|
-
bodySourceY = baseY;
|
|
162
|
-
if (intermediateCtx) {
|
|
163
|
-
intermediateCtx.drawImage(canvas, bodySourceX * dpr, bodySourceY * dpr, baseWidth * dpr, baseHeight * dpr, destX * dpr, destY * dpr, baseWidth * dpr, baseHeight * dpr);
|
|
176
|
+
tempCanvas_1.width = width * dpr_1;
|
|
177
|
+
tempCanvas_1.height = height * dpr_1;
|
|
178
|
+
tempCtx_1 = tempCanvas_1.getContext("2d");
|
|
179
|
+
if (tempCtx_1) {
|
|
180
|
+
tempCtx_1.fillStyle = cellBackgroundColor;
|
|
181
|
+
tempCtx_1.fillRect(0, 0, tempCanvas_1.width, tempCanvas_1.height);
|
|
164
182
|
}
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
183
|
+
copyPiece = function (piece, landed) {
|
|
184
|
+
var source = canvases_1[piece.canvas];
|
|
185
|
+
if (!tempCtx_1 || !source)
|
|
186
|
+
return;
|
|
187
|
+
var sx = (0, export_range_tiles_1.sourceOffset)(piece.x, landed.scrollLeft);
|
|
188
|
+
var sy = (0, export_range_tiles_1.sourceOffset)(piece.y, landed.scrollTop);
|
|
189
|
+
tempCtx_1.drawImage(source, sx * dpr_1, sy * dpr_1, piece.x.size * dpr_1, piece.y.size * dpr_1, piece.x.dest * dpr_1, piece.y.dest * dpr_1, piece.x.size * dpr_1, piece.y.size * dpr_1);
|
|
190
|
+
};
|
|
191
|
+
_loop_1 = function (stop_1) {
|
|
192
|
+
var target, landed, _k, _l, piece;
|
|
193
|
+
var e_2, _m;
|
|
194
|
+
return tslib_1.__generator(this, function (_o) {
|
|
195
|
+
switch (_o.label) {
|
|
196
|
+
case 0:
|
|
197
|
+
target = {
|
|
198
|
+
scrollTop: stop_1.scrollTop,
|
|
199
|
+
scrollLeft: stop_1.scrollLeft,
|
|
200
|
+
};
|
|
201
|
+
if (!!isAtScroll(getScrollPosition(), target)) return [3 /*break*/, 2];
|
|
202
|
+
scrollTo(target, true);
|
|
203
|
+
return [4 /*yield*/, waitForPaint(layer, function () {
|
|
204
|
+
return isAtScroll(getScrollPosition(), target);
|
|
205
|
+
})];
|
|
206
|
+
case 1:
|
|
207
|
+
_o.sent();
|
|
208
|
+
_o.label = 2;
|
|
209
|
+
case 2:
|
|
210
|
+
landed = getScrollPosition();
|
|
211
|
+
try {
|
|
212
|
+
for (_k = (e_2 = void 0, tslib_1.__values(stop_1.pieces)), _l = _k.next(); !_l.done; _l = _k.next()) {
|
|
213
|
+
piece = _l.value;
|
|
214
|
+
copyPiece(piece, landed);
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
218
|
+
finally {
|
|
219
|
+
try {
|
|
220
|
+
if (_l && !_l.done && (_m = _k.return)) _m.call(_k);
|
|
221
|
+
}
|
|
222
|
+
finally { if (e_2) throw e_2.error; }
|
|
223
|
+
}
|
|
224
|
+
return [2 /*return*/];
|
|
175
225
|
}
|
|
176
|
-
}
|
|
226
|
+
});
|
|
227
|
+
};
|
|
228
|
+
_j.label = 4;
|
|
229
|
+
case 4:
|
|
230
|
+
_j.trys.push([4, 9, 10, 11]);
|
|
231
|
+
stops_1 = tslib_1.__values(stops), stops_1_1 = stops_1.next();
|
|
232
|
+
_j.label = 5;
|
|
233
|
+
case 5:
|
|
234
|
+
if (!!stops_1_1.done) return [3 /*break*/, 8];
|
|
235
|
+
stop_1 = stops_1_1.value;
|
|
236
|
+
return [5 /*yield**/, _loop_1(stop_1)];
|
|
237
|
+
case 6:
|
|
238
|
+
_j.sent();
|
|
239
|
+
_j.label = 7;
|
|
240
|
+
case 7:
|
|
241
|
+
stops_1_1 = stops_1.next();
|
|
242
|
+
return [3 /*break*/, 5];
|
|
243
|
+
case 8: return [3 /*break*/, 11];
|
|
244
|
+
case 9:
|
|
245
|
+
e_1_1 = _j.sent();
|
|
246
|
+
e_1 = { error: e_1_1 };
|
|
247
|
+
return [3 /*break*/, 11];
|
|
248
|
+
case 10:
|
|
249
|
+
try {
|
|
250
|
+
if (stops_1_1 && !stops_1_1.done && (_b = stops_1.return)) _b.call(stops_1);
|
|
177
251
|
}
|
|
178
|
-
if (
|
|
252
|
+
finally { if (e_1) throw e_1.error; }
|
|
253
|
+
return [7 /*endfinally*/];
|
|
254
|
+
case 11:
|
|
255
|
+
if (!(format === "clipboard")) return [3 /*break*/, 13];
|
|
179
256
|
return [4 /*yield*/, new Promise(function (resolve, reject) {
|
|
180
257
|
tempCanvas_1.toBlob(function (blob) {
|
|
181
258
|
if (!blob) {
|
|
@@ -186,10 +263,10 @@ var useExportRange = function (_a) {
|
|
|
186
263
|
navigator.clipboard.write([item]).then(resolve).catch(reject);
|
|
187
264
|
}, "image/png");
|
|
188
265
|
})];
|
|
189
|
-
case
|
|
190
|
-
|
|
266
|
+
case 12:
|
|
267
|
+
_j.sent();
|
|
191
268
|
return [2 /*return*/, undefined];
|
|
192
|
-
case
|
|
269
|
+
case 13:
|
|
193
270
|
if (format === "blob") {
|
|
194
271
|
return [2 /*return*/, new Promise(function (resolve, reject) {
|
|
195
272
|
tempCanvas_1.toBlob(function (blob) {
|
|
@@ -214,23 +291,27 @@ var useExportRange = function (_a) {
|
|
|
214
291
|
blob === null || blob === void 0 ? void 0 : blob.arrayBuffer().then(resolve);
|
|
215
292
|
});
|
|
216
293
|
})];
|
|
217
|
-
case
|
|
294
|
+
case 14:
|
|
218
295
|
shouldRestoreScale = onChangeScale && nextScale !== baseScale;
|
|
219
|
-
if (!shouldRestoreScale) return [3 /*break*/,
|
|
296
|
+
if (!shouldRestoreScale) return [3 /*break*/, 16];
|
|
220
297
|
onChangeScale(baseScale);
|
|
221
|
-
return [4 /*yield*/, waitForPaint()];
|
|
222
|
-
case
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
case
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
case
|
|
298
|
+
return [4 /*yield*/, waitForPaint(layer, function () { return scaleRef.current === baseScale; })];
|
|
299
|
+
case 15:
|
|
300
|
+
_j.sent();
|
|
301
|
+
_j.label = 16;
|
|
302
|
+
case 16:
|
|
303
|
+
current = getScrollPosition();
|
|
304
|
+
if (!(current.scrollTop !== initialScrollCoords.scrollTop ||
|
|
305
|
+
current.scrollLeft !== initialScrollCoords.scrollLeft)) return [3 /*break*/, 18];
|
|
306
|
+
scrollTo(initialScrollCoords, true);
|
|
307
|
+
return [4 /*yield*/, waitForPaint(layer, function () {
|
|
308
|
+
return isAtScroll(getScrollPosition(), initialScrollCoords);
|
|
309
|
+
})];
|
|
310
|
+
case 17:
|
|
311
|
+
_j.sent();
|
|
312
|
+
_j.label = 18;
|
|
313
|
+
case 18: return [7 /*endfinally*/];
|
|
314
|
+
case 19: return [2 /*return*/];
|
|
234
315
|
}
|
|
235
316
|
});
|
|
236
317
|
}); };
|
|
@@ -239,21 +320,22 @@ var useExportRange = function (_a) {
|
|
|
239
320
|
sheetId,
|
|
240
321
|
gridLineWidth,
|
|
241
322
|
cellBackgroundColor,
|
|
323
|
+
frozenRows,
|
|
324
|
+
frozenColumns,
|
|
242
325
|
getCanvasLayers,
|
|
243
|
-
getCellOffsetFromCoords,
|
|
244
326
|
getSheetName,
|
|
245
327
|
getR1C1AddressFromSelection,
|
|
246
328
|
getScrollPosition,
|
|
247
|
-
getViewPort,
|
|
248
329
|
getColumnHeaderCanvasLayer,
|
|
249
330
|
getRowHeaderCanvasLayer,
|
|
250
331
|
getRowOffset,
|
|
251
332
|
getColumnOffset,
|
|
252
333
|
getSheetDimensions,
|
|
334
|
+
getGridDimensions,
|
|
253
335
|
scrollTo,
|
|
254
|
-
scrollToCell,
|
|
255
336
|
scale,
|
|
256
337
|
onChangeScale,
|
|
338
|
+
scaleRef,
|
|
257
339
|
]));
|
|
258
340
|
};
|
|
259
341
|
exports.useExportRange = useExportRange;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { GridChildrenProps } from "@rowsncolumns/grid";
|
|
2
2
|
import React from "react";
|
|
3
|
+
import type { CanvasGridProps } from "../components/canvas-grid/typings";
|
|
3
4
|
import type { SheetCoordinate, SheetRange } from "../types";
|
|
4
5
|
import type { useEmbedsCharts } from "./use-embeds-charts";
|
|
5
6
|
type UseGridChildrenProps = {
|
|
@@ -18,12 +19,14 @@ type UseGridChildrenProps = {
|
|
|
18
19
|
isHeaderMenuInFrozenColumn?: boolean;
|
|
19
20
|
popoverComponent: React.JSX.Element | null | undefined;
|
|
20
21
|
cellExpandComponent: React.JSX.Element | null | undefined;
|
|
22
|
+
/** Trace precedents / dependents arrows; they scroll with the body. */
|
|
23
|
+
arrowComponents?: CanvasGridProps["arrowComponents"];
|
|
21
24
|
popoverRange?: SheetRange | SheetCoordinate;
|
|
22
25
|
gridLineWidth?: number;
|
|
23
26
|
frozenColumns: number;
|
|
24
27
|
frozenRows: number;
|
|
25
28
|
};
|
|
26
|
-
export declare const useGridChildren: ({ stickyEditor, editorComponent, chartComponents, embedComponents, slicerComponents, pivotPlaceholders, tableResizers, hiddenColumnMarkers, frozenHiddenColumnMarkers, hiddenRowMarkers, frozenHiddenRowMarkers, gridLineWidth, frozenColumns, frozenRows, headerMenuComponent, isHeaderMenuInFrozenColumn, popoverRange, popoverComponent, cellExpandComponent, }: UseGridChildrenProps) => (props: GridChildrenProps) => React.JSX.Element;
|
|
29
|
+
export declare const useGridChildren: ({ stickyEditor, editorComponent, chartComponents, embedComponents, slicerComponents, pivotPlaceholders, tableResizers, hiddenColumnMarkers, frozenHiddenColumnMarkers, hiddenRowMarkers, frozenHiddenRowMarkers, gridLineWidth, frozenColumns, frozenRows, headerMenuComponent, isHeaderMenuInFrozenColumn, popoverRange, popoverComponent, cellExpandComponent, arrowComponents, }: UseGridChildrenProps) => (props: GridChildrenProps) => React.JSX.Element;
|
|
27
30
|
export declare const StyledGridChildren: ({ className, elevate, ...props }: React.HTMLAttributes<HTMLDivElement> & {
|
|
28
31
|
elevate?: boolean;
|
|
29
32
|
}) => React.JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-grid-children.d.ts","sourceRoot":"","sources":["../../../hooks/use-grid-children.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE5D,OAAO,KAAsB,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"use-grid-children.d.ts","sourceRoot":"","sources":["../../../hooks/use-grid-children.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE5D,OAAO,KAAsB,MAAM,OAAO,CAAC;AAG3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAEzE,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,KAAK,oBAAoB,GAAG;IAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,EAAE,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;IAC3C,eAAe,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC,iBAAiB,CAAC,CAAC;IACvE,eAAe,EACX,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC,iBAAiB,CAAC,GACrD,IAAI,GACJ,SAAS,CAAC;IACd,gBAAgB,EACZ,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC,kBAAkB,CAAC,GACtD,IAAI,GACJ,SAAS,CAAC;IACd,iBAAiB,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,GAAG,SAAS,CAAC;IAC1D,aAAa,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,GAAG,SAAS,CAAC;IACtD,mBAAmB,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;IAC1D,yBAAyB,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;IAChE,gBAAgB,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;IACvD,sBAAsB,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;IAC7D,mBAAmB,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;IAC1D,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,gBAAgB,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;IACvD,mBAAmB,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;IAC1D,uEAAuE;IACvE,eAAe,CAAC,EAAE,eAAe,CAAC,iBAAiB,CAAC,CAAC;IACrD,YAAY,CAAC,EAAE,UAAU,GAAG,eAAe,CAAC;IAC5C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,qXAqB7B,oBAAoB,aAiBX,iBAAiB,sBA2I5B,CAAC;AA+BF,eAAO,MAAM,kBAAkB,GAAI,kCAIhC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,GAAG;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,sBAS9D,CAAC"}
|
|
@@ -7,7 +7,7 @@ var react_1 = tslib_1.__importStar(require("react"));
|
|
|
7
7
|
var atoms_1 = require("../atoms");
|
|
8
8
|
var helpers_1 = require("../helpers");
|
|
9
9
|
var useGridChildren = function (_a) {
|
|
10
|
-
var stickyEditor = _a.stickyEditor, editorComponent = _a.editorComponent, chartComponents = _a.chartComponents, embedComponents = _a.embedComponents, slicerComponents = _a.slicerComponents, pivotPlaceholders = _a.pivotPlaceholders, tableResizers = _a.tableResizers, hiddenColumnMarkers = _a.hiddenColumnMarkers, frozenHiddenColumnMarkers = _a.frozenHiddenColumnMarkers, hiddenRowMarkers = _a.hiddenRowMarkers, frozenHiddenRowMarkers = _a.frozenHiddenRowMarkers, _b = _a.gridLineWidth, gridLineWidth = _b === void 0 ? 1 : _b, frozenColumns = _a.frozenColumns, frozenRows = _a.frozenRows, headerMenuComponent = _a.headerMenuComponent, isHeaderMenuInFrozenColumn = _a.isHeaderMenuInFrozenColumn, popoverRange = _a.popoverRange, popoverComponent = _a.popoverComponent, cellExpandComponent = _a.cellExpandComponent;
|
|
10
|
+
var stickyEditor = _a.stickyEditor, editorComponent = _a.editorComponent, chartComponents = _a.chartComponents, embedComponents = _a.embedComponents, slicerComponents = _a.slicerComponents, pivotPlaceholders = _a.pivotPlaceholders, tableResizers = _a.tableResizers, hiddenColumnMarkers = _a.hiddenColumnMarkers, frozenHiddenColumnMarkers = _a.frozenHiddenColumnMarkers, hiddenRowMarkers = _a.hiddenRowMarkers, frozenHiddenRowMarkers = _a.frozenHiddenRowMarkers, _b = _a.gridLineWidth, gridLineWidth = _b === void 0 ? 1 : _b, frozenColumns = _a.frozenColumns, frozenRows = _a.frozenRows, headerMenuComponent = _a.headerMenuComponent, isHeaderMenuInFrozenColumn = _a.isHeaderMenuInFrozenColumn, popoverRange = _a.popoverRange, popoverComponent = _a.popoverComponent, cellExpandComponent = _a.cellExpandComponent, arrowComponents = _a.arrowComponents;
|
|
11
11
|
var editingCellCoordinate = (0, atoms_1.useEditingCellCoordinate)();
|
|
12
12
|
// Quite a bit of logic for non sticky editor
|
|
13
13
|
// Remove if majority dont use this
|
|
@@ -47,7 +47,8 @@ var useGridChildren = function (_a) {
|
|
|
47
47
|
slicerComponents.body,
|
|
48
48
|
pivotPlaceholders,
|
|
49
49
|
popoverPlacement === "body" ? popoverComponent : null,
|
|
50
|
-
cellExpandComponent
|
|
50
|
+
cellExpandComponent,
|
|
51
|
+
arrowComponents)),
|
|
51
52
|
react_1.default.createElement(exports.StyledGridChildren, { style: {
|
|
52
53
|
left: frozenColumnWidth + gridLineWidth,
|
|
53
54
|
} },
|
|
@@ -109,6 +110,7 @@ var useGridChildren = function (_a) {
|
|
|
109
110
|
popoverComponent,
|
|
110
111
|
popoverPlacement,
|
|
111
112
|
cellExpandComponent,
|
|
113
|
+
arrowComponents,
|
|
112
114
|
]);
|
|
113
115
|
};
|
|
114
116
|
exports.useGridChildren = useGridChildren;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-navigate-sheet-range.d.ts","sourceRoot":"","sources":["../../../hooks/use-navigate-sheet-range.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAE/D,OAAO,KAAK,EACV,eAAe,EACf,KAAK,EACL,UAAU,EACX,MAAM,2BAA2B,CAAC;AAMnC,MAAM,MAAM,uBAAuB,GAAG;IACpC,mBAAmB,EAAE,eAAe,CAAC,qBAAqB,CAAC,CAAC;IAC5D,kBAAkB,EAAE,eAAe,CAAC,oBAAoB,CAAC,CAAC;IAC1D,aAAa,EAAE,CACb,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,aAAa,EACrB,YAAY,CAAC,EAAE,OAAO,EACtB,KAAK,CAAC,EAAE,KAAK,KACV,IAAI,CAAC;IACV,KAAK,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CACrE,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,KAAK,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,oEAKrC,uBAAuB,kBAGP,UAAU,YAAY,eAAe,
|
|
1
|
+
{"version":3,"file":"use-navigate-sheet-range.d.ts","sourceRoot":"","sources":["../../../hooks/use-navigate-sheet-range.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAE/D,OAAO,KAAK,EACV,eAAe,EACf,KAAK,EACL,UAAU,EACX,MAAM,2BAA2B,CAAC;AAMnC,MAAM,MAAM,uBAAuB,GAAG;IACpC,mBAAmB,EAAE,eAAe,CAAC,qBAAqB,CAAC,CAAC;IAC5D,kBAAkB,EAAE,eAAe,CAAC,oBAAoB,CAAC,CAAC;IAC1D,aAAa,EAAE,CACb,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,aAAa,EACrB,YAAY,CAAC,EAAE,OAAO,EACtB,KAAK,CAAC,EAAE,KAAK,KACV,IAAI,CAAC;IACV,KAAK,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CACrE,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,KAAK,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,oEAKrC,uBAAuB,kBAGP,UAAU,YAAY,eAAe,SA4CvD,CAAC"}
|
|
@@ -19,8 +19,11 @@ var useNavigateToSheetRange = function (_a) {
|
|
|
19
19
|
};
|
|
20
20
|
// Switch to new sheet
|
|
21
21
|
onChangeActiveSheet === null || onChangeActiveSheet === void 0 ? void 0 : onChangeActiveSheet(sheetRange.sheetId);
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
// A single-cell target clears the selection, as a click on that cell
|
|
23
|
+
// does; leaving the previous range selected would send the next
|
|
24
|
+
// paste there instead of to the cell the user navigated to.
|
|
25
|
+
if (allowSelection) {
|
|
26
|
+
onChangeSelections === null || onChangeSelections === void 0 ? void 0 : onChangeSelections(sheetRange.sheetId, (0, selections_1.isSheetRangeACell)(sheetRange) ? [] : [{ range: sheetRange }]);
|
|
24
27
|
}
|
|
25
28
|
// Set active cell
|
|
26
29
|
if (allowSelection) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { HiddenType, ViewPortProps } from "@rowsncolumns/grid";
|
|
1
|
+
import type { HiddenType, LineHeightMode, ViewPortProps } from "@rowsncolumns/grid";
|
|
2
2
|
import type { CanvasGridProps } from "../components/canvas-grid/typings";
|
|
3
3
|
import type { AXIS, Color, TextFormatRun } from "../types";
|
|
4
4
|
type GetColumnWidthOptions = {
|
|
@@ -41,6 +41,12 @@ export interface UseSizerProps {
|
|
|
41
41
|
fontSize?: number;
|
|
42
42
|
fontWeight?: string;
|
|
43
43
|
fontStyle?: string;
|
|
44
|
+
/**
|
|
45
|
+
* Where the height of one line of text comes from — the font's own
|
|
46
|
+
* metrics (default) or the legacy `fontSize * 1.2` box. Must match the
|
|
47
|
+
* painter's `lineHeightMode` or wrapped rows clip (#1141).
|
|
48
|
+
*/
|
|
49
|
+
lineHeightMode?: LineHeightMode;
|
|
44
50
|
/**
|
|
45
51
|
* Strategy used to calculate column width
|
|
46
52
|
* lazy = visible rows
|
|
@@ -144,7 +150,7 @@ export interface GetCellDimensionsOptions {
|
|
|
144
150
|
* TODO
|
|
145
151
|
* Dynamically resize columns after user has scrolled down/view port changed ?
|
|
146
152
|
*/
|
|
147
|
-
export declare const useSizer: ({ getTextFormat, getTextFormatRuns, initialVisibleRows, initialVisibleColumns, cellVerticalSpacing, cellHorizontalSpacing, minColumnDimension, minRowDimension, resizeStrategy, rowCount, columnCount, getDataRowCount, fontFamily, fontSize, fontWeight, fontStyle, frozenRows, frozenColumns, scale, isHiddenRow, isHiddenColumn, getTextValue, getSpacing, getViewPort, shouldWrapCell, columnWidth, getActualCellWidth, }: UseSizerProps) => {
|
|
153
|
+
export declare const useSizer: ({ getTextFormat, getTextFormatRuns, initialVisibleRows, initialVisibleColumns, cellVerticalSpacing, cellHorizontalSpacing, minColumnDimension, minRowDimension, resizeStrategy, rowCount, columnCount, getDataRowCount, fontFamily, fontSize, fontWeight, fontStyle, lineHeightMode, frozenRows, frozenColumns, scale, isHiddenRow, isHiddenColumn, getTextValue, getSpacing, getViewPort, shouldWrapCell, columnWidth, getActualCellWidth, }: UseSizerProps) => {
|
|
148
154
|
getColumnWidth: (sheetId: number, columnIndex: number, options?: GetColumnWidthOptions) => number;
|
|
149
155
|
getTextDimension: (sheetId: number, rowIndex: number, columnIndex: number, formattedValue: string | undefined, customTextFormat?: TextFormat) => {
|
|
150
156
|
width: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-sizer.d.ts","sourceRoot":"","sources":["../../../hooks/use-sizer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"use-sizer.d.ts","sourceRoot":"","sources":["../../../hooks/use-sizer.ts"],"names":[],"mappings":"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"}
|