@jupyterlab/statusbar 4.1.0-alpha.4 → 4.1.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.
@@ -19,6 +19,7 @@ export declare class StatusBar extends Widget implements IStatusBar {
19
19
  * Dispose of the status bar.
20
20
  */
21
21
  dispose(): void;
22
+ private _isWindowNarrow;
22
23
  /**
23
24
  * Handle an 'update-request' message to the status bar.
24
25
  */
package/lib/statusbar.js CHANGED
@@ -9,6 +9,13 @@ import { Panel, PanelLayout, Widget } from '@lumino/widgets';
9
9
  export class StatusBar extends Widget {
10
10
  constructor() {
11
11
  super();
12
+ this._isWindowNarrow = () => {
13
+ // The value for 630px was chosen by trial and error.
14
+ // When the screen width drops below 630px, there is no
15
+ // longer enough space for all the items in the status bar
16
+ // (with notebook open), and items become clipped.
17
+ return window.innerWidth <= 630;
18
+ };
12
19
  this._leftRankItems = [];
13
20
  this._rightRankItems = [];
14
21
  this._statusItems = {};
@@ -41,7 +48,7 @@ export class StatusBar extends Widget {
41
48
  ...Private.statusItemDefaults,
42
49
  ...statusItem
43
50
  };
44
- const { align, item, rank } = fullStatusItem;
51
+ const { align, item, rank, priority } = fullStatusItem;
45
52
  // Connect the activeStateChanged signal to refreshing the status item,
46
53
  // if the signal was provided.
47
54
  const onActiveStateChanged = () => {
@@ -50,7 +57,7 @@ export class StatusBar extends Widget {
50
57
  if (fullStatusItem.activeStateChanged) {
51
58
  fullStatusItem.activeStateChanged.connect(onActiveStateChanged);
52
59
  }
53
- const rankItem = { id, rank };
60
+ const rankItem = { id, rank, priority };
54
61
  fullStatusItem.item.addClass('jp-StatusBar-Item');
55
62
  this._statusItems[id] = fullStatusItem;
56
63
  if (align === 'left') {
@@ -111,7 +118,8 @@ export class StatusBar extends Widget {
111
118
  }
112
119
  _refreshItem(id) {
113
120
  const statusItem = this._statusItems[id];
114
- if (statusItem.isActive()) {
121
+ if (statusItem.isActive() &&
122
+ !(statusItem.priority === 0 && this._isWindowNarrow())) {
115
123
  statusItem.item.show();
116
124
  statusItem.item.update();
117
125
  }
@@ -136,6 +144,7 @@ var Private;
136
144
  Private.statusItemDefaults = {
137
145
  align: 'left',
138
146
  rank: 0,
147
+ priority: 0,
139
148
  isActive: () => true,
140
149
  activeStateChanged: undefined
141
150
  };
@@ -1 +1 @@
1
- {"version":3,"file":"statusbar.js","sourceRoot":"","sources":["../src/statusbar.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"statusbar.js","sourceRoot":"","sources":["../src/statusbar.ts"],"names":[],"mappings":"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"}
package/lib/tokens.d.ts CHANGED
@@ -41,6 +41,10 @@ export declare namespace IStatusBar {
41
41
  * Ordering of Items -- higher rank items are closer to the middle.
42
42
  */
43
43
  rank?: number;
44
+ /**
45
+ * Displaying Items based on zoom priority -- higher zoom priority gets prioritised when zoom levels increase
46
+ */
47
+ priority?: number;
44
48
  /**
45
49
  * Whether the item is shown or hidden.
46
50
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jupyterlab/statusbar",
3
- "version": "4.1.0-alpha.4",
3
+ "version": "4.1.0-beta.0",
4
4
  "description": "JupyterLab statusbar package.",
5
5
  "homepage": "https://github.com/jupyterlab/jupyterlab",
6
6
  "bugs": {
@@ -37,7 +37,7 @@
37
37
  "watch": "tsc -b --watch"
38
38
  },
39
39
  "dependencies": {
40
- "@jupyterlab/ui-components": "^4.1.0-alpha.4",
40
+ "@jupyterlab/ui-components": "^4.1.0-beta.0",
41
41
  "@lumino/algorithm": "^2.0.1",
42
42
  "@lumino/coreutils": "^2.1.2",
43
43
  "@lumino/disposable": "^2.1.2",
@@ -47,7 +47,7 @@
47
47
  "react": "^18.2.0"
48
48
  },
49
49
  "devDependencies": {
50
- "@jupyterlab/testing": "^4.1.0-alpha.4",
50
+ "@jupyterlab/testing": "^4.1.0-beta.0",
51
51
  "@types/jest": "^29.2.0",
52
52
  "jest": "^29.2.0",
53
53
  "rimraf": "~5.0.5",
package/src/statusbar.ts CHANGED
@@ -51,7 +51,7 @@ export class StatusBar extends Widget implements IStatusBar {
51
51
  ...Private.statusItemDefaults,
52
52
  ...statusItem
53
53
  } as Private.IFullItem;
54
- const { align, item, rank } = fullStatusItem;
54
+ const { align, item, rank, priority } = fullStatusItem;
55
55
 
56
56
  // Connect the activeStateChanged signal to refreshing the status item,
57
57
  // if the signal was provided.
@@ -62,7 +62,7 @@ export class StatusBar extends Widget implements IStatusBar {
62
62
  fullStatusItem.activeStateChanged.connect(onActiveStateChanged);
63
63
  }
64
64
 
65
- const rankItem = { id, rank };
65
+ const rankItem = { id, rank, priority };
66
66
 
67
67
  fullStatusItem.item.addClass('jp-StatusBar-Item');
68
68
  this._statusItems[id] = fullStatusItem;
@@ -112,6 +112,14 @@ export class StatusBar extends Widget implements IStatusBar {
112
112
  super.dispose();
113
113
  }
114
114
 
115
+ private _isWindowNarrow = () => {
116
+ // The value for 630px was chosen by trial and error.
117
+ // When the screen width drops below 630px, there is no
118
+ // longer enough space for all the items in the status bar
119
+ // (with notebook open), and items become clipped.
120
+ return window.innerWidth <= 630;
121
+ };
122
+
115
123
  /**
116
124
  * Handle an 'update-request' message to the status bar.
117
125
  */
@@ -129,7 +137,10 @@ export class StatusBar extends Widget implements IStatusBar {
129
137
 
130
138
  private _refreshItem(id: string) {
131
139
  const statusItem = this._statusItems[id];
132
- if (statusItem.isActive()) {
140
+ if (
141
+ statusItem.isActive() &&
142
+ !(statusItem.priority === 0 && this._isWindowNarrow())
143
+ ) {
133
144
  statusItem.item.show();
134
145
  statusItem.item.update();
135
146
  } else {
@@ -163,6 +174,7 @@ namespace Private {
163
174
  export const statusItemDefaults: Omit<IStatusBar.IItem, 'item'> = {
164
175
  align: 'left',
165
176
  rank: 0,
177
+ priority: 0,
166
178
  isActive: () => true,
167
179
  activeStateChanged: undefined
168
180
  };
@@ -173,9 +185,10 @@ namespace Private {
173
185
  export interface IRankItem {
174
186
  id: string;
175
187
  rank: number;
188
+ priority?: number;
176
189
  }
177
190
 
178
- export type DefaultKeys = 'align' | 'rank' | 'isActive';
191
+ export type DefaultKeys = 'align' | 'rank' | 'isActive' | 'priority';
179
192
 
180
193
  /**
181
194
  * Type of statusbar item with defaults filled in.
package/src/tokens.ts CHANGED
@@ -55,6 +55,11 @@ export namespace IStatusBar {
55
55
  */
56
56
  rank?: number;
57
57
 
58
+ /**
59
+ * Displaying Items based on zoom priority -- higher zoom priority gets prioritised when zoom levels increase
60
+ */
61
+ priority?: number;
62
+
58
63
  /**
59
64
  * Whether the item is shown or hidden.
60
65
  */