@jupyterlab/extensionmanager-extension 4.7.0-alpha.0 → 4.7.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/index.js CHANGED
@@ -6,7 +6,7 @@
6
6
  */
7
7
  import { ILayoutRestorer } from '@jupyterlab/application';
8
8
  import { Dialog, ICommandPalette, showDialog } from '@jupyterlab/apputils';
9
- import { ExtensionsPanel, ListModel } from '@jupyterlab/extensionmanager';
9
+ import { ExtensionsPanel, IExtensionManagerModel, ListModel } from '@jupyterlab/extensionmanager';
10
10
  import { ISettingRegistry } from '@jupyterlab/settingregistry';
11
11
  import { ITranslator, nullTranslator } from '@jupyterlab/translation';
12
12
  import { extensionIcon } from '@jupyterlab/ui-components';
@@ -27,12 +27,18 @@ const plugin = {
27
27
  description: 'Adds the extension manager plugin.',
28
28
  autoStart: true,
29
29
  requires: [ISettingRegistry],
30
- optional: [ITranslator, ILayoutRestorer, ICommandPalette],
31
- activate: async (app, registry, translator, restorer, palette) => {
30
+ optional: [
31
+ ITranslator,
32
+ ILayoutRestorer,
33
+ ICommandPalette,
34
+ IExtensionManagerModel
35
+ ],
36
+ activate: async (app, registry, translator, restorer, palette, extensionManagerModel) => {
32
37
  const { commands, shell, serviceManager } = app;
33
38
  translator = translator !== null && translator !== void 0 ? translator : nullTranslator;
34
39
  const trans = translator.load('jupyterlab');
35
- const model = new ListModel(serviceManager, translator);
40
+ // Use the model provided by the distribution, if any, else the default.
41
+ const model = extensionManagerModel !== null && extensionManagerModel !== void 0 ? extensionManagerModel : new ListModel(serviceManager, translator);
36
42
  const createView = () => {
37
43
  const v = new ExtensionsPanel({ model, translator: translator });
38
44
  v.id = 'extensionmanager.main-view';
@@ -52,12 +58,15 @@ const plugin = {
52
58
  };
53
59
  // Create a view by default, so it can be restored when loading the workspace.
54
60
  let view = createView();
61
+ if (!model.canInstall) {
62
+ // A read-only manager cannot be toggled off; keep the panel enabled.
63
+ model.isEnabled = true;
64
+ }
55
65
  // If the extension is enabled or disabled,
56
66
  // add or remove it from the left area.
57
67
  Promise.all([app.restored, registry.load(PLUGIN_ID)])
58
68
  .then(([, settings]) => {
59
69
  model.isDisclaimed = settings.get('disclaimed').composite;
60
- model.isEnabled = settings.get('enabled').composite;
61
70
  model.stateChanged.connect(() => {
62
71
  if (model.isDisclaimed !==
63
72
  settings.get('disclaimed').composite) {
@@ -65,21 +74,19 @@ const plugin = {
65
74
  console.error(`Failed to set setting 'disclaimed'.\n${reason}`);
66
75
  });
67
76
  }
68
- if (model.isEnabled !== settings.get('enabled').composite) {
77
+ if (model.canInstall &&
78
+ model.isEnabled !== settings.get('enabled').composite) {
69
79
  settings.set('enabled', model.isEnabled).catch(reason => {
70
80
  console.error(`Failed to set setting 'enabled'.\n${reason}`);
71
81
  });
72
82
  }
73
83
  });
74
- if (model.isEnabled) {
75
- view = view !== null && view !== void 0 ? view : createView();
76
- }
77
- else {
78
- view === null || view === void 0 ? void 0 : view.dispose();
79
- view = null;
80
- }
81
84
  settings.changed.connect(async () => {
82
85
  model.isDisclaimed = settings.get('disclaimed').composite;
86
+ // Only an installable manager exposes the enable/disable toggle.
87
+ if (!model.canInstall) {
88
+ return;
89
+ }
83
90
  model.isEnabled = settings.get('enabled').composite;
84
91
  app.commands.notifyCommandChanged(CommandIDs.toggle);
85
92
  if (model.isEnabled) {
@@ -97,6 +104,18 @@ const plugin = {
97
104
  view = null;
98
105
  }
99
106
  });
107
+ // The rest wires the enable/disable lifecycle of an installable manager.
108
+ if (!model.canInstall) {
109
+ return;
110
+ }
111
+ model.isEnabled = settings.get('enabled').composite;
112
+ if (model.isEnabled) {
113
+ view = view !== null && view !== void 0 ? view : createView();
114
+ }
115
+ else {
116
+ view === null || view === void 0 ? void 0 : view.dispose();
117
+ view = null;
118
+ }
100
119
  })
101
120
  .catch(reason => {
102
121
  console.error(`Something went wrong when reading the settings.\n${reason}`);
@@ -132,6 +151,8 @@ const plugin = {
132
151
  }
133
152
  },
134
153
  isToggled: () => model.isEnabled,
154
+ // Read-only managers are always enabled and cannot be disabled.
155
+ isVisible: () => model.canInstall,
135
156
  describedBy: {
136
157
  args: {
137
158
  type: 'object',
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,2DAA2D;AAC3D;;;GAGG;AAMH,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAE/D,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D,MAAM,SAAS,GAAG,+CAA+C,CAAC;AAElE;;GAEG;AACH,IAAU,UAAU,CAGnB;AAHD,WAAU,UAAU;IACL,oBAAS,GAAG,6BAA6B,CAAC;IAC1C,iBAAM,GAAG,yBAAyB,CAAC;AAClD,CAAC,EAHS,UAAU,KAAV,UAAU,QAGnB;AAED;;GAEG;AACH,MAAM,MAAM,GAAgC;IAC1C,EAAE,EAAE,SAAS;IACb,WAAW,EAAE,oCAAoC;IACjD,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,CAAC,gBAAgB,CAAC;IAC5B,QAAQ,EAAE,CAAC,WAAW,EAAE,eAAe,EAAE,eAAe,CAAC;IACzD,QAAQ,EAAE,KAAK,EACb,GAAoB,EACpB,QAA0B,EAC1B,UAA8B,EAC9B,QAAgC,EAChC,OAA+B,EAC/B,EAAE;QACF,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,GAAG,CAAC;QAChD,UAAU,GAAG,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,cAAc,CAAC;QAC1C,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAE5C,MAAM,KAAK,GAAG,IAAI,SAAS,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;QAExD,MAAM,UAAU,GAAG,GAAG,EAAE;YACtB,MAAM,CAAC,GAAG,IAAI,eAAe,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,UAAW,EAAE,CAAC,CAAC;YAClE,CAAC,CAAC,EAAE,GAAG,4BAA4B,CAAC;YACpC,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,aAAa,CAAC;YAC7B,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG;gBAChB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO;gBAClB,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAAC;aAC1C,CAAC;YACF,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC;YAChD,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YACtC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,2BAA2B,CAAC,CAAC,CAAC;YACzE,IAAI,QAAQ,EAAE,CAAC;gBACb,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YACxB,CAAC;YACD,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAErC,OAAO,CAAC,CAAC;QACX,CAAC,CAAC;QAEF,8EAA8E;QAC9E,IAAI,IAAI,GAA2B,UAAU,EAAE,CAAC;QAEhD,2CAA2C;QAC3C,uCAAuC;QACvC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;aAClD,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,EAAE;YACrB,KAAK,CAAC,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,SAAoB,CAAC;YACrE,KAAK,CAAC,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,SAAoB,CAAC;YAC/D,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE;gBAC9B,IACE,KAAK,CAAC,YAAY;oBACjB,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,SAAqB,EACjD,CAAC;oBACD,QAAQ,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;wBAC5D,OAAO,CAAC,KAAK,CAAC,wCAAwC,MAAM,EAAE,CAAC,CAAC;oBAClE,CAAC,CAAC,CAAC;gBACL,CAAC;gBACD,IACE,KAAK,CAAC,SAAS,KAAM,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,SAAqB,EAClE,CAAC;oBACD,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;wBACtD,OAAO,CAAC,KAAK,CAAC,qCAAqC,MAAM,EAAE,CAAC,CAAC;oBAC/D,CAAC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;gBACpB,IAAI,GAAG,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,UAAU,EAAE,CAAC;YAC9B,CAAC;iBAAM,CAAC;gBACN,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,EAAE,CAAC;gBAChB,IAAI,GAAG,IAAI,CAAC;YACd,CAAC;YAED,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;gBAClC,KAAK,CAAC,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,SAAoB,CAAC;gBACrE,KAAK,CAAC,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,SAAoB,CAAC;gBAC/D,GAAG,CAAC,QAAQ,CAAC,oBAAoB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;gBAErD,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;oBACpB,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;wBACtC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;wBAClD,IAAI,CAAC,QAAQ,EAAE,CAAC;4BACd,KAAK,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;4BACpC,OAAO;wBACT,CAAC;oBACH,CAAC;oBACD,IAAI,GAAG,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,UAAU,EAAE,CAAC;gBAC9B,CAAC;qBAAM,CAAC;oBACN,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,EAAE,CAAC;oBAChB,IAAI,GAAG,IAAI,CAAC;gBACd,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;aACD,KAAK,CAAC,MAAM,CAAC,EAAE;YACd,OAAO,CAAC,KAAK,CACX,oDAAoD,MAAM,EAAE,CAC7D,CAAC;QACJ,CAAC,CAAC,CAAC;QAEL,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,EAAE;YACxC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAAC;YACpC,OAAO,EAAE,CAAC,IAAwB,EAAE,EAAE;gBACpC,IAAI,IAAI,EAAE,CAAC;oBACT,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBAC5B,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;wBAC7B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAC5B,CAAC;gBACH,CAAC;YACH,CAAC;YACD,SAAS,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS;YAChC,WAAW,EAAE;gBACX,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,KAAK,EAAE;4BACL,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,KAAK,CAAC,EAAE,CACnB,mDAAmD,CACpD;yBACF;qBACF;iBACF;aACF;SACF,CAAC,CAAC;QAEH,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,EAAE;YACrC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,0BAA0B,CAAC;YAC3C,OAAO,EAAE,GAAG,EAAE;gBACZ,IAAI,QAAQ,EAAE,CAAC;oBACb,KAAK,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBAC5D,CAAC;YACH,CAAC;YACD,SAAS,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS;YAChC,WAAW,EAAE;gBACX,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE,EAAE;iBACf;aACF;SACF,CAAC,CAAC;QAEH,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,OAAO,CAAC;gBACd,OAAO,EAAE,UAAU,CAAC,MAAM;gBAC1B,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAAC;aACxC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CACF,CAAC;AAEF;;GAEG;AACH,eAAe,MAAM,CAAC;AAEtB;;GAEG;AACH,IAAU,OAAO,CAyBhB;AAzBD,WAAU,OAAO;IACf;;;;OAIG;IACI,KAAK,UAAU,WAAW,CAC/B,KAAwB;QAExB,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC;YAC9B,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,2BAA2B,CAAC;YAC5C,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;;;;;yBAKI,CAAC;YACpB,OAAO,EAAE;gBACP,MAAM,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC;gBACnD,MAAM,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;aACjD;SACF,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;IAC9B,CAAC;IAlBqB,mBAAW,cAkBhC,CAAA;AACH,CAAC,EAzBS,OAAO,KAAP,OAAO,QAyBhB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jupyterlab/extensionmanager-extension",
3
- "version": "4.7.0-alpha.0",
3
+ "version": "4.7.0-alpha.2",
4
4
  "description": "JupyterLab - Extension Manager Extension",
5
5
  "homepage": "https://github.com/jupyterlab/jupyterlab",
6
6
  "bugs": {
@@ -38,12 +38,12 @@
38
38
  "watch": "tsc -b --watch"
39
39
  },
40
40
  "dependencies": {
41
- "@jupyterlab/application": "^4.7.0-alpha.0",
42
- "@jupyterlab/apputils": "^4.8.0-alpha.0",
43
- "@jupyterlab/extensionmanager": "^4.7.0-alpha.0",
44
- "@jupyterlab/settingregistry": "^4.7.0-alpha.0",
45
- "@jupyterlab/translation": "^4.7.0-alpha.0",
46
- "@jupyterlab/ui-components": "^4.7.0-alpha.0"
41
+ "@jupyterlab/application": "^4.7.0-alpha.2",
42
+ "@jupyterlab/apputils": "^4.8.0-alpha.2",
43
+ "@jupyterlab/extensionmanager": "^4.7.0-alpha.2",
44
+ "@jupyterlab/settingregistry": "^4.7.0-alpha.2",
45
+ "@jupyterlab/translation": "^4.7.0-alpha.2",
46
+ "@jupyterlab/ui-components": "^4.7.0-alpha.2"
47
47
  },
48
48
  "devDependencies": {
49
49
  "rimraf": "~5.0.5",
package/src/index.ts CHANGED
@@ -11,7 +11,11 @@ import type {
11
11
  } from '@jupyterlab/application';
12
12
  import { ILayoutRestorer } from '@jupyterlab/application';
13
13
  import { Dialog, ICommandPalette, showDialog } from '@jupyterlab/apputils';
14
- import { ExtensionsPanel, ListModel } from '@jupyterlab/extensionmanager';
14
+ import {
15
+ ExtensionsPanel,
16
+ IExtensionManagerModel,
17
+ ListModel
18
+ } from '@jupyterlab/extensionmanager';
15
19
  import { ISettingRegistry } from '@jupyterlab/settingregistry';
16
20
  import type { TranslationBundle } from '@jupyterlab/translation';
17
21
  import { ITranslator, nullTranslator } from '@jupyterlab/translation';
@@ -35,19 +39,27 @@ const plugin: JupyterFrontEndPlugin<void> = {
35
39
  description: 'Adds the extension manager plugin.',
36
40
  autoStart: true,
37
41
  requires: [ISettingRegistry],
38
- optional: [ITranslator, ILayoutRestorer, ICommandPalette],
42
+ optional: [
43
+ ITranslator,
44
+ ILayoutRestorer,
45
+ ICommandPalette,
46
+ IExtensionManagerModel
47
+ ],
39
48
  activate: async (
40
49
  app: JupyterFrontEnd,
41
50
  registry: ISettingRegistry,
42
51
  translator: ITranslator | null,
43
52
  restorer: ILayoutRestorer | null,
44
- palette: ICommandPalette | null
53
+ palette: ICommandPalette | null,
54
+ extensionManagerModel: IExtensionManagerModel | null
45
55
  ) => {
46
56
  const { commands, shell, serviceManager } = app;
47
57
  translator = translator ?? nullTranslator;
48
58
  const trans = translator.load('jupyterlab');
49
59
 
50
- const model = new ListModel(serviceManager, translator);
60
+ // Use the model provided by the distribution, if any, else the default.
61
+ const model =
62
+ extensionManagerModel ?? new ListModel(serviceManager, translator);
51
63
 
52
64
  const createView = () => {
53
65
  const v = new ExtensionsPanel({ model, translator: translator! });
@@ -71,12 +83,16 @@ const plugin: JupyterFrontEndPlugin<void> = {
71
83
  // Create a view by default, so it can be restored when loading the workspace.
72
84
  let view: ExtensionsPanel | null = createView();
73
85
 
86
+ if (!model.canInstall) {
87
+ // A read-only manager cannot be toggled off; keep the panel enabled.
88
+ model.isEnabled = true;
89
+ }
90
+
74
91
  // If the extension is enabled or disabled,
75
92
  // add or remove it from the left area.
76
93
  Promise.all([app.restored, registry.load(PLUGIN_ID)])
77
94
  .then(([, settings]) => {
78
95
  model.isDisclaimed = settings.get('disclaimed').composite as boolean;
79
- model.isEnabled = settings.get('enabled').composite as boolean;
80
96
  model.stateChanged.connect(() => {
81
97
  if (
82
98
  model.isDisclaimed !==
@@ -87,6 +103,7 @@ const plugin: JupyterFrontEndPlugin<void> = {
87
103
  });
88
104
  }
89
105
  if (
106
+ model.canInstall &&
90
107
  model.isEnabled !== (settings.get('enabled').composite as boolean)
91
108
  ) {
92
109
  settings.set('enabled', model.isEnabled).catch(reason => {
@@ -95,15 +112,12 @@ const plugin: JupyterFrontEndPlugin<void> = {
95
112
  }
96
113
  });
97
114
 
98
- if (model.isEnabled) {
99
- view = view ?? createView();
100
- } else {
101
- view?.dispose();
102
- view = null;
103
- }
104
-
105
115
  settings.changed.connect(async () => {
106
116
  model.isDisclaimed = settings.get('disclaimed').composite as boolean;
117
+ // Only an installable manager exposes the enable/disable toggle.
118
+ if (!model.canInstall) {
119
+ return;
120
+ }
107
121
  model.isEnabled = settings.get('enabled').composite as boolean;
108
122
  app.commands.notifyCommandChanged(CommandIDs.toggle);
109
123
 
@@ -121,6 +135,19 @@ const plugin: JupyterFrontEndPlugin<void> = {
121
135
  view = null;
122
136
  }
123
137
  });
138
+
139
+ // The rest wires the enable/disable lifecycle of an installable manager.
140
+ if (!model.canInstall) {
141
+ return;
142
+ }
143
+
144
+ model.isEnabled = settings.get('enabled').composite as boolean;
145
+ if (model.isEnabled) {
146
+ view = view ?? createView();
147
+ } else {
148
+ view?.dispose();
149
+ view = null;
150
+ }
124
151
  })
125
152
  .catch(reason => {
126
153
  console.error(
@@ -162,6 +189,8 @@ const plugin: JupyterFrontEndPlugin<void> = {
162
189
  }
163
190
  },
164
191
  isToggled: () => model.isEnabled,
192
+ // Read-only managers are always enabled and cannot be disabled.
193
+ isVisible: () => model.canInstall,
165
194
  describedBy: {
166
195
  args: {
167
196
  type: 'object',