@fileverse-dev/fortune-core 1.3.10 → 1.3.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/api/range.js +20 -0
- package/es/api/sheet.js +30 -2
- package/es/events/keyboard.js +15 -1
- package/es/events/paste.js +77 -28
- 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/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/settings.d.ts +5 -0
- package/lib/api/range.js +20 -0
- package/lib/api/sheet.js +29 -1
- package/lib/events/keyboard.js +15 -1
- package/lib/events/paste.js +77 -28
- 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/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/settings.d.ts +5 -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
|
@@ -380,7 +380,7 @@ export function handleArrowKey(ctx, e) {
|
|
|
380
380
|
export function handleGlobalKeyDown(ctx, cellInput, fxInput, e, cache, handleUndo, handleRedo, canvas) {
|
|
381
381
|
var _a, _b, _c;
|
|
382
382
|
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;
|
|
383
|
+
var handledFlvShortcut, kcode, kstr, allowEdit, isFxInput, ignoredKeys, restCod, last, row_index, col_index, last, row_index, col_index;
|
|
384
384
|
return __generator(this, function (_d) {
|
|
385
385
|
if (e.shiftKey && e.code === "Space") {
|
|
386
386
|
e.stopImmediatePropagation();
|
|
@@ -388,27 +388,41 @@ export function handleGlobalKeyDown(ctx, cellInput, fxInput, e, cache, handleUnd
|
|
|
388
388
|
e.preventDefault();
|
|
389
389
|
return [2];
|
|
390
390
|
}
|
|
391
|
+
handledFlvShortcut = false;
|
|
391
392
|
if ((e.ctrlKey || e.metaKey && e.shiftKey) && e.code === "KeyE") {
|
|
392
393
|
textFormat(ctx, "center");
|
|
394
|
+
handledFlvShortcut = true;
|
|
393
395
|
} else if ((e.ctrlKey || e.metaKey && e.shiftKey) && e.code === "KeyL") {
|
|
394
396
|
textFormat(ctx, "left");
|
|
397
|
+
handledFlvShortcut = true;
|
|
395
398
|
} else if ((e.ctrlKey || e.metaKey && e.shiftKey) && e.code === "KeyR") {
|
|
396
399
|
textFormat(ctx, "right");
|
|
400
|
+
handledFlvShortcut = true;
|
|
397
401
|
}
|
|
398
402
|
if ((e.metaKey || e.ctrlKey) && e.code === "KeyK") {
|
|
399
403
|
handleLink(ctx, cellInput);
|
|
400
404
|
}
|
|
401
405
|
if ((e.metaKey || e.ctrlKey) && !e.shiftKey && e.code === "Semicolon") {
|
|
402
406
|
fillDate(ctx);
|
|
407
|
+
handledFlvShortcut = true;
|
|
403
408
|
}
|
|
404
409
|
if ((e.metaKey || e.ctrlKey) && e.shiftKey && e.code === "Semicolon") {
|
|
405
410
|
fillTime(ctx);
|
|
411
|
+
handledFlvShortcut = true;
|
|
406
412
|
}
|
|
407
413
|
if ((e.metaKey || e.ctrlKey) && !e.shiftKey && e.code === "KeyR") {
|
|
408
414
|
fillRightData(ctx);
|
|
415
|
+
handledFlvShortcut = true;
|
|
409
416
|
}
|
|
410
417
|
if ((e.metaKey || e.ctrlKey) && e.code === "KeyD") {
|
|
411
418
|
fillDownData(ctx);
|
|
419
|
+
handledFlvShortcut = true;
|
|
420
|
+
}
|
|
421
|
+
if (handledFlvShortcut) {
|
|
422
|
+
jfrefreshgrid(ctx, null, undefined);
|
|
423
|
+
e.stopPropagation();
|
|
424
|
+
e.preventDefault();
|
|
425
|
+
return [2];
|
|
412
426
|
}
|
|
413
427
|
ctx.luckysheet_select_status = false;
|
|
414
428
|
kcode = e.keyCode;
|
package/es/events/paste.js
CHANGED
|
@@ -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) {
|
|
@@ -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 = [];
|
|
@@ -479,17 +481,17 @@ function pasteHandler(ctx, data, borderInfo) {
|
|
|
479
481
|
}
|
|
480
482
|
x[c + curC] = cell;
|
|
481
483
|
}
|
|
482
|
-
changes.push(
|
|
484
|
+
changes.push({
|
|
483
485
|
sheetId: ctx.currentSheetId,
|
|
484
486
|
path: ["celldata"],
|
|
485
487
|
value: {
|
|
486
|
-
r: r,
|
|
487
|
-
c: c,
|
|
488
|
-
v: d[r][c]
|
|
488
|
+
r: r + curR,
|
|
489
|
+
c: c + curC,
|
|
490
|
+
v: d[r + curR][c + curC]
|
|
489
491
|
},
|
|
490
|
-
key: "".concat(r, "_").concat(c),
|
|
492
|
+
key: "".concat(r + curR, "_").concat(c + curC),
|
|
491
493
|
type: "update"
|
|
492
|
-
})
|
|
494
|
+
});
|
|
493
495
|
}
|
|
494
496
|
d[r + curR] = x;
|
|
495
497
|
}
|
|
@@ -499,7 +501,9 @@ function pasteHandler(ctx, data, borderInfo) {
|
|
|
499
501
|
last.row = [curR, curR + rlen - 1];
|
|
500
502
|
last.column = [curC, curC + clen - 1];
|
|
501
503
|
jfrefreshgrid(ctx, null, undefined);
|
|
502
|
-
|
|
504
|
+
if (data.includes("=")) {
|
|
505
|
+
handleFormulaOnPaste(ctx, d);
|
|
506
|
+
}
|
|
503
507
|
}
|
|
504
508
|
}
|
|
505
509
|
function setCellHyperlink(ctx, id, r, c, link) {
|
|
@@ -510,7 +514,7 @@ function setCellHyperlink(ctx, id, r, c, link) {
|
|
|
510
514
|
ctx.luckysheetfile[index].hyperlink["".concat(r, "_").concat(c)] = link;
|
|
511
515
|
}
|
|
512
516
|
function pasteHandlerOfCutPaste(ctx, copyRange) {
|
|
513
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
|
517
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
514
518
|
var allowEdit = isAllowEdit(ctx);
|
|
515
519
|
if (!allowEdit || ctx.isFlvReadOnly) return;
|
|
516
520
|
if (!copyRange) return;
|
|
@@ -553,6 +557,7 @@ function pasteHandlerOfCutPaste(ctx, copyRange) {
|
|
|
553
557
|
if (addr > 0 || addc > 0) {
|
|
554
558
|
expandRowsAndColumns(d, addr, addc);
|
|
555
559
|
}
|
|
560
|
+
var changes = [];
|
|
556
561
|
var borderInfoCompute = getBorderInfoCompute(ctx, copySheetId);
|
|
557
562
|
var c_dataVerification = _.cloneDeep(ctx.luckysheetfile[getSheetIndex(ctx, copySheetId)].dataVerification) || {};
|
|
558
563
|
var dataVerification = _.cloneDeep(ctx.luckysheetfile[getSheetIndex(ctx, ctx.currentSheetId)].dataVerification) || {};
|
|
@@ -584,6 +589,17 @@ function pasteHandlerOfCutPaste(ctx, copyRange) {
|
|
|
584
589
|
delete cell.mc;
|
|
585
590
|
}
|
|
586
591
|
d[i][j] = null;
|
|
592
|
+
changes.push({
|
|
593
|
+
sheetId: ctx.currentSheetId,
|
|
594
|
+
path: ["celldata"],
|
|
595
|
+
value: {
|
|
596
|
+
r: i,
|
|
597
|
+
c: j,
|
|
598
|
+
v: null
|
|
599
|
+
},
|
|
600
|
+
key: "".concat(i, "_").concat(j),
|
|
601
|
+
type: "update"
|
|
602
|
+
});
|
|
587
603
|
delete dataVerification["".concat(i, "_").concat(j)];
|
|
588
604
|
(_f = ctx.luckysheetfile[getSheetIndex(ctx, ctx.currentSheetId)].hyperlink) === null || _f === void 0 ? true : delete _f["".concat(i, "_").concat(j)];
|
|
589
605
|
}
|
|
@@ -683,6 +699,17 @@ function pasteHandlerOfCutPaste(ctx, copyRange) {
|
|
|
683
699
|
value = copyData[h - minh][c - minc];
|
|
684
700
|
}
|
|
685
701
|
x[c] = _.cloneDeep(value);
|
|
702
|
+
changes.push({
|
|
703
|
+
sheetId: ctx.currentSheetId,
|
|
704
|
+
path: ["celldata"],
|
|
705
|
+
value: {
|
|
706
|
+
r: h,
|
|
707
|
+
c: c,
|
|
708
|
+
v: d[h][c]
|
|
709
|
+
},
|
|
710
|
+
key: "".concat(h, "_").concat(c),
|
|
711
|
+
type: "update"
|
|
712
|
+
});
|
|
686
713
|
if (value != null && copyHasMC && ((_k = x[c]) === null || _k === void 0 ? void 0 : _k.mc)) {
|
|
687
714
|
if (x[c].mc.rs != null) {
|
|
688
715
|
x[c].mc.r = h;
|
|
@@ -703,6 +730,9 @@ function pasteHandlerOfCutPaste(ctx, copyRange) {
|
|
|
703
730
|
}
|
|
704
731
|
last.row = [minh, maxh];
|
|
705
732
|
last.column = [minc, maxc];
|
|
733
|
+
if (changes.length > 0 && ((_l = ctx === null || ctx === void 0 ? void 0 : ctx.hooks) === null || _l === void 0 ? void 0 : _l.updateCellYdoc)) {
|
|
734
|
+
ctx.hooks.updateCellYdoc(changes);
|
|
735
|
+
}
|
|
706
736
|
if (copyRowlChange) {}
|
|
707
737
|
var source;
|
|
708
738
|
var target;
|
|
@@ -785,7 +815,7 @@ function pasteHandlerOfCutPaste(ctx, copyRange) {
|
|
|
785
815
|
}
|
|
786
816
|
source_curCdformat[i].cellrange = emptyRange;
|
|
787
817
|
if (emptyRange2.length > 0) {
|
|
788
|
-
var ruleObj = (
|
|
818
|
+
var ruleObj = (_m = source_curCdformat[i]) !== null && _m !== void 0 ? _m : {};
|
|
789
819
|
ruleObj.cellrange = emptyRange2;
|
|
790
820
|
ruleArr.push(ruleObj);
|
|
791
821
|
}
|
|
@@ -889,7 +919,7 @@ function pasteHandlerOfCutPaste(ctx, copyRange) {
|
|
|
889
919
|
}
|
|
890
920
|
}
|
|
891
921
|
function pasteHandlerOfCopyPaste(ctx, copyRange) {
|
|
892
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
|
|
922
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
|
|
893
923
|
var allowEdit = isAllowEdit(ctx);
|
|
894
924
|
if (!allowEdit || ctx.isFlvReadOnly) return;
|
|
895
925
|
if (!copyRange) return;
|
|
@@ -980,6 +1010,7 @@ function pasteHandlerOfCopyPaste(ctx, copyRange) {
|
|
|
980
1010
|
if (addr > 0 || addc > 0) {
|
|
981
1011
|
expandRowsAndColumns(d, addr, addc);
|
|
982
1012
|
}
|
|
1013
|
+
var changes = [];
|
|
983
1014
|
var borderInfoCompute = getBorderInfoCompute(ctx, copySheetIndex);
|
|
984
1015
|
var c_dataVerification = _.cloneDeep(ctx.luckysheetfile[getSheetIndex(ctx, copySheetIndex)].dataVerification) || {};
|
|
985
1016
|
var dataVerification = null;
|
|
@@ -1069,6 +1100,7 @@ function pasteHandlerOfCopyPaste(ctx, copyRange) {
|
|
|
1069
1100
|
value.m = "Loading...";
|
|
1070
1101
|
}
|
|
1071
1102
|
}
|
|
1103
|
+
var afterHookCalled = false;
|
|
1072
1104
|
if (!_.isNil(value) && !_.isNil(value.f)) {
|
|
1073
1105
|
var adjustedFormula = value.f;
|
|
1074
1106
|
var isError = false;
|
|
@@ -1121,6 +1153,7 @@ function pasteHandlerOfCopyPaste(ctx, copyRange) {
|
|
|
1121
1153
|
v: arr.length === 1 ? funcV[1] : value.v,
|
|
1122
1154
|
m: funcV[1] instanceof Promise ? "[object Promise]" : funcV[1]
|
|
1123
1155
|
}));
|
|
1156
|
+
afterHookCalled = true;
|
|
1124
1157
|
}
|
|
1125
1158
|
}
|
|
1126
1159
|
if (!_.isNil(value.spl)) {}
|
|
@@ -1141,6 +1174,19 @@ function pasteHandlerOfCopyPaste(ctx, copyRange) {
|
|
|
1141
1174
|
};
|
|
1142
1175
|
}
|
|
1143
1176
|
}
|
|
1177
|
+
if (!(((_k = ctx === null || ctx === void 0 ? void 0 : ctx.hooks) === null || _k === void 0 ? void 0 : _k.afterUpdateCell) && afterHookCalled)) {
|
|
1178
|
+
changes.push({
|
|
1179
|
+
sheetId: ctx.currentSheetId,
|
|
1180
|
+
path: ["celldata"],
|
|
1181
|
+
value: {
|
|
1182
|
+
r: h,
|
|
1183
|
+
c: c,
|
|
1184
|
+
v: d[h][c]
|
|
1185
|
+
},
|
|
1186
|
+
key: "".concat(h, "_").concat(c),
|
|
1187
|
+
type: "update"
|
|
1188
|
+
});
|
|
1189
|
+
}
|
|
1144
1190
|
}
|
|
1145
1191
|
d[h] = x;
|
|
1146
1192
|
}
|
|
@@ -1152,7 +1198,7 @@ function pasteHandlerOfCopyPaste(ctx, copyRange) {
|
|
|
1152
1198
|
var a_file = ctx.luckysheetfile[getSheetIndex(ctx, ctx.currentSheetId)];
|
|
1153
1199
|
var ruleArr_cf = _.cloneDeep(c_file.luckysheet_conditionformat_save);
|
|
1154
1200
|
if (!_.isNil(ruleArr_cf) && ruleArr_cf.length > 0) {
|
|
1155
|
-
cdformat = (
|
|
1201
|
+
cdformat = (_l = _.cloneDeep(a_file.luckysheet_conditionformat_save)) !== null && _l !== void 0 ? _l : [];
|
|
1156
1202
|
for (var i = 0; i < ruleArr_cf.length; i += 1) {
|
|
1157
1203
|
var cf_range = ruleArr_cf[i].cellrange;
|
|
1158
1204
|
var emptyRange = [];
|
|
@@ -1188,8 +1234,8 @@ function pasteHandlerOfCopyPaste(ctx, copyRange) {
|
|
|
1188
1234
|
file.config = cfg;
|
|
1189
1235
|
file.luckysheet_conditionformat_save = cdformat;
|
|
1190
1236
|
file.dataVerification = __assign(__assign({}, file.dataVerification), dataVerification);
|
|
1191
|
-
if (((
|
|
1192
|
-
var srcIndex = getSheetIndex(ctx, (
|
|
1237
|
+
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) {
|
|
1238
|
+
var srcIndex = getSheetIndex(ctx, (_p = ctx.luckysheet_copy_save) === null || _p === void 0 ? void 0 : _p.dataSheetId);
|
|
1193
1239
|
var targetSheetIndex = getSheetIndex(ctx, ctx.currentSheetId);
|
|
1194
1240
|
var srcHyperlinks = ctx.luckysheetfile[srcIndex].hyperlink;
|
|
1195
1241
|
var srcData = ctx.luckysheetfile[srcIndex].data;
|
|
@@ -1200,7 +1246,7 @@ function pasteHandlerOfCopyPaste(ctx, copyRange) {
|
|
|
1200
1246
|
var isSingleCell = copyh === 1 && copyc === 1;
|
|
1201
1247
|
var cachedSrcLinkKey = isSingleCell ? "".concat(c_r1, "_").concat(c_c1) : null;
|
|
1202
1248
|
var cachedSrcLink = isSingleCell && srcHyperlinks ? srcHyperlinks[cachedSrcLinkKey] : null;
|
|
1203
|
-
var cachedSrcCell = isSingleCell && srcData ? (
|
|
1249
|
+
var cachedSrcCell = isSingleCell && srcData ? (_q = srcData[c_r1]) === null || _q === void 0 ? void 0 : _q[c_c1] : null;
|
|
1204
1250
|
for (var th = 1; th <= timesH; th += 1) {
|
|
1205
1251
|
for (var tc = 1; tc <= timesC; tc += 1) {
|
|
1206
1252
|
var linkMth = minh + (th - 1) * copyh;
|
|
@@ -1220,7 +1266,7 @@ function pasteHandlerOfCopyPaste(ctx, copyRange) {
|
|
|
1220
1266
|
if (!srcLink) continue;
|
|
1221
1267
|
var targetKey = "".concat(h, "_").concat(c);
|
|
1222
1268
|
targetHyperlinks[targetKey] = srcLink;
|
|
1223
|
-
var cell = (
|
|
1269
|
+
var cell = (_r = d[h]) === null || _r === void 0 ? void 0 : _r[c];
|
|
1224
1270
|
if (cell) {
|
|
1225
1271
|
var srcCell = void 0;
|
|
1226
1272
|
if (isSingleCell && cachedSrcCell) {
|
|
@@ -1228,7 +1274,7 @@ function pasteHandlerOfCopyPaste(ctx, copyRange) {
|
|
|
1228
1274
|
} else {
|
|
1229
1275
|
var srcRow = c_r1 + (h - linkMth);
|
|
1230
1276
|
var srcCol = c_c1 + (c - linkMtc);
|
|
1231
|
-
srcCell = (
|
|
1277
|
+
srcCell = (_s = srcData === null || srcData === void 0 ? void 0 : srcData[srcRow]) === null || _s === void 0 ? void 0 : _s[srcCol];
|
|
1232
1278
|
}
|
|
1233
1279
|
cell.hl = {
|
|
1234
1280
|
r: h,
|
|
@@ -1248,6 +1294,9 @@ function pasteHandlerOfCopyPaste(ctx, copyRange) {
|
|
|
1248
1294
|
}
|
|
1249
1295
|
}
|
|
1250
1296
|
}
|
|
1297
|
+
if (changes.length > 0 && ((_t = ctx === null || ctx === void 0 ? void 0 : ctx.hooks) === null || _t === void 0 ? void 0 : _t.updateCellYdoc)) {
|
|
1298
|
+
ctx.hooks.updateCellYdoc(changes);
|
|
1299
|
+
}
|
|
1251
1300
|
if (copyRowlChange || addr > 0 || addc > 0) {
|
|
1252
1301
|
jfrefreshgrid(ctx, d, ctx.luckysheet_select_save);
|
|
1253
1302
|
} else {
|
package/es/modules/cell.js
CHANGED
|
@@ -809,7 +809,7 @@ export function updateCell(ctx, r, c, $input, value, canvas) {
|
|
|
809
809
|
var newValue_1 = _.cloneDeep(d[r][c]);
|
|
810
810
|
setTimeout(function () {
|
|
811
811
|
var _a, _b;
|
|
812
|
-
return (_b = (_a = ctx.hooks).afterUpdateCell) === null || _b === void 0 ? void 0 : _b.call(_a, r, c,
|
|
812
|
+
return (_b = (_a = ctx.hooks).afterUpdateCell) === null || _b === void 0 ? void 0 : _b.call(_a, r, c, oldValue_1, newValue_1);
|
|
813
813
|
});
|
|
814
814
|
}
|
|
815
815
|
ctx.formulaCache.execFunctionGlobalData = null;
|
|
@@ -1262,13 +1262,16 @@ function keepOnlyValueParts(cell) {
|
|
|
1262
1262
|
} : null;
|
|
1263
1263
|
}
|
|
1264
1264
|
export function clearSelectedCellFormat(ctx) {
|
|
1265
|
+
var _a;
|
|
1265
1266
|
var activeSheetIndex = getSheetIndex(ctx, ctx.currentSheetId);
|
|
1266
1267
|
if (activeSheetIndex == null) return;
|
|
1268
|
+
var changeMap = new Map();
|
|
1267
1269
|
var activeSheetFile = ctx.luckysheetfile[activeSheetIndex];
|
|
1268
1270
|
var selectedRanges = ctx.luckysheet_select_save;
|
|
1269
1271
|
if (!activeSheetFile || !selectedRanges) return;
|
|
1270
1272
|
var sheetData = activeSheetFile.data;
|
|
1271
1273
|
selectedRanges.forEach(function (_a) {
|
|
1274
|
+
var _b;
|
|
1272
1275
|
var rowRange = _a.row,
|
|
1273
1276
|
columnRange = _a.column;
|
|
1274
1277
|
var startRow = rowRange[0],
|
|
@@ -1281,20 +1284,38 @@ export function clearSelectedCellFormat(ctx) {
|
|
|
1281
1284
|
for (var columnIndex = startColumn; columnIndex <= endColumn; columnIndex++) {
|
|
1282
1285
|
if (rowCells[columnIndex] === undefined) continue;
|
|
1283
1286
|
rowCells[columnIndex] = keepOnlyValueParts(rowCells[columnIndex]);
|
|
1287
|
+
var v = (_b = rowCells[columnIndex]) !== null && _b !== void 0 ? _b : null;
|
|
1288
|
+
var key = "".concat(rowIndex, "_").concat(columnIndex);
|
|
1289
|
+
changeMap.set(key, {
|
|
1290
|
+
sheetId: ctx.currentSheetId,
|
|
1291
|
+
path: ["celldata"],
|
|
1292
|
+
key: key,
|
|
1293
|
+
value: {
|
|
1294
|
+
r: rowIndex,
|
|
1295
|
+
c: columnIndex,
|
|
1296
|
+
v: v
|
|
1297
|
+
},
|
|
1298
|
+
type: v == null ? "delete" : "update"
|
|
1299
|
+
});
|
|
1284
1300
|
}
|
|
1285
1301
|
}
|
|
1286
1302
|
});
|
|
1303
|
+
if (((_a = ctx === null || ctx === void 0 ? void 0 : ctx.hooks) === null || _a === void 0 ? void 0 : _a.updateCellYdoc) && changeMap.size > 0) {
|
|
1304
|
+
ctx.hooks.updateCellYdoc(Array.from(changeMap.values()));
|
|
1305
|
+
}
|
|
1287
1306
|
}
|
|
1288
1307
|
export function clearRowsCellsFormat(ctx) {
|
|
1289
|
-
var _a, _b;
|
|
1308
|
+
var _a, _b, _c;
|
|
1290
1309
|
var activeSheetIndex = getSheetIndex(ctx, ctx.currentSheetId);
|
|
1291
1310
|
if (activeSheetIndex == null) return;
|
|
1311
|
+
var changeMap = new Map();
|
|
1292
1312
|
var activeSheetFile = ctx.luckysheetfile[activeSheetIndex];
|
|
1293
1313
|
var selectedRanges = ctx.luckysheet_select_save;
|
|
1294
1314
|
if (!activeSheetFile || !selectedRanges) return;
|
|
1295
1315
|
var sheetData = activeSheetFile.data;
|
|
1296
1316
|
var columnCount = (_b = (_a = sheetData === null || sheetData === void 0 ? void 0 : sheetData[0]) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0;
|
|
1297
1317
|
selectedRanges.forEach(function (_a) {
|
|
1318
|
+
var _b;
|
|
1298
1319
|
var rowRange = _a.row;
|
|
1299
1320
|
var startRow = rowRange[0],
|
|
1300
1321
|
endRow = rowRange[1];
|
|
@@ -1304,19 +1325,38 @@ export function clearRowsCellsFormat(ctx) {
|
|
|
1304
1325
|
for (var columnIndex = 0; columnIndex < columnCount; columnIndex++) {
|
|
1305
1326
|
if (rowCells[columnIndex] === undefined) continue;
|
|
1306
1327
|
rowCells[columnIndex] = keepOnlyValueParts(rowCells[columnIndex]);
|
|
1328
|
+
var v = (_b = rowCells[columnIndex]) !== null && _b !== void 0 ? _b : null;
|
|
1329
|
+
var key = "".concat(rowIndex, "_").concat(columnIndex);
|
|
1330
|
+
changeMap.set(key, {
|
|
1331
|
+
sheetId: ctx.currentSheetId,
|
|
1332
|
+
path: ["celldata"],
|
|
1333
|
+
key: key,
|
|
1334
|
+
value: {
|
|
1335
|
+
r: rowIndex,
|
|
1336
|
+
c: columnIndex,
|
|
1337
|
+
v: v
|
|
1338
|
+
},
|
|
1339
|
+
type: v == null ? "delete" : "update"
|
|
1340
|
+
});
|
|
1307
1341
|
}
|
|
1308
1342
|
}
|
|
1309
1343
|
});
|
|
1344
|
+
if (((_c = ctx === null || ctx === void 0 ? void 0 : ctx.hooks) === null || _c === void 0 ? void 0 : _c.updateCellYdoc) && changeMap.size > 0) {
|
|
1345
|
+
ctx.hooks.updateCellYdoc(Array.from(changeMap.values()));
|
|
1346
|
+
}
|
|
1310
1347
|
}
|
|
1311
1348
|
export function clearColumnsCellsFormat(ctx) {
|
|
1349
|
+
var _a;
|
|
1312
1350
|
var activeSheetIndex = getSheetIndex(ctx, ctx.currentSheetId);
|
|
1313
1351
|
if (activeSheetIndex == null) return;
|
|
1352
|
+
var changeMap = new Map();
|
|
1314
1353
|
var activeSheetFile = ctx.luckysheetfile[activeSheetIndex];
|
|
1315
1354
|
var selectedRanges = ctx.luckysheet_select_save;
|
|
1316
1355
|
if (!activeSheetFile || !selectedRanges) return;
|
|
1317
1356
|
var sheetData = activeSheetFile.data;
|
|
1318
1357
|
var rowCount = sheetData.length;
|
|
1319
1358
|
selectedRanges.forEach(function (_a) {
|
|
1359
|
+
var _b;
|
|
1320
1360
|
var columnRange = _a.column;
|
|
1321
1361
|
var startColumn = columnRange[0],
|
|
1322
1362
|
endColumn = columnRange[1];
|
|
@@ -1326,7 +1366,23 @@ export function clearColumnsCellsFormat(ctx) {
|
|
|
1326
1366
|
for (var columnIndex = startColumn; columnIndex <= endColumn; columnIndex++) {
|
|
1327
1367
|
if (rowCells[columnIndex] === undefined) continue;
|
|
1328
1368
|
rowCells[columnIndex] = keepOnlyValueParts(rowCells[columnIndex]);
|
|
1369
|
+
var v = (_b = rowCells[columnIndex]) !== null && _b !== void 0 ? _b : null;
|
|
1370
|
+
var key = "".concat(rowIndex, "_").concat(columnIndex);
|
|
1371
|
+
changeMap.set(key, {
|
|
1372
|
+
sheetId: ctx.currentSheetId,
|
|
1373
|
+
path: ["celldata"],
|
|
1374
|
+
key: key,
|
|
1375
|
+
value: {
|
|
1376
|
+
r: rowIndex,
|
|
1377
|
+
c: columnIndex,
|
|
1378
|
+
v: v
|
|
1379
|
+
},
|
|
1380
|
+
type: v == null ? "delete" : "update"
|
|
1381
|
+
});
|
|
1329
1382
|
}
|
|
1330
1383
|
}
|
|
1331
1384
|
});
|
|
1385
|
+
if (((_a = ctx === null || ctx === void 0 ? void 0 : ctx.hooks) === null || _a === void 0 ? void 0 : _a.updateCellYdoc) && changeMap.size > 0) {
|
|
1386
|
+
ctx.hooks.updateCellYdoc(Array.from(changeMap.values()));
|
|
1387
|
+
}
|
|
1332
1388
|
}
|