@jupyterlab/apputils-extension 4.4.0-alpha.1 → 4.4.0-alpha.3

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.
@@ -4,6 +4,7 @@
4
4
  |----------------------------------------------------------------------------*/
5
5
  import { ILabShell } from '@jupyterlab/application';
6
6
  import { IKernelStatusModel, ISessionContextDialogs, KernelStatus, RunningSessions, SessionContextDialogs } from '@jupyterlab/apputils';
7
+ import { ISettingRegistry } from '@jupyterlab/settingregistry';
7
8
  import { IStatusBar } from '@jupyterlab/statusbar';
8
9
  import { ITranslator, nullTranslator } from '@jupyterlab/translation';
9
10
  /**
@@ -92,28 +93,53 @@ export const runningSessionsStatus = {
92
93
  description: 'Add the running sessions and terminals status bar item.',
93
94
  autoStart: true,
94
95
  requires: [IStatusBar, ITranslator],
95
- activate: (app, statusBar, translator) => {
96
- const item = new RunningSessions({
97
- onClick: () => app.shell.activateById('jp-running-sessions'),
98
- onKeyDown: (event) => {
99
- if (event.key === 'Enter' ||
100
- event.key === 'Spacebar' ||
101
- event.key === ' ') {
102
- event.preventDefault();
103
- event.stopPropagation();
104
- app.shell.activateById('jp-running-sessions');
96
+ optional: [ISettingRegistry],
97
+ activate: (app, statusBar, translator, settingRegistry) => {
98
+ const createStatusItem = () => {
99
+ const item = new RunningSessions({
100
+ onClick: () => app.shell.activateById('jp-running-sessions'),
101
+ onKeyDown: (event) => {
102
+ if (event.key === 'Enter' ||
103
+ event.key === 'Spacebar' ||
104
+ event.key === ' ') {
105
+ event.preventDefault();
106
+ event.stopPropagation();
107
+ app.shell.activateById('jp-running-sessions');
108
+ }
109
+ },
110
+ serviceManager: app.serviceManager,
111
+ translator
112
+ });
113
+ item.model.sessions = Array.from(app.serviceManager.sessions.running()).length;
114
+ item.model.terminals = Array.from(app.serviceManager.terminals.running()).length;
115
+ return item;
116
+ };
117
+ const registerItem = () => {
118
+ const item = createStatusItem();
119
+ return statusBar.registerStatusItem(runningSessionsStatus.id, {
120
+ item,
121
+ align: 'left',
122
+ rank: 0
123
+ });
124
+ };
125
+ if (settingRegistry) {
126
+ let disposable;
127
+ const onSettingsUpdated = (settings) => {
128
+ const showStatusBarItem = settings.get('showStatusBarItem')
129
+ .composite;
130
+ disposable === null || disposable === void 0 ? void 0 : disposable.dispose();
131
+ if (showStatusBarItem) {
132
+ disposable = registerItem();
105
133
  }
106
- },
107
- serviceManager: app.serviceManager,
108
- translator
109
- });
110
- item.model.sessions = Array.from(app.serviceManager.sessions.running()).length;
111
- item.model.terminals = Array.from(app.serviceManager.terminals.running()).length;
112
- statusBar.registerStatusItem(runningSessionsStatus.id, {
113
- item,
114
- align: 'left',
115
- rank: 0
116
- });
134
+ };
135
+ void settingRegistry.load(runningSessionsStatus.id).then(settings => {
136
+ onSettingsUpdated(settings);
137
+ settings.changed.connect(onSettingsUpdated);
138
+ });
139
+ }
140
+ else {
141
+ registerItem();
142
+ }
117
143
  }
118
144
  };
119
145
  //# sourceMappingURL=statusbarplugin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"statusbarplugin.js","sourceRoot":"","sources":["../src/statusbarplugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"statusbarplugin.js","sourceRoot":"","sources":["../src/statusbarplugin.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jupyterlab/apputils-extension",
3
- "version": "4.4.0-alpha.1",
3
+ "version": "4.4.0-alpha.3",
4
4
  "description": "JupyterLab - Application Utilities Extension",
5
5
  "homepage": "https://github.com/jupyterlab/jupyterlab",
6
6
  "bugs": {
@@ -37,19 +37,19 @@
37
37
  "watch": "tsc -b --watch"
38
38
  },
39
39
  "dependencies": {
40
- "@jupyterlab/application": "^4.4.0-alpha.1",
41
- "@jupyterlab/apputils": "^4.5.0-alpha.1",
42
- "@jupyterlab/coreutils": "^6.4.0-alpha.1",
43
- "@jupyterlab/docregistry": "^4.4.0-alpha.1",
44
- "@jupyterlab/mainmenu": "^4.4.0-alpha.1",
45
- "@jupyterlab/rendermime-interfaces": "^3.12.0-alpha.1",
46
- "@jupyterlab/services": "^7.4.0-alpha.1",
47
- "@jupyterlab/settingregistry": "^4.4.0-alpha.1",
48
- "@jupyterlab/statedb": "^4.4.0-alpha.1",
49
- "@jupyterlab/statusbar": "^4.4.0-alpha.1",
50
- "@jupyterlab/translation": "^4.4.0-alpha.1",
51
- "@jupyterlab/ui-components": "^4.4.0-alpha.1",
52
- "@jupyterlab/workspaces": "^4.4.0-alpha.1",
40
+ "@jupyterlab/application": "^4.4.0-alpha.3",
41
+ "@jupyterlab/apputils": "^4.5.0-alpha.3",
42
+ "@jupyterlab/coreutils": "^6.4.0-alpha.3",
43
+ "@jupyterlab/docregistry": "^4.4.0-alpha.3",
44
+ "@jupyterlab/mainmenu": "^4.4.0-alpha.3",
45
+ "@jupyterlab/rendermime-interfaces": "^3.12.0-alpha.3",
46
+ "@jupyterlab/services": "^7.4.0-alpha.3",
47
+ "@jupyterlab/settingregistry": "^4.4.0-alpha.3",
48
+ "@jupyterlab/statedb": "^4.4.0-alpha.3",
49
+ "@jupyterlab/statusbar": "^4.4.0-alpha.3",
50
+ "@jupyterlab/translation": "^4.4.0-alpha.3",
51
+ "@jupyterlab/ui-components": "^4.4.0-alpha.3",
52
+ "@jupyterlab/workspaces": "^4.4.0-alpha.3",
53
53
  "@lumino/algorithm": "^2.0.2",
54
54
  "@lumino/commands": "^2.3.1",
55
55
  "@lumino/coreutils": "^2.2.0",
@@ -0,0 +1,14 @@
1
+ {
2
+ "title": "Running Terminals and Kernels",
3
+ "description": "Running Terminals and Kernels settings",
4
+ "additionalProperties": false,
5
+ "properties": {
6
+ "showStatusBarItem": {
7
+ "type": "boolean",
8
+ "title": "Show the status bar item",
9
+ "description": "Whether to show the running terminals and kernels item in the status bar",
10
+ "default": true
11
+ }
12
+ },
13
+ "type": "object"
14
+ }
@@ -16,8 +16,10 @@ import {
16
16
  RunningSessions,
17
17
  SessionContextDialogs
18
18
  } from '@jupyterlab/apputils';
19
+ import { ISettingRegistry } from '@jupyterlab/settingregistry';
19
20
  import { IStatusBar } from '@jupyterlab/statusbar';
20
21
  import { ITranslator, nullTranslator } from '@jupyterlab/translation';
22
+ import { IDisposable } from '@lumino/disposable';
21
23
  import { Title, Widget } from '@lumino/widgets';
22
24
  import { KeyboardEvent } from 'react';
23
25
 
@@ -139,39 +141,70 @@ export const runningSessionsStatus: JupyterFrontEndPlugin<void> = {
139
141
  description: 'Add the running sessions and terminals status bar item.',
140
142
  autoStart: true,
141
143
  requires: [IStatusBar, ITranslator],
144
+ optional: [ISettingRegistry],
142
145
  activate: (
143
146
  app: JupyterFrontEnd,
144
147
  statusBar: IStatusBar,
145
- translator: ITranslator
148
+ translator: ITranslator,
149
+ settingRegistry: ISettingRegistry | null
146
150
  ) => {
147
- const item = new RunningSessions({
148
- onClick: () => app.shell.activateById('jp-running-sessions'),
149
- onKeyDown: (event: KeyboardEvent<HTMLImageElement>) => {
150
- if (
151
- event.key === 'Enter' ||
152
- event.key === 'Spacebar' ||
153
- event.key === ' '
154
- ) {
155
- event.preventDefault();
156
- event.stopPropagation();
157
- app.shell.activateById('jp-running-sessions');
158
- }
159
- },
160
- serviceManager: app.serviceManager,
161
- translator
162
- });
151
+ const createStatusItem = () => {
152
+ const item = new RunningSessions({
153
+ onClick: () => app.shell.activateById('jp-running-sessions'),
154
+ onKeyDown: (event: KeyboardEvent<HTMLImageElement>) => {
155
+ if (
156
+ event.key === 'Enter' ||
157
+ event.key === 'Spacebar' ||
158
+ event.key === ' '
159
+ ) {
160
+ event.preventDefault();
161
+ event.stopPropagation();
162
+ app.shell.activateById('jp-running-sessions');
163
+ }
164
+ },
165
+ serviceManager: app.serviceManager,
166
+ translator
167
+ });
168
+
169
+ item.model.sessions = Array.from(
170
+ app.serviceManager.sessions.running()
171
+ ).length;
172
+ item.model.terminals = Array.from(
173
+ app.serviceManager.terminals.running()
174
+ ).length;
175
+
176
+ return item;
177
+ };
163
178
 
164
- item.model.sessions = Array.from(
165
- app.serviceManager.sessions.running()
166
- ).length;
167
- item.model.terminals = Array.from(
168
- app.serviceManager.terminals.running()
169
- ).length;
179
+ const registerItem = () => {
180
+ const item = createStatusItem();
181
+ return statusBar.registerStatusItem(runningSessionsStatus.id, {
182
+ item,
183
+ align: 'left',
184
+ rank: 0
185
+ });
186
+ };
170
187
 
171
- statusBar.registerStatusItem(runningSessionsStatus.id, {
172
- item,
173
- align: 'left',
174
- rank: 0
175
- });
188
+ if (settingRegistry) {
189
+ let disposable: IDisposable;
190
+ const onSettingsUpdated = (
191
+ settings: ISettingRegistry.ISettings
192
+ ): void => {
193
+ const showStatusBarItem = settings.get('showStatusBarItem')
194
+ .composite as boolean;
195
+
196
+ disposable?.dispose();
197
+ if (showStatusBarItem) {
198
+ disposable = registerItem();
199
+ }
200
+ };
201
+
202
+ void settingRegistry.load(runningSessionsStatus.id).then(settings => {
203
+ onSettingsUpdated(settings);
204
+ settings.changed.connect(onSettingsUpdated);
205
+ });
206
+ } else {
207
+ registerItem();
208
+ }
176
209
  }
177
210
  };