@rkmodules/rules 0.0.146 → 0.0.148
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 +136 -37
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +136 -37
- package/dist/index.esm.js.map +1 -1
- package/dist/lib/Engine/index.d.ts +1 -0
- package/dist/lib/Engine/types.d.ts +2 -0
- package/dist/lib/Flow/Components/Input.d.ts +3 -1
- package/dist/lib/Flow/Nodes/NamedInput.d.ts +7 -0
- package/dist/lib/Flow/Nodes/index.d.ts +4 -0
- package/package.json +1 -1
package/dist/index.cjs.js
CHANGED
|
@@ -1966,7 +1966,7 @@ var mergeTree = {
|
|
|
1966
1966
|
name: "mergeTree",
|
|
1967
1967
|
label: "Merge Tree",
|
|
1968
1968
|
description: "Merge groups with the same index into a single tree.",
|
|
1969
|
-
nodeType: "
|
|
1969
|
+
nodeType: "NamedInput",
|
|
1970
1970
|
inputs: {},
|
|
1971
1971
|
outputs: {
|
|
1972
1972
|
result: "any",
|
|
@@ -3006,6 +3006,7 @@ var Engine = /** @class */ (function () {
|
|
|
3006
3006
|
});
|
|
3007
3007
|
context = {
|
|
3008
3008
|
scope: { inputs: inputs },
|
|
3009
|
+
calls: {},
|
|
3009
3010
|
inputs: { inputs: inputs },
|
|
3010
3011
|
params: { params: params },
|
|
3011
3012
|
timings: {},
|
|
@@ -3031,6 +3032,7 @@ var Engine = /** @class */ (function () {
|
|
|
3031
3032
|
inputs_1 = interpolate(fnCall.inputs || {}, context.scope);
|
|
3032
3033
|
params_1 = fnCall.params || {};
|
|
3033
3034
|
result_1 = {};
|
|
3035
|
+
context.calls[name_1] = fnCall;
|
|
3034
3036
|
context.inputs[name_1] = inputs_1;
|
|
3035
3037
|
context.params[name_1] = params_1;
|
|
3036
3038
|
cacheResult = this.checkCache(name_1, inputs_1);
|
|
@@ -6292,13 +6294,32 @@ function Control(_a) {
|
|
|
6292
6294
|
}
|
|
6293
6295
|
}
|
|
6294
6296
|
|
|
6297
|
+
function Menu(_a) {
|
|
6298
|
+
var handle = _a.handle, children = _a.children;
|
|
6299
|
+
var _b = __read(React.useState(false), 2), open = _b[0], setOpen = _b[1];
|
|
6300
|
+
var handleOpen = function () {
|
|
6301
|
+
setOpen(!open);
|
|
6302
|
+
};
|
|
6303
|
+
var handleClose = function () {
|
|
6304
|
+
setOpen(false);
|
|
6305
|
+
};
|
|
6306
|
+
return (React.createElement("div", { className: styles$1.Menu },
|
|
6307
|
+
React.createElement("div", { onClick: handleOpen }, handle),
|
|
6308
|
+
open && (React.createElement("div", { className: styles$1.MenuCanvas, onClick: handleClose }, children))));
|
|
6309
|
+
}
|
|
6310
|
+
function MenuItem(_a) {
|
|
6311
|
+
var children = _a.children, props = __rest(_a, ["children"]);
|
|
6312
|
+
return (React.createElement("div", __assign({ className: styles$1.MenuItem }, props), children));
|
|
6313
|
+
}
|
|
6314
|
+
|
|
6295
6315
|
var Input = function (_a) {
|
|
6296
6316
|
var _b;
|
|
6297
|
-
var name = _a.name, varDef = _a.varDef, id = _a.id, data = _a.data, onClick = _a.onClick;
|
|
6317
|
+
var name = _a.name, varDef = _a.varDef, id = _a.id, data = _a.data, onClick = _a.onClick, onRename = _a.onRename, onDelete = _a.onDelete;
|
|
6298
6318
|
var normalized = normalizeVarDef(varDef);
|
|
6299
6319
|
var value = (_b = data.inputs) === null || _b === void 0 ? void 0 : _b[name];
|
|
6300
6320
|
var isRef = isReference(value);
|
|
6301
6321
|
var portId = "".concat(id, "-").concat(safeName(name));
|
|
6322
|
+
var showMenu = onRename || onDelete;
|
|
6302
6323
|
var handleInputChange = function (param) { return function (value) {
|
|
6303
6324
|
var _a;
|
|
6304
6325
|
data.onChange({
|
|
@@ -6309,7 +6330,12 @@ var Input = function (_a) {
|
|
|
6309
6330
|
"--type-color": "var(--color-".concat(normalized.type, ")"),
|
|
6310
6331
|
}, onClick: onClick },
|
|
6311
6332
|
React.createElement("span", { className: styles$1.PortLabel }, normalized.label || name),
|
|
6312
|
-
!isRef && (React.createElement(Control, { vardef: normalized, value: value, onChange: handleInputChange(name), data: data }))
|
|
6333
|
+
!isRef && !showMenu && (React.createElement(Control, { vardef: normalized, value: value, onChange: handleInputChange(name), data: data })),
|
|
6334
|
+
showMenu && (React.createElement("div", { style: { display: "flex" } },
|
|
6335
|
+
React.createElement("span", { style: { flex: 1 } }),
|
|
6336
|
+
React.createElement(Menu, { handle: React.createElement("button", null, "...") },
|
|
6337
|
+
onRename && (React.createElement(MenuItem, { onClick: function () { return onRename(name, normalized); } }, "Rename")),
|
|
6338
|
+
onDelete && (React.createElement(MenuItem, { onClick: function () { return onDelete(name); } }, "Delete")))))));
|
|
6313
6339
|
};
|
|
6314
6340
|
|
|
6315
6341
|
var Param = function (_a) {
|
|
@@ -6568,24 +6594,6 @@ var Default = React.memo(function (_a) {
|
|
|
6568
6594
|
});
|
|
6569
6595
|
Default.displayName = "DefaultNode";
|
|
6570
6596
|
|
|
6571
|
-
function Menu(_a) {
|
|
6572
|
-
var handle = _a.handle, children = _a.children;
|
|
6573
|
-
var _b = __read(React.useState(false), 2), open = _b[0], setOpen = _b[1];
|
|
6574
|
-
var handleOpen = function () {
|
|
6575
|
-
setOpen(!open);
|
|
6576
|
-
};
|
|
6577
|
-
var handleClose = function () {
|
|
6578
|
-
setOpen(false);
|
|
6579
|
-
};
|
|
6580
|
-
return (React.createElement("div", { className: styles$1.Menu },
|
|
6581
|
-
React.createElement("div", { onClick: handleOpen }, handle),
|
|
6582
|
-
open && (React.createElement("div", { className: styles$1.MenuCanvas, onClick: handleClose }, children))));
|
|
6583
|
-
}
|
|
6584
|
-
function MenuItem(_a) {
|
|
6585
|
-
var children = _a.children, props = __rest(_a, ["children"]);
|
|
6586
|
-
return (React.createElement("div", __assign({ className: styles$1.MenuItem }, props), children));
|
|
6587
|
-
}
|
|
6588
|
-
|
|
6589
6597
|
/**
|
|
6590
6598
|
* todo: get input data from graphed function
|
|
6591
6599
|
*/
|
|
@@ -6849,17 +6857,9 @@ var OutputNode = React.memo(function (_a) {
|
|
|
6849
6857
|
var _b = __read(_a, 2), name = _b[0], varDef = _b[1];
|
|
6850
6858
|
return (React.createElement(Output, { key: "".concat(name, "_").concat(index), name: name, varDef: varDef, id: id, onClick: function () { return setFocus(name); }, focus: showPreview && focus === name }));
|
|
6851
6859
|
}),
|
|
6852
|
-
Object.entries(inputs || {}).map(function (_a) {
|
|
6860
|
+
Object.entries(inputs || {}).map(function (_a, index) {
|
|
6853
6861
|
var _b = __read(_a, 2), name = _b[0], varDef = _b[1];
|
|
6854
|
-
return (React.createElement(
|
|
6855
|
-
"--type-color": "var(--color-".concat(varDef.type, ")"),
|
|
6856
|
-
} },
|
|
6857
|
-
React.createElement("span", { className: styles$1.PortLabel }, name),
|
|
6858
|
-
React.createElement("div", { style: { display: "flex" } },
|
|
6859
|
-
React.createElement("span", { style: { flex: 1 } }),
|
|
6860
|
-
React.createElement(Menu, { handle: React.createElement("button", null, "...") },
|
|
6861
|
-
React.createElement(MenuItem, { onClick: function () { return onRename(name); } }, "Rename"),
|
|
6862
|
-
React.createElement(MenuItem, { onClick: function () { return onDelete(name); } }, "Delete")))));
|
|
6862
|
+
return (React.createElement(Input, { key: "".concat(name, "_").concat(index), name: name, varDef: varDef, id: id, data: data, onRename: onRename, onDelete: onDelete }));
|
|
6863
6863
|
}),
|
|
6864
6864
|
paramEntries.map(function (_a, index) {
|
|
6865
6865
|
var _b = __read(_a, 2), name = _b[0], varDef = _b[1];
|
|
@@ -6897,12 +6897,104 @@ var DynamicOutput = React.memo(function (_a) {
|
|
|
6897
6897
|
});
|
|
6898
6898
|
DynamicOutput.displayName = "DynamicOutputNode";
|
|
6899
6899
|
|
|
6900
|
+
var NamedInput = function (_a) {
|
|
6901
|
+
var _b;
|
|
6902
|
+
var _c;
|
|
6903
|
+
var id = _a.id, data = _a.data, selected = _a.selected;
|
|
6904
|
+
var engine = useEngine();
|
|
6905
|
+
// let fn = useGraphedFunction();
|
|
6906
|
+
var prompt = usePrompts().prompt;
|
|
6907
|
+
var inputEntries = Object.entries(data.inputDefs || {});
|
|
6908
|
+
var outputEntries = Object.entries(data.outputDefs || {});
|
|
6909
|
+
var paramEntries = Object.entries(data.paramDefs || {});
|
|
6910
|
+
var _d = __read(React.useState({}), 2), result = _d[0], setResult = _d[1];
|
|
6911
|
+
var _e = __read(React.useState(null), 2), duration = _e[0], setDuration = _e[1];
|
|
6912
|
+
var _f = __read(useInner(((_c = outputEntries[0]) === null || _c === void 0 ? void 0 : _c[0]) || null, [data.outputDefs]), 2), focus = _f[0], setFocus = _f[1];
|
|
6913
|
+
var _g = __read(React.useState(false), 2), showPreview = _g[0], setShowPreview = _g[1];
|
|
6914
|
+
var previewValue = focus ? result[focus] : Object.values(result)[0];
|
|
6915
|
+
React.useEffect(function () {
|
|
6916
|
+
return engine.subscribe("functionResult", function (event) {
|
|
6917
|
+
var _a;
|
|
6918
|
+
if (event.name === id) {
|
|
6919
|
+
setResult(event.result || {});
|
|
6920
|
+
setDuration((_a = event.duration) !== null && _a !== void 0 ? _a : null);
|
|
6921
|
+
}
|
|
6922
|
+
});
|
|
6923
|
+
}, []);
|
|
6924
|
+
var onRename = function (name, def) { return __awaiter(void 0, void 0, void 0, function () {
|
|
6925
|
+
var newLabel, inputDefs;
|
|
6926
|
+
return __generator(this, function (_a) {
|
|
6927
|
+
switch (_a.label) {
|
|
6928
|
+
case 0: return [4 /*yield*/, prompt("Enter new name", def.label || name)];
|
|
6929
|
+
case 1:
|
|
6930
|
+
newLabel = _a.sent();
|
|
6931
|
+
if (newLabel !== null && newLabel !== def.label) {
|
|
6932
|
+
inputDefs = __assign({}, data.inputDefs);
|
|
6933
|
+
inputDefs[name] = __assign(__assign({}, def), { label: newLabel });
|
|
6934
|
+
data.onChange({ inputDefs: inputDefs });
|
|
6935
|
+
}
|
|
6936
|
+
return [2 /*return*/];
|
|
6937
|
+
}
|
|
6938
|
+
});
|
|
6939
|
+
}); };
|
|
6940
|
+
var onAdd = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
6941
|
+
var newName, inputDefs;
|
|
6942
|
+
var _a;
|
|
6943
|
+
return __generator(this, function (_b) {
|
|
6944
|
+
switch (_b.label) {
|
|
6945
|
+
case 0: return [4 /*yield*/, prompt("Enter new name")];
|
|
6946
|
+
case 1:
|
|
6947
|
+
newName = _b.sent();
|
|
6948
|
+
if (newName !== null) {
|
|
6949
|
+
inputDefs = __assign(__assign({}, data.inputDefs), (_a = {}, _a[newName] = { type: "any", label: newName }, _a));
|
|
6950
|
+
data.onChange({ inputDefs: inputDefs });
|
|
6951
|
+
}
|
|
6952
|
+
return [2 /*return*/];
|
|
6953
|
+
}
|
|
6954
|
+
});
|
|
6955
|
+
}); };
|
|
6956
|
+
var onDelete = function (name) {
|
|
6957
|
+
var inputDefs = __assign({}, data.inputDefs);
|
|
6958
|
+
var inputs = __assign({}, data.inputs);
|
|
6959
|
+
delete inputDefs[name];
|
|
6960
|
+
delete inputs[name];
|
|
6961
|
+
data.onChange({ inputs: inputs, inputDefs: inputDefs });
|
|
6962
|
+
};
|
|
6963
|
+
return (React.createElement(NodeContainer, { label: data.label, selected: selected, id: id, noDelete: true },
|
|
6964
|
+
React.createElement("div", { className: styles.Description }, data.description),
|
|
6965
|
+
React.createElement("div", { className: styles.Ports },
|
|
6966
|
+
outputEntries.map(function (_a, index) {
|
|
6967
|
+
var _b = __read(_a, 2), name = _b[0], varDef = _b[1];
|
|
6968
|
+
return (React.createElement(Output, { key: "".concat(name, "_").concat(index), name: name, varDef: varDef, id: id, onClick: function () { return setFocus(name); }, focus: showPreview && focus === name }));
|
|
6969
|
+
}),
|
|
6970
|
+
inputEntries.map(function (_a, index) {
|
|
6971
|
+
var _b = __read(_a, 2), name = _b[0], varDef = _b[1];
|
|
6972
|
+
return (React.createElement(Input, { key: "".concat(name, "_").concat(index), name: name, varDef: varDef, id: id, data: data, onRename: onRename, onDelete: onDelete }));
|
|
6973
|
+
}),
|
|
6974
|
+
React.createElement("div", { className: styles.Body },
|
|
6975
|
+
React.createElement("button", { onClick: function () { return onAdd(); } }, "+")),
|
|
6976
|
+
paramEntries.map(function (_a, index) {
|
|
6977
|
+
var _b = __read(_a, 2), name = _b[0], varDef = _b[1];
|
|
6978
|
+
return (React.createElement(Param, { key: "".concat(name, "_").concat(index), name: name, varDef: varDef, id: id, data: data }));
|
|
6979
|
+
})),
|
|
6980
|
+
!!outputEntries.length && (React.createElement("div", { className: classNames(styles.PreviewHead, (_b = {},
|
|
6981
|
+
_b[styles.expanded] = showPreview,
|
|
6982
|
+
_b)), onClick: function () { return setShowPreview(!showPreview); } }, "Preview")),
|
|
6983
|
+
showPreview && (React.createElement("div", { className: styles.Preview },
|
|
6984
|
+
React.createElement(TreeView, { value: previewValue }),
|
|
6985
|
+
duration !== null && (React.createElement("div", { className: styles.Duration },
|
|
6986
|
+
duration.toFixed(2),
|
|
6987
|
+
" ms"))))));
|
|
6988
|
+
};
|
|
6989
|
+
NamedInput.displayName = "NamedInput";
|
|
6990
|
+
|
|
6900
6991
|
var nodeTypes = {
|
|
6901
6992
|
Default: Default,
|
|
6902
6993
|
Calc: Calc,
|
|
6903
6994
|
Log: Log,
|
|
6904
6995
|
DynamicInput: DynamicInput,
|
|
6905
6996
|
DynamicOutput: DynamicOutput,
|
|
6997
|
+
NamedInput: NamedInput,
|
|
6906
6998
|
Input: InputNode,
|
|
6907
6999
|
Output: OutputNode,
|
|
6908
7000
|
};
|
|
@@ -6984,8 +7076,8 @@ function useUpdatePositions(fn) {
|
|
|
6984
7076
|
}
|
|
6985
7077
|
|
|
6986
7078
|
// helpers
|
|
6987
|
-
function updateNodeArguments(node, inputs, params) {
|
|
6988
|
-
return __assign(__assign({}, node), { data: __assign(__assign({}, node.data), { inputs: inputs, params: params }) });
|
|
7079
|
+
function updateNodeArguments(node, inputs, params, inputDefs, outputDefs) {
|
|
7080
|
+
return __assign(__assign({}, node), { data: __assign(__assign({}, node.data), { inputs: inputs, params: params, inputDefs: inputDefs !== null && inputDefs !== void 0 ? inputDefs : node.data.inputDefs, outputDefs: outputDefs !== null && outputDefs !== void 0 ? outputDefs : node.data.outputDefs }) });
|
|
6989
7081
|
}
|
|
6990
7082
|
/**
|
|
6991
7083
|
* gets the source and target node and field from an edge by de-referencing the handles
|
|
@@ -7011,7 +7103,7 @@ function createNode(engine, id, fncall, options) {
|
|
|
7011
7103
|
description: calledFn === null || calledFn === void 0 ? void 0 : calledFn.description,
|
|
7012
7104
|
inputs: fncall.inputs,
|
|
7013
7105
|
params: fncall.params,
|
|
7014
|
-
inputDefs: (calledFn === null || calledFn === void 0 ? void 0 : calledFn.inputs)
|
|
7106
|
+
inputDefs: __assign(__assign({}, fncall.inputDefs), calledFn === null || calledFn === void 0 ? void 0 : calledFn.inputs),
|
|
7015
7107
|
paramDefs: (calledFn === null || calledFn === void 0 ? void 0 : calledFn.params) || {},
|
|
7016
7108
|
outputDefs: (calledFn === null || calledFn === void 0 ? void 0 : calledFn.outputs) || {},
|
|
7017
7109
|
onChange: ((_a = options.onDataChange) === null || _a === void 0 ? void 0 : _a.call(options, id)) || (function () { }),
|
|
@@ -7069,8 +7161,15 @@ var useFlowState = zustand.create(function (set, get) { return ({
|
|
|
7069
7161
|
});
|
|
7070
7162
|
// remove all the edges that were removed
|
|
7071
7163
|
edges = edges === null || edges === void 0 ? void 0 : edges.filter(function (edge) {
|
|
7072
|
-
|
|
7073
|
-
|
|
7164
|
+
var _a, _b;
|
|
7165
|
+
var target = deRefEdgeHandle(edge.targetHandle);
|
|
7166
|
+
return (
|
|
7167
|
+
// source node of the edge must be in the document
|
|
7168
|
+
(newKeys.includes(edge.source) || edge.source === "inputs") &&
|
|
7169
|
+
// target node of the edge must be in the document
|
|
7170
|
+
newKeys.includes(edge.target) &&
|
|
7171
|
+
// target field of the edge must be in the target node definition
|
|
7172
|
+
((_b = (_a = fn.body) === null || _a === void 0 ? void 0 : _a[edge.target].inputs) === null || _b === void 0 ? void 0 : _b[target.field]) !== undefined);
|
|
7074
7173
|
});
|
|
7075
7174
|
// make sure there is an output node if outputs are defined
|
|
7076
7175
|
if (fn.outputs && !nodes["output"]) {
|
|
@@ -7125,7 +7224,7 @@ var useFlowState = zustand.create(function (set, get) { return ({
|
|
|
7125
7224
|
// update the nodes that were changed
|
|
7126
7225
|
var fncall = (_a = fn.body) === null || _a === void 0 ? void 0 : _a[key];
|
|
7127
7226
|
var node = nodes[key];
|
|
7128
|
-
nodes[key] = updateNodeArguments(node, fncall.inputs, fncall.params);
|
|
7227
|
+
nodes[key] = updateNodeArguments(node, fncall.inputs, fncall.params, fncall.inputDefs, fncall.outputDefs);
|
|
7129
7228
|
// update incoming edges
|
|
7130
7229
|
var refs = getReferences(fncall.inputs || {});
|
|
7131
7230
|
// remove all incoming edges
|