@fileverse-dev/fortune-core 1.3.8 → 1.3.10-copyPaste-1
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/cell.d.ts +1 -1
- package/es/api/cell.js +6 -3
- package/es/api/range.d.ts +1 -1
- package/es/api/range.js +2 -2
- package/es/events/paste.js +52 -6
- package/es/modules/cell.js +1 -1
- package/es/modules/dropCell.js +0 -1
- package/es/modules/formula.js +0 -7
- package/es/modules/hyperlink.js +14 -1
- package/es/modules/selection.js +20 -4
- package/es/modules/sheet.js +16 -18
- package/es/modules/toolbar.js +39 -9
- package/es/paste-table-helpers.js +16 -0
- package/es/settings.d.ts +27 -0
- package/lib/api/cell.d.ts +1 -1
- package/lib/api/cell.js +6 -3
- package/lib/api/range.d.ts +1 -1
- package/lib/api/range.js +2 -2
- package/lib/events/paste.js +52 -6
- package/lib/modules/cell.js +1 -1
- package/lib/modules/dropCell.js +0 -1
- package/lib/modules/formula.js +0 -7
- package/lib/modules/hyperlink.js +14 -1
- package/lib/modules/selection.js +20 -4
- package/lib/modules/sheet.js +16 -18
- package/lib/modules/toolbar.js +39 -9
- package/lib/paste-table-helpers.js +16 -0
- package/lib/settings.d.ts +27 -0
- package/package.json +1 -1
package/es/api/cell.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import { CommonOptions } from "./common";
|
|
|
4
4
|
export declare function getCellValue(ctx: Context, row: number, column: number, options?: CommonOptions & {
|
|
5
5
|
type?: keyof Cell;
|
|
6
6
|
}): any;
|
|
7
|
-
export declare function setCellValue(ctx: Context, row: number, column: number, value: any, cellInput: HTMLDivElement | null, options?: CommonOptions): void;
|
|
7
|
+
export declare function setCellValue(ctx: Context, row: number, column: number, value: any, cellInput: HTMLDivElement | null, options?: CommonOptions, callAfterUpdate?: boolean): void;
|
|
8
8
|
export declare function clearCell(ctx: Context, row: number, column: number, options?: CommonOptions): void;
|
|
9
9
|
export declare function setCellFormat(ctx: Context, row: number, column: number, attr: keyof Cell, value: any, options?: CommonOptions): void;
|
|
10
10
|
export declare function autoFillCell(ctx: Context, copyRange: SingleRange, applyRange: SingleRange, direction: "up" | "down" | "left" | "right"): void;
|
package/es/api/cell.js
CHANGED
|
@@ -50,8 +50,8 @@ export function getCellValue(ctx, row, column, options) {
|
|
|
50
50
|
}
|
|
51
51
|
return ret;
|
|
52
52
|
}
|
|
53
|
-
export function setCellValue(ctx, row, column, value, cellInput, options) {
|
|
54
|
-
var _a;
|
|
53
|
+
export function setCellValue(ctx, row, column, value, cellInput, options, callAfterUpdate) {
|
|
54
|
+
var _a, _b, _c;
|
|
55
55
|
if (options === void 0) {
|
|
56
56
|
options = {};
|
|
57
57
|
}
|
|
@@ -112,7 +112,7 @@ export function setCellValue(ctx, row, column, value, cellInput, options) {
|
|
|
112
112
|
setCellValueInternal(ctx, row, column, data, curv);
|
|
113
113
|
}
|
|
114
114
|
_.forEach(value, function (v, attr) {
|
|
115
|
-
if (attr in formatList) {
|
|
115
|
+
if (attr in formatList && callAfterUpdate) {
|
|
116
116
|
updateFormatCell(ctx, data, attr, v, row, row, column, column);
|
|
117
117
|
} else {
|
|
118
118
|
cell_1[attr] = v;
|
|
@@ -127,6 +127,9 @@ export function setCellValue(ctx, row, column, value, cellInput, options) {
|
|
|
127
127
|
setCellValueInternal(ctx, row, column, data, value);
|
|
128
128
|
}
|
|
129
129
|
}
|
|
130
|
+
if (callAfterUpdate && ctx.hooks.afterUpdateCell) {
|
|
131
|
+
(_c = (_b = ctx.hooks).afterUpdateCell) === null || _c === void 0 ? void 0 : _c.call(_b, row, column, null, value);
|
|
132
|
+
}
|
|
130
133
|
}
|
|
131
134
|
export function clearCell(ctx, row, column, options) {
|
|
132
135
|
var _a, _b;
|
package/es/api/range.d.ts
CHANGED
|
@@ -18,5 +18,5 @@ export declare function getSelectionCoordinates(ctx: Context): string[];
|
|
|
18
18
|
export declare function getCellsByRange(ctx: Context, range: Selection, options?: CommonOptions): (Cell | null)[][];
|
|
19
19
|
export declare function getHtmlByRange(ctx: Context, range: Range, options?: CommonOptions): string | null;
|
|
20
20
|
export declare function setSelection(ctx: Context, range: Range, options: CommonOptions): void;
|
|
21
|
-
export declare function setCellValuesByRange(ctx: Context, data: any[][], range: SingleRange, cellInput: HTMLDivElement | null, options?: CommonOptions): void;
|
|
21
|
+
export declare function setCellValuesByRange(ctx: Context, data: any[][], range: SingleRange, cellInput: HTMLDivElement | null, options?: CommonOptions, callAfterUpdate?: boolean): void;
|
|
22
22
|
export declare function setCellFormatByRange(ctx: Context, attr: keyof Cell, value: any, range: Range | SingleRange, options?: CommonOptions): void;
|
package/es/api/range.js
CHANGED
|
@@ -77,7 +77,7 @@ export function setSelection(ctx, range, options) {
|
|
|
77
77
|
ctx.luckysheet_select_save = sheet.luckysheet_select_save;
|
|
78
78
|
}
|
|
79
79
|
}
|
|
80
|
-
export function setCellValuesByRange(ctx, data, range, cellInput, options) {
|
|
80
|
+
export function setCellValuesByRange(ctx, data, range, cellInput, options, callAfterUpdate) {
|
|
81
81
|
if (options === void 0) {
|
|
82
82
|
options = {};
|
|
83
83
|
}
|
|
@@ -99,7 +99,7 @@ export function setCellValuesByRange(ctx, data, range, cellInput, options) {
|
|
|
99
99
|
for (var j = 0; j < columnCount; j += 1) {
|
|
100
100
|
var row = range.row[0] + i;
|
|
101
101
|
var column = range.column[0] + j;
|
|
102
|
-
setCellValue(ctx, row, column, data[i][j], cellInput, options);
|
|
102
|
+
setCellValue(ctx, row, column, data[i][j], cellInput, options, callAfterUpdate);
|
|
103
103
|
}
|
|
104
104
|
}
|
|
105
105
|
}
|
package/es/events/paste.js
CHANGED
|
@@ -81,6 +81,7 @@ export function adjustFormulaForPaste(formula, srcCol, srcRow, destCol, destRow)
|
|
|
81
81
|
var stringOrCellRef = /"(?:\\.|[^"])*"|(\$?[A-Z]+\$?\d+)(?!\s*!)\b/g;
|
|
82
82
|
var result = formula.replace(stringOrCellRef, function (m, cellRef) {
|
|
83
83
|
if (!cellRef) return m;
|
|
84
|
+
if (cellRef.startsWith("$")) return m;
|
|
84
85
|
return cellRef.replace(cellRefRegex, function (__, absCol, colLetters, absRow, rowNum) {
|
|
85
86
|
var colIndex = columnLabelIndex(colLetters);
|
|
86
87
|
var rowIndex = parseInt(rowNum, 10);
|
|
@@ -187,27 +188,42 @@ function postPasteCut(ctx, source, target, RowlChange) {
|
|
|
187
188
|
storeSheetParamALL(ctx);
|
|
188
189
|
}
|
|
189
190
|
var handleFormulaOnPaste = function handleFormulaOnPaste(ctx, d) {
|
|
190
|
-
var _a;
|
|
191
|
+
var _a, _b, _c;
|
|
192
|
+
var changes = [];
|
|
191
193
|
for (var r = 0; r < d.length; r += 1) {
|
|
192
194
|
var x = d[r];
|
|
193
195
|
for (var c = 0; c < d[0].length; c += 1) {
|
|
194
196
|
var value = isObject(d[r][c]) ? (_a = d[r][c]) === null || _a === void 0 ? void 0 : _a.v : d[r][c];
|
|
195
197
|
if (value && String(value).startsWith("=")) {
|
|
196
198
|
var cell = {};
|
|
197
|
-
var
|
|
198
|
-
v =
|
|
199
|
-
f =
|
|
199
|
+
var _d = execfunction(ctx, String(value), r, c, undefined, undefined, true),
|
|
200
|
+
v = _d[1],
|
|
201
|
+
f = _d[2];
|
|
200
202
|
cell.v = v;
|
|
201
203
|
cell.f = f;
|
|
202
204
|
cell.m = v.toString();
|
|
203
205
|
x[c] = cell;
|
|
204
206
|
}
|
|
205
207
|
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
|
+
});
|
|
206
219
|
}
|
|
207
220
|
}
|
|
221
|
+
if ((_b = ctx === null || ctx === void 0 ? void 0 : ctx.hooks) === null || _b === void 0 ? void 0 : _b.updateCellYdoc) {
|
|
222
|
+
(_c = ctx.hooks) === null || _c === void 0 ? void 0 : _c.updateCellYdoc(changes);
|
|
223
|
+
}
|
|
208
224
|
};
|
|
209
225
|
function pasteHandler(ctx, data, borderInfo) {
|
|
210
|
-
var _a, _b, _c, _d, _e, _f;
|
|
226
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
211
227
|
if (ctx.luckysheet_selection_range) {
|
|
212
228
|
ctx.luckysheet_selection_range = [];
|
|
213
229
|
}
|
|
@@ -255,6 +271,7 @@ function pasteHandler(ctx, data, borderInfo) {
|
|
|
255
271
|
}
|
|
256
272
|
var RowlChange = false;
|
|
257
273
|
var offsetMC = {};
|
|
274
|
+
var changes = [];
|
|
258
275
|
for (var h = minh; h <= maxh; h += 1) {
|
|
259
276
|
var x = d[h];
|
|
260
277
|
var currentRowLen = ctx.defaultrowlen;
|
|
@@ -302,12 +319,26 @@ function pasteHandler(ctx, data, borderInfo) {
|
|
|
302
319
|
};
|
|
303
320
|
(_e = cfg.borderInfo) === null || _e === void 0 ? void 0 : _e.push(bd_obj);
|
|
304
321
|
}
|
|
322
|
+
changes.push({
|
|
323
|
+
sheetId: ctx.currentSheetId,
|
|
324
|
+
path: ["celldata"],
|
|
325
|
+
value: {
|
|
326
|
+
r: h,
|
|
327
|
+
c: c,
|
|
328
|
+
v: d[h][c]
|
|
329
|
+
},
|
|
330
|
+
key: "".concat(h, "_").concat(c),
|
|
331
|
+
type: "update"
|
|
332
|
+
});
|
|
305
333
|
}
|
|
306
334
|
d[h] = x;
|
|
307
335
|
if (currentRowLen !== ctx.defaultrowlen) {
|
|
308
336
|
cfg.rowlen[h] = currentRowLen;
|
|
309
337
|
}
|
|
310
338
|
}
|
|
339
|
+
if ((_f = ctx === null || ctx === void 0 ? void 0 : ctx.hooks) === null || _f === void 0 ? void 0 : _f.updateCellYdoc) {
|
|
340
|
+
(_g = ctx.hooks) === null || _g === void 0 ? void 0 : _g.updateCellYdoc(changes);
|
|
341
|
+
}
|
|
311
342
|
ctx.luckysheet_select_save = [{
|
|
312
343
|
row: [minh, maxh],
|
|
313
344
|
column: [minc, maxc]
|
|
@@ -332,7 +363,7 @@ function pasteHandler(ctx, data, borderInfo) {
|
|
|
332
363
|
}
|
|
333
364
|
var d = getFlowdata(ctx);
|
|
334
365
|
if (!d) return;
|
|
335
|
-
var last = (
|
|
366
|
+
var last = (_h = ctx.luckysheet_select_save) === null || _h === void 0 ? void 0 : _h[ctx.luckysheet_select_save.length - 1];
|
|
336
367
|
if (!last) return;
|
|
337
368
|
var curR = last.row == null ? 0 : last.row[0];
|
|
338
369
|
var curC = last.column == null ? 0 : last.column[0];
|
|
@@ -357,6 +388,7 @@ function pasteHandler(ctx, data, borderInfo) {
|
|
|
357
388
|
if (!/^(https?:\/\/|www\.)\S+$/i.test(t)) return null;
|
|
358
389
|
return t.startsWith("http") ? t : "https://".concat(t);
|
|
359
390
|
};
|
|
391
|
+
var changes = [];
|
|
360
392
|
for (var r = 0; r < rlen; r += 1) {
|
|
361
393
|
var x = d[r + curR];
|
|
362
394
|
for (var c = 0; c < clen; c += 1) {
|
|
@@ -447,9 +479,23 @@ function pasteHandler(ctx, data, borderInfo) {
|
|
|
447
479
|
}
|
|
448
480
|
x[c + curC] = cell;
|
|
449
481
|
}
|
|
482
|
+
changes.push(changes.push({
|
|
483
|
+
sheetId: ctx.currentSheetId,
|
|
484
|
+
path: ["celldata"],
|
|
485
|
+
value: {
|
|
486
|
+
r: r,
|
|
487
|
+
c: c,
|
|
488
|
+
v: d[r][c]
|
|
489
|
+
},
|
|
490
|
+
key: "".concat(r, "_").concat(c),
|
|
491
|
+
type: "update"
|
|
492
|
+
}));
|
|
450
493
|
}
|
|
451
494
|
d[r + curR] = x;
|
|
452
495
|
}
|
|
496
|
+
if ((_j = ctx === null || ctx === void 0 ? void 0 : ctx.hooks) === null || _j === void 0 ? void 0 : _j.updateCellYdoc) {
|
|
497
|
+
(_k = ctx.hooks) === null || _k === void 0 ? void 0 : _k.updateCellYdoc(changes);
|
|
498
|
+
}
|
|
453
499
|
last.row = [curR, curR + rlen - 1];
|
|
454
500
|
last.column = [curC, curC + clen - 1];
|
|
455
501
|
jfrefreshgrid(ctx, null, undefined);
|
package/es/modules/cell.js
CHANGED
|
@@ -1041,7 +1041,7 @@ export function getFontStyleByCell(cell, checksAF, checksCF, isCheck) {
|
|
|
1041
1041
|
if (key === "it" && valueNum !== 0) {
|
|
1042
1042
|
style.fontStyle = "italic";
|
|
1043
1043
|
}
|
|
1044
|
-
if (key === "fs" &&
|
|
1044
|
+
if (key === "fs" && !_.isNil(value)) {
|
|
1045
1045
|
style.fontSize = "".concat(valueNum, "pt");
|
|
1046
1046
|
}
|
|
1047
1047
|
if (key === "fc" && value !== "#000000" || ((_a = checksAF === null || checksAF === void 0 ? void 0 : checksAF.length) !== null && _a !== void 0 ? _a : 0) > 0 || (checksCF === null || checksCF === void 0 ? void 0 : checksCF.textColor)) {
|
package/es/modules/dropCell.js
CHANGED
|
@@ -2003,7 +2003,6 @@ export function updateDropCell(ctx) {
|
|
|
2003
2003
|
var v = formula.execfunction(ctx, f, i, j);
|
|
2004
2004
|
formula.execFunctionGroup(ctx, j, i, v[1], undefined, d);
|
|
2005
2005
|
cell.v = v[1], cell.f = v[2];
|
|
2006
|
-
console.log(j, i);
|
|
2007
2006
|
var afterUpdateCell = ctx.hooks.afterUpdateCell;
|
|
2008
2007
|
if (afterUpdateCell) {
|
|
2009
2008
|
afterUpdateCell(i, j, null, __assign(__assign({}, cell), {
|
package/es/modules/formula.js
CHANGED
|
@@ -698,12 +698,6 @@ function replaceDotsInFunctionName(str) {
|
|
|
698
698
|
return "=".concat(fixedFnName).concat(str.substring(openParenIndex));
|
|
699
699
|
}
|
|
700
700
|
export function execfunction(ctx, txt, r, c, id, calcChainSet, isrefresh, notInsertFunc) {
|
|
701
|
-
console.log("execfunction:", {
|
|
702
|
-
txt: txt,
|
|
703
|
-
r: r,
|
|
704
|
-
c: c,
|
|
705
|
-
id: id
|
|
706
|
-
});
|
|
707
701
|
var originalTxt = txt;
|
|
708
702
|
if ((txt === null || txt === void 0 ? void 0 : txt.toUpperCase().includes("NETWORKDAYS.INTL")) || (txt === null || txt === void 0 ? void 0 : txt.toUpperCase().includes("WORKDAY.INTL"))) {
|
|
709
703
|
txt = replaceDotsInFunctionName(txt);
|
|
@@ -821,7 +815,6 @@ export function execFunctionGroup(ctx, origin_r, origin_c, value, id, data, isFo
|
|
|
821
815
|
if (isForce === void 0) {
|
|
822
816
|
isForce = false;
|
|
823
817
|
}
|
|
824
|
-
console.log("execFunctionGroup", origin_r, origin_c, value, id, data);
|
|
825
818
|
if (_.isNil(data)) {
|
|
826
819
|
data = getFlowdata(ctx);
|
|
827
820
|
}
|
package/es/modules/hyperlink.js
CHANGED
|
@@ -41,7 +41,7 @@ export function getCellHyperlink(ctx, r, c) {
|
|
|
41
41
|
return undefined;
|
|
42
42
|
}
|
|
43
43
|
export function saveHyperlink(ctx, r, c, linkText, linkType, linkAddress, options) {
|
|
44
|
-
var _a;
|
|
44
|
+
var _a, _b, _c;
|
|
45
45
|
var applyToSelection = (options === null || options === void 0 ? void 0 : options.applyToSelection) && (options === null || options === void 0 ? void 0 : options.cellInput);
|
|
46
46
|
var sheetIndex = getSheetIndex(ctx, ctx.currentSheetId);
|
|
47
47
|
var flowdata = getFlowdata(ctx);
|
|
@@ -91,6 +91,19 @@ export function saveHyperlink(ctx, r, c, linkText, linkType, linkAddress, option
|
|
|
91
91
|
};
|
|
92
92
|
flowdata[r][c] = cell;
|
|
93
93
|
ctx.linkCard = undefined;
|
|
94
|
+
if ((_b = ctx === null || ctx === void 0 ? void 0 : ctx.hooks) === null || _b === void 0 ? void 0 : _b.updateCellYdoc) {
|
|
95
|
+
(_c = ctx === null || ctx === void 0 ? void 0 : ctx.hooks) === null || _c === void 0 ? void 0 : _c.updateCellYdoc([{
|
|
96
|
+
sheetId: ctx.currentSheetId,
|
|
97
|
+
path: ["celldata"],
|
|
98
|
+
value: {
|
|
99
|
+
r: r,
|
|
100
|
+
c: c,
|
|
101
|
+
v: cell
|
|
102
|
+
},
|
|
103
|
+
key: "".concat(r, "_").concat(c),
|
|
104
|
+
type: "update"
|
|
105
|
+
}]);
|
|
106
|
+
}
|
|
94
107
|
}
|
|
95
108
|
}
|
|
96
109
|
export function removeHyperlink(ctx, r, c) {
|
package/es/modules/selection.js
CHANGED
|
@@ -1171,7 +1171,7 @@ export function rangeValueToHtml(ctx, sheetId, ranges) {
|
|
|
1171
1171
|
cpdata += "<tr height=".concat(rowLen, "px >");
|
|
1172
1172
|
var _loop_3 = function _loop_3(j) {
|
|
1173
1173
|
var c = colIndexArr[j];
|
|
1174
|
-
var column = '<td ${span} style="${style}">';
|
|
1174
|
+
var column = '<td ${span} style="${style}" data-fortune-cell="${cellData}">';
|
|
1175
1175
|
var cell = (_f = d[r]) === null || _f === void 0 ? void 0 : _f[c];
|
|
1176
1176
|
if (cell != null) {
|
|
1177
1177
|
var style = "";
|
|
@@ -1382,9 +1382,11 @@ export function rangeValueToHtml(ctx, sheetId, ranges) {
|
|
|
1382
1382
|
}
|
|
1383
1383
|
}
|
|
1384
1384
|
}
|
|
1385
|
+
var cellData = encodeURIComponent(JSON.stringify(cell));
|
|
1385
1386
|
column = replaceHtml(column, {
|
|
1386
1387
|
style: style,
|
|
1387
|
-
span: span
|
|
1388
|
+
span: span,
|
|
1389
|
+
cellData: cellData
|
|
1388
1390
|
});
|
|
1389
1391
|
if (_.isNil(c_value)) {
|
|
1390
1392
|
c_value = getCellValue(r, c, d);
|
|
@@ -1434,7 +1436,8 @@ export function rangeValueToHtml(ctx, sheetId, ranges) {
|
|
|
1434
1436
|
}
|
|
1435
1437
|
column = replaceHtml(column, {
|
|
1436
1438
|
style: style,
|
|
1437
|
-
span: ""
|
|
1439
|
+
span: "",
|
|
1440
|
+
cellData: ""
|
|
1438
1441
|
});
|
|
1439
1442
|
column += "";
|
|
1440
1443
|
}
|
|
@@ -1501,7 +1504,7 @@ export function copy(ctx) {
|
|
|
1501
1504
|
}
|
|
1502
1505
|
}
|
|
1503
1506
|
export function deleteSelectedCellText(ctx) {
|
|
1504
|
-
var _a, _b, _c;
|
|
1507
|
+
var _a, _b, _c, _d;
|
|
1505
1508
|
var allowEdit = isAllowEdit(ctx);
|
|
1506
1509
|
if (allowEdit === false || ctx.isFlvReadOnly) {
|
|
1507
1510
|
return "allowEdit";
|
|
@@ -1530,6 +1533,7 @@ export function deleteSelectedCellText(ctx) {
|
|
|
1530
1533
|
var r2 = selection[s].row[1];
|
|
1531
1534
|
var c1 = selection[s].column[0];
|
|
1532
1535
|
var c2 = selection[s].column[1];
|
|
1536
|
+
var changes = [];
|
|
1533
1537
|
for (var r = r1; r <= r2; r += 1) {
|
|
1534
1538
|
for (var c = c1; c <= c2; c += 1) {
|
|
1535
1539
|
var index = getSheetIndex(ctx, ctx.currentSheetId);
|
|
@@ -1560,6 +1564,18 @@ export function deleteSelectedCellText(ctx) {
|
|
|
1560
1564
|
if (hyperlinkMap && hyperlinkMap["".concat(r, "_").concat(c)]) {
|
|
1561
1565
|
delete hyperlinkMap["".concat(r, "_").concat(c)];
|
|
1562
1566
|
}
|
|
1567
|
+
if ((_d = ctx === null || ctx === void 0 ? void 0 : ctx.hooks) === null || _d === void 0 ? void 0 : _d.afterUpdateCell) {
|
|
1568
|
+
ctx.hooks.afterUpdateCell(r, c, null, d[r][c]);
|
|
1569
|
+
}
|
|
1570
|
+
changes.push({
|
|
1571
|
+
sheetId: ctx.currentSheetId,
|
|
1572
|
+
path: ["celldata"],
|
|
1573
|
+
value: {
|
|
1574
|
+
r: r,
|
|
1575
|
+
c: c,
|
|
1576
|
+
v: d[r][c]
|
|
1577
|
+
}
|
|
1578
|
+
});
|
|
1563
1579
|
}
|
|
1564
1580
|
}
|
|
1565
1581
|
}
|
package/es/modules/sheet.js
CHANGED
|
@@ -1,3 +1,13 @@
|
|
|
1
|
+
var __assign = this && this.__assign || function () {
|
|
2
|
+
__assign = Object.assign || function (t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
|
|
6
|
+
}
|
|
7
|
+
return t;
|
|
8
|
+
};
|
|
9
|
+
return __assign.apply(this, arguments);
|
|
10
|
+
};
|
|
1
11
|
import _ from "lodash";
|
|
2
12
|
import { v4 as uuidv4 } from "uuid";
|
|
3
13
|
import { initSheetData } from "../api/sheet";
|
|
@@ -19,7 +29,7 @@ export function storeSheetParamALL(ctx) {
|
|
|
19
29
|
ctx.luckysheetfile[index].config = ctx.config;
|
|
20
30
|
}
|
|
21
31
|
export function changeSheet(ctx, id, isPivotInitial, isNewSheet, isCopySheet) {
|
|
22
|
-
var _a, _b;
|
|
32
|
+
var _a, _b, _c, _d;
|
|
23
33
|
if (id === ctx.currentSheetId) {
|
|
24
34
|
return;
|
|
25
35
|
}
|
|
@@ -35,14 +45,11 @@ export function changeSheet(ctx, id, isPivotInitial, isNewSheet, isCopySheet) {
|
|
|
35
45
|
ctx.luckysheetcurrentisPivotTable = false;
|
|
36
46
|
}
|
|
37
47
|
if (ctx.hooks.afterActivateSheet) {
|
|
38
|
-
|
|
39
|
-
var _a, _b;
|
|
40
|
-
(_b = (_a = ctx.hooks).afterActivateSheet) === null || _b === void 0 ? void 0 : _b.call(_a, id);
|
|
41
|
-
});
|
|
48
|
+
(_d = (_c = ctx.hooks).afterActivateSheet) === null || _d === void 0 ? void 0 : _d.call(_c, id);
|
|
42
49
|
}
|
|
43
50
|
}
|
|
44
51
|
export function addSheet(ctx, settings, newSheetID, isPivotTable, sheetName, sheetData) {
|
|
45
|
-
var _a, _b;
|
|
52
|
+
var _a, _b, _c, _d;
|
|
46
53
|
if (newSheetID === void 0) {
|
|
47
54
|
newSheetID = undefined;
|
|
48
55
|
}
|
|
@@ -86,18 +93,12 @@ export function addSheet(ctx, settings, newSheetID, isPivotTable, sheetName, she
|
|
|
86
93
|
return;
|
|
87
94
|
}
|
|
88
95
|
ctx.luckysheetfile.push(sheetconfig);
|
|
89
|
-
if (!newSheetID) {
|
|
90
|
-
changeSheet(ctx, id, isPivotTable, true);
|
|
91
|
-
}
|
|
92
96
|
if (ctx.hooks.afterAddSheet) {
|
|
93
|
-
|
|
94
|
-
var _a, _b;
|
|
95
|
-
(_b = (_a = ctx.hooks).afterAddSheet) === null || _b === void 0 ? void 0 : _b.call(_a, sheetconfig);
|
|
96
|
-
});
|
|
97
|
+
(_d = (_c = ctx.hooks).afterAddSheet) === null || _d === void 0 ? void 0 : _d.call(_c, __assign({}, sheetconfig));
|
|
97
98
|
}
|
|
98
99
|
}
|
|
99
100
|
export function deleteSheet(ctx, id) {
|
|
100
|
-
var _a, _b, _c;
|
|
101
|
+
var _a, _b, _c, _d, _e;
|
|
101
102
|
if (ctx.allowEdit === false) {
|
|
102
103
|
return;
|
|
103
104
|
}
|
|
@@ -123,10 +124,7 @@ export function deleteSheet(ctx, id) {
|
|
|
123
124
|
ctx.currentSheetId = (_c = orderSheets === null || orderSheets === void 0 ? void 0 : orderSheets[0]) === null || _c === void 0 ? void 0 : _c.id;
|
|
124
125
|
}
|
|
125
126
|
if (ctx.hooks.afterDeleteSheet) {
|
|
126
|
-
|
|
127
|
-
var _a, _b;
|
|
128
|
-
(_b = (_a = ctx.hooks).afterDeleteSheet) === null || _b === void 0 ? void 0 : _b.call(_a, id);
|
|
129
|
-
});
|
|
127
|
+
(_e = (_d = ctx.hooks).afterDeleteSheet) === null || _e === void 0 ? void 0 : _e.call(_d, id);
|
|
130
128
|
}
|
|
131
129
|
}
|
|
132
130
|
export function updateSheet(ctx, newData) {
|
package/es/modules/toolbar.js
CHANGED
|
@@ -16,12 +16,13 @@ import { showLinkCard } from "./hyperlink";
|
|
|
16
16
|
import { cfSplitRange } from "./conditionalFormat";
|
|
17
17
|
import { clearMeasureTextCache, getCellTextInfo } from "./text";
|
|
18
18
|
export function updateFormatCell(ctx, d, attr, foucsStatus, row_st, row_ed, col_st, col_ed, canvas) {
|
|
19
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6;
|
|
20
|
-
var
|
|
19
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10;
|
|
20
|
+
var _11;
|
|
21
21
|
if (_.isNil(d) || _.isNil(attr)) {
|
|
22
22
|
return;
|
|
23
23
|
}
|
|
24
24
|
if (attr === "ct") {
|
|
25
|
+
var changes = [];
|
|
25
26
|
for (var r = row_st; r <= row_ed; r += 1) {
|
|
26
27
|
if (!_.isNil(ctx.config.rowhidden) && !_.isNil(ctx.config.rowhidden[r])) {
|
|
27
28
|
continue;
|
|
@@ -97,6 +98,20 @@ export function updateFormatCell(ctx, d, attr, foucsStatus, row_st, row_ed, col_
|
|
|
97
98
|
m: mask
|
|
98
99
|
};
|
|
99
100
|
}
|
|
101
|
+
changes.push({
|
|
102
|
+
sheetId: ctx.currentSheetId,
|
|
103
|
+
path: ["celldata"],
|
|
104
|
+
value: {
|
|
105
|
+
r: r,
|
|
106
|
+
c: c,
|
|
107
|
+
v: d[r][c]
|
|
108
|
+
},
|
|
109
|
+
key: "".concat(r, "_").concat(c),
|
|
110
|
+
type: "update"
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
if ((_x = ctx === null || ctx === void 0 ? void 0 : ctx.hooks) === null || _x === void 0 ? void 0 : _x.updateCellYdoc) {
|
|
114
|
+
(_y = ctx.hooks) === null || _y === void 0 ? void 0 : _y.updateCellYdoc(changes);
|
|
100
115
|
}
|
|
101
116
|
}
|
|
102
117
|
} else {
|
|
@@ -143,6 +158,7 @@ export function updateFormatCell(ctx, d, attr, foucsStatus, row_st, row_ed, col_
|
|
|
143
158
|
if (sheetIndex == null) {
|
|
144
159
|
return;
|
|
145
160
|
}
|
|
161
|
+
var changes = [];
|
|
146
162
|
for (var r = row_st; r <= row_ed; r += 1) {
|
|
147
163
|
if (!_.isNil(ctx.config.rowhidden) && !_.isNil(ctx.config.rowhidden[r])) {
|
|
148
164
|
continue;
|
|
@@ -152,11 +168,11 @@ export function updateFormatCell(ctx, d, attr, foucsStatus, row_st, row_ed, col_
|
|
|
152
168
|
if (value && _.isPlainObject(value)) {
|
|
153
169
|
updateInlineStringFormatOutside(value, attr, foucsStatus);
|
|
154
170
|
value[attr] = foucsStatus;
|
|
155
|
-
(
|
|
171
|
+
(_11 = ctx.luckysheetfile[sheetIndex]).config || (_11.config = {});
|
|
156
172
|
var cfg = ctx.luckysheetfile[sheetIndex].config;
|
|
157
|
-
var cellWidth = ((
|
|
173
|
+
var cellWidth = ((_z = cfg.columnlen) === null || _z === void 0 ? void 0 : _z[c]) || ctx.luckysheetfile[sheetIndex].defaultColWidth;
|
|
158
174
|
if (attr === "tb" && canvas && foucsStatus === "2") {
|
|
159
|
-
var currentColWidth_1 = ((
|
|
175
|
+
var currentColWidth_1 = ((_0 = cfg.columnlen) === null || _0 === void 0 ? void 0 : _0[c]) || ctx.luckysheetfile[sheetIndex].defaultColWidth || 100;
|
|
160
176
|
var lineCount_1 = 1;
|
|
161
177
|
var fontString_1 = "10px Arial";
|
|
162
178
|
if (value.fs) {
|
|
@@ -169,9 +185,9 @@ export function updateFormatCell(ctx, d, attr, foucsStatus, row_st, row_ed, col_
|
|
|
169
185
|
lineCount_1 = getLineCount(value.m, currentColWidth_1, fontString_1);
|
|
170
186
|
var hOffset = lineCount_1 < 4 ? 1.9 : 1.7;
|
|
171
187
|
lineCount_1 = lineCount_1 * hOffset + 1;
|
|
172
|
-
} else if ((
|
|
188
|
+
} else if ((_3 = (_2 = (_1 = value === null || value === void 0 ? void 0 : value.ct) === null || _1 === void 0 ? void 0 : _1.s) === null || _2 === void 0 ? void 0 : _2[0]) === null || _3 === void 0 ? void 0 : _3.v) {
|
|
173
189
|
lineCount_1 -= 1;
|
|
174
|
-
var line = (
|
|
190
|
+
var line = (_6 = (_5 = (_4 = value === null || value === void 0 ? void 0 : value.ct) === null || _4 === void 0 ? void 0 : _4.s) === null || _5 === void 0 ? void 0 : _5[0]) === null || _6 === void 0 ? void 0 : _6.v.split("\n");
|
|
175
191
|
line.forEach(function (item) {
|
|
176
192
|
var subLineCount = getLineCount(item, currentColWidth_1, fontString_1);
|
|
177
193
|
lineCount_1 += subLineCount;
|
|
@@ -191,7 +207,7 @@ export function updateFormatCell(ctx, d, attr, foucsStatus, row_st, row_ed, col_
|
|
|
191
207
|
});
|
|
192
208
|
if (!textInfo) return "continue";
|
|
193
209
|
var rowHeight = _.round(textInfo.textHeightAll);
|
|
194
|
-
var currentRowHeight = ((
|
|
210
|
+
var currentRowHeight = ((_7 = cfg.rowlen) === null || _7 === void 0 ? void 0 : _7[r]) || ctx.luckysheetfile[sheetIndex].defaultRowHeight || 19;
|
|
195
211
|
if (!_.isUndefined(rowHeight) && rowHeight > currentRowHeight && (!cfg.customHeight || cfg.customHeight[r] !== 1)) {
|
|
196
212
|
if (_.isUndefined(cfg.rowlen)) cfg.rowlen = {};
|
|
197
213
|
_.set(cfg, "rowlen.".concat(r), rowHeight);
|
|
@@ -206,7 +222,7 @@ export function updateFormatCell(ctx, d, attr, foucsStatus, row_st, row_ed, col_
|
|
|
206
222
|
});
|
|
207
223
|
if (!textInfo) return "continue";
|
|
208
224
|
var newHeight = _.round(textInfo.textHeightAll);
|
|
209
|
-
var oldHeight = ((
|
|
225
|
+
var oldHeight = ((_8 = cfg.rowlen) === null || _8 === void 0 ? void 0 : _8[r]) || ctx.luckysheetfile[sheetIndex].defaultRowHeight || 19;
|
|
210
226
|
var shouldResize = foucsStatus === "2" ? newHeight > oldHeight : true;
|
|
211
227
|
if (shouldResize && (!cfg.customHeight || cfg.customHeight[r] !== 1)) {
|
|
212
228
|
var padding = 12;
|
|
@@ -221,11 +237,25 @@ export function updateFormatCell(ctx, d, attr, foucsStatus, row_st, row_ed, col_
|
|
|
221
237
|
};
|
|
222
238
|
d[r][c][attr] = foucsStatus;
|
|
223
239
|
}
|
|
240
|
+
changes.push({
|
|
241
|
+
sheetId: ctx.currentSheetId,
|
|
242
|
+
path: ["celldata"],
|
|
243
|
+
value: {
|
|
244
|
+
r: r,
|
|
245
|
+
c: c,
|
|
246
|
+
v: d[r][c]
|
|
247
|
+
},
|
|
248
|
+
key: "".concat(r, "_").concat(c),
|
|
249
|
+
type: "update"
|
|
250
|
+
});
|
|
224
251
|
};
|
|
225
252
|
for (var c = col_st; c <= col_ed; c += 1) {
|
|
226
253
|
_loop_1(c);
|
|
227
254
|
}
|
|
228
255
|
}
|
|
256
|
+
if ((_9 = ctx === null || ctx === void 0 ? void 0 : ctx.hooks) === null || _9 === void 0 ? void 0 : _9.updateCellYdoc) {
|
|
257
|
+
(_10 = ctx.hooks) === null || _10 === void 0 ? void 0 : _10.updateCellYdoc(changes);
|
|
258
|
+
}
|
|
229
259
|
}
|
|
230
260
|
}
|
|
231
261
|
export function updateFormat(ctx, $input, d, attr, foucsStatus, canvas) {
|
|
@@ -127,6 +127,22 @@ function brToNewline(str) {
|
|
|
127
127
|
}
|
|
128
128
|
var buildCellFromTd = function buildCellFromTd(td, classStyles, ctx) {
|
|
129
129
|
var _a, _b, _c, _d;
|
|
130
|
+
var fortuneCellAttr = td.getAttribute("data-fortune-cell");
|
|
131
|
+
if (fortuneCellAttr) {
|
|
132
|
+
try {
|
|
133
|
+
var cell_1 = JSON.parse(decodeURIComponent(fortuneCellAttr));
|
|
134
|
+
delete cell_1.mc;
|
|
135
|
+
delete cell_1.hl;
|
|
136
|
+
var rowspan_1 = parseInt(td.getAttribute("rowspan") || "1", 10);
|
|
137
|
+
var colspan_1 = parseInt(td.getAttribute("colspan") || "1", 10);
|
|
138
|
+
return {
|
|
139
|
+
cell: cell_1,
|
|
140
|
+
rowspan: Number.isNaN(rowspan_1) ? 1 : rowspan_1,
|
|
141
|
+
colspan: Number.isNaN(colspan_1) ? 1 : colspan_1,
|
|
142
|
+
hyperlink: detectHyperlink(td)
|
|
143
|
+
};
|
|
144
|
+
} catch (_e) {}
|
|
145
|
+
}
|
|
130
146
|
var cell = {};
|
|
131
147
|
var rawText = (td.innerText || td.innerHTML || "").trim();
|
|
132
148
|
var isLineBreak = rawText.includes("<br />");
|
package/es/settings.d.ts
CHANGED
|
@@ -1,6 +1,24 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { Sheet, Selection, CellMatrix, Cell } from "./types";
|
|
3
|
+
type SheetChangePath = {
|
|
4
|
+
sheetId: string;
|
|
5
|
+
path: string[];
|
|
6
|
+
key?: string;
|
|
7
|
+
value: any;
|
|
8
|
+
type?: "update" | "delete";
|
|
9
|
+
};
|
|
3
10
|
export type Hooks = {
|
|
11
|
+
calcChainChange?: () => void;
|
|
12
|
+
sheetLengthChange?: () => void;
|
|
13
|
+
dataVerificationChange?: () => void;
|
|
14
|
+
liveQueryChange?: () => void;
|
|
15
|
+
imageListChange?: () => void;
|
|
16
|
+
iframeListChange?: () => void;
|
|
17
|
+
conditionRulesChange?: () => void;
|
|
18
|
+
conditionFormatChange?: () => void;
|
|
19
|
+
cellDataChange?: () => void;
|
|
20
|
+
hyperlinkChange?: () => void;
|
|
21
|
+
updateCellYdoc?: (changes: SheetChangePath[]) => void;
|
|
4
22
|
beforeUpdateCell?: (r: number, c: number, value: any) => boolean;
|
|
5
23
|
afterUpdateCell?: (row: number, column: number, oldValue: any, newValue: any) => void;
|
|
6
24
|
afterSelectionChange?: (sheetId: string, selection: Selection) => void;
|
|
@@ -56,6 +74,15 @@ export type Hooks = {
|
|
|
56
74
|
afterDeleteSheet?: (id: string) => void;
|
|
57
75
|
beforeUpdateSheetName?: (id: string, oldName: string, newName: string) => boolean;
|
|
58
76
|
afterUpdateSheetName?: (id: string, oldName: string, newName: string) => void;
|
|
77
|
+
afterImagesChange?: () => void;
|
|
78
|
+
afterIframesChange?: () => void;
|
|
79
|
+
afterFrozenChange?: () => void;
|
|
80
|
+
afterOrderChanges?: () => void;
|
|
81
|
+
afterConfigChanges?: () => void;
|
|
82
|
+
afterColRowChanges?: () => void;
|
|
83
|
+
afterShowGridLinesChange?: () => void;
|
|
84
|
+
afterNameChanges?: () => void;
|
|
85
|
+
afterStatusChanges?: () => void;
|
|
59
86
|
};
|
|
60
87
|
type CommentUIDragFn = (e: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;
|
|
61
88
|
export type Settings = {
|
package/lib/api/cell.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import { CommonOptions } from "./common";
|
|
|
4
4
|
export declare function getCellValue(ctx: Context, row: number, column: number, options?: CommonOptions & {
|
|
5
5
|
type?: keyof Cell;
|
|
6
6
|
}): any;
|
|
7
|
-
export declare function setCellValue(ctx: Context, row: number, column: number, value: any, cellInput: HTMLDivElement | null, options?: CommonOptions): void;
|
|
7
|
+
export declare function setCellValue(ctx: Context, row: number, column: number, value: any, cellInput: HTMLDivElement | null, options?: CommonOptions, callAfterUpdate?: boolean): void;
|
|
8
8
|
export declare function clearCell(ctx: Context, row: number, column: number, options?: CommonOptions): void;
|
|
9
9
|
export declare function setCellFormat(ctx: Context, row: number, column: number, attr: keyof Cell, value: any, options?: CommonOptions): void;
|
|
10
10
|
export declare function autoFillCell(ctx: Context, copyRange: SingleRange, applyRange: SingleRange, direction: "up" | "down" | "left" | "right"): void;
|
package/lib/api/cell.js
CHANGED
|
@@ -61,8 +61,8 @@ function getCellValue(ctx, row, column, options) {
|
|
|
61
61
|
}
|
|
62
62
|
return ret;
|
|
63
63
|
}
|
|
64
|
-
function setCellValue(ctx, row, column, value, cellInput, options) {
|
|
65
|
-
var _a;
|
|
64
|
+
function setCellValue(ctx, row, column, value, cellInput, options, callAfterUpdate) {
|
|
65
|
+
var _a, _b, _c;
|
|
66
66
|
if (options === void 0) {
|
|
67
67
|
options = {};
|
|
68
68
|
}
|
|
@@ -123,7 +123,7 @@ function setCellValue(ctx, row, column, value, cellInput, options) {
|
|
|
123
123
|
(0, _modules.setCellValue)(ctx, row, column, data, curv);
|
|
124
124
|
}
|
|
125
125
|
_lodash.default.forEach(value, function (v, attr) {
|
|
126
|
-
if (attr in formatList) {
|
|
126
|
+
if (attr in formatList && callAfterUpdate) {
|
|
127
127
|
(0, _modules.updateFormatCell)(ctx, data, attr, v, row, row, column, column);
|
|
128
128
|
} else {
|
|
129
129
|
cell_1[attr] = v;
|
|
@@ -138,6 +138,9 @@ function setCellValue(ctx, row, column, value, cellInput, options) {
|
|
|
138
138
|
(0, _modules.setCellValue)(ctx, row, column, data, value);
|
|
139
139
|
}
|
|
140
140
|
}
|
|
141
|
+
if (callAfterUpdate && ctx.hooks.afterUpdateCell) {
|
|
142
|
+
(_c = (_b = ctx.hooks).afterUpdateCell) === null || _c === void 0 ? void 0 : _c.call(_b, row, column, null, value);
|
|
143
|
+
}
|
|
141
144
|
}
|
|
142
145
|
function clearCell(ctx, row, column, options) {
|
|
143
146
|
var _a, _b;
|
package/lib/api/range.d.ts
CHANGED
|
@@ -18,5 +18,5 @@ export declare function getSelectionCoordinates(ctx: Context): string[];
|
|
|
18
18
|
export declare function getCellsByRange(ctx: Context, range: Selection, options?: CommonOptions): (Cell | null)[][];
|
|
19
19
|
export declare function getHtmlByRange(ctx: Context, range: Range, options?: CommonOptions): string | null;
|
|
20
20
|
export declare function setSelection(ctx: Context, range: Range, options: CommonOptions): void;
|
|
21
|
-
export declare function setCellValuesByRange(ctx: Context, data: any[][], range: SingleRange, cellInput: HTMLDivElement | null, options?: CommonOptions): void;
|
|
21
|
+
export declare function setCellValuesByRange(ctx: Context, data: any[][], range: SingleRange, cellInput: HTMLDivElement | null, options?: CommonOptions, callAfterUpdate?: boolean): void;
|
|
22
22
|
export declare function setCellFormatByRange(ctx: Context, attr: keyof Cell, value: any, range: Range | SingleRange, options?: CommonOptions): void;
|
package/lib/api/range.js
CHANGED
|
@@ -92,7 +92,7 @@ function setSelection(ctx, range, options) {
|
|
|
92
92
|
ctx.luckysheet_select_save = sheet.luckysheet_select_save;
|
|
93
93
|
}
|
|
94
94
|
}
|
|
95
|
-
function setCellValuesByRange(ctx, data, range, cellInput, options) {
|
|
95
|
+
function setCellValuesByRange(ctx, data, range, cellInput, options, callAfterUpdate) {
|
|
96
96
|
if (options === void 0) {
|
|
97
97
|
options = {};
|
|
98
98
|
}
|
|
@@ -114,7 +114,7 @@ function setCellValuesByRange(ctx, data, range, cellInput, options) {
|
|
|
114
114
|
for (var j = 0; j < columnCount; j += 1) {
|
|
115
115
|
var row = range.row[0] + i;
|
|
116
116
|
var column = range.column[0] + j;
|
|
117
|
-
(0, _cell.setCellValue)(ctx, row, column, data[i][j], cellInput, options);
|
|
117
|
+
(0, _cell.setCellValue)(ctx, row, column, data[i][j], cellInput, options, callAfterUpdate);
|
|
118
118
|
}
|
|
119
119
|
}
|
|
120
120
|
}
|
package/lib/events/paste.js
CHANGED
|
@@ -94,6 +94,7 @@ function adjustFormulaForPaste(formula, srcCol, srcRow, destCol, destRow) {
|
|
|
94
94
|
var stringOrCellRef = /"(?:\\.|[^"])*"|(\$?[A-Z]+\$?\d+)(?!\s*!)\b/g;
|
|
95
95
|
var result = formula.replace(stringOrCellRef, function (m, cellRef) {
|
|
96
96
|
if (!cellRef) return m;
|
|
97
|
+
if (cellRef.startsWith("$")) return m;
|
|
97
98
|
return cellRef.replace(cellRefRegex, function (__, absCol, colLetters, absRow, rowNum) {
|
|
98
99
|
var colIndex = columnLabelIndex(colLetters);
|
|
99
100
|
var rowIndex = parseInt(rowNum, 10);
|
|
@@ -200,27 +201,42 @@ function postPasteCut(ctx, source, target, RowlChange) {
|
|
|
200
201
|
(0, _sheet.storeSheetParamALL)(ctx);
|
|
201
202
|
}
|
|
202
203
|
var handleFormulaOnPaste = function handleFormulaOnPaste(ctx, d) {
|
|
203
|
-
var _a;
|
|
204
|
+
var _a, _b, _c;
|
|
205
|
+
var changes = [];
|
|
204
206
|
for (var r = 0; r < d.length; r += 1) {
|
|
205
207
|
var x = d[r];
|
|
206
208
|
for (var c = 0; c < d[0].length; c += 1) {
|
|
207
209
|
var value = (0, _lodash.isObject)(d[r][c]) ? (_a = d[r][c]) === null || _a === void 0 ? void 0 : _a.v : d[r][c];
|
|
208
210
|
if (value && String(value).startsWith("=")) {
|
|
209
211
|
var cell = {};
|
|
210
|
-
var
|
|
211
|
-
v =
|
|
212
|
-
f =
|
|
212
|
+
var _d = (0, _formula.execfunction)(ctx, String(value), r, c, undefined, undefined, true),
|
|
213
|
+
v = _d[1],
|
|
214
|
+
f = _d[2];
|
|
213
215
|
cell.v = v;
|
|
214
216
|
cell.f = f;
|
|
215
217
|
cell.m = v.toString();
|
|
216
218
|
x[c] = cell;
|
|
217
219
|
}
|
|
218
220
|
d[r] = x;
|
|
221
|
+
changes.push({
|
|
222
|
+
sheetId: ctx.currentSheetId,
|
|
223
|
+
path: ["celldata"],
|
|
224
|
+
value: {
|
|
225
|
+
r: r,
|
|
226
|
+
c: c,
|
|
227
|
+
v: d[r][c]
|
|
228
|
+
},
|
|
229
|
+
key: "".concat(r, "_").concat(c),
|
|
230
|
+
type: "update"
|
|
231
|
+
});
|
|
219
232
|
}
|
|
220
233
|
}
|
|
234
|
+
if ((_b = ctx === null || ctx === void 0 ? void 0 : ctx.hooks) === null || _b === void 0 ? void 0 : _b.updateCellYdoc) {
|
|
235
|
+
(_c = ctx.hooks) === null || _c === void 0 ? void 0 : _c.updateCellYdoc(changes);
|
|
236
|
+
}
|
|
221
237
|
};
|
|
222
238
|
function pasteHandler(ctx, data, borderInfo) {
|
|
223
|
-
var _a, _b, _c, _d, _e, _f;
|
|
239
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
224
240
|
if (ctx.luckysheet_selection_range) {
|
|
225
241
|
ctx.luckysheet_selection_range = [];
|
|
226
242
|
}
|
|
@@ -268,6 +284,7 @@ function pasteHandler(ctx, data, borderInfo) {
|
|
|
268
284
|
}
|
|
269
285
|
var RowlChange = false;
|
|
270
286
|
var offsetMC = {};
|
|
287
|
+
var changes = [];
|
|
271
288
|
for (var h = minh; h <= maxh; h += 1) {
|
|
272
289
|
var x = d[h];
|
|
273
290
|
var currentRowLen = ctx.defaultrowlen;
|
|
@@ -315,12 +332,26 @@ function pasteHandler(ctx, data, borderInfo) {
|
|
|
315
332
|
};
|
|
316
333
|
(_e = cfg.borderInfo) === null || _e === void 0 ? void 0 : _e.push(bd_obj);
|
|
317
334
|
}
|
|
335
|
+
changes.push({
|
|
336
|
+
sheetId: ctx.currentSheetId,
|
|
337
|
+
path: ["celldata"],
|
|
338
|
+
value: {
|
|
339
|
+
r: h,
|
|
340
|
+
c: c,
|
|
341
|
+
v: d[h][c]
|
|
342
|
+
},
|
|
343
|
+
key: "".concat(h, "_").concat(c),
|
|
344
|
+
type: "update"
|
|
345
|
+
});
|
|
318
346
|
}
|
|
319
347
|
d[h] = x;
|
|
320
348
|
if (currentRowLen !== ctx.defaultrowlen) {
|
|
321
349
|
cfg.rowlen[h] = currentRowLen;
|
|
322
350
|
}
|
|
323
351
|
}
|
|
352
|
+
if ((_f = ctx === null || ctx === void 0 ? void 0 : ctx.hooks) === null || _f === void 0 ? void 0 : _f.updateCellYdoc) {
|
|
353
|
+
(_g = ctx.hooks) === null || _g === void 0 ? void 0 : _g.updateCellYdoc(changes);
|
|
354
|
+
}
|
|
324
355
|
ctx.luckysheet_select_save = [{
|
|
325
356
|
row: [minh, maxh],
|
|
326
357
|
column: [minc, maxc]
|
|
@@ -345,7 +376,7 @@ function pasteHandler(ctx, data, borderInfo) {
|
|
|
345
376
|
}
|
|
346
377
|
var d = (0, _context.getFlowdata)(ctx);
|
|
347
378
|
if (!d) return;
|
|
348
|
-
var last = (
|
|
379
|
+
var last = (_h = ctx.luckysheet_select_save) === null || _h === void 0 ? void 0 : _h[ctx.luckysheet_select_save.length - 1];
|
|
349
380
|
if (!last) return;
|
|
350
381
|
var curR = last.row == null ? 0 : last.row[0];
|
|
351
382
|
var curC = last.column == null ? 0 : last.column[0];
|
|
@@ -370,6 +401,7 @@ function pasteHandler(ctx, data, borderInfo) {
|
|
|
370
401
|
if (!/^(https?:\/\/|www\.)\S+$/i.test(t)) return null;
|
|
371
402
|
return t.startsWith("http") ? t : "https://".concat(t);
|
|
372
403
|
};
|
|
404
|
+
var changes = [];
|
|
373
405
|
for (var r = 0; r < rlen; r += 1) {
|
|
374
406
|
var x = d[r + curR];
|
|
375
407
|
for (var c = 0; c < clen; c += 1) {
|
|
@@ -460,9 +492,23 @@ function pasteHandler(ctx, data, borderInfo) {
|
|
|
460
492
|
}
|
|
461
493
|
x[c + curC] = cell;
|
|
462
494
|
}
|
|
495
|
+
changes.push(changes.push({
|
|
496
|
+
sheetId: ctx.currentSheetId,
|
|
497
|
+
path: ["celldata"],
|
|
498
|
+
value: {
|
|
499
|
+
r: r,
|
|
500
|
+
c: c,
|
|
501
|
+
v: d[r][c]
|
|
502
|
+
},
|
|
503
|
+
key: "".concat(r, "_").concat(c),
|
|
504
|
+
type: "update"
|
|
505
|
+
}));
|
|
463
506
|
}
|
|
464
507
|
d[r + curR] = x;
|
|
465
508
|
}
|
|
509
|
+
if ((_j = ctx === null || ctx === void 0 ? void 0 : ctx.hooks) === null || _j === void 0 ? void 0 : _j.updateCellYdoc) {
|
|
510
|
+
(_k = ctx.hooks) === null || _k === void 0 ? void 0 : _k.updateCellYdoc(changes);
|
|
511
|
+
}
|
|
466
512
|
last.row = [curR, curR + rlen - 1];
|
|
467
513
|
last.column = [curC, curC + clen - 1];
|
|
468
514
|
(0, _refresh.jfrefreshgrid)(ctx, null, undefined);
|
package/lib/modules/cell.js
CHANGED
|
@@ -1074,7 +1074,7 @@ function getFontStyleByCell(cell, checksAF, checksCF, isCheck) {
|
|
|
1074
1074
|
if (key === "it" && valueNum !== 0) {
|
|
1075
1075
|
style.fontStyle = "italic";
|
|
1076
1076
|
}
|
|
1077
|
-
if (key === "fs" &&
|
|
1077
|
+
if (key === "fs" && !_lodash.default.isNil(value)) {
|
|
1078
1078
|
style.fontSize = "".concat(valueNum, "pt");
|
|
1079
1079
|
}
|
|
1080
1080
|
if (key === "fc" && value !== "#000000" || ((_a = checksAF === null || checksAF === void 0 ? void 0 : checksAF.length) !== null && _a !== void 0 ? _a : 0) > 0 || (checksCF === null || checksCF === void 0 ? void 0 : checksCF.textColor)) {
|
package/lib/modules/dropCell.js
CHANGED
|
@@ -2019,7 +2019,6 @@ function updateDropCell(ctx) {
|
|
|
2019
2019
|
var v = formula.execfunction(ctx, f, i, j);
|
|
2020
2020
|
formula.execFunctionGroup(ctx, j, i, v[1], undefined, d);
|
|
2021
2021
|
cell.v = v[1], cell.f = v[2];
|
|
2022
|
-
console.log(j, i);
|
|
2023
2022
|
var afterUpdateCell = ctx.hooks.afterUpdateCell;
|
|
2024
2023
|
if (afterUpdateCell) {
|
|
2025
2024
|
afterUpdateCell(i, j, null, __assign(__assign({}, cell), {
|
package/lib/modules/formula.js
CHANGED
|
@@ -728,12 +728,6 @@ function replaceDotsInFunctionName(str) {
|
|
|
728
728
|
return "=".concat(fixedFnName).concat(str.substring(openParenIndex));
|
|
729
729
|
}
|
|
730
730
|
function execfunction(ctx, txt, r, c, id, calcChainSet, isrefresh, notInsertFunc) {
|
|
731
|
-
console.log("execfunction:", {
|
|
732
|
-
txt: txt,
|
|
733
|
-
r: r,
|
|
734
|
-
c: c,
|
|
735
|
-
id: id
|
|
736
|
-
});
|
|
737
731
|
var originalTxt = txt;
|
|
738
732
|
if ((txt === null || txt === void 0 ? void 0 : txt.toUpperCase().includes("NETWORKDAYS.INTL")) || (txt === null || txt === void 0 ? void 0 : txt.toUpperCase().includes("WORKDAY.INTL"))) {
|
|
739
733
|
txt = replaceDotsInFunctionName(txt);
|
|
@@ -851,7 +845,6 @@ function execFunctionGroup(ctx, origin_r, origin_c, value, id, data, isForce) {
|
|
|
851
845
|
if (isForce === void 0) {
|
|
852
846
|
isForce = false;
|
|
853
847
|
}
|
|
854
|
-
console.log("execFunctionGroup", origin_r, origin_c, value, id, data);
|
|
855
848
|
if (_lodash.default.isNil(data)) {
|
|
856
849
|
data = (0, _context.getFlowdata)(ctx);
|
|
857
850
|
}
|
package/lib/modules/hyperlink.js
CHANGED
|
@@ -57,7 +57,7 @@ function getCellHyperlink(ctx, r, c) {
|
|
|
57
57
|
return undefined;
|
|
58
58
|
}
|
|
59
59
|
function saveHyperlink(ctx, r, c, linkText, linkType, linkAddress, options) {
|
|
60
|
-
var _a;
|
|
60
|
+
var _a, _b, _c;
|
|
61
61
|
var applyToSelection = (options === null || options === void 0 ? void 0 : options.applyToSelection) && (options === null || options === void 0 ? void 0 : options.cellInput);
|
|
62
62
|
var sheetIndex = (0, _utils.getSheetIndex)(ctx, ctx.currentSheetId);
|
|
63
63
|
var flowdata = (0, _context.getFlowdata)(ctx);
|
|
@@ -107,6 +107,19 @@ function saveHyperlink(ctx, r, c, linkText, linkType, linkAddress, options) {
|
|
|
107
107
|
};
|
|
108
108
|
flowdata[r][c] = cell;
|
|
109
109
|
ctx.linkCard = undefined;
|
|
110
|
+
if ((_b = ctx === null || ctx === void 0 ? void 0 : ctx.hooks) === null || _b === void 0 ? void 0 : _b.updateCellYdoc) {
|
|
111
|
+
(_c = ctx === null || ctx === void 0 ? void 0 : ctx.hooks) === null || _c === void 0 ? void 0 : _c.updateCellYdoc([{
|
|
112
|
+
sheetId: ctx.currentSheetId,
|
|
113
|
+
path: ["celldata"],
|
|
114
|
+
value: {
|
|
115
|
+
r: r,
|
|
116
|
+
c: c,
|
|
117
|
+
v: cell
|
|
118
|
+
},
|
|
119
|
+
key: "".concat(r, "_").concat(c),
|
|
120
|
+
type: "update"
|
|
121
|
+
}]);
|
|
122
|
+
}
|
|
110
123
|
}
|
|
111
124
|
}
|
|
112
125
|
function removeHyperlink(ctx, r, c) {
|
package/lib/modules/selection.js
CHANGED
|
@@ -1206,7 +1206,7 @@ function rangeValueToHtml(ctx, sheetId, ranges) {
|
|
|
1206
1206
|
cpdata += "<tr height=".concat(rowLen, "px >");
|
|
1207
1207
|
var _loop_3 = function _loop_3(j) {
|
|
1208
1208
|
var c = colIndexArr[j];
|
|
1209
|
-
var column = '<td ${span} style="${style}">';
|
|
1209
|
+
var column = '<td ${span} style="${style}" data-fortune-cell="${cellData}">';
|
|
1210
1210
|
var cell = (_f = d[r]) === null || _f === void 0 ? void 0 : _f[c];
|
|
1211
1211
|
if (cell != null) {
|
|
1212
1212
|
var style = "";
|
|
@@ -1417,9 +1417,11 @@ function rangeValueToHtml(ctx, sheetId, ranges) {
|
|
|
1417
1417
|
}
|
|
1418
1418
|
}
|
|
1419
1419
|
}
|
|
1420
|
+
var cellData = encodeURIComponent(JSON.stringify(cell));
|
|
1420
1421
|
column = (0, _utils.replaceHtml)(column, {
|
|
1421
1422
|
style: style,
|
|
1422
|
-
span: span
|
|
1423
|
+
span: span,
|
|
1424
|
+
cellData: cellData
|
|
1423
1425
|
});
|
|
1424
1426
|
if (_lodash.default.isNil(c_value)) {
|
|
1425
1427
|
c_value = (0, _cell.getCellValue)(r, c, d);
|
|
@@ -1469,7 +1471,8 @@ function rangeValueToHtml(ctx, sheetId, ranges) {
|
|
|
1469
1471
|
}
|
|
1470
1472
|
column = (0, _utils.replaceHtml)(column, {
|
|
1471
1473
|
style: style,
|
|
1472
|
-
span: ""
|
|
1474
|
+
span: "",
|
|
1475
|
+
cellData: ""
|
|
1473
1476
|
});
|
|
1474
1477
|
column += "";
|
|
1475
1478
|
}
|
|
@@ -1536,7 +1539,7 @@ function copy(ctx) {
|
|
|
1536
1539
|
}
|
|
1537
1540
|
}
|
|
1538
1541
|
function deleteSelectedCellText(ctx) {
|
|
1539
|
-
var _a, _b, _c;
|
|
1542
|
+
var _a, _b, _c, _d;
|
|
1540
1543
|
var allowEdit = (0, _utils.isAllowEdit)(ctx);
|
|
1541
1544
|
if (allowEdit === false || ctx.isFlvReadOnly) {
|
|
1542
1545
|
return "allowEdit";
|
|
@@ -1565,6 +1568,7 @@ function deleteSelectedCellText(ctx) {
|
|
|
1565
1568
|
var r2 = selection[s].row[1];
|
|
1566
1569
|
var c1 = selection[s].column[0];
|
|
1567
1570
|
var c2 = selection[s].column[1];
|
|
1571
|
+
var changes = [];
|
|
1568
1572
|
for (var r = r1; r <= r2; r += 1) {
|
|
1569
1573
|
for (var c = c1; c <= c2; c += 1) {
|
|
1570
1574
|
var index = (0, _utils.getSheetIndex)(ctx, ctx.currentSheetId);
|
|
@@ -1595,6 +1599,18 @@ function deleteSelectedCellText(ctx) {
|
|
|
1595
1599
|
if (hyperlinkMap && hyperlinkMap["".concat(r, "_").concat(c)]) {
|
|
1596
1600
|
delete hyperlinkMap["".concat(r, "_").concat(c)];
|
|
1597
1601
|
}
|
|
1602
|
+
if ((_d = ctx === null || ctx === void 0 ? void 0 : ctx.hooks) === null || _d === void 0 ? void 0 : _d.afterUpdateCell) {
|
|
1603
|
+
ctx.hooks.afterUpdateCell(r, c, null, d[r][c]);
|
|
1604
|
+
}
|
|
1605
|
+
changes.push({
|
|
1606
|
+
sheetId: ctx.currentSheetId,
|
|
1607
|
+
path: ["celldata"],
|
|
1608
|
+
value: {
|
|
1609
|
+
r: r,
|
|
1610
|
+
c: c,
|
|
1611
|
+
v: d[r][c]
|
|
1612
|
+
}
|
|
1613
|
+
});
|
|
1598
1614
|
}
|
|
1599
1615
|
}
|
|
1600
1616
|
}
|
package/lib/modules/sheet.js
CHANGED
|
@@ -16,6 +16,16 @@ var _sheet = require("../api/sheet");
|
|
|
16
16
|
var _locale = require("../locale");
|
|
17
17
|
var _utils = require("../utils");
|
|
18
18
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
19
|
+
var __assign = void 0 && (void 0).__assign || function () {
|
|
20
|
+
__assign = Object.assign || function (t) {
|
|
21
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
22
|
+
s = arguments[i];
|
|
23
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
|
|
24
|
+
}
|
|
25
|
+
return t;
|
|
26
|
+
};
|
|
27
|
+
return __assign.apply(this, arguments);
|
|
28
|
+
};
|
|
19
29
|
function storeSheetParam(ctx) {
|
|
20
30
|
var index = (0, _utils.getSheetIndex)(ctx, ctx.currentSheetId);
|
|
21
31
|
if (index == null) return;
|
|
@@ -32,7 +42,7 @@ function storeSheetParamALL(ctx) {
|
|
|
32
42
|
ctx.luckysheetfile[index].config = ctx.config;
|
|
33
43
|
}
|
|
34
44
|
function changeSheet(ctx, id, isPivotInitial, isNewSheet, isCopySheet) {
|
|
35
|
-
var _a, _b;
|
|
45
|
+
var _a, _b, _c, _d;
|
|
36
46
|
if (id === ctx.currentSheetId) {
|
|
37
47
|
return;
|
|
38
48
|
}
|
|
@@ -48,14 +58,11 @@ function changeSheet(ctx, id, isPivotInitial, isNewSheet, isCopySheet) {
|
|
|
48
58
|
ctx.luckysheetcurrentisPivotTable = false;
|
|
49
59
|
}
|
|
50
60
|
if (ctx.hooks.afterActivateSheet) {
|
|
51
|
-
|
|
52
|
-
var _a, _b;
|
|
53
|
-
(_b = (_a = ctx.hooks).afterActivateSheet) === null || _b === void 0 ? void 0 : _b.call(_a, id);
|
|
54
|
-
});
|
|
61
|
+
(_d = (_c = ctx.hooks).afterActivateSheet) === null || _d === void 0 ? void 0 : _d.call(_c, id);
|
|
55
62
|
}
|
|
56
63
|
}
|
|
57
64
|
function addSheet(ctx, settings, newSheetID, isPivotTable, sheetName, sheetData) {
|
|
58
|
-
var _a, _b;
|
|
65
|
+
var _a, _b, _c, _d;
|
|
59
66
|
if (newSheetID === void 0) {
|
|
60
67
|
newSheetID = undefined;
|
|
61
68
|
}
|
|
@@ -99,18 +106,12 @@ function addSheet(ctx, settings, newSheetID, isPivotTable, sheetName, sheetData)
|
|
|
99
106
|
return;
|
|
100
107
|
}
|
|
101
108
|
ctx.luckysheetfile.push(sheetconfig);
|
|
102
|
-
if (!newSheetID) {
|
|
103
|
-
changeSheet(ctx, id, isPivotTable, true);
|
|
104
|
-
}
|
|
105
109
|
if (ctx.hooks.afterAddSheet) {
|
|
106
|
-
|
|
107
|
-
var _a, _b;
|
|
108
|
-
(_b = (_a = ctx.hooks).afterAddSheet) === null || _b === void 0 ? void 0 : _b.call(_a, sheetconfig);
|
|
109
|
-
});
|
|
110
|
+
(_d = (_c = ctx.hooks).afterAddSheet) === null || _d === void 0 ? void 0 : _d.call(_c, __assign({}, sheetconfig));
|
|
110
111
|
}
|
|
111
112
|
}
|
|
112
113
|
function deleteSheet(ctx, id) {
|
|
113
|
-
var _a, _b, _c;
|
|
114
|
+
var _a, _b, _c, _d, _e;
|
|
114
115
|
if (ctx.allowEdit === false) {
|
|
115
116
|
return;
|
|
116
117
|
}
|
|
@@ -136,10 +137,7 @@ function deleteSheet(ctx, id) {
|
|
|
136
137
|
ctx.currentSheetId = (_c = orderSheets === null || orderSheets === void 0 ? void 0 : orderSheets[0]) === null || _c === void 0 ? void 0 : _c.id;
|
|
137
138
|
}
|
|
138
139
|
if (ctx.hooks.afterDeleteSheet) {
|
|
139
|
-
|
|
140
|
-
var _a, _b;
|
|
141
|
-
(_b = (_a = ctx.hooks).afterDeleteSheet) === null || _b === void 0 ? void 0 : _b.call(_a, id);
|
|
142
|
-
});
|
|
140
|
+
(_e = (_d = ctx.hooks).afterDeleteSheet) === null || _e === void 0 ? void 0 : _e.call(_d, id);
|
|
143
141
|
}
|
|
144
142
|
}
|
|
145
143
|
function updateSheet(ctx, newData) {
|
package/lib/modules/toolbar.js
CHANGED
|
@@ -49,12 +49,13 @@ var _conditionalFormat = require("./conditionalFormat");
|
|
|
49
49
|
var _text = require("./text");
|
|
50
50
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
51
51
|
function updateFormatCell(ctx, d, attr, foucsStatus, row_st, row_ed, col_st, col_ed, canvas) {
|
|
52
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6;
|
|
53
|
-
var
|
|
52
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10;
|
|
53
|
+
var _11;
|
|
54
54
|
if (_lodash.default.isNil(d) || _lodash.default.isNil(attr)) {
|
|
55
55
|
return;
|
|
56
56
|
}
|
|
57
57
|
if (attr === "ct") {
|
|
58
|
+
var changes = [];
|
|
58
59
|
for (var r = row_st; r <= row_ed; r += 1) {
|
|
59
60
|
if (!_lodash.default.isNil(ctx.config.rowhidden) && !_lodash.default.isNil(ctx.config.rowhidden[r])) {
|
|
60
61
|
continue;
|
|
@@ -130,6 +131,20 @@ function updateFormatCell(ctx, d, attr, foucsStatus, row_st, row_ed, col_st, col
|
|
|
130
131
|
m: mask
|
|
131
132
|
};
|
|
132
133
|
}
|
|
134
|
+
changes.push({
|
|
135
|
+
sheetId: ctx.currentSheetId,
|
|
136
|
+
path: ["celldata"],
|
|
137
|
+
value: {
|
|
138
|
+
r: r,
|
|
139
|
+
c: c,
|
|
140
|
+
v: d[r][c]
|
|
141
|
+
},
|
|
142
|
+
key: "".concat(r, "_").concat(c),
|
|
143
|
+
type: "update"
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
if ((_x = ctx === null || ctx === void 0 ? void 0 : ctx.hooks) === null || _x === void 0 ? void 0 : _x.updateCellYdoc) {
|
|
147
|
+
(_y = ctx.hooks) === null || _y === void 0 ? void 0 : _y.updateCellYdoc(changes);
|
|
133
148
|
}
|
|
134
149
|
}
|
|
135
150
|
} else {
|
|
@@ -176,6 +191,7 @@ function updateFormatCell(ctx, d, attr, foucsStatus, row_st, row_ed, col_st, col
|
|
|
176
191
|
if (sheetIndex == null) {
|
|
177
192
|
return;
|
|
178
193
|
}
|
|
194
|
+
var changes = [];
|
|
179
195
|
for (var r = row_st; r <= row_ed; r += 1) {
|
|
180
196
|
if (!_lodash.default.isNil(ctx.config.rowhidden) && !_lodash.default.isNil(ctx.config.rowhidden[r])) {
|
|
181
197
|
continue;
|
|
@@ -185,11 +201,11 @@ function updateFormatCell(ctx, d, attr, foucsStatus, row_st, row_ed, col_st, col
|
|
|
185
201
|
if (value && _lodash.default.isPlainObject(value)) {
|
|
186
202
|
(0, _inlineString.updateInlineStringFormatOutside)(value, attr, foucsStatus);
|
|
187
203
|
value[attr] = foucsStatus;
|
|
188
|
-
(
|
|
204
|
+
(_11 = ctx.luckysheetfile[sheetIndex]).config || (_11.config = {});
|
|
189
205
|
var cfg = ctx.luckysheetfile[sheetIndex].config;
|
|
190
|
-
var cellWidth = ((
|
|
206
|
+
var cellWidth = ((_z = cfg.columnlen) === null || _z === void 0 ? void 0 : _z[c]) || ctx.luckysheetfile[sheetIndex].defaultColWidth;
|
|
191
207
|
if (attr === "tb" && canvas && foucsStatus === "2") {
|
|
192
|
-
var currentColWidth_1 = ((
|
|
208
|
+
var currentColWidth_1 = ((_0 = cfg.columnlen) === null || _0 === void 0 ? void 0 : _0[c]) || ctx.luckysheetfile[sheetIndex].defaultColWidth || 100;
|
|
193
209
|
var lineCount_1 = 1;
|
|
194
210
|
var fontString_1 = "10px Arial";
|
|
195
211
|
if (value.fs) {
|
|
@@ -202,9 +218,9 @@ function updateFormatCell(ctx, d, attr, foucsStatus, row_st, row_ed, col_st, col
|
|
|
202
218
|
lineCount_1 = (0, _utils.getLineCount)(value.m, currentColWidth_1, fontString_1);
|
|
203
219
|
var hOffset = lineCount_1 < 4 ? 1.9 : 1.7;
|
|
204
220
|
lineCount_1 = lineCount_1 * hOffset + 1;
|
|
205
|
-
} else if ((
|
|
221
|
+
} else if ((_3 = (_2 = (_1 = value === null || value === void 0 ? void 0 : value.ct) === null || _1 === void 0 ? void 0 : _1.s) === null || _2 === void 0 ? void 0 : _2[0]) === null || _3 === void 0 ? void 0 : _3.v) {
|
|
206
222
|
lineCount_1 -= 1;
|
|
207
|
-
var line = (
|
|
223
|
+
var line = (_6 = (_5 = (_4 = value === null || value === void 0 ? void 0 : value.ct) === null || _4 === void 0 ? void 0 : _4.s) === null || _5 === void 0 ? void 0 : _5[0]) === null || _6 === void 0 ? void 0 : _6.v.split("\n");
|
|
208
224
|
line.forEach(function (item) {
|
|
209
225
|
var subLineCount = (0, _utils.getLineCount)(item, currentColWidth_1, fontString_1);
|
|
210
226
|
lineCount_1 += subLineCount;
|
|
@@ -224,7 +240,7 @@ function updateFormatCell(ctx, d, attr, foucsStatus, row_st, row_ed, col_st, col
|
|
|
224
240
|
});
|
|
225
241
|
if (!textInfo) return "continue";
|
|
226
242
|
var rowHeight = _lodash.default.round(textInfo.textHeightAll);
|
|
227
|
-
var currentRowHeight = ((
|
|
243
|
+
var currentRowHeight = ((_7 = cfg.rowlen) === null || _7 === void 0 ? void 0 : _7[r]) || ctx.luckysheetfile[sheetIndex].defaultRowHeight || 19;
|
|
228
244
|
if (!_lodash.default.isUndefined(rowHeight) && rowHeight > currentRowHeight && (!cfg.customHeight || cfg.customHeight[r] !== 1)) {
|
|
229
245
|
if (_lodash.default.isUndefined(cfg.rowlen)) cfg.rowlen = {};
|
|
230
246
|
_lodash.default.set(cfg, "rowlen.".concat(r), rowHeight);
|
|
@@ -239,7 +255,7 @@ function updateFormatCell(ctx, d, attr, foucsStatus, row_st, row_ed, col_st, col
|
|
|
239
255
|
});
|
|
240
256
|
if (!textInfo) return "continue";
|
|
241
257
|
var newHeight = _lodash.default.round(textInfo.textHeightAll);
|
|
242
|
-
var oldHeight = ((
|
|
258
|
+
var oldHeight = ((_8 = cfg.rowlen) === null || _8 === void 0 ? void 0 : _8[r]) || ctx.luckysheetfile[sheetIndex].defaultRowHeight || 19;
|
|
243
259
|
var shouldResize = foucsStatus === "2" ? newHeight > oldHeight : true;
|
|
244
260
|
if (shouldResize && (!cfg.customHeight || cfg.customHeight[r] !== 1)) {
|
|
245
261
|
var padding = 12;
|
|
@@ -254,11 +270,25 @@ function updateFormatCell(ctx, d, attr, foucsStatus, row_st, row_ed, col_st, col
|
|
|
254
270
|
};
|
|
255
271
|
d[r][c][attr] = foucsStatus;
|
|
256
272
|
}
|
|
273
|
+
changes.push({
|
|
274
|
+
sheetId: ctx.currentSheetId,
|
|
275
|
+
path: ["celldata"],
|
|
276
|
+
value: {
|
|
277
|
+
r: r,
|
|
278
|
+
c: c,
|
|
279
|
+
v: d[r][c]
|
|
280
|
+
},
|
|
281
|
+
key: "".concat(r, "_").concat(c),
|
|
282
|
+
type: "update"
|
|
283
|
+
});
|
|
257
284
|
};
|
|
258
285
|
for (var c = col_st; c <= col_ed; c += 1) {
|
|
259
286
|
_loop_1(c);
|
|
260
287
|
}
|
|
261
288
|
}
|
|
289
|
+
if ((_9 = ctx === null || ctx === void 0 ? void 0 : ctx.hooks) === null || _9 === void 0 ? void 0 : _9.updateCellYdoc) {
|
|
290
|
+
(_10 = ctx.hooks) === null || _10 === void 0 ? void 0 : _10.updateCellYdoc(changes);
|
|
291
|
+
}
|
|
262
292
|
}
|
|
263
293
|
}
|
|
264
294
|
function updateFormat(ctx, $input, d, attr, foucsStatus, canvas) {
|
|
@@ -135,6 +135,22 @@ function brToNewline(str) {
|
|
|
135
135
|
}
|
|
136
136
|
var buildCellFromTd = function buildCellFromTd(td, classStyles, ctx) {
|
|
137
137
|
var _a, _b, _c, _d;
|
|
138
|
+
var fortuneCellAttr = td.getAttribute("data-fortune-cell");
|
|
139
|
+
if (fortuneCellAttr) {
|
|
140
|
+
try {
|
|
141
|
+
var cell_1 = JSON.parse(decodeURIComponent(fortuneCellAttr));
|
|
142
|
+
delete cell_1.mc;
|
|
143
|
+
delete cell_1.hl;
|
|
144
|
+
var rowspan_1 = parseInt(td.getAttribute("rowspan") || "1", 10);
|
|
145
|
+
var colspan_1 = parseInt(td.getAttribute("colspan") || "1", 10);
|
|
146
|
+
return {
|
|
147
|
+
cell: cell_1,
|
|
148
|
+
rowspan: Number.isNaN(rowspan_1) ? 1 : rowspan_1,
|
|
149
|
+
colspan: Number.isNaN(colspan_1) ? 1 : colspan_1,
|
|
150
|
+
hyperlink: detectHyperlink(td)
|
|
151
|
+
};
|
|
152
|
+
} catch (_e) {}
|
|
153
|
+
}
|
|
138
154
|
var cell = {};
|
|
139
155
|
var rawText = (td.innerText || td.innerHTML || "").trim();
|
|
140
156
|
var isLineBreak = rawText.includes("<br />");
|
package/lib/settings.d.ts
CHANGED
|
@@ -1,6 +1,24 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { Sheet, Selection, CellMatrix, Cell } from "./types";
|
|
3
|
+
type SheetChangePath = {
|
|
4
|
+
sheetId: string;
|
|
5
|
+
path: string[];
|
|
6
|
+
key?: string;
|
|
7
|
+
value: any;
|
|
8
|
+
type?: "update" | "delete";
|
|
9
|
+
};
|
|
3
10
|
export type Hooks = {
|
|
11
|
+
calcChainChange?: () => void;
|
|
12
|
+
sheetLengthChange?: () => void;
|
|
13
|
+
dataVerificationChange?: () => void;
|
|
14
|
+
liveQueryChange?: () => void;
|
|
15
|
+
imageListChange?: () => void;
|
|
16
|
+
iframeListChange?: () => void;
|
|
17
|
+
conditionRulesChange?: () => void;
|
|
18
|
+
conditionFormatChange?: () => void;
|
|
19
|
+
cellDataChange?: () => void;
|
|
20
|
+
hyperlinkChange?: () => void;
|
|
21
|
+
updateCellYdoc?: (changes: SheetChangePath[]) => void;
|
|
4
22
|
beforeUpdateCell?: (r: number, c: number, value: any) => boolean;
|
|
5
23
|
afterUpdateCell?: (row: number, column: number, oldValue: any, newValue: any) => void;
|
|
6
24
|
afterSelectionChange?: (sheetId: string, selection: Selection) => void;
|
|
@@ -56,6 +74,15 @@ export type Hooks = {
|
|
|
56
74
|
afterDeleteSheet?: (id: string) => void;
|
|
57
75
|
beforeUpdateSheetName?: (id: string, oldName: string, newName: string) => boolean;
|
|
58
76
|
afterUpdateSheetName?: (id: string, oldName: string, newName: string) => void;
|
|
77
|
+
afterImagesChange?: () => void;
|
|
78
|
+
afterIframesChange?: () => void;
|
|
79
|
+
afterFrozenChange?: () => void;
|
|
80
|
+
afterOrderChanges?: () => void;
|
|
81
|
+
afterConfigChanges?: () => void;
|
|
82
|
+
afterColRowChanges?: () => void;
|
|
83
|
+
afterShowGridLinesChange?: () => void;
|
|
84
|
+
afterNameChanges?: () => void;
|
|
85
|
+
afterStatusChanges?: () => void;
|
|
59
86
|
};
|
|
60
87
|
type CommentUIDragFn = (e: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;
|
|
61
88
|
export type Settings = {
|