@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.cjs.js
CHANGED
|
@@ -504,6 +504,31 @@ function toArray(a) {
|
|
|
504
504
|
return Object.values(a).flat();
|
|
505
505
|
}
|
|
506
506
|
|
|
507
|
+
var getType = {
|
|
508
|
+
name: "getType",
|
|
509
|
+
label: "Get Type",
|
|
510
|
+
description: "Gets the type of a value as a string",
|
|
511
|
+
inputs: {
|
|
512
|
+
input: { type: "any" },
|
|
513
|
+
},
|
|
514
|
+
outputs: {
|
|
515
|
+
type: "string",
|
|
516
|
+
},
|
|
517
|
+
impl: function (inputs, params) { return __awaiter(void 0, void 0, void 0, function () {
|
|
518
|
+
return __generator(this, function (_a) {
|
|
519
|
+
return [2 /*return*/, {
|
|
520
|
+
type: mapTree(inputs.input, function (x) {
|
|
521
|
+
if (x === undefined)
|
|
522
|
+
return "empty";
|
|
523
|
+
if (x === null)
|
|
524
|
+
return "empty";
|
|
525
|
+
return typeof x;
|
|
526
|
+
}),
|
|
527
|
+
}];
|
|
528
|
+
});
|
|
529
|
+
}); },
|
|
530
|
+
};
|
|
531
|
+
|
|
507
532
|
// utilities
|
|
508
533
|
/**
|
|
509
534
|
* merges two trees by concatenating the branches with the same path
|
|
@@ -738,8 +763,17 @@ var primitives$8 = (_a$8 = {},
|
|
|
738
763
|
_a$8[getValue.name] = getValue,
|
|
739
764
|
_a$8[log.name] = log,
|
|
740
765
|
_a$8[value.name] = value,
|
|
766
|
+
_a$8[getType.name] = getType,
|
|
741
767
|
_a$8);
|
|
742
768
|
|
|
769
|
+
function isNumber() {
|
|
770
|
+
var ns = [];
|
|
771
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
772
|
+
ns[_i] = arguments[_i];
|
|
773
|
+
}
|
|
774
|
+
return ns.every(function (n) { return typeof n === "number" && !isNaN(n); });
|
|
775
|
+
}
|
|
776
|
+
|
|
743
777
|
var add$1 = {
|
|
744
778
|
name: "add",
|
|
745
779
|
label: "Add",
|
|
@@ -755,7 +789,7 @@ var add$1 = {
|
|
|
755
789
|
return __generator(this, function (_a) {
|
|
756
790
|
return [2 /*return*/, {
|
|
757
791
|
sum: binaryOnTree(inputs.a, inputs.b, function (itemA, itemB) {
|
|
758
|
-
if (itemA
|
|
792
|
+
if (!isNumber(itemA, itemB))
|
|
759
793
|
return DISCARD;
|
|
760
794
|
return itemA + itemB;
|
|
761
795
|
}, true),
|
|
@@ -937,7 +971,7 @@ var cosDeg = {
|
|
|
937
971
|
return __generator(this, function (_a) {
|
|
938
972
|
return [2 /*return*/, {
|
|
939
973
|
cos: mapTree(inputs.a, function (angle) {
|
|
940
|
-
if (angle
|
|
974
|
+
if (!isNumber(angle))
|
|
941
975
|
return DISCARD;
|
|
942
976
|
return Math.cos((angle * Math.PI) / 180);
|
|
943
977
|
}),
|
|
@@ -961,7 +995,7 @@ var divide = {
|
|
|
961
995
|
return __generator(this, function (_a) {
|
|
962
996
|
return [2 /*return*/, {
|
|
963
997
|
quotient: binaryOnTree(inputs.a, inputs.b, function (itemA, itemB) {
|
|
964
|
-
if (itemA
|
|
998
|
+
if (!isNumber(itemA, itemB))
|
|
965
999
|
return DISCARD;
|
|
966
1000
|
if (itemB === 0)
|
|
967
1001
|
return DISCARD;
|
|
@@ -988,12 +1022,12 @@ var equalTo = {
|
|
|
988
1022
|
return __generator(this, function (_a) {
|
|
989
1023
|
return [2 /*return*/, {
|
|
990
1024
|
eq: binaryOnTree(inputs.a, inputs.b, function (itemA, itemB) {
|
|
991
|
-
if (itemA
|
|
1025
|
+
if (!isNumber(itemA, itemB))
|
|
992
1026
|
return DISCARD;
|
|
993
1027
|
return itemA === itemB;
|
|
994
1028
|
}, true),
|
|
995
1029
|
neq: binaryOnTree(inputs.a, inputs.b, function (itemA, itemB) {
|
|
996
|
-
if (itemA
|
|
1030
|
+
if (!isNumber(itemA, itemB))
|
|
997
1031
|
return DISCARD;
|
|
998
1032
|
return itemA !== itemB;
|
|
999
1033
|
}, true),
|
|
@@ -1018,12 +1052,12 @@ var greaterThan = {
|
|
|
1018
1052
|
return __generator(this, function (_a) {
|
|
1019
1053
|
return [2 /*return*/, {
|
|
1020
1054
|
gt: binaryOnTree(inputs.a, inputs.b, function (itemA, itemB) {
|
|
1021
|
-
if (itemA
|
|
1055
|
+
if (!isNumber(itemA, itemB))
|
|
1022
1056
|
return DISCARD;
|
|
1023
1057
|
return itemA > itemB;
|
|
1024
1058
|
}, true),
|
|
1025
1059
|
gte: binaryOnTree(inputs.a, inputs.b, function (itemA, itemB) {
|
|
1026
|
-
if (itemA
|
|
1060
|
+
if (!isNumber(itemA, itemB))
|
|
1027
1061
|
return DISCARD;
|
|
1028
1062
|
return itemA >= itemB;
|
|
1029
1063
|
}, true),
|
|
@@ -1048,12 +1082,12 @@ var lessThan = {
|
|
|
1048
1082
|
return __generator(this, function (_a) {
|
|
1049
1083
|
return [2 /*return*/, {
|
|
1050
1084
|
lt: binaryOnTree(inputs.a, inputs.b, function (itemA, itemB) {
|
|
1051
|
-
if (itemA
|
|
1085
|
+
if (!isNumber(itemA, itemB))
|
|
1052
1086
|
return DISCARD;
|
|
1053
1087
|
return itemA < itemB;
|
|
1054
1088
|
}, true),
|
|
1055
1089
|
lte: binaryOnTree(inputs.a, inputs.b, function (itemA, itemB) {
|
|
1056
|
-
if (itemA
|
|
1090
|
+
if (!isNumber(itemA, itemB))
|
|
1057
1091
|
return DISCARD;
|
|
1058
1092
|
return itemA <= itemB;
|
|
1059
1093
|
}, true),
|
|
@@ -1077,7 +1111,7 @@ var modulo = {
|
|
|
1077
1111
|
return __generator(this, function (_a) {
|
|
1078
1112
|
return [2 /*return*/, {
|
|
1079
1113
|
mod: binaryOnTree(inputs.a, inputs.b, function (itemA, itemB) {
|
|
1080
|
-
if (itemA
|
|
1114
|
+
if (!isNumber(itemA, itemB))
|
|
1081
1115
|
return DISCARD;
|
|
1082
1116
|
return itemA % itemB;
|
|
1083
1117
|
}, true),
|
|
@@ -1101,7 +1135,7 @@ var multiply = {
|
|
|
1101
1135
|
return __generator(this, function (_a) {
|
|
1102
1136
|
return [2 /*return*/, {
|
|
1103
1137
|
product: binaryOnTree(inputs.a, inputs.b, function (itemA, itemB) {
|
|
1104
|
-
if (itemA
|
|
1138
|
+
if (!isNumber(itemA, itemB))
|
|
1105
1139
|
return DISCARD;
|
|
1106
1140
|
return itemA * itemB;
|
|
1107
1141
|
}, true),
|
|
@@ -1125,7 +1159,7 @@ var pow = {
|
|
|
1125
1159
|
return __generator(this, function (_a) {
|
|
1126
1160
|
return [2 /*return*/, {
|
|
1127
1161
|
pow: binaryOnTree(inputs.x, inputs.n, function (x, n) {
|
|
1128
|
-
if (x
|
|
1162
|
+
if (!isNumber(x, n))
|
|
1129
1163
|
return DISCARD;
|
|
1130
1164
|
return Math.pow(x, n);
|
|
1131
1165
|
}, true),
|
|
@@ -1148,7 +1182,7 @@ var sinDeg = {
|
|
|
1148
1182
|
return __generator(this, function (_a) {
|
|
1149
1183
|
return [2 /*return*/, {
|
|
1150
1184
|
sin: mapTree(inputs.a, function (angle) {
|
|
1151
|
-
if (angle
|
|
1185
|
+
if (!isNumber(angle))
|
|
1152
1186
|
return DISCARD;
|
|
1153
1187
|
return Math.sin((angle * Math.PI) / 180);
|
|
1154
1188
|
}),
|
|
@@ -1171,7 +1205,7 @@ var sqrt = {
|
|
|
1171
1205
|
return __generator(this, function (_a) {
|
|
1172
1206
|
return [2 /*return*/, {
|
|
1173
1207
|
sqrt: mapTree(inputs.x, function (x) {
|
|
1174
|
-
if (x
|
|
1208
|
+
if (!isNumber(x))
|
|
1175
1209
|
return DISCARD;
|
|
1176
1210
|
if (x < 0)
|
|
1177
1211
|
return DISCARD;
|
|
@@ -1197,7 +1231,7 @@ var subtract$1 = {
|
|
|
1197
1231
|
return __generator(this, function (_a) {
|
|
1198
1232
|
return [2 /*return*/, {
|
|
1199
1233
|
difference: binaryOnTree(inputs.a, inputs.b, function (itemA, itemB) {
|
|
1200
|
-
if (itemA
|
|
1234
|
+
if (!isNumber(itemA, itemB))
|
|
1201
1235
|
return DISCARD;
|
|
1202
1236
|
return itemA - itemB;
|
|
1203
1237
|
}, true),
|
|
@@ -1220,7 +1254,7 @@ var tanDeg = {
|
|
|
1220
1254
|
return __generator(this, function (_a) {
|
|
1221
1255
|
return [2 /*return*/, {
|
|
1222
1256
|
tan: mapTree(inputs.a, function (angle) {
|
|
1223
|
-
if (angle
|
|
1257
|
+
if (!isNumber(angle))
|
|
1224
1258
|
return DISCARD;
|
|
1225
1259
|
return Math.tan((angle * Math.PI) / 180);
|
|
1226
1260
|
}),
|
|
@@ -1248,7 +1282,7 @@ var ceil = {
|
|
|
1248
1282
|
f = Math.pow(10, params.decimals || 0);
|
|
1249
1283
|
return [2 /*return*/, {
|
|
1250
1284
|
ceil: mapTree(inputs.x, function (x) {
|
|
1251
|
-
if (x
|
|
1285
|
+
if (!isNumber(x))
|
|
1252
1286
|
return DISCARD;
|
|
1253
1287
|
return Math.ceil(f * x) / f;
|
|
1254
1288
|
}),
|
|
@@ -1276,7 +1310,7 @@ var floor = {
|
|
|
1276
1310
|
f = Math.pow(10, params.decimals || 0);
|
|
1277
1311
|
return [2 /*return*/, {
|
|
1278
1312
|
floor: mapTree(inputs.x, function (x) {
|
|
1279
|
-
if (x
|
|
1313
|
+
if (!isNumber(x))
|
|
1280
1314
|
return DISCARD;
|
|
1281
1315
|
return Math.floor(f * x) / f;
|
|
1282
1316
|
}),
|
|
@@ -1304,7 +1338,7 @@ var round = {
|
|
|
1304
1338
|
f = Math.pow(10, params.decimals || 0);
|
|
1305
1339
|
return [2 /*return*/, {
|
|
1306
1340
|
round: mapTree(inputs.x, function (x) {
|
|
1307
|
-
if (x
|
|
1341
|
+
if (!isNumber(x))
|
|
1308
1342
|
return DISCARD;
|
|
1309
1343
|
return Math.round(f * x) / f;
|
|
1310
1344
|
}),
|
|
@@ -1664,7 +1698,11 @@ var listInput = {
|
|
|
1664
1698
|
allLines = allLines.map(function (line) { return line.toLowerCase() === "true"; });
|
|
1665
1699
|
}
|
|
1666
1700
|
else if (allLines.every(function (line) { return isNumStr(line); })) {
|
|
1667
|
-
allLines = allLines.map(function (line) {
|
|
1701
|
+
allLines = allLines.map(function (line) {
|
|
1702
|
+
if (!line)
|
|
1703
|
+
return undefined;
|
|
1704
|
+
return Number(line);
|
|
1705
|
+
});
|
|
1668
1706
|
}
|
|
1669
1707
|
return allLines;
|
|
1670
1708
|
}),
|
|
@@ -1842,12 +1880,118 @@ var groupAll = {
|
|
|
1842
1880
|
}); },
|
|
1843
1881
|
};
|
|
1844
1882
|
|
|
1883
|
+
var normalizeTree = {
|
|
1884
|
+
name: "normalizeTree",
|
|
1885
|
+
label: "Normalize Groups",
|
|
1886
|
+
description: "Normalize a tree to consequtive groups and removed empty groups.",
|
|
1887
|
+
inputs: {
|
|
1888
|
+
tree: "any",
|
|
1889
|
+
},
|
|
1890
|
+
outputs: {
|
|
1891
|
+
tree: "any",
|
|
1892
|
+
},
|
|
1893
|
+
impl: function (inputs) { return __awaiter(void 0, void 0, void 0, function () {
|
|
1894
|
+
var normalized;
|
|
1895
|
+
return __generator(this, function (_a) {
|
|
1896
|
+
if (!inputs.tree) {
|
|
1897
|
+
return [2 /*return*/, {}];
|
|
1898
|
+
}
|
|
1899
|
+
normalized = normalizePaths(inputs.tree);
|
|
1900
|
+
return [2 /*return*/, {
|
|
1901
|
+
tree: mapTreeBranch(normalized, function (branch) {
|
|
1902
|
+
if (!branch.length) {
|
|
1903
|
+
return DISCARD;
|
|
1904
|
+
}
|
|
1905
|
+
return branch;
|
|
1906
|
+
}),
|
|
1907
|
+
}];
|
|
1908
|
+
});
|
|
1909
|
+
}); },
|
|
1910
|
+
};
|
|
1911
|
+
|
|
1912
|
+
var filterTree = {
|
|
1913
|
+
name: "filterTree",
|
|
1914
|
+
label: "Filter Tree",
|
|
1915
|
+
description: "Filter groups by path matchers",
|
|
1916
|
+
inputs: {
|
|
1917
|
+
tree: "any",
|
|
1918
|
+
query: { type: "string", default: "*" },
|
|
1919
|
+
},
|
|
1920
|
+
outputs: {
|
|
1921
|
+
tree: "any",
|
|
1922
|
+
},
|
|
1923
|
+
impl: function (inputs, params) { return __awaiter(void 0, void 0, void 0, function () {
|
|
1924
|
+
var queries;
|
|
1925
|
+
return __generator(this, function (_a) {
|
|
1926
|
+
queries = toArray(inputs.query || {}).map(function (q) {
|
|
1927
|
+
return q
|
|
1928
|
+
.trim()
|
|
1929
|
+
.split(";")
|
|
1930
|
+
.map(function (part) {
|
|
1931
|
+
return new RegExp("^" + part.replace(/\*/g, ".*") + "$");
|
|
1932
|
+
});
|
|
1933
|
+
});
|
|
1934
|
+
return [2 /*return*/, {
|
|
1935
|
+
tree: mapTreeBranch(inputs.tree || {}, function (branch, path) {
|
|
1936
|
+
var pathSegments = path.split(";");
|
|
1937
|
+
var match = queries.some(function (query) {
|
|
1938
|
+
return query.every(function (regex, i) {
|
|
1939
|
+
if (!regex.test(pathSegments[i] || "")) {
|
|
1940
|
+
return false;
|
|
1941
|
+
}
|
|
1942
|
+
return true;
|
|
1943
|
+
});
|
|
1944
|
+
});
|
|
1945
|
+
if (match) {
|
|
1946
|
+
return branch;
|
|
1947
|
+
}
|
|
1948
|
+
else {
|
|
1949
|
+
return DISCARD;
|
|
1950
|
+
}
|
|
1951
|
+
}),
|
|
1952
|
+
}];
|
|
1953
|
+
});
|
|
1954
|
+
}); },
|
|
1955
|
+
};
|
|
1956
|
+
|
|
1957
|
+
var treeItem = {
|
|
1958
|
+
name: "treeItem",
|
|
1959
|
+
label: "Tree Item",
|
|
1960
|
+
description: "Retrieve the groups from a tree at specified indexes",
|
|
1961
|
+
inputs: {
|
|
1962
|
+
tree: "any",
|
|
1963
|
+
index: { type: "number", default: 0 },
|
|
1964
|
+
},
|
|
1965
|
+
outputs: {
|
|
1966
|
+
tree: "any",
|
|
1967
|
+
},
|
|
1968
|
+
impl: function (inputs, params) { return __awaiter(void 0, void 0, void 0, function () {
|
|
1969
|
+
var indices;
|
|
1970
|
+
return __generator(this, function (_a) {
|
|
1971
|
+
indices = toArray(inputs.index || {});
|
|
1972
|
+
return [2 /*return*/, {
|
|
1973
|
+
tree: mapTreeBranch(inputs.tree || {}, function (branch, path, index) {
|
|
1974
|
+
if (indices.includes(index)) {
|
|
1975
|
+
return branch;
|
|
1976
|
+
}
|
|
1977
|
+
else {
|
|
1978
|
+
return DISCARD;
|
|
1979
|
+
}
|
|
1980
|
+
}),
|
|
1981
|
+
}];
|
|
1982
|
+
});
|
|
1983
|
+
}); },
|
|
1984
|
+
};
|
|
1985
|
+
|
|
1845
1986
|
var _a$4;
|
|
1846
1987
|
var primitives$4 = (_a$4 = {},
|
|
1847
1988
|
_a$4[splitGroup.name] = splitGroup,
|
|
1848
1989
|
_a$4[mergeGroup.name] = mergeGroup,
|
|
1849
1990
|
_a$4[groupAll.name] = groupAll,
|
|
1991
|
+
_a$4[filterTree.name] = filterTree,
|
|
1992
|
+
_a$4[treeItem.name] = treeItem,
|
|
1850
1993
|
_a$4[simplifyTree.name] = simplifyTree,
|
|
1994
|
+
_a$4[normalizeTree.name] = normalizeTree,
|
|
1851
1995
|
_a$4[cartesianGroups.name] = cartesianGroups,
|
|
1852
1996
|
_a$4[mergeTree.name] = mergeTree,
|
|
1853
1997
|
_a$4);
|
|
@@ -1953,14 +2097,15 @@ var groupStats = {
|
|
|
1953
2097
|
var stats;
|
|
1954
2098
|
return __generator(this, function (_a) {
|
|
1955
2099
|
stats = mapTreeBranch(inputs.tree || {}, function (branch) {
|
|
2100
|
+
var numbers = branch.filter(function (val) { return typeof val === "number"; });
|
|
1956
2101
|
var min = Infinity;
|
|
1957
2102
|
var max = -Infinity;
|
|
1958
2103
|
var avg = 0;
|
|
1959
2104
|
var std = 0;
|
|
1960
2105
|
var variance = 0;
|
|
1961
2106
|
var sum = 0;
|
|
1962
|
-
var count =
|
|
1963
|
-
|
|
2107
|
+
var count = numbers.length;
|
|
2108
|
+
numbers.forEach(function (val) {
|
|
1964
2109
|
if (val < min)
|
|
1965
2110
|
min = val;
|
|
1966
2111
|
if (val > max)
|
|
@@ -1968,7 +2113,7 @@ var groupStats = {
|
|
|
1968
2113
|
sum += val;
|
|
1969
2114
|
avg += val / count;
|
|
1970
2115
|
});
|
|
1971
|
-
|
|
2116
|
+
numbers.forEach(function (val) {
|
|
1972
2117
|
variance += Math.pow((val - avg), 2) / count;
|
|
1973
2118
|
});
|
|
1974
2119
|
std = Math.sqrt(variance);
|
|
@@ -5345,6 +5490,7 @@ var InputText = React.memo(function (_a) {
|
|
|
5345
5490
|
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 }));
|
|
5346
5491
|
});
|
|
5347
5492
|
function Control(_a) {
|
|
5493
|
+
var _b;
|
|
5348
5494
|
var value = _a.value, vardef = _a.vardef, onChange = _a.onChange;
|
|
5349
5495
|
var customControls = useControls();
|
|
5350
5496
|
if (vardef.type in customControls) {
|
|
@@ -5359,8 +5505,13 @@ function Control(_a) {
|
|
|
5359
5505
|
return React.createElement(InputString, { value: value !== null && value !== void 0 ? value : "", onChange: onChange });
|
|
5360
5506
|
case "text":
|
|
5361
5507
|
return React.createElement(InputText, { value: value !== null && value !== void 0 ? value : "", onChange: onChange });
|
|
5362
|
-
case "number":
|
|
5363
|
-
|
|
5508
|
+
case "number": {
|
|
5509
|
+
if (!vardef.allowEmpty) {
|
|
5510
|
+
value = (_b = value !== null && value !== void 0 ? value : vardef.default) !== null && _b !== void 0 ? _b : 0;
|
|
5511
|
+
}
|
|
5512
|
+
value = value ? Number(value) : value;
|
|
5513
|
+
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(); } }));
|
|
5514
|
+
}
|
|
5364
5515
|
case "boolean":
|
|
5365
5516
|
return (React.createElement("input", { type: "checkbox", checked: Boolean(value), onChange: function (e) { return onChange === null || onChange === void 0 ? void 0 : onChange(e.target.checked); } }));
|
|
5366
5517
|
default:
|