@jupyterlab/apputils-extension 4.0.0-alpha.9 → 4.0.0-beta.0

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.
@@ -0,0 +1,504 @@
1
+ /*
2
+ * Copyright (c) Jupyter Development Team.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ import { Notification, ReactWidget } from '@jupyterlab/apputils';
6
+ import { ISettingRegistry } from '@jupyterlab/settingregistry';
7
+ import { GroupItem, IStatusBar, showPopup, TextItem } from '@jupyterlab/statusbar';
8
+ import { ITranslator, nullTranslator } from '@jupyterlab/translation';
9
+ import { bellIcon, Button, closeIcon, deleteIcon, ToolbarButtonComponent, UseSignal, VDomModel } from '@jupyterlab/ui-components';
10
+ import { PromiseDelegate } from '@lumino/coreutils';
11
+ import * as React from 'react';
12
+ import { createRoot } from 'react-dom/client';
13
+ /**
14
+ * Toast close button class
15
+ */
16
+ const TOAST_CLOSE_BUTTON_CLASS = 'jp-Notification-Toast-Close';
17
+ /**
18
+ * Maximal number of characters displayed in a notification.
19
+ */
20
+ const MAX_MESSAGE_LENGTH = 140;
21
+ var CommandIDs;
22
+ (function (CommandIDs) {
23
+ /**
24
+ * Dismiss a notification
25
+ */
26
+ CommandIDs.dismiss = 'apputils:dismiss-notification';
27
+ /**
28
+ * Display all notifications
29
+ */
30
+ CommandIDs.display = 'apputils:display-notifications';
31
+ /**
32
+ * Create a notification
33
+ */
34
+ CommandIDs.notify = 'apputils:notify';
35
+ /**
36
+ * Update a notification
37
+ */
38
+ CommandIDs.update = 'apputils:update-notification';
39
+ })(CommandIDs || (CommandIDs = {}));
40
+ /**
41
+ * Half spacing between subitems in a status item.
42
+ */
43
+ const HALF_SPACING = 4;
44
+ /**
45
+ * Notification center view
46
+ */
47
+ function NotificationCenter(props) {
48
+ const { manager, onClose, trans } = props;
49
+ // Markdown parsed notifications
50
+ const [notifications, setNotifications] = React.useState([]);
51
+ // Load asynchronously react-toastify icons
52
+ const [icons, setIcons] = React.useState(null);
53
+ React.useEffect(() => {
54
+ async function onChanged() {
55
+ setNotifications(await Promise.all(manager.notifications.map(async (n) => {
56
+ return Object.freeze({
57
+ ...n
58
+ });
59
+ })));
60
+ }
61
+ if (notifications.length !== manager.count) {
62
+ void onChanged();
63
+ }
64
+ manager.changed.connect(onChanged);
65
+ return () => {
66
+ manager.changed.disconnect(onChanged);
67
+ };
68
+ }, [manager]);
69
+ React.useEffect(() => {
70
+ Private.getIcons()
71
+ .then(toastifyIcons => {
72
+ setIcons(toastifyIcons);
73
+ })
74
+ .catch(r => {
75
+ console.error(`Failed to get react-toastify icons:\n${r}`);
76
+ });
77
+ }, []);
78
+ return (React.createElement(UseSignal, { signal: manager.changed }, () => (React.createElement(React.Fragment, null,
79
+ React.createElement("h2", { className: "jp-Notification-Header jp-Toolbar" },
80
+ React.createElement("span", { className: "jp-Toolbar-item" }, manager.count > 0
81
+ ? trans._n('%1 notification', '%1 notifications', manager.count)
82
+ : trans.__('No notifications')),
83
+ React.createElement("span", { className: "jp-Toolbar-item jp-Toolbar-spacer" }),
84
+ React.createElement(ToolbarButtonComponent, { actualOnClick: true, onClick: () => {
85
+ manager.dismiss();
86
+ }, icon: deleteIcon, tooltip: trans.__('Dismiss all notifications'), enabled: manager.count > 0 }),
87
+ React.createElement(ToolbarButtonComponent, { actualOnClick: true, onClick: onClose, icon: closeIcon, tooltip: trans.__('Hide notifications') })),
88
+ React.createElement("ol", { className: "jp-Notification-List" }, notifications.map(notification => {
89
+ var _a;
90
+ const { id, message, type, options } = notification;
91
+ const toastType = type === 'in-progress' ? 'default' : type;
92
+ const closeNotification = () => {
93
+ manager.dismiss(id);
94
+ };
95
+ const icon = type === 'default'
96
+ ? null
97
+ : type === 'in-progress'
98
+ ? (_a = icons === null || icons === void 0 ? void 0 : icons.spinner) !== null && _a !== void 0 ? _a : null
99
+ : icons && icons[type];
100
+ return (React.createElement("li", { className: "jp-Notification-List-Item", key: notification.id, onClick: event => {
101
+ // Stop propagation to avoid closing the popup on click
102
+ event.stopPropagation();
103
+ } },
104
+ React.createElement("div", { className: `Toastify__toast Toastify__toast-theme--light Toastify__toast--${toastType} jp-Notification-Toast-${toastType}` },
105
+ React.createElement("div", { className: "Toastify__toast-body" },
106
+ icon && (React.createElement("div", { className: "Toastify__toast-icon" }, icon({ theme: 'light', type: toastType }))),
107
+ React.createElement("div", null, Private.createContent(message, closeNotification, options.actions))),
108
+ React.createElement("button", { className: `jp-Button jp-mod-minimal ${TOAST_CLOSE_BUTTON_CLASS}`, title: trans.__('Dismiss notification'), onClick: closeNotification },
109
+ React.createElement(deleteIcon.react, { className: "jp-icon-hover", tag: "span" })))));
110
+ }))))));
111
+ }
112
+ /**
113
+ * Status widget model
114
+ */
115
+ class NotificationStatusModel extends VDomModel {
116
+ constructor(manager) {
117
+ super();
118
+ this.manager = manager;
119
+ this._highlight = false;
120
+ this._listOpened = false;
121
+ this._doNotDisturbMode = false;
122
+ this._count = manager.count;
123
+ this.manager.changed.connect(this.onNotificationChanged, this);
124
+ }
125
+ /**
126
+ * Number of notifications.
127
+ */
128
+ get count() {
129
+ return this._count;
130
+ }
131
+ /**
132
+ * Whether to silence all notifications or not.
133
+ */
134
+ get doNotDisturbMode() {
135
+ return this._doNotDisturbMode;
136
+ }
137
+ set doNotDisturbMode(v) {
138
+ this._doNotDisturbMode = v;
139
+ }
140
+ /**
141
+ * Whether to highlight the status widget or not.
142
+ */
143
+ get highlight() {
144
+ return this._highlight;
145
+ }
146
+ /**
147
+ * Whether the popup is opened or not.
148
+ */
149
+ get listOpened() {
150
+ return this._listOpened;
151
+ }
152
+ set listOpened(v) {
153
+ this._listOpened = v;
154
+ if (this._listOpened || this._highlight) {
155
+ this._highlight = false;
156
+ }
157
+ this.stateChanged.emit();
158
+ }
159
+ onNotificationChanged(manager, change) {
160
+ // Set private attribute to trigger only once the signal emission
161
+ this._count = this.manager.count;
162
+ const { autoClose } = change.notification.options;
163
+ const noToast = this.doNotDisturbMode ||
164
+ (typeof autoClose === 'number' && autoClose <= 0);
165
+ // Highlight if
166
+ // the list is not opened (the style change if list is opened due to clickedItem style in statusbar.)
167
+ // the change type is not removed
168
+ // the notification will be hidden
169
+ if (!this._listOpened && change.type !== 'removed' && noToast) {
170
+ this._highlight = true;
171
+ }
172
+ this.stateChanged.emit();
173
+ }
174
+ }
175
+ /**
176
+ * Status view
177
+ */
178
+ function NotificationStatus(props) {
179
+ return (React.createElement(GroupItem, { spacing: HALF_SPACING, onClick: () => {
180
+ props.onClick();
181
+ }, title: props.count > 0
182
+ ? props.trans._n('%1 notification', '%1 notifications', props.count)
183
+ : props.trans.__('No notifications') },
184
+ React.createElement(TextItem, { className: "jp-Notification-Status-Text", source: `${props.count}` }),
185
+ React.createElement(bellIcon.react, { top: '2px', stylesheet: 'statusBar' })));
186
+ }
187
+ /**
188
+ * Add notification center and toast
189
+ */
190
+ export const notificationPlugin = {
191
+ id: '@jupyterlab/apputils-extension:notification',
192
+ autoStart: true,
193
+ requires: [IStatusBar],
194
+ optional: [ISettingRegistry, ITranslator],
195
+ activate: (app, statusBar, settingRegistry, translator) => {
196
+ Private.translator = translator !== null && translator !== void 0 ? translator : nullTranslator;
197
+ const trans = Private.translator.load('jupyterlab');
198
+ const model = new NotificationStatusModel(Notification.manager);
199
+ model.doNotDisturbMode = false;
200
+ if (settingRegistry) {
201
+ void Promise.all([
202
+ settingRegistry.load(notificationPlugin.id),
203
+ app.restored
204
+ ]).then(([plugin]) => {
205
+ const updateSettings = () => {
206
+ model.doNotDisturbMode = plugin.get('doNotDisturbMode')
207
+ .composite;
208
+ };
209
+ updateSettings();
210
+ plugin.changed.connect(updateSettings);
211
+ });
212
+ }
213
+ app.commands.addCommand(CommandIDs.notify, {
214
+ label: trans.__('Emit a notification'),
215
+ caption: trans.__('Notification is described by {message: string, type?: string, options?: {autoClose?: number | false, actions: {label: string, commandId: string, args?: ReadOnlyJSONObject, caption?: string, className?: string}[], data?: ReadOnlyJSONValue}}.'),
216
+ execute: args => {
217
+ var _a;
218
+ const { message, type } = args;
219
+ const options = (_a = args.options) !== null && _a !== void 0 ? _a : {};
220
+ return Notification.manager.notify(message, type !== null && type !== void 0 ? type : 'default', {
221
+ ...options,
222
+ actions: options.actions
223
+ ? options.actions.map((action) => {
224
+ return {
225
+ ...action,
226
+ callback: () => {
227
+ app.commands
228
+ .execute(action.commandId, action.args)
229
+ .catch(r => {
230
+ console.error(`Failed to executed '${action.commandId}':\n${r}`);
231
+ });
232
+ }
233
+ };
234
+ })
235
+ : null
236
+ });
237
+ }
238
+ });
239
+ app.commands.addCommand(CommandIDs.update, {
240
+ label: trans.__('Update a notification'),
241
+ caption: trans.__('Notification is described by {id: string, message: string, type?: string, options?: {autoClose?: number | false, actions: {label: string, commandId: string, args?: ReadOnlyJSONObject, caption?: string, className?: string}[], data?: ReadOnlyJSONValue}}.'),
242
+ execute: args => {
243
+ const { id, message, type, ...options } = args;
244
+ return Notification.manager.update({
245
+ id,
246
+ message,
247
+ type: type !== null && type !== void 0 ? type : 'default',
248
+ ...options,
249
+ actions: options.actions
250
+ ? options.actions.map((action) => {
251
+ return {
252
+ ...action,
253
+ callback: () => {
254
+ app.commands
255
+ .execute(action.commandId, action.args)
256
+ .catch(r => {
257
+ console.error(`Failed to executed '${action.commandId}':\n${r}`);
258
+ });
259
+ }
260
+ };
261
+ })
262
+ : null
263
+ });
264
+ }
265
+ });
266
+ app.commands.addCommand(CommandIDs.dismiss, {
267
+ label: trans.__('Dismiss a notification'),
268
+ execute: args => {
269
+ const { id } = args;
270
+ Notification.manager.dismiss(id);
271
+ }
272
+ });
273
+ let popup = null;
274
+ model.listOpened = false;
275
+ const notificationList = ReactWidget.create(React.createElement(NotificationCenter, { manager: Notification.manager, onClose: () => {
276
+ popup === null || popup === void 0 ? void 0 : popup.dispose();
277
+ }, trans: trans }));
278
+ notificationList.addClass('jp-Notification-Center');
279
+ async function onNotification(manager, change) {
280
+ var _a;
281
+ if (model.doNotDisturbMode || (popup !== null && !popup.isDisposed)) {
282
+ return;
283
+ }
284
+ const { message, type, options, id } = change.notification;
285
+ if (typeof options.autoClose === 'number' && options.autoClose <= 0) {
286
+ // If the notification is silent, bail early.
287
+ return;
288
+ }
289
+ switch (change.type) {
290
+ case 'added':
291
+ await Private.createToast(id, message, type, options);
292
+ break;
293
+ case 'updated':
294
+ {
295
+ const toast = await Private.toast();
296
+ const actions = options.actions;
297
+ const autoClose = (_a = options.autoClose) !== null && _a !== void 0 ? _a : (actions && actions.length > 0 ? false : null);
298
+ if (toast.isActive(id)) {
299
+ // Update existing toast
300
+ const closeToast = () => {
301
+ // Dismiss the displayed toast
302
+ toast.dismiss(id);
303
+ // Dismiss the notification from the queue
304
+ manager.dismiss(id);
305
+ };
306
+ toast.update(id, {
307
+ type: type === 'in-progress' ? null : type,
308
+ isLoading: type === 'in-progress',
309
+ autoClose: autoClose,
310
+ render: Private.createContent(message, closeToast, options.actions)
311
+ });
312
+ }
313
+ else {
314
+ // Needs to recreate a closed toast
315
+ await Private.createToast(id, message, type, options);
316
+ }
317
+ }
318
+ break;
319
+ case 'removed':
320
+ await Private.toast().then(t => {
321
+ t.dismiss(id);
322
+ });
323
+ break;
324
+ }
325
+ }
326
+ Notification.manager.changed.connect(onNotification);
327
+ const displayNotifications = () => {
328
+ if (popup) {
329
+ popup.dispose();
330
+ popup = null;
331
+ }
332
+ else {
333
+ popup = showPopup({
334
+ body: notificationList,
335
+ anchor: notificationStatus,
336
+ align: 'right',
337
+ hasDynamicSize: true,
338
+ startHidden: true
339
+ });
340
+ // Dismiss all toasts when opening the notification center
341
+ Private.toast()
342
+ .then(t => {
343
+ t.dismiss();
344
+ })
345
+ .catch(r => {
346
+ console.error(`Failed to dismiss all toasts:\n${r}`);
347
+ })
348
+ .finally(() => {
349
+ popup === null || popup === void 0 ? void 0 : popup.launch();
350
+ // Focus on the pop-up
351
+ notificationList.node.focus();
352
+ popup === null || popup === void 0 ? void 0 : popup.disposed.connect(() => {
353
+ model.listOpened = false;
354
+ popup = null;
355
+ });
356
+ });
357
+ }
358
+ model.listOpened = popup !== null;
359
+ };
360
+ app.commands.addCommand(CommandIDs.display, {
361
+ label: trans.__('Show Notifications'),
362
+ execute: displayNotifications
363
+ });
364
+ const notificationStatus = ReactWidget.create(React.createElement(UseSignal, { signal: model.stateChanged }, () => {
365
+ if (model.highlight || (popup && !popup.isDisposed)) {
366
+ notificationStatus.addClass('jp-mod-selected');
367
+ }
368
+ else {
369
+ notificationStatus.removeClass('jp-mod-selected');
370
+ }
371
+ return (React.createElement(NotificationStatus, { count: model.count, highlight: model.highlight, trans: trans, onClick: displayNotifications }));
372
+ }));
373
+ notificationStatus.addClass('jp-Notification-Status');
374
+ statusBar.registerStatusItem(notificationPlugin.id, {
375
+ item: notificationStatus,
376
+ align: 'right',
377
+ rank: -1
378
+ });
379
+ }
380
+ };
381
+ var Private;
382
+ (function (Private) {
383
+ /**
384
+ * Translator object for private namespace
385
+ */
386
+ Private.translator = nullTranslator;
387
+ /**
388
+ * Pointer to asynchronously loaded react-toastify
389
+ */
390
+ let toastify = null;
391
+ function CloseButton(props) {
392
+ const trans = Private.translator.load('jupyterlab');
393
+ return (React.createElement("button", { className: `jp-Button jp-mod-minimal ${TOAST_CLOSE_BUTTON_CLASS}`, title: trans.__('Hide notification'), onClick: props.closeToast },
394
+ React.createElement(closeIcon.react, { className: "jp-icon-hover", tag: "span" })));
395
+ }
396
+ let waitForToastify = null;
397
+ /**
398
+ * Asynchronously load the toast container
399
+ *
400
+ * @returns The toast object
401
+ */
402
+ async function toast() {
403
+ if (waitForToastify === null) {
404
+ waitForToastify = new PromiseDelegate();
405
+ }
406
+ else {
407
+ await waitForToastify.promise;
408
+ }
409
+ if (toastify === null) {
410
+ toastify = await import('react-toastify');
411
+ const container = document.body.appendChild(document.createElement('div'));
412
+ container.id = 'react-toastify-container';
413
+ const root = createRoot(container);
414
+ root.render(React.createElement(toastify.ToastContainer, { draggable: false, closeOnClick: false, hideProgressBar: true, newestOnTop: true, pauseOnFocusLoss: true, pauseOnHover: true, position: "bottom-right", className: "jp-toastContainer", transition: toastify.Slide, closeButton: CloseButton }));
415
+ waitForToastify.resolve();
416
+ }
417
+ return toastify.toast;
418
+ }
419
+ Private.toast = toast;
420
+ /**
421
+ * react-toastify icons loader
422
+ */
423
+ async function getIcons() {
424
+ if (toastify === null) {
425
+ await toast();
426
+ }
427
+ return toastify.Icons;
428
+ }
429
+ Private.getIcons = getIcons;
430
+ const displayType2Class = {
431
+ accent: 'jp-mod-accept',
432
+ link: 'jp-mod-link',
433
+ warn: 'jp-mod-warn',
434
+ default: ''
435
+ };
436
+ /**
437
+ * Create a button with customized callback in a toast
438
+ */
439
+ function ToastButton({ action, closeToast }) {
440
+ var _a, _b;
441
+ const clickHandler = (event) => {
442
+ action.callback(event);
443
+ if (!event.defaultPrevented) {
444
+ closeToast();
445
+ }
446
+ };
447
+ const classes = [
448
+ 'jp-toast-button',
449
+ displayType2Class[(_a = action.displayType) !== null && _a !== void 0 ? _a : 'default']
450
+ ].join(' ');
451
+ return (React.createElement(Button, { title: (_b = action.caption) !== null && _b !== void 0 ? _b : action.label, className: classes, onClick: clickHandler, small: true }, action.label));
452
+ }
453
+ /**
454
+ * Helper function to construct the notification content
455
+ *
456
+ * @param message Message to print in the notification
457
+ * @param closeHandler Function closing the notification
458
+ * @param actions Toast actions
459
+ */
460
+ function createContent(message, closeHandler, actions) {
461
+ var _a;
462
+ const shortenMessage = message.length > MAX_MESSAGE_LENGTH
463
+ ? message.slice(0, MAX_MESSAGE_LENGTH) + '…'
464
+ : message;
465
+ return (React.createElement(React.Fragment, null,
466
+ React.createElement("div", null, shortenMessage.split('\n').map((part, index) => (React.createElement(React.Fragment, { key: `part-${index}` },
467
+ index > 0 ? React.createElement("br", null) : null,
468
+ part)))),
469
+ ((_a = actions === null || actions === void 0 ? void 0 : actions.length) !== null && _a !== void 0 ? _a : 0) > 0 && (React.createElement("div", { className: "jp-toast-buttonBar" },
470
+ React.createElement("div", { className: "jp-toast-spacer" }),
471
+ actions.map((action, idx) => {
472
+ return (React.createElement(ToastButton, { key: 'button-' + idx, action: action, closeToast: closeHandler }));
473
+ })))));
474
+ }
475
+ Private.createContent = createContent;
476
+ /**
477
+ * Create a toast notification
478
+ *
479
+ * @param toastId Toast unique id
480
+ * @param message Toast message
481
+ * @param type Toast type
482
+ * @param options Toast options
483
+ * @returns Toast id
484
+ */
485
+ async function createToast(toastId, message, type, options = {}) {
486
+ const { actions, autoClose, data } = options;
487
+ const t = await toast();
488
+ const toastOptions = {
489
+ autoClose: autoClose !== null && autoClose !== void 0 ? autoClose : (actions && actions.length > 0 ? false : undefined),
490
+ data: data,
491
+ className: `jp-Notification-Toast-${type}`,
492
+ toastId,
493
+ type: type === 'in-progress' ? null : type,
494
+ isLoading: type === 'in-progress'
495
+ };
496
+ return t(({ closeToast }) => createContent(message, () => {
497
+ if (closeToast)
498
+ closeToast();
499
+ Notification.manager.dismiss(toastId);
500
+ }, actions), toastOptions);
501
+ }
502
+ Private.createToast = createToast;
503
+ })(Private || (Private = {}));
504
+ //# sourceMappingURL=notificationplugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notificationplugin.js","sourceRoot":"","sources":["../src/notificationplugin.tsx"],"names":[],"mappings":"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"}
package/lib/palette.js CHANGED
@@ -76,7 +76,7 @@ export class Palette {
76
76
  let modal = false;
77
77
  palette.node.setAttribute('role', 'region');
78
78
  palette.node.setAttribute('aria-label', trans.__('Command Palette Section'));
79
- shell.add(palette, 'left', { rank: 300 });
79
+ shell.add(palette, 'left', { rank: 300, type: 'Command Palette' });
80
80
  if (settingRegistry) {
81
81
  const loadSettings = settingRegistry.load(PALETTE_PLUGIN_ID);
82
82
  const updateSettings = (settings) => {
@@ -84,7 +84,7 @@ export class Palette {
84
84
  if (modal && !newModal) {
85
85
  palette.parent = null;
86
86
  modalPalette.detach();
87
- shell.add(palette, 'left', { rank: 300 });
87
+ shell.add(palette, 'left', { rank: 300, type: 'Command Palette' });
88
88
  }
89
89
  else if (!modal && newModal) {
90
90
  palette.parent = null;
@@ -109,7 +109,7 @@ export class Palette {
109
109
  const updatePaletteTitle = () => {
110
110
  const binding = find(app.commands.keyBindings, b => b.command === CommandIDs.activate);
111
111
  if (binding) {
112
- const ks = CommandRegistry.formatKeystroke(binding.keys.join(' '));
112
+ const ks = binding.keys.map(CommandRegistry.formatKeystroke).join(', ');
113
113
  palette.title.caption = trans.__('Commands (%1)', ks);
114
114
  }
115
115
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"palette.js","sourceRoot":"","sources":["../src/palette.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"palette.js","sourceRoot":"","sources":["../src/palette.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,7 @@
1
+ /*
2
+ * Copyright (c) Jupyter Development Team.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
1
5
  import { PageConfig } from '@jupyterlab/coreutils';
2
6
  import { DataConnector } from '@jupyterlab/statedb';
3
7
  import { Throttler } from '@lumino/polling';
@@ -1 +1 @@
1
- {"version":3,"file":"settingconnector.js","sourceRoot":"","sources":["../src/settingconnector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,EAAE,aAAa,EAAkB,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C;;;;;GAKG;AACH,MAAM,OAAO,gBAAiB,SAAQ,aAGrC;IACC,YAAY,SAA2D;QACrE,KAAK,EAAE,CAAC;QAwCF,gBAAW,GAAiC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAvCtE,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAC9B,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,EAAU;QACd,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC;QACpC,IAAI,CAAC,CAAC,EAAE,IAAI,UAAU,CAAC,EAAE;YACvB,UAAU,CAAC,EAAE,CAAC,GAAG,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;SACtE;QACD,OAAO,UAAU,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,IAAI,CACR,QAA0B,KAAK;QAE/B,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC,SAAS,CAAC;QACxD,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QAErD,IAAI,KAAK,KAAK,KAAK,EAAE;YACnB,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;SACxB;QAED,OAAO;YACL,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YACzD,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;SACtE,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAU,EAAE,GAAW;QAChC,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IACtC,CAAC;CAIF"}
1
+ {"version":3,"file":"settingconnector.js","sourceRoot":"","sources":["../src/settingconnector.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,EAAE,aAAa,EAAkB,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C;;;;;GAKG;AACH,MAAM,OAAO,gBAAiB,SAAQ,aAGrC;IACC,YAAY,SAA2D;QACrE,KAAK,EAAE,CAAC;QAwCF,gBAAW,GAAiC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAvCtE,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAC9B,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,EAAU;QACd,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC;QACpC,IAAI,CAAC,CAAC,EAAE,IAAI,UAAU,CAAC,EAAE;YACvB,UAAU,CAAC,EAAE,CAAC,GAAG,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;SACtE;QACD,OAAO,UAAU,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,IAAI,CACR,QAA0B,KAAK;QAE/B,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC,SAAS,CAAC;QACxD,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QAErD,IAAI,KAAK,KAAK,KAAK,EAAE;YACnB,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;SACxB;QAED,OAAO;YACL,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YACzD,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;SACtE,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAU,EAAE,GAAW;QAChC,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IACtC,CAAC;CAIF"}
@@ -3,27 +3,28 @@
3
3
  | Distributed under the terms of the Modified BSD License.
4
4
  |----------------------------------------------------------------------------*/
5
5
  import { ILabShell } from '@jupyterlab/application';
6
- import { IKernelStatusModel, ISessionContextDialogs, KernelStatus, RunningSessions, sessionContextDialogs } from '@jupyterlab/apputils';
6
+ import { IKernelStatusModel, ISessionContextDialogs, KernelStatus, RunningSessions, SessionContextDialogs } from '@jupyterlab/apputils';
7
7
  import { IStatusBar } from '@jupyterlab/statusbar';
8
- import { ITranslator } from '@jupyterlab/translation';
9
- import { toArray } from '@lumino/algorithm';
8
+ import { ITranslator, nullTranslator } from '@jupyterlab/translation';
10
9
  /**
11
10
  * A plugin that provides a kernel status item to the status bar.
12
11
  */
13
12
  export const kernelStatus = {
14
13
  id: '@jupyterlab/apputils-extension:kernel-status',
15
14
  autoStart: true,
16
- requires: [IStatusBar, ITranslator],
15
+ requires: [IStatusBar],
17
16
  provides: IKernelStatusModel,
18
- optional: [ISessionContextDialogs, ILabShell],
19
- activate: (app, statusBar, translator, sessionDialogs, labShell) => {
17
+ optional: [ISessionContextDialogs, ITranslator, ILabShell],
18
+ activate: (app, statusBar, sessionDialogs_, translator_, labShell) => {
19
+ const translator = translator_ !== null && translator_ !== void 0 ? translator_ : nullTranslator;
20
+ const sessionDialogs = sessionDialogs_ !== null && sessionDialogs_ !== void 0 ? sessionDialogs_ : new SessionContextDialogs({ translator });
20
21
  // When the status item is clicked, launch the kernel
21
22
  // selection dialog for the current session.
22
23
  const changeKernel = async () => {
23
24
  if (!item.model.sessionContext) {
24
25
  return;
25
26
  }
26
- await (sessionDialogs !== null && sessionDialogs !== void 0 ? sessionDialogs : sessionContextDialogs).selectKernel(item.model.sessionContext, translator);
27
+ await sessionDialogs.selectKernel(item.model.sessionContext);
27
28
  };
28
29
  // Create the status item.
29
30
  const item = new KernelStatus({ onClick: changeKernel }, translator);
@@ -85,8 +86,8 @@ export const runningSessionsStatus = {
85
86
  serviceManager: app.serviceManager,
86
87
  translator
87
88
  });
88
- item.model.sessions = toArray(app.serviceManager.sessions.running()).length;
89
- item.model.terminals = toArray(app.serviceManager.terminals.running()).length;
89
+ item.model.sessions = Array.from(app.serviceManager.sessions.running()).length;
90
+ item.model.terminals = Array.from(app.serviceManager.terminals.running()).length;
90
91
  statusBar.registerStatusItem(runningSessionsStatus.id, {
91
92
  item,
92
93
  align: 'left',