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