1
1
var _ = require ( 'underscore' ) ;
2
2
var widgets = require ( '@jupyter-widgets/base' ) ;
3
- var $ = require ( 'jquery' ) ;
4
3
var Promise = require ( 'bluebird' ) ;
5
4
6
5
var pkgName = require ( '../../package.json' ) . name ;
@@ -52,6 +51,7 @@ class RenderableModel extends widgets.DOMWidgetModel {
52
51
53
52
initialize ( attributes , options ) {
54
53
widgets . DOMWidgetModel . prototype . initialize . apply ( this , arguments ) ;
54
+ this . boundTick = this . tick . bind ( this ) ;
55
55
56
56
this . createPropertiesArrays ( ) ;
57
57
ThreeModel . prototype . setupListeners . call ( this ) ;
@@ -132,10 +132,10 @@ class RenderableModel extends widgets.DOMWidgetModel {
132
132
var canvas ;
133
133
if ( view . isFrozen ) {
134
134
canvas = document . createElement ( 'canvas' ) ;
135
- canvas . width = view . $ frozenRenderer. width ( ) ;
136
- canvas . height = view . $ frozenRenderer. height ( ) ;
135
+ canvas . width = view . frozenRenderer . width ;
136
+ canvas . height = view . frozenRenderer . height ;
137
137
var ctx = canvas . getContext ( '2d' ) ;
138
- ctx . drawImage ( view . $ frozenRenderer[ 0 ] , 0 , 0 ) ;
138
+ ctx . drawImage ( view . frozenRenderer , 0 , 0 ) ;
139
139
} else {
140
140
canvas = view . renderer . domElement ;
141
141
}
@@ -191,7 +191,7 @@ class RenderableView extends widgets.DOMWidgetView {
191
191
remove ( ) {
192
192
super . remove ( ) ;
193
193
194
- this . $ el. empty ( ) ;
194
+ this . el . replaceChildren ( ) ;
195
195
if ( ! this . isFrozen ) {
196
196
this . teardownViewer ( ) ;
197
197
}
@@ -226,8 +226,8 @@ class RenderableView extends widgets.DOMWidgetView {
226
226
if ( this . renderer ) {
227
227
candidates . push ( this . renderer . domElement ) ;
228
228
}
229
- if ( this . $ frozenRenderer) {
230
- candidates . push ( this . $ frozenRenderer[ 0 ] ) ;
229
+ if ( this . frozenRenderer ) {
230
+ candidates . push ( this . frozenRenderer ) ;
231
231
}
232
232
if ( candidates . indexOf ( event . target ) !== - 1 ) {
233
233
event . preventDefault ( ) ;
@@ -274,7 +274,8 @@ class RenderableView extends widgets.DOMWidgetView {
274
274
var height = this . model . get ( '_height' ) ;
275
275
if ( this . isFrozen ) {
276
276
// Set size of frozen element
277
- this . $frozenRenderer . width ( width ) . height ( height ) ;
277
+ this . frozenRenderer . width = width ;
278
+ this . frozenRenderer . height = height ;
278
279
} else {
279
280
this . renderer . setSize ( width , height ) ;
280
281
}
@@ -395,9 +396,9 @@ class RenderableView extends widgets.DOMWidgetView {
395
396
396
397
this . isFrozen = false ;
397
398
398
- if ( this . $ frozenRenderer) {
399
- this . $ frozenRenderer. off ( 'mouseenter' ) ;
400
- this . $ frozenRenderer = null ;
399
+ if ( this . frozenRenderer ) {
400
+ this . frozenRenderer . removeEventListener ( 'mouseenter' , this . boundTick ) ;
401
+ this . frozenRenderer = null ;
401
402
}
402
403
403
404
this . acquireRenderer ( ) ;
@@ -420,10 +421,9 @@ class RenderableView extends widgets.DOMWidgetView {
420
421
config ,
421
422
this . onRendererReclaimed . bind ( this ) ) ;
422
423
423
- this . $renderer = $ ( this . renderer . domElement ) ;
424
- this . $el . empty ( ) . append ( this . $renderer ) ;
424
+ this . el . replaceChildren ( this . renderer ) ;
425
425
426
- this . $ el. css ( ' display' , 'block' ) ;
426
+ this . el . style . display = 'block' ;
427
427
428
428
this . updateSize ( ) ;
429
429
@@ -442,49 +442,48 @@ class RenderableView extends widgets.DOMWidgetView {
442
442
443
443
this . debug ( 'ThreeView.freeze(id=' + this . renderer . poolId + ')' ) ;
444
444
445
- this . $el . empty ( ) . append ( '<img src="' + this . renderer . domElement . toDataURL ( ) + '" />' ) ;
445
+ const frozen = document . createElement ( 'img' ) ;
446
+ frozen . src = this . renderer . domElement . toDataURL ( ) ;
447
+ this . el . replaceChildren ( frozen ) ;
446
448
447
449
this . teardownViewer ( ) ;
448
- this . $ frozenRenderer = this . $el . find ( 'img' ) ;
450
+ this . frozenRenderer = frozen ;
449
451
450
452
// Ensure the image gets set the right size:
451
453
this . updateSize ( ) ;
452
454
453
455
if ( this . controls ) {
454
- this . $frozenRenderer . on ( 'mouseenter' , _ . bind ( function ( ) {
455
- this . debug ( 'frozenRenderer.mouseenter' ) ;
456
- this . tick ( ) ; // renderer will be acquired by renderScene
457
- } , this ) ) ;
456
+ this . frozenRenderer . addEventListener ( 'mouseenter' , this . boundTick ) ;
458
457
}
459
458
460
459
}
461
460
462
- teardownViewer ( ) {
461
+ onFrozenMouseEnter ( ) {
462
+ this . debug ( 'frozenRenderer.mouseenter' ) ;
463
+ this . tick ( ) ; // renderer will be acquired by renderScene
464
+ }
463
465
464
- this . $renderer . off ( 'mouseenter' ) ;
465
- this . $renderer . off ( 'mouseleave' ) ;
466
+ teardownViewer ( ) {
466
467
467
468
this . isFrozen = true ;
468
469
RendererPool . release ( this . renderer ) ;
469
470
470
- this . $renderer = null ;
471
471
this . renderer = null ;
472
472
473
473
if ( this . controls ) {
474
474
this . disableControls ( ) ;
475
475
}
476
476
477
- this . $ el. css ( 'margin-bottom' , 'auto' ) ;
477
+ this . el . style . marginBottom = 'auto' ;
478
478
479
479
}
480
480
481
481
enableControls ( ) {
482
482
this . debug ( 'Enable controls' ) ;
483
- this . boundTick = this . tick . bind ( this ) ;
484
483
var that = this ;
485
484
this . controls . forEach ( function ( control ) {
486
485
control . enabled = true ;
487
- control . connectEvents ( that . $ renderer[ 0 ] ) ;
486
+ control . connectEvents ( that . renderer ) ;
488
487
control . addEventListener ( 'change' , that . boundTick ) ;
489
488
} ) ;
490
489
}
0 commit comments