@@ -761,13 +761,37 @@ export class YCodeCell
761
761
return JSONExt . deepCopy ( this . _youtputs . toArray ( ) ) ;
762
762
}
763
763
764
+ createOutputs ( outputs : Array < nbformat . IOutput > ) : Array < any > {
765
+ const newOutputs : Array < any > = [ ] ;
766
+ for ( const output of outputs ) {
767
+ let _newOutput : { [ id : string ] : any } ;
768
+ const newOutput = new Y . Map ( ) ;
769
+ if ( output . output_type === 'stream' ) {
770
+ // Set the text field as a Y.Array
771
+ const { text, ...outputWithoutText } = output ;
772
+ _newOutput = outputWithoutText ;
773
+ const newText = new Y . Array ( ) ;
774
+ newText . push ( text as string [ ] ) ;
775
+ _newOutput [ 'text' ] = newText ;
776
+ } else {
777
+ _newOutput = output ;
778
+ }
779
+ for ( const [ key , value ] of Object . entries ( _newOutput ) ) {
780
+ newOutput . set ( key , value ) ;
781
+ }
782
+ newOutputs . push ( newOutput ) ;
783
+ }
784
+ return newOutputs ;
785
+ }
786
+
764
787
/**
765
788
* Replace all outputs.
766
789
*/
767
790
setOutputs ( outputs : Array < nbformat . IOutput > ) : void {
768
791
this . transact ( ( ) => {
769
792
this . _youtputs . delete ( 0 , this . _youtputs . length ) ;
770
- this . _youtputs . insert ( 0 , outputs ) ;
793
+ const newOutputs = this . createOutputs ( outputs ) ;
794
+ this . _youtputs . insert ( 0 , newOutputs ) ;
771
795
} , false ) ;
772
796
}
773
797
@@ -789,7 +813,8 @@ export class YCodeCell
789
813
end < this . _youtputs . length ? end - start : this . _youtputs . length - start ;
790
814
this . transact ( ( ) => {
791
815
this . _youtputs . delete ( start , fin ) ;
792
- this . _youtputs . insert ( start , outputs ) ;
816
+ const newOutputs = this . createOutputs ( outputs ) ;
817
+ this . _youtputs . insert ( start , newOutputs ) ;
793
818
} , false ) ;
794
819
}
795
820
0 commit comments