@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,27 +1,41 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
constructor() {
|
|
6
|
-
super(...arguments);
|
|
7
|
-
this.example = "LTE(3, 6)";
|
|
8
|
-
this.helpText = [
|
|
9
|
-
"Returns TRUE if the first argument is less than the second argument, FALSE otherwise.",
|
|
10
|
-
"This is the same as the '<=' operator.",
|
|
11
|
-
];
|
|
12
|
-
this.helpArgs = [
|
|
13
|
-
{ name: "value1", description: "First value." },
|
|
14
|
-
{ name: "value2", description: "A value to be compared with value1." },
|
|
15
|
-
];
|
|
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;
|
|
16
5
|
}
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
throw new FormulaError("#N/A", "Number of arguments for LTE is incorrect.");
|
|
20
|
-
}
|
|
21
|
-
this.bareArgs = this.bareArgs.map((arg) => ensureNumber(arg));
|
|
6
|
+
else if (typeof define === "function" && define.amd) {
|
|
7
|
+
define(["require", "exports", "../evaluator", "./__base", "./__utils"], factory);
|
|
22
8
|
}
|
|
23
|
-
|
|
24
|
-
|
|
9
|
+
})(function (require, exports) {
|
|
10
|
+
"use strict";
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.LteFunction = void 0;
|
|
13
|
+
const evaluator_1 = require("../evaluator");
|
|
14
|
+
const __base_1 = require("./__base");
|
|
15
|
+
const __utils_1 = require("./__utils");
|
|
16
|
+
class LteFunction extends __base_1.BaseFunction {
|
|
17
|
+
constructor() {
|
|
18
|
+
super(...arguments);
|
|
19
|
+
this.example = "LTE(3, 6)";
|
|
20
|
+
this.helpText = [
|
|
21
|
+
"Returns TRUE if the first argument is less than the second argument, FALSE otherwise.",
|
|
22
|
+
"This is the same as the '<=' operator.",
|
|
23
|
+
];
|
|
24
|
+
this.helpArgs = [
|
|
25
|
+
{ name: "value1", description: "First value." },
|
|
26
|
+
{ name: "value2", description: "A value to be compared with value1." },
|
|
27
|
+
];
|
|
28
|
+
}
|
|
29
|
+
validate() {
|
|
30
|
+
if (this.bareArgs.length !== 2) {
|
|
31
|
+
throw new evaluator_1.FormulaError("#N/A", "Number of arguments for LTE is incorrect.");
|
|
32
|
+
}
|
|
33
|
+
this.bareArgs = this.bareArgs.map((arg) => (0, __utils_1.ensureNumber)(arg));
|
|
34
|
+
}
|
|
35
|
+
main(v1, v2) {
|
|
36
|
+
return v1 <= v2;
|
|
37
|
+
}
|
|
25
38
|
}
|
|
26
|
-
|
|
39
|
+
exports.LteFunction = LteFunction;
|
|
40
|
+
});
|
|
27
41
|
//# sourceMappingURL=lte.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lte.js","sourceRoot":"","sources":["../../../src/formula/functions/lte.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"lte.js","sourceRoot":"","sources":["../../../src/formula/functions/lte.ts"],"names":[],"mappings":";;;;;;;;;;;;IAAA,4CAA4C;IAC5C,qCAAwC;IACxC,uCAAyC;IAEzC,MAAa,WAAY,SAAQ,qBAAY;QAA7C;;YACE,YAAO,GAAG,WAAW,CAAC;YACtB,aAAQ,GAAG;gBACT,uFAAuF;gBACvF,wCAAwC;aACzC,CAAC;YACF,aAAQ,GAAG;gBACT,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE;gBAC/C,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qCAAqC,EAAE;aACvE,CAAC;QAeJ,CAAC;QAbW,QAAQ;YAChB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC9B,MAAM,IAAI,wBAAY,CACpB,MAAM,EACN,2CAA2C,CAC5C,CAAC;aACH;YACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAA,sBAAY,EAAC,GAAG,CAAC,CAAC,CAAC;QAChE,CAAC;QAES,IAAI,CAAC,EAAU,EAAE,EAAU;YACnC,OAAO,EAAE,IAAI,EAAE,CAAC;QAClB,CAAC;KACF;IAxBD,kCAwBC"}
|
|
@@ -1,44 +1,58 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
import { ensureNumber } from "./__utils";
|
|
6
|
-
export class MaxFunction extends BaseFunction {
|
|
7
|
-
constructor() {
|
|
8
|
-
super(...arguments);
|
|
9
|
-
this.example = "MAX(A2:A100, 101)";
|
|
10
|
-
this.helpText = ["Returns the max in a series of numbers or cells."];
|
|
11
|
-
this.helpArgs = [
|
|
12
|
-
{ name: "value1", description: "First number or range." },
|
|
13
|
-
{
|
|
14
|
-
name: "value2",
|
|
15
|
-
description: "Additional numbers or ranges",
|
|
16
|
-
optional: true,
|
|
17
|
-
iterable: true,
|
|
18
|
-
},
|
|
19
|
-
];
|
|
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;
|
|
20
5
|
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
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.MaxFunction = 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 MaxFunction extends __base_1.BaseFunction {
|
|
19
|
+
constructor() {
|
|
20
|
+
super(...arguments);
|
|
21
|
+
this.example = "MAX(A2:A100, 101)";
|
|
22
|
+
this.helpText = ["Returns the max in a series of numbers or cells."];
|
|
23
|
+
this.helpArgs = [
|
|
24
|
+
{ name: "value1", description: "First number or range." },
|
|
25
|
+
{
|
|
26
|
+
name: "value2",
|
|
27
|
+
description: "Additional numbers or ranges",
|
|
28
|
+
optional: true,
|
|
29
|
+
iterable: true,
|
|
30
|
+
},
|
|
31
|
+
];
|
|
24
32
|
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
spreaded.push(...solveTable({ table: arg })
|
|
29
|
-
.reduce((a, b) => a.concat(b))
|
|
30
|
-
.filter((v) => typeof v === "number"));
|
|
31
|
-
return;
|
|
33
|
+
validate() {
|
|
34
|
+
if (this.bareArgs.length === 0) {
|
|
35
|
+
throw new evaluator_1.FormulaError("#N/A", "Number of arguments must be greater than 0.");
|
|
32
36
|
}
|
|
33
|
-
spreaded
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
37
|
+
const spreaded = [];
|
|
38
|
+
this.bareArgs.map((arg) => {
|
|
39
|
+
if (arg instanceof table_1.Table) {
|
|
40
|
+
spreaded.push(...(0, solver_1.solveTable)({ table: arg })
|
|
41
|
+
.reduce((a, b) => a.concat(b))
|
|
42
|
+
.filter((v) => typeof v === "number"));
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
spreaded.push((0, __utils_1.ensureNumber)(arg));
|
|
46
|
+
});
|
|
47
|
+
this.bareArgs = spreaded;
|
|
48
|
+
}
|
|
49
|
+
main(...values) {
|
|
50
|
+
if (values.length === 0) {
|
|
51
|
+
return 0;
|
|
52
|
+
}
|
|
53
|
+
return Math.max(...values);
|
|
40
54
|
}
|
|
41
|
-
return Math.max(...values);
|
|
42
55
|
}
|
|
43
|
-
|
|
56
|
+
exports.MaxFunction = MaxFunction;
|
|
57
|
+
});
|
|
44
58
|
//# sourceMappingURL=max.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"max.js","sourceRoot":"","sources":["../../../src/formula/functions/max.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"max.js","sourceRoot":"","sources":["../../../src/formula/functions/max.ts"],"names":[],"mappings":";;;;;;;;;;;;IAAA,4CAA4C;IAC5C,sCAAuC;IACvC,2CAAwC;IACxC,qCAAwC;IACxC,uCAAyC;IAEzC,MAAa,WAAY,SAAQ,qBAAY;QAA7C;;YACE,YAAO,GAAG,mBAAmB,CAAC;YAC9B,aAAQ,GAAG,CAAC,kDAAkD,CAAC,CAAC;YAChE,aAAQ,GAAG;gBACT,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wBAAwB,EAAE;gBACzD;oBACE,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,8BAA8B;oBAC3C,QAAQ,EAAE,IAAI;oBACd,QAAQ,EAAE,IAAI;iBACf;aACF,CAAC;QA8BJ,CAAC;QA5BW,QAAQ;YAChB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC9B,MAAM,IAAI,wBAAY,CACpB,MAAM,EACN,6CAA6C,CAC9C,CAAC;aACH;YACD,MAAM,QAAQ,GAAa,EAAE,CAAC;YAC9B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;gBACxB,IAAI,GAAG,YAAY,aAAK,EAAE;oBACxB,QAAQ,CAAC,IAAI,CACX,GAAG,IAAA,mBAAU,EAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;yBAC1B,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;yBAC7B,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAC7C,CAAC;oBACF,OAAO;iBACR;gBACD,QAAQ,CAAC,IAAI,CAAC,IAAA,sBAAY,EAAC,GAAG,CAAC,CAAC,CAAC;YACnC,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC3B,CAAC;QAES,IAAI,CAAC,GAAG,MAAgB;YAChC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;gBACvB,OAAO,CAAC,CAAC;aACV;YACD,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;QAC7B,CAAC;KACF;IAzCD,kCAyCC"}
|
|
@@ -1,44 +1,58 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
import { ensureNumber } from "./__utils";
|
|
6
|
-
export class MinFunction extends BaseFunction {
|
|
7
|
-
constructor() {
|
|
8
|
-
super(...arguments);
|
|
9
|
-
this.example = "MIN(A2:A100, 101)";
|
|
10
|
-
this.helpText = ["Returns the min in a series of numbers or cells."];
|
|
11
|
-
this.helpArgs = [
|
|
12
|
-
{ name: "value1", description: "First number or range." },
|
|
13
|
-
{
|
|
14
|
-
name: "value2",
|
|
15
|
-
description: "Additional numbers or ranges",
|
|
16
|
-
optional: true,
|
|
17
|
-
iterable: true,
|
|
18
|
-
},
|
|
19
|
-
];
|
|
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;
|
|
20
5
|
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
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.MinFunction = 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 MinFunction extends __base_1.BaseFunction {
|
|
19
|
+
constructor() {
|
|
20
|
+
super(...arguments);
|
|
21
|
+
this.example = "MIN(A2:A100, 101)";
|
|
22
|
+
this.helpText = ["Returns the min in a series of numbers or cells."];
|
|
23
|
+
this.helpArgs = [
|
|
24
|
+
{ name: "value1", description: "First number or range." },
|
|
25
|
+
{
|
|
26
|
+
name: "value2",
|
|
27
|
+
description: "Additional numbers or ranges",
|
|
28
|
+
optional: true,
|
|
29
|
+
iterable: true,
|
|
30
|
+
},
|
|
31
|
+
];
|
|
24
32
|
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
spreaded.push(...solveTable({ table: arg })
|
|
29
|
-
.reduce((a, b) => a.concat(b))
|
|
30
|
-
.filter((v) => typeof v === "number"));
|
|
31
|
-
return;
|
|
33
|
+
validate() {
|
|
34
|
+
if (this.bareArgs.length === 0) {
|
|
35
|
+
throw new evaluator_1.FormulaError("#N/A", "Number of arguments must be greater than 0.");
|
|
32
36
|
}
|
|
33
|
-
spreaded
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
37
|
+
const spreaded = [];
|
|
38
|
+
this.bareArgs.map((arg) => {
|
|
39
|
+
if (arg instanceof table_1.Table) {
|
|
40
|
+
spreaded.push(...(0, solver_1.solveTable)({ table: arg })
|
|
41
|
+
.reduce((a, b) => a.concat(b))
|
|
42
|
+
.filter((v) => typeof v === "number"));
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
spreaded.push((0, __utils_1.ensureNumber)(arg));
|
|
46
|
+
});
|
|
47
|
+
this.bareArgs = spreaded;
|
|
48
|
+
}
|
|
49
|
+
main(...values) {
|
|
50
|
+
if (values.length === 0) {
|
|
51
|
+
return 0;
|
|
52
|
+
}
|
|
53
|
+
return Math.min(...values);
|
|
40
54
|
}
|
|
41
|
-
return Math.min(...values);
|
|
42
55
|
}
|
|
43
|
-
|
|
56
|
+
exports.MinFunction = MinFunction;
|
|
57
|
+
});
|
|
44
58
|
//# sourceMappingURL=min.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"min.js","sourceRoot":"","sources":["../../../src/formula/functions/min.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"min.js","sourceRoot":"","sources":["../../../src/formula/functions/min.ts"],"names":[],"mappings":";;;;;;;;;;;;IAAA,4CAA4C;IAC5C,sCAAuC;IACvC,2CAAwC;IACxC,qCAAwC;IACxC,uCAAyC;IAEzC,MAAa,WAAY,SAAQ,qBAAY;QAA7C;;YACE,YAAO,GAAG,mBAAmB,CAAC;YAC9B,aAAQ,GAAG,CAAC,kDAAkD,CAAC,CAAC;YAChE,aAAQ,GAAG;gBACT,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wBAAwB,EAAE;gBACzD;oBACE,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,8BAA8B;oBAC3C,QAAQ,EAAE,IAAI;oBACd,QAAQ,EAAE,IAAI;iBACf;aACF,CAAC;QA8BJ,CAAC;QA5BW,QAAQ;YAChB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC9B,MAAM,IAAI,wBAAY,CACpB,MAAM,EACN,6CAA6C,CAC9C,CAAC;aACH;YACD,MAAM,QAAQ,GAAa,EAAE,CAAC;YAC9B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;gBACxB,IAAI,GAAG,YAAY,aAAK,EAAE;oBACxB,QAAQ,CAAC,IAAI,CACX,GAAG,IAAA,mBAAU,EAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;yBAC1B,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;yBAC7B,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAC7C,CAAC;oBACF,OAAO;iBACR;gBACD,QAAQ,CAAC,IAAI,CAAC,IAAA,sBAAY,EAAC,GAAG,CAAC,CAAC,CAAC;YACnC,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC3B,CAAC;QAES,IAAI,CAAC,GAAG,MAAgB;YAChC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;gBACvB,OAAO,CAAC,CAAC;aACV;YACD,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;QAC7B,CAAC;KACF;IAzCD,kCAyCC"}
|
|
@@ -1,50 +1,64 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
import { ensureNumber, stripTable } from "./__utils";
|
|
6
|
-
import { Table } from "../../lib/table";
|
|
7
|
-
export class MinusFunction extends BaseFunction {
|
|
8
|
-
constructor() {
|
|
9
|
-
super(...arguments);
|
|
10
|
-
this.example = "MINUS(8, 3)";
|
|
11
|
-
this.helpText = [
|
|
12
|
-
"Returns the difference of two numbers.",
|
|
13
|
-
"This is the same as the '-' operator.",
|
|
14
|
-
];
|
|
15
|
-
this.helpArgs = [
|
|
16
|
-
{ name: "value1", description: "A number that will be subtracted." },
|
|
17
|
-
{ name: "value2", description: "A number that will subtract from value1." },
|
|
18
|
-
];
|
|
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;
|
|
19
5
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
throw new FormulaError("#N/A", "Number of arguments for MINUS is incorrect.");
|
|
23
|
-
}
|
|
24
|
-
this.bareArgs = this.bareArgs.map((arg) => {
|
|
25
|
-
if (arg instanceof Table) {
|
|
26
|
-
arg = stripTable(arg, 0, 0);
|
|
27
|
-
}
|
|
28
|
-
return typeof arg === "object" ? arg : ensureNumber(arg);
|
|
29
|
-
});
|
|
6
|
+
else if (typeof define === "function" && define.amd) {
|
|
7
|
+
define(["require", "exports", "date-fns", "../evaluator", "../../lib/time", "./__base", "./__utils", "../../lib/table"], factory);
|
|
30
8
|
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
9
|
+
})(function (require, exports) {
|
|
10
|
+
"use strict";
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.MinusFunction = void 0;
|
|
13
|
+
const date_fns_1 = require("date-fns");
|
|
14
|
+
const evaluator_1 = require("../evaluator");
|
|
15
|
+
const time_1 = require("../../lib/time");
|
|
16
|
+
const __base_1 = require("./__base");
|
|
17
|
+
const __utils_1 = require("./__utils");
|
|
18
|
+
const table_1 = require("../../lib/table");
|
|
19
|
+
class MinusFunction extends __base_1.BaseFunction {
|
|
20
|
+
constructor() {
|
|
21
|
+
super(...arguments);
|
|
22
|
+
this.example = "MINUS(8, 3)";
|
|
23
|
+
this.helpText = [
|
|
24
|
+
"Returns the difference of two numbers.",
|
|
25
|
+
"This is the same as the '-' operator.",
|
|
26
|
+
];
|
|
27
|
+
this.helpArgs = [
|
|
28
|
+
{ name: "value1", description: "A number that will be subtracted." },
|
|
29
|
+
{ name: "value2", description: "A number that will subtract from value1." },
|
|
30
|
+
];
|
|
37
31
|
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
32
|
+
validate() {
|
|
33
|
+
if (this.bareArgs.length !== 2) {
|
|
34
|
+
throw new evaluator_1.FormulaError("#N/A", "Number of arguments for MINUS is incorrect.");
|
|
35
|
+
}
|
|
36
|
+
this.bareArgs = this.bareArgs.map((arg) => {
|
|
37
|
+
if (arg instanceof table_1.Table) {
|
|
38
|
+
arg = (0, __utils_1.stripTable)(arg, 0, 0);
|
|
39
|
+
}
|
|
40
|
+
return typeof arg === "object" ? arg : (0, __utils_1.ensureNumber)(arg);
|
|
41
|
+
});
|
|
43
42
|
}
|
|
44
|
-
|
|
45
|
-
|
|
43
|
+
main(v1, v2) {
|
|
44
|
+
if (typeof v1 === "number" && typeof v2 === "number") {
|
|
45
|
+
return v1 - v2;
|
|
46
|
+
}
|
|
47
|
+
if (v1 instanceof Date && v2 instanceof Date) {
|
|
48
|
+
return new time_1.TimeDelta(v1, v2);
|
|
49
|
+
}
|
|
50
|
+
if (v1 instanceof Date && v2 instanceof time_1.TimeDelta) {
|
|
51
|
+
return v2.sub(v1);
|
|
52
|
+
}
|
|
53
|
+
if (v1 instanceof time_1.TimeDelta && v2 instanceof Date) {
|
|
54
|
+
return v1.sub(v2);
|
|
55
|
+
}
|
|
56
|
+
if (v1 instanceof Date && typeof v2 === "number") {
|
|
57
|
+
return (0, date_fns_1.subSeconds)(v1, v2);
|
|
58
|
+
}
|
|
59
|
+
throw new evaluator_1.FormulaError("#VALUE!", "Mismatched types for minuend and subtrahend.");
|
|
46
60
|
}
|
|
47
|
-
throw new FormulaError("#VALUE!", "Mismatched types for minuend and subtrahend.");
|
|
48
61
|
}
|
|
49
|
-
|
|
62
|
+
exports.MinusFunction = MinusFunction;
|
|
63
|
+
});
|
|
50
64
|
//# sourceMappingURL=minus.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"minus.js","sourceRoot":"","sources":["../../../src/formula/functions/minus.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"minus.js","sourceRoot":"","sources":["../../../src/formula/functions/minus.ts"],"names":[],"mappings":";;;;;;;;;;;;IAAA,uCAEkB;IAElB,4CAA4C;IAC5C,yCAA2C;IAC3C,qCAAwC;IACxC,uCAAmD;IACnD,2CAAsC;IAEtC,MAAa,aAAc,SAAQ,qBAAY;QAA/C;;YACE,YAAO,GAAG,aAAa,CAAC;YACxB,aAAQ,GAAG;gBACT,wCAAwC;gBACxC,uCAAuC;aACxC,CAAC;YACF,aAAQ,GAAG;gBACT,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,mCAAmC,EAAE;gBACpE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,0CAA0C,EAAE;aAC5E,CAAC;QAsCJ,CAAC;QApCW,QAAQ;YAChB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC9B,MAAM,IAAI,wBAAY,CACpB,MAAM,EACN,6CAA6C,CAC9C,CAAC;aACH;YACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;gBACxC,IAAI,GAAG,YAAY,aAAK,EAAE;oBACxB,GAAG,GAAG,IAAA,oBAAU,EAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;iBAC7B;gBACD,OAAO,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAA,sBAAY,EAAC,GAAG,CAAC,CAAC;YAC3D,CAAC,CAAC,CAAC;QACL,CAAC;QAES,IAAI,CAAC,EAA6B,EAAE,EAA6B;YACzE,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE;gBACpD,OAAO,EAAE,GAAG,EAAE,CAAC;aAChB;YACD,IAAI,EAAE,YAAY,IAAI,IAAI,EAAE,YAAY,IAAI,EAAE;gBAC5C,OAAO,IAAI,gBAAS,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;aAC9B;YACD,IAAI,EAAE,YAAY,IAAI,IAAI,EAAE,YAAY,gBAAS,EAAE;gBACjD,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;aACnB;YACD,IAAI,EAAE,YAAY,gBAAS,IAAI,EAAE,YAAY,IAAI,EAAE;gBACjD,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;aACnB;YACD,IAAI,EAAE,YAAY,IAAI,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE;gBAChD,OAAO,IAAA,qBAAU,EAAC,EAAE,EAAE,EAAE,CAAC,CAAC;aAC3B;YACD,MAAM,IAAI,wBAAY,CACpB,SAAS,EACT,8CAA8C,CAC/C,CAAC;QACJ,CAAC;KACF;IA/CD,sCA+CC"}
|
|
@@ -1,31 +1,45 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
constructor() {
|
|
6
|
-
super(...arguments);
|
|
7
|
-
this.example = "MOD(10, 4)";
|
|
8
|
-
this.helpText = ["Returns the result of the modulo operation."];
|
|
9
|
-
this.helpArgs = [
|
|
10
|
-
{
|
|
11
|
-
name: "dividend",
|
|
12
|
-
description: "A number that will be divided by divisor.",
|
|
13
|
-
},
|
|
14
|
-
{ name: "divisor", description: "A number that will divide a dividend." },
|
|
15
|
-
];
|
|
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;
|
|
16
5
|
}
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
6
|
+
else if (typeof define === "function" && define.amd) {
|
|
7
|
+
define(["require", "exports", "../evaluator", "./__base", "./__utils"], factory);
|
|
8
|
+
}
|
|
9
|
+
})(function (require, exports) {
|
|
10
|
+
"use strict";
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.ModFunction = void 0;
|
|
13
|
+
const evaluator_1 = require("../evaluator");
|
|
14
|
+
const __base_1 = require("./__base");
|
|
15
|
+
const __utils_1 = require("./__utils");
|
|
16
|
+
class ModFunction extends __base_1.BaseFunction {
|
|
17
|
+
constructor() {
|
|
18
|
+
super(...arguments);
|
|
19
|
+
this.example = "MOD(10, 4)";
|
|
20
|
+
this.helpText = ["Returns the result of the modulo operation."];
|
|
21
|
+
this.helpArgs = [
|
|
22
|
+
{
|
|
23
|
+
name: "dividend",
|
|
24
|
+
description: "A number that will be divided by divisor.",
|
|
25
|
+
},
|
|
26
|
+
{ name: "divisor", description: "A number that will divide a dividend." },
|
|
27
|
+
];
|
|
20
28
|
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
29
|
+
validate() {
|
|
30
|
+
if (this.bareArgs.length !== 2) {
|
|
31
|
+
throw new evaluator_1.FormulaError("#N/A", "Number of arguments for MOD is incorrect.");
|
|
32
|
+
}
|
|
33
|
+
this.bareArgs = this.bareArgs.map((arg) => (0, __utils_1.ensureNumber)(arg));
|
|
34
|
+
if (this.bareArgs[1] === 0) {
|
|
35
|
+
throw new evaluator_1.FormulaError("#DIV/0!", "The second argument must be non-zero.");
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
main(v1, v2) {
|
|
39
|
+
// https://stackoverflow.com/questions/4467539/javascript-modulo-gives-a-negative-result-for-negative-numbers
|
|
40
|
+
return ((v1 % v2) + v2) % v2;
|
|
24
41
|
}
|
|
25
42
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
return ((v1 % v2) + v2) % v2;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
43
|
+
exports.ModFunction = ModFunction;
|
|
44
|
+
});
|
|
31
45
|
//# sourceMappingURL=mod.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mod.js","sourceRoot":"","sources":["../../../src/formula/functions/mod.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mod.js","sourceRoot":"","sources":["../../../src/formula/functions/mod.ts"],"names":[],"mappings":";;;;;;;;;;;;IAAA,4CAA4C;IAC5C,qCAAwC;IACxC,uCAAyC;IAEzC,MAAa,WAAY,SAAQ,qBAAY;QAA7C;;YACE,YAAO,GAAG,YAAY,CAAC;YACvB,aAAQ,GAAG,CAAC,6CAA6C,CAAC,CAAC;YAC3D,aAAQ,GAAG;gBACT;oBACE,IAAI,EAAE,UAAU;oBAChB,WAAW,EAAE,2CAA2C;iBACzD;gBACD,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,uCAAuC,EAAE;aAC1E,CAAC;QAsBJ,CAAC;QApBW,QAAQ;YAChB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC9B,MAAM,IAAI,wBAAY,CACpB,MAAM,EACN,2CAA2C,CAC5C,CAAC;aACH;YACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAA,sBAAY,EAAC,GAAG,CAAC,CAAC,CAAC;YAC9D,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;gBAC1B,MAAM,IAAI,wBAAY,CACpB,SAAS,EACT,uCAAuC,CACxC,CAAC;aACH;QACH,CAAC;QAES,IAAI,CAAC,EAAU,EAAE,EAAU;YACnC,6GAA6G;YAC7G,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;QAC/B,CAAC;KACF;IA/BD,kCA+BC"}
|
|
@@ -1,51 +1,63 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
}
|
|
19
|
-
{
|
|
20
|
-
const f = new ModFunction({ table, args: [new Value(-5), new Value(4)] });
|
|
21
|
-
expect(f.call()).toBe(3);
|
|
22
|
-
}
|
|
23
|
-
});
|
|
24
|
-
it('divided by negative value', () => {
|
|
25
|
-
{
|
|
26
|
-
const f = new ModFunction({ table, args: [new Value(10), new Ref('A2')] });
|
|
27
|
-
expect(f.call()).toBe(-2);
|
|
28
|
-
}
|
|
29
|
-
{
|
|
30
|
-
const f = new ModFunction({ table, args: [new Value(-10), new Ref('A2')] });
|
|
31
|
-
expect(f.call()).toBe(-1);
|
|
32
|
-
}
|
|
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", "./mod", "../../lib/table", "../evaluator"], factory);
|
|
8
|
+
}
|
|
9
|
+
})(function (require, exports) {
|
|
10
|
+
"use strict";
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
const mod_1 = require("./mod");
|
|
13
|
+
const table_1 = require("../../lib/table");
|
|
14
|
+
const evaluator_1 = require("../evaluator");
|
|
15
|
+
describe('mod', () => {
|
|
16
|
+
const table = new table_1.Table({
|
|
17
|
+
numRows: 2, numCols: 2,
|
|
18
|
+
cells: { A1: { value: 5 }, A2: { value: -3 }, B2: { value: 25 } },
|
|
33
19
|
});
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
20
|
+
describe('normal', () => {
|
|
21
|
+
it('divided by positive value', () => {
|
|
22
|
+
{
|
|
23
|
+
const f = new mod_1.ModFunction({ table, args: [new evaluator_1.Ref("B2"), new evaluator_1.Value(5)] });
|
|
24
|
+
expect(f.call()).toBe(0);
|
|
25
|
+
}
|
|
26
|
+
{
|
|
27
|
+
const f = new mod_1.ModFunction({ table, args: [new evaluator_1.Value(12), new evaluator_1.Ref("A1")] });
|
|
28
|
+
expect(f.call()).toBe(2);
|
|
29
|
+
}
|
|
30
|
+
{
|
|
31
|
+
const f = new mod_1.ModFunction({ table, args: [new evaluator_1.Value(-5), new evaluator_1.Value(4)] });
|
|
32
|
+
expect(f.call()).toBe(3);
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
it('divided by negative value', () => {
|
|
36
|
+
{
|
|
37
|
+
const f = new mod_1.ModFunction({ table, args: [new evaluator_1.Value(10), new evaluator_1.Ref('A2')] });
|
|
38
|
+
expect(f.call()).toBe(-2);
|
|
39
|
+
}
|
|
40
|
+
{
|
|
41
|
+
const f = new mod_1.ModFunction({ table, args: [new evaluator_1.Value(-10), new evaluator_1.Ref('A2')] });
|
|
42
|
+
expect(f.call()).toBe(-1);
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
45
|
});
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
46
|
+
describe('validation error', () => {
|
|
47
|
+
it('missing argument', () => {
|
|
48
|
+
{
|
|
49
|
+
const f = new mod_1.ModFunction({ table, args: [new evaluator_1.Value(3)] });
|
|
50
|
+
expect(f.call.bind(f)).toThrow(evaluator_1.FormulaError);
|
|
51
|
+
}
|
|
52
|
+
{
|
|
53
|
+
const f = new mod_1.ModFunction({ table, args: [new evaluator_1.Value(3)] });
|
|
54
|
+
expect(f.call.bind(f)).toThrow(evaluator_1.FormulaError);
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
it('division by zero', () => {
|
|
58
|
+
const f = new mod_1.ModFunction({ table, args: [new evaluator_1.Value(5), new evaluator_1.Value(0)] });
|
|
59
|
+
expect(f.call.bind(f)).toThrow(evaluator_1.FormulaError);
|
|
60
|
+
});
|
|
49
61
|
});
|
|
50
62
|
});
|
|
51
63
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mod.spec.js","sourceRoot":"","sources":["../../../src/formula/functions/mod.spec.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mod.spec.js","sourceRoot":"","sources":["../../../src/formula/functions/mod.spec.ts"],"names":[],"mappings":"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"}
|