@@ -354,7 +354,7 @@ define([
354
354
$ ( '#vp_wrapper' ) . width ( newVpWidth ) ;
355
355
if ( vpConfig . extensionType === 'lab' || vpConfig . extensionType === 'lite' ) {
356
356
// LAB: set parent width and position, min-width
357
- let target = $ ( '#vp_wrapper' ) . parent ( ) ;
357
+ let target = $ ( '#vp_wrapper' ) . closest ( '#jp-right-stack' ) ; // compatible for notebook 7.x
358
358
let prevWidth = target [ 0 ] . getBoundingClientRect ( ) . width ;
359
359
let prevLeft = $ ( target ) . position ( ) . left ;
360
360
let widthDiff = newVpWidth - vpWidth ;
@@ -367,11 +367,23 @@ define([
367
367
vpLab . shell . collapseRight ( ) ;
368
368
vpLab . shell . expandRight ( ) ;
369
369
}
370
- let relativeSizes = vpLab . shell . _hsplitPanel . layout . relativeSizes ( ) ;
371
- let absoluteSizes = vpLab . shell . _hsplitPanel . layout . absoluteSizes ( ) ;
372
- let newSize = absoluteSizes [ 1 ] - widthDiff ;
373
- let totalWidth = absoluteSizes . reduce ( ( x , a ) => x + a , 0 ) ;
374
- vpLab . shell . _hsplitPanel . layout . setRelativeSizes ( [ relativeSizes [ 0 ] , newSize / totalWidth , newVpWidth / totalWidth ] ) ;
370
+ if ( vpLab . name === 'JupyterLab' ) {
371
+ let splitLayout = vpLab . shell . _hsplitPanel . layout ;
372
+ let relativeSizes = splitLayout . relativeSizes ( ) ;
373
+ let absoluteSizes = splitLayout . absoluteSizes ( ) ;
374
+ let newSize = absoluteSizes [ 1 ] - widthDiff ;
375
+ let totalWidth = absoluteSizes . reduce ( ( x , a ) => x + a , 0 ) ;
376
+ splitLayout . setRelativeSizes ( [ relativeSizes [ 0 ] , newSize / totalWidth , newVpWidth / totalWidth ] ) ;
377
+ } else {
378
+ // compatible for notebook 7.x
379
+ // vpLab.shell.layout.widgets[0]
380
+ let splitLayout = vpLab . shell . layout . widgets [ 0 ] ;
381
+ let relativeSizes = splitLayout . relativeSizes ( ) ;
382
+ let absoluteSizes = splitLayout . widgets . map ( x => x . node . getBoundingClientRect ( ) . width ) ;
383
+ let newSize = absoluteSizes [ 1 ] - widthDiff ;
384
+ let totalWidth = absoluteSizes . reduce ( ( x , a ) => x + a , 0 ) ;
385
+ splitLayout . setRelativeSizes ( [ relativeSizes [ 0 ] , newSize / totalWidth , newVpWidth / totalWidth ] ) ;
386
+ }
375
387
} else {
376
388
$ ( '#vp_wrapper' ) . resizable ( { minWidth : MENU_MIN_WIDTH + MENU_BOARD_SPACING } ) ;
377
389
}
@@ -384,7 +396,7 @@ define([
384
396
$ ( '#vp_wrapper' ) . width ( newVpWidth ) ;
385
397
if ( vpConfig . extensionType === 'lab' || vpConfig . extensionType === 'lite' ) {
386
398
// LAB: set parent width and position, min-width
387
- let target = $ ( '#vp_wrapper' ) . parent ( ) ;
399
+ let target = $ ( '#vp_wrapper' ) . closest ( '#jp-right-stack' ) ; // compatible for notebook 7.x
388
400
let prevWidth = target [ 0 ] . getBoundingClientRect ( ) . width ;
389
401
let prevLeft = $ ( target ) . position ( ) . left ;
390
402
let widthDiff = newVpWidth - vpWidth ;
@@ -397,11 +409,23 @@ define([
397
409
vpLab . shell . collapseRight ( ) ;
398
410
vpLab . shell . expandRight ( ) ;
399
411
}
400
- let relativeSizes = vpLab . shell . _hsplitPanel . layout . relativeSizes ( ) ;
401
- let absoluteSizes = vpLab . shell . _hsplitPanel . layout . absoluteSizes ( ) ;
402
- let newSize = absoluteSizes [ 1 ] - widthDiff ;
403
- let totalWidth = absoluteSizes . reduce ( ( x , a ) => x + a , 0 ) ;
404
- vpLab . shell . _hsplitPanel . layout . setRelativeSizes ( [ relativeSizes [ 0 ] , newSize / totalWidth , newVpWidth / totalWidth ] ) ;
412
+ if ( vpLab . name === 'JupyterLab' ) {
413
+ let splitLayout = vpLab . shell . _hsplitPanel . layout ;
414
+ let relativeSizes = splitLayout . relativeSizes ( ) ;
415
+ let absoluteSizes = splitLayout . absoluteSizes ( ) ;
416
+ let newSize = absoluteSizes [ 1 ] - widthDiff ;
417
+ let totalWidth = absoluteSizes . reduce ( ( x , a ) => x + a , 0 ) ;
418
+ splitLayout . setRelativeSizes ( [ relativeSizes [ 0 ] , newSize / totalWidth , newVpWidth / totalWidth ] ) ;
419
+ } else {
420
+ // compatible for notebook 7.x
421
+ // vpLab.shell.layout.widgets[0]
422
+ let splitLayout = vpLab . shell . layout . widgets [ 0 ] ;
423
+ let relativeSizes = splitLayout . relativeSizes ( ) ;
424
+ let absoluteSizes = splitLayout . widgets . map ( x => x . node . getBoundingClientRect ( ) . width ) ;
425
+ let newSize = absoluteSizes [ 1 ] - widthDiff ;
426
+ let totalWidth = absoluteSizes . reduce ( ( x , a ) => x + a , 0 ) ;
427
+ splitLayout . setRelativeSizes ( [ relativeSizes [ 0 ] , newSize / totalWidth , newVpWidth / totalWidth ] ) ;
428
+ }
405
429
} else {
406
430
$ ( '#vp_wrapper' ) . resizable ( { minWidth : VP_MIN_WIDTH } ) ;
407
431
}
0 commit comments