@@ -761,13 +761,35 @@ 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 new_outputs : Array < any > = [ ] ;
766
+ for ( const output of outputs ) {
767
+ if ( output . output_type === 'stream' ) {
768
+ const { text, ...output_without_text } = output ;
769
+ const _new_output : { [ id : string ] : any } = output_without_text ;
770
+ const new_text = new Y . Array ( ) ;
771
+ new_text . push ( text as string [ ] ) ;
772
+ _new_output [ 'text' ] = new_text ;
773
+ const new_output = new Y . Map ( ) ;
774
+ for ( const [ key , value ] of Object . entries ( _new_output ) ) {
775
+ new_output . set ( key , value ) ;
776
+ }
777
+ new_outputs . push ( new_output ) ;
778
+ } else {
779
+ new_outputs . push ( output ) ;
780
+ }
781
+ }
782
+ return new_outputs ;
783
+ }
784
+
764
785
/**
765
786
* Replace all outputs.
766
787
*/
767
788
setOutputs ( outputs : Array < nbformat . IOutput > ) : void {
768
789
this . transact ( ( ) => {
769
790
this . _youtputs . delete ( 0 , this . _youtputs . length ) ;
770
- this . _youtputs . insert ( 0 , outputs ) ;
791
+ const new_outputs = this . createOutputs ( outputs ) ;
792
+ this . _youtputs . insert ( 0 , new_outputs ) ;
771
793
} , false ) ;
772
794
}
773
795
@@ -789,7 +811,8 @@ export class YCodeCell
789
811
end < this . _youtputs . length ? end - start : this . _youtputs . length - start ;
790
812
this . transact ( ( ) => {
791
813
this . _youtputs . delete ( start , fin ) ;
792
- this . _youtputs . insert ( start , outputs ) ;
814
+ const new_outputs = this . createOutputs ( outputs ) ;
815
+ this . _youtputs . insert ( start , new_outputs ) ;
793
816
} , false ) ;
794
817
}
795
818
0 commit comments