@jupyterlab/statusbar 4.1.0-alpha.3 → 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.
- package/lib/components/progressCircle.js +1 -1
- package/lib/components/progressCircle.js.map +1 -1
- package/lib/statusbar.d.ts +1 -0
- package/lib/statusbar.js +12 -3
- package/lib/statusbar.js.map +1 -1
- package/lib/tokens.d.ts +4 -0
- package/package.json +4 -4
- package/src/components/progressCircle.tsx +1 -0
- package/src/statusbar.ts +17 -4
- package/src/tokens.ts +5 -0
- package/style/base.css +2 -3
|
@@ -19,6 +19,6 @@ export function ProgressCircle(props) {
|
|
|
19
19
|
return (React.createElement("div", { className: 'jp-Statusbar-ProgressCircle', role: "progressbar", "aria-label": props.label || 'Unlabelled progress circle', "aria-valuemin": 0, "aria-valuemax": 100, "aria-valuenow": props.progress },
|
|
20
20
|
React.createElement("svg", { viewBox: "0 0 250 250" },
|
|
21
21
|
React.createElement("circle", { cx: "125", cy: "125", r: `${radius}`, stroke: "var(--jp-inverse-layout-color3)", strokeWidth: "20", fill: "none" }),
|
|
22
|
-
React.createElement("path", { transform: "translate(125,125) scale(.9)", d: d(props.progress), fill: 'var(--jp-inverse-layout-color3)' }))));
|
|
22
|
+
React.createElement("path", { className: 'jp-Statusbar-ProgressCirclePath', transform: "translate(125,125) scale(.9)", d: d(props.progress), fill: 'var(--jp-inverse-layout-color3)' }))));
|
|
23
23
|
}
|
|
24
24
|
//# sourceMappingURL=progressCircle.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"progressCircle.js","sourceRoot":"","sources":["../../src/components/progressCircle.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAyB1B,MAAM,UAAU,cAAc,CAAC,KAA4B;IACzD,MAAM,MAAM,GAAG,GAAG,CAAC;IACnB,MAAM,CAAC,GAAG,CAAC,QAAgB,EAAU,EAAE;QACrC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC;QAC5C,MAAM,GAAG,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,EACjC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,EAC1B,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAC3B,GAAG,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACzB,KAAK,GACH,YAAY,MAAM,MAAM,MAAM,IAAI,MAAM,KAAK;YAC7C,GAAG;YACH,KAAK;YACL,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YACZ,GAAG;YACH,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YACZ,IAAI,CAAC;QACT,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IACF,OAAO,CACL,6BACE,SAAS,EAAE,6BAA6B,EACxC,IAAI,EAAC,aAAa,gBACN,KAAK,CAAC,KAAK,IAAI,4BAA4B,mBACxC,CAAC,mBACD,GAAG,mBACH,KAAK,CAAC,QAAQ;QAE7B,6BAAK,OAAO,EAAC,aAAa;YACxB,gCACE,EAAE,EAAC,KAAK,EACR,EAAE,EAAC,KAAK,EACR,CAAC,EAAE,GAAG,MAAM,EAAE,EACd,MAAM,EAAC,iCAAiC,EACxC,WAAW,EAAC,IAAI,EAChB,IAAI,EAAC,MAAM,GACX;YACF,8BACE,SAAS,EAAC,8BAA8B,EACxC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,EACpB,IAAI,EAAE,iCAAiC,GACvC,CACE,CACF,CACP,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"progressCircle.js","sourceRoot":"","sources":["../../src/components/progressCircle.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAyB1B,MAAM,UAAU,cAAc,CAAC,KAA4B;IACzD,MAAM,MAAM,GAAG,GAAG,CAAC;IACnB,MAAM,CAAC,GAAG,CAAC,QAAgB,EAAU,EAAE;QACrC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC;QAC5C,MAAM,GAAG,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,EACjC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,EAC1B,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAC3B,GAAG,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACzB,KAAK,GACH,YAAY,MAAM,MAAM,MAAM,IAAI,MAAM,KAAK;YAC7C,GAAG;YACH,KAAK;YACL,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YACZ,GAAG;YACH,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YACZ,IAAI,CAAC;QACT,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IACF,OAAO,CACL,6BACE,SAAS,EAAE,6BAA6B,EACxC,IAAI,EAAC,aAAa,gBACN,KAAK,CAAC,KAAK,IAAI,4BAA4B,mBACxC,CAAC,mBACD,GAAG,mBACH,KAAK,CAAC,QAAQ;QAE7B,6BAAK,OAAO,EAAC,aAAa;YACxB,gCACE,EAAE,EAAC,KAAK,EACR,EAAE,EAAC,KAAK,EACR,CAAC,EAAE,GAAG,MAAM,EAAE,EACd,MAAM,EAAC,iCAAiC,EACxC,WAAW,EAAC,IAAI,EAChB,IAAI,EAAC,MAAM,GACX;YACF,8BACE,SAAS,EAAE,iCAAiC,EAC5C,SAAS,EAAC,8BAA8B,EACxC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,EACpB,IAAI,EAAE,iCAAiC,GACvC,CACE,CACF,CACP,CAAC;AACJ,CAAC"}
|
package/lib/statusbar.d.ts
CHANGED
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
|
};
|
package/lib/statusbar.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"statusbar.js","sourceRoot":"","sources":["../src/statusbar.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,2DAA2D;AAE3D,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EACL,kBAAkB,EAClB,aAAa,EAEd,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAG7D;;GAEG;AACH,MAAM,OAAO,SAAU,SAAQ,MAAM;IACnC;QACE,KAAK,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"statusbar.js","sourceRoot":"","sources":["../src/statusbar.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,2DAA2D;AAE3D,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EACL,kBAAkB,EAClB,aAAa,EAEd,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAG7D;;GAEG;AACH,MAAM,OAAO,SAAU,SAAQ,MAAM;IACnC;QACE,KAAK,EAAE,CAAC;QAgGF,oBAAe,GAAG,GAAG,EAAE;YAC7B,qDAAqD;YACrD,uDAAuD;YACvD,0DAA0D;YAC1D,kDAAkD;YAClD,OAAO,MAAM,CAAC,UAAU,IAAI,GAAG,CAAC;QAClC,CAAC,CAAC;QAoCM,mBAAc,GAAwB,EAAE,CAAC;QACzC,oBAAe,GAAwB,EAAE,CAAC;QAC1C,iBAAY,GAAwC,EAAE,CAAC;QACvD,iBAAY,GAAG,IAAI,aAAa,EAAE,CAAC;QA5IzC,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;QAErC,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC,CAAC;QAErD,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC;QACjD,MAAM,WAAW,GAAG,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC;QACtD,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC;QAEnD,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;QACxC,WAAW,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;QAC5C,UAAU,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;QAE1C,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAChC,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAClC,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IACnC,CAAC;IAED;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAU,EAAE,UAA4B;QACzD,IAAI,EAAE,IAAI,IAAI,CAAC,YAAY,EAAE;YAC3B,MAAM,IAAI,KAAK,CAAC,eAAe,EAAE,sBAAsB,CAAC,CAAC;SAC1D;QAED,oEAAoE;QACpE,MAAM,cAAc,GAAG;YACrB,GAAG,OAAO,CAAC,kBAAkB;YAC7B,GAAG,UAAU;SACO,CAAC;QACvB,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC;QAEvD,uEAAuE;QACvE,8BAA8B;QAC9B,MAAM,oBAAoB,GAAG,GAAG,EAAE;YAChC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QACxB,CAAC,CAAC;QACF,IAAI,cAAc,CAAC,kBAAkB,EAAE;YACrC,cAAc,CAAC,kBAAkB,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;SACjE;QAED,MAAM,QAAQ,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QAExC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;QAClD,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC;QAEvC,IAAI,KAAK,KAAK,MAAM,EAAE;YACpB,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;YACzE,IAAI,WAAW,KAAK,CAAC,CAAC,EAAE;gBACtB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBAC/B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aACpC;iBAAM;gBACL,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;gBAC5D,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;aAChD;SACF;aAAM,IAAI,KAAK,KAAK,OAAO,EAAE;YAC5B,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;YAC1E,IAAI,WAAW,KAAK,CAAC,CAAC,EAAE;gBACtB,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBAChC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aACrC;iBAAM;gBACL,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;gBAC7D,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;aACjD;SACF;aAAM;YACL,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;SACnC;QACD,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,qCAAqC;QAE5D,MAAM,UAAU,GAAG,IAAI,kBAAkB,CAAC,GAAG,EAAE;YAC7C,OAAO,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;YAC7B,IAAI,cAAc,CAAC,kBAAkB,EAAE;gBACrC,cAAc,CAAC,kBAAkB,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;aACpE;YACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAClC,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,OAAO;QACL,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;QAC/B,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;QAChC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;QAC5B,KAAK,CAAC,OAAO,EAAE,CAAC;IAClB,CAAC;IAUD;;OAEG;IACO,eAAe,CAAC,GAAY;QACpC,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAEO,gBAAgB,CACtB,IAAyB,EACzB,OAA0B;QAE1B,OAAO,QAAQ,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzE,CAAC;IAEO,YAAY,CAAC,EAAU;QAC7B,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QACzC,IACE,UAAU,CAAC,QAAQ,EAAE;YACrB,CAAC,CAAC,UAAU,CAAC,QAAQ,KAAK,CAAC,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC,EACtD;YACA,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACvB,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;SAC1B;aAAM;YACL,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SACxB;IACH,CAAC;IAEO,WAAW;QACjB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;YAC1C,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC;CASF;AAED;;GAEG;AACH,IAAU,OAAO,CA6BhB;AA7BD,WAAU,OAAO;IAEf;;OAEG;IACU,0BAAkB,GAAmC;QAChE,KAAK,EAAE,MAAM;QACb,IAAI,EAAE,CAAC;QACP,QAAQ,EAAE,CAAC;QACX,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI;QACpB,kBAAkB,EAAE,SAAS;KAC9B,CAAC;AAkBJ,CAAC,EA7BS,OAAO,KAAP,OAAO,QA6BhB"}
|
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-
|
|
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,17 +37,17 @@
|
|
|
37
37
|
"watch": "tsc -b --watch"
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@jupyterlab/ui-components": "^4.1.0-
|
|
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",
|
|
44
44
|
"@lumino/messaging": "^2.0.1",
|
|
45
45
|
"@lumino/signaling": "^2.1.2",
|
|
46
|
-
"@lumino/widgets": "^2.3.1
|
|
46
|
+
"@lumino/widgets": "^2.3.1",
|
|
47
47
|
"react": "^18.2.0"
|
|
48
48
|
},
|
|
49
49
|
"devDependencies": {
|
|
50
|
-
"@jupyterlab/testing": "^4.1.0-
|
|
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",
|
|
@@ -65,6 +65,7 @@ export function ProgressCircle(props: ProgressCircle.IProps): JSX.Element {
|
|
|
65
65
|
fill="none"
|
|
66
66
|
/>
|
|
67
67
|
<path
|
|
68
|
+
className={'jp-Statusbar-ProgressCirclePath'}
|
|
68
69
|
transform="translate(125,125) scale(.9)"
|
|
69
70
|
d={d(props.progress)}
|
|
70
71
|
fill={'var(--jp-inverse-layout-color3)'}
|
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 (
|
|
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
|
*/
|
package/style/base.css
CHANGED
|
@@ -76,15 +76,14 @@
|
|
|
76
76
|
flex-direction: row;
|
|
77
77
|
}
|
|
78
78
|
|
|
79
|
-
.jp-Statusbar-ProgressCircle svg {
|
|
79
|
+
.jp-Statusbar-ProgressCircle > svg {
|
|
80
80
|
display: block;
|
|
81
81
|
margin: 0 auto;
|
|
82
82
|
width: 16px;
|
|
83
|
-
height: 24px;
|
|
84
83
|
align-self: normal;
|
|
85
84
|
}
|
|
86
85
|
|
|
87
|
-
.jp-Statusbar-ProgressCircle
|
|
86
|
+
.jp-Statusbar-ProgressCircle .jp-Statusbar-ProgressCirclePath {
|
|
88
87
|
fill: var(--jp-inverse-layout-color3);
|
|
89
88
|
}
|
|
90
89
|
|