@rkmodules/rules 0.0.93 → 0.0.95
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.css +0 -1
- package/dist/index.cjs.js +349 -166
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.css +0 -1
- package/dist/index.esm.js +349 -166
- package/dist/index.esm.js.map +1 -1
- package/dist/lib/DataTree/index.d.ts +3 -3
- package/dist/lib/Primitives/{List/shiftList.d.ts → Group/groupAll.d.ts} +1 -1
- package/dist/lib/Primitives/List/listInput.d.ts +2 -0
- package/dist/lib/Primitives/Math/sum.d.ts +2 -0
- package/dist/lib/Primitives/String/index.d.ts +3 -0
- package/dist/lib/Primitives/String/joinStrings.d.ts +2 -0
- package/dist/lib/Primitives/String/toString.d.ts +2 -0
- package/dist/lib/Primitives/index.d.ts +2 -1
- package/package.json +1 -1
- /package/dist/lib/Primitives/{List → Group}/cartesianGroups.d.ts +0 -0
- /package/dist/lib/Primitives/{Tree → Group}/index.d.ts +0 -0
- /package/dist/lib/Primitives/{List → Group}/mergeGroup.d.ts +0 -0
- /package/dist/lib/Primitives/{Tree → Group}/mergeTree.d.ts +0 -0
- /package/dist/lib/Primitives/{Tree → Group}/simplifyTree.d.ts +0 -0
- /package/dist/lib/Primitives/{List → Group}/splitGroup.d.ts +0 -0
package/dist/index.esm.css
CHANGED
package/dist/index.esm.js
CHANGED
|
@@ -140,18 +140,19 @@ var DISCARD = Symbol("DISCARD");
|
|
|
140
140
|
*/
|
|
141
141
|
function simplifyTree$1(tree) {
|
|
142
142
|
var keys = Object.keys(tree);
|
|
143
|
-
if (keys.length <= 1)
|
|
144
|
-
return tree; // ✅ Don't simplify if only one path
|
|
145
143
|
// Parse all paths into number arrays
|
|
146
144
|
var parsedPaths = keys.map(function (path) { return path.split(";").map(Number); });
|
|
147
145
|
// Find common prefix
|
|
148
|
-
var prefixLength =
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
for (var
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
146
|
+
var prefixLength = 1;
|
|
147
|
+
if (keys.length > 1) {
|
|
148
|
+
prefixLength = parsedPaths[0].length;
|
|
149
|
+
for (var i = 1; i < parsedPaths.length; i++) {
|
|
150
|
+
var path = parsedPaths[i];
|
|
151
|
+
for (var j = 0; j < prefixLength; j++) {
|
|
152
|
+
if (path[j] !== parsedPaths[0][j]) {
|
|
153
|
+
prefixLength = j;
|
|
154
|
+
break;
|
|
155
|
+
}
|
|
155
156
|
}
|
|
156
157
|
}
|
|
157
158
|
}
|
|
@@ -271,10 +272,10 @@ function mapTree(tree, fn) {
|
|
|
271
272
|
});
|
|
272
273
|
}
|
|
273
274
|
function mapTreeBranch(tree, fn) {
|
|
274
|
-
return nAryOnTreeBranch([tree], function mapTreeBranchCallback(_a, _b) {
|
|
275
|
+
return nAryOnTreeBranch([tree], function mapTreeBranchCallback(_a, _b, index) {
|
|
275
276
|
var _c = __read(_a, 1), branch = _c[0];
|
|
276
277
|
var _d = __read(_b, 1), path = _d[0];
|
|
277
|
-
return fn(branch || [], path);
|
|
278
|
+
return fn(branch || [], path, index);
|
|
278
279
|
});
|
|
279
280
|
}
|
|
280
281
|
/**
|
|
@@ -298,7 +299,7 @@ function nAryOnTreeBranch(trees, fn) {
|
|
|
298
299
|
// get all the paths of which the trees are the longest, use the first
|
|
299
300
|
var maxPaths = paths.filter(function (_, i) { return allKeys[i].length === maxBranches; });
|
|
300
301
|
var path = maxPaths[0];
|
|
301
|
-
var newBranch = fn(branches, paths);
|
|
302
|
+
var newBranch = fn(branches, paths, i);
|
|
302
303
|
if (newBranch !== DISCARD) {
|
|
303
304
|
result[path] = newBranch;
|
|
304
305
|
}
|
|
@@ -364,10 +365,10 @@ function nAryOnTree(trees, fn, fill) {
|
|
|
364
365
|
* @returns
|
|
365
366
|
*/
|
|
366
367
|
function binaryOnTreeBranch(treeA, treeB, fn) {
|
|
367
|
-
return nAryOnTreeBranch([treeA, treeB], function binaryOnTreeBranchCallback(_a, _b) {
|
|
368
|
+
return nAryOnTreeBranch([treeA, treeB], function binaryOnTreeBranchCallback(_a, _b, index) {
|
|
368
369
|
var _c = __read(_a, 2), branchA = _c[0], branchB = _c[1];
|
|
369
370
|
var _d = __read(_b, 2), pathA = _d[0], pathB = _d[1];
|
|
370
|
-
return fn(branchA || [], branchB || [], pathA, pathB);
|
|
371
|
+
return fn(branchA || [], branchB || [], pathA, pathB, index);
|
|
371
372
|
});
|
|
372
373
|
}
|
|
373
374
|
/**
|
|
@@ -633,17 +634,17 @@ var value = {
|
|
|
633
634
|
}); },
|
|
634
635
|
};
|
|
635
636
|
|
|
636
|
-
var _a$
|
|
637
|
-
var primitives$
|
|
638
|
-
_a$
|
|
639
|
-
_a$
|
|
640
|
-
_a$
|
|
641
|
-
_a$
|
|
637
|
+
var _a$8;
|
|
638
|
+
var primitives$8 = (_a$8 = {},
|
|
639
|
+
_a$8[getValue.name] = getValue,
|
|
640
|
+
_a$8[log.name] = log,
|
|
641
|
+
_a$8[value.name] = value,
|
|
642
|
+
_a$8);
|
|
642
643
|
|
|
643
644
|
var add$1 = {
|
|
644
645
|
name: "add",
|
|
645
646
|
label: "Add",
|
|
646
|
-
description: "Add two numbers",
|
|
647
|
+
description: "Add two numbers or strings",
|
|
647
648
|
inputs: {
|
|
648
649
|
a: { type: "number", default: 0 },
|
|
649
650
|
b: { type: "number", default: 0 },
|
|
@@ -1136,16 +1137,21 @@ var ceil = {
|
|
|
1136
1137
|
inputs: {
|
|
1137
1138
|
x: { type: "number", default: 0 },
|
|
1138
1139
|
},
|
|
1140
|
+
params: {
|
|
1141
|
+
decimals: { type: "number", default: 0 },
|
|
1142
|
+
},
|
|
1139
1143
|
outputs: {
|
|
1140
1144
|
ceil: "number",
|
|
1141
1145
|
},
|
|
1142
|
-
impl: function (inputs) { return __awaiter(void 0, void 0, void 0, function () {
|
|
1146
|
+
impl: function (inputs, params) { return __awaiter(void 0, void 0, void 0, function () {
|
|
1147
|
+
var f;
|
|
1143
1148
|
return __generator(this, function (_a) {
|
|
1149
|
+
f = Math.pow(10, params.decimals || 0);
|
|
1144
1150
|
return [2 /*return*/, {
|
|
1145
1151
|
ceil: mapTree(inputs.x, function (x) {
|
|
1146
1152
|
if (x === undefined)
|
|
1147
1153
|
return DISCARD;
|
|
1148
|
-
return Math.ceil(x);
|
|
1154
|
+
return Math.ceil(f * x) / f;
|
|
1149
1155
|
}),
|
|
1150
1156
|
}];
|
|
1151
1157
|
});
|
|
@@ -1159,16 +1165,21 @@ var floor = {
|
|
|
1159
1165
|
inputs: {
|
|
1160
1166
|
x: { type: "number", default: 0 },
|
|
1161
1167
|
},
|
|
1168
|
+
params: {
|
|
1169
|
+
decimals: { type: "number", default: 0 },
|
|
1170
|
+
},
|
|
1162
1171
|
outputs: {
|
|
1163
1172
|
floor: "number",
|
|
1164
1173
|
},
|
|
1165
|
-
impl: function (inputs) { return __awaiter(void 0, void 0, void 0, function () {
|
|
1174
|
+
impl: function (inputs, params) { return __awaiter(void 0, void 0, void 0, function () {
|
|
1175
|
+
var f;
|
|
1166
1176
|
return __generator(this, function (_a) {
|
|
1177
|
+
f = Math.pow(10, params.decimals || 0);
|
|
1167
1178
|
return [2 /*return*/, {
|
|
1168
1179
|
floor: mapTree(inputs.x, function (x) {
|
|
1169
1180
|
if (x === undefined)
|
|
1170
1181
|
return DISCARD;
|
|
1171
|
-
return Math.floor(x);
|
|
1182
|
+
return Math.floor(f * x) / f;
|
|
1172
1183
|
}),
|
|
1173
1184
|
}];
|
|
1174
1185
|
});
|
|
@@ -1182,16 +1193,122 @@ var round = {
|
|
|
1182
1193
|
inputs: {
|
|
1183
1194
|
x: { type: "number", default: 0 },
|
|
1184
1195
|
},
|
|
1196
|
+
params: {
|
|
1197
|
+
decimals: { type: "number", default: 0 },
|
|
1198
|
+
},
|
|
1185
1199
|
outputs: {
|
|
1186
1200
|
round: "number",
|
|
1187
1201
|
},
|
|
1188
|
-
impl: function (inputs) { return __awaiter(void 0, void 0, void 0, function () {
|
|
1202
|
+
impl: function (inputs, params) { return __awaiter(void 0, void 0, void 0, function () {
|
|
1203
|
+
var f;
|
|
1189
1204
|
return __generator(this, function (_a) {
|
|
1205
|
+
f = Math.pow(10, params.decimals || 0);
|
|
1190
1206
|
return [2 /*return*/, {
|
|
1191
1207
|
round: mapTree(inputs.x, function (x) {
|
|
1192
1208
|
if (x === undefined)
|
|
1193
1209
|
return DISCARD;
|
|
1194
|
-
return Math.round(x);
|
|
1210
|
+
return Math.round(f * x) / f;
|
|
1211
|
+
}),
|
|
1212
|
+
}];
|
|
1213
|
+
});
|
|
1214
|
+
}); },
|
|
1215
|
+
};
|
|
1216
|
+
|
|
1217
|
+
var sum = {
|
|
1218
|
+
name: "sum",
|
|
1219
|
+
label: "Sum",
|
|
1220
|
+
description: "Sum of all items in a group",
|
|
1221
|
+
inputs: {
|
|
1222
|
+
tree: { type: "number", default: 0 },
|
|
1223
|
+
},
|
|
1224
|
+
outputs: {
|
|
1225
|
+
sum: "number",
|
|
1226
|
+
},
|
|
1227
|
+
impl: function (inputs) { return __awaiter(void 0, void 0, void 0, function () {
|
|
1228
|
+
return __generator(this, function (_a) {
|
|
1229
|
+
return [2 /*return*/, {
|
|
1230
|
+
sum: mapTreeBranch(inputs.tree, function (branch) {
|
|
1231
|
+
if (!branch || branch.length === 0)
|
|
1232
|
+
return DISCARD;
|
|
1233
|
+
var total = branch.reduce(function (acc, item) {
|
|
1234
|
+
if (item === undefined)
|
|
1235
|
+
return acc;
|
|
1236
|
+
return acc + item;
|
|
1237
|
+
});
|
|
1238
|
+
return [total];
|
|
1239
|
+
}),
|
|
1240
|
+
}];
|
|
1241
|
+
});
|
|
1242
|
+
}); },
|
|
1243
|
+
};
|
|
1244
|
+
|
|
1245
|
+
var _a$7;
|
|
1246
|
+
var primitives$7 = (_a$7 = {},
|
|
1247
|
+
_a$7[calc.name] = calc,
|
|
1248
|
+
_a$7[equalTo.name] = equalTo,
|
|
1249
|
+
_a$7[lessThan.name] = lessThan,
|
|
1250
|
+
_a$7[greaterThan.name] = greaterThan,
|
|
1251
|
+
_a$7[add$1.name] = add$1,
|
|
1252
|
+
_a$7[subtract$1.name] = subtract$1,
|
|
1253
|
+
_a$7[multiply.name] = multiply,
|
|
1254
|
+
_a$7[divide.name] = divide,
|
|
1255
|
+
_a$7[modulo.name] = modulo,
|
|
1256
|
+
_a$7[sinDeg.name] = sinDeg,
|
|
1257
|
+
_a$7[cosDeg.name] = cosDeg,
|
|
1258
|
+
_a$7[tanDeg.name] = tanDeg,
|
|
1259
|
+
_a$7[sqrt.name] = sqrt,
|
|
1260
|
+
_a$7[pow.name] = pow,
|
|
1261
|
+
_a$7[round.name] = round,
|
|
1262
|
+
_a$7[ceil.name] = ceil,
|
|
1263
|
+
_a$7[floor.name] = floor,
|
|
1264
|
+
_a$7[sum.name] = sum,
|
|
1265
|
+
_a$7);
|
|
1266
|
+
|
|
1267
|
+
var joinStrings = {
|
|
1268
|
+
name: "joinStrings",
|
|
1269
|
+
label: "Join Strings",
|
|
1270
|
+
description: "Join all strings in a group",
|
|
1271
|
+
inputs: {
|
|
1272
|
+
tree: { type: "string", default: "" },
|
|
1273
|
+
},
|
|
1274
|
+
params: {
|
|
1275
|
+
separator: { type: "string", default: "" },
|
|
1276
|
+
},
|
|
1277
|
+
outputs: {
|
|
1278
|
+
joined: "string",
|
|
1279
|
+
},
|
|
1280
|
+
impl: function (inputs, params) { return __awaiter(void 0, void 0, void 0, function () {
|
|
1281
|
+
var sep;
|
|
1282
|
+
return __generator(this, function (_a) {
|
|
1283
|
+
sep = params.separator || "";
|
|
1284
|
+
return [2 /*return*/, {
|
|
1285
|
+
joined: mapTreeBranch(inputs.tree, function (branch) {
|
|
1286
|
+
if (!branch || branch.length === 0)
|
|
1287
|
+
return DISCARD;
|
|
1288
|
+
return [branch.join(sep)];
|
|
1289
|
+
}),
|
|
1290
|
+
}];
|
|
1291
|
+
});
|
|
1292
|
+
}); },
|
|
1293
|
+
};
|
|
1294
|
+
|
|
1295
|
+
var toString = {
|
|
1296
|
+
name: "toString",
|
|
1297
|
+
label: "To String",
|
|
1298
|
+
description: "convert to string",
|
|
1299
|
+
inputs: {
|
|
1300
|
+
tree: { type: "any", default: 0 },
|
|
1301
|
+
},
|
|
1302
|
+
outputs: {
|
|
1303
|
+
string: "string",
|
|
1304
|
+
},
|
|
1305
|
+
impl: function (inputs) { return __awaiter(void 0, void 0, void 0, function () {
|
|
1306
|
+
return __generator(this, function (_a) {
|
|
1307
|
+
return [2 /*return*/, {
|
|
1308
|
+
string: mapTree(inputs.tree || {}, function (item) {
|
|
1309
|
+
if (item === undefined)
|
|
1310
|
+
return DISCARD;
|
|
1311
|
+
return String(item);
|
|
1195
1312
|
}),
|
|
1196
1313
|
}];
|
|
1197
1314
|
});
|
|
@@ -1200,23 +1317,8 @@ var round = {
|
|
|
1200
1317
|
|
|
1201
1318
|
var _a$6;
|
|
1202
1319
|
var primitives$6 = (_a$6 = {},
|
|
1203
|
-
_a$6[
|
|
1204
|
-
_a$6[
|
|
1205
|
-
_a$6[lessThan.name] = lessThan,
|
|
1206
|
-
_a$6[greaterThan.name] = greaterThan,
|
|
1207
|
-
_a$6[add$1.name] = add$1,
|
|
1208
|
-
_a$6[subtract$1.name] = subtract$1,
|
|
1209
|
-
_a$6[multiply.name] = multiply,
|
|
1210
|
-
_a$6[divide.name] = divide,
|
|
1211
|
-
_a$6[modulo.name] = modulo,
|
|
1212
|
-
_a$6[sinDeg.name] = sinDeg,
|
|
1213
|
-
_a$6[cosDeg.name] = cosDeg,
|
|
1214
|
-
_a$6[tanDeg.name] = tanDeg,
|
|
1215
|
-
_a$6[sqrt.name] = sqrt,
|
|
1216
|
-
_a$6[pow.name] = pow,
|
|
1217
|
-
_a$6[round.name] = round,
|
|
1218
|
-
_a$6[ceil.name] = ceil,
|
|
1219
|
-
_a$6[floor.name] = floor,
|
|
1320
|
+
_a$6[toString.name] = toString,
|
|
1321
|
+
_a$6[joinStrings.name] = joinStrings,
|
|
1220
1322
|
_a$6);
|
|
1221
1323
|
|
|
1222
1324
|
var filterList = {
|
|
@@ -1262,25 +1364,6 @@ var filterList = {
|
|
|
1262
1364
|
}); },
|
|
1263
1365
|
};
|
|
1264
1366
|
|
|
1265
|
-
var splitGroup = {
|
|
1266
|
-
name: "splitGroup",
|
|
1267
|
-
label: "Split Group",
|
|
1268
|
-
description: "Splits every item of a group into its own group",
|
|
1269
|
-
inputs: {
|
|
1270
|
-
tree: "any",
|
|
1271
|
-
},
|
|
1272
|
-
outputs: {
|
|
1273
|
-
tree: "any", // Return the grafted nodes
|
|
1274
|
-
},
|
|
1275
|
-
impl: function (inputs) { return __awaiter(void 0, void 0, void 0, function () {
|
|
1276
|
-
return __generator(this, function (_a) {
|
|
1277
|
-
return [2 /*return*/, {
|
|
1278
|
-
tree: graftTree(inputs.tree || {}),
|
|
1279
|
-
}];
|
|
1280
|
-
});
|
|
1281
|
-
}); },
|
|
1282
|
-
};
|
|
1283
|
-
|
|
1284
1367
|
var listItem = {
|
|
1285
1368
|
name: "listItem",
|
|
1286
1369
|
label: "List Item",
|
|
@@ -1350,73 +1433,9 @@ var listLength = {
|
|
|
1350
1433
|
}); },
|
|
1351
1434
|
};
|
|
1352
1435
|
|
|
1353
|
-
var mergeGroup = {
|
|
1354
|
-
name: "mergeGroup",
|
|
1355
|
-
label: "Merge Group",
|
|
1356
|
-
description: "Merge the deepest groups into their parent.",
|
|
1357
|
-
inputs: {
|
|
1358
|
-
tree: "any",
|
|
1359
|
-
},
|
|
1360
|
-
params: {
|
|
1361
|
-
depth: { type: "number", default: 1 }, // Optional depth to trim the tree
|
|
1362
|
-
},
|
|
1363
|
-
outputs: {
|
|
1364
|
-
tree: "any", // Return the trimed nodes
|
|
1365
|
-
},
|
|
1366
|
-
impl: function (inputs, params) { return __awaiter(void 0, void 0, void 0, function () {
|
|
1367
|
-
var depth;
|
|
1368
|
-
var _a;
|
|
1369
|
-
return __generator(this, function (_b) {
|
|
1370
|
-
depth = (_a = params.depth) !== null && _a !== void 0 ? _a : 1;
|
|
1371
|
-
return [2 /*return*/, {
|
|
1372
|
-
tree: trimTree(inputs.tree, depth),
|
|
1373
|
-
}];
|
|
1374
|
-
});
|
|
1375
|
-
}); },
|
|
1376
|
-
};
|
|
1377
|
-
|
|
1378
|
-
var cartesianGroups = {
|
|
1379
|
-
name: "cartesianGroups",
|
|
1380
|
-
label: "Cartesian Groups",
|
|
1381
|
-
description: "Duplicate groups such that all pairings are created.",
|
|
1382
|
-
inputs: {
|
|
1383
|
-
treeA: "any",
|
|
1384
|
-
treeB: "any",
|
|
1385
|
-
},
|
|
1386
|
-
params: {},
|
|
1387
|
-
outputs: {
|
|
1388
|
-
treeA: "any",
|
|
1389
|
-
treeB: "any",
|
|
1390
|
-
},
|
|
1391
|
-
impl: function (inputs, params) { return __awaiter(void 0, void 0, void 0, function () {
|
|
1392
|
-
var pathsA, pathsB, treeA, treeB;
|
|
1393
|
-
return __generator(this, function (_a) {
|
|
1394
|
-
if (!inputs.treeA || !inputs.treeB) {
|
|
1395
|
-
return [2 /*return*/, {}];
|
|
1396
|
-
}
|
|
1397
|
-
pathsA = getPaths(inputs.treeA);
|
|
1398
|
-
pathsB = getPaths(inputs.treeB);
|
|
1399
|
-
treeA = {};
|
|
1400
|
-
treeB = {};
|
|
1401
|
-
pathsB.forEach(function (pathB, ib) {
|
|
1402
|
-
pathsA.forEach(function (pathA, ia) {
|
|
1403
|
-
var pa = "".concat(ib, ";").concat(pathA);
|
|
1404
|
-
treeA[pa] = inputs.treeA[pathA];
|
|
1405
|
-
var pb = "".concat(pathB, ";").concat(ia);
|
|
1406
|
-
treeB[pb] = inputs.treeB[pathB];
|
|
1407
|
-
});
|
|
1408
|
-
});
|
|
1409
|
-
return [2 /*return*/, {
|
|
1410
|
-
treeA: treeA,
|
|
1411
|
-
treeB: treeB,
|
|
1412
|
-
}];
|
|
1413
|
-
});
|
|
1414
|
-
}); },
|
|
1415
|
-
};
|
|
1416
|
-
|
|
1417
1436
|
var concat = {
|
|
1418
1437
|
name: "concat",
|
|
1419
|
-
label: "Concat",
|
|
1438
|
+
label: "Concat Lists",
|
|
1420
1439
|
description: "Concatenates two lists back to back",
|
|
1421
1440
|
inputs: {
|
|
1422
1441
|
treeA: "any",
|
|
@@ -1517,59 +1536,135 @@ var relativeItems = {
|
|
|
1517
1536
|
}); },
|
|
1518
1537
|
};
|
|
1519
1538
|
|
|
1539
|
+
function isBoolStr(str) {
|
|
1540
|
+
return str.toLowerCase() === "true" || str.toLowerCase() === "false";
|
|
1541
|
+
}
|
|
1542
|
+
function isNumStr(str) {
|
|
1543
|
+
return !isNaN(Number(str));
|
|
1544
|
+
}
|
|
1545
|
+
var listInput = {
|
|
1546
|
+
name: "listInput",
|
|
1547
|
+
label: "List Input",
|
|
1548
|
+
description: "Input a list",
|
|
1549
|
+
inputs: {
|
|
1550
|
+
list: { type: "text", default: "" },
|
|
1551
|
+
},
|
|
1552
|
+
outputs: {
|
|
1553
|
+
tree: "string",
|
|
1554
|
+
},
|
|
1555
|
+
impl: function (inputs) { return __awaiter(void 0, void 0, void 0, function () {
|
|
1556
|
+
return __generator(this, function (_a) {
|
|
1557
|
+
return [2 /*return*/, {
|
|
1558
|
+
tree: mapTreeBranch(inputs.list || {}, function (branch) {
|
|
1559
|
+
if (!branch || branch.length === 0)
|
|
1560
|
+
return DISCARD;
|
|
1561
|
+
var allLines = branch.flatMap(function (text) { return text.split("\n"); });
|
|
1562
|
+
if (allLines.every(function (line) { return isBoolStr(line); })) {
|
|
1563
|
+
allLines = allLines.map(function (line) { return line.toLowerCase() === "true"; });
|
|
1564
|
+
}
|
|
1565
|
+
else if (allLines.every(function (line) { return isNumStr(line); })) {
|
|
1566
|
+
allLines = allLines.map(function (line) { return Number(line); });
|
|
1567
|
+
}
|
|
1568
|
+
return allLines;
|
|
1569
|
+
}),
|
|
1570
|
+
}];
|
|
1571
|
+
});
|
|
1572
|
+
}); },
|
|
1573
|
+
};
|
|
1574
|
+
|
|
1520
1575
|
var _a$5;
|
|
1521
1576
|
var primitives$5 = (_a$5 = {},
|
|
1522
|
-
_a$5[splitGroup.name] = splitGroup,
|
|
1523
|
-
_a$5[mergeGroup.name] = mergeGroup,
|
|
1524
1577
|
_a$5[listItem.name] = listItem,
|
|
1525
1578
|
_a$5[listLength.name] = listLength,
|
|
1526
1579
|
_a$5[filterList.name] = filterList,
|
|
1527
|
-
// [shiftList.name]: shiftList,
|
|
1528
1580
|
_a$5[relativeItem.name] = relativeItem,
|
|
1529
1581
|
_a$5[relativeItems.name] = relativeItems,
|
|
1530
|
-
_a$5[cartesianGroups.name] = cartesianGroups,
|
|
1531
1582
|
_a$5[concat.name] = concat,
|
|
1583
|
+
_a$5[listInput.name] = listInput,
|
|
1532
1584
|
_a$5);
|
|
1533
1585
|
|
|
1534
|
-
var
|
|
1535
|
-
name: "
|
|
1536
|
-
label: "
|
|
1537
|
-
description: "
|
|
1586
|
+
var splitGroup = {
|
|
1587
|
+
name: "splitGroup",
|
|
1588
|
+
label: "Split Group",
|
|
1589
|
+
description: "Splits every item of a group into its own group",
|
|
1538
1590
|
inputs: {
|
|
1539
|
-
|
|
1540
|
-
step: { type: "number", default: 1 },
|
|
1541
|
-
count: { type: "number", default: 10 },
|
|
1591
|
+
tree: "any",
|
|
1542
1592
|
},
|
|
1543
1593
|
outputs: {
|
|
1544
|
-
|
|
1594
|
+
tree: "any", // Return the grafted nodes
|
|
1545
1595
|
},
|
|
1546
1596
|
impl: function (inputs) { return __awaiter(void 0, void 0, void 0, function () {
|
|
1547
1597
|
return __generator(this, function (_a) {
|
|
1548
1598
|
return [2 /*return*/, {
|
|
1549
|
-
|
|
1550
|
-
graftTree(inputs.start),
|
|
1551
|
-
graftTree(inputs.step),
|
|
1552
|
-
graftTree(inputs.count),
|
|
1553
|
-
], function (_a) {
|
|
1554
|
-
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;
|
|
1555
|
-
var start = starts[0];
|
|
1556
|
-
var step = steps[0];
|
|
1557
|
-
var count = counts[0];
|
|
1558
|
-
var series = [];
|
|
1559
|
-
for (var i = 0; i < count; i++) {
|
|
1560
|
-
series.push(start + i * step);
|
|
1561
|
-
}
|
|
1562
|
-
return series;
|
|
1563
|
-
}),
|
|
1599
|
+
tree: graftTree(inputs.tree || {}),
|
|
1564
1600
|
}];
|
|
1565
1601
|
});
|
|
1566
1602
|
}); },
|
|
1567
1603
|
};
|
|
1568
1604
|
|
|
1569
|
-
var
|
|
1570
|
-
|
|
1571
|
-
|
|
1572
|
-
|
|
1605
|
+
var mergeGroup = {
|
|
1606
|
+
name: "mergeGroup",
|
|
1607
|
+
label: "Merge Group",
|
|
1608
|
+
description: "Merge the deepest groups into their parent.",
|
|
1609
|
+
inputs: {
|
|
1610
|
+
tree: "any",
|
|
1611
|
+
},
|
|
1612
|
+
params: {
|
|
1613
|
+
depth: { type: "number", default: 1 }, // Optional depth to trim the tree
|
|
1614
|
+
},
|
|
1615
|
+
outputs: {
|
|
1616
|
+
tree: "any", // Return the trimed nodes
|
|
1617
|
+
},
|
|
1618
|
+
impl: function (inputs, params) { return __awaiter(void 0, void 0, void 0, function () {
|
|
1619
|
+
var depth;
|
|
1620
|
+
var _a;
|
|
1621
|
+
return __generator(this, function (_b) {
|
|
1622
|
+
depth = (_a = params.depth) !== null && _a !== void 0 ? _a : 1;
|
|
1623
|
+
return [2 /*return*/, {
|
|
1624
|
+
tree: trimTree(inputs.tree, depth),
|
|
1625
|
+
}];
|
|
1626
|
+
});
|
|
1627
|
+
}); },
|
|
1628
|
+
};
|
|
1629
|
+
|
|
1630
|
+
var cartesianGroups = {
|
|
1631
|
+
name: "cartesianGroups",
|
|
1632
|
+
label: "Cartesian Groups",
|
|
1633
|
+
description: "Duplicate groups such that all pairings are created.",
|
|
1634
|
+
inputs: {
|
|
1635
|
+
treeA: "any",
|
|
1636
|
+
treeB: "any",
|
|
1637
|
+
},
|
|
1638
|
+
params: {},
|
|
1639
|
+
outputs: {
|
|
1640
|
+
treeA: "any",
|
|
1641
|
+
treeB: "any",
|
|
1642
|
+
},
|
|
1643
|
+
impl: function (inputs, params) { return __awaiter(void 0, void 0, void 0, function () {
|
|
1644
|
+
var pathsA, pathsB, treeA, treeB;
|
|
1645
|
+
return __generator(this, function (_a) {
|
|
1646
|
+
if (!inputs.treeA || !inputs.treeB) {
|
|
1647
|
+
return [2 /*return*/, {}];
|
|
1648
|
+
}
|
|
1649
|
+
pathsA = getPaths(inputs.treeA);
|
|
1650
|
+
pathsB = getPaths(inputs.treeB);
|
|
1651
|
+
treeA = {};
|
|
1652
|
+
treeB = {};
|
|
1653
|
+
pathsB.forEach(function (pathB, ib) {
|
|
1654
|
+
pathsA.forEach(function (pathA, ia) {
|
|
1655
|
+
var pa = "".concat(ib, ";").concat(pathA);
|
|
1656
|
+
treeA[pa] = inputs.treeA[pathA];
|
|
1657
|
+
var pb = "".concat(pathB, ";").concat(ia);
|
|
1658
|
+
treeB[pb] = inputs.treeB[pathB];
|
|
1659
|
+
});
|
|
1660
|
+
});
|
|
1661
|
+
return [2 /*return*/, {
|
|
1662
|
+
treeA: treeA,
|
|
1663
|
+
treeB: treeB,
|
|
1664
|
+
}];
|
|
1665
|
+
});
|
|
1666
|
+
}); },
|
|
1667
|
+
};
|
|
1573
1668
|
|
|
1574
1669
|
var mergeTree = {
|
|
1575
1670
|
name: "mergeTree",
|
|
@@ -1602,7 +1697,7 @@ var mergeTree = {
|
|
|
1602
1697
|
|
|
1603
1698
|
var simplifyTree = {
|
|
1604
1699
|
name: "simplifyTree",
|
|
1605
|
-
label: "Simplify
|
|
1700
|
+
label: "Simplify Groups",
|
|
1606
1701
|
description: "Simplify a tree by removing redundant groups.",
|
|
1607
1702
|
inputs: {
|
|
1608
1703
|
tree: "any",
|
|
@@ -1622,10 +1717,78 @@ var simplifyTree = {
|
|
|
1622
1717
|
}); },
|
|
1623
1718
|
};
|
|
1624
1719
|
|
|
1720
|
+
var groupAll = {
|
|
1721
|
+
name: "groupAll",
|
|
1722
|
+
label: "Group All",
|
|
1723
|
+
description: "Adds a group around all groups in the input tree",
|
|
1724
|
+
inputs: {
|
|
1725
|
+
tree: "any",
|
|
1726
|
+
},
|
|
1727
|
+
outputs: {
|
|
1728
|
+
tree: "any",
|
|
1729
|
+
},
|
|
1730
|
+
impl: function (_a) { return __awaiter(void 0, [_a], void 0, function (_b) {
|
|
1731
|
+
var paths, newPaths, newTree;
|
|
1732
|
+
var _c = _b.tree, tree = _c === void 0 ? {} : _c;
|
|
1733
|
+
return __generator(this, function (_d) {
|
|
1734
|
+
paths = getPaths(tree);
|
|
1735
|
+
newPaths = paths.map(function (p) { return "0;".concat(p); });
|
|
1736
|
+
newTree = Object.fromEntries(newPaths.map(function (p, i) { return [p, tree[paths[i]]]; }));
|
|
1737
|
+
return [2 /*return*/, {
|
|
1738
|
+
tree: newTree,
|
|
1739
|
+
}];
|
|
1740
|
+
});
|
|
1741
|
+
}); },
|
|
1742
|
+
};
|
|
1743
|
+
|
|
1744
|
+
var _a$4;
|
|
1745
|
+
var primitives$4 = (_a$4 = {},
|
|
1746
|
+
_a$4[splitGroup.name] = splitGroup,
|
|
1747
|
+
_a$4[mergeGroup.name] = mergeGroup,
|
|
1748
|
+
_a$4[groupAll.name] = groupAll,
|
|
1749
|
+
_a$4[simplifyTree.name] = simplifyTree,
|
|
1750
|
+
_a$4[cartesianGroups.name] = cartesianGroups,
|
|
1751
|
+
_a$4[mergeTree.name] = mergeTree,
|
|
1752
|
+
_a$4);
|
|
1753
|
+
|
|
1754
|
+
var series = {
|
|
1755
|
+
name: "series",
|
|
1756
|
+
label: "Series",
|
|
1757
|
+
description: "Create a series of numbers.",
|
|
1758
|
+
inputs: {
|
|
1759
|
+
start: { type: "number", default: 0 },
|
|
1760
|
+
step: { type: "number", default: 1 },
|
|
1761
|
+
count: { type: "number", default: 10 },
|
|
1762
|
+
},
|
|
1763
|
+
outputs: {
|
|
1764
|
+
series: "number",
|
|
1765
|
+
},
|
|
1766
|
+
impl: function (inputs) { return __awaiter(void 0, void 0, void 0, function () {
|
|
1767
|
+
return __generator(this, function (_a) {
|
|
1768
|
+
return [2 /*return*/, {
|
|
1769
|
+
series: nAryOnTreeBranch([
|
|
1770
|
+
graftTree(inputs.start),
|
|
1771
|
+
graftTree(inputs.step),
|
|
1772
|
+
graftTree(inputs.count),
|
|
1773
|
+
], function (_a) {
|
|
1774
|
+
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;
|
|
1775
|
+
var start = starts[0];
|
|
1776
|
+
var step = steps[0];
|
|
1777
|
+
var count = counts[0];
|
|
1778
|
+
var series = [];
|
|
1779
|
+
for (var i = 0; i < count; i++) {
|
|
1780
|
+
series.push(start + i * step);
|
|
1781
|
+
}
|
|
1782
|
+
return series;
|
|
1783
|
+
}),
|
|
1784
|
+
}];
|
|
1785
|
+
});
|
|
1786
|
+
}); },
|
|
1787
|
+
};
|
|
1788
|
+
|
|
1625
1789
|
var _a$3;
|
|
1626
1790
|
var primitives$3 = (_a$3 = {},
|
|
1627
|
-
_a$3[
|
|
1628
|
-
_a$3[simplifyTree.name] = simplifyTree,
|
|
1791
|
+
_a$3[series.name] = series,
|
|
1629
1792
|
_a$3);
|
|
1630
1793
|
|
|
1631
1794
|
var groupAnd = {
|
|
@@ -1710,8 +1873,8 @@ var primitives$1 = (_a$1 = {},
|
|
|
1710
1873
|
_a$1[output.name] = output,
|
|
1711
1874
|
_a$1);
|
|
1712
1875
|
|
|
1713
|
-
var Lib = { Util: primitives$
|
|
1714
|
-
var primitives = __assign(__assign(__assign(__assign(__assign(__assign(__assign({}, primitives$1), primitives$7), primitives$6), primitives$5), primitives$4), primitives$3), primitives$2);
|
|
1876
|
+
var Lib = { Util: primitives$8, Math: primitives$7, String: primitives$6, List: primitives$5, Group: primitives$4, Sequence: primitives$3, Logic: primitives$2, IO: primitives$1 };
|
|
1877
|
+
var primitives = __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({}, primitives$1), primitives$8), primitives$7), primitives$6), primitives$5), primitives$4), primitives$3), primitives$2);
|
|
1715
1878
|
|
|
1716
1879
|
function isPrimitive(node) {
|
|
1717
1880
|
return node.impl !== undefined;
|
|
@@ -4994,7 +5157,25 @@ var InputString = React.memo(function (_a) {
|
|
|
4994
5157
|
setInner(value);
|
|
4995
5158
|
}
|
|
4996
5159
|
}, [inner, value, onChange]);
|
|
4997
|
-
return (React.createElement("input", { type: "text", value: inner, onChange: function (e) { return setInner(e.target.value); }, onBlur: handleBlur, onKeyDown: handleKey }));
|
|
5160
|
+
return (React.createElement("input", { type: "text", value: inner, onChange: function (e) { return setInner(e.target.value); }, onBlur: handleBlur, onKeyDown: handleKey, onMouseDown: function (e) { return e.stopPropagation(); } }));
|
|
5161
|
+
});
|
|
5162
|
+
var InputText = React.memo(function (_a) {
|
|
5163
|
+
var value = _a.value, onChange = _a.onChange;
|
|
5164
|
+
var _b = __read(useInner(value), 2), inner = _b[0], setInner = _b[1];
|
|
5165
|
+
var handleBlur = React.useCallback(function () {
|
|
5166
|
+
if (inner !== value) {
|
|
5167
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(inner);
|
|
5168
|
+
}
|
|
5169
|
+
}, [inner, value, onChange]);
|
|
5170
|
+
var handleKey = React.useCallback(function (e) {
|
|
5171
|
+
if (e.key === "Enter" && inner !== value) {
|
|
5172
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(inner);
|
|
5173
|
+
}
|
|
5174
|
+
if (e.key === "Escape") {
|
|
5175
|
+
setInner(value);
|
|
5176
|
+
}
|
|
5177
|
+
}, [inner, value, onChange]);
|
|
5178
|
+
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 }));
|
|
4998
5179
|
});
|
|
4999
5180
|
function Control(_a) {
|
|
5000
5181
|
var value = _a.value, vardef = _a.vardef, onChange = _a.onChange;
|
|
@@ -5009,8 +5190,10 @@ function Control(_a) {
|
|
|
5009
5190
|
switch (vardef.type) {
|
|
5010
5191
|
case "string":
|
|
5011
5192
|
return React.createElement(InputString, { value: value !== null && value !== void 0 ? value : "", onChange: onChange });
|
|
5193
|
+
case "text":
|
|
5194
|
+
return React.createElement(InputText, { value: value !== null && value !== void 0 ? value : "", onChange: onChange });
|
|
5012
5195
|
case "number":
|
|
5013
|
-
return (React.createElement(InputNumber, { value: Number(value) || 0, onChange: onChange, step: vardef.step, min: vardef.min, max: vardef.max, inputMode: "numeric" }));
|
|
5196
|
+
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(); } }));
|
|
5014
5197
|
case "boolean":
|
|
5015
5198
|
return (React.createElement("input", { type: "checkbox", checked: Boolean(value), onChange: function (e) { return onChange === null || onChange === void 0 ? void 0 : onChange(e.target.checked); } }));
|
|
5016
5199
|
default:
|