@@ -374,7 +374,7 @@ export class DataGridModel extends DOMWidgetModel {
374
374
transforms : { deserialize : unpack_models as any } ,
375
375
renderers : {
376
376
deserialize : unpack_models as any ,
377
- serialize : pack_models as any ,
377
+ serialize : debug as any ,
378
378
} ,
379
379
corner_renderer : { deserialize : unpack_models as any } ,
380
380
default_renderer : { deserialize : unpack_models as any } ,
@@ -400,6 +400,40 @@ export class DataGridModel extends DOMWidgetModel {
400
400
_view_callbacks : ICallbacks ;
401
401
}
402
402
403
+ function debug ( value : any ) {
404
+ const upm = debug_pack_models ( value ) ;
405
+ console . log ( 'first' , value ) ;
406
+ console . log ( 'upm' , upm ) ;
407
+ return upm ;
408
+ }
409
+ const IPY_MODEL_ = 'IPY_MODEL_' ;
410
+
411
+ function debug_pack_models (
412
+ value : WidgetModel | Dict < WidgetModel > | WidgetModel [ ] | any ,
413
+ widget ?: WidgetModel ,
414
+ ) : any | Dict < unknown > | string | ( Dict < unknown > | string ) [ ] {
415
+ if ( Array . isArray ( value ) ) {
416
+ console . log ( 'array' ) ;
417
+ const model_ids : string [ ] = [ ] ;
418
+ for ( const model of value ) {
419
+ model_ids . push ( pack_models ( model , widget ) ) ;
420
+ }
421
+ return model_ids ;
422
+ } else if ( value instanceof WidgetModel ) {
423
+ console . log ( 'widget model' ) ;
424
+ return `${ IPY_MODEL_ } ${ value . model_id } ` ;
425
+ } else if ( value instanceof Object && typeof value !== 'string' ) {
426
+ console . log ( 'object' ) ;
427
+ const packed : { [ key : string ] : string } = { } ;
428
+ for ( const [ key , sub_value ] of Object . entries ( value ) ) {
429
+ packed [ key ] = pack_models ( sub_value , widget ) ;
430
+ }
431
+ return packed ;
432
+ } else {
433
+ return value ;
434
+ }
435
+ }
436
+
403
437
/**
404
438
* Helper function to convert snake_case strings to camelCase.
405
439
* Assumes all strings are valid snake_case (all lowercase).
0 commit comments