@fileverse-dev/fortune-core 1.3.11-input-ref → 1.3.11-input-ref-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/events/mouse.js +27 -21
- package/es/modules/cell.js +1 -0
- package/es/modules/formula.d.ts +4 -0
- package/es/modules/formula.js +65 -33
- package/lib/events/mouse.js +26 -20
- package/lib/modules/cell.js +1 -0
- package/lib/modules/formula.d.ts +4 -0
- package/lib/modules/formula.js +69 -34
- package/package.json +1 -1
package/es/events/mouse.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _ from "lodash";
|
|
2
2
|
import { getFlowdata } from "../context";
|
|
3
|
-
import { cancelActiveImgItem, cancelPaintModel, functionHTMLGenerate, israngeseleciton, maybeRecoverDirtyRangeSelection, rangeHightlightselected, rangeSetValue, onCommentBoxMove, onCommentBoxMoveEnd, onCommentBoxResize, onCommentBoxResizeEnd, onImageMove, onImageMoveEnd, onImageResize, onImageResizeEnd, removeEditingComment, removeOverShowComment, rangeDrag, onFormulaRangeDragEnd, createFormulaRangeSelect, createRangeHightlight, onCellsMoveEnd, onCellsMove, cellFocus, editComment, onIframeMoveEnd, onIframeResizeEnd, overShowError } from "../modules";
|
|
3
|
+
import { cancelActiveImgItem, cancelPaintModel, functionHTMLGenerate, israngeseleciton, maybeRecoverDirtyRangeSelection, rangeHightlightselected, rangeSetValue, getFormulaEditorOwner, onCommentBoxMove, onCommentBoxMoveEnd, onCommentBoxResize, onCommentBoxResizeEnd, onImageMove, onImageMoveEnd, onImageResize, onImageResizeEnd, removeEditingComment, removeOverShowComment, rangeDrag, onFormulaRangeDragEnd, createFormulaRangeSelect, createRangeHightlight, onCellsMoveEnd, onCellsMove, cellFocus, editComment, onIframeMoveEnd, onIframeResizeEnd, overShowError } from "../modules";
|
|
4
4
|
import { getFrozenHandleLeft, getFrozenHandleTop, scrollToFrozenRowCol } from "../modules/freeze";
|
|
5
5
|
import { cancelFunctionrangeSelected, mergeBorder, mergeMoveMain, updateCell, luckysheetUpdateCell } from "../modules/cell";
|
|
6
6
|
import { colLocation, colLocationByIndex, rowLocation, rowLocationByIndex } from "../modules/location";
|
|
@@ -950,7 +950,7 @@ export function handleOverlayMouseMove(ctx, globalCache, e, cellInput, scrollX,
|
|
|
950
950
|
}
|
|
951
951
|
}
|
|
952
952
|
export function handleOverlayMouseUp(ctx, globalCache, settings, e, scrollbarX, scrollbarY, container, cellInput, fxInput) {
|
|
953
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m
|
|
953
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
954
954
|
var rect = container.getBoundingClientRect();
|
|
955
955
|
onImageMoveEnd(ctx, globalCache);
|
|
956
956
|
onImageResizeEnd(ctx, globalCache);
|
|
@@ -963,11 +963,17 @@ export function handleOverlayMouseUp(ctx, globalCache, settings, e, scrollbarX,
|
|
|
963
963
|
onRangeSelectionModalMoveEnd(globalCache);
|
|
964
964
|
onCellsMoveEnd(ctx, globalCache, e, scrollbarX, scrollbarY, container);
|
|
965
965
|
if (ctx.formulaCache.rangestart || ctx.formulaCache.rangedrag_column_start || ctx.formulaCache.rangedrag_row_start) {
|
|
966
|
-
if ((
|
|
966
|
+
if (getFormulaEditorOwner(ctx) === "fx") {
|
|
967
967
|
handleFormulaInput(ctx, cellInput, fxInput, 0, undefined, false);
|
|
968
968
|
} else {
|
|
969
969
|
handleFormulaInput(ctx, fxInput, cellInput, 0, undefined, false);
|
|
970
970
|
}
|
|
971
|
+
ctx.luckysheet_select_status = false;
|
|
972
|
+
ctx.luckysheet_scroll_status = false;
|
|
973
|
+
ctx.luckysheet_rows_selected_status = false;
|
|
974
|
+
ctx.luckysheet_cols_selected_status = false;
|
|
975
|
+
e.preventDefault();
|
|
976
|
+
return;
|
|
971
977
|
}
|
|
972
978
|
if (ctx.luckysheet_select_status) {
|
|
973
979
|
if (ctx.luckysheetPaintModelOn) {
|
|
@@ -1009,10 +1015,10 @@ export function handleOverlayMouseUp(ctx, globalCache, settings, e, scrollbarX,
|
|
|
1009
1015
|
cfg_1.customHeight[ctx.luckysheet_rows_change_size_start[1]] = 1;
|
|
1010
1016
|
var changeRowIndex_1 = ctx.luckysheet_rows_change_size_start[1];
|
|
1011
1017
|
var changeRowSelected_1 = false;
|
|
1012
|
-
if (((
|
|
1013
|
-
(
|
|
1018
|
+
if (((_b = (_a = ctx.luckysheet_select_save) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0) > 0) {
|
|
1019
|
+
(_d = (_c = ctx.luckysheet_select_save) === null || _c === void 0 ? void 0 : _c.filter(function (select) {
|
|
1014
1020
|
return select.row_select;
|
|
1015
|
-
})) === null ||
|
|
1021
|
+
})) === null || _d === void 0 ? void 0 : _d.some(function (select) {
|
|
1016
1022
|
if (changeRowIndex_1 >= select.row[0] && changeRowIndex_1 <= select.row[1]) {
|
|
1017
1023
|
changeRowSelected_1 = true;
|
|
1018
1024
|
}
|
|
@@ -1021,9 +1027,9 @@ export function handleOverlayMouseUp(ctx, globalCache, settings, e, scrollbarX,
|
|
|
1021
1027
|
}
|
|
1022
1028
|
if (changeRowSelected_1) {
|
|
1023
1029
|
cfg_1.rowlen || (cfg_1.rowlen = {});
|
|
1024
|
-
(
|
|
1030
|
+
(_f = (_e = ctx.luckysheet_select_save) === null || _e === void 0 ? void 0 : _e.filter(function (select) {
|
|
1025
1031
|
return select.row_select;
|
|
1026
|
-
})) === null ||
|
|
1032
|
+
})) === null || _f === void 0 ? void 0 : _f.forEach(function (select) {
|
|
1027
1033
|
for (var r = select.row[0]; r <= select.row[1]; r += 1) {
|
|
1028
1034
|
cfg_1.rowlen[r] = Math.ceil(size_1 / ctx.zoomRatio);
|
|
1029
1035
|
}
|
|
@@ -1067,10 +1073,10 @@ export function handleOverlayMouseUp(ctx, globalCache, settings, e, scrollbarX,
|
|
|
1067
1073
|
cfg_2.customWidth[ctx.luckysheet_cols_change_size_start[1]] = 1;
|
|
1068
1074
|
var changeColumnIndex_1 = ctx.luckysheet_cols_change_size_start[1];
|
|
1069
1075
|
var changeColumnSelected_1 = false;
|
|
1070
|
-
if (((
|
|
1071
|
-
(
|
|
1076
|
+
if (((_h = (_g = ctx.luckysheet_select_save) === null || _g === void 0 ? void 0 : _g.length) !== null && _h !== void 0 ? _h : 0) > 0) {
|
|
1077
|
+
(_k = (_j = ctx.luckysheet_select_save) === null || _j === void 0 ? void 0 : _j.filter(function (select) {
|
|
1072
1078
|
return select.column_select;
|
|
1073
|
-
})) === null ||
|
|
1079
|
+
})) === null || _k === void 0 ? void 0 : _k.some(function (select) {
|
|
1074
1080
|
if (changeColumnIndex_1 >= select.column[0] && changeColumnIndex_1 <= select.column[1]) {
|
|
1075
1081
|
changeColumnSelected_1 = true;
|
|
1076
1082
|
}
|
|
@@ -1079,9 +1085,9 @@ export function handleOverlayMouseUp(ctx, globalCache, settings, e, scrollbarX,
|
|
|
1079
1085
|
}
|
|
1080
1086
|
if (changeColumnSelected_1) {
|
|
1081
1087
|
cfg_2.columnlen || (cfg_2.columnlen = {});
|
|
1082
|
-
(
|
|
1088
|
+
(_m = (_l = ctx.luckysheet_select_save) === null || _l === void 0 ? void 0 : _l.filter(function (select) {
|
|
1083
1089
|
return select.column_select;
|
|
1084
|
-
})) === null ||
|
|
1090
|
+
})) === null || _m === void 0 ? void 0 : _m.forEach(function (select) {
|
|
1085
1091
|
for (var r = select.column[0]; r <= select.column[1]; r += 1) {
|
|
1086
1092
|
cfg_2.columnlen[r] = Math.ceil(size_2 / ctx.zoomRatio);
|
|
1087
1093
|
}
|
|
@@ -1098,10 +1104,10 @@ export function handleOverlayMouseUp(ctx, globalCache, settings, e, scrollbarX,
|
|
|
1098
1104
|
ctx.luckysheet_cols_freeze_drag = false;
|
|
1099
1105
|
var scrollLeft = ctx.scrollLeft;
|
|
1100
1106
|
var x = e.pageX - rect.left - ctx.rowHeaderWidth + scrollLeft - window.scrollX;
|
|
1101
|
-
var
|
|
1102
|
-
col_pre =
|
|
1103
|
-
col_curr =
|
|
1104
|
-
col_index_curr =
|
|
1107
|
+
var _o = colLocation(x, ctx.visibledatacolumn),
|
|
1108
|
+
col_pre = _o[0],
|
|
1109
|
+
col_curr = _o[1],
|
|
1110
|
+
col_index_curr = _o[2];
|
|
1105
1111
|
var col_index = x > (col_curr + col_pre) / 2 ? col_index_curr : col_index_curr - 1;
|
|
1106
1112
|
var idx = getSheetIndex(ctx, ctx.currentSheetId);
|
|
1107
1113
|
if (idx == null) return;
|
|
@@ -1149,10 +1155,10 @@ export function handleOverlayMouseUp(ctx, globalCache, settings, e, scrollbarX,
|
|
|
1149
1155
|
ctx.luckysheet_rows_freeze_drag = false;
|
|
1150
1156
|
var scrollTop = ctx.scrollTop;
|
|
1151
1157
|
var y = e.pageY - rect.top - ctx.columnHeaderHeight + scrollTop - window.scrollY;
|
|
1152
|
-
var
|
|
1153
|
-
row_pre =
|
|
1154
|
-
row_curr =
|
|
1155
|
-
row_index_curr =
|
|
1158
|
+
var _p = rowLocation(y, ctx.visibledatarow),
|
|
1159
|
+
row_pre = _p[0],
|
|
1160
|
+
row_curr = _p[1],
|
|
1161
|
+
row_index_curr = _p[2];
|
|
1156
1162
|
var row_index = y > (row_curr + row_pre) / 2 ? row_index_curr : row_index_curr - 1;
|
|
1157
1163
|
var idx = getSheetIndex(ctx, ctx.currentSheetId);
|
|
1158
1164
|
if (idx == null) return;
|
package/es/modules/cell.js
CHANGED
|
@@ -542,6 +542,7 @@ export function cancelNormalSelected(ctx) {
|
|
|
542
542
|
ctx.formulaCache.rangedrag_column_start = false;
|
|
543
543
|
ctx.formulaCache.rangedrag_row_start = false;
|
|
544
544
|
ctx.formulaCache.rangeSelectionActive = null;
|
|
545
|
+
ctx.formulaCache.formulaEditorOwner = null;
|
|
545
546
|
}
|
|
546
547
|
export function updateCell(ctx, r, c, $input, value, canvas) {
|
|
547
548
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v;
|
package/es/modules/formula.d.ts
CHANGED
|
@@ -21,6 +21,7 @@ export declare class FormulaCache {
|
|
|
21
21
|
rangedrag_column_start?: boolean;
|
|
22
22
|
rangedrag_row_start?: boolean;
|
|
23
23
|
rangeSelectionActive?: boolean | null;
|
|
24
|
+
formulaEditorOwner?: "cell" | "fx" | null;
|
|
24
25
|
functionRangeIndex?: number[];
|
|
25
26
|
functionlistMap: any;
|
|
26
27
|
execFunctionExist?: any[];
|
|
@@ -47,6 +48,9 @@ export declare function rangeHightlightselected(ctx: Context, $editor: HTMLDivEl
|
|
|
47
48
|
export declare function functionHTMLGenerate(txt: string): string;
|
|
48
49
|
export declare function getLastFormulaRangeIndex($editor: HTMLDivElement): number | null;
|
|
49
50
|
export declare function getFormulaRangeIndexAtCaret($editor: HTMLDivElement): number | null;
|
|
51
|
+
export declare function setFormulaEditorOwner(ctx: Context, owner: "cell" | "fx" | null): void;
|
|
52
|
+
export declare function getFormulaEditorOwner(ctx: Context): "cell" | "fx" | null;
|
|
53
|
+
export declare function isCaretAtValidFormulaRangeInsertionPoint(editor: HTMLElement | null): boolean;
|
|
50
54
|
export declare function markRangeSelectionDirty(ctx: Context): void;
|
|
51
55
|
export declare function getFormulaRangeIndexForKeyboardSync($editor: HTMLDivElement): number | null;
|
|
52
56
|
export declare function handleFormulaInput(ctx: Context, $copyTo: HTMLDivElement | null | undefined, $editor: HTMLDivElement, kcode: number, preText?: string, refreshRangeSelect?: boolean): void;
|
package/es/modules/formula.js
CHANGED
|
@@ -21,14 +21,13 @@ var __spreadArray = this && this.__spreadArray || function (to, from, pack) {
|
|
|
21
21
|
import { Parser, ERROR_REF } from "@fileverse-dev/formula-parser";
|
|
22
22
|
import _ from "lodash";
|
|
23
23
|
import { getFlowdata } from "../context";
|
|
24
|
-
import { columnCharToIndex, escapeScriptTag, getSheetIndex, indexToColumnChar, getSheetIdByName, escapeHTMLTag } from "../utils";
|
|
24
|
+
import { columnCharToIndex, escapeScriptTag, getSheetIndex, indexToColumnChar, getSheetIdByName, escapeHTMLTag, isLetterNumberPattern, removeLastSpan } from "../utils";
|
|
25
25
|
import { getcellFormula, getRangetxt, mergeMoveMain, setCellValue } from "./cell";
|
|
26
26
|
import { error, detectErrorFromValue } from "./validation";
|
|
27
27
|
import { locale } from "../locale";
|
|
28
28
|
import { colors } from "./color";
|
|
29
29
|
import { colLocation, mousePosition, rowLocation } from "./location";
|
|
30
30
|
import { cancelFunctionrangeSelected, clearCellError, seletedHighlistByindex, setCellError, spillSortResult } from ".";
|
|
31
|
-
import { isLetterNumberPattern, removeLastSpan } from "../utils/index";
|
|
32
31
|
var functionHTMLIndex = 0;
|
|
33
32
|
var rangeIndexes = [];
|
|
34
33
|
var operatorPriority = {
|
|
@@ -56,6 +55,7 @@ var FormulaCache = function () {
|
|
|
56
55
|
this.data_parm_index = 0;
|
|
57
56
|
this.selectingRangeIndex = -1;
|
|
58
57
|
this.rangeSelectionActive = null;
|
|
58
|
+
this.formulaEditorOwner = null;
|
|
59
59
|
this.functionlistMap = {};
|
|
60
60
|
this.execFunctionGlobalData = {};
|
|
61
61
|
this.cellTextToIndexList = {};
|
|
@@ -1630,6 +1630,61 @@ export function getFormulaRangeIndexAtCaret($editor) {
|
|
|
1630
1630
|
var n = parseInt(ri, 10);
|
|
1631
1631
|
return Number.isNaN(n) ? null : n;
|
|
1632
1632
|
}
|
|
1633
|
+
export function setFormulaEditorOwner(ctx, owner) {
|
|
1634
|
+
ctx.formulaCache.formulaEditorOwner = owner;
|
|
1635
|
+
}
|
|
1636
|
+
export function getFormulaEditorOwner(ctx) {
|
|
1637
|
+
var _a, _b;
|
|
1638
|
+
var cachedOwner = ctx.formulaCache.formulaEditorOwner;
|
|
1639
|
+
if (cachedOwner === "cell" || cachedOwner === "fx") {
|
|
1640
|
+
return cachedOwner;
|
|
1641
|
+
}
|
|
1642
|
+
if (((_a = document.activeElement) === null || _a === void 0 ? void 0 : _a.id) === "luckysheet-functionbox-cell") {
|
|
1643
|
+
return "fx";
|
|
1644
|
+
}
|
|
1645
|
+
if (((_b = document.activeElement) === null || _b === void 0 ? void 0 : _b.id) === "luckysheet-rich-text-editor") {
|
|
1646
|
+
return "cell";
|
|
1647
|
+
}
|
|
1648
|
+
return null;
|
|
1649
|
+
}
|
|
1650
|
+
function getCurrentFormulaSlotTextBeforeCaret(editor, caretOffset) {
|
|
1651
|
+
var textBefore = editor.innerText.slice(0, caretOffset);
|
|
1652
|
+
var parts = textBefore.split(/[=,(+\-*/&<>]/);
|
|
1653
|
+
return _.trim(parts[parts.length - 1] || "");
|
|
1654
|
+
}
|
|
1655
|
+
export function isCaretAtValidFormulaRangeInsertionPoint(editor) {
|
|
1656
|
+
var currSelection = window.getSelection();
|
|
1657
|
+
if (!editor || !currSelection || currSelection.rangeCount === 0) {
|
|
1658
|
+
return false;
|
|
1659
|
+
}
|
|
1660
|
+
var anchorNode = currSelection.anchorNode;
|
|
1661
|
+
if (anchorNode && !editor.contains(anchorNode)) {
|
|
1662
|
+
return false;
|
|
1663
|
+
}
|
|
1664
|
+
var inputText = editor.innerText.trim();
|
|
1665
|
+
if (!inputText.startsWith("=")) {
|
|
1666
|
+
return false;
|
|
1667
|
+
}
|
|
1668
|
+
if (/^=\s*[A-Za-z_][A-Za-z0-9_]*$/.test(inputText)) {
|
|
1669
|
+
return false;
|
|
1670
|
+
}
|
|
1671
|
+
var caretRange = currSelection.getRangeAt(0).cloneRange();
|
|
1672
|
+
var preCaretRange = document.createRange();
|
|
1673
|
+
preCaretRange.selectNodeContents(editor);
|
|
1674
|
+
preCaretRange.setEnd(caretRange.endContainer, caretRange.endOffset);
|
|
1675
|
+
var caretOffset = preCaretRange.toString().length;
|
|
1676
|
+
var slotTextBeforeCaret = getCurrentFormulaSlotTextBeforeCaret(editor, caretOffset);
|
|
1677
|
+
if (slotTextBeforeCaret.length > 0 && !iscelldata(slotTextBeforeCaret)) {
|
|
1678
|
+
return false;
|
|
1679
|
+
}
|
|
1680
|
+
var textAfter = editor.innerText.slice(caretOffset);
|
|
1681
|
+
var remaining = textAfter.replace(/^\s+/, "");
|
|
1682
|
+
if (remaining.length === 0) {
|
|
1683
|
+
return true;
|
|
1684
|
+
}
|
|
1685
|
+
var first = remaining[0];
|
|
1686
|
+
return first === "," || first === ")" || first === "&" || first in operatorjson;
|
|
1687
|
+
}
|
|
1633
1688
|
function hasCommaOrAnotherRefAfterRangeCell(cell) {
|
|
1634
1689
|
var _a, _b;
|
|
1635
1690
|
var n = cell.nextSibling;
|
|
@@ -2024,31 +2079,7 @@ export function israngeseleciton(ctx, istooltip) {
|
|
|
2024
2079
|
return true;
|
|
2025
2080
|
}
|
|
2026
2081
|
var editor = ((_a = anchorElement.closest) === null || _a === void 0 ? void 0 : _a.call(anchorElement, "#luckysheet-rich-text-editor, #luckysheet-functionbox-cell")) || ((_b = parentElement.closest) === null || _b === void 0 ? void 0 : _b.call(parentElement, "#luckysheet-rich-text-editor, #luckysheet-functionbox-cell")) || document.getElementById("luckysheet-rich-text-editor");
|
|
2027
|
-
|
|
2028
|
-
return true;
|
|
2029
|
-
}
|
|
2030
|
-
var inputText = editor.innerText.trim();
|
|
2031
|
-
if (!inputText.startsWith("=")) {
|
|
2032
|
-
return false;
|
|
2033
|
-
}
|
|
2034
|
-
if (/^=\s*[A-Za-z_][A-Za-z0-9_]*$/.test(inputText)) {
|
|
2035
|
-
return false;
|
|
2036
|
-
}
|
|
2037
|
-
var caretRange = currSelection.getRangeAt(0).cloneRange();
|
|
2038
|
-
var preCaretRange = document.createRange();
|
|
2039
|
-
preCaretRange.selectNodeContents(editor);
|
|
2040
|
-
preCaretRange.setEnd(caretRange.endContainer, caretRange.endOffset);
|
|
2041
|
-
var caretOffset = preCaretRange.toString().length;
|
|
2042
|
-
var textAfter = editor.innerText.slice(caretOffset);
|
|
2043
|
-
var remaining = textAfter.replace(/^\s+/, "");
|
|
2044
|
-
if (remaining.length === 0) {
|
|
2045
|
-
return true;
|
|
2046
|
-
}
|
|
2047
|
-
var first = remaining[0];
|
|
2048
|
-
if (first === "," || first === ")" || first === "&" || first in operatorjson) {
|
|
2049
|
-
return true;
|
|
2050
|
-
}
|
|
2051
|
-
return false;
|
|
2082
|
+
return isCaretAtValidFormulaRangeInsertionPoint(editor);
|
|
2052
2083
|
};
|
|
2053
2084
|
if (((_a = anchor === null || anchor === void 0 ? void 0 : anchor.parentNode) === null || _a === void 0 ? void 0 : _a.nodeName.toLowerCase()) === "span" && anchorOffset !== 0) {
|
|
2054
2085
|
var txt = _.trim((_b = anchor.textContent) !== null && _b !== void 0 ? _b : "");
|
|
@@ -2132,7 +2163,8 @@ export function maybeRecoverDirtyRangeSelection(ctx) {
|
|
|
2132
2163
|
return false;
|
|
2133
2164
|
}
|
|
2134
2165
|
var inputText = (editor.innerText || "").trim();
|
|
2135
|
-
|
|
2166
|
+
var atCaretRangeIndex = getFormulaRangeIndexAtCaret(editor);
|
|
2167
|
+
if (inputText.startsWith("=") && atCaretRangeIndex === null && israngeseleciton(ctx)) {
|
|
2136
2168
|
ctx.formulaCache.rangeSelectionActive = null;
|
|
2137
2169
|
return true;
|
|
2138
2170
|
}
|
|
@@ -2233,7 +2265,7 @@ export function functionStrChange(txt, type, rc, orient, stindex, step) {
|
|
|
2233
2265
|
return function_str;
|
|
2234
2266
|
}
|
|
2235
2267
|
export function rangeSetValue(ctx, cellInput, selected, fxInput) {
|
|
2236
|
-
var _a, _b, _c, _d, _e, _f
|
|
2268
|
+
var _a, _b, _c, _d, _e, _f;
|
|
2237
2269
|
var parser = new DOMParser();
|
|
2238
2270
|
var doc = parser.parseFromString("<div>".concat(cellInput.innerHTML, "</div>"), "text/html");
|
|
2239
2271
|
var spans = doc.querySelectorAll("span");
|
|
@@ -2248,7 +2280,7 @@ export function rangeSetValue(ctx, cellInput, selected, fxInput) {
|
|
|
2248
2280
|
}
|
|
2249
2281
|
var $editor = cellInput;
|
|
2250
2282
|
var $copyTo = fxInput;
|
|
2251
|
-
if ((
|
|
2283
|
+
if (getFormulaEditorOwner(ctx) === "fx") {
|
|
2252
2284
|
$editor = fxInput;
|
|
2253
2285
|
$copyTo = cellInput;
|
|
2254
2286
|
}
|
|
@@ -2277,9 +2309,9 @@ export function rangeSetValue(ctx, cellInput, selected, fxInput) {
|
|
|
2277
2309
|
refEle = ctx.formulaCache.rangeSetValueTo;
|
|
2278
2310
|
}
|
|
2279
2311
|
if (refEle && refEle.parentNode) {
|
|
2280
|
-
var leftPar = (
|
|
2281
|
-
if ((
|
|
2282
|
-
(
|
|
2312
|
+
var leftPar = (_c = document.getElementsByClassName("luckysheet-formula-text-lpar")) === null || _c === void 0 ? void 0 : _c[0];
|
|
2313
|
+
if ((_d = leftPar === null || leftPar === void 0 ? void 0 : leftPar.parentElement) === null || _d === void 0 ? void 0 : _d.classList.contains("luckysheet-formula-text-color")) {
|
|
2314
|
+
(_f = (_e = document.getElementsByClassName("luckysheet-formula-text-lpar")) === null || _e === void 0 ? void 0 : _e[0].parentNode) === null || _f === void 0 ? void 0 : _f.appendChild(newEle);
|
|
2283
2315
|
} else {
|
|
2284
2316
|
refEle.parentNode.insertBefore(newEle, refEle.nextSibling);
|
|
2285
2317
|
}
|
package/lib/events/mouse.js
CHANGED
|
@@ -971,7 +971,7 @@ function handleOverlayMouseMove(ctx, globalCache, e, cellInput, scrollX, scrollY
|
|
|
971
971
|
}
|
|
972
972
|
}
|
|
973
973
|
function handleOverlayMouseUp(ctx, globalCache, settings, e, scrollbarX, scrollbarY, container, cellInput, fxInput) {
|
|
974
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m
|
|
974
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
975
975
|
var rect = container.getBoundingClientRect();
|
|
976
976
|
(0, _modules.onImageMoveEnd)(ctx, globalCache);
|
|
977
977
|
(0, _modules.onImageResizeEnd)(ctx, globalCache);
|
|
@@ -984,11 +984,17 @@ function handleOverlayMouseUp(ctx, globalCache, settings, e, scrollbarX, scrollb
|
|
|
984
984
|
(0, _hyperlink.onRangeSelectionModalMoveEnd)(globalCache);
|
|
985
985
|
(0, _modules.onCellsMoveEnd)(ctx, globalCache, e, scrollbarX, scrollbarY, container);
|
|
986
986
|
if (ctx.formulaCache.rangestart || ctx.formulaCache.rangedrag_column_start || ctx.formulaCache.rangedrag_row_start) {
|
|
987
|
-
if ((
|
|
987
|
+
if ((0, _modules.getFormulaEditorOwner)(ctx) === "fx") {
|
|
988
988
|
(0, _formula.handleFormulaInput)(ctx, cellInput, fxInput, 0, undefined, false);
|
|
989
989
|
} else {
|
|
990
990
|
(0, _formula.handleFormulaInput)(ctx, fxInput, cellInput, 0, undefined, false);
|
|
991
991
|
}
|
|
992
|
+
ctx.luckysheet_select_status = false;
|
|
993
|
+
ctx.luckysheet_scroll_status = false;
|
|
994
|
+
ctx.luckysheet_rows_selected_status = false;
|
|
995
|
+
ctx.luckysheet_cols_selected_status = false;
|
|
996
|
+
e.preventDefault();
|
|
997
|
+
return;
|
|
992
998
|
}
|
|
993
999
|
if (ctx.luckysheet_select_status) {
|
|
994
1000
|
if (ctx.luckysheetPaintModelOn) {
|
|
@@ -1030,10 +1036,10 @@ function handleOverlayMouseUp(ctx, globalCache, settings, e, scrollbarX, scrollb
|
|
|
1030
1036
|
cfg_1.customHeight[ctx.luckysheet_rows_change_size_start[1]] = 1;
|
|
1031
1037
|
var changeRowIndex_1 = ctx.luckysheet_rows_change_size_start[1];
|
|
1032
1038
|
var changeRowSelected_1 = false;
|
|
1033
|
-
if (((
|
|
1034
|
-
(
|
|
1039
|
+
if (((_b = (_a = ctx.luckysheet_select_save) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0) > 0) {
|
|
1040
|
+
(_d = (_c = ctx.luckysheet_select_save) === null || _c === void 0 ? void 0 : _c.filter(function (select) {
|
|
1035
1041
|
return select.row_select;
|
|
1036
|
-
})) === null ||
|
|
1042
|
+
})) === null || _d === void 0 ? void 0 : _d.some(function (select) {
|
|
1037
1043
|
if (changeRowIndex_1 >= select.row[0] && changeRowIndex_1 <= select.row[1]) {
|
|
1038
1044
|
changeRowSelected_1 = true;
|
|
1039
1045
|
}
|
|
@@ -1042,9 +1048,9 @@ function handleOverlayMouseUp(ctx, globalCache, settings, e, scrollbarX, scrollb
|
|
|
1042
1048
|
}
|
|
1043
1049
|
if (changeRowSelected_1) {
|
|
1044
1050
|
cfg_1.rowlen || (cfg_1.rowlen = {});
|
|
1045
|
-
(
|
|
1051
|
+
(_f = (_e = ctx.luckysheet_select_save) === null || _e === void 0 ? void 0 : _e.filter(function (select) {
|
|
1046
1052
|
return select.row_select;
|
|
1047
|
-
})) === null ||
|
|
1053
|
+
})) === null || _f === void 0 ? void 0 : _f.forEach(function (select) {
|
|
1048
1054
|
for (var r = select.row[0]; r <= select.row[1]; r += 1) {
|
|
1049
1055
|
cfg_1.rowlen[r] = Math.ceil(size_1 / ctx.zoomRatio);
|
|
1050
1056
|
}
|
|
@@ -1088,10 +1094,10 @@ function handleOverlayMouseUp(ctx, globalCache, settings, e, scrollbarX, scrollb
|
|
|
1088
1094
|
cfg_2.customWidth[ctx.luckysheet_cols_change_size_start[1]] = 1;
|
|
1089
1095
|
var changeColumnIndex_1 = ctx.luckysheet_cols_change_size_start[1];
|
|
1090
1096
|
var changeColumnSelected_1 = false;
|
|
1091
|
-
if (((
|
|
1092
|
-
(
|
|
1097
|
+
if (((_h = (_g = ctx.luckysheet_select_save) === null || _g === void 0 ? void 0 : _g.length) !== null && _h !== void 0 ? _h : 0) > 0) {
|
|
1098
|
+
(_k = (_j = ctx.luckysheet_select_save) === null || _j === void 0 ? void 0 : _j.filter(function (select) {
|
|
1093
1099
|
return select.column_select;
|
|
1094
|
-
})) === null ||
|
|
1100
|
+
})) === null || _k === void 0 ? void 0 : _k.some(function (select) {
|
|
1095
1101
|
if (changeColumnIndex_1 >= select.column[0] && changeColumnIndex_1 <= select.column[1]) {
|
|
1096
1102
|
changeColumnSelected_1 = true;
|
|
1097
1103
|
}
|
|
@@ -1100,9 +1106,9 @@ function handleOverlayMouseUp(ctx, globalCache, settings, e, scrollbarX, scrollb
|
|
|
1100
1106
|
}
|
|
1101
1107
|
if (changeColumnSelected_1) {
|
|
1102
1108
|
cfg_2.columnlen || (cfg_2.columnlen = {});
|
|
1103
|
-
(
|
|
1109
|
+
(_m = (_l = ctx.luckysheet_select_save) === null || _l === void 0 ? void 0 : _l.filter(function (select) {
|
|
1104
1110
|
return select.column_select;
|
|
1105
|
-
})) === null ||
|
|
1111
|
+
})) === null || _m === void 0 ? void 0 : _m.forEach(function (select) {
|
|
1106
1112
|
for (var r = select.column[0]; r <= select.column[1]; r += 1) {
|
|
1107
1113
|
cfg_2.columnlen[r] = Math.ceil(size_2 / ctx.zoomRatio);
|
|
1108
1114
|
}
|
|
@@ -1119,10 +1125,10 @@ function handleOverlayMouseUp(ctx, globalCache, settings, e, scrollbarX, scrollb
|
|
|
1119
1125
|
ctx.luckysheet_cols_freeze_drag = false;
|
|
1120
1126
|
var scrollLeft = ctx.scrollLeft;
|
|
1121
1127
|
var x = e.pageX - rect.left - ctx.rowHeaderWidth + scrollLeft - window.scrollX;
|
|
1122
|
-
var
|
|
1123
|
-
col_pre =
|
|
1124
|
-
col_curr =
|
|
1125
|
-
col_index_curr =
|
|
1128
|
+
var _o = (0, _location.colLocation)(x, ctx.visibledatacolumn),
|
|
1129
|
+
col_pre = _o[0],
|
|
1130
|
+
col_curr = _o[1],
|
|
1131
|
+
col_index_curr = _o[2];
|
|
1126
1132
|
var col_index = x > (col_curr + col_pre) / 2 ? col_index_curr : col_index_curr - 1;
|
|
1127
1133
|
var idx = (0, _utils.getSheetIndex)(ctx, ctx.currentSheetId);
|
|
1128
1134
|
if (idx == null) return;
|
|
@@ -1170,10 +1176,10 @@ function handleOverlayMouseUp(ctx, globalCache, settings, e, scrollbarX, scrollb
|
|
|
1170
1176
|
ctx.luckysheet_rows_freeze_drag = false;
|
|
1171
1177
|
var scrollTop = ctx.scrollTop;
|
|
1172
1178
|
var y = e.pageY - rect.top - ctx.columnHeaderHeight + scrollTop - window.scrollY;
|
|
1173
|
-
var
|
|
1174
|
-
row_pre =
|
|
1175
|
-
row_curr =
|
|
1176
|
-
row_index_curr =
|
|
1179
|
+
var _p = (0, _location.rowLocation)(y, ctx.visibledatarow),
|
|
1180
|
+
row_pre = _p[0],
|
|
1181
|
+
row_curr = _p[1],
|
|
1182
|
+
row_index_curr = _p[2];
|
|
1177
1183
|
var row_index = y > (row_curr + row_pre) / 2 ? row_index_curr : row_index_curr - 1;
|
|
1178
1184
|
var idx = (0, _utils.getSheetIndex)(ctx, ctx.currentSheetId);
|
|
1179
1185
|
if (idx == null) return;
|
package/lib/modules/cell.js
CHANGED
|
@@ -575,6 +575,7 @@ function cancelNormalSelected(ctx) {
|
|
|
575
575
|
ctx.formulaCache.rangedrag_column_start = false;
|
|
576
576
|
ctx.formulaCache.rangedrag_row_start = false;
|
|
577
577
|
ctx.formulaCache.rangeSelectionActive = null;
|
|
578
|
+
ctx.formulaCache.formulaEditorOwner = null;
|
|
578
579
|
}
|
|
579
580
|
function updateCell(ctx, r, c, $input, value, canvas) {
|
|
580
581
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v;
|
package/lib/modules/formula.d.ts
CHANGED
|
@@ -21,6 +21,7 @@ export declare class FormulaCache {
|
|
|
21
21
|
rangedrag_column_start?: boolean;
|
|
22
22
|
rangedrag_row_start?: boolean;
|
|
23
23
|
rangeSelectionActive?: boolean | null;
|
|
24
|
+
formulaEditorOwner?: "cell" | "fx" | null;
|
|
24
25
|
functionRangeIndex?: number[];
|
|
25
26
|
functionlistMap: any;
|
|
26
27
|
execFunctionExist?: any[];
|
|
@@ -47,6 +48,9 @@ export declare function rangeHightlightselected(ctx: Context, $editor: HTMLDivEl
|
|
|
47
48
|
export declare function functionHTMLGenerate(txt: string): string;
|
|
48
49
|
export declare function getLastFormulaRangeIndex($editor: HTMLDivElement): number | null;
|
|
49
50
|
export declare function getFormulaRangeIndexAtCaret($editor: HTMLDivElement): number | null;
|
|
51
|
+
export declare function setFormulaEditorOwner(ctx: Context, owner: "cell" | "fx" | null): void;
|
|
52
|
+
export declare function getFormulaEditorOwner(ctx: Context): "cell" | "fx" | null;
|
|
53
|
+
export declare function isCaretAtValidFormulaRangeInsertionPoint(editor: HTMLElement | null): boolean;
|
|
50
54
|
export declare function markRangeSelectionDirty(ctx: Context): void;
|
|
51
55
|
export declare function getFormulaRangeIndexForKeyboardSync($editor: HTMLDivElement): number | null;
|
|
52
56
|
export declare function handleFormulaInput(ctx: Context, $copyTo: HTMLDivElement | null | undefined, $editor: HTMLDivElement, kcode: number, preText?: string, refreshRangeSelect?: boolean): void;
|
package/lib/modules/formula.js
CHANGED
|
@@ -13,6 +13,7 @@ exports.functionCopy = functionCopy;
|
|
|
13
13
|
exports.functionHTMLGenerate = functionHTMLGenerate;
|
|
14
14
|
exports.functionStrChange = functionStrChange;
|
|
15
15
|
exports.getAllFunctionGroup = getAllFunctionGroup;
|
|
16
|
+
exports.getFormulaEditorOwner = getFormulaEditorOwner;
|
|
16
17
|
exports.getFormulaRangeIndexAtCaret = getFormulaRangeIndexAtCaret;
|
|
17
18
|
exports.getFormulaRangeIndexForKeyboardSync = getFormulaRangeIndexForKeyboardSync;
|
|
18
19
|
exports.getLastFormulaRangeIndex = getLastFormulaRangeIndex;
|
|
@@ -21,6 +22,7 @@ exports.getrangeseleciton = getrangeseleciton;
|
|
|
21
22
|
exports.groupValuesRefresh = groupValuesRefresh;
|
|
22
23
|
exports.handleFormulaInput = handleFormulaInput;
|
|
23
24
|
exports.insertUpdateFunctionGroup = insertUpdateFunctionGroup;
|
|
25
|
+
exports.isCaretAtValidFormulaRangeInsertionPoint = isCaretAtValidFormulaRangeInsertionPoint;
|
|
24
26
|
exports.isFormulaReferenceInputMode = isFormulaReferenceInputMode;
|
|
25
27
|
exports.iscelldata = iscelldata;
|
|
26
28
|
exports.israngeseleciton = israngeseleciton;
|
|
@@ -34,6 +36,7 @@ exports.rangeDragRow = rangeDragRow;
|
|
|
34
36
|
exports.rangeHightlightselected = rangeHightlightselected;
|
|
35
37
|
exports.rangeSetValue = rangeSetValue;
|
|
36
38
|
exports.setCaretPosition = setCaretPosition;
|
|
39
|
+
exports.setFormulaEditorOwner = setFormulaEditorOwner;
|
|
37
40
|
var _formulaParser = require("@fileverse-dev/formula-parser");
|
|
38
41
|
var _lodash = _interopRequireDefault(require("lodash"));
|
|
39
42
|
var _context = require("../context");
|
|
@@ -44,7 +47,6 @@ var _locale = require("../locale");
|
|
|
44
47
|
var _color = require("./color");
|
|
45
48
|
var _location = require("./location");
|
|
46
49
|
var _2 = require(".");
|
|
47
|
-
var _index = require("../utils/index");
|
|
48
50
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
49
51
|
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
50
52
|
var __assign = void 0 && (void 0).__assign || function () {
|
|
@@ -93,6 +95,7 @@ var FormulaCache = exports.FormulaCache = function () {
|
|
|
93
95
|
this.data_parm_index = 0;
|
|
94
96
|
this.selectingRangeIndex = -1;
|
|
95
97
|
this.rangeSelectionActive = null;
|
|
98
|
+
this.formulaEditorOwner = null;
|
|
96
99
|
this.functionlistMap = {};
|
|
97
100
|
this.execFunctionGlobalData = {};
|
|
98
101
|
this.cellTextToIndexList = {};
|
|
@@ -1666,6 +1669,61 @@ function getFormulaRangeIndexAtCaret($editor) {
|
|
|
1666
1669
|
var n = parseInt(ri, 10);
|
|
1667
1670
|
return Number.isNaN(n) ? null : n;
|
|
1668
1671
|
}
|
|
1672
|
+
function setFormulaEditorOwner(ctx, owner) {
|
|
1673
|
+
ctx.formulaCache.formulaEditorOwner = owner;
|
|
1674
|
+
}
|
|
1675
|
+
function getFormulaEditorOwner(ctx) {
|
|
1676
|
+
var _a, _b;
|
|
1677
|
+
var cachedOwner = ctx.formulaCache.formulaEditorOwner;
|
|
1678
|
+
if (cachedOwner === "cell" || cachedOwner === "fx") {
|
|
1679
|
+
return cachedOwner;
|
|
1680
|
+
}
|
|
1681
|
+
if (((_a = document.activeElement) === null || _a === void 0 ? void 0 : _a.id) === "luckysheet-functionbox-cell") {
|
|
1682
|
+
return "fx";
|
|
1683
|
+
}
|
|
1684
|
+
if (((_b = document.activeElement) === null || _b === void 0 ? void 0 : _b.id) === "luckysheet-rich-text-editor") {
|
|
1685
|
+
return "cell";
|
|
1686
|
+
}
|
|
1687
|
+
return null;
|
|
1688
|
+
}
|
|
1689
|
+
function getCurrentFormulaSlotTextBeforeCaret(editor, caretOffset) {
|
|
1690
|
+
var textBefore = editor.innerText.slice(0, caretOffset);
|
|
1691
|
+
var parts = textBefore.split(/[=,(+\-*/&<>]/);
|
|
1692
|
+
return _lodash.default.trim(parts[parts.length - 1] || "");
|
|
1693
|
+
}
|
|
1694
|
+
function isCaretAtValidFormulaRangeInsertionPoint(editor) {
|
|
1695
|
+
var currSelection = window.getSelection();
|
|
1696
|
+
if (!editor || !currSelection || currSelection.rangeCount === 0) {
|
|
1697
|
+
return false;
|
|
1698
|
+
}
|
|
1699
|
+
var anchorNode = currSelection.anchorNode;
|
|
1700
|
+
if (anchorNode && !editor.contains(anchorNode)) {
|
|
1701
|
+
return false;
|
|
1702
|
+
}
|
|
1703
|
+
var inputText = editor.innerText.trim();
|
|
1704
|
+
if (!inputText.startsWith("=")) {
|
|
1705
|
+
return false;
|
|
1706
|
+
}
|
|
1707
|
+
if (/^=\s*[A-Za-z_][A-Za-z0-9_]*$/.test(inputText)) {
|
|
1708
|
+
return false;
|
|
1709
|
+
}
|
|
1710
|
+
var caretRange = currSelection.getRangeAt(0).cloneRange();
|
|
1711
|
+
var preCaretRange = document.createRange();
|
|
1712
|
+
preCaretRange.selectNodeContents(editor);
|
|
1713
|
+
preCaretRange.setEnd(caretRange.endContainer, caretRange.endOffset);
|
|
1714
|
+
var caretOffset = preCaretRange.toString().length;
|
|
1715
|
+
var slotTextBeforeCaret = getCurrentFormulaSlotTextBeforeCaret(editor, caretOffset);
|
|
1716
|
+
if (slotTextBeforeCaret.length > 0 && !iscelldata(slotTextBeforeCaret)) {
|
|
1717
|
+
return false;
|
|
1718
|
+
}
|
|
1719
|
+
var textAfter = editor.innerText.slice(caretOffset);
|
|
1720
|
+
var remaining = textAfter.replace(/^\s+/, "");
|
|
1721
|
+
if (remaining.length === 0) {
|
|
1722
|
+
return true;
|
|
1723
|
+
}
|
|
1724
|
+
var first = remaining[0];
|
|
1725
|
+
return first === "," || first === ")" || first === "&" || first in operatorjson;
|
|
1726
|
+
}
|
|
1669
1727
|
function hasCommaOrAnotherRefAfterRangeCell(cell) {
|
|
1670
1728
|
var _a, _b;
|
|
1671
1729
|
var n = cell.nextSibling;
|
|
@@ -2060,31 +2118,7 @@ function israngeseleciton(ctx, istooltip) {
|
|
|
2060
2118
|
return true;
|
|
2061
2119
|
}
|
|
2062
2120
|
var editor = ((_a = anchorElement.closest) === null || _a === void 0 ? void 0 : _a.call(anchorElement, "#luckysheet-rich-text-editor, #luckysheet-functionbox-cell")) || ((_b = parentElement.closest) === null || _b === void 0 ? void 0 : _b.call(parentElement, "#luckysheet-rich-text-editor, #luckysheet-functionbox-cell")) || document.getElementById("luckysheet-rich-text-editor");
|
|
2063
|
-
|
|
2064
|
-
return true;
|
|
2065
|
-
}
|
|
2066
|
-
var inputText = editor.innerText.trim();
|
|
2067
|
-
if (!inputText.startsWith("=")) {
|
|
2068
|
-
return false;
|
|
2069
|
-
}
|
|
2070
|
-
if (/^=\s*[A-Za-z_][A-Za-z0-9_]*$/.test(inputText)) {
|
|
2071
|
-
return false;
|
|
2072
|
-
}
|
|
2073
|
-
var caretRange = currSelection.getRangeAt(0).cloneRange();
|
|
2074
|
-
var preCaretRange = document.createRange();
|
|
2075
|
-
preCaretRange.selectNodeContents(editor);
|
|
2076
|
-
preCaretRange.setEnd(caretRange.endContainer, caretRange.endOffset);
|
|
2077
|
-
var caretOffset = preCaretRange.toString().length;
|
|
2078
|
-
var textAfter = editor.innerText.slice(caretOffset);
|
|
2079
|
-
var remaining = textAfter.replace(/^\s+/, "");
|
|
2080
|
-
if (remaining.length === 0) {
|
|
2081
|
-
return true;
|
|
2082
|
-
}
|
|
2083
|
-
var first = remaining[0];
|
|
2084
|
-
if (first === "," || first === ")" || first === "&" || first in operatorjson) {
|
|
2085
|
-
return true;
|
|
2086
|
-
}
|
|
2087
|
-
return false;
|
|
2121
|
+
return isCaretAtValidFormulaRangeInsertionPoint(editor);
|
|
2088
2122
|
};
|
|
2089
2123
|
if (((_a = anchor === null || anchor === void 0 ? void 0 : anchor.parentNode) === null || _a === void 0 ? void 0 : _a.nodeName.toLowerCase()) === "span" && anchorOffset !== 0) {
|
|
2090
2124
|
var txt = _lodash.default.trim((_b = anchor.textContent) !== null && _b !== void 0 ? _b : "");
|
|
@@ -2168,7 +2202,8 @@ function maybeRecoverDirtyRangeSelection(ctx) {
|
|
|
2168
2202
|
return false;
|
|
2169
2203
|
}
|
|
2170
2204
|
var inputText = (editor.innerText || "").trim();
|
|
2171
|
-
|
|
2205
|
+
var atCaretRangeIndex = getFormulaRangeIndexAtCaret(editor);
|
|
2206
|
+
if (inputText.startsWith("=") && atCaretRangeIndex === null && israngeseleciton(ctx)) {
|
|
2172
2207
|
ctx.formulaCache.rangeSelectionActive = null;
|
|
2173
2208
|
return true;
|
|
2174
2209
|
}
|
|
@@ -2269,14 +2304,14 @@ function functionStrChange(txt, type, rc, orient, stindex, step) {
|
|
|
2269
2304
|
return function_str;
|
|
2270
2305
|
}
|
|
2271
2306
|
function rangeSetValue(ctx, cellInput, selected, fxInput) {
|
|
2272
|
-
var _a, _b, _c, _d, _e, _f
|
|
2307
|
+
var _a, _b, _c, _d, _e, _f;
|
|
2273
2308
|
var parser = new DOMParser();
|
|
2274
2309
|
var doc = parser.parseFromString("<div>".concat(cellInput.innerHTML, "</div>"), "text/html");
|
|
2275
2310
|
var spans = doc.querySelectorAll("span");
|
|
2276
2311
|
var lastSpan = spans[spans.length - 1];
|
|
2277
2312
|
var isManagedRangeSpan = (_b = (_a = lastSpan === null || lastSpan === void 0 ? void 0 : lastSpan.classList) === null || _a === void 0 ? void 0 : _a.contains("fortune-formula-functionrange-cell")) !== null && _b !== void 0 ? _b : false;
|
|
2278
|
-
if (lastSpan && (0,
|
|
2279
|
-
var htmlR = (0,
|
|
2313
|
+
if (lastSpan && (0, _utils.isLetterNumberPattern)(lastSpan === null || lastSpan === void 0 ? void 0 : lastSpan.innerText) && !isManagedRangeSpan) {
|
|
2314
|
+
var htmlR = (0, _utils.removeLastSpan)(cellInput.innerHTML);
|
|
2280
2315
|
cellInput.innerHTML = "".concat(htmlR);
|
|
2281
2316
|
cellInput.focus();
|
|
2282
2317
|
var kids = cellInput.childNodes;
|
|
@@ -2284,7 +2319,7 @@ function rangeSetValue(ctx, cellInput, selected, fxInput) {
|
|
|
2284
2319
|
}
|
|
2285
2320
|
var $editor = cellInput;
|
|
2286
2321
|
var $copyTo = fxInput;
|
|
2287
|
-
if ((
|
|
2322
|
+
if (getFormulaEditorOwner(ctx) === "fx") {
|
|
2288
2323
|
$editor = fxInput;
|
|
2289
2324
|
$copyTo = cellInput;
|
|
2290
2325
|
}
|
|
@@ -2313,9 +2348,9 @@ function rangeSetValue(ctx, cellInput, selected, fxInput) {
|
|
|
2313
2348
|
refEle = ctx.formulaCache.rangeSetValueTo;
|
|
2314
2349
|
}
|
|
2315
2350
|
if (refEle && refEle.parentNode) {
|
|
2316
|
-
var leftPar = (
|
|
2317
|
-
if ((
|
|
2318
|
-
(
|
|
2351
|
+
var leftPar = (_c = document.getElementsByClassName("luckysheet-formula-text-lpar")) === null || _c === void 0 ? void 0 : _c[0];
|
|
2352
|
+
if ((_d = leftPar === null || leftPar === void 0 ? void 0 : leftPar.parentElement) === null || _d === void 0 ? void 0 : _d.classList.contains("luckysheet-formula-text-color")) {
|
|
2353
|
+
(_f = (_e = document.getElementsByClassName("luckysheet-formula-text-lpar")) === null || _e === void 0 ? void 0 : _e[0].parentNode) === null || _f === void 0 ? void 0 : _f.appendChild(newEle);
|
|
2319
2354
|
} else {
|
|
2320
2355
|
refEle.parentNode.insertBefore(newEle, refEle.nextSibling);
|
|
2321
2356
|
}
|