sheet-happens 0.0.55 → 0.0.57
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/clipboard.d.ts +6 -10
- package/dist/index.js +150 -70
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +150 -70
- package/dist/index.modern.js.map +1 -1
- package/dist/mouse.d.ts +1 -1
- package/dist/sheet.d.ts +7 -6
- package/dist/types.d.ts +15 -3
- package/package.json +2 -2
package/dist/index.modern.js
CHANGED
|
@@ -35,6 +35,15 @@ function _extends() {
|
|
|
35
35
|
return n;
|
|
36
36
|
}, _extends.apply(null, arguments);
|
|
37
37
|
}
|
|
38
|
+
function _objectWithoutPropertiesLoose(r, e) {
|
|
39
|
+
if (null == r) return {};
|
|
40
|
+
var t = {};
|
|
41
|
+
for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
|
|
42
|
+
if (e.includes(n)) continue;
|
|
43
|
+
t[n] = r[n];
|
|
44
|
+
}
|
|
45
|
+
return t;
|
|
46
|
+
}
|
|
38
47
|
function _unsupportedIterableToArray(r, a) {
|
|
39
48
|
if (r) {
|
|
40
49
|
if ("string" == typeof r) return _arrayLikeToArray(r, a);
|
|
@@ -969,7 +978,7 @@ var useMouse = function useMouse(elementRef, dataOffset, hitmapRef, selection, k
|
|
|
969
978
|
pixelToRow = _ref$current2$cellLay.pixelToRow;
|
|
970
979
|
onFocusChange === null || onFocusChange === void 0 ? void 0 : onFocusChange(true);
|
|
971
980
|
if (knobArea && draggingKnob) {
|
|
972
|
-
var changes = parseKnobOperation(knobArea, selection,
|
|
981
|
+
var changes = parseKnobOperation(knobArea, selection, editData, sourceData, cellReadOnly);
|
|
973
982
|
onChange === null || onChange === void 0 ? void 0 : onChange(changes);
|
|
974
983
|
onSelectionChange === null || onSelectionChange === void 0 ? void 0 : onSelectionChange(knobArea, true, true);
|
|
975
984
|
onKnobAreaChange === null || onKnobAreaChange === void 0 ? void 0 : onKnobAreaChange(null);
|
|
@@ -1406,7 +1415,7 @@ var useMouse = function useMouse(elementRef, dataOffset, hitmapRef, selection, k
|
|
|
1406
1415
|
mouseHandlers: mouseHandlers
|
|
1407
1416
|
};
|
|
1408
1417
|
};
|
|
1409
|
-
var parseKnobOperation = function parseKnobOperation(knobArea, selection,
|
|
1418
|
+
var parseKnobOperation = function parseKnobOperation(knobArea, selection, editData, sourceData, cellReadOnly) {
|
|
1410
1419
|
var _normalizeSelection7 = normalizeSelection(knobArea),
|
|
1411
1420
|
_normalizeSelection7$ = _normalizeSelection7[0],
|
|
1412
1421
|
kx1 = _normalizeSelection7$[0],
|
|
@@ -1441,12 +1450,14 @@ var parseKnobOperation = function parseKnobOperation(knobArea, selection, source
|
|
|
1441
1450
|
var srcY = sy1;
|
|
1442
1451
|
for (var y = fy1; y <= fy2; y++) {
|
|
1443
1452
|
for (var x = fx1; x <= fx2; x++) {
|
|
1444
|
-
var value =
|
|
1453
|
+
var value = editData(x, srcY);
|
|
1454
|
+
var data = sourceData(x, srcY);
|
|
1445
1455
|
if (!cellReadOnly(x, y)) {
|
|
1446
1456
|
changes.push({
|
|
1447
1457
|
x: x,
|
|
1448
1458
|
y: y,
|
|
1449
1459
|
value: value,
|
|
1460
|
+
data: data,
|
|
1450
1461
|
source: {
|
|
1451
1462
|
x: x,
|
|
1452
1463
|
y: srcY
|
|
@@ -1474,12 +1485,14 @@ var parseKnobOperation = function parseKnobOperation(knobArea, selection, source
|
|
|
1474
1485
|
var srcX = sx1;
|
|
1475
1486
|
for (var _x2 = fx1; _x2 <= fx2; _x2++) {
|
|
1476
1487
|
for (var _y2 = fy1; _y2 <= fy2; _y2++) {
|
|
1477
|
-
var _value =
|
|
1488
|
+
var _value = editData(srcX, _y2);
|
|
1489
|
+
var _data = sourceData(srcX, _y2);
|
|
1478
1490
|
if (!cellReadOnly(_x2, _y2)) {
|
|
1479
1491
|
changes.push({
|
|
1480
1492
|
x: _x2,
|
|
1481
1493
|
y: _y2,
|
|
1482
1494
|
value: _value,
|
|
1495
|
+
data: _data,
|
|
1483
1496
|
source: {
|
|
1484
1497
|
x: srcX,
|
|
1485
1498
|
y: _y2
|
|
@@ -2173,11 +2186,13 @@ function _catch(body, recover) {
|
|
|
2173
2186
|
return result;
|
|
2174
2187
|
}
|
|
2175
2188
|
|
|
2189
|
+
var _excluded = ["rows"],
|
|
2190
|
+
_excluded2 = ["origin"];
|
|
2176
2191
|
var NON_BREAKING_SPACE = ' ';
|
|
2177
2192
|
var EMPTY_TABLE = {
|
|
2178
2193
|
rows: []
|
|
2179
2194
|
};
|
|
2180
|
-
var useClipboardTable = function useClipboardTable() {
|
|
2195
|
+
var useClipboardTable = function useClipboardTable(clipboardOrigin) {
|
|
2181
2196
|
var _useState = useState(),
|
|
2182
2197
|
peek = _useState[0],
|
|
2183
2198
|
setPeek = _useState[1];
|
|
@@ -2194,22 +2209,17 @@ var useClipboardTable = function useClipboardTable() {
|
|
|
2194
2209
|
};
|
|
2195
2210
|
var hardRefresh = function hardRefresh() {
|
|
2196
2211
|
try {
|
|
2197
|
-
var
|
|
2198
|
-
return Promise.resolve(
|
|
2199
|
-
|
|
2200
|
-
|
|
2201
|
-
|
|
2202
|
-
|
|
2203
|
-
|
|
2204
|
-
|
|
2205
|
-
} else {
|
|
2206
|
-
setPeek(EMPTY_TABLE);
|
|
2207
|
-
}
|
|
2208
|
-
}();
|
|
2209
|
-
if (_temp && _temp.then) return _temp.then(function () {});
|
|
2212
|
+
var _temp = _catch(function () {
|
|
2213
|
+
return Promise.resolve(pasteClipboardTable()).then(function (pasted) {
|
|
2214
|
+
if (pasted) {
|
|
2215
|
+
var _peek = validateClipboardTable(pasted, clipboardOrigin);
|
|
2216
|
+
setPeek(_peek);
|
|
2217
|
+
} else {
|
|
2218
|
+
setPeek(EMPTY_TABLE);
|
|
2219
|
+
}
|
|
2210
2220
|
});
|
|
2211
2221
|
}, function () {});
|
|
2212
|
-
return Promise.resolve(
|
|
2222
|
+
return Promise.resolve(_temp && _temp.then ? _temp.then(function () {}) : void 0);
|
|
2213
2223
|
} catch (e) {
|
|
2214
2224
|
return Promise.reject(e);
|
|
2215
2225
|
}
|
|
@@ -2234,19 +2244,36 @@ var useClipboardTable = function useClipboardTable() {
|
|
|
2234
2244
|
return {
|
|
2235
2245
|
peek: peek,
|
|
2236
2246
|
canPaste: canPaste,
|
|
2237
|
-
copyTable:
|
|
2238
|
-
|
|
2247
|
+
copyTable: function copyTable(_ref) {
|
|
2248
|
+
var rows = _ref.rows,
|
|
2249
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
2250
|
+
return copyClipboardTable(rows, _extends({
|
|
2251
|
+
origin: clipboardOrigin
|
|
2252
|
+
}, rest));
|
|
2253
|
+
},
|
|
2254
|
+
pasteTable: function () {
|
|
2255
|
+
try {
|
|
2256
|
+
return Promise.resolve(pasteClipboardTable()).then(function (pasted) {
|
|
2257
|
+
return pasted ? validateClipboardTable(pasted, clipboardOrigin) : null;
|
|
2258
|
+
});
|
|
2259
|
+
} catch (e) {
|
|
2260
|
+
return Promise.reject(e);
|
|
2261
|
+
}
|
|
2262
|
+
}
|
|
2239
2263
|
};
|
|
2240
2264
|
};
|
|
2241
|
-
var useClipboardAPI = function useClipboardAPI(selection, editData, cellReadOnly, addListener, onSelectionChange, onChange, onCopy, onPaste) {
|
|
2242
|
-
|
|
2265
|
+
var useClipboardAPI = function useClipboardAPI(selection, editData, sourceData, cellReadOnly, addListener, onSelectionChange, onChange, onCopy, onPaste, clipboardOrigin) {
|
|
2266
|
+
if (clipboardOrigin === void 0) {
|
|
2267
|
+
clipboardOrigin = '';
|
|
2268
|
+
}
|
|
2269
|
+
var _useClipboardTable = useClipboardTable(clipboardOrigin),
|
|
2243
2270
|
canPaste = _useClipboardTable.canPaste,
|
|
2244
2271
|
copyTable = _useClipboardTable.copyTable,
|
|
2245
2272
|
pasteTable = _useClipboardTable.pasteTable;
|
|
2246
2273
|
var pasteIntoSelection = useCallback(function (selection, table) {
|
|
2247
2274
|
try {
|
|
2248
2275
|
var rows = table.rows,
|
|
2249
|
-
|
|
2276
|
+
data = table.data;
|
|
2250
2277
|
var _normalizeSelection = normalizeSelection(selection),
|
|
2251
2278
|
min = _normalizeSelection[0],
|
|
2252
2279
|
max = _normalizeSelection[1];
|
|
@@ -2262,19 +2289,22 @@ var useClipboardAPI = function useClipboardAPI(selection, editData, cellReadOnly
|
|
|
2262
2289
|
var repeatX = Math.max(1, Math.floor(selectionSize[0]));
|
|
2263
2290
|
var repeatY = Math.max(1, Math.floor(selectionSize[1]));
|
|
2264
2291
|
var newSelection = [min, addXY(min, [width * repeatX - 1, height * repeatY - 1])];
|
|
2265
|
-
return Promise.resolve(onPaste === null || onPaste === void 0 ? void 0 : onPaste(newSelection,
|
|
2292
|
+
return Promise.resolve(onPaste === null || onPaste === void 0 ? void 0 : onPaste(newSelection, table)).then(function (shouldPaste) {
|
|
2266
2293
|
if (shouldPaste !== false) {
|
|
2267
2294
|
var changes = rows.flatMap(function (row, j) {
|
|
2268
2295
|
return row.flatMap(function (value, i) {
|
|
2269
2296
|
var cells = [];
|
|
2270
2297
|
for (var rx = 0; rx < repeatX; ++rx) {
|
|
2271
2298
|
for (var ry = 0; ry < repeatY; ++ry) {
|
|
2299
|
+
var _data$cells, _data$cells$j;
|
|
2272
2300
|
var x = left + i + rx * width;
|
|
2273
2301
|
var y = top + j + ry * height;
|
|
2302
|
+
var v = data === null || data === void 0 ? void 0 : (_data$cells = data.cells) === null || _data$cells === void 0 ? void 0 : (_data$cells$j = _data$cells[j]) === null || _data$cells$j === void 0 ? void 0 : _data$cells$j[i];
|
|
2274
2303
|
if (!(cellReadOnly !== null && cellReadOnly !== void 0 && cellReadOnly(x, y))) cells.push({
|
|
2275
2304
|
x: x,
|
|
2276
2305
|
y: y,
|
|
2277
|
-
value: value
|
|
2306
|
+
value: value,
|
|
2307
|
+
data: v
|
|
2278
2308
|
});
|
|
2279
2309
|
}
|
|
2280
2310
|
}
|
|
@@ -2296,11 +2326,10 @@ var useClipboardAPI = function useClipboardAPI(selection, editData, cellReadOnly
|
|
|
2296
2326
|
cut = false;
|
|
2297
2327
|
}
|
|
2298
2328
|
try {
|
|
2299
|
-
var
|
|
2300
|
-
var
|
|
2301
|
-
|
|
2302
|
-
|
|
2303
|
-
if ((_payload$cut = payload === null || payload === void 0 ? void 0 : payload.cut) != null ? _payload$cut : cut) {
|
|
2329
|
+
var _onCopy, _table$cut;
|
|
2330
|
+
var table = (_onCopy = onCopy === null || onCopy === void 0 ? void 0 : onCopy(selection, cut)) != null ? _onCopy : formatSelectionAsRows(selection, editData, sourceData);
|
|
2331
|
+
copyTable(table);
|
|
2332
|
+
if ((_table$cut = table === null || table === void 0 ? void 0 : table.cut) != null ? _table$cut : cut) {
|
|
2304
2333
|
var changes = [];
|
|
2305
2334
|
forSelectionRows(selection)(function (y) {
|
|
2306
2335
|
forSelectionColumns(selection)(function (x) {
|
|
@@ -2308,7 +2337,8 @@ var useClipboardAPI = function useClipboardAPI(selection, editData, cellReadOnly
|
|
|
2308
2337
|
var change = {
|
|
2309
2338
|
x: x,
|
|
2310
2339
|
y: y,
|
|
2311
|
-
value: ''
|
|
2340
|
+
value: '',
|
|
2341
|
+
data: null
|
|
2312
2342
|
};
|
|
2313
2343
|
changes.push(change);
|
|
2314
2344
|
}
|
|
@@ -2338,8 +2368,11 @@ var useClipboardAPI = function useClipboardAPI(selection, editData, cellReadOnly
|
|
|
2338
2368
|
try {
|
|
2339
2369
|
e.preventDefault();
|
|
2340
2370
|
var clipboardData = e.clipboardData || window.clipboardData;
|
|
2341
|
-
return Promise.resolve(parseClipboardTable(clipboardData)).then(function (
|
|
2342
|
-
if (
|
|
2371
|
+
return Promise.resolve(parseClipboardTable(clipboardData)).then(function (parsed) {
|
|
2372
|
+
if (parsed) {
|
|
2373
|
+
var table = validateClipboardTable(parsed, clipboardOrigin);
|
|
2374
|
+
if (table) pasteIntoSelection(selection, table);
|
|
2375
|
+
}
|
|
2343
2376
|
});
|
|
2344
2377
|
} catch (e) {
|
|
2345
2378
|
return Promise.reject(e);
|
|
@@ -2365,6 +2398,21 @@ var useClipboardAPI = function useClipboardAPI(selection, editData, cellReadOnly
|
|
|
2365
2398
|
onClipboardPaste: onClipboardPaste
|
|
2366
2399
|
};
|
|
2367
2400
|
};
|
|
2401
|
+
var validateClipboardTable = function validateClipboardTable(parsed, clipboardOrigin) {
|
|
2402
|
+
var rows = parsed.rows,
|
|
2403
|
+
payload = parsed.payload;
|
|
2404
|
+
if (!payload) return {
|
|
2405
|
+
rows: rows
|
|
2406
|
+
};
|
|
2407
|
+
var origin = payload.origin,
|
|
2408
|
+
rest = _objectWithoutPropertiesLoose(payload, _excluded2);
|
|
2409
|
+
if (origin === clipboardOrigin) return _extends({
|
|
2410
|
+
rows: rows
|
|
2411
|
+
}, rest);
|
|
2412
|
+
return {
|
|
2413
|
+
rows: rows
|
|
2414
|
+
};
|
|
2415
|
+
};
|
|
2368
2416
|
var copyClipboardTable = function copyClipboardTable(rows, payload) {
|
|
2369
2417
|
try {
|
|
2370
2418
|
var text = formatRowsAsTSV(rows);
|
|
@@ -2388,8 +2436,7 @@ var pasteClipboardTable = function pasteClipboardTable() {
|
|
|
2388
2436
|
try {
|
|
2389
2437
|
return Promise.resolve(navigator.clipboard.read()).then(function (items) {
|
|
2390
2438
|
var item = items[0];
|
|
2391
|
-
|
|
2392
|
-
return parseClipboardTable(item);
|
|
2439
|
+
return item ? Promise.resolve(parseClipboardTable(item)) : null;
|
|
2393
2440
|
});
|
|
2394
2441
|
} catch (e) {
|
|
2395
2442
|
return Promise.reject(e);
|
|
@@ -2397,7 +2444,7 @@ var pasteClipboardTable = function pasteClipboardTable() {
|
|
|
2397
2444
|
};
|
|
2398
2445
|
var parseClipboardTable = function parseClipboardTable(item) {
|
|
2399
2446
|
try {
|
|
2400
|
-
var
|
|
2447
|
+
var _temp4 = function _temp4() {
|
|
2401
2448
|
return rows ? {
|
|
2402
2449
|
rows: rows,
|
|
2403
2450
|
payload: payload
|
|
@@ -2415,7 +2462,7 @@ var parseClipboardTable = function parseClipboardTable(item) {
|
|
|
2415
2462
|
return '';
|
|
2416
2463
|
};
|
|
2417
2464
|
var rows, payload;
|
|
2418
|
-
var
|
|
2465
|
+
var _temp3 = function () {
|
|
2419
2466
|
if (has('text/html')) {
|
|
2420
2467
|
return Promise.resolve(get('text/html')).then(function (pastedHtml) {
|
|
2421
2468
|
var _parsePastedHtml = parsePastedHtml(pastedHtml);
|
|
@@ -2423,17 +2470,17 @@ var parseClipboardTable = function parseClipboardTable(item) {
|
|
|
2423
2470
|
payload = _parsePastedHtml.payload;
|
|
2424
2471
|
});
|
|
2425
2472
|
} else {
|
|
2426
|
-
var
|
|
2473
|
+
var _temp5 = function () {
|
|
2427
2474
|
if (has('text/plain')) {
|
|
2428
2475
|
return Promise.resolve(get('text/plain')).then(function (text) {
|
|
2429
2476
|
rows = parsePastedText(text);
|
|
2430
2477
|
});
|
|
2431
2478
|
}
|
|
2432
2479
|
}();
|
|
2433
|
-
if (
|
|
2480
|
+
if (_temp5 && _temp5.then) return _temp5.then(function () {});
|
|
2434
2481
|
}
|
|
2435
2482
|
}();
|
|
2436
|
-
return Promise.resolve(
|
|
2483
|
+
return Promise.resolve(_temp3 && _temp3.then ? _temp3.then(_temp4) : _temp4(_temp3));
|
|
2437
2484
|
} catch (e) {
|
|
2438
2485
|
return Promise.reject(e);
|
|
2439
2486
|
}
|
|
@@ -2462,12 +2509,15 @@ var formatRowsAsHTML = function formatRowsAsHTML(rows, payload) {
|
|
|
2462
2509
|
return table;
|
|
2463
2510
|
};
|
|
2464
2511
|
var formatTextAsHTML = function formatTextAsHTML(s) {
|
|
2465
|
-
|
|
2512
|
+
var _s$toString$replace;
|
|
2513
|
+
return (_s$toString$replace = s === null || s === void 0 ? void 0 : s.toString().replace(/[&"'<>]/g, function (i) {
|
|
2466
2514
|
return "&#" + i.charCodeAt(0) + ";";
|
|
2467
|
-
});
|
|
2515
|
+
})) != null ? _s$toString$replace : '';
|
|
2468
2516
|
};
|
|
2469
|
-
var formatSelectionAsRows = function formatSelectionAsRows(selection, editData) {
|
|
2470
|
-
if (isEmptySelection(selection)) return
|
|
2517
|
+
var formatSelectionAsRows = function formatSelectionAsRows(selection, editData, sourceData) {
|
|
2518
|
+
if (isEmptySelection(selection)) return {
|
|
2519
|
+
rows: []
|
|
2520
|
+
};
|
|
2471
2521
|
var _normalizeSelection2 = normalizeSelection(selection),
|
|
2472
2522
|
_normalizeSelection2$ = _normalizeSelection2[0],
|
|
2473
2523
|
minX = _normalizeSelection2$[0],
|
|
@@ -2487,18 +2537,27 @@ var formatSelectionAsRows = function formatSelectionAsRows(selection, editData)
|
|
|
2487
2537
|
minY = 0;
|
|
2488
2538
|
maxY = cellY;
|
|
2489
2539
|
}
|
|
2490
|
-
var
|
|
2540
|
+
var texts = [];
|
|
2541
|
+
var datas = {};
|
|
2491
2542
|
for (var y = minY; y <= maxY; y++) {
|
|
2492
|
-
var
|
|
2543
|
+
var textRow = [];
|
|
2544
|
+
var dataRow = {};
|
|
2493
2545
|
for (var x = minX; x <= maxX; x++) {
|
|
2494
|
-
var
|
|
2495
|
-
|
|
2496
|
-
|
|
2497
|
-
|
|
2546
|
+
var _editData, _sourceData;
|
|
2547
|
+
var value = (_editData = editData(x, y)) != null ? _editData : '';
|
|
2548
|
+
var data = (_sourceData = sourceData(x, y)) != null ? _sourceData : null;
|
|
2549
|
+
dataRow[textRow.length] = data;
|
|
2550
|
+
textRow.push(value);
|
|
2498
2551
|
}
|
|
2499
|
-
|
|
2552
|
+
datas[texts.length] = dataRow;
|
|
2553
|
+
texts.push(textRow);
|
|
2500
2554
|
}
|
|
2501
|
-
return
|
|
2555
|
+
return {
|
|
2556
|
+
rows: texts,
|
|
2557
|
+
data: {
|
|
2558
|
+
cells: datas
|
|
2559
|
+
}
|
|
2560
|
+
};
|
|
2502
2561
|
};
|
|
2503
2562
|
var _findTag = function findTag(element, tagName) {
|
|
2504
2563
|
for (var _iterator = _createForOfIteratorHelperLoose(element.children), _step; !(_step = _iterator()).done;) {
|
|
@@ -2522,9 +2581,11 @@ var parsePastedHtml = function parsePastedHtml(html) {
|
|
|
2522
2581
|
var json = sheetNode.getAttribute('payload');
|
|
2523
2582
|
try {
|
|
2524
2583
|
payload = JSON.parse(json);
|
|
2584
|
+
if (!payload || typeof payload !== 'object') payload = null;
|
|
2525
2585
|
} catch (e) {}
|
|
2526
2586
|
}
|
|
2527
2587
|
var tableNode = _findTag(div, 'TABLE');
|
|
2588
|
+
var spanNode = _findTag(div, 'SPAN');
|
|
2528
2589
|
if (tableNode) {
|
|
2529
2590
|
for (var _iterator2 = _createForOfIteratorHelperLoose(tableNode.children), _step2; !(_step2 = _iterator2()).done;) {
|
|
2530
2591
|
var tableChild = _step2.value;
|
|
@@ -2557,6 +2618,12 @@ var parsePastedHtml = function parsePastedHtml(html) {
|
|
|
2557
2618
|
}
|
|
2558
2619
|
}
|
|
2559
2620
|
}
|
|
2621
|
+
} else if (spanNode) {
|
|
2622
|
+
var _str = '';
|
|
2623
|
+
_str = spanNode.textContent.trim();
|
|
2624
|
+
_str = _str.replaceAll('\n', '');
|
|
2625
|
+
_str = _str.replaceAll(/\s\s+/g, ' ');
|
|
2626
|
+
rows.push([_str]);
|
|
2560
2627
|
}
|
|
2561
2628
|
return {
|
|
2562
2629
|
rows: rows,
|
|
@@ -3420,7 +3487,7 @@ var resolveSheetStyle = function resolveSheetStyle(sheetStyle) {
|
|
|
3420
3487
|
};
|
|
3421
3488
|
|
|
3422
3489
|
var Sheet = forwardRef(function (props, ref) {
|
|
3423
|
-
var _props$selection, _props$secondarySelec, _props$cacheLayout, _props$
|
|
3490
|
+
var _props$selection, _props$secondarySelec, _props$cacheLayout, _props$clipboardOrigi, _props$inputComponent2;
|
|
3424
3491
|
var canvasRef = useRef(null);
|
|
3425
3492
|
var overlayRef = useRef(null);
|
|
3426
3493
|
var _useState = useState(INITIAL_MAX_SCROLL),
|
|
@@ -3461,9 +3528,12 @@ var Sheet = forwardRef(function (props, ref) {
|
|
|
3461
3528
|
var _useState11 = useState(''),
|
|
3462
3529
|
editValue = _useState11[0],
|
|
3463
3530
|
setEditValue = _useState11[1];
|
|
3464
|
-
var _useState12 = useState(
|
|
3465
|
-
|
|
3466
|
-
|
|
3531
|
+
var _useState12 = useState(null),
|
|
3532
|
+
sourceValue = _useState12[0],
|
|
3533
|
+
setSourceValue = _useState12[1];
|
|
3534
|
+
var _useState13 = useState(false),
|
|
3535
|
+
arrowKeyCommitMode = _useState13[0],
|
|
3536
|
+
setArrowKeyCommitMode = _useState13[1];
|
|
3467
3537
|
var _useResizeObserver = useResizeObserver({
|
|
3468
3538
|
ref: overlayRef
|
|
3469
3539
|
}),
|
|
@@ -3623,16 +3693,21 @@ var Sheet = forwardRef(function (props, ref) {
|
|
|
3623
3693
|
if (props.onChange) {
|
|
3624
3694
|
var cellX = editCell[0],
|
|
3625
3695
|
cellY = editCell[1];
|
|
3696
|
+
var hasData = !!input;
|
|
3697
|
+
var v = hasData ? null : value;
|
|
3698
|
+
var d = hasData ? value : null;
|
|
3626
3699
|
props.onChange([{
|
|
3627
3700
|
x: cellX,
|
|
3628
3701
|
y: cellY,
|
|
3629
|
-
value: value !== undefined ?
|
|
3702
|
+
value: value !== undefined ? v : editValue,
|
|
3703
|
+
data: value !== undefined ? d : sourceValue
|
|
3630
3704
|
}]);
|
|
3631
3705
|
}
|
|
3632
3706
|
setEditCell(NO_CELL);
|
|
3633
3707
|
setFocused(true);
|
|
3634
3708
|
};
|
|
3635
3709
|
var startEditingCell = function startEditingCell(editCell, arrowKeyCommitMode) {
|
|
3710
|
+
var _props$inputComponent, _editData, _sourceData;
|
|
3636
3711
|
if (arrowKeyCommitMode === void 0) {
|
|
3637
3712
|
arrowKeyCommitMode = false;
|
|
3638
3713
|
}
|
|
@@ -3641,13 +3716,18 @@ var Sheet = forwardRef(function (props, ref) {
|
|
|
3641
3716
|
if (cellReadOnly(cellX, cellY)) {
|
|
3642
3717
|
return;
|
|
3643
3718
|
}
|
|
3644
|
-
var
|
|
3645
|
-
|
|
3646
|
-
|
|
3647
|
-
|
|
3719
|
+
var hasData = !!((_props$inputComponent = props.inputComponent) !== null && _props$inputComponent !== void 0 && _props$inputComponent.call(props, cellX, cellY, _extends({}, inputProps, {
|
|
3720
|
+
onChange: function onChange() {}
|
|
3721
|
+
}), function () {}));
|
|
3722
|
+
var editValue = (_editData = editData(cellX, cellY)) != null ? _editData : '';
|
|
3723
|
+
var sourceValue = (_sourceData = sourceData(cellX, cellY)) != null ? _sourceData : null;
|
|
3724
|
+
if (hasData) {
|
|
3725
|
+
setEditValue(null);
|
|
3726
|
+
setSourceValue(sourceValue);
|
|
3727
|
+
} else {
|
|
3728
|
+
setEditValue(editValue);
|
|
3648
3729
|
}
|
|
3649
3730
|
setEditCell(editCell);
|
|
3650
|
-
setEditValue(val);
|
|
3651
3731
|
setArrowKeyCommitMode(arrowKeyCommitMode);
|
|
3652
3732
|
setLastEditKey(editKeys.apply(void 0, editCell));
|
|
3653
3733
|
};
|
|
@@ -3666,7 +3746,7 @@ var Sheet = forwardRef(function (props, ref) {
|
|
|
3666
3746
|
}, [maxRows, maxColumns]);
|
|
3667
3747
|
var hitmapRef = useRef(NO_CLICKABLES);
|
|
3668
3748
|
var isFocused = focused || editMode;
|
|
3669
|
-
var _useClipboardAPI = useClipboardAPI(selection, editData, cellReadOnly, isFocused && !editMode, changeSelection, props.onChange, props.onCopy, props.onPaste),
|
|
3749
|
+
var _useClipboardAPI = useClipboardAPI(selection, editData, sourceData, cellReadOnly, isFocused && !editMode, changeSelection, props.onChange, props.onCopy, props.onPaste, (_props$clipboardOrigi = props.clipboardOrigin) != null ? _props$clipboardOrigi : location.origin),
|
|
3670
3750
|
clipboardApi = _useClipboardAPI.clipboardApi,
|
|
3671
3751
|
onClipboardCopy = _useClipboardAPI.onClipboardCopy;
|
|
3672
3752
|
var onScroll = useScroll(dataOffset, maxScroll, cellLayout, setDataOffset, setMaxScroll);
|
|
@@ -3697,9 +3777,9 @@ var Sheet = forwardRef(function (props, ref) {
|
|
|
3697
3777
|
window.cancelAnimationFrame(animationFrameId);
|
|
3698
3778
|
};
|
|
3699
3779
|
}, [cellLayout, visibleCells, sheetStyle, cellStyle, selection, secondarySelections, isFocused, knobPosition, knobArea, dragOffset, dropTarget, columnHeaders, columnHeaderStyle, displayData, columnGroupKeys, rowGroupKeys, selectedColumnGroups, selectedRowGroups, dataOffset]);
|
|
3700
|
-
var
|
|
3701
|
-
lastEditKey =
|
|
3702
|
-
setLastEditKey =
|
|
3780
|
+
var _useState14 = useState(''),
|
|
3781
|
+
lastEditKey = _useState14[0],
|
|
3782
|
+
setLastEditKey = _useState14[1];
|
|
3703
3783
|
var editTextPosition = ORIGIN;
|
|
3704
3784
|
var editTextWidth = 0;
|
|
3705
3785
|
var editTextHeight = 0;
|
|
@@ -3732,7 +3812,7 @@ var Sheet = forwardRef(function (props, ref) {
|
|
|
3732
3812
|
textX = _editTextPosition[0],
|
|
3733
3813
|
textY = _editTextPosition[1];
|
|
3734
3814
|
var inputProps = {
|
|
3735
|
-
value: editValue,
|
|
3815
|
+
value: editValue != null ? editValue : '',
|
|
3736
3816
|
autoFocus: true,
|
|
3737
3817
|
onKeyDown: onInputKeyDown,
|
|
3738
3818
|
style: {
|
|
@@ -3753,8 +3833,8 @@ var Sheet = forwardRef(function (props, ref) {
|
|
|
3753
3833
|
resize: 'none'
|
|
3754
3834
|
}
|
|
3755
3835
|
};
|
|
3756
|
-
var input = (_props$
|
|
3757
|
-
onChange:
|
|
3836
|
+
var input = (_props$inputComponent2 = props.inputComponent) === null || _props$inputComponent2 === void 0 ? void 0 : _props$inputComponent2.call(props, editCellX, editCellY, _extends({}, inputProps, {
|
|
3837
|
+
onChange: setSourceValue
|
|
3758
3838
|
}), commitEditingCell);
|
|
3759
3839
|
var overlayDivClassName = styles.sheetscroll;
|
|
3760
3840
|
var overlayDivStyles = {
|