@fileverse-dev/fortune-core 1.0.59 → 1.0.62
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/modules/cell.js +27 -8
- package/es/modules/formula.js +31 -6
- package/lib/modules/cell.js +27 -8
- package/lib/modules/formula.js +35 -10
- package/package.json +2 -2
package/es/modules/cell.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
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); }
|
|
1
2
|
import _ from "lodash";
|
|
2
3
|
import { getFlowdata } from "../context";
|
|
3
4
|
import { getSheetIndex, indexToColumnChar, rgbToHex } from "../utils";
|
|
@@ -238,7 +239,11 @@ export function setCellValue(ctx, r, c, d, v) {
|
|
|
238
239
|
cell.m = mask[0].toString();
|
|
239
240
|
cell.ct = mask[1], cell.v = mask[2];
|
|
240
241
|
} else {
|
|
241
|
-
|
|
242
|
+
if (v.m) {
|
|
243
|
+
cell.m = v.m;
|
|
244
|
+
} else {
|
|
245
|
+
cell.m = mask.toString();
|
|
246
|
+
}
|
|
242
247
|
cell.v = vupdate;
|
|
243
248
|
}
|
|
244
249
|
} else {
|
|
@@ -261,7 +266,11 @@ export function setCellValue(ctx, r, c, d, v) {
|
|
|
261
266
|
} else if (cell.v != null) {
|
|
262
267
|
var mask = genarate(cell.v);
|
|
263
268
|
if (mask) {
|
|
264
|
-
|
|
269
|
+
if (v.m) {
|
|
270
|
+
cell.m = v.m;
|
|
271
|
+
} else {
|
|
272
|
+
cell.m = mask[0].toString();
|
|
273
|
+
}
|
|
265
274
|
}
|
|
266
275
|
}
|
|
267
276
|
} else {
|
|
@@ -462,7 +471,7 @@ export function cancelNormalSelected(ctx) {
|
|
|
462
471
|
ctx.formulaCache.rangedrag_row_start = false;
|
|
463
472
|
}
|
|
464
473
|
export function updateCell(ctx, r, c, $input, value, canvas) {
|
|
465
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
474
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
|
|
466
475
|
var inputText = $input === null || $input === void 0 ? void 0 : $input.innerText;
|
|
467
476
|
var inputHtml = $input === null || $input === void 0 ? void 0 : $input.innerHTML;
|
|
468
477
|
var flowdata = getFlowdata(ctx);
|
|
@@ -599,12 +608,17 @@ export function updateCell(ctx, r, c, $input, value, canvas) {
|
|
|
599
608
|
}
|
|
600
609
|
} else {
|
|
601
610
|
delFunctionGroup(ctx, r, c);
|
|
602
|
-
execFunctionGroup(ctx, r, c, value);
|
|
603
|
-
isRunExecFunction = false;
|
|
604
611
|
curv = _.cloneDeep(((_e = d === null || d === void 0 ? void 0 : d[r]) === null || _e === void 0 ? void 0 : _e[c]) || {});
|
|
605
612
|
curv.v = value;
|
|
606
613
|
delete curv.f;
|
|
607
614
|
delete curv.spl;
|
|
615
|
+
var decemialCount_1 = ((_f = oldValue === null || oldValue === void 0 ? void 0 : oldValue.m) === null || _f === void 0 ? void 0 : _f.toString().includes(".")) ? (_g = oldValue === null || oldValue === void 0 ? void 0 : oldValue.m) === null || _g === void 0 ? void 0 : _g.toString().split(" ")[0].split(".")[1].length : 0;
|
|
616
|
+
var coin_1 = (_h = oldValue === null || oldValue === void 0 ? void 0 : oldValue.m) === null || _h === void 0 ? void 0 : _h.toString().split(" ")[1];
|
|
617
|
+
if (_typeof(curv) === "object" && (curv === null || curv === void 0 ? void 0 : curv.baseValue)) {
|
|
618
|
+
curv.m = "".concat((parseFloat(value) / (oldValue === null || oldValue === void 0 ? void 0 : oldValue.baseCurrencyPrice)).toFixed(decemialCount_1), " ").concat(coin_1);
|
|
619
|
+
}
|
|
620
|
+
execFunctionGroup(ctx, r, c, curv);
|
|
621
|
+
isRunExecFunction = false;
|
|
608
622
|
if (curv.qp === 1 && "".concat(value).substring(0, 1) !== "'") {
|
|
609
623
|
curv.qp = 0;
|
|
610
624
|
if (curv.ct) {
|
|
@@ -661,13 +675,18 @@ export function updateCell(ctx, r, c, $input, value, canvas) {
|
|
|
661
675
|
isRunExecFunction = false;
|
|
662
676
|
}
|
|
663
677
|
}
|
|
678
|
+
var decemialCount = ((_j = oldValue === null || oldValue === void 0 ? void 0 : oldValue.m) === null || _j === void 0 ? void 0 : _j.toString().includes(".")) ? (_k = oldValue === null || oldValue === void 0 ? void 0 : oldValue.m) === null || _k === void 0 ? void 0 : _k.toString().split(" ")[0].split(".")[1].length : 0;
|
|
679
|
+
var coin = (_l = oldValue === null || oldValue === void 0 ? void 0 : oldValue.m) === null || _l === void 0 ? void 0 : _l.toString().split(" ")[1];
|
|
680
|
+
if (_typeof(value) === "object" && value.baseValue && !(value === null || value === void 0 ? void 0 : value.m)) {
|
|
681
|
+
value.m = "".concat((parseFloat(value === null || value === void 0 ? void 0 : value.v) / (oldValue === null || oldValue === void 0 ? void 0 : oldValue.baseCurrencyPrice)).toFixed(decemialCount), " ").concat(coin);
|
|
682
|
+
}
|
|
664
683
|
setCellValue(ctx, r, c, d, value);
|
|
665
684
|
cancelNormalSelected(ctx);
|
|
666
685
|
if ((curv === null || curv === void 0 ? void 0 : curv.tb) === "2" && curv.v || isInlineStringCell(d[r][c])) {
|
|
667
686
|
var defaultrowlen = ctx.defaultrowlen;
|
|
668
687
|
var cfg = ctx.luckysheetfile[getSheetIndex(ctx, ctx.currentSheetId)].config || {};
|
|
669
|
-
if (!(((
|
|
670
|
-
var cellWidth = ((
|
|
688
|
+
if (!(((_m = cfg.columnlen) === null || _m === void 0 ? void 0 : _m[c]) && ((_o = cfg.rowlen) === null || _o === void 0 ? void 0 : _o[r]))) {
|
|
689
|
+
var cellWidth = ((_p = cfg.columnlen) === null || _p === void 0 ? void 0 : _p[c]) || ctx.defaultcollen;
|
|
671
690
|
var textInfo = canvas ? getCellTextInfo(d[r][c], canvas, ctx, {
|
|
672
691
|
r: r,
|
|
673
692
|
c: c,
|
|
@@ -678,7 +697,7 @@ export function updateCell(ctx, r, c, $input, value, canvas) {
|
|
|
678
697
|
currentRowLen = textInfo.textHeightAll + 2;
|
|
679
698
|
}
|
|
680
699
|
var previousRowHeight = getRowHeight(ctx, [r])[r];
|
|
681
|
-
if (currentRowLen > defaultrowlen && !((
|
|
700
|
+
if (currentRowLen > defaultrowlen && !((_q = cfg.customHeight) === null || _q === void 0 ? void 0 : _q[r]) && previousRowHeight < currentRowLen) {
|
|
682
701
|
if (_.isNil(cfg.rowlen)) cfg.rowlen = {};
|
|
683
702
|
cfg.rowlen[r] = currentRowLen;
|
|
684
703
|
}
|
package/es/modules/formula.js
CHANGED
|
@@ -18,7 +18,7 @@ var __spreadArray = this && this.__spreadArray || function (to, from, pack) {
|
|
|
18
18
|
return to.concat(ar || Array.prototype.slice.call(from));
|
|
19
19
|
};
|
|
20
20
|
import _ from "lodash";
|
|
21
|
-
import { Parser, ERROR_REF } from "@fileverse-dev/formula-parser";
|
|
21
|
+
import { Parser, ERROR_REF } from "@fileverse-dev/formula-parser/src/index";
|
|
22
22
|
import { getFlowdata } from "../context";
|
|
23
23
|
import { columnCharToIndex, escapeScriptTag, getSheetIndex, indexToColumnChar, getSheetIdByName, escapeHTMLTag } from "../utils";
|
|
24
24
|
import { getcellFormula, getRangetxt, mergeMoveMain, setCellValue } from "./cell";
|
|
@@ -69,7 +69,7 @@ var FormulaCache = function () {
|
|
|
69
69
|
done(v);
|
|
70
70
|
});
|
|
71
71
|
this.parser.on("callRangeValue", function (startCellCoord, endCellCoord, options, done) {
|
|
72
|
-
var _a, _b, _c, _d;
|
|
72
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
73
73
|
var context = that.parser.context;
|
|
74
74
|
var id = startCellCoord.sheetName == null ? options.sheetId : getSheetIdByName(context, startCellCoord.sheetName);
|
|
75
75
|
if (id == null) throw Error(ERROR_REF);
|
|
@@ -90,23 +90,42 @@ var FormulaCache = function () {
|
|
|
90
90
|
endCol = (_b = flowdata === null || flowdata === void 0 ? void 0 : flowdata[0].length) !== null && _b !== void 0 ? _b : 0;
|
|
91
91
|
}
|
|
92
92
|
if (emptyRow && emptyCol) throw Error(ERROR_REF);
|
|
93
|
+
var cryptoDenomination = "";
|
|
94
|
+
var cryptoDecimal = 0;
|
|
93
95
|
for (var row = startRow; row <= endRow; row += 1) {
|
|
94
96
|
var colFragment = [];
|
|
95
97
|
for (var col = startCol; col <= endCol; col += 1) {
|
|
96
98
|
var cell = ((_c = context === null || context === void 0 ? void 0 : context.formulaCache.execFunctionGlobalData) === null || _c === void 0 ? void 0 : _c["".concat(row, "_").concat(col, "_").concat(id)]) || ((_d = flowdata === null || flowdata === void 0 ? void 0 : flowdata[row]) === null || _d === void 0 ? void 0 : _d[col]);
|
|
97
99
|
var v = that.tryGetCellAsNumber(cell);
|
|
100
|
+
if ((((_e = cell === null || cell === void 0 ? void 0 : cell.m) === null || _e === void 0 ? void 0 : _e.includes("ETH")) || ((_f = cell === null || cell === void 0 ? void 0 : cell.m) === null || _f === void 0 ? void 0 : _f.includes("SOL")) || ((_g = cell === null || cell === void 0 ? void 0 : cell.m) === null || _g === void 0 ? void 0 : _g.includes("BTC"))) && cryptoDenomination !== "Error") {
|
|
101
|
+
var visualString = cell === null || cell === void 0 ? void 0 : cell.m.split(" ");
|
|
102
|
+
if (cryptoDenomination !== "" && cryptoDenomination !== visualString[1]) {
|
|
103
|
+
cryptoDenomination = "Error";
|
|
104
|
+
} else {
|
|
105
|
+
cryptoDenomination = visualString[1];
|
|
106
|
+
}
|
|
107
|
+
cryptoDecimal = visualString[0].includes(".") ? visualString[0].split(".")[1].length : 0;
|
|
108
|
+
}
|
|
98
109
|
colFragment.push(v);
|
|
99
110
|
}
|
|
100
111
|
fragment.push(colFragment);
|
|
101
112
|
}
|
|
113
|
+
if (cryptoDenomination === "Error") {
|
|
114
|
+
cryptoDenomination = "";
|
|
115
|
+
cryptoDecimal = 0;
|
|
116
|
+
}
|
|
102
117
|
if (fragment) {
|
|
103
|
-
done(fragment);
|
|
118
|
+
done(fragment, cryptoDenomination, cryptoDecimal);
|
|
104
119
|
}
|
|
105
120
|
});
|
|
106
121
|
}
|
|
107
122
|
FormulaCache.prototype.tryGetCellAsNumber = function (cell) {
|
|
108
|
-
var _a;
|
|
109
|
-
if (((_a = cell === null ||
|
|
123
|
+
var _a, _b, _c, _d;
|
|
124
|
+
if (((_a = cell.m) === null || _a === void 0 ? void 0 : _a.includes("ETH")) || ((_b = cell.m) === null || _b === void 0 ? void 0 : _b.includes("SOL")) || ((_c = cell.m) === null || _c === void 0 ? void 0 : _c.includes("BTC"))) {
|
|
125
|
+
var splitedNumberString = cell.m.split(" ")[0];
|
|
126
|
+
return Number(splitedNumberString);
|
|
127
|
+
}
|
|
128
|
+
if (((_d = cell === null || cell === void 0 ? void 0 : cell.ct) === null || _d === void 0 ? void 0 : _d.t) === "n") {
|
|
110
129
|
var n = Number(cell === null || cell === void 0 ? void 0 : cell.v);
|
|
111
130
|
return Number.isNaN(n) ? cell.v : n;
|
|
112
131
|
}
|
|
@@ -166,6 +185,7 @@ export function iscelldata(txt) {
|
|
|
166
185
|
return false;
|
|
167
186
|
}
|
|
168
187
|
function addToCellIndexList(ctx, txt, infoObj) {
|
|
188
|
+
console.log("heheeheheh");
|
|
169
189
|
if (_.isNil(txt) || txt.length === 0 || _.isNil(infoObj)) {
|
|
170
190
|
return;
|
|
171
191
|
}
|
|
@@ -693,7 +713,12 @@ export function execfunction(ctx, txt, r, c, id, calcChainSet, isrefresh, notIns
|
|
|
693
713
|
insertUpdateFunctionGroup(ctx, r, c, id, calcChainSet);
|
|
694
714
|
}
|
|
695
715
|
}
|
|
696
|
-
|
|
716
|
+
var finalResult = result;
|
|
717
|
+
if (ctx.formulaCache.parser.cryptoDenomination && ctx.formulaCache.parser.cryptoDenomination !== "") {
|
|
718
|
+
var resultStr = Number(result).toFixed(ctx.formulaCache.parser.cryptoDecimals).toLowerCase();
|
|
719
|
+
finalResult = "".concat(resultStr, " ").concat(ctx.formulaCache.parser.cryptoDenomination);
|
|
720
|
+
}
|
|
721
|
+
return [true, _.isNil(formulaError) ? finalResult : formulaError, txt];
|
|
697
722
|
}
|
|
698
723
|
function insertUpdateDynamicArray(ctx, dynamicArrayItem) {
|
|
699
724
|
var r = dynamicArrayItem.r,
|
package/lib/modules/cell.js
CHANGED
|
@@ -39,6 +39,7 @@ var _inlineString = require("./inline-string");
|
|
|
39
39
|
var _validation = require("./validation");
|
|
40
40
|
var _text = require("./text");
|
|
41
41
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
42
|
+
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); }
|
|
42
43
|
function normalizedCellAttr(cell, attr, defaultFontSize) {
|
|
43
44
|
if (defaultFontSize === void 0) {
|
|
44
45
|
defaultFontSize = 10;
|
|
@@ -268,7 +269,11 @@ function setCellValue(ctx, r, c, d, v) {
|
|
|
268
269
|
cell.m = mask[0].toString();
|
|
269
270
|
cell.ct = mask[1], cell.v = mask[2];
|
|
270
271
|
} else {
|
|
271
|
-
|
|
272
|
+
if (v.m) {
|
|
273
|
+
cell.m = v.m;
|
|
274
|
+
} else {
|
|
275
|
+
cell.m = mask.toString();
|
|
276
|
+
}
|
|
272
277
|
cell.v = vupdate;
|
|
273
278
|
}
|
|
274
279
|
} else {
|
|
@@ -291,7 +296,11 @@ function setCellValue(ctx, r, c, d, v) {
|
|
|
291
296
|
} else if (cell.v != null) {
|
|
292
297
|
var mask = (0, _format.genarate)(cell.v);
|
|
293
298
|
if (mask) {
|
|
294
|
-
|
|
299
|
+
if (v.m) {
|
|
300
|
+
cell.m = v.m;
|
|
301
|
+
} else {
|
|
302
|
+
cell.m = mask[0].toString();
|
|
303
|
+
}
|
|
295
304
|
}
|
|
296
305
|
}
|
|
297
306
|
} else {
|
|
@@ -492,7 +501,7 @@ function cancelNormalSelected(ctx) {
|
|
|
492
501
|
ctx.formulaCache.rangedrag_row_start = false;
|
|
493
502
|
}
|
|
494
503
|
function updateCell(ctx, r, c, $input, value, canvas) {
|
|
495
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
504
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
|
|
496
505
|
var inputText = $input === null || $input === void 0 ? void 0 : $input.innerText;
|
|
497
506
|
var inputHtml = $input === null || $input === void 0 ? void 0 : $input.innerHTML;
|
|
498
507
|
var flowdata = (0, _context.getFlowdata)(ctx);
|
|
@@ -629,12 +638,17 @@ function updateCell(ctx, r, c, $input, value, canvas) {
|
|
|
629
638
|
}
|
|
630
639
|
} else {
|
|
631
640
|
(0, _formula.delFunctionGroup)(ctx, r, c);
|
|
632
|
-
(0, _formula.execFunctionGroup)(ctx, r, c, value);
|
|
633
|
-
isRunExecFunction = false;
|
|
634
641
|
curv = _lodash.default.cloneDeep(((_e = d === null || d === void 0 ? void 0 : d[r]) === null || _e === void 0 ? void 0 : _e[c]) || {});
|
|
635
642
|
curv.v = value;
|
|
636
643
|
delete curv.f;
|
|
637
644
|
delete curv.spl;
|
|
645
|
+
var decemialCount_1 = ((_f = oldValue === null || oldValue === void 0 ? void 0 : oldValue.m) === null || _f === void 0 ? void 0 : _f.toString().includes(".")) ? (_g = oldValue === null || oldValue === void 0 ? void 0 : oldValue.m) === null || _g === void 0 ? void 0 : _g.toString().split(" ")[0].split(".")[1].length : 0;
|
|
646
|
+
var coin_1 = (_h = oldValue === null || oldValue === void 0 ? void 0 : oldValue.m) === null || _h === void 0 ? void 0 : _h.toString().split(" ")[1];
|
|
647
|
+
if (_typeof(curv) === "object" && (curv === null || curv === void 0 ? void 0 : curv.baseValue)) {
|
|
648
|
+
curv.m = "".concat((parseFloat(value) / (oldValue === null || oldValue === void 0 ? void 0 : oldValue.baseCurrencyPrice)).toFixed(decemialCount_1), " ").concat(coin_1);
|
|
649
|
+
}
|
|
650
|
+
(0, _formula.execFunctionGroup)(ctx, r, c, curv);
|
|
651
|
+
isRunExecFunction = false;
|
|
638
652
|
if (curv.qp === 1 && "".concat(value).substring(0, 1) !== "'") {
|
|
639
653
|
curv.qp = 0;
|
|
640
654
|
if (curv.ct) {
|
|
@@ -691,13 +705,18 @@ function updateCell(ctx, r, c, $input, value, canvas) {
|
|
|
691
705
|
isRunExecFunction = false;
|
|
692
706
|
}
|
|
693
707
|
}
|
|
708
|
+
var decemialCount = ((_j = oldValue === null || oldValue === void 0 ? void 0 : oldValue.m) === null || _j === void 0 ? void 0 : _j.toString().includes(".")) ? (_k = oldValue === null || oldValue === void 0 ? void 0 : oldValue.m) === null || _k === void 0 ? void 0 : _k.toString().split(" ")[0].split(".")[1].length : 0;
|
|
709
|
+
var coin = (_l = oldValue === null || oldValue === void 0 ? void 0 : oldValue.m) === null || _l === void 0 ? void 0 : _l.toString().split(" ")[1];
|
|
710
|
+
if (_typeof(value) === "object" && value.baseValue && !(value === null || value === void 0 ? void 0 : value.m)) {
|
|
711
|
+
value.m = "".concat((parseFloat(value === null || value === void 0 ? void 0 : value.v) / (oldValue === null || oldValue === void 0 ? void 0 : oldValue.baseCurrencyPrice)).toFixed(decemialCount), " ").concat(coin);
|
|
712
|
+
}
|
|
694
713
|
setCellValue(ctx, r, c, d, value);
|
|
695
714
|
cancelNormalSelected(ctx);
|
|
696
715
|
if ((curv === null || curv === void 0 ? void 0 : curv.tb) === "2" && curv.v || (0, _inlineString.isInlineStringCell)(d[r][c])) {
|
|
697
716
|
var defaultrowlen = ctx.defaultrowlen;
|
|
698
717
|
var cfg = ctx.luckysheetfile[(0, _utils.getSheetIndex)(ctx, ctx.currentSheetId)].config || {};
|
|
699
|
-
if (!(((
|
|
700
|
-
var cellWidth = ((
|
|
718
|
+
if (!(((_m = cfg.columnlen) === null || _m === void 0 ? void 0 : _m[c]) && ((_o = cfg.rowlen) === null || _o === void 0 ? void 0 : _o[r]))) {
|
|
719
|
+
var cellWidth = ((_p = cfg.columnlen) === null || _p === void 0 ? void 0 : _p[c]) || ctx.defaultcollen;
|
|
701
720
|
var textInfo = canvas ? (0, _text.getCellTextInfo)(d[r][c], canvas, ctx, {
|
|
702
721
|
r: r,
|
|
703
722
|
c: c,
|
|
@@ -708,7 +727,7 @@ function updateCell(ctx, r, c, $input, value, canvas) {
|
|
|
708
727
|
currentRowLen = textInfo.textHeightAll + 2;
|
|
709
728
|
}
|
|
710
729
|
var previousRowHeight = (0, _api.getRowHeight)(ctx, [r])[r];
|
|
711
|
-
if (currentRowLen > defaultrowlen && !((
|
|
730
|
+
if (currentRowLen > defaultrowlen && !((_q = cfg.customHeight) === null || _q === void 0 ? void 0 : _q[r]) && previousRowHeight < currentRowLen) {
|
|
712
731
|
if (_lodash.default.isNil(cfg.rowlen)) cfg.rowlen = {};
|
|
713
732
|
cfg.rowlen[r] = currentRowLen;
|
|
714
733
|
}
|
package/lib/modules/formula.js
CHANGED
|
@@ -28,7 +28,7 @@ exports.rangeHightlightselected = rangeHightlightselected;
|
|
|
28
28
|
exports.rangeSetValue = rangeSetValue;
|
|
29
29
|
exports.setCaretPosition = setCaretPosition;
|
|
30
30
|
var _lodash = _interopRequireDefault(require("lodash"));
|
|
31
|
-
var
|
|
31
|
+
var _index = require("@fileverse-dev/formula-parser/src/index");
|
|
32
32
|
var _context = require("../context");
|
|
33
33
|
var _utils = require("../utils");
|
|
34
34
|
var _cell = require("./cell");
|
|
@@ -87,22 +87,22 @@ var FormulaCache = exports.FormulaCache = function () {
|
|
|
87
87
|
this.functionlistMap = {};
|
|
88
88
|
this.execFunctionGlobalData = {};
|
|
89
89
|
this.cellTextToIndexList = {};
|
|
90
|
-
this.parser = new
|
|
90
|
+
this.parser = new _index.Parser();
|
|
91
91
|
this.parser.on("callCellValue", function (cellCoord, options, done) {
|
|
92
92
|
var _a, _b;
|
|
93
93
|
var context = that.parser.context;
|
|
94
94
|
var id = cellCoord.sheetName == null ? options.sheetId : (0, _utils.getSheetIdByName)(context, cellCoord.sheetName);
|
|
95
|
-
if (id == null) throw Error(
|
|
95
|
+
if (id == null) throw Error(_index.ERROR_REF);
|
|
96
96
|
var flowdata = (0, _context.getFlowdata)(context, id);
|
|
97
97
|
var cell = ((_a = context === null || context === void 0 ? void 0 : context.formulaCache.execFunctionGlobalData) === null || _a === void 0 ? void 0 : _a["".concat(cellCoord.row.index, "_").concat(cellCoord.column.index, "_").concat(id)]) || ((_b = flowdata === null || flowdata === void 0 ? void 0 : flowdata[cellCoord.row.index]) === null || _b === void 0 ? void 0 : _b[cellCoord.column.index]);
|
|
98
98
|
var v = that.tryGetCellAsNumber(cell);
|
|
99
99
|
done(v);
|
|
100
100
|
});
|
|
101
101
|
this.parser.on("callRangeValue", function (startCellCoord, endCellCoord, options, done) {
|
|
102
|
-
var _a, _b, _c, _d;
|
|
102
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
103
103
|
var context = that.parser.context;
|
|
104
104
|
var id = startCellCoord.sheetName == null ? options.sheetId : (0, _utils.getSheetIdByName)(context, startCellCoord.sheetName);
|
|
105
|
-
if (id == null) throw Error(
|
|
105
|
+
if (id == null) throw Error(_index.ERROR_REF);
|
|
106
106
|
var flowdata = (0, _context.getFlowdata)(context, id);
|
|
107
107
|
var fragment = [];
|
|
108
108
|
var startRow = startCellCoord.row.index;
|
|
@@ -119,24 +119,43 @@ var FormulaCache = exports.FormulaCache = function () {
|
|
|
119
119
|
startCol = 0;
|
|
120
120
|
endCol = (_b = flowdata === null || flowdata === void 0 ? void 0 : flowdata[0].length) !== null && _b !== void 0 ? _b : 0;
|
|
121
121
|
}
|
|
122
|
-
if (emptyRow && emptyCol) throw Error(
|
|
122
|
+
if (emptyRow && emptyCol) throw Error(_index.ERROR_REF);
|
|
123
|
+
var cryptoDenomination = "";
|
|
124
|
+
var cryptoDecimal = 0;
|
|
123
125
|
for (var row = startRow; row <= endRow; row += 1) {
|
|
124
126
|
var colFragment = [];
|
|
125
127
|
for (var col = startCol; col <= endCol; col += 1) {
|
|
126
128
|
var cell = ((_c = context === null || context === void 0 ? void 0 : context.formulaCache.execFunctionGlobalData) === null || _c === void 0 ? void 0 : _c["".concat(row, "_").concat(col, "_").concat(id)]) || ((_d = flowdata === null || flowdata === void 0 ? void 0 : flowdata[row]) === null || _d === void 0 ? void 0 : _d[col]);
|
|
127
129
|
var v = that.tryGetCellAsNumber(cell);
|
|
130
|
+
if ((((_e = cell === null || cell === void 0 ? void 0 : cell.m) === null || _e === void 0 ? void 0 : _e.includes("ETH")) || ((_f = cell === null || cell === void 0 ? void 0 : cell.m) === null || _f === void 0 ? void 0 : _f.includes("SOL")) || ((_g = cell === null || cell === void 0 ? void 0 : cell.m) === null || _g === void 0 ? void 0 : _g.includes("BTC"))) && cryptoDenomination !== "Error") {
|
|
131
|
+
var visualString = cell === null || cell === void 0 ? void 0 : cell.m.split(" ");
|
|
132
|
+
if (cryptoDenomination !== "" && cryptoDenomination !== visualString[1]) {
|
|
133
|
+
cryptoDenomination = "Error";
|
|
134
|
+
} else {
|
|
135
|
+
cryptoDenomination = visualString[1];
|
|
136
|
+
}
|
|
137
|
+
cryptoDecimal = visualString[0].includes(".") ? visualString[0].split(".")[1].length : 0;
|
|
138
|
+
}
|
|
128
139
|
colFragment.push(v);
|
|
129
140
|
}
|
|
130
141
|
fragment.push(colFragment);
|
|
131
142
|
}
|
|
143
|
+
if (cryptoDenomination === "Error") {
|
|
144
|
+
cryptoDenomination = "";
|
|
145
|
+
cryptoDecimal = 0;
|
|
146
|
+
}
|
|
132
147
|
if (fragment) {
|
|
133
|
-
done(fragment);
|
|
148
|
+
done(fragment, cryptoDenomination, cryptoDecimal);
|
|
134
149
|
}
|
|
135
150
|
});
|
|
136
151
|
}
|
|
137
152
|
FormulaCache.prototype.tryGetCellAsNumber = function (cell) {
|
|
138
|
-
var _a;
|
|
139
|
-
if (((_a = cell === null ||
|
|
153
|
+
var _a, _b, _c, _d;
|
|
154
|
+
if (((_a = cell.m) === null || _a === void 0 ? void 0 : _a.includes("ETH")) || ((_b = cell.m) === null || _b === void 0 ? void 0 : _b.includes("SOL")) || ((_c = cell.m) === null || _c === void 0 ? void 0 : _c.includes("BTC"))) {
|
|
155
|
+
var splitedNumberString = cell.m.split(" ")[0];
|
|
156
|
+
return Number(splitedNumberString);
|
|
157
|
+
}
|
|
158
|
+
if (((_d = cell === null || cell === void 0 ? void 0 : cell.ct) === null || _d === void 0 ? void 0 : _d.t) === "n") {
|
|
140
159
|
var n = Number(cell === null || cell === void 0 ? void 0 : cell.v);
|
|
141
160
|
return Number.isNaN(n) ? cell.v : n;
|
|
142
161
|
}
|
|
@@ -195,6 +214,7 @@ function iscelldata(txt) {
|
|
|
195
214
|
return false;
|
|
196
215
|
}
|
|
197
216
|
function addToCellIndexList(ctx, txt, infoObj) {
|
|
217
|
+
console.log("heheeheheh");
|
|
198
218
|
if (_lodash.default.isNil(txt) || txt.length === 0 || _lodash.default.isNil(infoObj)) {
|
|
199
219
|
return;
|
|
200
220
|
}
|
|
@@ -722,7 +742,12 @@ function execfunction(ctx, txt, r, c, id, calcChainSet, isrefresh, notInsertFunc
|
|
|
722
742
|
insertUpdateFunctionGroup(ctx, r, c, id, calcChainSet);
|
|
723
743
|
}
|
|
724
744
|
}
|
|
725
|
-
|
|
745
|
+
var finalResult = result;
|
|
746
|
+
if (ctx.formulaCache.parser.cryptoDenomination && ctx.formulaCache.parser.cryptoDenomination !== "") {
|
|
747
|
+
var resultStr = Number(result).toFixed(ctx.formulaCache.parser.cryptoDecimals).toLowerCase();
|
|
748
|
+
finalResult = "".concat(resultStr, " ").concat(ctx.formulaCache.parser.cryptoDenomination);
|
|
749
|
+
}
|
|
750
|
+
return [true, _lodash.default.isNil(formulaError) ? finalResult : formulaError, txt];
|
|
726
751
|
}
|
|
727
752
|
function insertUpdateDynamicArray(ctx, dynamicArrayItem) {
|
|
728
753
|
var r = dynamicArrayItem.r,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fileverse-dev/fortune-core",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.62",
|
|
4
4
|
"main": "lib/index.js",
|
|
5
5
|
"module": "es/index.js",
|
|
6
6
|
"typings": "lib/index.d.ts",
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"dev": "father-build --watch"
|
|
16
16
|
},
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@fileverse-dev/formula-parser": "0.2.
|
|
18
|
+
"@fileverse-dev/formula-parser": "0.2.39",
|
|
19
19
|
"dayjs": "^1.11.0",
|
|
20
20
|
"immer": "^9.0.12",
|
|
21
21
|
"lodash": "^4.17.21",
|