@@ -157,8 +157,8 @@ export function registerWidgetManager(
157
157
*/
158
158
const plugin : JupyterFrontEndPlugin < base . IJupyterWidgetRegistry > = {
159
159
id : '@jupyter-widgets/jupyterlab-manager:plugin' ,
160
- requires : [ INotebookTracker , IRenderMimeRegistry , ISettingRegistry ] ,
161
- optional : [ IMainMenu , ILoggerRegistry ] ,
160
+ requires : [ IRenderMimeRegistry ] ,
161
+ optional : [ INotebookTracker , ISettingRegistry , IMainMenu , ILoggerRegistry ] ,
162
162
provides : base . IJupyterWidgetRegistry ,
163
163
activate : activateWidgetExtension ,
164
164
autoStart : true
@@ -176,11 +176,12 @@ function updateSettings(settings: ISettingRegistry.ISettings): void {
176
176
*/
177
177
function activateWidgetExtension (
178
178
app : JupyterFrontEnd ,
179
- tracker : INotebookTracker ,
180
179
rendermime : IRenderMimeRegistry ,
181
- settingRegistry : ISettingRegistry ,
180
+ tracker : INotebookTracker | null ,
181
+ settingRegistry : ISettingRegistry | null ,
182
182
menu : IMainMenu | null ,
183
- loggerRegistry : ILoggerRegistry | null ) : base . IJupyterWidgetRegistry {
183
+ loggerRegistry : ILoggerRegistry | null
184
+ ) : base . IJupyterWidgetRegistry {
184
185
185
186
const { commands} = app ;
186
187
@@ -210,13 +211,14 @@ function activateWidgetExtension(
210
211
} ) ;
211
212
}
212
213
} ;
213
-
214
- settingRegistry . load ( plugin . id ) . then ( ( settings : ISettingRegistry . ISettings ) => {
215
- settings . changed . connect ( updateSettings ) ;
216
- updateSettings ( settings ) ;
217
- } ) . catch ( ( reason : Error ) => {
218
- console . error ( reason . message ) ;
219
- } ) ;
214
+ if ( settingRegistry !== null ) {
215
+ settingRegistry . load ( plugin . id ) . then ( ( settings : ISettingRegistry . ISettings ) => {
216
+ settings . changed . connect ( updateSettings ) ;
217
+ updateSettings ( settings ) ;
218
+ } ) . catch ( ( reason : Error ) => {
219
+ console . error ( reason . message ) ;
220
+ } ) ;
221
+ }
220
222
221
223
// Add a placeholder widget renderer.
222
224
rendermime . addFactory (
@@ -228,43 +230,47 @@ function activateWidgetExtension(
228
230
0
229
231
) ;
230
232
231
- tracker . forEach ( panel => {
232
- registerWidgetManager (
233
- panel . context ,
234
- panel . content . rendermime ,
235
- chain (
236
- widgetRenderers ( panel . content ) ,
237
- outputViews ( app , panel . context . path )
238
- )
239
- ) ;
240
-
241
- bindUnhandledIOPubMessageSignal ( panel ) ;
242
- } ) ;
243
- tracker . widgetAdded . connect ( ( sender , panel ) => {
244
- registerWidgetManager (
245
- panel . context ,
246
- panel . content . rendermime ,
247
- chain (
248
- widgetRenderers ( panel . content ) ,
249
- outputViews ( app , panel . context . path )
250
- )
251
- ) ;
252
-
253
- bindUnhandledIOPubMessageSignal ( panel ) ;
254
- } ) ;
233
+ if ( tracker !== null ) {
234
+ tracker . forEach ( panel => {
235
+ registerWidgetManager (
236
+ panel . context ,
237
+ panel . content . rendermime ,
238
+ chain (
239
+ widgetRenderers ( panel . content ) ,
240
+ outputViews ( app , panel . context . path )
241
+ )
242
+ ) ;
243
+
244
+ bindUnhandledIOPubMessageSignal ( panel ) ;
245
+ } ) ;
246
+ tracker . widgetAdded . connect ( ( sender , panel ) => {
247
+ registerWidgetManager (
248
+ panel . context ,
249
+ panel . content . rendermime ,
250
+ chain (
251
+ widgetRenderers ( panel . content ) ,
252
+ outputViews ( app , panel . context . path )
253
+ )
254
+ ) ;
255
+
256
+ bindUnhandledIOPubMessageSignal ( panel ) ;
257
+ } ) ;
258
+ }
255
259
256
- // Add a command for creating a new Markdown file.
257
- commands . addCommand ( '@jupyter-widgets/jupyterlab-manager:saveWidgetState' , {
258
- label : 'Save Widget State Automatically' ,
259
- execute : args => {
260
- return settingRegistry
261
- . set ( plugin . id , 'saveState' , ! SETTINGS . saveState )
262
- . catch ( ( reason : Error ) => {
263
- console . error ( `Failed to set ${ plugin . id } : ${ reason . message } ` ) ;
264
- } ) ;
265
- } ,
266
- isToggled : ( ) => SETTINGS . saveState
267
- } ) ;
260
+ if ( settingRegistry !== null ) {
261
+ // Add a command for creating a new Markdown file.
262
+ commands . addCommand ( '@jupyter-widgets/jupyterlab-manager:saveWidgetState' , {
263
+ label : 'Save Widget State Automatically' ,
264
+ execute : args => {
265
+ return settingRegistry
266
+ . set ( plugin . id , 'saveState' , ! SETTINGS . saveState )
267
+ . catch ( ( reason : Error ) => {
268
+ console . error ( `Failed to set ${ plugin . id } : ${ reason . message } ` ) ;
269
+ } ) ;
270
+ } ,
271
+ isToggled : ( ) => SETTINGS . saveState
272
+ } ) ;
273
+ }
268
274
269
275
if ( menu ) {
270
276
menu . settingsMenu . addGroup ( [
0 commit comments