# Copyright (c) 2025 Patrick Motsch # Data manipulation node definitions: aggregate, transform, filter. DATA_NODES = [ { "id": "data.aggregate", "category": "data", "label": {"en": "Aggregate", "de": "Sammeln", "fr": "Agréger"}, "description": {"en": "Collect results from loop iterations", "de": "Ergebnisse aus Schleifen-Iterationen sammeln", "fr": "Collecter les résultats des itérations"}, "parameters": [ {"name": "mode", "type": "string", "required": False, "frontendType": "select", "frontendOptions": {"options": ["collect", "concat", "sum", "count"]}, "description": {"en": "Aggregation mode", "de": "Aggregationsmodus", "fr": "Mode d'agrégation"}, "default": "collect"}, ], "inputs": 1, "outputs": 1, "inputPorts": {0: {"accepts": ["Transit"]}}, "outputPorts": {0: {"schema": "AggregateResult"}}, "executor": "data", "meta": {"icon": "mdi-playlist-plus", "color": "#607D8B"}, }, { "id": "data.transform", "category": "data", "label": {"en": "Transform", "de": "Umwandeln", "fr": "Transformer"}, "description": {"en": "Map and restructure data", "de": "Daten umstrukturieren", "fr": "Restructurer les données"}, "parameters": [ {"name": "mappings", "type": "json", "required": True, "frontendType": "mappingTable", "description": {"en": "Field mappings", "de": "Feld-Zuordnungen", "fr": "Correspondances"}, "default": []}, ], "inputs": 1, "outputs": 1, "inputPorts": {0: {"accepts": ["Transit"]}}, "outputPorts": {0: {"schema": "ActionResult", "dynamic": True, "deriveFrom": "mappings"}}, "executor": "data", "meta": {"icon": "mdi-swap-horizontal-bold", "color": "#607D8B"}, }, { "id": "data.filter", "category": "data", "label": {"en": "Filter", "de": "Filtern", "fr": "Filtrer"}, "description": {"en": "Filter items by condition", "de": "Elemente nach Bedingung filtern", "fr": "Filtrer par condition"}, "parameters": [ {"name": "condition", "type": "string", "required": True, "frontendType": "filterExpression", "description": {"en": "Filter condition", "de": "Filterbedingung", "fr": "Condition de filtre"}}, ], "inputs": 1, "outputs": 1, "inputPorts": {0: {"accepts": ["AggregateResult", "FileList", "TaskList", "EmailList", "DocumentList"]}}, "outputPorts": {0: {"schema": "Transit"}}, "executor": "data", "meta": {"icon": "mdi-filter-outline", "color": "#607D8B"}, }, ]