@@ -246,7 +246,7 @@ export abstract class DataMapperNodeModel extends NodeModel<NodeModelGenerics &
246246 value : mapping ,
247247 fieldFQN : name ,
248248 optionalOmittedFieldFQN : name ,
249- collapsed : this . isHeaderPortCollapsed ( portName , portType , collapsedFields , expandedFields , isFocused , dmType ) ,
249+ collapsed : this . isHeaderPortCollapsed ( portName , portType , collapsedFields , expandedFields , isFocused ) ,
250250 hidden : false ,
251251 descendantHasValue : false ,
252252 ancestorHasValue : false ,
@@ -283,8 +283,7 @@ export abstract class DataMapperNodeModel extends NodeModel<NodeModelGenerics &
283283 // For tuple members, use the field.id if it contains bracket notation
284284 if ( field ?. id && field . id . includes ( '[' ) && field . id . includes ( ']' ) ) {
285285 return field . id ;
286- }
287- // }
286+ }
288287
289288 return unsafeParentId ? `${ unsafeParentId } .${ fieldName } ` : fieldName || '' ;
290289 }
@@ -318,19 +317,15 @@ export abstract class DataMapperNodeModel extends NodeModel<NodeModelGenerics &
318317 portType : "IN" | "OUT" ,
319318 collapsedFields : string [ ] ,
320319 expandedFields : string [ ] ,
321- isFocused : boolean ,
322- dmType ?: IOType
320+ isFocused : boolean
323321 ) : boolean {
324- // Tuples should be expanded by default (like records and enums)
325- if ( dmType ?. kind === TypeKind . Tuple && portType === "OUT" ) {
326- return collapsedFields ?. includes ( portName ) ;
327- }
328-
329322 // In Inline Data Mapper, the inputs are always collapsed by default except focused view.
330323 // Hence we explicitly check expandedFields for input header ports.
331324 if ( portType === "IN" || isFocused ) {
332325 return collapsedFields ?. includes ( portName ) ;
333326 } else {
327+ // OUT ports (including tuples and records) are expanded by default
328+ // They use expandedFields - collapsed if NOT in the list
334329 return ! expandedFields ?. includes ( portName ) ;
335330 }
336331 }
@@ -453,7 +448,7 @@ export abstract class DataMapperNodeModel extends NodeModel<NodeModelGenerics &
453448 private async processTupleField ( attributes : OutputPortAttributes ) {
454449 const members = attributes . field ?. members ?. filter ( m => ! ! m ) ;
455450 if ( members && members . length ) {
456- for ( const member of members ) {
451+ for ( const member of members ) {
457452 await this . addPortsForOutputField ( {
458453 ...attributes ,
459454 field : member ,
0 commit comments