@rkmodules/rules 0.0.110 → 0.0.111

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 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 === undefined || itemB === undefined)
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 === undefined)
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 === undefined || itemB === undefined)
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 === undefined || itemB === undefined)
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 === undefined || itemB === undefined)
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 === undefined || itemB === undefined)
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 === undefined || itemB === undefined)
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 === undefined || itemB === undefined)
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 === undefined || itemB === undefined)
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 === undefined || itemB === undefined)
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 === undefined || itemB === undefined)
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 === undefined || n === undefined)
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 === undefined)
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 === undefined)
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 === undefined || itemB === undefined)
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 === undefined)
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 === undefined)
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 === undefined)
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 === undefined)
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) { return Number(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
  }),
@@ -1953,14 +1991,15 @@ var groupStats = {
1953
1991
  var stats;
1954
1992
  return __generator(this, function (_a) {
1955
1993
  stats = mapTreeBranch(inputs.tree || {}, function (branch) {
1994
+ var numbers = branch.filter(function (val) { return typeof val === "number"; });
1956
1995
  var min = Infinity;
1957
1996
  var max = -Infinity;
1958
1997
  var avg = 0;
1959
1998
  var std = 0;
1960
1999
  var variance = 0;
1961
2000
  var sum = 0;
1962
- var count = branch.length;
1963
- branch.forEach(function (val) {
2001
+ var count = numbers.length;
2002
+ numbers.forEach(function (val) {
1964
2003
  if (val < min)
1965
2004
  min = val;
1966
2005
  if (val > max)
@@ -1968,7 +2007,7 @@ var groupStats = {
1968
2007
  sum += val;
1969
2008
  avg += val / count;
1970
2009
  });
1971
- branch.forEach(function (val) {
2010
+ numbers.forEach(function (val) {
1972
2011
  variance += Math.pow((val - avg), 2) / count;
1973
2012
  });
1974
2013
  std = Math.sqrt(variance);
@@ -5345,6 +5384,7 @@ var InputText = React.memo(function (_a) {
5345
5384
  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
5385
  });
5347
5386
  function Control(_a) {
5387
+ var _b;
5348
5388
  var value = _a.value, vardef = _a.vardef, onChange = _a.onChange;
5349
5389
  var customControls = useControls();
5350
5390
  if (vardef.type in customControls) {
@@ -5359,8 +5399,13 @@ function Control(_a) {
5359
5399
  return React.createElement(InputString, { value: value !== null && value !== void 0 ? value : "", onChange: onChange });
5360
5400
  case "text":
5361
5401
  return React.createElement(InputText, { value: value !== null && value !== void 0 ? value : "", onChange: onChange });
5362
- case "number":
5363
- return (React.createElement(InputNumber, { value: Number(value) || 0, onChange: onChange, step: vardef.step, min: vardef.min, max: vardef.max, inputMode: "numeric", onMouseDown: function (e) { return e.stopPropagation(); } }));
5402
+ case "number": {
5403
+ if (!vardef.allowEmpty) {
5404
+ value = (_b = value !== null && value !== void 0 ? value : vardef.default) !== null && _b !== void 0 ? _b : 0;
5405
+ }
5406
+ value = value ? Number(value) : value;
5407
+ 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(); } }));
5408
+ }
5364
5409
  case "boolean":
5365
5410
  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
5411
  default: