@@ -2,6 +2,7 @@ import {ReactiveArrayService, ReactiveArrayStore} from "@code0-tech/pictor";
22import {
33 FlowInput ,
44 FlowSetting ,
5+ FunctionDefinition ,
56 LiteralValue ,
67 Maybe ,
78 Mutation ,
@@ -16,11 +17,10 @@ import {
1617 NodeFunction ,
1718 NodeFunctionIdWrapper ,
1819 NodeParameter ,
19- NodeParameterValueInput , ParameterDefinition ,
20+ NodeParameterValueInput ,
2021 Query ,
2122 ReferencePathInput ,
22- ReferenceValue ,
23- Scalars
23+ ReferenceValue
2424} from "@code0-tech/sagittarius-graphql-types" ;
2525import { GraphqlClient } from "@core/util/graphql-client" ;
2626import flowsQuery from "@edition/flow/services/queries/Flows.query.graphql" ;
@@ -317,21 +317,43 @@ export class FlowService extends ReactiveArrayService<FlowView, FlowDependencies
317317 await this . syncFlow ( flowId )
318318 }
319319
320- async setParameterValue ( flowId : FlowView [ 'id' ] , nodeId : NodeFunction [ 'id' ] , parameterIndex : number , value ?: LiteralValue | ReferenceValue | NodeFunction , parameterDefinitionId ?: ParameterDefinition [ 'id' ] ) : Promise < void > {
320+ async setParameterValue ( flowId : FlowView [ 'id' ] , nodeId : NodeFunction [ 'id' ] , parameterIndex : number , value ?: LiteralValue | ReferenceValue | NodeFunction , functionDefinition ?: FunctionDefinition ) : Promise < void > {
321+
321322 const flow = this . getById ( flowId )
322323 const index = this . values ( ) . findIndex ( f => f . id === flowId )
323324 if ( ! flow ) return
324325 const node = this . getNodeById ( flowId , nodeId )
325326 if ( ! node ) return
327+
328+ if ( ! node . parameters ) {
329+ node . parameters = {
330+ nodes : [ ]
331+ }
332+ }
333+
334+ if ( ! node . parameters . nodes ) {
335+ node . parameters . nodes = [ ]
336+ }
337+
338+ functionDefinition ?. parameterDefinitions ?. nodes ?. forEach ( ( pD , index ) => {
339+ const nodeParameter = node . parameters ?. nodes ?. [ index ]
340+ if ( ! nodeParameter ) {
341+
342+ node ! . parameters ! . nodes ! [ parameterIndex ] = {
343+ __typename : "NodeParameter" ,
344+ value : null ,
345+ parameterDefinition : {
346+ id : pD ?. id
347+ }
348+ }
349+ }
350+ } )
351+
326352 const parameter = node . parameters ?. nodes ?. [ parameterIndex ]
327- if ( ! parameter && parameterDefinitionId && node . parameters && node . parameters . nodes ) {
328- //TODO: needs a parameterDefinitionId
353+ if ( ! parameter && node . parameters && node . parameters . nodes ) {
354+
329355 const localParameter : NodeParameter = {
330356 __typename : "NodeParameter" ,
331- parameterDefinition : {
332- __typename : "ParameterDefinition" ,
333- id : parameterDefinitionId
334- } ,
335357 value : null
336358 }
337359
0 commit comments