@gridsheet/react-core 0.12.3 → 0.12.4-rc.0
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/dist/components/Cell.js +197 -181
- package/dist/components/Cell.js.map +1 -1
- package/dist/components/ContextMenu.js +211 -194
- package/dist/components/ContextMenu.js.map +1 -1
- package/dist/components/Editor.js +280 -263
- package/dist/components/Editor.js.map +1 -1
- package/dist/components/Emitter.js +41 -24
- package/dist/components/Emitter.js.map +1 -1
- package/dist/components/GridSheet.js +142 -105
- package/dist/components/GridSheet.js.map +1 -1
- package/dist/components/HeaderLeftCell.js +76 -60
- package/dist/components/HeaderLeftCell.js.map +1 -1
- package/dist/components/HeaderTopCell.js +77 -61
- package/dist/components/HeaderTopCell.js.map +1 -1
- package/dist/components/Resizer.js +91 -75
- package/dist/components/Resizer.js.map +1 -1
- package/dist/components/SearchBox.js +66 -49
- package/dist/components/SearchBox.js.map +1 -1
- package/dist/components/StoreInitializer.js +83 -66
- package/dist/components/StoreInitializer.js.map +1 -1
- package/dist/components/Tabular.js +98 -80
- package/dist/components/Tabular.js.map +1 -1
- package/dist/constants.js +33 -19
- package/dist/constants.js.map +1 -1
- package/dist/formula/evaluator.js +500 -474
- package/dist/formula/evaluator.js.map +1 -1
- package/dist/formula/functions/__base.js +27 -13
- package/dist/formula/functions/__base.js.map +1 -1
- package/dist/formula/functions/__utils.js +113 -95
- package/dist/formula/functions/__utils.js.map +1 -1
- package/dist/formula/functions/abs.js +31 -17
- package/dist/formula/functions/abs.js.map +1 -1
- package/dist/formula/functions/abs.spec.js +35 -23
- package/dist/formula/functions/abs.spec.js.map +1 -1
- package/dist/formula/functions/acos.js +38 -24
- package/dist/formula/functions/acos.js.map +1 -1
- package/dist/formula/functions/add.js +57 -43
- package/dist/formula/functions/add.js.map +1 -1
- package/dist/formula/functions/and.js +38 -24
- package/dist/formula/functions/and.js.map +1 -1
- package/dist/formula/functions/asin.js +38 -24
- package/dist/formula/functions/asin.js.map +1 -1
- package/dist/formula/functions/atan.js +36 -22
- package/dist/formula/functions/atan.js.map +1 -1
- package/dist/formula/functions/atan2.js +42 -28
- package/dist/formula/functions/atan2.js.map +1 -1
- package/dist/formula/functions/average.js +50 -36
- package/dist/formula/functions/average.js.map +1 -1
- package/dist/formula/functions/col.js +38 -24
- package/dist/formula/functions/col.js.map +1 -1
- package/dist/formula/functions/concat.js +37 -23
- package/dist/formula/functions/concat.js.map +1 -1
- package/dist/formula/functions/concatenate.js +35 -21
- package/dist/formula/functions/concatenate.js.map +1 -1
- package/dist/formula/functions/cos.js +36 -22
- package/dist/formula/functions/cos.js.map +1 -1
- package/dist/formula/functions/count.js +45 -31
- package/dist/formula/functions/count.js.map +1 -1
- package/dist/formula/functions/counta.js +45 -31
- package/dist/formula/functions/counta.js.map +1 -1
- package/dist/formula/functions/countif.js +40 -26
- package/dist/formula/functions/countif.js.map +1 -1
- package/dist/formula/functions/divide.js +42 -28
- package/dist/formula/functions/divide.js.map +1 -1
- package/dist/formula/functions/eq.js +35 -21
- package/dist/formula/functions/eq.js.map +1 -1
- package/dist/formula/functions/exp.js +38 -24
- package/dist/formula/functions/exp.js.map +1 -1
- package/dist/formula/functions/gt.js +37 -23
- package/dist/formula/functions/gt.js.map +1 -1
- package/dist/formula/functions/gte.js +37 -23
- package/dist/formula/functions/gte.js.map +1 -1
- package/dist/formula/functions/hlookup.js +77 -63
- package/dist/formula/functions/hlookup.js.map +1 -1
- package/dist/formula/functions/if.js +46 -32
- package/dist/formula/functions/if.js.map +1 -1
- package/dist/formula/functions/iferror.js +48 -34
- package/dist/formula/functions/iferror.js.map +1 -1
- package/dist/formula/functions/iferror.spec.js +63 -51
- package/dist/formula/functions/iferror.spec.js.map +1 -1
- package/dist/formula/functions/len.js +36 -22
- package/dist/formula/functions/len.js.map +1 -1
- package/dist/formula/functions/lenb.js +36 -22
- package/dist/formula/functions/lenb.js.map +1 -1
- package/dist/formula/functions/ln.js +38 -24
- package/dist/formula/functions/ln.js.map +1 -1
- package/dist/formula/functions/log.js +43 -29
- package/dist/formula/functions/log.js.map +1 -1
- package/dist/formula/functions/log10.js +38 -24
- package/dist/formula/functions/log10.js.map +1 -1
- package/dist/formula/functions/lt.js +37 -23
- package/dist/formula/functions/lt.js.map +1 -1
- package/dist/formula/functions/lte.js +37 -23
- package/dist/formula/functions/lte.js.map +1 -1
- package/dist/formula/functions/max.js +52 -38
- package/dist/formula/functions/max.js.map +1 -1
- package/dist/formula/functions/min.js +52 -38
- package/dist/formula/functions/min.js.map +1 -1
- package/dist/formula/functions/minus.js +57 -43
- package/dist/formula/functions/minus.js.map +1 -1
- package/dist/formula/functions/mod.js +40 -26
- package/dist/formula/functions/mod.js.map +1 -1
- package/dist/formula/functions/mod.spec.js +58 -46
- package/dist/formula/functions/mod.spec.js.map +1 -1
- package/dist/formula/functions/multiply.js +37 -23
- package/dist/formula/functions/multiply.js.map +1 -1
- package/dist/formula/functions/ne.js +35 -21
- package/dist/formula/functions/ne.js.map +1 -1
- package/dist/formula/functions/not.js +40 -26
- package/dist/formula/functions/not.js.map +1 -1
- package/dist/formula/functions/now.js +31 -17
- package/dist/formula/functions/now.js.map +1 -1
- package/dist/formula/functions/or.js +38 -24
- package/dist/formula/functions/or.js.map +1 -1
- package/dist/formula/functions/pi.js +29 -15
- package/dist/formula/functions/pi.js.map +1 -1
- package/dist/formula/functions/power.js +34 -20
- package/dist/formula/functions/power.js.map +1 -1
- package/dist/formula/functions/product.js +47 -33
- package/dist/formula/functions/product.js.map +1 -1
- package/dist/formula/functions/radians.js +36 -22
- package/dist/formula/functions/radians.js.map +1 -1
- package/dist/formula/functions/rand.js +29 -15
- package/dist/formula/functions/rand.js.map +1 -1
- package/dist/formula/functions/round.js +44 -30
- package/dist/formula/functions/round.js.map +1 -1
- package/dist/formula/functions/rounddown.js +44 -30
- package/dist/formula/functions/rounddown.js.map +1 -1
- package/dist/formula/functions/roundup.js +44 -30
- package/dist/formula/functions/roundup.js.map +1 -1
- package/dist/formula/functions/row.js +38 -24
- package/dist/formula/functions/row.js.map +1 -1
- package/dist/formula/functions/sin.js +36 -22
- package/dist/formula/functions/sin.js.map +1 -1
- package/dist/formula/functions/sqrt.js +38 -24
- package/dist/formula/functions/sqrt.js.map +1 -1
- package/dist/formula/functions/sum.js +52 -38
- package/dist/formula/functions/sum.js.map +1 -1
- package/dist/formula/functions/sum.spec.js +45 -33
- package/dist/formula/functions/sum.spec.js.map +1 -1
- package/dist/formula/functions/sumif.js +66 -52
- package/dist/formula/functions/sumif.js.map +1 -1
- package/dist/formula/functions/tan.js +36 -22
- package/dist/formula/functions/tan.js.map +1 -1
- package/dist/formula/functions/uminus.js +33 -19
- package/dist/formula/functions/uminus.js.map +1 -1
- package/dist/formula/functions/vlookup.js +77 -63
- package/dist/formula/functions/vlookup.js.map +1 -1
- package/dist/formula/mapping.js +126 -113
- package/dist/formula/mapping.js.map +1 -1
- package/dist/formula/solver.js +71 -56
- package/dist/formula/solver.js.map +1 -1
- package/dist/index.js +41 -10
- package/dist/index.js.map +1 -1
- package/dist/lib/autofill.js +344 -330
- package/dist/lib/autofill.js.map +1 -1
- package/dist/lib/clipboard.js +55 -41
- package/dist/lib/clipboard.js.map +1 -1
- package/dist/lib/converters.js +140 -119
- package/dist/lib/converters.js.map +1 -1
- package/dist/lib/structs.js +266 -228
- package/dist/lib/structs.js.map +1 -1
- package/dist/lib/table.js +915 -900
- package/dist/lib/table.js.map +1 -1
- package/dist/lib/time.js +69 -55
- package/dist/lib/time.js.map +1 -1
- package/dist/lib/virtualization.js +121 -104
- package/dist/lib/virtualization.js.map +1 -1
- package/dist/parsers/core.js +119 -105
- package/dist/parsers/core.js.map +1 -1
- package/dist/renderers/checkbox.js +24 -8
- package/dist/renderers/checkbox.js.map +1 -1
- package/dist/renderers/core.js +139 -125
- package/dist/renderers/core.js.map +1 -1
- package/dist/renderers/thousand_separator.js +25 -12
- package/dist/renderers/thousand_separator.js.map +1 -1
- package/dist/store/actions.js +495 -480
- package/dist/store/actions.js.map +1 -1
- package/dist/store/helpers.js +88 -72
- package/dist/store/helpers.js.map +1 -1
- package/dist/store/index.js +38 -2
- package/dist/store/index.js.map +1 -1
- package/dist/styles/embedder.js +27 -13
- package/dist/styles/embedder.js.map +1 -1
- package/dist/styles/minified.js +16 -3
- package/dist/styles/minified.js.map +1 -1
- package/dist/types.js +12 -1
- package/dist/utils.js +19 -5
- package/dist/utils.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,74 +1,88 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
import { ensureBoolean, ensureNumber, stripTable } from "./__utils";
|
|
6
|
-
export class VlookupFunction extends BaseFunction {
|
|
7
|
-
constructor() {
|
|
8
|
-
super(...arguments);
|
|
9
|
-
this.example = "VLOOKUP(10003, A2:B26, 2, FALSE)";
|
|
10
|
-
this.helpText = [
|
|
11
|
-
"Searches vertically for the specified key in the first column of the range and returns the value of the specified cell in the same row.",
|
|
12
|
-
];
|
|
13
|
-
this.helpArgs = [
|
|
14
|
-
{ name: "key", description: "Search key." },
|
|
15
|
-
{
|
|
16
|
-
name: "range",
|
|
17
|
-
description: "A range for search",
|
|
18
|
-
},
|
|
19
|
-
{
|
|
20
|
-
name: "index",
|
|
21
|
-
description: "The index of the column in the range.",
|
|
22
|
-
},
|
|
23
|
-
{
|
|
24
|
-
name: "is_sorted",
|
|
25
|
-
description: "FALSE: Exact match. This is recommended. TRUE: Approximate match. Before you use an approximate match, sort your search key in ascending order. Otherwise, you may likely get a wrong return value.",
|
|
26
|
-
option: true,
|
|
27
|
-
},
|
|
28
|
-
];
|
|
1
|
+
(function (factory) {
|
|
2
|
+
if (typeof module === "object" && typeof module.exports === "object") {
|
|
3
|
+
var v = factory(require, exports);
|
|
4
|
+
if (v !== undefined) module.exports = v;
|
|
29
5
|
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
6
|
+
else if (typeof define === "function" && define.amd) {
|
|
7
|
+
define(["require", "exports", "../evaluator", "../solver", "../../lib/table", "./__base", "./__utils"], factory);
|
|
8
|
+
}
|
|
9
|
+
})(function (require, exports) {
|
|
10
|
+
"use strict";
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.VlookupFunction = void 0;
|
|
13
|
+
const evaluator_1 = require("../evaluator");
|
|
14
|
+
const solver_1 = require("../solver");
|
|
15
|
+
const table_1 = require("../../lib/table");
|
|
16
|
+
const __base_1 = require("./__base");
|
|
17
|
+
const __utils_1 = require("./__utils");
|
|
18
|
+
class VlookupFunction extends __base_1.BaseFunction {
|
|
19
|
+
constructor() {
|
|
20
|
+
super(...arguments);
|
|
21
|
+
this.example = "VLOOKUP(10003, A2:B26, 2, FALSE)";
|
|
22
|
+
this.helpText = [
|
|
23
|
+
"Searches vertically for the specified key in the first column of the range and returns the value of the specified cell in the same row.",
|
|
24
|
+
];
|
|
25
|
+
this.helpArgs = [
|
|
26
|
+
{ name: "key", description: "Search key." },
|
|
27
|
+
{
|
|
28
|
+
name: "range",
|
|
29
|
+
description: "A range for search",
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
name: "index",
|
|
33
|
+
description: "The index of the column in the range.",
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
name: "is_sorted",
|
|
37
|
+
description: "FALSE: Exact match. This is recommended. TRUE: Approximate match. Before you use an approximate match, sort your search key in ascending order. Otherwise, you may likely get a wrong return value.",
|
|
38
|
+
option: true,
|
|
39
|
+
},
|
|
40
|
+
];
|
|
36
41
|
}
|
|
37
|
-
|
|
38
|
-
|
|
42
|
+
validate() {
|
|
43
|
+
if (this.bareArgs.length !== 3 && this.bareArgs.length !== 4) {
|
|
44
|
+
throw new evaluator_1.FormulaError("#N/A", "Number of arguments for VLOOKUP is incorrect.");
|
|
45
|
+
}
|
|
46
|
+
if (this.bareArgs[0] instanceof table_1.Table) {
|
|
47
|
+
this.bareArgs[0] = (0, __utils_1.stripTable)(this.bareArgs[0]);
|
|
48
|
+
}
|
|
49
|
+
if (!(this.bareArgs[1] instanceof table_1.Table)) {
|
|
50
|
+
throw new evaluator_1.FormulaError("#REF!", "2nd argument must be range");
|
|
51
|
+
}
|
|
52
|
+
this.bareArgs[2] = (0, __utils_1.ensureNumber)(this.bareArgs[2]);
|
|
53
|
+
this.bareArgs[3] = (0, __utils_1.ensureBoolean)(this.bareArgs[3], true);
|
|
39
54
|
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
+
main(key, range, index, isSorted) {
|
|
56
|
+
var _a, _b, _c, _d;
|
|
57
|
+
const matrix = (0, solver_1.solveTable)({ table: range });
|
|
58
|
+
if (isSorted) {
|
|
59
|
+
let last = -1;
|
|
60
|
+
for (let y = 0; y <= range.getNumRows(); y++) {
|
|
61
|
+
const v = (_a = matrix[y]) === null || _a === void 0 ? void 0 : _a[0];
|
|
62
|
+
if (v == null) {
|
|
63
|
+
continue;
|
|
64
|
+
}
|
|
65
|
+
if (v <= key) {
|
|
66
|
+
last = y;
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
break;
|
|
70
|
+
}
|
|
55
71
|
}
|
|
56
|
-
|
|
57
|
-
|
|
72
|
+
if (last !== -1) {
|
|
73
|
+
return (_b = matrix[last]) === null || _b === void 0 ? void 0 : _b[index - 1];
|
|
58
74
|
}
|
|
59
75
|
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
for (let y = 0; y <= range.getNumRows(); y++) {
|
|
66
|
-
if (((_c = matrix[y]) === null || _c === void 0 ? void 0 : _c[0]) === key) {
|
|
67
|
-
return (_d = matrix[y]) === null || _d === void 0 ? void 0 : _d[index - 1];
|
|
76
|
+
else {
|
|
77
|
+
for (let y = 0; y <= range.getNumRows(); y++) {
|
|
78
|
+
if (((_c = matrix[y]) === null || _c === void 0 ? void 0 : _c[0]) === key) {
|
|
79
|
+
return (_d = matrix[y]) === null || _d === void 0 ? void 0 : _d[index - 1];
|
|
80
|
+
}
|
|
68
81
|
}
|
|
69
82
|
}
|
|
83
|
+
throw new evaluator_1.FormulaError("#N/A", `No values found for '${key}'.`);
|
|
70
84
|
}
|
|
71
|
-
throw new FormulaError("#N/A", `No values found for '${key}'.`);
|
|
72
85
|
}
|
|
73
|
-
|
|
86
|
+
exports.VlookupFunction = VlookupFunction;
|
|
87
|
+
});
|
|
74
88
|
//# sourceMappingURL=vlookup.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vlookup.js","sourceRoot":"","sources":["../../../src/formula/functions/vlookup.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"vlookup.js","sourceRoot":"","sources":["../../../src/formula/functions/vlookup.ts"],"names":[],"mappings":"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"}
|
package/dist/formula/mapping.js
CHANGED
|
@@ -1,114 +1,127 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
1
|
+
(function (factory) {
|
|
2
|
+
if (typeof module === "object" && typeof module.exports === "object") {
|
|
3
|
+
var v = factory(require, exports);
|
|
4
|
+
if (v !== undefined) module.exports = v;
|
|
5
|
+
}
|
|
6
|
+
else if (typeof define === "function" && define.amd) {
|
|
7
|
+
define(["require", "exports", "./functions/add", "./functions/minus", "./functions/multiply", "./functions/divide", "./functions/mod", "./functions/sum", "./functions/concat", "./functions/concatenate", "./functions/eq", "./functions/ne", "./functions/gt", "./functions/gte", "./functions/lt", "./functions/lte", "./functions/now", "./functions/and", "./functions/or", "./functions/if", "./functions/iferror", "./functions/not", "./functions/count", "./functions/countif", "./functions/sumif", "./functions/vlookup", "./functions/hlookup", "./functions/log", "./functions/log10", "./functions/ln", "./functions/abs", "./functions/product", "./functions/rand", "./functions/pi", "./functions/exp", "./functions/radians", "./functions/power", "./functions/sqrt", "./functions/round", "./functions/roundup", "./functions/rounddown", "./functions/sin", "./functions/cos", "./functions/tan", "./functions/asin", "./functions/acos", "./functions/atan", "./functions/atan2", "./functions/counta", "./functions/average", "./functions/max", "./functions/min", "./functions/len", "./functions/lenb", "./functions/uminus", "./functions/row", "./functions/col"], factory);
|
|
8
|
+
}
|
|
9
|
+
})(function (require, exports) {
|
|
10
|
+
"use strict";
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.functions = void 0;
|
|
13
|
+
const add_1 = require("./functions/add");
|
|
14
|
+
const minus_1 = require("./functions/minus");
|
|
15
|
+
const multiply_1 = require("./functions/multiply");
|
|
16
|
+
const divide_1 = require("./functions/divide");
|
|
17
|
+
const mod_1 = require("./functions/mod");
|
|
18
|
+
const sum_1 = require("./functions/sum");
|
|
19
|
+
const concat_1 = require("./functions/concat");
|
|
20
|
+
const concatenate_1 = require("./functions/concatenate");
|
|
21
|
+
const eq_1 = require("./functions/eq");
|
|
22
|
+
const ne_1 = require("./functions/ne");
|
|
23
|
+
const gt_1 = require("./functions/gt");
|
|
24
|
+
const gte_1 = require("./functions/gte");
|
|
25
|
+
const lt_1 = require("./functions/lt");
|
|
26
|
+
const lte_1 = require("./functions/lte");
|
|
27
|
+
const now_1 = require("./functions/now");
|
|
28
|
+
const and_1 = require("./functions/and");
|
|
29
|
+
const or_1 = require("./functions/or");
|
|
30
|
+
const if_1 = require("./functions/if");
|
|
31
|
+
const iferror_1 = require("./functions/iferror");
|
|
32
|
+
const not_1 = require("./functions/not");
|
|
33
|
+
const count_1 = require("./functions/count");
|
|
34
|
+
const countif_1 = require("./functions/countif");
|
|
35
|
+
const sumif_1 = require("./functions/sumif");
|
|
36
|
+
const vlookup_1 = require("./functions/vlookup");
|
|
37
|
+
const hlookup_1 = require("./functions/hlookup");
|
|
38
|
+
const log_1 = require("./functions/log");
|
|
39
|
+
const log10_1 = require("./functions/log10");
|
|
40
|
+
const ln_1 = require("./functions/ln");
|
|
41
|
+
const abs_1 = require("./functions/abs");
|
|
42
|
+
const product_1 = require("./functions/product");
|
|
43
|
+
const rand_1 = require("./functions/rand");
|
|
44
|
+
const pi_1 = require("./functions/pi");
|
|
45
|
+
const exp_1 = require("./functions/exp");
|
|
46
|
+
const radians_1 = require("./functions/radians");
|
|
47
|
+
const power_1 = require("./functions/power");
|
|
48
|
+
const sqrt_1 = require("./functions/sqrt");
|
|
49
|
+
const round_1 = require("./functions/round");
|
|
50
|
+
const roundup_1 = require("./functions/roundup");
|
|
51
|
+
const rounddown_1 = require("./functions/rounddown");
|
|
52
|
+
const sin_1 = require("./functions/sin");
|
|
53
|
+
const cos_1 = require("./functions/cos");
|
|
54
|
+
const tan_1 = require("./functions/tan");
|
|
55
|
+
const asin_1 = require("./functions/asin");
|
|
56
|
+
const acos_1 = require("./functions/acos");
|
|
57
|
+
const atan_1 = require("./functions/atan");
|
|
58
|
+
const atan2_1 = require("./functions/atan2");
|
|
59
|
+
const counta_1 = require("./functions/counta");
|
|
60
|
+
const average_1 = require("./functions/average");
|
|
61
|
+
const max_1 = require("./functions/max");
|
|
62
|
+
const min_1 = require("./functions/min");
|
|
63
|
+
const len_1 = require("./functions/len");
|
|
64
|
+
const lenb_1 = require("./functions/lenb");
|
|
65
|
+
const uminus_1 = require("./functions/uminus");
|
|
66
|
+
const row_1 = require("./functions/row");
|
|
67
|
+
const col_1 = require("./functions/col");
|
|
68
|
+
exports.functions = {
|
|
69
|
+
abs: abs_1.AbsFunction,
|
|
70
|
+
add: add_1.AddFunction,
|
|
71
|
+
divide: divide_1.DivideFunction,
|
|
72
|
+
mod: mod_1.ModFunction,
|
|
73
|
+
minus: minus_1.MinusFunction,
|
|
74
|
+
uminus: uminus_1.UminusFunction,
|
|
75
|
+
multiply: multiply_1.MultiplyFunction,
|
|
76
|
+
pow: power_1.PowerFunction,
|
|
77
|
+
power: power_1.PowerFunction,
|
|
78
|
+
sqrt: sqrt_1.SqrtFunction,
|
|
79
|
+
sum: sum_1.SumFunction,
|
|
80
|
+
sumif: sumif_1.SumifFunction,
|
|
81
|
+
max: max_1.MaxFunction,
|
|
82
|
+
min: min_1.MinFunction,
|
|
83
|
+
average: average_1.AverageFunction,
|
|
84
|
+
count: count_1.CountFunction,
|
|
85
|
+
counta: counta_1.CountaFunction,
|
|
86
|
+
countif: countif_1.CountifFunction,
|
|
87
|
+
product: product_1.ProductFunction,
|
|
88
|
+
concat: concat_1.ConcatFunction,
|
|
89
|
+
concatenate: concatenate_1.ConcatenateFunction,
|
|
90
|
+
eq: eq_1.EqFunction,
|
|
91
|
+
ne: ne_1.NeFunction,
|
|
92
|
+
gt: gt_1.GtFunction,
|
|
93
|
+
gte: gte_1.GteFunction,
|
|
94
|
+
lt: lt_1.LtFunction,
|
|
95
|
+
lte: lte_1.LteFunction,
|
|
96
|
+
and: and_1.AndFunction,
|
|
97
|
+
or: or_1.OrFunction,
|
|
98
|
+
round: round_1.RoundFunction,
|
|
99
|
+
rounddown: rounddown_1.RounddownFunction,
|
|
100
|
+
roundup: roundup_1.RoundupFunction,
|
|
101
|
+
if: if_1.IfFunction,
|
|
102
|
+
iferror: iferror_1.IfErrorFunction,
|
|
103
|
+
not: not_1.NotFunction,
|
|
104
|
+
vlookup: vlookup_1.VlookupFunction,
|
|
105
|
+
hlookup: hlookup_1.HlookupFunction,
|
|
106
|
+
row: row_1.RowFunction,
|
|
107
|
+
col: col_1.ColFunction,
|
|
108
|
+
now: now_1.NowFunction,
|
|
109
|
+
rand: rand_1.RandFunction,
|
|
110
|
+
log: log_1.LogFunction,
|
|
111
|
+
log10: log10_1.Log10Function,
|
|
112
|
+
ln: ln_1.LnFunction,
|
|
113
|
+
exp: exp_1.ExpFunction,
|
|
114
|
+
pi: pi_1.PiFunction,
|
|
115
|
+
radians: radians_1.RadiansFunction,
|
|
116
|
+
sin: sin_1.SinFunction,
|
|
117
|
+
cos: cos_1.CosFunction,
|
|
118
|
+
tan: tan_1.TanFunction,
|
|
119
|
+
asin: asin_1.AsinFunction,
|
|
120
|
+
acos: acos_1.AcosFunction,
|
|
121
|
+
atan: atan_1.AtanFunction,
|
|
122
|
+
atan2: atan2_1.Atan2Function,
|
|
123
|
+
len: len_1.LenFunction,
|
|
124
|
+
lenb: lenb_1.LenbFunction,
|
|
125
|
+
};
|
|
126
|
+
});
|
|
114
127
|
//# sourceMappingURL=mapping.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapping.js","sourceRoot":"","sources":["../../src/formula/mapping.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mapping.js","sourceRoot":"","sources":["../../src/formula/mapping.ts"],"names":[],"mappings":";;;;;;;;;;;;IAAA,yCAA8C;IAC9C,6CAAkD;IAClD,mDAAwD;IACxD,+CAAoD;IACpD,yCAA8C;IAC9C,yCAA8C;IAC9C,+CAAoD;IACpD,yDAA8D;IAC9D,uCAA4C;IAC5C,uCAA4C;IAC5C,uCAA4C;IAC5C,yCAA8C;IAC9C,uCAA4C;IAC5C,yCAA8C;IAC9C,yCAA8C;IAC9C,yCAA8C;IAC9C,uCAA4C;IAC5C,uCAA4C;IAC5C,iDAAsD;IACtD,yCAA8C;IAC9C,6CAAkD;IAClD,iDAAsD;IACtD,6CAAkD;IAClD,iDAAsD;IACtD,iDAAsD;IACtD,yCAA8C;IAC9C,6CAAkD;IAClD,uCAA4C;IAC5C,yCAA8C;IAC9C,iDAAsD;IACtD,2CAAgD;IAChD,uCAA4C;IAC5C,yCAA8C;IAC9C,iDAAsD;IACtD,6CAAkD;IAClD,2CAAgD;IAChD,6CAAkD;IAClD,iDAAsD;IACtD,qDAA0D;IAC1D,yCAA8C;IAC9C,yCAA8C;IAC9C,yCAA8C;IAC9C,2CAAgD;IAChD,2CAAgD;IAChD,2CAAgD;IAChD,6CAAkD;IAClD,+CAAoD;IACpD,iDAAsD;IACtD,yCAA8C;IAC9C,yCAA8C;IAC9C,yCAA8C;IAC9C,2CAAgD;IAChD,+CAAoD;IACpD,yCAA8C;IAC9C,yCAA8C;IAEjC,QAAA,SAAS,GAAG;QACvB,GAAG,EAAE,iBAAW;QAChB,GAAG,EAAE,iBAAW;QAChB,MAAM,EAAE,uBAAc;QACtB,GAAG,EAAE,iBAAW;QAChB,KAAK,EAAE,qBAAa;QACpB,MAAM,EAAE,uBAAc;QACtB,QAAQ,EAAE,2BAAgB;QAC1B,GAAG,EAAE,qBAAa;QAClB,KAAK,EAAE,qBAAa;QACpB,IAAI,EAAE,mBAAY;QAClB,GAAG,EAAE,iBAAW;QAChB,KAAK,EAAE,qBAAa;QACpB,GAAG,EAAE,iBAAW;QAChB,GAAG,EAAE,iBAAW;QAChB,OAAO,EAAE,yBAAe;QACxB,KAAK,EAAE,qBAAa;QACpB,MAAM,EAAE,uBAAc;QACtB,OAAO,EAAE,yBAAe;QACxB,OAAO,EAAE,yBAAe;QACxB,MAAM,EAAE,uBAAc;QACtB,WAAW,EAAE,iCAAmB;QAChC,EAAE,EAAE,eAAU;QACd,EAAE,EAAE,eAAU;QACd,EAAE,EAAE,eAAU;QACd,GAAG,EAAE,iBAAW;QAChB,EAAE,EAAE,eAAU;QACd,GAAG,EAAE,iBAAW;QAChB,GAAG,EAAE,iBAAW;QAChB,EAAE,EAAE,eAAU;QACd,KAAK,EAAE,qBAAa;QACpB,SAAS,EAAE,6BAAiB;QAC5B,OAAO,EAAE,yBAAe;QACxB,EAAE,EAAE,eAAU;QACd,OAAO,EAAE,yBAAe;QACxB,GAAG,EAAE,iBAAW;QAChB,OAAO,EAAE,yBAAe;QACxB,OAAO,EAAE,yBAAe;QACxB,GAAG,EAAE,iBAAW;QAChB,GAAG,EAAE,iBAAW;QAChB,GAAG,EAAE,iBAAW;QAChB,IAAI,EAAE,mBAAY;QAClB,GAAG,EAAE,iBAAW;QAChB,KAAK,EAAE,qBAAa;QACpB,EAAE,EAAE,eAAU;QACd,GAAG,EAAE,iBAAW;QAChB,EAAE,EAAE,eAAU;QACd,OAAO,EAAE,yBAAe;QACxB,GAAG,EAAE,iBAAW;QAChB,GAAG,EAAE,iBAAW;QAChB,GAAG,EAAE,iBAAW;QAChB,IAAI,EAAE,mBAAY;QAClB,IAAI,EAAE,mBAAY;QAClB,IAAI,EAAE,mBAAY;QAClB,KAAK,EAAE,qBAAa;QACpB,GAAG,EAAE,iBAAW;QAChB,IAAI,EAAE,mBAAY;KACnB,CAAC"}
|
package/dist/formula/solver.js
CHANGED
|
@@ -1,64 +1,79 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const SOLVING = new Special("solving");
|
|
6
|
-
export const solveFormula = ({ value, table, raise = true, }) => {
|
|
7
|
-
var _a;
|
|
8
|
-
let solved = value;
|
|
9
|
-
if (typeof value === "string") {
|
|
10
|
-
if (value.charAt(0) === "=") {
|
|
11
|
-
try {
|
|
12
|
-
const lexer = new Lexer(value.substring(1));
|
|
13
|
-
lexer.tokenize();
|
|
14
|
-
const parser = new Parser(lexer.tokens);
|
|
15
|
-
const expr = parser.build();
|
|
16
|
-
solved = (_a = expr === null || expr === void 0 ? void 0 : expr.evaluate) === null || _a === void 0 ? void 0 : _a.call(expr, { table });
|
|
17
|
-
}
|
|
18
|
-
catch (e) {
|
|
19
|
-
if (raise) {
|
|
20
|
-
throw e;
|
|
21
|
-
}
|
|
22
|
-
return null;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
1
|
+
(function (factory) {
|
|
2
|
+
if (typeof module === "object" && typeof module.exports === "object") {
|
|
3
|
+
var v = factory(require, exports);
|
|
4
|
+
if (v !== undefined) module.exports = v;
|
|
25
5
|
}
|
|
26
|
-
if (
|
|
27
|
-
|
|
6
|
+
else if (typeof define === "function" && define.amd) {
|
|
7
|
+
define(["require", "exports", "../constants", "../lib/table", "./evaluator", "../lib/converters"], factory);
|
|
28
8
|
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
9
|
+
})(function (require, exports) {
|
|
10
|
+
"use strict";
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.solveTable = exports.solveFormula = void 0;
|
|
13
|
+
const constants_1 = require("../constants");
|
|
14
|
+
const table_1 = require("../lib/table");
|
|
15
|
+
const evaluator_1 = require("./evaluator");
|
|
16
|
+
const converters_1 = require("../lib/converters");
|
|
17
|
+
const SOLVING = new constants_1.Special("solving");
|
|
18
|
+
const solveFormula = ({ value, table, raise = true, }) => {
|
|
19
|
+
var _a;
|
|
20
|
+
let solved = value;
|
|
21
|
+
if (typeof value === "string") {
|
|
22
|
+
if (value.charAt(0) === "=") {
|
|
23
|
+
try {
|
|
24
|
+
const lexer = new evaluator_1.Lexer(value.substring(1));
|
|
25
|
+
lexer.tokenize();
|
|
26
|
+
const parser = new evaluator_1.Parser(lexer.tokens);
|
|
27
|
+
const expr = parser.build();
|
|
28
|
+
solved = (_a = expr === null || expr === void 0 ? void 0 : expr.evaluate) === null || _a === void 0 ? void 0 : _a.call(expr, { table });
|
|
45
29
|
}
|
|
46
|
-
|
|
47
|
-
|
|
30
|
+
catch (e) {
|
|
31
|
+
if (raise) {
|
|
32
|
+
throw e;
|
|
33
|
+
}
|
|
34
|
+
return null;
|
|
48
35
|
}
|
|
49
|
-
table.setSolvedCache(address, SOLVING);
|
|
50
|
-
const solved = solveFormula({ value, table, raise });
|
|
51
|
-
table.setSolvedCache(address, solved);
|
|
52
|
-
return solved;
|
|
53
36
|
}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
37
|
+
}
|
|
38
|
+
if (solved instanceof table_1.Table) {
|
|
39
|
+
solved = (0, exports.solveTable)({ table: solved, raise })[0][0];
|
|
40
|
+
}
|
|
41
|
+
return solved;
|
|
42
|
+
};
|
|
43
|
+
exports.solveFormula = solveFormula;
|
|
44
|
+
const solveTable = ({ table, raise = true, }) => {
|
|
45
|
+
const area = table.getArea();
|
|
46
|
+
return table.getMatrixFlatten({ area, evaluates: false }).map((row, i) => {
|
|
47
|
+
const y = area.top + i;
|
|
48
|
+
return row.map((value, j) => {
|
|
49
|
+
const x = area.left + j;
|
|
50
|
+
const address = (0, converters_1.p2a)({ y, x });
|
|
51
|
+
const cache = table.getSolvedCache(address);
|
|
52
|
+
try {
|
|
53
|
+
if (cache === SOLVING) {
|
|
54
|
+
throw new evaluator_1.FormulaError("#RFF!", "References are circulating.", new Error(value));
|
|
55
|
+
}
|
|
56
|
+
else if (cache instanceof evaluator_1.FormulaError) {
|
|
57
|
+
throw cache;
|
|
58
|
+
}
|
|
59
|
+
else if (cache != null) {
|
|
60
|
+
return cache;
|
|
61
|
+
}
|
|
62
|
+
table.setSolvedCache(address, SOLVING);
|
|
63
|
+
const solved = (0, exports.solveFormula)({ value, table, raise });
|
|
64
|
+
table.setSolvedCache(address, solved);
|
|
65
|
+
return solved;
|
|
58
66
|
}
|
|
59
|
-
|
|
60
|
-
|
|
67
|
+
catch (e) {
|
|
68
|
+
table.setSolvedCache(address, e);
|
|
69
|
+
if (raise) {
|
|
70
|
+
throw e;
|
|
71
|
+
}
|
|
72
|
+
return null;
|
|
73
|
+
}
|
|
74
|
+
});
|
|
61
75
|
});
|
|
62
|
-
}
|
|
63
|
-
|
|
76
|
+
};
|
|
77
|
+
exports.solveTable = solveTable;
|
|
78
|
+
});
|
|
64
79
|
//# sourceMappingURL=solver.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"solver.js","sourceRoot":"","sources":["../../src/formula/solver.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"solver.js","sourceRoot":"","sources":["../../src/formula/solver.ts"],"names":[],"mappings":"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"}
|