+
+
+ }
+ side={left ? "left" : "right"}
+ >
+
+ isValidConnection(connection, nodes, edges)
+ }
+ className={classNames(
+ left ? "my-12 -ml-0.5 " : " my-12 -mr-0.5 ",
+ "h-3 w-3 rounded-full border-2 bg-background",
+ !showNode ? "mt-0" : "",
+ )}
+ style={{
+ borderColor: color ?? nodeColors.unknown,
+ }}
+ onClick={() => {
+ setFilterEdge(
+ groupByFamily(myData, tooltipTitle!, left, nodes!),
+ );
+ }}
+ >
+
+
+
+ )
+ ) : (
+
+ <>
+
+
+
+
+
+
+
+ {proxy ? (
+
{proxy.id}}>
+ {renderTitle()}
+
+ ) : (
+ renderTitle()
+ )}
+
+ {required ? "*" : ""}
+
+
+ {info !== "" && (
+
+ {/* put div to avoid bug that does not display tooltip */}
+
+
+
+
+ )}
+
+
+ {left && LANGFLOW_SUPPORTED_TYPES.has(type ?? "") && !optionalHandle ? (
+ <>>
+ ) : (
+
+
+
+ }
+ side={left ? "left" : "right"}
+ >
+
+ isValidConnection(connection, nodes, edges)
+ }
+ className={classNames(
+ left ? "-ml-0.5" : "-mr-0.5",
+ "h-3 w-3 rounded-full border-2 bg-background",
+ )}
+ style={{ borderColor: color ?? nodeColors.unknown }}
+ onClick={() => {
+ setFilterEdge(
+ groupByFamily(myData, tooltipTitle!, left, nodes!),
+ );
+ }}
+ />
+
+
+
+ )}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {data.node?.template[name]?.refresh_button && (
+
+
+
+ )}
+
+
+
+
+
+ {
+ setNode(data.id, (oldNode) => {
+ let newNode = cloneDeep(oldNode);
+ newNode.data = {
+ ...newNode.data,
+ };
+ newNode.data.node.template[name].load_from_db = value;
+ return newNode;
+ });
+ }}
+ name={name}
+ data={data}
+ />
+
+ {data.node?.template[name]?.refresh_button && (
+
+
+
+ )}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {data.node?.template[name]?.refresh_button && (
+
+
+
+ )}
+
+
+
+
+
+
+
+
+
+
+
+ {
+ data.node!.template[name].file_path = filePath;
+ }}
+ >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {
+ const valueToNumbers = convertValuesToNumbers(newValue);
+ setErrorDuplicateKey(hasDuplicateKeys(valueToNumbers));
+ // if data.node?.template[name]?.list is true, then the value is an array of objects
+ // else we need to get the first object of the array
+
+ if (data.node?.template[name]?.list) {
+ handleOnNewValue(valueToNumbers);
+ } else handleOnNewValue(valueToNumbers[0]);
+ }}
+ isList={data.node?.template[name]?.list ?? false}
+ />
+
+
+ >
+
+ );
+}
diff --git a/src/frontend/src/customNodes/genericNode/index.tsx b/src/frontend/src/customNodes/genericNode/index.tsx
index fbbaa82c6..9e22d9ac1 100644
--- a/src/frontend/src/customNodes/genericNode/index.tsx
+++ b/src/frontend/src/customNodes/genericNode/index.tsx
@@ -553,7 +553,7 @@ export default function GenericNode({
data.node!.template[templateField].show &&
!data.node!.template[templateField].advanced && (