@rkmodules/rules 0.0.110 → 0.0.112
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/index.cjs.js +176 -25
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +176 -25
- package/dist/index.esm.js.map +1 -1
- package/dist/lib/Engine/types.d.ts +1 -0
- package/dist/lib/Primitives/Group/filterTree.d.ts +2 -0
- package/dist/lib/Primitives/Group/normalizeTree.d.ts +2 -0
- package/dist/lib/Primitives/Group/treeItem.d.ts +2 -0
- package/dist/lib/Primitives/Math/isNumber.d.ts +1 -0
- package/dist/lib/Primitives/Util/getType.d.ts +2 -0
- package/package.json +1 -1
package/dist/index.esm.js
CHANGED
|
@@ -502,6 +502,31 @@ function toArray(a) {
|
|
|
502
502
|
return Object.values(a).flat();
|
|
503
503
|
}
|
|
504
504
|
|
|
505
|
+
var getType = {
|
|
506
|
+
name: "getType",
|
|
507
|
+
label: "Get Type",
|
|
508
|
+
description: "Gets the type of a value as a string",
|
|
509
|
+
inputs: {
|
|
510
|
+
input: { type: "any" },
|
|
511
|
+
},
|
|
512
|
+
outputs: {
|
|
513
|
+
type: "string",
|
|
514
|
+
},
|
|
515
|
+
impl: function (inputs, params) { return __awaiter(void 0, void 0, void 0, function () {
|
|
516
|
+
return __generator(this, function (_a) {
|
|
517
|
+
return [2 /*return*/, {
|
|
518
|
+
type: mapTree(inputs.input, function (x) {
|
|
519
|
+
if (x === undefined)
|
|
520
|
+
return "empty";
|
|
521
|
+
if (x === null)
|
|
522
|
+
return "empty";
|
|
523
|
+
return typeof x;
|
|
524
|
+
}),
|
|
525
|
+
}];
|
|
526
|
+
});
|
|
527
|
+
}); },
|
|
528
|
+
};
|
|
529
|
+
|
|
505
530
|
// utilities
|
|
506
531
|
/**
|
|
507
532
|
* merges two trees by concatenating the branches with the same path
|
|
@@ -736,8 +761,17 @@ var primitives$8 = (_a$8 = {},
|
|
|
736
761
|
_a$8[getValue.name] = getValue,
|
|
737
762
|
_a$8[log.name] = log,
|
|
738
763
|
_a$8[value.name] = value,
|
|
764
|
+
_a$8[getType.name] = getType,
|
|
739
765
|
_a$8);
|
|
740
766
|
|
|
767
|
+
function isNumber() {
|
|
768
|
+
var ns = [];
|
|
769
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
770
|
+
ns[_i] = arguments[_i];
|
|
771
|
+
}
|
|
772
|
+
return ns.every(function (n) { return typeof n === "number" && !isNaN(n); });
|
|
773
|
+
}
|
|
774
|
+
|
|
741
775
|
var add$1 = {
|
|
742
776
|
name: "add",
|
|
743
777
|
label: "Add",
|
|
@@ -753,7 +787,7 @@ var add$1 = {
|
|
|
753
787
|
return __generator(this, function (_a) {
|
|
754
788
|
return [2 /*return*/, {
|
|
755
789
|
sum: binaryOnTree(inputs.a, inputs.b, function (itemA, itemB) {
|
|
756
|
-
if (itemA
|
|
790
|
+
if (!isNumber(itemA, itemB))
|
|
757
791
|
return DISCARD;
|
|
758
792
|
return itemA + itemB;
|
|
759
793
|
}, true),
|
|
@@ -935,7 +969,7 @@ var cosDeg = {
|
|
|
935
969
|
return __generator(this, function (_a) {
|
|
936
970
|
return [2 /*return*/, {
|
|
937
971
|
cos: mapTree(inputs.a, function (angle) {
|
|
938
|
-
if (angle
|
|
972
|
+
if (!isNumber(angle))
|
|
939
973
|
return DISCARD;
|
|
940
974
|
return Math.cos((angle * Math.PI) / 180);
|
|
941
975
|
}),
|
|
@@ -959,7 +993,7 @@ var divide = {
|
|
|
959
993
|
return __generator(this, function (_a) {
|
|
960
994
|
return [2 /*return*/, {
|
|
961
995
|
quotient: binaryOnTree(inputs.a, inputs.b, function (itemA, itemB) {
|
|
962
|
-
if (itemA
|
|
996
|
+
if (!isNumber(itemA, itemB))
|
|
963
997
|
return DISCARD;
|
|
964
998
|
if (itemB === 0)
|
|
965
999
|
return DISCARD;
|
|
@@ -986,12 +1020,12 @@ var equalTo = {
|
|
|
986
1020
|
return __generator(this, function (_a) {
|
|
987
1021
|
return [2 /*return*/, {
|
|
988
1022
|
eq: binaryOnTree(inputs.a, inputs.b, function (itemA, itemB) {
|
|
989
|
-
if (itemA
|
|
1023
|
+
if (!isNumber(itemA, itemB))
|
|
990
1024
|
return DISCARD;
|
|
991
1025
|
return itemA === itemB;
|
|
992
1026
|
}, true),
|
|
993
1027
|
neq: binaryOnTree(inputs.a, inputs.b, function (itemA, itemB) {
|
|
994
|
-
if (itemA
|
|
1028
|
+
if (!isNumber(itemA, itemB))
|
|
995
1029
|
return DISCARD;
|
|
996
1030
|
return itemA !== itemB;
|
|
997
1031
|
}, true),
|
|
@@ -1016,12 +1050,12 @@ var greaterThan = {
|
|
|
1016
1050
|
return __generator(this, function (_a) {
|
|
1017
1051
|
return [2 /*return*/, {
|
|
1018
1052
|
gt: binaryOnTree(inputs.a, inputs.b, function (itemA, itemB) {
|
|
1019
|
-
if (itemA
|
|
1053
|
+
if (!isNumber(itemA, itemB))
|
|
1020
1054
|
return DISCARD;
|
|
1021
1055
|
return itemA > itemB;
|
|
1022
1056
|
}, true),
|
|
1023
1057
|
gte: binaryOnTree(inputs.a, inputs.b, function (itemA, itemB) {
|
|
1024
|
-
if (itemA
|
|
1058
|
+
if (!isNumber(itemA, itemB))
|
|
1025
1059
|
return DISCARD;
|
|
1026
1060
|
return itemA >= itemB;
|
|
1027
1061
|
}, true),
|
|
@@ -1046,12 +1080,12 @@ var lessThan = {
|
|
|
1046
1080
|
return __generator(this, function (_a) {
|
|
1047
1081
|
return [2 /*return*/, {
|
|
1048
1082
|
lt: binaryOnTree(inputs.a, inputs.b, function (itemA, itemB) {
|
|
1049
|
-
if (itemA
|
|
1083
|
+
if (!isNumber(itemA, itemB))
|
|
1050
1084
|
return DISCARD;
|
|
1051
1085
|
return itemA < itemB;
|
|
1052
1086
|
}, true),
|
|
1053
1087
|
lte: binaryOnTree(inputs.a, inputs.b, function (itemA, itemB) {
|
|
1054
|
-
if (itemA
|
|
1088
|
+
if (!isNumber(itemA, itemB))
|
|
1055
1089
|
return DISCARD;
|
|
1056
1090
|
return itemA <= itemB;
|
|
1057
1091
|
}, true),
|
|
@@ -1075,7 +1109,7 @@ var modulo = {
|
|
|
1075
1109
|
return __generator(this, function (_a) {
|
|
1076
1110
|
return [2 /*return*/, {
|
|
1077
1111
|
mod: binaryOnTree(inputs.a, inputs.b, function (itemA, itemB) {
|
|
1078
|
-
if (itemA
|
|
1112
|
+
if (!isNumber(itemA, itemB))
|
|
1079
1113
|
return DISCARD;
|
|
1080
1114
|
return itemA % itemB;
|
|
1081
1115
|
}, true),
|
|
@@ -1099,7 +1133,7 @@ var multiply = {
|
|
|
1099
1133
|
return __generator(this, function (_a) {
|
|
1100
1134
|
return [2 /*return*/, {
|
|
1101
1135
|
product: binaryOnTree(inputs.a, inputs.b, function (itemA, itemB) {
|
|
1102
|
-
if (itemA
|
|
1136
|
+
if (!isNumber(itemA, itemB))
|
|
1103
1137
|
return DISCARD;
|
|
1104
1138
|
return itemA * itemB;
|
|
1105
1139
|
}, true),
|
|
@@ -1123,7 +1157,7 @@ var pow = {
|
|
|
1123
1157
|
return __generator(this, function (_a) {
|
|
1124
1158
|
return [2 /*return*/, {
|
|
1125
1159
|
pow: binaryOnTree(inputs.x, inputs.n, function (x, n) {
|
|
1126
|
-
if (x
|
|
1160
|
+
if (!isNumber(x, n))
|
|
1127
1161
|
return DISCARD;
|
|
1128
1162
|
return Math.pow(x, n);
|
|
1129
1163
|
}, true),
|
|
@@ -1146,7 +1180,7 @@ var sinDeg = {
|
|
|
1146
1180
|
return __generator(this, function (_a) {
|
|
1147
1181
|
return [2 /*return*/, {
|
|
1148
1182
|
sin: mapTree(inputs.a, function (angle) {
|
|
1149
|
-
if (angle
|
|
1183
|
+
if (!isNumber(angle))
|
|
1150
1184
|
return DISCARD;
|
|
1151
1185
|
return Math.sin((angle * Math.PI) / 180);
|
|
1152
1186
|
}),
|
|
@@ -1169,7 +1203,7 @@ var sqrt = {
|
|
|
1169
1203
|
return __generator(this, function (_a) {
|
|
1170
1204
|
return [2 /*return*/, {
|
|
1171
1205
|
sqrt: mapTree(inputs.x, function (x) {
|
|
1172
|
-
if (x
|
|
1206
|
+
if (!isNumber(x))
|
|
1173
1207
|
return DISCARD;
|
|
1174
1208
|
if (x < 0)
|
|
1175
1209
|
return DISCARD;
|
|
@@ -1195,7 +1229,7 @@ var subtract$1 = {
|
|
|
1195
1229
|
return __generator(this, function (_a) {
|
|
1196
1230
|
return [2 /*return*/, {
|
|
1197
1231
|
difference: binaryOnTree(inputs.a, inputs.b, function (itemA, itemB) {
|
|
1198
|
-
if (itemA
|
|
1232
|
+
if (!isNumber(itemA, itemB))
|
|
1199
1233
|
return DISCARD;
|
|
1200
1234
|
return itemA - itemB;
|
|
1201
1235
|
}, true),
|
|
@@ -1218,7 +1252,7 @@ var tanDeg = {
|
|
|
1218
1252
|
return __generator(this, function (_a) {
|
|
1219
1253
|
return [2 /*return*/, {
|
|
1220
1254
|
tan: mapTree(inputs.a, function (angle) {
|
|
1221
|
-
if (angle
|
|
1255
|
+
if (!isNumber(angle))
|
|
1222
1256
|
return DISCARD;
|
|
1223
1257
|
return Math.tan((angle * Math.PI) / 180);
|
|
1224
1258
|
}),
|
|
@@ -1246,7 +1280,7 @@ var ceil = {
|
|
|
1246
1280
|
f = Math.pow(10, params.decimals || 0);
|
|
1247
1281
|
return [2 /*return*/, {
|
|
1248
1282
|
ceil: mapTree(inputs.x, function (x) {
|
|
1249
|
-
if (x
|
|
1283
|
+
if (!isNumber(x))
|
|
1250
1284
|
return DISCARD;
|
|
1251
1285
|
return Math.ceil(f * x) / f;
|
|
1252
1286
|
}),
|
|
@@ -1274,7 +1308,7 @@ var floor = {
|
|
|
1274
1308
|
f = Math.pow(10, params.decimals || 0);
|
|
1275
1309
|
return [2 /*return*/, {
|
|
1276
1310
|
floor: mapTree(inputs.x, function (x) {
|
|
1277
|
-
if (x
|
|
1311
|
+
if (!isNumber(x))
|
|
1278
1312
|
return DISCARD;
|
|
1279
1313
|
return Math.floor(f * x) / f;
|
|
1280
1314
|
}),
|
|
@@ -1302,7 +1336,7 @@ var round = {
|
|
|
1302
1336
|
f = Math.pow(10, params.decimals || 0);
|
|
1303
1337
|
return [2 /*return*/, {
|
|
1304
1338
|
round: mapTree(inputs.x, function (x) {
|
|
1305
|
-
if (x
|
|
1339
|
+
if (!isNumber(x))
|
|
1306
1340
|
return DISCARD;
|
|
1307
1341
|
return Math.round(f * x) / f;
|
|
1308
1342
|
}),
|
|
@@ -1662,7 +1696,11 @@ var listInput = {
|
|
|
1662
1696
|
allLines = allLines.map(function (line) { return line.toLowerCase() === "true"; });
|
|
1663
1697
|
}
|
|
1664
1698
|
else if (allLines.every(function (line) { return isNumStr(line); })) {
|
|
1665
|
-
allLines = allLines.map(function (line) {
|
|
1699
|
+
allLines = allLines.map(function (line) {
|
|
1700
|
+
if (!line)
|
|
1701
|
+
return undefined;
|
|
1702
|
+
return Number(line);
|
|
1703
|
+
});
|
|
1666
1704
|
}
|
|
1667
1705
|
return allLines;
|
|
1668
1706
|
}),
|
|
@@ -1840,12 +1878,118 @@ var groupAll = {
|
|
|
1840
1878
|
}); },
|
|
1841
1879
|
};
|
|
1842
1880
|
|
|
1881
|
+
var normalizeTree = {
|
|
1882
|
+
name: "normalizeTree",
|
|
1883
|
+
label: "Normalize Groups",
|
|
1884
|
+
description: "Normalize a tree to consequtive groups and removed empty groups.",
|
|
1885
|
+
inputs: {
|
|
1886
|
+
tree: "any",
|
|
1887
|
+
},
|
|
1888
|
+
outputs: {
|
|
1889
|
+
tree: "any",
|
|
1890
|
+
},
|
|
1891
|
+
impl: function (inputs) { return __awaiter(void 0, void 0, void 0, function () {
|
|
1892
|
+
var normalized;
|
|
1893
|
+
return __generator(this, function (_a) {
|
|
1894
|
+
if (!inputs.tree) {
|
|
1895
|
+
return [2 /*return*/, {}];
|
|
1896
|
+
}
|
|
1897
|
+
normalized = normalizePaths(inputs.tree);
|
|
1898
|
+
return [2 /*return*/, {
|
|
1899
|
+
tree: mapTreeBranch(normalized, function (branch) {
|
|
1900
|
+
if (!branch.length) {
|
|
1901
|
+
return DISCARD;
|
|
1902
|
+
}
|
|
1903
|
+
return branch;
|
|
1904
|
+
}),
|
|
1905
|
+
}];
|
|
1906
|
+
});
|
|
1907
|
+
}); },
|
|
1908
|
+
};
|
|
1909
|
+
|
|
1910
|
+
var filterTree = {
|
|
1911
|
+
name: "filterTree",
|
|
1912
|
+
label: "Filter Tree",
|
|
1913
|
+
description: "Filter groups by path matchers",
|
|
1914
|
+
inputs: {
|
|
1915
|
+
tree: "any",
|
|
1916
|
+
query: { type: "string", default: "*" },
|
|
1917
|
+
},
|
|
1918
|
+
outputs: {
|
|
1919
|
+
tree: "any",
|
|
1920
|
+
},
|
|
1921
|
+
impl: function (inputs, params) { return __awaiter(void 0, void 0, void 0, function () {
|
|
1922
|
+
var queries;
|
|
1923
|
+
return __generator(this, function (_a) {
|
|
1924
|
+
queries = toArray(inputs.query || {}).map(function (q) {
|
|
1925
|
+
return q
|
|
1926
|
+
.trim()
|
|
1927
|
+
.split(";")
|
|
1928
|
+
.map(function (part) {
|
|
1929
|
+
return new RegExp("^" + part.replace(/\*/g, ".*") + "$");
|
|
1930
|
+
});
|
|
1931
|
+
});
|
|
1932
|
+
return [2 /*return*/, {
|
|
1933
|
+
tree: mapTreeBranch(inputs.tree || {}, function (branch, path) {
|
|
1934
|
+
var pathSegments = path.split(";");
|
|
1935
|
+
var match = queries.some(function (query) {
|
|
1936
|
+
return query.every(function (regex, i) {
|
|
1937
|
+
if (!regex.test(pathSegments[i] || "")) {
|
|
1938
|
+
return false;
|
|
1939
|
+
}
|
|
1940
|
+
return true;
|
|
1941
|
+
});
|
|
1942
|
+
});
|
|
1943
|
+
if (match) {
|
|
1944
|
+
return branch;
|
|
1945
|
+
}
|
|
1946
|
+
else {
|
|
1947
|
+
return DISCARD;
|
|
1948
|
+
}
|
|
1949
|
+
}),
|
|
1950
|
+
}];
|
|
1951
|
+
});
|
|
1952
|
+
}); },
|
|
1953
|
+
};
|
|
1954
|
+
|
|
1955
|
+
var treeItem = {
|
|
1956
|
+
name: "treeItem",
|
|
1957
|
+
label: "Tree Item",
|
|
1958
|
+
description: "Retrieve the groups from a tree at specified indexes",
|
|
1959
|
+
inputs: {
|
|
1960
|
+
tree: "any",
|
|
1961
|
+
index: { type: "number", default: 0 },
|
|
1962
|
+
},
|
|
1963
|
+
outputs: {
|
|
1964
|
+
tree: "any",
|
|
1965
|
+
},
|
|
1966
|
+
impl: function (inputs, params) { return __awaiter(void 0, void 0, void 0, function () {
|
|
1967
|
+
var indices;
|
|
1968
|
+
return __generator(this, function (_a) {
|
|
1969
|
+
indices = toArray(inputs.index || {});
|
|
1970
|
+
return [2 /*return*/, {
|
|
1971
|
+
tree: mapTreeBranch(inputs.tree || {}, function (branch, path, index) {
|
|
1972
|
+
if (indices.includes(index)) {
|
|
1973
|
+
return branch;
|
|
1974
|
+
}
|
|
1975
|
+
else {
|
|
1976
|
+
return DISCARD;
|
|
1977
|
+
}
|
|
1978
|
+
}),
|
|
1979
|
+
}];
|
|
1980
|
+
});
|
|
1981
|
+
}); },
|
|
1982
|
+
};
|
|
1983
|
+
|
|
1843
1984
|
var _a$4;
|
|
1844
1985
|
var primitives$4 = (_a$4 = {},
|
|
1845
1986
|
_a$4[splitGroup.name] = splitGroup,
|
|
1846
1987
|
_a$4[mergeGroup.name] = mergeGroup,
|
|
1847
1988
|
_a$4[groupAll.name] = groupAll,
|
|
1989
|
+
_a$4[filterTree.name] = filterTree,
|
|
1990
|
+
_a$4[treeItem.name] = treeItem,
|
|
1848
1991
|
_a$4[simplifyTree.name] = simplifyTree,
|
|
1992
|
+
_a$4[normalizeTree.name] = normalizeTree,
|
|
1849
1993
|
_a$4[cartesianGroups.name] = cartesianGroups,
|
|
1850
1994
|
_a$4[mergeTree.name] = mergeTree,
|
|
1851
1995
|
_a$4);
|
|
@@ -1951,14 +2095,15 @@ var groupStats = {
|
|
|
1951
2095
|
var stats;
|
|
1952
2096
|
return __generator(this, function (_a) {
|
|
1953
2097
|
stats = mapTreeBranch(inputs.tree || {}, function (branch) {
|
|
2098
|
+
var numbers = branch.filter(function (val) { return typeof val === "number"; });
|
|
1954
2099
|
var min = Infinity;
|
|
1955
2100
|
var max = -Infinity;
|
|
1956
2101
|
var avg = 0;
|
|
1957
2102
|
var std = 0;
|
|
1958
2103
|
var variance = 0;
|
|
1959
2104
|
var sum = 0;
|
|
1960
|
-
var count =
|
|
1961
|
-
|
|
2105
|
+
var count = numbers.length;
|
|
2106
|
+
numbers.forEach(function (val) {
|
|
1962
2107
|
if (val < min)
|
|
1963
2108
|
min = val;
|
|
1964
2109
|
if (val > max)
|
|
@@ -1966,7 +2111,7 @@ var groupStats = {
|
|
|
1966
2111
|
sum += val;
|
|
1967
2112
|
avg += val / count;
|
|
1968
2113
|
});
|
|
1969
|
-
|
|
2114
|
+
numbers.forEach(function (val) {
|
|
1970
2115
|
variance += Math.pow((val - avg), 2) / count;
|
|
1971
2116
|
});
|
|
1972
2117
|
std = Math.sqrt(variance);
|
|
@@ -5343,6 +5488,7 @@ var InputText = React.memo(function (_a) {
|
|
|
5343
5488
|
return (React.createElement("textarea", { value: inner, onChange: function (e) { return setInner(e.target.value); }, onBlur: handleBlur, onKeyDown: handleKey, onMouseDown: function (e) { return e.stopPropagation(); }, rows: 4 }));
|
|
5344
5489
|
});
|
|
5345
5490
|
function Control(_a) {
|
|
5491
|
+
var _b;
|
|
5346
5492
|
var value = _a.value, vardef = _a.vardef, onChange = _a.onChange;
|
|
5347
5493
|
var customControls = useControls();
|
|
5348
5494
|
if (vardef.type in customControls) {
|
|
@@ -5357,8 +5503,13 @@ function Control(_a) {
|
|
|
5357
5503
|
return React.createElement(InputString, { value: value !== null && value !== void 0 ? value : "", onChange: onChange });
|
|
5358
5504
|
case "text":
|
|
5359
5505
|
return React.createElement(InputText, { value: value !== null && value !== void 0 ? value : "", onChange: onChange });
|
|
5360
|
-
case "number":
|
|
5361
|
-
|
|
5506
|
+
case "number": {
|
|
5507
|
+
if (!vardef.allowEmpty) {
|
|
5508
|
+
value = (_b = value !== null && value !== void 0 ? value : vardef.default) !== null && _b !== void 0 ? _b : 0;
|
|
5509
|
+
}
|
|
5510
|
+
value = value ? Number(value) : value;
|
|
5511
|
+
return (React.createElement(InputNumber, { value: value, onChange: onChange, step: vardef.step, min: vardef.min, max: vardef.max, inputMode: "numeric", onMouseDown: function (e) { return e.stopPropagation(); } }));
|
|
5512
|
+
}
|
|
5362
5513
|
case "boolean":
|
|
5363
5514
|
return (React.createElement("input", { type: "checkbox", checked: Boolean(value), onChange: function (e) { return onChange === null || onChange === void 0 ? void 0 : onChange(e.target.checked); } }));
|
|
5364
5515
|
default:
|