@fileverse-dev/fortune-core 1.3.10 → 1.3.11-mixed
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/es/api/range.js +20 -0
- package/es/api/sheet.js +30 -2
- package/es/events/keyboard.js +74 -37
- package/es/events/mouse.js +1 -0
- package/es/events/paste.js +124 -56
- package/es/locale/en.d.ts +3 -0
- package/es/locale/en.js +3 -0
- package/es/locale/es.d.ts +3 -0
- package/es/locale/es.js +3 -0
- package/es/locale/hi.d.ts +3 -0
- package/es/locale/hi.js +3 -0
- package/es/locale/index.d.ts +3 -0
- package/es/locale/zh.d.ts +3 -0
- package/es/locale/zh.js +3 -0
- package/es/locale/zh_tw.d.ts +3 -0
- package/es/locale/zh_tw.js +3 -0
- package/es/modules/ConditionFormat.js +26 -0
- package/es/modules/cell.js +58 -2
- package/es/modules/comment.js +129 -24
- package/es/modules/dataVerification.js +34 -1
- package/es/modules/dropCell.js +65 -1
- package/es/modules/format.js +12 -7
- package/es/modules/formula.js +14 -0
- package/es/modules/hyperlink.js +52 -5
- package/es/modules/merge.js +93 -1
- package/es/modules/moveCells.js +35 -9
- package/es/modules/rowcol.js +75 -2
- package/es/modules/searchReplace.js +58 -2
- package/es/modules/selection.js +152 -42
- package/es/modules/sort.js +74 -9
- package/es/modules/splitColumn.js +21 -0
- package/es/modules/toolbar.js +46 -3
- package/es/modules/validation.js +6 -3
- package/es/settings.d.ts +5 -0
- package/es/types.d.ts +2 -0
- package/lib/api/range.js +20 -0
- package/lib/api/sheet.js +29 -1
- package/lib/events/keyboard.js +74 -37
- package/lib/events/mouse.js +1 -0
- package/lib/events/paste.js +122 -54
- package/lib/locale/en.d.ts +3 -0
- package/lib/locale/en.js +3 -0
- package/lib/locale/es.d.ts +3 -0
- package/lib/locale/es.js +3 -0
- package/lib/locale/hi.d.ts +3 -0
- package/lib/locale/hi.js +3 -0
- package/lib/locale/index.d.ts +3 -0
- package/lib/locale/zh.d.ts +3 -0
- package/lib/locale/zh.js +3 -0
- package/lib/locale/zh_tw.d.ts +3 -0
- package/lib/locale/zh_tw.js +3 -0
- package/lib/modules/ConditionFormat.js +26 -0
- package/lib/modules/cell.js +58 -2
- package/lib/modules/comment.js +129 -24
- package/lib/modules/dataVerification.js +34 -1
- package/lib/modules/dropCell.js +65 -1
- package/lib/modules/format.js +12 -7
- package/lib/modules/formula.js +14 -0
- package/lib/modules/hyperlink.js +52 -5
- package/lib/modules/merge.js +93 -1
- package/lib/modules/moveCells.js +35 -9
- package/lib/modules/rowcol.js +75 -2
- package/lib/modules/searchReplace.js +58 -2
- package/lib/modules/selection.js +152 -42
- package/lib/modules/sort.js +74 -9
- package/lib/modules/splitColumn.js +21 -0
- package/lib/modules/toolbar.js +46 -3
- package/lib/modules/validation.js +6 -3
- package/lib/settings.d.ts +5 -0
- package/lib/types.d.ts +2 -0
- package/package.json +1 -1
package/es/api/range.js
CHANGED
|
@@ -78,6 +78,7 @@ export function setSelection(ctx, range, options) {
|
|
|
78
78
|
}
|
|
79
79
|
}
|
|
80
80
|
export function setCellValuesByRange(ctx, data, range, cellInput, options, callAfterUpdate) {
|
|
81
|
+
var _a, _b, _c, _d, _e;
|
|
81
82
|
if (options === void 0) {
|
|
82
83
|
options = {};
|
|
83
84
|
}
|
|
@@ -95,13 +96,32 @@ export function setCellValuesByRange(ctx, data, range, cellInput, options, callA
|
|
|
95
96
|
if (data.length !== rowCount || data[0].length !== columnCount) {
|
|
96
97
|
throw new Error("data size does not match range");
|
|
97
98
|
}
|
|
99
|
+
var sheet = getSheet(ctx, options);
|
|
100
|
+
var sheetId = sheet.id || ctx.currentSheetId;
|
|
101
|
+
var cellChanges = [];
|
|
98
102
|
for (var i = 0; i < rowCount; i += 1) {
|
|
99
103
|
for (var j = 0; j < columnCount; j += 1) {
|
|
100
104
|
var row = range.row[0] + i;
|
|
101
105
|
var column = range.column[0] + j;
|
|
102
106
|
setCellValue(ctx, row, column, data[i][j], cellInput, options, callAfterUpdate);
|
|
107
|
+
if (((_a = ctx === null || ctx === void 0 ? void 0 : ctx.hooks) === null || _a === void 0 ? void 0 : _a.updateCellYdoc) && sheet.data) {
|
|
108
|
+
cellChanges.push({
|
|
109
|
+
sheetId: sheetId,
|
|
110
|
+
path: ["celldata"],
|
|
111
|
+
value: {
|
|
112
|
+
r: row,
|
|
113
|
+
c: column,
|
|
114
|
+
v: (_d = (_c = (_b = sheet.data) === null || _b === void 0 ? void 0 : _b[row]) === null || _c === void 0 ? void 0 : _c[column]) !== null && _d !== void 0 ? _d : null
|
|
115
|
+
},
|
|
116
|
+
key: "".concat(row, "_").concat(column),
|
|
117
|
+
type: "update"
|
|
118
|
+
});
|
|
119
|
+
}
|
|
103
120
|
}
|
|
104
121
|
}
|
|
122
|
+
if (cellChanges.length > 0 && ((_e = ctx === null || ctx === void 0 ? void 0 : ctx.hooks) === null || _e === void 0 ? void 0 : _e.updateCellYdoc)) {
|
|
123
|
+
ctx.hooks.updateCellYdoc(cellChanges);
|
|
124
|
+
}
|
|
105
125
|
}
|
|
106
126
|
export function setCellFormatByRange(ctx, attr, value, range, options) {
|
|
107
127
|
if (options === void 0) {
|
package/es/api/sheet.js
CHANGED
|
@@ -13,7 +13,7 @@ import _ from "lodash";
|
|
|
13
13
|
import { v4 as uuidv4 } from "uuid";
|
|
14
14
|
import { dataToCelldata, getSheet } from "./common";
|
|
15
15
|
import { getSheetIndex } from "../utils";
|
|
16
|
-
import { api, execfunction, getFlowdata, insertUpdateFunctionGroup, locale, spillSortResult } from "..";
|
|
16
|
+
import { api, changeSheet, execfunction, getFlowdata, insertUpdateFunctionGroup, locale, spillSortResult } from "..";
|
|
17
17
|
function isCellReferenced(formulaString, cell) {
|
|
18
18
|
function colToNumber(col) {
|
|
19
19
|
var num = 0;
|
|
@@ -146,7 +146,7 @@ function generateCopySheetName(ctx, sheetId) {
|
|
|
146
146
|
return sheetCopyName;
|
|
147
147
|
}
|
|
148
148
|
export function copySheet(ctx, sheetId) {
|
|
149
|
-
var _a, _b, _c;
|
|
149
|
+
var _a, _b, _c, _d, _e;
|
|
150
150
|
var index = getSheetIndex(ctx, sheetId);
|
|
151
151
|
var order = ctx.luckysheetfile[index].order + 1;
|
|
152
152
|
var sheetName = generateCopySheetName(ctx, sheetId);
|
|
@@ -183,6 +183,34 @@ export function copySheet(ctx, sheetId) {
|
|
|
183
183
|
var sheetOrderList = {};
|
|
184
184
|
sheetOrderList[newSheetId] = order;
|
|
185
185
|
api.setSheetOrder(ctx, sheetOrderList);
|
|
186
|
+
changeSheet(ctx, newSheetId, undefined, true, true);
|
|
187
|
+
if ((_d = ctx === null || ctx === void 0 ? void 0 : ctx.hooks) === null || _d === void 0 ? void 0 : _d.updateAllCell) {
|
|
188
|
+
ctx.hooks.updateAllCell(newSheetId);
|
|
189
|
+
} else if ((_e = ctx === null || ctx === void 0 ? void 0 : ctx.hooks) === null || _e === void 0 ? void 0 : _e.updateCellYdoc) {
|
|
190
|
+
var changes_1 = [];
|
|
191
|
+
var celldata = newSheet.celldata || dataToCelldata(newSheet.data);
|
|
192
|
+
if (Array.isArray(celldata)) {
|
|
193
|
+
celldata.forEach(function (d) {
|
|
194
|
+
var _a;
|
|
195
|
+
if (d == null) return;
|
|
196
|
+
var r = d.r;
|
|
197
|
+
var c = d.c;
|
|
198
|
+
if (!_.isNumber(r) || !_.isNumber(c)) return;
|
|
199
|
+
changes_1.push({
|
|
200
|
+
sheetId: newSheetId,
|
|
201
|
+
path: ["celldata"],
|
|
202
|
+
key: "".concat(r, "_").concat(c),
|
|
203
|
+
value: {
|
|
204
|
+
r: r,
|
|
205
|
+
c: c,
|
|
206
|
+
v: (_a = d.v) !== null && _a !== void 0 ? _a : null
|
|
207
|
+
},
|
|
208
|
+
type: d.v == null ? "delete" : "update"
|
|
209
|
+
});
|
|
210
|
+
});
|
|
211
|
+
}
|
|
212
|
+
if (changes_1.length > 0) ctx.hooks.updateCellYdoc(changes_1);
|
|
213
|
+
}
|
|
186
214
|
}
|
|
187
215
|
export function calculateSheetFromula(ctx, id) {
|
|
188
216
|
var _a, _b, _c;
|
package/es/events/keyboard.js
CHANGED
|
@@ -169,63 +169,72 @@ function moveToEdge(sheetData, key, curr, rowDelta, colDelta, startR, endR, star
|
|
|
169
169
|
return colDelta === 0 ? r : c;
|
|
170
170
|
}
|
|
171
171
|
function handleControlPlusArrowKey(ctx, e, shiftPressed) {
|
|
172
|
-
|
|
172
|
+
var _a, _b, _c, _d;
|
|
173
173
|
var idx = getSheetIndex(ctx, ctx.currentSheetId);
|
|
174
174
|
if (_.isNil(idx)) return;
|
|
175
175
|
var file = ctx.luckysheetfile[idx];
|
|
176
|
-
if (!file || !file.row || !file.column) return;
|
|
177
176
|
var maxRow = file.row;
|
|
178
177
|
var maxCol = file.column;
|
|
179
|
-
|
|
180
|
-
|
|
178
|
+
if (_.isNil(maxRow) || _.isNil(maxCol)) return;
|
|
179
|
+
var last = ctx.luckysheet_select_save && ctx.luckysheet_select_save.length > 0 ? ctx.luckysheet_select_save[ctx.luckysheet_select_save.length - 1] : undefined;
|
|
181
180
|
if (!last) return;
|
|
182
181
|
var currR = last.row_focus;
|
|
183
182
|
var currC = last.column_focus;
|
|
184
183
|
if (_.isNil(currR) || _.isNil(currC)) return;
|
|
185
|
-
var startR = last.row[0];
|
|
186
|
-
var endR = last.row[1];
|
|
187
|
-
var startC = last.column[0];
|
|
188
|
-
var endC = last.column[1];
|
|
184
|
+
var startR = (_a = last.row) === null || _a === void 0 ? void 0 : _a[0];
|
|
185
|
+
var endR = (_b = last.row) === null || _b === void 0 ? void 0 : _b[1];
|
|
186
|
+
var startC = (_c = last.column) === null || _c === void 0 ? void 0 : _c[0];
|
|
187
|
+
var endC = (_d = last.column) === null || _d === void 0 ? void 0 : _d[1];
|
|
188
|
+
if (_.isNil(startR) || _.isNil(endR) || _.isNil(startC) || _.isNil(endC)) {
|
|
189
|
+
return;
|
|
190
|
+
}
|
|
189
191
|
var horizontalOffset = currC - endC !== 0 ? currC - endC : currC - startC;
|
|
190
192
|
var verticalOffset = currR - endR !== 0 ? currR - endR : currR - startR;
|
|
191
193
|
var sheetData = file.data;
|
|
192
194
|
if (!sheetData) return;
|
|
193
|
-
var selectedLimit;
|
|
194
195
|
switch (e.key) {
|
|
195
196
|
case "ArrowUp":
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
197
|
+
{
|
|
198
|
+
var selectedLimit = moveToEdge(sheetData, e.key, currC, -1, 0, startR, endR, startC, endC, maxRow, maxCol);
|
|
199
|
+
if (shiftPressed) {
|
|
200
|
+
moveHighlightRange(ctx, "down", verticalOffset, "rangeOfSelect");
|
|
201
|
+
moveHighlightRange(ctx, "down", selectedLimit - currR, "rangeOfSelect");
|
|
202
|
+
} else {
|
|
203
|
+
moveHighlightCell(ctx, "down", selectedLimit - currR, "rangeOfSelect");
|
|
204
|
+
}
|
|
202
205
|
}
|
|
203
206
|
break;
|
|
204
207
|
case "ArrowDown":
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
208
|
+
{
|
|
209
|
+
var selectedLimit = moveToEdge(sheetData, e.key, currC, 1, 0, startR, endR, startC, endC, maxRow, maxCol);
|
|
210
|
+
if (shiftPressed) {
|
|
211
|
+
moveHighlightRange(ctx, "down", verticalOffset, "rangeOfSelect");
|
|
212
|
+
moveHighlightRange(ctx, "down", selectedLimit - currR, "rangeOfSelect");
|
|
213
|
+
} else {
|
|
214
|
+
moveHighlightCell(ctx, "down", selectedLimit - currR, "rangeOfSelect");
|
|
215
|
+
}
|
|
211
216
|
}
|
|
212
217
|
break;
|
|
213
218
|
case "ArrowLeft":
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
219
|
+
{
|
|
220
|
+
var selectedLimit = moveToEdge(sheetData, e.key, currR, 0, -1, startR, endR, startC, endC, maxRow, maxCol);
|
|
221
|
+
if (shiftPressed) {
|
|
222
|
+
moveHighlightRange(ctx, "right", horizontalOffset, "rangeOfSelect");
|
|
223
|
+
moveHighlightRange(ctx, "right", selectedLimit - currC, "rangeOfSelect");
|
|
224
|
+
} else {
|
|
225
|
+
moveHighlightCell(ctx, "right", selectedLimit - currC, "rangeOfSelect");
|
|
226
|
+
}
|
|
220
227
|
}
|
|
221
228
|
break;
|
|
222
229
|
case "ArrowRight":
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
230
|
+
{
|
|
231
|
+
var selectedLimit = moveToEdge(sheetData, e.key, currR, 0, 1, startR, endR, startC, endC, maxRow, maxCol);
|
|
232
|
+
if (shiftPressed) {
|
|
233
|
+
moveHighlightRange(ctx, "right", horizontalOffset, "rangeOfSelect");
|
|
234
|
+
moveHighlightRange(ctx, "right", selectedLimit - currC, "rangeOfSelect");
|
|
235
|
+
} else {
|
|
236
|
+
moveHighlightCell(ctx, "right", selectedLimit - currC, "rangeOfSelect");
|
|
237
|
+
}
|
|
229
238
|
}
|
|
230
239
|
break;
|
|
231
240
|
default:
|
|
@@ -378,37 +387,51 @@ export function handleArrowKey(ctx, e) {
|
|
|
378
387
|
}
|
|
379
388
|
}
|
|
380
389
|
export function handleGlobalKeyDown(ctx, cellInput, fxInput, e, cache, handleUndo, handleRedo, canvas) {
|
|
381
|
-
var _a, _b, _c;
|
|
390
|
+
var _a, _b, _c, _d;
|
|
382
391
|
return __awaiter(this, void 0, void 0, function () {
|
|
383
|
-
var kcode, kstr, allowEdit, isFxInput, ignoredKeys, restCod, last, row_index, col_index, last, row_index, col_index;
|
|
384
|
-
return __generator(this, function (
|
|
392
|
+
var handledFlvShortcut, kcode, kstr, allowEdit, isFxInput, ignoredKeys, restCod, last, row_index, col_index, isEditing, inputText, isFormulaEdit, enteredByTyping, last, row_index, col_index;
|
|
393
|
+
return __generator(this, function (_e) {
|
|
385
394
|
if (e.shiftKey && e.code === "Space") {
|
|
386
395
|
e.stopImmediatePropagation();
|
|
387
396
|
e.stopPropagation();
|
|
388
397
|
e.preventDefault();
|
|
389
398
|
return [2];
|
|
390
399
|
}
|
|
400
|
+
handledFlvShortcut = false;
|
|
391
401
|
if ((e.ctrlKey || e.metaKey && e.shiftKey) && e.code === "KeyE") {
|
|
392
402
|
textFormat(ctx, "center");
|
|
403
|
+
handledFlvShortcut = true;
|
|
393
404
|
} else if ((e.ctrlKey || e.metaKey && e.shiftKey) && e.code === "KeyL") {
|
|
394
405
|
textFormat(ctx, "left");
|
|
406
|
+
handledFlvShortcut = true;
|
|
395
407
|
} else if ((e.ctrlKey || e.metaKey && e.shiftKey) && e.code === "KeyR") {
|
|
396
408
|
textFormat(ctx, "right");
|
|
409
|
+
handledFlvShortcut = true;
|
|
397
410
|
}
|
|
398
411
|
if ((e.metaKey || e.ctrlKey) && e.code === "KeyK") {
|
|
399
412
|
handleLink(ctx, cellInput);
|
|
400
413
|
}
|
|
401
414
|
if ((e.metaKey || e.ctrlKey) && !e.shiftKey && e.code === "Semicolon") {
|
|
402
415
|
fillDate(ctx);
|
|
416
|
+
handledFlvShortcut = true;
|
|
403
417
|
}
|
|
404
418
|
if ((e.metaKey || e.ctrlKey) && e.shiftKey && e.code === "Semicolon") {
|
|
405
419
|
fillTime(ctx);
|
|
420
|
+
handledFlvShortcut = true;
|
|
406
421
|
}
|
|
407
422
|
if ((e.metaKey || e.ctrlKey) && !e.shiftKey && e.code === "KeyR") {
|
|
408
423
|
fillRightData(ctx);
|
|
424
|
+
handledFlvShortcut = true;
|
|
409
425
|
}
|
|
410
426
|
if ((e.metaKey || e.ctrlKey) && e.code === "KeyD") {
|
|
411
427
|
fillDownData(ctx);
|
|
428
|
+
handledFlvShortcut = true;
|
|
429
|
+
}
|
|
430
|
+
if (handledFlvShortcut) {
|
|
431
|
+
jfrefreshgrid(ctx, null, undefined);
|
|
432
|
+
e.stopPropagation();
|
|
433
|
+
e.preventDefault();
|
|
434
|
+
return [2];
|
|
412
435
|
}
|
|
413
436
|
ctx.luckysheet_select_status = false;
|
|
414
437
|
kcode = e.keyCode;
|
|
@@ -475,7 +498,18 @@ export function handleGlobalKeyDown(ctx, cellInput, fxInput, e, cache, handleUnd
|
|
|
475
498
|
jfrefreshgrid(ctx, null, undefined);
|
|
476
499
|
e.preventDefault();
|
|
477
500
|
} else if (kstr === "ArrowUp" || kstr === "ArrowDown" || kstr === "ArrowLeft" || kstr === "ArrowRight") {
|
|
478
|
-
|
|
501
|
+
isEditing = ctx.luckysheetCellUpdate.length > 0;
|
|
502
|
+
inputText = (_d = cellInput === null || cellInput === void 0 ? void 0 : cellInput.innerText) !== null && _d !== void 0 ? _d : "";
|
|
503
|
+
isFormulaEdit = isEditing && inputText.trim().startsWith("=");
|
|
504
|
+
enteredByTyping = cache.enteredEditByTyping === true;
|
|
505
|
+
if (isEditing && !isFormulaEdit && enteredByTyping) {
|
|
506
|
+
updateCell(ctx, ctx.luckysheetCellUpdate[0], ctx.luckysheetCellUpdate[1], cellInput, undefined, canvas);
|
|
507
|
+
cache.enteredEditByTyping = false;
|
|
508
|
+
handleArrowKey(ctx, e);
|
|
509
|
+
e.preventDefault();
|
|
510
|
+
} else {
|
|
511
|
+
handleArrowKey(ctx, e);
|
|
512
|
+
}
|
|
479
513
|
} else if (!(kcode >= 112 && kcode <= 123 || kcode <= 46 || kcode === 144 || kcode === 108 || e.ctrlKey || e.altKey || e.shiftKey && (kcode === 37 || kcode === 38 || kcode === 39 || kcode === 40)) || kcode === 8 || kcode === 32 || kcode === 46 || kcode === 0 || e.ctrlKey && kcode === 86) {
|
|
480
514
|
if (!allowEdit) return [2];
|
|
481
515
|
if (String.fromCharCode(kcode) != null && !_.isEmpty(ctx.luckysheet_select_save) && kstr !== "CapsLock" && kstr !== "Win" && kcode !== 18) {
|
|
@@ -484,7 +518,10 @@ export function handleGlobalKeyDown(ctx, cellInput, fxInput, e, cache, handleUnd
|
|
|
484
518
|
col_index = last.column_focus;
|
|
485
519
|
ctx.luckysheetCellUpdate = [row_index, col_index];
|
|
486
520
|
cache.overwriteCell = true;
|
|
521
|
+
cache.overwriteCellFirstChar = e.key;
|
|
522
|
+
cache.enteredEditByTyping = true;
|
|
487
523
|
handleFormulaInput(ctx, fxInput, cellInput, kcode);
|
|
524
|
+
e.preventDefault();
|
|
488
525
|
}
|
|
489
526
|
}
|
|
490
527
|
}
|
package/es/events/mouse.js
CHANGED
|
@@ -487,6 +487,7 @@ export function handleCellAreaDoubleClick(ctx, globalCache, settings, e, contain
|
|
|
487
487
|
row_index = row_focus;
|
|
488
488
|
col_index = column_focus;
|
|
489
489
|
}
|
|
490
|
+
globalCache.enteredEditByTyping = false;
|
|
490
491
|
luckysheetUpdateCell(ctx, row_index, col_index);
|
|
491
492
|
}
|
|
492
493
|
export function handleContextMenu(ctx, settings, e, workbookContainer, container, area) {
|
package/es/events/paste.js
CHANGED
|
@@ -34,10 +34,10 @@ import { handlePastedTable } from "../paste-table-helpers";
|
|
|
34
34
|
import { getFlowdata } from "../context";
|
|
35
35
|
import { execfunction } from "../modules/formula";
|
|
36
36
|
import { getdatabyselection } from "../modules/cell";
|
|
37
|
-
import { update,
|
|
37
|
+
import { update, genarate } from "../modules/format";
|
|
38
38
|
import { normalizeSelection, selectionCache } from "../modules/selection";
|
|
39
39
|
import { getSheetIndex, isAllowEdit } from "../utils";
|
|
40
|
-
import { hasPartMC, isRealNum
|
|
40
|
+
import { hasPartMC, isRealNum } from "../modules/validation";
|
|
41
41
|
import { getBorderInfoCompute } from "../modules/border";
|
|
42
42
|
import { expandRowsAndColumns, storeSheetParamALL } from "../modules/sheet";
|
|
43
43
|
import { jfrefreshgrid } from "../modules/refresh";
|
|
@@ -203,19 +203,19 @@ var handleFormulaOnPaste = function handleFormulaOnPaste(ctx, d) {
|
|
|
203
203
|
cell.f = f;
|
|
204
204
|
cell.m = v.toString();
|
|
205
205
|
x[c] = cell;
|
|
206
|
+
changes.push({
|
|
207
|
+
sheetId: ctx.currentSheetId,
|
|
208
|
+
path: ["celldata"],
|
|
209
|
+
value: {
|
|
210
|
+
r: r,
|
|
211
|
+
c: c,
|
|
212
|
+
v: d[r][c]
|
|
213
|
+
},
|
|
214
|
+
key: "".concat(r, "_").concat(c),
|
|
215
|
+
type: "update"
|
|
216
|
+
});
|
|
206
217
|
}
|
|
207
218
|
d[r] = x;
|
|
208
|
-
changes.push({
|
|
209
|
-
sheetId: ctx.currentSheetId,
|
|
210
|
-
path: ["celldata"],
|
|
211
|
-
value: {
|
|
212
|
-
r: r,
|
|
213
|
-
c: c,
|
|
214
|
-
v: d[r][c]
|
|
215
|
-
},
|
|
216
|
-
key: "".concat(r, "_").concat(c),
|
|
217
|
-
type: "update"
|
|
218
|
-
});
|
|
219
219
|
}
|
|
220
220
|
}
|
|
221
221
|
if ((_b = ctx === null || ctx === void 0 ? void 0 : ctx.hooks) === null || _b === void 0 ? void 0 : _b.updateCellYdoc) {
|
|
@@ -223,7 +223,7 @@ var handleFormulaOnPaste = function handleFormulaOnPaste(ctx, d) {
|
|
|
223
223
|
}
|
|
224
224
|
};
|
|
225
225
|
function pasteHandler(ctx, data, borderInfo) {
|
|
226
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
226
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
|
227
227
|
if (ctx.luckysheet_selection_range) {
|
|
228
228
|
ctx.luckysheet_selection_range = [];
|
|
229
229
|
}
|
|
@@ -349,7 +349,9 @@ function pasteHandler(ctx, data, borderInfo) {
|
|
|
349
349
|
ctx.luckysheetfile[getSheetIndex(ctx, ctx.currentSheetId)].config = cfg;
|
|
350
350
|
}
|
|
351
351
|
jfrefreshgrid(ctx, null, undefined);
|
|
352
|
-
|
|
352
|
+
if (data.includes("=")) {
|
|
353
|
+
handleFormulaOnPaste(ctx, d);
|
|
354
|
+
}
|
|
353
355
|
} else {
|
|
354
356
|
data = data.replace(/\r/g, "");
|
|
355
357
|
var dataChe = [];
|
|
@@ -405,25 +407,39 @@ function pasteHandler(ctx, data, borderInfo) {
|
|
|
405
407
|
}
|
|
406
408
|
}
|
|
407
409
|
if (originCell) {
|
|
408
|
-
if (
|
|
409
|
-
var
|
|
410
|
-
if (
|
|
411
|
-
var
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
410
|
+
if (!isUrl) {
|
|
411
|
+
var generated = genarate(originalValueStr);
|
|
412
|
+
if (generated) {
|
|
413
|
+
var genM = generated[0],
|
|
414
|
+
genCt = generated[1],
|
|
415
|
+
genV = generated[2];
|
|
416
|
+
if ((genCt === null || genCt === void 0 ? void 0 : genCt.t) === "d") {
|
|
417
|
+
originCell.v = genV;
|
|
418
|
+
originCell.m = genM !== null && genM !== void 0 ? genM : originalValueStr;
|
|
419
|
+
originCell.ct = genCt;
|
|
420
|
+
} else {
|
|
421
|
+
originCell.v = value;
|
|
422
|
+
if (originCell.ct != null && originCell.ct.fa != null) {
|
|
423
|
+
if (originCell.ct.t === "d" && typeof originCell.v !== "number") {
|
|
424
|
+
originCell.m = String(originCell.v);
|
|
425
|
+
} else {
|
|
426
|
+
originCell.m = update(originCell.ct.fa, originCell.v);
|
|
427
|
+
}
|
|
428
|
+
} else {
|
|
429
|
+
originCell.m = typeof originCell.v === "boolean" ? String(originCell.v) : originCell.v;
|
|
430
|
+
}
|
|
431
|
+
}
|
|
422
432
|
} else {
|
|
423
|
-
originCell.
|
|
433
|
+
originCell.v = value;
|
|
434
|
+
if (originCell.ct != null && originCell.ct.fa != null) {
|
|
435
|
+
originCell.m = update(originCell.ct.fa, originCell.v);
|
|
436
|
+
} else {
|
|
437
|
+
originCell.m = typeof originCell.v === "boolean" ? String(originCell.v) : originCell.v;
|
|
438
|
+
}
|
|
424
439
|
}
|
|
425
440
|
} else {
|
|
426
|
-
originCell.
|
|
441
|
+
originCell.v = originalValueStr;
|
|
442
|
+
originCell.m = originalValueStr;
|
|
427
443
|
}
|
|
428
444
|
if (originCell.f != null && originCell.f.length > 0) {
|
|
429
445
|
originCell.f = "";
|
|
@@ -450,19 +466,24 @@ function pasteHandler(ctx, data, borderInfo) {
|
|
|
450
466
|
t: "s"
|
|
451
467
|
};
|
|
452
468
|
} else {
|
|
453
|
-
cell.v = originalValueStr;
|
|
454
|
-
cell.m = originalValueStr;
|
|
455
|
-
cell.ct = {
|
|
456
|
-
fa: "General",
|
|
457
|
-
t: "g"
|
|
458
|
-
};
|
|
459
469
|
if (/^0x?[a-fA-F0-9]+$/.test(value)) {
|
|
470
|
+
cell.v = value;
|
|
460
471
|
cell.m = value;
|
|
461
472
|
cell.ct = {
|
|
462
473
|
fa: "@",
|
|
463
474
|
t: "s"
|
|
464
475
|
};
|
|
465
|
-
|
|
476
|
+
} else {
|
|
477
|
+
var _m = (_j = genarate(originalValueStr)) !== null && _j !== void 0 ? _j : [],
|
|
478
|
+
m = _m[0],
|
|
479
|
+
ct = _m[1],
|
|
480
|
+
v = _m[2];
|
|
481
|
+
cell.v = v !== null && v !== void 0 ? v : originalValueStr;
|
|
482
|
+
cell.m = m != null ? String(m) : originalValueStr;
|
|
483
|
+
cell.ct = ct !== null && ct !== void 0 ? ct : {
|
|
484
|
+
fa: "General",
|
|
485
|
+
t: "g"
|
|
486
|
+
};
|
|
466
487
|
}
|
|
467
488
|
}
|
|
468
489
|
if (isUrl && url) {
|
|
@@ -479,27 +500,29 @@ function pasteHandler(ctx, data, borderInfo) {
|
|
|
479
500
|
}
|
|
480
501
|
x[c + curC] = cell;
|
|
481
502
|
}
|
|
482
|
-
changes.push(
|
|
503
|
+
changes.push({
|
|
483
504
|
sheetId: ctx.currentSheetId,
|
|
484
505
|
path: ["celldata"],
|
|
485
506
|
value: {
|
|
486
|
-
r: r,
|
|
487
|
-
c: c,
|
|
488
|
-
v: d[r][c]
|
|
507
|
+
r: r + curR,
|
|
508
|
+
c: c + curC,
|
|
509
|
+
v: d[r + curR][c + curC]
|
|
489
510
|
},
|
|
490
|
-
key: "".concat(r, "_").concat(c),
|
|
511
|
+
key: "".concat(r + curR, "_").concat(c + curC),
|
|
491
512
|
type: "update"
|
|
492
|
-
})
|
|
513
|
+
});
|
|
493
514
|
}
|
|
494
515
|
d[r + curR] = x;
|
|
495
516
|
}
|
|
496
|
-
if ((
|
|
497
|
-
(
|
|
517
|
+
if ((_k = ctx === null || ctx === void 0 ? void 0 : ctx.hooks) === null || _k === void 0 ? void 0 : _k.updateCellYdoc) {
|
|
518
|
+
(_l = ctx.hooks) === null || _l === void 0 ? void 0 : _l.updateCellYdoc(changes);
|
|
498
519
|
}
|
|
499
520
|
last.row = [curR, curR + rlen - 1];
|
|
500
521
|
last.column = [curC, curC + clen - 1];
|
|
501
522
|
jfrefreshgrid(ctx, null, undefined);
|
|
502
|
-
|
|
523
|
+
if (data.includes("=")) {
|
|
524
|
+
handleFormulaOnPaste(ctx, d);
|
|
525
|
+
}
|
|
503
526
|
}
|
|
504
527
|
}
|
|
505
528
|
function setCellHyperlink(ctx, id, r, c, link) {
|
|
@@ -510,7 +533,7 @@ function setCellHyperlink(ctx, id, r, c, link) {
|
|
|
510
533
|
ctx.luckysheetfile[index].hyperlink["".concat(r, "_").concat(c)] = link;
|
|
511
534
|
}
|
|
512
535
|
function pasteHandlerOfCutPaste(ctx, copyRange) {
|
|
513
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
|
536
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
514
537
|
var allowEdit = isAllowEdit(ctx);
|
|
515
538
|
if (!allowEdit || ctx.isFlvReadOnly) return;
|
|
516
539
|
if (!copyRange) return;
|
|
@@ -553,6 +576,7 @@ function pasteHandlerOfCutPaste(ctx, copyRange) {
|
|
|
553
576
|
if (addr > 0 || addc > 0) {
|
|
554
577
|
expandRowsAndColumns(d, addr, addc);
|
|
555
578
|
}
|
|
579
|
+
var changes = [];
|
|
556
580
|
var borderInfoCompute = getBorderInfoCompute(ctx, copySheetId);
|
|
557
581
|
var c_dataVerification = _.cloneDeep(ctx.luckysheetfile[getSheetIndex(ctx, copySheetId)].dataVerification) || {};
|
|
558
582
|
var dataVerification = _.cloneDeep(ctx.luckysheetfile[getSheetIndex(ctx, ctx.currentSheetId)].dataVerification) || {};
|
|
@@ -584,6 +608,17 @@ function pasteHandlerOfCutPaste(ctx, copyRange) {
|
|
|
584
608
|
delete cell.mc;
|
|
585
609
|
}
|
|
586
610
|
d[i][j] = null;
|
|
611
|
+
changes.push({
|
|
612
|
+
sheetId: ctx.currentSheetId,
|
|
613
|
+
path: ["celldata"],
|
|
614
|
+
value: {
|
|
615
|
+
r: i,
|
|
616
|
+
c: j,
|
|
617
|
+
v: null
|
|
618
|
+
},
|
|
619
|
+
key: "".concat(i, "_").concat(j),
|
|
620
|
+
type: "update"
|
|
621
|
+
});
|
|
587
622
|
delete dataVerification["".concat(i, "_").concat(j)];
|
|
588
623
|
(_f = ctx.luckysheetfile[getSheetIndex(ctx, ctx.currentSheetId)].hyperlink) === null || _f === void 0 ? true : delete _f["".concat(i, "_").concat(j)];
|
|
589
624
|
}
|
|
@@ -683,6 +718,17 @@ function pasteHandlerOfCutPaste(ctx, copyRange) {
|
|
|
683
718
|
value = copyData[h - minh][c - minc];
|
|
684
719
|
}
|
|
685
720
|
x[c] = _.cloneDeep(value);
|
|
721
|
+
changes.push({
|
|
722
|
+
sheetId: ctx.currentSheetId,
|
|
723
|
+
path: ["celldata"],
|
|
724
|
+
value: {
|
|
725
|
+
r: h,
|
|
726
|
+
c: c,
|
|
727
|
+
v: d[h][c]
|
|
728
|
+
},
|
|
729
|
+
key: "".concat(h, "_").concat(c),
|
|
730
|
+
type: "update"
|
|
731
|
+
});
|
|
686
732
|
if (value != null && copyHasMC && ((_k = x[c]) === null || _k === void 0 ? void 0 : _k.mc)) {
|
|
687
733
|
if (x[c].mc.rs != null) {
|
|
688
734
|
x[c].mc.r = h;
|
|
@@ -703,6 +749,9 @@ function pasteHandlerOfCutPaste(ctx, copyRange) {
|
|
|
703
749
|
}
|
|
704
750
|
last.row = [minh, maxh];
|
|
705
751
|
last.column = [minc, maxc];
|
|
752
|
+
if (changes.length > 0 && ((_l = ctx === null || ctx === void 0 ? void 0 : ctx.hooks) === null || _l === void 0 ? void 0 : _l.updateCellYdoc)) {
|
|
753
|
+
ctx.hooks.updateCellYdoc(changes);
|
|
754
|
+
}
|
|
706
755
|
if (copyRowlChange) {}
|
|
707
756
|
var source;
|
|
708
757
|
var target;
|
|
@@ -785,7 +834,7 @@ function pasteHandlerOfCutPaste(ctx, copyRange) {
|
|
|
785
834
|
}
|
|
786
835
|
source_curCdformat[i].cellrange = emptyRange;
|
|
787
836
|
if (emptyRange2.length > 0) {
|
|
788
|
-
var ruleObj = (
|
|
837
|
+
var ruleObj = (_m = source_curCdformat[i]) !== null && _m !== void 0 ? _m : {};
|
|
789
838
|
ruleObj.cellrange = emptyRange2;
|
|
790
839
|
ruleArr.push(ruleObj);
|
|
791
840
|
}
|
|
@@ -889,7 +938,7 @@ function pasteHandlerOfCutPaste(ctx, copyRange) {
|
|
|
889
938
|
}
|
|
890
939
|
}
|
|
891
940
|
function pasteHandlerOfCopyPaste(ctx, copyRange) {
|
|
892
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
|
|
941
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
|
|
893
942
|
var allowEdit = isAllowEdit(ctx);
|
|
894
943
|
if (!allowEdit || ctx.isFlvReadOnly) return;
|
|
895
944
|
if (!copyRange) return;
|
|
@@ -980,6 +1029,7 @@ function pasteHandlerOfCopyPaste(ctx, copyRange) {
|
|
|
980
1029
|
if (addr > 0 || addc > 0) {
|
|
981
1030
|
expandRowsAndColumns(d, addr, addc);
|
|
982
1031
|
}
|
|
1032
|
+
var changes = [];
|
|
983
1033
|
var borderInfoCompute = getBorderInfoCompute(ctx, copySheetIndex);
|
|
984
1034
|
var c_dataVerification = _.cloneDeep(ctx.luckysheetfile[getSheetIndex(ctx, copySheetIndex)].dataVerification) || {};
|
|
985
1035
|
var dataVerification = null;
|
|
@@ -1069,6 +1119,7 @@ function pasteHandlerOfCopyPaste(ctx, copyRange) {
|
|
|
1069
1119
|
value.m = "Loading...";
|
|
1070
1120
|
}
|
|
1071
1121
|
}
|
|
1122
|
+
var afterHookCalled = false;
|
|
1072
1123
|
if (!_.isNil(value) && !_.isNil(value.f)) {
|
|
1073
1124
|
var adjustedFormula = value.f;
|
|
1074
1125
|
var isError = false;
|
|
@@ -1121,6 +1172,7 @@ function pasteHandlerOfCopyPaste(ctx, copyRange) {
|
|
|
1121
1172
|
v: arr.length === 1 ? funcV[1] : value.v,
|
|
1122
1173
|
m: funcV[1] instanceof Promise ? "[object Promise]" : funcV[1]
|
|
1123
1174
|
}));
|
|
1175
|
+
afterHookCalled = true;
|
|
1124
1176
|
}
|
|
1125
1177
|
}
|
|
1126
1178
|
if (!_.isNil(value.spl)) {}
|
|
@@ -1141,6 +1193,19 @@ function pasteHandlerOfCopyPaste(ctx, copyRange) {
|
|
|
1141
1193
|
};
|
|
1142
1194
|
}
|
|
1143
1195
|
}
|
|
1196
|
+
if (!(((_k = ctx === null || ctx === void 0 ? void 0 : ctx.hooks) === null || _k === void 0 ? void 0 : _k.afterUpdateCell) && afterHookCalled)) {
|
|
1197
|
+
changes.push({
|
|
1198
|
+
sheetId: ctx.currentSheetId,
|
|
1199
|
+
path: ["celldata"],
|
|
1200
|
+
value: {
|
|
1201
|
+
r: h,
|
|
1202
|
+
c: c,
|
|
1203
|
+
v: d[h][c]
|
|
1204
|
+
},
|
|
1205
|
+
key: "".concat(h, "_").concat(c),
|
|
1206
|
+
type: "update"
|
|
1207
|
+
});
|
|
1208
|
+
}
|
|
1144
1209
|
}
|
|
1145
1210
|
d[h] = x;
|
|
1146
1211
|
}
|
|
@@ -1152,7 +1217,7 @@ function pasteHandlerOfCopyPaste(ctx, copyRange) {
|
|
|
1152
1217
|
var a_file = ctx.luckysheetfile[getSheetIndex(ctx, ctx.currentSheetId)];
|
|
1153
1218
|
var ruleArr_cf = _.cloneDeep(c_file.luckysheet_conditionformat_save);
|
|
1154
1219
|
if (!_.isNil(ruleArr_cf) && ruleArr_cf.length > 0) {
|
|
1155
|
-
cdformat = (
|
|
1220
|
+
cdformat = (_l = _.cloneDeep(a_file.luckysheet_conditionformat_save)) !== null && _l !== void 0 ? _l : [];
|
|
1156
1221
|
for (var i = 0; i < ruleArr_cf.length; i += 1) {
|
|
1157
1222
|
var cf_range = ruleArr_cf[i].cellrange;
|
|
1158
1223
|
var emptyRange = [];
|
|
@@ -1188,8 +1253,8 @@ function pasteHandlerOfCopyPaste(ctx, copyRange) {
|
|
|
1188
1253
|
file.config = cfg;
|
|
1189
1254
|
file.luckysheet_conditionformat_save = cdformat;
|
|
1190
1255
|
file.dataVerification = __assign(__assign({}, file.dataVerification), dataVerification);
|
|
1191
|
-
if (((
|
|
1192
|
-
var srcIndex = getSheetIndex(ctx, (
|
|
1256
|
+
if (((_m = ctx.luckysheet_select_save) === null || _m === void 0 ? void 0 : _m.length) === 1 && ((_o = ctx.luckysheet_copy_save) === null || _o === void 0 ? void 0 : _o.copyRange.length) === 1) {
|
|
1257
|
+
var srcIndex = getSheetIndex(ctx, (_p = ctx.luckysheet_copy_save) === null || _p === void 0 ? void 0 : _p.dataSheetId);
|
|
1193
1258
|
var targetSheetIndex = getSheetIndex(ctx, ctx.currentSheetId);
|
|
1194
1259
|
var srcHyperlinks = ctx.luckysheetfile[srcIndex].hyperlink;
|
|
1195
1260
|
var srcData = ctx.luckysheetfile[srcIndex].data;
|
|
@@ -1200,7 +1265,7 @@ function pasteHandlerOfCopyPaste(ctx, copyRange) {
|
|
|
1200
1265
|
var isSingleCell = copyh === 1 && copyc === 1;
|
|
1201
1266
|
var cachedSrcLinkKey = isSingleCell ? "".concat(c_r1, "_").concat(c_c1) : null;
|
|
1202
1267
|
var cachedSrcLink = isSingleCell && srcHyperlinks ? srcHyperlinks[cachedSrcLinkKey] : null;
|
|
1203
|
-
var cachedSrcCell = isSingleCell && srcData ? (
|
|
1268
|
+
var cachedSrcCell = isSingleCell && srcData ? (_q = srcData[c_r1]) === null || _q === void 0 ? void 0 : _q[c_c1] : null;
|
|
1204
1269
|
for (var th = 1; th <= timesH; th += 1) {
|
|
1205
1270
|
for (var tc = 1; tc <= timesC; tc += 1) {
|
|
1206
1271
|
var linkMth = minh + (th - 1) * copyh;
|
|
@@ -1220,7 +1285,7 @@ function pasteHandlerOfCopyPaste(ctx, copyRange) {
|
|
|
1220
1285
|
if (!srcLink) continue;
|
|
1221
1286
|
var targetKey = "".concat(h, "_").concat(c);
|
|
1222
1287
|
targetHyperlinks[targetKey] = srcLink;
|
|
1223
|
-
var cell = (
|
|
1288
|
+
var cell = (_r = d[h]) === null || _r === void 0 ? void 0 : _r[c];
|
|
1224
1289
|
if (cell) {
|
|
1225
1290
|
var srcCell = void 0;
|
|
1226
1291
|
if (isSingleCell && cachedSrcCell) {
|
|
@@ -1228,7 +1293,7 @@ function pasteHandlerOfCopyPaste(ctx, copyRange) {
|
|
|
1228
1293
|
} else {
|
|
1229
1294
|
var srcRow = c_r1 + (h - linkMth);
|
|
1230
1295
|
var srcCol = c_c1 + (c - linkMtc);
|
|
1231
|
-
srcCell = (
|
|
1296
|
+
srcCell = (_s = srcData === null || srcData === void 0 ? void 0 : srcData[srcRow]) === null || _s === void 0 ? void 0 : _s[srcCol];
|
|
1232
1297
|
}
|
|
1233
1298
|
cell.hl = {
|
|
1234
1299
|
r: h,
|
|
@@ -1248,6 +1313,9 @@ function pasteHandlerOfCopyPaste(ctx, copyRange) {
|
|
|
1248
1313
|
}
|
|
1249
1314
|
}
|
|
1250
1315
|
}
|
|
1316
|
+
if (changes.length > 0 && ((_t = ctx === null || ctx === void 0 ? void 0 : ctx.hooks) === null || _t === void 0 ? void 0 : _t.updateCellYdoc)) {
|
|
1317
|
+
ctx.hooks.updateCellYdoc(changes);
|
|
1318
|
+
}
|
|
1251
1319
|
if (copyRowlChange || addr > 0 || addc > 0) {
|
|
1252
1320
|
jfrefreshgrid(ctx, d, ctx.luckysheet_select_save);
|
|
1253
1321
|
} else {
|