message: Merging the input metadata values of a flow as per changes to the inputs of a flow
diff: @@ -1851,8 +1851,8 @@ export class FlogoCanvasComponent implements OnInit, OnDestroy {
  flowUpdatePromise.then(() => this._runFromRoot());
  }
  - public onFlowSchemaSave(newMetadata: { input: any[], output: any[] }) {
  - this.flow.metadata.input = newMetadata.input;
  + public onFlowSchemaSave(newMetadata: FlowMetadata) {
  + this.flow.metadata.input = this.mergeFlowInputMetadata(newMetadata.input);
  this.flow.metadata.output = newMetadata.output;
  const outputRegistry = new Map(<Array<[string, boolean]>>newMetadata.output.map((o: any) => [o.name, true]));
  @@ -1861,6 +1861,16 @@ export class FlogoCanvasComponent implements OnInit, OnDestroy {
  this._updateFlow(this.flow);
  }
  + private mergeFlowInputMetadata(inputMetadata: FlowMetadataAttribute[]): FlowMetadataAttribute[] {
  + return inputMetadata.map(input => {
  + const existingInput = this.flow.metadata.input.find(i => i.name === input.name && i.type === input.type);
  + if (existingInput) {
  + input.value = existingInput.value;
  + }
  + return input;
  + });
  + }
  +
  private cleanDanglingOutputMappings(outputRegistry: Map<string, boolean>) {
  const isMapperContribAndHasMapping = (task: IFlogoFlowDiagramTask) => {
  const schema = this.flow.schemas[task.ref];
  