@fileverse-dev/fortune-core 1.3.10-yjs-10 → 1.3.11-input-ref
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/events/keyboard.js +35 -14
- package/es/events/mouse.js +36 -20
- package/es/modules/cell.js +1 -0
- package/es/modules/dropCell.js +0 -1
- package/es/modules/formula.d.ts +7 -0
- package/es/modules/formula.js +342 -45
- package/es/modules/selection.js +0 -28
- package/lib/events/keyboard.js +34 -13
- package/lib/events/mouse.js +35 -19
- package/lib/modules/cell.js +1 -0
- package/lib/modules/dropCell.js +0 -1
- package/lib/modules/formula.d.ts +7 -0
- package/lib/modules/formula.js +348 -45
- package/lib/modules/selection.js +0 -28
- package/package.json +1 -1
package/lib/events/keyboard.js
CHANGED
|
@@ -134,6 +134,9 @@ var __generator = void 0 && (void 0).__generator || function (thisArg, body) {
|
|
|
134
134
|
};
|
|
135
135
|
}
|
|
136
136
|
};
|
|
137
|
+
function isLegacyFormulaRangeMode(ctx) {
|
|
138
|
+
return !!ctx.formulaCache.rangestart || !!ctx.formulaCache.rangedrag_column_start || !!ctx.formulaCache.rangedrag_row_start || ctx.formulaCache.rangeSelectionActive === true || (0, _formula.israngeseleciton)(ctx);
|
|
139
|
+
}
|
|
137
140
|
function handleGlobalEnter(ctx, cellInput, e, canvas) {
|
|
138
141
|
var _a, _b, _c;
|
|
139
142
|
if ((e.altKey || e.metaKey) && ctx.luckysheetCellUpdate.length > 0) {
|
|
@@ -179,11 +182,20 @@ function moveToEdge(sheetData, key, curr, rowDelta, colDelta, startR, endR, star
|
|
|
179
182
|
return colDelta === 0 ? r : c;
|
|
180
183
|
}
|
|
181
184
|
function handleControlPlusArrowKey(ctx, e, shiftPressed) {
|
|
182
|
-
if (ctx.
|
|
185
|
+
if (ctx.formulaCache.rangeSelectionActive === false && !(0, _formula.maybeRecoverDirtyRangeSelection)(ctx)) {
|
|
186
|
+
return;
|
|
187
|
+
}
|
|
188
|
+
var isFormulaRefMode = isLegacyFormulaRangeMode(ctx);
|
|
189
|
+
if (isFormulaRefMode) {
|
|
190
|
+
ctx.formulaCache.rangeSelectionActive = true;
|
|
191
|
+
}
|
|
192
|
+
if (ctx.luckysheetCellUpdate.length > 0 && !isFormulaRefMode) {
|
|
193
|
+
return;
|
|
194
|
+
}
|
|
183
195
|
var idx = (0, _utils.getSheetIndex)(ctx, ctx.currentSheetId);
|
|
184
196
|
if (_lodash.default.isNil(idx)) return;
|
|
185
197
|
var file = ctx.luckysheetfile[idx];
|
|
186
|
-
if (!file ||
|
|
198
|
+
if (!file || _lodash.default.isNil(file.row) || _lodash.default.isNil(file.column)) return;
|
|
187
199
|
var maxRow = file.row;
|
|
188
200
|
var maxCol = file.column;
|
|
189
201
|
var last;
|
|
@@ -334,7 +346,14 @@ function handleWithCtrlOrMetaKey(ctx, cache, e, cellInput, fxInput, handleUndo,
|
|
|
334
346
|
}
|
|
335
347
|
function handleShiftWithArrowKey(ctx, e) {
|
|
336
348
|
var _a;
|
|
337
|
-
if (ctx.
|
|
349
|
+
if (ctx.formulaCache.rangeSelectionActive === false && !(0, _formula.maybeRecoverDirtyRangeSelection)(ctx)) {
|
|
350
|
+
return;
|
|
351
|
+
}
|
|
352
|
+
var isFormulaMode = isLegacyFormulaRangeMode(ctx);
|
|
353
|
+
if (isFormulaMode) {
|
|
354
|
+
ctx.formulaCache.rangeSelectionActive = true;
|
|
355
|
+
}
|
|
356
|
+
if (ctx.luckysheetCellUpdate.length > 0 && !isFormulaMode) {
|
|
338
357
|
return;
|
|
339
358
|
}
|
|
340
359
|
ctx.luckysheet_shiftpositon = _lodash.default.cloneDeep((_a = ctx.luckysheet_select_save) === null || _a === void 0 ? void 0 : _a[ctx.luckysheet_select_save.length - 1]);
|
|
@@ -358,17 +377,15 @@ function handleShiftWithArrowKey(ctx, e) {
|
|
|
358
377
|
e.preventDefault();
|
|
359
378
|
}
|
|
360
379
|
function handleArrowKey(ctx, e) {
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
var parser = new DOMParser();
|
|
364
|
-
var doc = parser.parseFromString("<div>".concat((_a = document.getElementById("luckysheet-rich-text-editor")) === null || _a === void 0 ? void 0 : _a.innerHTML, "</div>"), "text/html");
|
|
365
|
-
var spans = doc.querySelectorAll("span");
|
|
366
|
-
var lastSpan = spans[spans.length - 1];
|
|
367
|
-
var notFunctionInit = !((_b = document.getElementById("luckysheet-rich-text-editor")) === null || _b === void 0 ? void 0 : _b.innerText.includes("("));
|
|
368
|
-
if ((lastSpan === null || lastSpan === void 0 ? void 0 : lastSpan.innerText.includes(")")) || (lastSpan === null || lastSpan === void 0 ? void 0 : lastSpan.innerText.includes('"')) || notFunctionInit && /^[a-zA-Z]+$/.test(lastSpan === null || lastSpan === void 0 ? void 0 : lastSpan.innerText) && !_lodash.default.includes(["="], lastSpan === null || lastSpan === void 0 ? void 0 : lastSpan.innerText) || /^[a-zA-Z]+$/.test(lastSpan === null || lastSpan === void 0 ? void 0 : lastSpan.innerText)) {
|
|
369
|
-
return;
|
|
370
|
-
}
|
|
380
|
+
if (ctx.formulaCache.rangeSelectionActive === false && !(0, _formula.maybeRecoverDirtyRangeSelection)(ctx)) {
|
|
381
|
+
return;
|
|
371
382
|
}
|
|
383
|
+
var isFormulaRefMode = isLegacyFormulaRangeMode(ctx);
|
|
384
|
+
if (isFormulaRefMode) ctx.formulaCache.rangeSelectionActive = true;
|
|
385
|
+
if (ctx.luckysheetCellUpdate.length > 0 && !isFormulaRefMode) {
|
|
386
|
+
return;
|
|
387
|
+
}
|
|
388
|
+
if (ctx.luckysheetCellUpdate.length > 0 || ctx.luckysheet_cell_selected_move || ctx.luckysheet_cell_selected_extend) {}
|
|
372
389
|
var moveCount = (0, _2.hideCRCount)(ctx, e.key);
|
|
373
390
|
switch (e.key) {
|
|
374
391
|
case "ArrowUp":
|
|
@@ -386,6 +403,7 @@ function handleArrowKey(ctx, e) {
|
|
|
386
403
|
default:
|
|
387
404
|
break;
|
|
388
405
|
}
|
|
406
|
+
e.preventDefault();
|
|
389
407
|
}
|
|
390
408
|
function handleGlobalKeyDown(ctx, cellInput, fxInput, e, cache, handleUndo, handleRedo, canvas) {
|
|
391
409
|
var _a, _b, _c;
|
|
@@ -494,6 +512,9 @@ function handleGlobalKeyDown(ctx, cellInput, fxInput, e, cache, handleUndo, hand
|
|
|
494
512
|
if (ctx.activeImg != null) {
|
|
495
513
|
(0, _2.removeActiveImage)(ctx);
|
|
496
514
|
} else {
|
|
515
|
+
if (ctx.formulaCache.rangeSelectionActive === true) {
|
|
516
|
+
(0, _formula.markRangeSelectionDirty)(ctx);
|
|
517
|
+
}
|
|
497
518
|
(0, _selection.deleteSelectedCellText)(ctx);
|
|
498
519
|
}
|
|
499
520
|
(0, _refresh.jfrefreshgrid)(ctx, null, undefined);
|
package/lib/events/mouse.js
CHANGED
|
@@ -127,7 +127,7 @@ function fixPositionOnFrozenCells(freeze, x, y, mouseX, mouseY) {
|
|
|
127
127
|
}
|
|
128
128
|
function handleCellAreaMouseDown(ctx, globalCache, e, cellInput, container, fxInput, canvas) {
|
|
129
129
|
var _a, _b;
|
|
130
|
-
var _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o
|
|
130
|
+
var _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
|
|
131
131
|
if (!(fxInput === null || fxInput === void 0 ? void 0 : fxInput.innerHTML) && ctx) {
|
|
132
132
|
ctx.defaultCandidates = [];
|
|
133
133
|
}
|
|
@@ -146,11 +146,11 @@ function handleCellAreaMouseDown(ctx, globalCache, e, cellInput, container, fxIn
|
|
|
146
146
|
return;
|
|
147
147
|
}
|
|
148
148
|
var freeze = (_c = globalCache.freezen) === null || _c === void 0 ? void 0 : _c[ctx.currentSheetId];
|
|
149
|
-
var
|
|
150
|
-
x =
|
|
151
|
-
y =
|
|
152
|
-
inHorizontalFreeze =
|
|
153
|
-
inVerticalFreeze =
|
|
149
|
+
var _p = fixPositionOnFrozenCells(freeze, _x, _y, mouseX, mouseY),
|
|
150
|
+
x = _p.x,
|
|
151
|
+
y = _p.y,
|
|
152
|
+
inHorizontalFreeze = _p.inHorizontalFreeze,
|
|
153
|
+
inVerticalFreeze = _p.inVerticalFreeze;
|
|
154
154
|
var row_location = (0, _location.rowLocation)(y, ctx.visibledatarow);
|
|
155
155
|
var row = row_location[1];
|
|
156
156
|
var row_pre = row_location[0];
|
|
@@ -195,12 +195,7 @@ function handleCellAreaMouseDown(ctx, globalCache, e, cellInput, container, fxIn
|
|
|
195
195
|
}
|
|
196
196
|
ctx.luckysheet_scroll_status = true;
|
|
197
197
|
if (ctx.luckysheetCellUpdate.length > 0) {
|
|
198
|
-
|
|
199
|
-
var doc = parser.parseFromString("<div>".concat((_g = document.getElementById("luckysheet-rich-text-editor")) === null || _g === void 0 ? void 0 : _g.innerHTML, "</div>"), "text/html");
|
|
200
|
-
var spans = doc.querySelectorAll("span");
|
|
201
|
-
var firstSpan = spans[0];
|
|
202
|
-
var lastSpan = spans[spans.length - 1];
|
|
203
|
-
if ((ctx.formulaCache.rangestart || ctx.formulaCache.rangedrag_column_start || ctx.formulaCache.rangedrag_row_start || (0, _modules.israngeseleciton)(ctx) || (firstSpan === null || firstSpan === void 0 ? void 0 : firstSpan.innerText.includes("=")) && !(lastSpan === null || lastSpan === void 0 ? void 0 : lastSpan.innerText.includes(")"))) && lastSpan && ctx.luckysheetCellUpdate.length === 2) {
|
|
198
|
+
if (ctx.formulaCache.rangestart || ctx.formulaCache.rangedrag_column_start || ctx.formulaCache.rangedrag_row_start || (0, _modules.israngeseleciton)(ctx)) {
|
|
204
199
|
var rowseleted = [row_index, row_index_ed];
|
|
205
200
|
var columnseleted = [col_index, col_index_ed];
|
|
206
201
|
var left = col_pre;
|
|
@@ -267,7 +262,7 @@ function handleCellAreaMouseDown(ctx, globalCache, e, cellInput, container, fxIn
|
|
|
267
262
|
last.top_move = top_1;
|
|
268
263
|
last.height_move = height;
|
|
269
264
|
ctx.formulaCache.func_selectedrange = last;
|
|
270
|
-
} else if (e.ctrlKey && ((
|
|
265
|
+
} else if (e.ctrlKey && ((_g = _lodash.default.last(cellInput.querySelectorAll("span"))) === null || _g === void 0 ? void 0 : _g.innerText) !== ",") {
|
|
271
266
|
var vText = cellInput.innerText;
|
|
272
267
|
if (vText[vText.length - 1] === ")") {
|
|
273
268
|
vText = vText.substring(0, vText.length - 1);
|
|
@@ -283,7 +278,7 @@ function handleCellAreaMouseDown(ctx, globalCache, e, cellInput, container, fxIn
|
|
|
283
278
|
if (window.getSelection) {
|
|
284
279
|
var currSelection = window.getSelection();
|
|
285
280
|
if (currSelection == null) return;
|
|
286
|
-
ctx.formulaCache.functionRangeIndex = [_lodash.default.indexOf((
|
|
281
|
+
ctx.formulaCache.functionRangeIndex = [_lodash.default.indexOf((_k = (_j = (_h = currSelection.anchorNode) === null || _h === void 0 ? void 0 : _h.parentNode) === null || _j === void 0 ? void 0 : _j.parentNode) === null || _k === void 0 ? void 0 : _k.childNodes, (_l = currSelection.anchorNode) === null || _l === void 0 ? void 0 : _l.parentNode), currSelection.anchorOffset];
|
|
287
282
|
} else {
|
|
288
283
|
var textRange = document.selection.createRange();
|
|
289
284
|
ctx.formulaCache.functionRangeIndex = textRange;
|
|
@@ -328,13 +323,14 @@ function handleCellAreaMouseDown(ctx, globalCache, e, cellInput, container, fxIn
|
|
|
328
323
|
column_focus: col_index
|
|
329
324
|
};
|
|
330
325
|
}
|
|
326
|
+
ctx.formulaCache.rangestart = true;
|
|
327
|
+
ctx.formulaCache.rangedrag_column_start = false;
|
|
328
|
+
ctx.formulaCache.rangedrag_row_start = false;
|
|
331
329
|
(0, _modules.rangeSetValue)(ctx, cellInput, {
|
|
332
330
|
row: rowseleted,
|
|
333
331
|
column: columnseleted
|
|
334
332
|
}, fxInput);
|
|
335
|
-
ctx
|
|
336
|
-
ctx.formulaCache.rangedrag_column_start = false;
|
|
337
|
-
ctx.formulaCache.rangedrag_row_start = false;
|
|
333
|
+
(0, _modules.rangeHightlightselected)(ctx, cellInput);
|
|
338
334
|
ctx.formulaCache.selectingRangeIndex = ctx.formulaCache.rangechangeindex;
|
|
339
335
|
if (ctx.formulaCache.rangechangeindex > ctx.formulaRangeHighlight.length) {
|
|
340
336
|
(0, _modules.createRangeHightlight)(ctx, cellInput.innerHTML, ctx.formulaCache.rangechangeindex);
|
|
@@ -357,7 +353,7 @@ function handleCellAreaMouseDown(ctx, globalCache, e, cellInput, container, fxIn
|
|
|
357
353
|
}
|
|
358
354
|
if (ctx.luckysheet_select_status) {
|
|
359
355
|
if (e.shiftKey) {
|
|
360
|
-
var last = (
|
|
356
|
+
var last = (_m = ctx.luckysheet_select_save) === null || _m === void 0 ? void 0 : _m[ctx.luckysheet_select_save.length - 1];
|
|
361
357
|
if (last && last.top != null && last.left != null && last.height != null && last.width != null && last.row_focus != null && last.column_focus != null) {
|
|
362
358
|
var top_2 = 0;
|
|
363
359
|
var height = 0;
|
|
@@ -416,7 +412,7 @@ function handleCellAreaMouseDown(ctx, globalCache, e, cellInput, container, fxIn
|
|
|
416
412
|
ctx.luckysheet_select_save[ctx.luckysheet_select_save.length - 1] = last;
|
|
417
413
|
}
|
|
418
414
|
} else if (e.ctrlKey || e.metaKey) {
|
|
419
|
-
(
|
|
415
|
+
(_o = ctx.luckysheet_select_save) === null || _o === void 0 ? void 0 : _o.push({
|
|
420
416
|
left: col_pre,
|
|
421
417
|
width: col - col_pre - 1,
|
|
422
418
|
top: row_pre,
|
|
@@ -848,10 +844,28 @@ function mouseRender(ctx, globalCache, e, cellInput, scrollX, scrollY, container
|
|
|
848
844
|
ctx.luckysheet_select_save[ctx.luckysheet_select_save.length - 1] = last;
|
|
849
845
|
(0, _freeze.scrollToFrozenRowCol)(ctx, (_d = globalCache.freezen) === null || _d === void 0 ? void 0 : _d[ctx.currentSheetId]);
|
|
850
846
|
} else if (ctx.formulaCache.rangestart) {
|
|
847
|
+
if (ctx.formulaCache.rangeSelectionActive === false && !(0, _modules.maybeRecoverDirtyRangeSelection)(ctx)) {
|
|
848
|
+
if (ctx.luckysheetCellUpdate.length > 0) {
|
|
849
|
+
(0, _cell.updateCell)(ctx, ctx.luckysheetCellUpdate[0], ctx.luckysheetCellUpdate[1], cellInput);
|
|
850
|
+
}
|
|
851
|
+
return;
|
|
852
|
+
}
|
|
851
853
|
(0, _modules.rangeDrag)(ctx, e, cellInput, scrollX.scrollLeft, scrollY.scrollTop, container, fxInput);
|
|
852
854
|
} else if (ctx.formulaCache.rangedrag_row_start) {
|
|
855
|
+
if (ctx.formulaCache.rangeSelectionActive === false && !(0, _modules.maybeRecoverDirtyRangeSelection)(ctx)) {
|
|
856
|
+
if (ctx.luckysheetCellUpdate.length > 0) {
|
|
857
|
+
(0, _cell.updateCell)(ctx, ctx.luckysheetCellUpdate[0], ctx.luckysheetCellUpdate[1], cellInput);
|
|
858
|
+
}
|
|
859
|
+
return;
|
|
860
|
+
}
|
|
853
861
|
(0, _formula.rangeDragRow)(ctx, e, cellInput, scrollX.scrollLeft, scrollY.scrollTop, container, fxInput);
|
|
854
862
|
} else if (ctx.formulaCache.rangedrag_column_start) {
|
|
863
|
+
if (ctx.formulaCache.rangeSelectionActive === false && !(0, _modules.maybeRecoverDirtyRangeSelection)(ctx)) {
|
|
864
|
+
if (ctx.luckysheetCellUpdate.length > 0) {
|
|
865
|
+
(0, _cell.updateCell)(ctx, ctx.luckysheetCellUpdate[0], ctx.luckysheetCellUpdate[1], cellInput);
|
|
866
|
+
}
|
|
867
|
+
return;
|
|
868
|
+
}
|
|
855
869
|
(0, _formula.rangeDragColumn)(ctx, e, cellInput, scrollX.scrollLeft, scrollY.scrollTop, container, fxInput);
|
|
856
870
|
} else if (ctx.luckysheet_rows_selected_status) {} else if (ctx.luckysheet_cols_selected_status) {} else if (ctx.luckysheet_cell_selected_move) {} else if (ctx.luckysheet_cell_selected_extend) {
|
|
857
871
|
(0, _dropCell.onDropCellSelect)(ctx, e, scrollX, scrollY, container);
|
|
@@ -1338,6 +1352,7 @@ function handleRowHeaderMouseDown(ctx, globalCache, e, container, cellInput, fxI
|
|
|
1338
1352
|
row: rowseleted,
|
|
1339
1353
|
column: [null, null]
|
|
1340
1354
|
}, fxInput);
|
|
1355
|
+
(0, _modules.rangeHightlightselected)(ctx, cellInput);
|
|
1341
1356
|
}
|
|
1342
1357
|
ctx.formulaCache.rangedrag_row_start = true;
|
|
1343
1358
|
ctx.formulaCache.rangestart = false;
|
|
@@ -1569,6 +1584,7 @@ function handleColumnHeaderMouseDown(ctx, globalCache, e, container, cellInput,
|
|
|
1569
1584
|
row: [null, null],
|
|
1570
1585
|
column: columnseleted
|
|
1571
1586
|
}, fxInput);
|
|
1587
|
+
(0, _modules.rangeHightlightselected)(ctx, cellInput);
|
|
1572
1588
|
}
|
|
1573
1589
|
ctx.formulaCache.rangedrag_column_start = true;
|
|
1574
1590
|
ctx.formulaCache.rangestart = false;
|
package/lib/modules/cell.js
CHANGED
|
@@ -574,6 +574,7 @@ function cancelNormalSelected(ctx) {
|
|
|
574
574
|
ctx.formulaCache.rangestart = false;
|
|
575
575
|
ctx.formulaCache.rangedrag_column_start = false;
|
|
576
576
|
ctx.formulaCache.rangedrag_row_start = false;
|
|
577
|
+
ctx.formulaCache.rangeSelectionActive = null;
|
|
577
578
|
}
|
|
578
579
|
function updateCell(ctx, r, c, $input, value, canvas) {
|
|
579
580
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v;
|
package/lib/modules/dropCell.js
CHANGED
|
@@ -1796,7 +1796,6 @@ function getApplyData(copyD, csLen, asLen) {
|
|
|
1796
1796
|
function updateDropCell(ctx) {
|
|
1797
1797
|
var _a, _b, _c, _d;
|
|
1798
1798
|
var _e, _f, _g, _h;
|
|
1799
|
-
console.log("updateDropCell");
|
|
1800
1799
|
var d = (0, _context.getFlowdata)(ctx);
|
|
1801
1800
|
var allowEdit = (0, _utils.isAllowEdit)(ctx);
|
|
1802
1801
|
var isReadOnly = (0, _utils.isAllowEditReadOnly)(ctx);
|
package/lib/modules/formula.d.ts
CHANGED
|
@@ -20,6 +20,7 @@ export declare class FormulaCache {
|
|
|
20
20
|
rangetosheet?: string;
|
|
21
21
|
rangedrag_column_start?: boolean;
|
|
22
22
|
rangedrag_row_start?: boolean;
|
|
23
|
+
rangeSelectionActive?: boolean | null;
|
|
23
24
|
functionRangeIndex?: number[];
|
|
24
25
|
functionlistMap: any;
|
|
25
26
|
execFunctionExist?: any[];
|
|
@@ -44,8 +45,14 @@ export declare function setCaretPosition(ctx: Context, textDom: HTMLElement, chi
|
|
|
44
45
|
export declare function getrangeseleciton(): ParentNode | ChildNode | null | undefined;
|
|
45
46
|
export declare function rangeHightlightselected(ctx: Context, $editor: HTMLDivElement): void;
|
|
46
47
|
export declare function functionHTMLGenerate(txt: string): string;
|
|
48
|
+
export declare function getLastFormulaRangeIndex($editor: HTMLDivElement): number | null;
|
|
49
|
+
export declare function getFormulaRangeIndexAtCaret($editor: HTMLDivElement): number | null;
|
|
50
|
+
export declare function markRangeSelectionDirty(ctx: Context): void;
|
|
51
|
+
export declare function getFormulaRangeIndexForKeyboardSync($editor: HTMLDivElement): number | null;
|
|
47
52
|
export declare function handleFormulaInput(ctx: Context, $copyTo: HTMLDivElement | null | undefined, $editor: HTMLDivElement, kcode: number, preText?: string, refreshRangeSelect?: boolean): void;
|
|
48
53
|
export declare function israngeseleciton(ctx: Context, istooltip?: boolean): boolean;
|
|
54
|
+
export declare function isFormulaReferenceInputMode(ctx: Context): boolean;
|
|
55
|
+
export declare function maybeRecoverDirtyRangeSelection(ctx: Context): boolean;
|
|
49
56
|
export declare function functionStrChange(txt: string, type: string, rc: "row" | "col", orient: string | null, stindex: number, step: number): string;
|
|
50
57
|
export declare function rangeSetValue(ctx: Context, cellInput: HTMLDivElement, selected: any, fxInput?: HTMLDivElement | null): void;
|
|
51
58
|
export declare function onFormulaRangeDragEnd(ctx: Context): void;
|