@rkmodules/rules 0.0.66 → 0.0.68

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.
@@ -93,7 +93,6 @@
93
93
  box-shadow: 0px 0px 3px 2px var(--node-active-line);
94
94
  }
95
95
 
96
-
97
96
  .Log_dsq5e {
98
97
  --bg: var(--log-background, var(--node-background));
99
98
  --ln: var(--log-line, var(--node-line));
@@ -120,7 +119,6 @@
120
119
  position: relative;
121
120
  }
122
121
 
123
-
124
122
  .DefaultNode_R2P6c input,
125
123
  .DefaultNode_R2P6c select {
126
124
  border: 1px solid var(--ln);
@@ -129,7 +127,6 @@
129
127
  box-sizing: border-box;
130
128
  }
131
129
 
132
-
133
130
  .Description_f9s4l {
134
131
  font-size: 0.8em;
135
132
  opacity: 0.7;
@@ -140,10 +137,6 @@
140
137
  max-width: 200px;
141
138
  }
142
139
 
143
-
144
-
145
-
146
-
147
140
  .PreviewHead_oFT4K {
148
141
  margin-top: 16px;
149
142
  text-align: center;
@@ -154,15 +147,17 @@
154
147
  gap: 8px;
155
148
  color: #444;
156
149
  }
157
- .PreviewHead_oFT4K::before, .PreviewHead_oFT4K::after {
158
- content: '🠻';
150
+ .PreviewHead_oFT4K::before,
151
+ .PreviewHead_oFT4K::after {
152
+ content: "🠻";
159
153
  }
160
- .PreviewHead_oFT4K.expanded_3vnbi::before, .PreviewHead_oFT4K.expanded_3vnbi::after {
161
- content: '🠹';
154
+ .PreviewHead_oFT4K.expanded_3vnbi::before,
155
+ .PreviewHead_oFT4K.expanded_3vnbi::after {
156
+ content: "🠹";
162
157
  }
163
158
 
164
159
  .Preview_HbkZ6 {
165
- background-color: rgba(0,0,0,0.1);
160
+ background-color: rgba(0, 0, 0, 0.1);
166
161
  border-top: 1px solid var(--ln);
167
162
  padding: 4px;
168
163
  max-height: 300px;
@@ -178,7 +173,6 @@
178
173
  border-top: 1px solid var(--ln);
179
174
  }
180
175
 
181
-
182
176
  .Table_aZyRT {
183
177
  margin: 2px;
184
178
  max-height: 400px;
@@ -189,14 +183,13 @@
189
183
  border: 1px solid var(--ln);
190
184
  }
191
185
 
192
-
193
186
  .GroupHead_QJhST {
194
187
  display: flex;
195
188
  align-items: center;
196
- height: 22px;;
189
+ height: 22px;
197
190
  }
198
191
  .GroupHead_QJhST::before {
199
- content: '🢒';
192
+ content: "🢒";
200
193
  display: flex;
201
194
  width: 22px;
202
195
  height: 22px;
@@ -205,11 +198,25 @@
205
198
  text-align: center;
206
199
  font-size: 1.8em;
207
200
  color: var(--type-color);
201
+ transform: rotate(0deg);
202
+ transition: transform 0.2s ease;
203
+ }
204
+ .GroupHead_QJhST.expanded_3vnbi::before {
208
205
  transform: rotate(90deg);
209
206
  }
210
- .GroupHead_QJhST span {
211
- opacity: 0.7;
207
+ .GroupName_Qvu4r {
208
+ opacity: 0.6;
209
+ font-style: italic;
210
+ flex: 1;
211
+ }
212
+ .GroupCnt_3ctdd {
213
+ opacity: 0.6;
214
+ font-style: italic;
215
+ }
216
+ .GroupMore_D1Kiz {
217
+ opacity: 0.6;
212
218
  font-style: italic;
219
+ text-align: center;
213
220
  }
214
221
 
215
222
  .GroupChildren_NKx-B {
package/dist/index.cjs.js CHANGED
@@ -138,7 +138,7 @@ var DISCARD = Symbol("DISCARD");
138
138
  * @param tree
139
139
  * @returns
140
140
  */
141
- function simplifyTree(tree) {
141
+ function simplifyTree$1(tree) {
142
142
  var keys = Object.keys(tree);
143
143
  if (keys.length <= 1)
144
144
  return tree; // ✅ Don't simplify if only one path
@@ -254,6 +254,9 @@ function broadCast(value) {
254
254
  function getBranch(tree, path) {
255
255
  return tree[path];
256
256
  }
257
+ function getPaths(tree) {
258
+ return Object.keys(tree);
259
+ }
257
260
  /**
258
261
  * 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
259
262
  * @param tree
@@ -653,6 +656,8 @@ var add$1 = {
653
656
  return __generator(this, function (_a) {
654
657
  return [2 /*return*/, {
655
658
  sum: binaryOnTree(inputs.a, inputs.b, function (itemA, itemB) {
659
+ if (itemA === undefined || itemB === undefined)
660
+ return DISCARD;
656
661
  return itemA + itemB;
657
662
  }, true),
658
663
  }];
@@ -819,6 +824,29 @@ function getUnboundSymbols(expr, scope, extraBound) {
819
824
  return Array.from(free).sort();
820
825
  }
821
826
 
827
+ var cosDeg = {
828
+ name: "cosDeg",
829
+ label: "Cosine",
830
+ description: "Cosine of angle in degrees",
831
+ inputs: {
832
+ a: { type: "number", default: 0 },
833
+ },
834
+ outputs: {
835
+ cos: "number",
836
+ },
837
+ impl: function (inputs) { return __awaiter(void 0, void 0, void 0, function () {
838
+ return __generator(this, function (_a) {
839
+ return [2 /*return*/, {
840
+ cos: mapTree(inputs.a, function (angle) {
841
+ if (angle === undefined)
842
+ return DISCARD;
843
+ return Math.cos((angle * Math.PI) / 180);
844
+ }),
845
+ }];
846
+ });
847
+ }); },
848
+ };
849
+
822
850
  var divide = {
823
851
  name: "divide",
824
852
  label: "Divide",
@@ -834,6 +862,8 @@ var divide = {
834
862
  return __generator(this, function (_a) {
835
863
  return [2 /*return*/, {
836
864
  quotient: binaryOnTree(inputs.a, inputs.b, function (itemA, itemB) {
865
+ if (itemA === undefined || itemB === undefined)
866
+ return DISCARD;
837
867
  if (itemB === 0)
838
868
  return DISCARD;
839
869
  return itemA / itemB;
@@ -903,6 +933,30 @@ var lessThan = {
903
933
  }); },
904
934
  };
905
935
 
936
+ var modulo = {
937
+ name: "modulo",
938
+ label: "Modulo",
939
+ description: "Division remainder of two numbers",
940
+ inputs: {
941
+ a: { type: "number", default: 1 },
942
+ b: { type: "number", default: 1 },
943
+ },
944
+ outputs: {
945
+ mod: "number",
946
+ },
947
+ impl: function (inputs) { return __awaiter(void 0, void 0, void 0, function () {
948
+ return __generator(this, function (_a) {
949
+ return [2 /*return*/, {
950
+ mod: binaryOnTree(inputs.a, inputs.b, function (itemA, itemB) {
951
+ if (itemA === undefined || itemB === undefined)
952
+ return DISCARD;
953
+ return itemA % itemB;
954
+ }, true),
955
+ }];
956
+ });
957
+ }); },
958
+ };
959
+
906
960
  var multiply = {
907
961
  name: "multiply",
908
962
  label: "Multiply",
@@ -918,6 +972,8 @@ var multiply = {
918
972
  return __generator(this, function (_a) {
919
973
  return [2 /*return*/, {
920
974
  product: binaryOnTree(inputs.a, inputs.b, function (itemA, itemB) {
975
+ if (itemA === undefined || itemB === undefined)
976
+ return DISCARD;
921
977
  return itemA * itemB;
922
978
  }, true),
923
979
  }];
@@ -925,6 +981,78 @@ var multiply = {
925
981
  }); },
926
982
  };
927
983
 
984
+ var pow = {
985
+ name: "pow",
986
+ label: "Power",
987
+ description: "Power a number",
988
+ inputs: {
989
+ x: { type: "number", default: 0 },
990
+ n: { type: "number", default: 2 },
991
+ },
992
+ outputs: {
993
+ pow: "number",
994
+ },
995
+ impl: function (inputs) { return __awaiter(void 0, void 0, void 0, function () {
996
+ return __generator(this, function (_a) {
997
+ return [2 /*return*/, {
998
+ pow: binaryOnTree(inputs.x, inputs.n, function (x, n) {
999
+ if (x === undefined || n === undefined)
1000
+ return DISCARD;
1001
+ return Math.pow(x, n);
1002
+ }),
1003
+ }];
1004
+ });
1005
+ }); },
1006
+ };
1007
+
1008
+ var sinDeg = {
1009
+ name: "sinDeg",
1010
+ label: "Sine",
1011
+ description: "Sine of angle in degrees",
1012
+ inputs: {
1013
+ a: { type: "number", default: 0 },
1014
+ },
1015
+ outputs: {
1016
+ sin: "number",
1017
+ },
1018
+ impl: function (inputs) { return __awaiter(void 0, void 0, void 0, function () {
1019
+ return __generator(this, function (_a) {
1020
+ return [2 /*return*/, {
1021
+ sin: mapTree(inputs.a, function (angle) {
1022
+ if (angle === undefined)
1023
+ return DISCARD;
1024
+ return Math.sin((angle * Math.PI) / 180);
1025
+ }),
1026
+ }];
1027
+ });
1028
+ }); },
1029
+ };
1030
+
1031
+ var sqrt = {
1032
+ name: "sqrt",
1033
+ label: "Square root",
1034
+ description: "Square root of a number",
1035
+ inputs: {
1036
+ x: { type: "number", default: 0 },
1037
+ },
1038
+ outputs: {
1039
+ sqrt: "number",
1040
+ },
1041
+ impl: function (inputs) { return __awaiter(void 0, void 0, void 0, function () {
1042
+ return __generator(this, function (_a) {
1043
+ return [2 /*return*/, {
1044
+ sqrt: mapTree(inputs.x, function (x) {
1045
+ if (x === undefined)
1046
+ return DISCARD;
1047
+ if (x < 0)
1048
+ return DISCARD;
1049
+ return Math.sqrt(x);
1050
+ }),
1051
+ }];
1052
+ });
1053
+ }); },
1054
+ };
1055
+
928
1056
  var subtract$1 = {
929
1057
  name: "subtract",
930
1058
  label: "Subtract",
@@ -940,6 +1068,8 @@ var subtract$1 = {
940
1068
  return __generator(this, function (_a) {
941
1069
  return [2 /*return*/, {
942
1070
  difference: binaryOnTree(inputs.a, inputs.b, function (itemA, itemB) {
1071
+ if (itemA === undefined || itemB === undefined)
1072
+ return DISCARD;
943
1073
  return itemA - itemB;
944
1074
  }, true),
945
1075
  }];
@@ -947,6 +1077,29 @@ var subtract$1 = {
947
1077
  }); },
948
1078
  };
949
1079
 
1080
+ var tanDeg = {
1081
+ name: "tanDeg",
1082
+ label: "Tangent",
1083
+ description: "Tangent of angle in degrees",
1084
+ inputs: {
1085
+ a: { type: "number", default: 0 },
1086
+ },
1087
+ outputs: {
1088
+ tan: "number",
1089
+ },
1090
+ impl: function (inputs) { return __awaiter(void 0, void 0, void 0, function () {
1091
+ return __generator(this, function (_a) {
1092
+ return [2 /*return*/, {
1093
+ tan: mapTree(inputs.a, function (angle) {
1094
+ if (angle === undefined)
1095
+ return DISCARD;
1096
+ return Math.tan((angle * Math.PI) / 180);
1097
+ }),
1098
+ }];
1099
+ });
1100
+ }); },
1101
+ };
1102
+
950
1103
  var _a$5;
951
1104
  var primitives$5 = (_a$5 = {},
952
1105
  _a$5[calc.name] = calc,
@@ -956,6 +1109,12 @@ var primitives$5 = (_a$5 = {},
956
1109
  _a$5[subtract$1.name] = subtract$1,
957
1110
  _a$5[multiply.name] = multiply,
958
1111
  _a$5[divide.name] = divide,
1112
+ _a$5[modulo.name] = modulo,
1113
+ _a$5[sinDeg.name] = sinDeg,
1114
+ _a$5[cosDeg.name] = cosDeg,
1115
+ _a$5[tanDeg.name] = tanDeg,
1116
+ _a$5[sqrt.name] = sqrt,
1117
+ _a$5[pow.name] = pow,
959
1118
  _a$5);
960
1119
 
961
1120
  var filterList = {
@@ -1031,6 +1190,7 @@ var listItem = {
1031
1190
  if (indices) {
1032
1191
  return indices.map(function (i) { return branch[i]; });
1033
1192
  }
1193
+ return DISCARD;
1034
1194
  });
1035
1195
  others = binaryOnTreeBranch(inputs.list || {}, inputs.index || {}, function (branch, indices) {
1036
1196
  return branch.filter(function (_, i) { return !(indices === null || indices === void 0 ? void 0 : indices.includes(i)); });
@@ -1106,7 +1266,7 @@ var shiftList = {
1106
1266
  return [2 /*return*/, {
1107
1267
  list: nAryOnTreeBranch([inputs.list || {}, inputs.step || {}, inputs.wrap || {}], function (_a) {
1108
1268
  var _b;
1109
- var _c = __read(_a, 3), list = _c[0], step = _c[1], wrap = _c[2];
1269
+ var _c = __read(_a, 3), _d = _c[0], list = _d === void 0 ? [] : _d, _e = _c[1], step = _e === void 0 ? [] : _e, _f = _c[2], wrap = _f === void 0 ? [] : _f;
1110
1270
  var n = (_b = step[0]) !== null && _b !== void 0 ? _b : 1;
1111
1271
  if (wrap[0]) {
1112
1272
  n = n % (list.length || 1);
@@ -1122,6 +1282,45 @@ var shiftList = {
1122
1282
  }); },
1123
1283
  };
1124
1284
 
1285
+ var cartesianGroups = {
1286
+ name: "cartesianGroups",
1287
+ label: "Cartesian Groups",
1288
+ description: "Duplicate groups such that all pairings are created.",
1289
+ inputs: {
1290
+ treeA: "any",
1291
+ treeB: "any",
1292
+ },
1293
+ params: {},
1294
+ outputs: {
1295
+ treeA: "any",
1296
+ treeB: "any",
1297
+ },
1298
+ impl: function (inputs, params) { return __awaiter(void 0, void 0, void 0, function () {
1299
+ var pathsA, pathsB, treeA, treeB;
1300
+ return __generator(this, function (_a) {
1301
+ if (!inputs.treeA || !inputs.treeB) {
1302
+ return [2 /*return*/, {}];
1303
+ }
1304
+ pathsA = getPaths(inputs.treeA);
1305
+ pathsB = getPaths(inputs.treeB);
1306
+ treeA = {};
1307
+ treeB = {};
1308
+ pathsB.forEach(function (pathB, ib) {
1309
+ pathsA.forEach(function (pathA, ia) {
1310
+ var pa = "".concat(ib, ";").concat(pathA);
1311
+ treeA[pa] = inputs.treeA[pathA];
1312
+ var pb = "".concat(pathB, ";").concat(ia);
1313
+ treeB[pb] = inputs.treeB[pathB];
1314
+ });
1315
+ });
1316
+ return [2 /*return*/, {
1317
+ treeA: treeA,
1318
+ treeB: treeB,
1319
+ }];
1320
+ });
1321
+ }); },
1322
+ };
1323
+
1125
1324
  var _a$4;
1126
1325
  var primitives$4 = (_a$4 = {},
1127
1326
  _a$4[splitGroup.name] = splitGroup,
@@ -1130,6 +1329,7 @@ var primitives$4 = (_a$4 = {},
1130
1329
  _a$4[listLength.name] = listLength,
1131
1330
  _a$4[filterList.name] = filterList,
1132
1331
  _a$4[shiftList.name] = shiftList,
1332
+ _a$4[cartesianGroups.name] = cartesianGroups,
1133
1333
  _a$4);
1134
1334
 
1135
1335
  var series = {
@@ -1152,7 +1352,10 @@ var series = {
1152
1352
  graftTree(inputs.step),
1153
1353
  graftTree(inputs.count),
1154
1354
  ], function (_a) {
1155
- var _b = __read(_a, 3), _c = __read(_b[0], 1), _d = _c[0], start = _d === void 0 ? 0 : _d, _e = __read(_b[1], 1), _f = _e[0], step = _f === void 0 ? 1 : _f, _g = __read(_b[2], 1), _h = _g[0], count = _h === void 0 ? 10 : _h;
1355
+ var _b = __read(_a, 3), _c = _b[0], starts = _c === void 0 ? [] : _c, _d = _b[1], steps = _d === void 0 ? [] : _d, _e = _b[2], counts = _e === void 0 ? [] : _e;
1356
+ var start = starts[0];
1357
+ var step = steps[0];
1358
+ var count = counts[0];
1156
1359
  var series = [];
1157
1360
  for (var i = 0; i < count; i++) {
1158
1361
  series.push(start + i * step);
@@ -1198,9 +1401,32 @@ var mergeTree = {
1198
1401
  }); },
1199
1402
  };
1200
1403
 
1404
+ var simplifyTree = {
1405
+ name: "simplifyTree",
1406
+ label: "Simplify Tree",
1407
+ description: "Simplify a tree by removing redundant groups.",
1408
+ inputs: {
1409
+ tree: "any",
1410
+ },
1411
+ outputs: {
1412
+ tree: "any",
1413
+ },
1414
+ impl: function (inputs) { return __awaiter(void 0, void 0, void 0, function () {
1415
+ return __generator(this, function (_a) {
1416
+ if (!inputs.tree) {
1417
+ return [2 /*return*/, {}];
1418
+ }
1419
+ return [2 /*return*/, {
1420
+ tree: simplifyTree$1(inputs.tree),
1421
+ }];
1422
+ });
1423
+ }); },
1424
+ };
1425
+
1201
1426
  var _a$2;
1202
1427
  var primitives$2 = (_a$2 = {},
1203
1428
  _a$2[mergeTree.name] = mergeTree,
1429
+ _a$2[simplifyTree.name] = simplifyTree,
1204
1430
  _a$2);
1205
1431
 
1206
1432
  var groupAnd = {
@@ -4525,7 +4751,7 @@ var Output = function (_a) {
4525
4751
  normalized.label || name)));
4526
4752
  };
4527
4753
 
4528
- var styles = {"DefaultNode":"DefaultNode_R2P6c","selected":"selected_VmB-F","active":"active_zjUzx","Log":"Log_dsq5e","Label":"Label_wBwWA","Description":"Description_f9s4l","PreviewHead":"PreviewHead_oFT4K","expanded":"expanded_3vnbi","Preview":"Preview_HbkZ6","Duration":"Duration_0jqWx","GroupHead":"GroupHead_QJhST","GroupChildren":"GroupChildren_NKx-B","GroupLeaf":"GroupLeaf_eliT8"};
4754
+ var styles = {"DefaultNode":"DefaultNode_R2P6c","selected":"selected_VmB-F","active":"active_zjUzx","Log":"Log_dsq5e","Label":"Label_wBwWA","Description":"Description_f9s4l","PreviewHead":"PreviewHead_oFT4K","expanded":"expanded_3vnbi","Preview":"Preview_HbkZ6","Duration":"Duration_0jqWx","GroupHead":"GroupHead_QJhST","GroupName":"GroupName_Qvu4r","GroupCnt":"GroupCnt_3ctdd","GroupMore":"GroupMore_D1Kiz","GroupChildren":"GroupChildren_NKx-B","GroupLeaf":"GroupLeaf_eliT8"};
4529
4755
 
4530
4756
  function NodeContainer(_a) {
4531
4757
  var _b;
@@ -4562,48 +4788,67 @@ function NodeContainer(_a) {
4562
4788
 
4563
4789
  function createTreeStructure(tree) {
4564
4790
  var keys = Object.keys(tree);
4565
- var structure = [];
4791
+ var structure = { name: "root", children: [] };
4566
4792
  keys.forEach(function (key) {
4567
4793
  var path = key.split(";");
4568
4794
  var parent = structure;
4569
4795
  for (var i = 0; i < path.length; i++) {
4570
4796
  var part = parseInt(path[i], 10);
4571
- if (!parent[part]) {
4572
- parent[part] = [];
4797
+ if (!parent.children[part]) {
4798
+ parent.children[part] = {
4799
+ name: path.slice(0, i + 1).join(";"),
4800
+ children: [],
4801
+ };
4573
4802
  }
4574
- parent = parent[part];
4803
+ parent = parent.children[part];
4575
4804
  }
4576
- parent.push({ items: tree[key] });
4805
+ parent.items = tree[key];
4577
4806
  });
4578
4807
  return structure;
4579
4808
  }
4580
4809
  function TreeBranchView(_a) {
4581
- var branch = _a.branch, name = _a.name;
4810
+ var _b;
4811
+ var _c, _d;
4812
+ var branch = _a.branch;
4813
+ var _e = __read(React.useState(true), 2), expanded = _e[0], setExpanded = _e[1];
4814
+ var isLeaf = !!branch.items;
4815
+ var subCnt = branch.children.length || ((_c = branch.items) === null || _c === void 0 ? void 0 : _c.length) || 0;
4816
+ var maxCnt = 10;
4582
4817
  return (React.createElement("div", null,
4583
- React.createElement("div", { className: styles.GroupHead },
4584
- React.createElement("span", null,
4818
+ React.createElement("div", { className: classNames((_b = {}, _b[styles.expanded] = expanded, _b), styles.GroupHead), onClick: function () { return setExpanded(!expanded); } },
4819
+ React.createElement("div", { className: styles.GroupName },
4585
4820
  "group ",
4586
- name)),
4587
- React.createElement("div", { className: styles.GroupChildren }, branch.map(function (item, index) {
4588
- // sub branch
4589
- if (Array.isArray(item)) {
4590
- return (React.createElement(TreeBranchView, { key: index, branch: item, name: "".concat(name, ";").concat(index) }));
4591
- }
4592
- // items
4593
- return (React.createElement("div", { key: index }, item.items.map(function (it, i) {
4594
- var _a;
4595
- var label = (_a = it === null || it === void 0 ? void 0 : it.toString) === null || _a === void 0 ? void 0 : _a.call(it);
4596
- if (label === "[object Object]") {
4597
- label = "{...}";
4598
- }
4599
- return (React.createElement("div", { key: i, className: styles.GroupLeaf, title: JSON.stringify(it, null, 2) }, label));
4600
- })));
4601
- }))));
4821
+ branch.name),
4822
+ React.createElement("div", { className: styles.GroupCnt },
4823
+ "(",
4824
+ subCnt,
4825
+ ")")),
4826
+ expanded && (React.createElement("div", { className: styles.GroupChildren },
4827
+ !isLeaf &&
4828
+ branch.children.map(function (subgroup, index) {
4829
+ // sub branch
4830
+ return (React.createElement(TreeBranchView, { key: index, branch: subgroup }));
4831
+ }),
4832
+ isLeaf && (React.createElement(React.Fragment, null, (_d = branch.items) === null || _d === void 0 ? void 0 :
4833
+ _d.slice(0, maxCnt).map(function (item, index) {
4834
+ var _a;
4835
+ // items
4836
+ var label = (_a = item === null || item === void 0 ? void 0 : item.toString) === null || _a === void 0 ? void 0 : _a.call(item);
4837
+ if (label === "[object Object]") {
4838
+ label = "{...}";
4839
+ }
4840
+ return (React.createElement("div", { key: index },
4841
+ React.createElement("div", { className: styles.GroupLeaf, title: JSON.stringify(item, null, 2) }, label)));
4842
+ }),
4843
+ branch.items && branch.items.length > maxCnt && (React.createElement("div", { className: styles.GroupMore },
4844
+ "... ",
4845
+ branch.items.length - maxCnt,
4846
+ " more"))))))));
4602
4847
  }
4603
4848
  function TreeView(_a) {
4604
4849
  var value = _a.value;
4605
4850
  var structure = createTreeStructure(value || {});
4606
- return (React.createElement("div", null, structure.map(function (branch, index) { return (React.createElement(TreeBranchView, { key: index, branch: branch, name: index })); })));
4851
+ return (React.createElement("div", null, structure.children.map(function (branch, index) { return (React.createElement(TreeBranchView, { key: index, branch: branch })); })));
4607
4852
  }
4608
4853
  var Log = React.memo(function (_a) {
4609
4854
  var id = _a.id, data = _a.data, selected = _a.selected;
@@ -4639,9 +4884,10 @@ function GenericNode(_a) {
4639
4884
  var previewValue = focus ? result[focus] : Object.values(result)[0];
4640
4885
  React.useEffect(function () {
4641
4886
  return engine.subscribe("functionResult", function (event) {
4887
+ var _a;
4642
4888
  if (event.name === id) {
4643
4889
  setResult(event.result || {});
4644
- setDuration(event.duration || null);
4890
+ setDuration((_a = event.duration) !== null && _a !== void 0 ? _a : null);
4645
4891
  }
4646
4892
  });
4647
4893
  }, []);
@@ -4666,7 +4912,7 @@ function GenericNode(_a) {
4666
4912
  _b)), onClick: function () { return setShowPreview(!showPreview); } }, "Preview"),
4667
4913
  showPreview && (React.createElement("div", { className: styles.Preview },
4668
4914
  React.createElement(TreeView, { value: previewValue }),
4669
- duration && (React.createElement("div", { className: styles.Duration },
4915
+ duration !== null && (React.createElement("div", { className: styles.Duration },
4670
4916
  duration.toFixed(2),
4671
4917
  " ms"))))));
4672
4918
  }
@@ -6141,6 +6387,7 @@ exports.binaryOnTreeBranch = binaryOnTreeBranch;
6141
6387
  exports.broadCast = broadCast;
6142
6388
  exports.expandTree = expandTree;
6143
6389
  exports.getBranch = getBranch;
6390
+ exports.getPaths = getPaths;
6144
6391
  exports.getReferences = getReferences;
6145
6392
  exports.getValue = getValue$1;
6146
6393
  exports.graftTree = graftTree;
@@ -6157,7 +6404,7 @@ exports.normalizeVarDef = normalizeVarDef;
6157
6404
  exports.parseReference = parseReference;
6158
6405
  exports.primitives = primitives;
6159
6406
  exports.sameShape = sameShape;
6160
- exports.simplifyTree = simplifyTree;
6407
+ exports.simplifyTree = simplifyTree$1;
6161
6408
  exports.toArray = toArray;
6162
6409
  exports.topSort = topSort;
6163
6410
  exports.treeSize = treeSize;