@fileverse-dev/fortune-core 1.3.5-hyper → 1.3.5-hyper-2
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/sheet.js +4 -5
- package/es/events/keyboard.js +3 -3
- package/es/modules/cursor.d.ts +1 -0
- package/es/modules/cursor.js +35 -0
- package/es/modules/selection.js +29 -7
- package/lib/api/sheet.js +4 -5
- package/lib/events/keyboard.js +3 -3
- package/lib/modules/cursor.d.ts +1 -0
- package/lib/modules/cursor.js +36 -0
- package/lib/modules/selection.js +29 -7
- package/package.json +1 -1
package/es/api/sheet.js
CHANGED
|
@@ -209,23 +209,22 @@ export function calculateSheetFromula(ctx, id) {
|
|
|
209
209
|
}
|
|
210
210
|
}
|
|
211
211
|
export function calculateReferencedCellSheetFromula(ctx, id, refCell) {
|
|
212
|
-
var _a, _b, _c, _d, _e
|
|
212
|
+
var _a, _b, _c, _d, _e;
|
|
213
213
|
var index = getSheetIndex(ctx, id);
|
|
214
214
|
if (!ctx.luckysheetfile[index].data) return;
|
|
215
215
|
var _loop_1 = function _loop_1(r) {
|
|
216
216
|
var _loop_2 = function _loop_2(c) {
|
|
217
|
-
console.log(refCell, (_a = ctx.luckysheetfile[index].data[r][c]) === null || _a === void 0 ? void 0 : _a.f);
|
|
218
217
|
var isRef = false;
|
|
219
|
-
if (refCell && ((
|
|
218
|
+
if (refCell && ((_a = ctx.luckysheetfile[index].data[r][c]) === null || _a === void 0 ? void 0 : _a.f) && !((_b = ctx.luckysheetfile[index].data[r][c]) === null || _b === void 0 ? void 0 : _b.isDataBlockFormula)) {
|
|
220
219
|
isRef = refCell.some(function (cell) {
|
|
221
220
|
var _a;
|
|
222
221
|
return isCellReferenced((_a = ctx.luckysheetfile[index].data[r][c]) === null || _a === void 0 ? void 0 : _a.f, cell);
|
|
223
222
|
});
|
|
224
223
|
}
|
|
225
|
-
if (!isRef || !((
|
|
224
|
+
if (!isRef || !((_c = ctx.luckysheetfile[index].data[r][c]) === null || _c === void 0 ? void 0 : _c.f) || ((_d = ctx.luckysheetfile[index].data[r][c]) === null || _d === void 0 ? void 0 : _d.isDataBlockFormula)) {
|
|
226
225
|
return "continue";
|
|
227
226
|
}
|
|
228
|
-
var result = execfunction(ctx, (
|
|
227
|
+
var result = execfunction(ctx, (_e = ctx.luckysheetfile[index].data[r][c]) === null || _e === void 0 ? void 0 : _e.f, r, c, id);
|
|
229
228
|
var isValueArray = Array.isArray(result[1]);
|
|
230
229
|
if (isValueArray) {
|
|
231
230
|
var value = {
|
package/es/events/keyboard.js
CHANGED
|
@@ -139,7 +139,7 @@ export function handleGlobalEnter(ctx, cellInput, e, canvas) {
|
|
|
139
139
|
row_focus: lastCellUpdate[0],
|
|
140
140
|
column_focus: lastCellUpdate[1]
|
|
141
141
|
}];
|
|
142
|
-
moveHighlightCell(ctx, "down",
|
|
142
|
+
moveHighlightCell(ctx, "down", hideCRCount(ctx, "ArrowDown"), "rangeOfSelect");
|
|
143
143
|
e.preventDefault();
|
|
144
144
|
} else {
|
|
145
145
|
if (((_c = (_b = ctx.luckysheet_select_save) === null || _b === void 0 ? void 0 : _b.length) !== null && _c !== void 0 ? _c : 0) > 0) {
|
|
@@ -434,9 +434,9 @@ export function handleGlobalKeyDown(ctx, cellInput, fxInput, e, cache, handleUnd
|
|
|
434
434
|
updateCell(ctx, ctx.luckysheetCellUpdate[0], ctx.luckysheetCellUpdate[1], cellInput, undefined, canvas);
|
|
435
435
|
}
|
|
436
436
|
if (e.shiftKey) {
|
|
437
|
-
moveHighlightCell(ctx, "right", -
|
|
437
|
+
moveHighlightCell(ctx, "right", -hideCRCount(ctx, "ArrowLeft"), "rangeOfSelect");
|
|
438
438
|
} else {
|
|
439
|
-
moveHighlightCell(ctx, "right",
|
|
439
|
+
moveHighlightCell(ctx, "right", hideCRCount(ctx, "ArrowRight"), "rangeOfSelect");
|
|
440
440
|
}
|
|
441
441
|
e.preventDefault();
|
|
442
442
|
} else if (kstr === "F2") {
|
package/es/modules/cursor.d.ts
CHANGED
|
@@ -6,3 +6,4 @@ export declare function getSelectionCharacterOffsets(element: Node): {
|
|
|
6
6
|
end: number;
|
|
7
7
|
} | null;
|
|
8
8
|
export declare function setSelectionByCharacterOffset(element: HTMLDivElement, start: number, end: number): void;
|
|
9
|
+
export declare function getRangeRectsByCharacterOffset(element: HTMLDivElement, start: number, end: number): DOMRect[];
|
package/es/modules/cursor.js
CHANGED
|
@@ -114,4 +114,39 @@ export function setSelectionByCharacterOffset(element, start, end) {
|
|
|
114
114
|
sel.removeAllRanges();
|
|
115
115
|
sel.addRange(range);
|
|
116
116
|
}
|
|
117
|
+
}
|
|
118
|
+
export function getRangeRectsByCharacterOffset(element, start, end) {
|
|
119
|
+
if (start >= end) return [];
|
|
120
|
+
var charIndex = 0;
|
|
121
|
+
var startNode = null;
|
|
122
|
+
var startOffset = 0;
|
|
123
|
+
var endNode = null;
|
|
124
|
+
var endOffset = 0;
|
|
125
|
+
function walk(node) {
|
|
126
|
+
if (node.nodeType === Node.TEXT_NODE) {
|
|
127
|
+
var len = (node.textContent || "").length;
|
|
128
|
+
if (startNode == null && charIndex + len > start) {
|
|
129
|
+
startNode = node;
|
|
130
|
+
startOffset = start - charIndex;
|
|
131
|
+
}
|
|
132
|
+
if (endNode == null && charIndex + len >= end) {
|
|
133
|
+
endNode = node;
|
|
134
|
+
endOffset = end - charIndex;
|
|
135
|
+
return true;
|
|
136
|
+
}
|
|
137
|
+
charIndex += len;
|
|
138
|
+
return false;
|
|
139
|
+
}
|
|
140
|
+
for (var i = 0; i < node.childNodes.length; i += 1) {
|
|
141
|
+
if (walk(node.childNodes[i])) return true;
|
|
142
|
+
}
|
|
143
|
+
return false;
|
|
144
|
+
}
|
|
145
|
+
walk(element);
|
|
146
|
+
if (!startNode || !endNode) return [];
|
|
147
|
+
var range = document.createRange();
|
|
148
|
+
range.setStart(startNode, startOffset);
|
|
149
|
+
range.setEnd(endNode, endOffset);
|
|
150
|
+
var rects = range.getClientRects();
|
|
151
|
+
return Array.from(rects);
|
|
117
152
|
}
|
package/es/modules/selection.js
CHANGED
|
@@ -1613,6 +1613,7 @@ export function deleteSelectedCellFormat(ctx) {
|
|
|
1613
1613
|
return "success";
|
|
1614
1614
|
}
|
|
1615
1615
|
export function fillRightData(ctx) {
|
|
1616
|
+
var _a, _b;
|
|
1616
1617
|
var allowEdit = isAllowEdit(ctx);
|
|
1617
1618
|
if (allowEdit === false) {
|
|
1618
1619
|
return "allowEdit";
|
|
@@ -1640,10 +1641,20 @@ export function fillRightData(ctx) {
|
|
|
1640
1641
|
var r2 = selection[s].row[1];
|
|
1641
1642
|
var c1 = selection[s].column[0];
|
|
1642
1643
|
var c2 = selection[s].column[1];
|
|
1643
|
-
|
|
1644
|
-
|
|
1645
|
-
|
|
1646
|
-
d[
|
|
1644
|
+
var isSingleCell = r1 === r2 && c1 === c2;
|
|
1645
|
+
if (isSingleCell) {
|
|
1646
|
+
if (c1 - 1 >= 0 && d[r1]) {
|
|
1647
|
+
var prev = d[r1][c1 - 1];
|
|
1648
|
+
d[r1][c1] = prev != null ? __assign({}, prev) : {};
|
|
1649
|
+
}
|
|
1650
|
+
} else {
|
|
1651
|
+
for (var r = r1; r <= r2; r += 1) {
|
|
1652
|
+
var sourceCell = (_a = d[r]) === null || _a === void 0 ? void 0 : _a[c1];
|
|
1653
|
+
for (var c = c1 + 1; c <= c2; c += 1) {
|
|
1654
|
+
if (d[r]) {
|
|
1655
|
+
d[r][c] = sourceCell != null ? __assign({}, sourceCell) : (_b = d[r][c]) !== null && _b !== void 0 ? _b : {};
|
|
1656
|
+
}
|
|
1657
|
+
}
|
|
1647
1658
|
}
|
|
1648
1659
|
}
|
|
1649
1660
|
}
|
|
@@ -1651,6 +1662,7 @@ export function fillRightData(ctx) {
|
|
|
1651
1662
|
return "success";
|
|
1652
1663
|
}
|
|
1653
1664
|
export function fillDownData(ctx) {
|
|
1665
|
+
var _a, _b;
|
|
1654
1666
|
var allowEdit = isAllowEdit(ctx);
|
|
1655
1667
|
if (allowEdit === false) {
|
|
1656
1668
|
return "allowEdit";
|
|
@@ -1678,10 +1690,20 @@ export function fillDownData(ctx) {
|
|
|
1678
1690
|
var r2 = selection[s].row[1];
|
|
1679
1691
|
var c1 = selection[s].column[0];
|
|
1680
1692
|
var c2 = selection[s].column[1];
|
|
1681
|
-
|
|
1693
|
+
var isSingleCell = r1 === r2 && c1 === c2;
|
|
1694
|
+
if (isSingleCell) {
|
|
1695
|
+
if (r1 - 1 >= 0 && d[r1 - 1]) {
|
|
1696
|
+
var prev = d[r1 - 1][c1];
|
|
1697
|
+
if (!d[r1]) d[r1] = [];
|
|
1698
|
+
d[r1][c1] = prev != null ? __assign({}, prev) : {};
|
|
1699
|
+
}
|
|
1700
|
+
} else {
|
|
1682
1701
|
for (var c = c1; c <= c2; c += 1) {
|
|
1683
|
-
var
|
|
1684
|
-
|
|
1702
|
+
var sourceCell = (_a = d[r1]) === null || _a === void 0 ? void 0 : _a[c];
|
|
1703
|
+
for (var r = r1 + 1; r <= r2; r += 1) {
|
|
1704
|
+
if (!d[r]) d[r] = [];
|
|
1705
|
+
d[r][c] = sourceCell != null ? __assign({}, sourceCell) : (_b = d[r][c]) !== null && _b !== void 0 ? _b : {};
|
|
1706
|
+
}
|
|
1685
1707
|
}
|
|
1686
1708
|
}
|
|
1687
1709
|
}
|
package/lib/api/sheet.js
CHANGED
|
@@ -227,23 +227,22 @@ function calculateSheetFromula(ctx, id) {
|
|
|
227
227
|
}
|
|
228
228
|
}
|
|
229
229
|
function calculateReferencedCellSheetFromula(ctx, id, refCell) {
|
|
230
|
-
var _a, _b, _c, _d, _e
|
|
230
|
+
var _a, _b, _c, _d, _e;
|
|
231
231
|
var index = (0, _utils.getSheetIndex)(ctx, id);
|
|
232
232
|
if (!ctx.luckysheetfile[index].data) return;
|
|
233
233
|
var _loop_1 = function _loop_1(r) {
|
|
234
234
|
var _loop_2 = function _loop_2(c) {
|
|
235
|
-
console.log(refCell, (_a = ctx.luckysheetfile[index].data[r][c]) === null || _a === void 0 ? void 0 : _a.f);
|
|
236
235
|
var isRef = false;
|
|
237
|
-
if (refCell && ((
|
|
236
|
+
if (refCell && ((_a = ctx.luckysheetfile[index].data[r][c]) === null || _a === void 0 ? void 0 : _a.f) && !((_b = ctx.luckysheetfile[index].data[r][c]) === null || _b === void 0 ? void 0 : _b.isDataBlockFormula)) {
|
|
238
237
|
isRef = refCell.some(function (cell) {
|
|
239
238
|
var _a;
|
|
240
239
|
return isCellReferenced((_a = ctx.luckysheetfile[index].data[r][c]) === null || _a === void 0 ? void 0 : _a.f, cell);
|
|
241
240
|
});
|
|
242
241
|
}
|
|
243
|
-
if (!isRef || !((
|
|
242
|
+
if (!isRef || !((_c = ctx.luckysheetfile[index].data[r][c]) === null || _c === void 0 ? void 0 : _c.f) || ((_d = ctx.luckysheetfile[index].data[r][c]) === null || _d === void 0 ? void 0 : _d.isDataBlockFormula)) {
|
|
244
243
|
return "continue";
|
|
245
244
|
}
|
|
246
|
-
var result = (0, _2.execfunction)(ctx, (
|
|
245
|
+
var result = (0, _2.execfunction)(ctx, (_e = ctx.luckysheetfile[index].data[r][c]) === null || _e === void 0 ? void 0 : _e.f, r, c, id);
|
|
247
246
|
var isValueArray = Array.isArray(result[1]);
|
|
248
247
|
if (isValueArray) {
|
|
249
248
|
var value = {
|
package/lib/events/keyboard.js
CHANGED
|
@@ -149,7 +149,7 @@ function handleGlobalEnter(ctx, cellInput, e, canvas) {
|
|
|
149
149
|
row_focus: lastCellUpdate[0],
|
|
150
150
|
column_focus: lastCellUpdate[1]
|
|
151
151
|
}];
|
|
152
|
-
(0, _selection.moveHighlightCell)(ctx, "down",
|
|
152
|
+
(0, _selection.moveHighlightCell)(ctx, "down", (0, _2.hideCRCount)(ctx, "ArrowDown"), "rangeOfSelect");
|
|
153
153
|
e.preventDefault();
|
|
154
154
|
} else {
|
|
155
155
|
if (((_c = (_b = ctx.luckysheet_select_save) === null || _b === void 0 ? void 0 : _b.length) !== null && _c !== void 0 ? _c : 0) > 0) {
|
|
@@ -444,9 +444,9 @@ function handleGlobalKeyDown(ctx, cellInput, fxInput, e, cache, handleUndo, hand
|
|
|
444
444
|
(0, _cell.updateCell)(ctx, ctx.luckysheetCellUpdate[0], ctx.luckysheetCellUpdate[1], cellInput, undefined, canvas);
|
|
445
445
|
}
|
|
446
446
|
if (e.shiftKey) {
|
|
447
|
-
(0, _selection.moveHighlightCell)(ctx, "right", -
|
|
447
|
+
(0, _selection.moveHighlightCell)(ctx, "right", -(0, _2.hideCRCount)(ctx, "ArrowLeft"), "rangeOfSelect");
|
|
448
448
|
} else {
|
|
449
|
-
(0, _selection.moveHighlightCell)(ctx, "right",
|
|
449
|
+
(0, _selection.moveHighlightCell)(ctx, "right", (0, _2.hideCRCount)(ctx, "ArrowRight"), "rangeOfSelect");
|
|
450
450
|
}
|
|
451
451
|
e.preventDefault();
|
|
452
452
|
} else if (kstr === "F2") {
|
package/lib/modules/cursor.d.ts
CHANGED
|
@@ -6,3 +6,4 @@ export declare function getSelectionCharacterOffsets(element: Node): {
|
|
|
6
6
|
end: number;
|
|
7
7
|
} | null;
|
|
8
8
|
export declare function setSelectionByCharacterOffset(element: HTMLDivElement, start: number, end: number): void;
|
|
9
|
+
export declare function getRangeRectsByCharacterOffset(element: HTMLDivElement, start: number, end: number): DOMRect[];
|
package/lib/modules/cursor.js
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
exports.getRangeRectsByCharacterOffset = getRangeRectsByCharacterOffset;
|
|
6
7
|
exports.getSelectionCharacterOffsets = getSelectionCharacterOffsets;
|
|
7
8
|
exports.moveToEnd = moveToEnd;
|
|
8
9
|
exports.selectTextContent = selectTextContent;
|
|
@@ -124,4 +125,39 @@ function setSelectionByCharacterOffset(element, start, end) {
|
|
|
124
125
|
sel.removeAllRanges();
|
|
125
126
|
sel.addRange(range);
|
|
126
127
|
}
|
|
128
|
+
}
|
|
129
|
+
function getRangeRectsByCharacterOffset(element, start, end) {
|
|
130
|
+
if (start >= end) return [];
|
|
131
|
+
var charIndex = 0;
|
|
132
|
+
var startNode = null;
|
|
133
|
+
var startOffset = 0;
|
|
134
|
+
var endNode = null;
|
|
135
|
+
var endOffset = 0;
|
|
136
|
+
function walk(node) {
|
|
137
|
+
if (node.nodeType === Node.TEXT_NODE) {
|
|
138
|
+
var len = (node.textContent || "").length;
|
|
139
|
+
if (startNode == null && charIndex + len > start) {
|
|
140
|
+
startNode = node;
|
|
141
|
+
startOffset = start - charIndex;
|
|
142
|
+
}
|
|
143
|
+
if (endNode == null && charIndex + len >= end) {
|
|
144
|
+
endNode = node;
|
|
145
|
+
endOffset = end - charIndex;
|
|
146
|
+
return true;
|
|
147
|
+
}
|
|
148
|
+
charIndex += len;
|
|
149
|
+
return false;
|
|
150
|
+
}
|
|
151
|
+
for (var i = 0; i < node.childNodes.length; i += 1) {
|
|
152
|
+
if (walk(node.childNodes[i])) return true;
|
|
153
|
+
}
|
|
154
|
+
return false;
|
|
155
|
+
}
|
|
156
|
+
walk(element);
|
|
157
|
+
if (!startNode || !endNode) return [];
|
|
158
|
+
var range = document.createRange();
|
|
159
|
+
range.setStart(startNode, startOffset);
|
|
160
|
+
range.setEnd(endNode, endOffset);
|
|
161
|
+
var rects = range.getClientRects();
|
|
162
|
+
return Array.from(rects);
|
|
127
163
|
}
|
package/lib/modules/selection.js
CHANGED
|
@@ -1648,6 +1648,7 @@ function deleteSelectedCellFormat(ctx) {
|
|
|
1648
1648
|
return "success";
|
|
1649
1649
|
}
|
|
1650
1650
|
function fillRightData(ctx) {
|
|
1651
|
+
var _a, _b;
|
|
1651
1652
|
var allowEdit = (0, _utils.isAllowEdit)(ctx);
|
|
1652
1653
|
if (allowEdit === false) {
|
|
1653
1654
|
return "allowEdit";
|
|
@@ -1675,10 +1676,20 @@ function fillRightData(ctx) {
|
|
|
1675
1676
|
var r2 = selection[s].row[1];
|
|
1676
1677
|
var c1 = selection[s].column[0];
|
|
1677
1678
|
var c2 = selection[s].column[1];
|
|
1678
|
-
|
|
1679
|
-
|
|
1680
|
-
|
|
1681
|
-
d[
|
|
1679
|
+
var isSingleCell = r1 === r2 && c1 === c2;
|
|
1680
|
+
if (isSingleCell) {
|
|
1681
|
+
if (c1 - 1 >= 0 && d[r1]) {
|
|
1682
|
+
var prev = d[r1][c1 - 1];
|
|
1683
|
+
d[r1][c1] = prev != null ? __assign({}, prev) : {};
|
|
1684
|
+
}
|
|
1685
|
+
} else {
|
|
1686
|
+
for (var r = r1; r <= r2; r += 1) {
|
|
1687
|
+
var sourceCell = (_a = d[r]) === null || _a === void 0 ? void 0 : _a[c1];
|
|
1688
|
+
for (var c = c1 + 1; c <= c2; c += 1) {
|
|
1689
|
+
if (d[r]) {
|
|
1690
|
+
d[r][c] = sourceCell != null ? __assign({}, sourceCell) : (_b = d[r][c]) !== null && _b !== void 0 ? _b : {};
|
|
1691
|
+
}
|
|
1692
|
+
}
|
|
1682
1693
|
}
|
|
1683
1694
|
}
|
|
1684
1695
|
}
|
|
@@ -1686,6 +1697,7 @@ function fillRightData(ctx) {
|
|
|
1686
1697
|
return "success";
|
|
1687
1698
|
}
|
|
1688
1699
|
function fillDownData(ctx) {
|
|
1700
|
+
var _a, _b;
|
|
1689
1701
|
var allowEdit = (0, _utils.isAllowEdit)(ctx);
|
|
1690
1702
|
if (allowEdit === false) {
|
|
1691
1703
|
return "allowEdit";
|
|
@@ -1713,10 +1725,20 @@ function fillDownData(ctx) {
|
|
|
1713
1725
|
var r2 = selection[s].row[1];
|
|
1714
1726
|
var c1 = selection[s].column[0];
|
|
1715
1727
|
var c2 = selection[s].column[1];
|
|
1716
|
-
|
|
1728
|
+
var isSingleCell = r1 === r2 && c1 === c2;
|
|
1729
|
+
if (isSingleCell) {
|
|
1730
|
+
if (r1 - 1 >= 0 && d[r1 - 1]) {
|
|
1731
|
+
var prev = d[r1 - 1][c1];
|
|
1732
|
+
if (!d[r1]) d[r1] = [];
|
|
1733
|
+
d[r1][c1] = prev != null ? __assign({}, prev) : {};
|
|
1734
|
+
}
|
|
1735
|
+
} else {
|
|
1717
1736
|
for (var c = c1; c <= c2; c += 1) {
|
|
1718
|
-
var
|
|
1719
|
-
|
|
1737
|
+
var sourceCell = (_a = d[r1]) === null || _a === void 0 ? void 0 : _a[c];
|
|
1738
|
+
for (var r = r1 + 1; r <= r2; r += 1) {
|
|
1739
|
+
if (!d[r]) d[r] = [];
|
|
1740
|
+
d[r][c] = sourceCell != null ? __assign({}, sourceCell) : (_b = d[r][c]) !== null && _b !== void 0 ? _b : {};
|
|
1741
|
+
}
|
|
1720
1742
|
}
|
|
1721
1743
|
}
|
|
1722
1744
|
}
|