@rkmodules/rules 0.0.67 → 0.0.69

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
@@ -136,7 +136,7 @@ var DISCARD = Symbol("DISCARD");
136
136
  * @param tree
137
137
  * @returns
138
138
  */
139
- function simplifyTree(tree) {
139
+ function simplifyTree$1(tree) {
140
140
  var keys = Object.keys(tree);
141
141
  if (keys.length <= 1)
142
142
  return tree; // ✅ Don't simplify if only one path
@@ -252,6 +252,9 @@ function broadCast(value) {
252
252
  function getBranch(tree, path) {
253
253
  return tree[path];
254
254
  }
255
+ function getPaths(tree) {
256
+ return Object.keys(tree);
257
+ }
255
258
  /**
256
259
  * maps a tree, the tree branches are flatmapped, so if an array is returned for each item in the list, a flat list is returned
257
260
  * @param tree
@@ -651,6 +654,8 @@ var add$1 = {
651
654
  return __generator(this, function (_a) {
652
655
  return [2 /*return*/, {
653
656
  sum: binaryOnTree(inputs.a, inputs.b, function (itemA, itemB) {
657
+ if (itemA === undefined || itemB === undefined)
658
+ return DISCARD;
654
659
  return itemA + itemB;
655
660
  }, true),
656
661
  }];
@@ -817,6 +822,29 @@ function getUnboundSymbols(expr, scope, extraBound) {
817
822
  return Array.from(free).sort();
818
823
  }
819
824
 
825
+ var cosDeg = {
826
+ name: "cosDeg",
827
+ label: "Cosine",
828
+ description: "Cosine of angle in degrees",
829
+ inputs: {
830
+ a: { type: "number", default: 0 },
831
+ },
832
+ outputs: {
833
+ cos: "number",
834
+ },
835
+ impl: function (inputs) { return __awaiter(void 0, void 0, void 0, function () {
836
+ return __generator(this, function (_a) {
837
+ return [2 /*return*/, {
838
+ cos: mapTree(inputs.a, function (angle) {
839
+ if (angle === undefined)
840
+ return DISCARD;
841
+ return Math.cos((angle * Math.PI) / 180);
842
+ }),
843
+ }];
844
+ });
845
+ }); },
846
+ };
847
+
820
848
  var divide = {
821
849
  name: "divide",
822
850
  label: "Divide",
@@ -832,6 +860,8 @@ var divide = {
832
860
  return __generator(this, function (_a) {
833
861
  return [2 /*return*/, {
834
862
  quotient: binaryOnTree(inputs.a, inputs.b, function (itemA, itemB) {
863
+ if (itemA === undefined || itemB === undefined)
864
+ return DISCARD;
835
865
  if (itemB === 0)
836
866
  return DISCARD;
837
867
  return itemA / itemB;
@@ -841,6 +871,36 @@ var divide = {
841
871
  }); },
842
872
  };
843
873
 
874
+ var equalTo = {
875
+ name: "equalTo",
876
+ label: "Equal to",
877
+ description: "Compare equal and not equal",
878
+ inputs: {
879
+ a: { type: "number", default: 0 },
880
+ b: { type: "number", default: 0 },
881
+ },
882
+ outputs: {
883
+ eq: "boolean",
884
+ neq: "boolean",
885
+ },
886
+ impl: function (inputs) { return __awaiter(void 0, void 0, void 0, function () {
887
+ return __generator(this, function (_a) {
888
+ return [2 /*return*/, {
889
+ eq: binaryOnTree(inputs.a, inputs.b, function (itemA, itemB) {
890
+ if (itemA === undefined || itemB === undefined)
891
+ return DISCARD;
892
+ return itemA === itemB;
893
+ }, true),
894
+ neq: binaryOnTree(inputs.a, inputs.b, function (itemA, itemB) {
895
+ if (itemA === undefined || itemB === undefined)
896
+ return DISCARD;
897
+ return itemA !== itemB;
898
+ }, true),
899
+ }];
900
+ });
901
+ }); },
902
+ };
903
+
844
904
  var greaterThan = {
845
905
  name: "greaterThan",
846
906
  label: "Greater Than",
@@ -901,6 +961,30 @@ var lessThan = {
901
961
  }); },
902
962
  };
903
963
 
964
+ var modulo = {
965
+ name: "modulo",
966
+ label: "Modulo",
967
+ description: "Division remainder of two numbers",
968
+ inputs: {
969
+ a: { type: "number", default: 1 },
970
+ b: { type: "number", default: 1 },
971
+ },
972
+ outputs: {
973
+ mod: "number",
974
+ },
975
+ impl: function (inputs) { return __awaiter(void 0, void 0, void 0, function () {
976
+ return __generator(this, function (_a) {
977
+ return [2 /*return*/, {
978
+ mod: binaryOnTree(inputs.a, inputs.b, function (itemA, itemB) {
979
+ if (itemA === undefined || itemB === undefined)
980
+ return DISCARD;
981
+ return itemA % itemB;
982
+ }, true),
983
+ }];
984
+ });
985
+ }); },
986
+ };
987
+
904
988
  var multiply = {
905
989
  name: "multiply",
906
990
  label: "Multiply",
@@ -916,6 +1000,8 @@ var multiply = {
916
1000
  return __generator(this, function (_a) {
917
1001
  return [2 /*return*/, {
918
1002
  product: binaryOnTree(inputs.a, inputs.b, function (itemA, itemB) {
1003
+ if (itemA === undefined || itemB === undefined)
1004
+ return DISCARD;
919
1005
  return itemA * itemB;
920
1006
  }, true),
921
1007
  }];
@@ -923,6 +1009,78 @@ var multiply = {
923
1009
  }); },
924
1010
  };
925
1011
 
1012
+ var pow = {
1013
+ name: "pow",
1014
+ label: "Power",
1015
+ description: "Power a number",
1016
+ inputs: {
1017
+ x: { type: "number", default: 0 },
1018
+ n: { type: "number", default: 2 },
1019
+ },
1020
+ outputs: {
1021
+ pow: "number",
1022
+ },
1023
+ impl: function (inputs) { return __awaiter(void 0, void 0, void 0, function () {
1024
+ return __generator(this, function (_a) {
1025
+ return [2 /*return*/, {
1026
+ pow: binaryOnTree(inputs.x, inputs.n, function (x, n) {
1027
+ if (x === undefined || n === undefined)
1028
+ return DISCARD;
1029
+ return Math.pow(x, n);
1030
+ }),
1031
+ }];
1032
+ });
1033
+ }); },
1034
+ };
1035
+
1036
+ var sinDeg = {
1037
+ name: "sinDeg",
1038
+ label: "Sine",
1039
+ description: "Sine of angle in degrees",
1040
+ inputs: {
1041
+ a: { type: "number", default: 0 },
1042
+ },
1043
+ outputs: {
1044
+ sin: "number",
1045
+ },
1046
+ impl: function (inputs) { return __awaiter(void 0, void 0, void 0, function () {
1047
+ return __generator(this, function (_a) {
1048
+ return [2 /*return*/, {
1049
+ sin: mapTree(inputs.a, function (angle) {
1050
+ if (angle === undefined)
1051
+ return DISCARD;
1052
+ return Math.sin((angle * Math.PI) / 180);
1053
+ }),
1054
+ }];
1055
+ });
1056
+ }); },
1057
+ };
1058
+
1059
+ var sqrt = {
1060
+ name: "sqrt",
1061
+ label: "Square root",
1062
+ description: "Square root of a number",
1063
+ inputs: {
1064
+ x: { type: "number", default: 0 },
1065
+ },
1066
+ outputs: {
1067
+ sqrt: "number",
1068
+ },
1069
+ impl: function (inputs) { return __awaiter(void 0, void 0, void 0, function () {
1070
+ return __generator(this, function (_a) {
1071
+ return [2 /*return*/, {
1072
+ sqrt: mapTree(inputs.x, function (x) {
1073
+ if (x === undefined)
1074
+ return DISCARD;
1075
+ if (x < 0)
1076
+ return DISCARD;
1077
+ return Math.sqrt(x);
1078
+ }),
1079
+ }];
1080
+ });
1081
+ }); },
1082
+ };
1083
+
926
1084
  var subtract$1 = {
927
1085
  name: "subtract",
928
1086
  label: "Subtract",
@@ -938,6 +1096,8 @@ var subtract$1 = {
938
1096
  return __generator(this, function (_a) {
939
1097
  return [2 /*return*/, {
940
1098
  difference: binaryOnTree(inputs.a, inputs.b, function (itemA, itemB) {
1099
+ if (itemA === undefined || itemB === undefined)
1100
+ return DISCARD;
941
1101
  return itemA - itemB;
942
1102
  }, true),
943
1103
  }];
@@ -945,15 +1105,45 @@ var subtract$1 = {
945
1105
  }); },
946
1106
  };
947
1107
 
1108
+ var tanDeg = {
1109
+ name: "tanDeg",
1110
+ label: "Tangent",
1111
+ description: "Tangent of angle in degrees",
1112
+ inputs: {
1113
+ a: { type: "number", default: 0 },
1114
+ },
1115
+ outputs: {
1116
+ tan: "number",
1117
+ },
1118
+ impl: function (inputs) { return __awaiter(void 0, void 0, void 0, function () {
1119
+ return __generator(this, function (_a) {
1120
+ return [2 /*return*/, {
1121
+ tan: mapTree(inputs.a, function (angle) {
1122
+ if (angle === undefined)
1123
+ return DISCARD;
1124
+ return Math.tan((angle * Math.PI) / 180);
1125
+ }),
1126
+ }];
1127
+ });
1128
+ }); },
1129
+ };
1130
+
948
1131
  var _a$5;
949
1132
  var primitives$5 = (_a$5 = {},
950
1133
  _a$5[calc.name] = calc,
1134
+ _a$5[equalTo.name] = equalTo,
951
1135
  _a$5[lessThan.name] = lessThan,
952
1136
  _a$5[greaterThan.name] = greaterThan,
953
1137
  _a$5[add$1.name] = add$1,
954
1138
  _a$5[subtract$1.name] = subtract$1,
955
1139
  _a$5[multiply.name] = multiply,
956
1140
  _a$5[divide.name] = divide,
1141
+ _a$5[modulo.name] = modulo,
1142
+ _a$5[sinDeg.name] = sinDeg,
1143
+ _a$5[cosDeg.name] = cosDeg,
1144
+ _a$5[tanDeg.name] = tanDeg,
1145
+ _a$5[sqrt.name] = sqrt,
1146
+ _a$5[pow.name] = pow,
957
1147
  _a$5);
958
1148
 
959
1149
  var filterList = {
@@ -964,24 +1154,35 @@ var filterList = {
964
1154
  list: "any",
965
1155
  keep: "boolean",
966
1156
  },
1157
+ params: {
1158
+ removeEmpty: { type: "boolean", default: false },
1159
+ },
967
1160
  outputs: {
968
1161
  list: "any",
969
1162
  others: "any",
970
1163
  },
971
- impl: function (inputs) { return __awaiter(void 0, void 0, void 0, function () {
1164
+ impl: function (inputs, params) { return __awaiter(void 0, void 0, void 0, function () {
972
1165
  return __generator(this, function (_a) {
973
1166
  return [2 /*return*/, {
974
1167
  list: binaryOnTreeBranch(inputs.list || {}, inputs.keep || {}, function (branchA, branchB) {
975
- return branchA.filter(function (item, index) {
1168
+ var result = branchA.filter(function (item, index) {
976
1169
  return (branchB[Math.min(index, branchB.length - 1)] ===
977
1170
  true);
978
1171
  });
1172
+ if (!result.length && params.removeEmpty) {
1173
+ return DISCARD;
1174
+ }
1175
+ return result;
979
1176
  }),
980
1177
  others: binaryOnTreeBranch(inputs.list || {}, inputs.keep || {}, function (branchA, branchB) {
981
- return branchA.filter(function (item, index) {
1178
+ var result = branchA.filter(function (item, index) {
982
1179
  return (branchB[Math.min(index, branchB.length - 1)] ===
983
1180
  false);
984
1181
  });
1182
+ if (!result.length && params.removeEmpty) {
1183
+ return DISCARD;
1184
+ }
1185
+ return result;
985
1186
  }),
986
1187
  }];
987
1188
  });
@@ -1121,6 +1322,45 @@ var shiftList = {
1121
1322
  }); },
1122
1323
  };
1123
1324
 
1325
+ var cartesianGroups = {
1326
+ name: "cartesianGroups",
1327
+ label: "Cartesian Groups",
1328
+ description: "Duplicate groups such that all pairings are created.",
1329
+ inputs: {
1330
+ treeA: "any",
1331
+ treeB: "any",
1332
+ },
1333
+ params: {},
1334
+ outputs: {
1335
+ treeA: "any",
1336
+ treeB: "any",
1337
+ },
1338
+ impl: function (inputs, params) { return __awaiter(void 0, void 0, void 0, function () {
1339
+ var pathsA, pathsB, treeA, treeB;
1340
+ return __generator(this, function (_a) {
1341
+ if (!inputs.treeA || !inputs.treeB) {
1342
+ return [2 /*return*/, {}];
1343
+ }
1344
+ pathsA = getPaths(inputs.treeA);
1345
+ pathsB = getPaths(inputs.treeB);
1346
+ treeA = {};
1347
+ treeB = {};
1348
+ pathsB.forEach(function (pathB, ib) {
1349
+ pathsA.forEach(function (pathA, ia) {
1350
+ var pa = "".concat(ib, ";").concat(pathA);
1351
+ treeA[pa] = inputs.treeA[pathA];
1352
+ var pb = "".concat(pathB, ";").concat(ia);
1353
+ treeB[pb] = inputs.treeB[pathB];
1354
+ });
1355
+ });
1356
+ return [2 /*return*/, {
1357
+ treeA: treeA,
1358
+ treeB: treeB,
1359
+ }];
1360
+ });
1361
+ }); },
1362
+ };
1363
+
1124
1364
  var _a$4;
1125
1365
  var primitives$4 = (_a$4 = {},
1126
1366
  _a$4[splitGroup.name] = splitGroup,
@@ -1129,6 +1369,7 @@ var primitives$4 = (_a$4 = {},
1129
1369
  _a$4[listLength.name] = listLength,
1130
1370
  _a$4[filterList.name] = filterList,
1131
1371
  _a$4[shiftList.name] = shiftList,
1372
+ _a$4[cartesianGroups.name] = cartesianGroups,
1132
1373
  _a$4);
1133
1374
 
1134
1375
  var series = {
@@ -1200,9 +1441,32 @@ var mergeTree = {
1200
1441
  }); },
1201
1442
  };
1202
1443
 
1444
+ var simplifyTree = {
1445
+ name: "simplifyTree",
1446
+ label: "Simplify Tree",
1447
+ description: "Simplify a tree by removing redundant groups.",
1448
+ inputs: {
1449
+ tree: "any",
1450
+ },
1451
+ outputs: {
1452
+ tree: "any",
1453
+ },
1454
+ impl: function (inputs) { return __awaiter(void 0, void 0, void 0, function () {
1455
+ return __generator(this, function (_a) {
1456
+ if (!inputs.tree) {
1457
+ return [2 /*return*/, {}];
1458
+ }
1459
+ return [2 /*return*/, {
1460
+ tree: simplifyTree$1(inputs.tree),
1461
+ }];
1462
+ });
1463
+ }); },
1464
+ };
1465
+
1203
1466
  var _a$2;
1204
1467
  var primitives$2 = (_a$2 = {},
1205
1468
  _a$2[mergeTree.name] = mergeTree,
1469
+ _a$2[simplifyTree.name] = simplifyTree,
1206
1470
  _a$2);
1207
1471
 
1208
1472
  var groupAnd = {
@@ -1218,7 +1482,7 @@ var groupAnd = {
1218
1482
  impl: function (inputs) { return __awaiter(void 0, void 0, void 0, function () {
1219
1483
  return __generator(this, function (_a) {
1220
1484
  return [2 /*return*/, {
1221
- result: mapTreeBranch(inputs.tree, function (branch) {
1485
+ result: mapTreeBranch(inputs.tree || {}, function (branch) {
1222
1486
  return [branch.reduce(function (acc, val) { return acc && val; }, true)];
1223
1487
  }),
1224
1488
  }];
@@ -1239,7 +1503,7 @@ var groupOr = {
1239
1503
  impl: function (inputs) { return __awaiter(void 0, void 0, void 0, function () {
1240
1504
  return __generator(this, function (_a) {
1241
1505
  return [2 /*return*/, {
1242
- result: mapTreeBranch(inputs.tree, function (branch) {
1506
+ result: mapTreeBranch(inputs.tree || {}, function (branch) {
1243
1507
  return [branch.reduce(function (acc, val) { return acc || val; }, false)];
1244
1508
  }),
1245
1509
  }];
@@ -6153,5 +6417,5 @@ function DDContext(_a) {
6153
6417
  return React.createElement(DndProvider, { backend: HTML5Backend }, children);
6154
6418
  }
6155
6419
 
6156
- export { DDContext, DISCARD, Engine, Flow, Lib, binaryOnTree, binaryOnTreeBranch, broadCast, expandTree, getBranch, getReferences, getValue$1 as getValue, graftTree, hasReference, interpolate, isReference, isSingleTon, isTree, mapTree, mapTreeBranch, nAryOnTree, nAryOnTreeBranch, normalizeVarDef, parseReference, primitives, sameShape, simplifyTree, toArray, topSort, treeSize, trimTree, uid$1 as uid, useDraggableNode, useFlow, useFunction, usePositions, useUpdatePositions, useVariable };
6420
+ export { DDContext, DISCARD, Engine, Flow, Lib, binaryOnTree, binaryOnTreeBranch, broadCast, expandTree, getBranch, getPaths, getReferences, getValue$1 as getValue, graftTree, hasReference, interpolate, isReference, isSingleTon, isTree, mapTree, mapTreeBranch, nAryOnTree, nAryOnTreeBranch, normalizeVarDef, parseReference, primitives, sameShape, simplifyTree$1 as simplifyTree, toArray, topSort, treeSize, trimTree, uid$1 as uid, useDraggableNode, useFlow, useFunction, usePositions, useUpdatePositions, useVariable };
6157
6421
  //# sourceMappingURL=index.esm.js.map