@jupyterlab/application 4.1.2 → 4.2.0-alpha.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/lab.d.ts +6 -0
- package/lib/lab.js +68 -0
- package/lib/lab.js.map +1 -1
- package/package.json +11 -11
- package/src/lab.ts +81 -0
package/lib/lab.d.ts
CHANGED
|
@@ -60,6 +60,12 @@ export declare class JupyterLab extends JupyterFrontEnd<ILabShell> {
|
|
|
60
60
|
* @param mods - The plugin modules to register.
|
|
61
61
|
*/
|
|
62
62
|
registerPluginModules(mods: JupyterLab.IPluginModule[]): void;
|
|
63
|
+
/**
|
|
64
|
+
* Override keydown handling to prevent command shortcuts from preventing user input.
|
|
65
|
+
*
|
|
66
|
+
* This introduces a slight delay to the command invocation, but no delay to user input.
|
|
67
|
+
*/
|
|
68
|
+
protected evtKeydown(event: KeyboardEvent): void;
|
|
63
69
|
private _info;
|
|
64
70
|
private _paths;
|
|
65
71
|
private _allPluginsActivated;
|
package/lib/lab.js
CHANGED
|
@@ -166,6 +166,59 @@ export class JupyterLab extends JupyterFrontEnd {
|
|
|
166
166
|
this.registerPluginModule(mod);
|
|
167
167
|
});
|
|
168
168
|
}
|
|
169
|
+
/**
|
|
170
|
+
* Override keydown handling to prevent command shortcuts from preventing user input.
|
|
171
|
+
*
|
|
172
|
+
* This introduces a slight delay to the command invocation, but no delay to user input.
|
|
173
|
+
*/
|
|
174
|
+
evtKeydown(event) {
|
|
175
|
+
// Process select keys which may call `preventDefault()` immediately
|
|
176
|
+
if (['Tab', 'ArrowDown', 'ArrowUp', 'ArrowRight', 'ArrowLeft'].includes(event.key)) {
|
|
177
|
+
return this.commands.processKeydownEvent(event);
|
|
178
|
+
}
|
|
179
|
+
// Process remaining events conditionally, depending on whether they would lead to text insertion
|
|
180
|
+
const causesInputPromise = Promise.race([
|
|
181
|
+
new Promise(resolve => {
|
|
182
|
+
if (!event.target) {
|
|
183
|
+
return resolve(false);
|
|
184
|
+
}
|
|
185
|
+
event.target.addEventListener('beforeinput', (inputEvent) => {
|
|
186
|
+
switch (inputEvent.inputType) {
|
|
187
|
+
case 'historyUndo':
|
|
188
|
+
case 'historyRedo': {
|
|
189
|
+
if (inputEvent.target instanceof Element &&
|
|
190
|
+
inputEvent.target.closest('[data-jp-undoer]')) {
|
|
191
|
+
// Allow to use custom undo/redo bindings on `jpUndoer`s
|
|
192
|
+
inputEvent.preventDefault();
|
|
193
|
+
return resolve(false);
|
|
194
|
+
}
|
|
195
|
+
break;
|
|
196
|
+
}
|
|
197
|
+
case 'insertLineBreak': {
|
|
198
|
+
if (inputEvent.target instanceof Element &&
|
|
199
|
+
inputEvent.target.closest('.jp-Cell')) {
|
|
200
|
+
// Allow to override the default action of Shift + Enter on cells as this is used for cell execution
|
|
201
|
+
inputEvent.preventDefault();
|
|
202
|
+
return resolve(false);
|
|
203
|
+
}
|
|
204
|
+
break;
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
return resolve(true);
|
|
208
|
+
}, { once: true });
|
|
209
|
+
}),
|
|
210
|
+
new Promise(resolve => {
|
|
211
|
+
setTimeout(() => resolve(false), Private.INPUT_GUARD_TIMEOUT);
|
|
212
|
+
})
|
|
213
|
+
]);
|
|
214
|
+
causesInputPromise
|
|
215
|
+
.then(willCauseInput => {
|
|
216
|
+
if (!willCauseInput) {
|
|
217
|
+
this.commands.processKeydownEvent(event);
|
|
218
|
+
}
|
|
219
|
+
})
|
|
220
|
+
.catch(console.warn);
|
|
221
|
+
}
|
|
169
222
|
}
|
|
170
223
|
/**
|
|
171
224
|
* The namespace for `JupyterLab` class statics.
|
|
@@ -217,4 +270,19 @@ export class JupyterLab extends JupyterFrontEnd {
|
|
|
217
270
|
}
|
|
218
271
|
};
|
|
219
272
|
})(JupyterLab || (JupyterLab = {}));
|
|
273
|
+
/**
|
|
274
|
+
* A namespace for module-private functionality.
|
|
275
|
+
*/
|
|
276
|
+
var Private;
|
|
277
|
+
(function (Private) {
|
|
278
|
+
/**
|
|
279
|
+
* The delay for invoking a command introduced by user input guard.
|
|
280
|
+
* Decreasing this value may lead to commands incorrectly triggering
|
|
281
|
+
* on user input. Increasing this value will lead to longer delay for
|
|
282
|
+
* command invocation. Note that user input is never delayed.
|
|
283
|
+
*
|
|
284
|
+
* The value represents the number in milliseconds.
|
|
285
|
+
*/
|
|
286
|
+
Private.INPUT_GUARD_TIMEOUT = 10;
|
|
287
|
+
})(Private || (Private = {}));
|
|
220
288
|
//# sourceMappingURL=lab.js.map
|
package/lib/lab.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lab.js","sourceRoot":"","sources":["../src/lab.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,2DAA2D;AAE3D,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAyB,MAAM,YAAY,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAa,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC;;GAEG;AACH,MAAM,OAAO,UAAW,SAAQ,eAA0B;IACxD;;OAEG;IACH,YAAY,UAA+B,EAAE,KAAK,EAAE,IAAI,QAAQ,EAAE,EAAE;QAClE,KAAK,CAAC;YACJ,GAAG,OAAO;YACV,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,IAAI,QAAQ,EAAE;YACtC,cAAc,EACZ,OAAO,CAAC,cAAc;gBACtB,IAAI,cAAc,CAAC;oBACjB,OAAO,EAAE,GAAG,EAAE;wBACZ,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,aAAa,CAAC;oBAClD,CAAC;iBACF,CAAC;SACL,CAAC,CAAC;QAqFL;;WAEG;QACM,SAAI,GAAG,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,YAAY,CAAC;QAEhE;;WAEG;QACM,cAAS,GAAG,UAAU,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC;QAEvE;;WAEG;QACM,yBAAoB,GAAiB,EAAE,CAAC;QAQjD;;WAEG;QACM,WAAM,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;QAEtC;;WAEG;QACM,YAAO,GAAG,UAAU,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"lab.js","sourceRoot":"","sources":["../src/lab.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,2DAA2D;AAE3D,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAyB,MAAM,YAAY,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAa,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC;;GAEG;AACH,MAAM,OAAO,UAAW,SAAQ,eAA0B;IACxD;;OAEG;IACH,YAAY,UAA+B,EAAE,KAAK,EAAE,IAAI,QAAQ,EAAE,EAAE;QAClE,KAAK,CAAC;YACJ,GAAG,OAAO;YACV,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,IAAI,QAAQ,EAAE;YACtC,cAAc,EACZ,OAAO,CAAC,cAAc;gBACtB,IAAI,cAAc,CAAC;oBACjB,OAAO,EAAE,GAAG,EAAE;wBACZ,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,aAAa,CAAC;oBAClD,CAAC;iBACF,CAAC;SACL,CAAC,CAAC;QAqFL;;WAEG;QACM,SAAI,GAAG,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,YAAY,CAAC;QAEhE;;WAEG;QACM,cAAS,GAAG,UAAU,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC;QAEvE;;WAEG;QACM,yBAAoB,GAAiB,EAAE,CAAC;QAQjD;;WAEG;QACM,WAAM,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;QAEtC;;WAEG;QACM,YAAO,GAAG,UAAU,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,SAAS,CAAC;QA0H3D,UAAK,GAAqB,UAAU,CAAC,WAAW,CAAC;QAEjD,yBAAoB,GAAG,IAAI,eAAe,EAAQ,CAAC;QA5OzD,wEAAwE;QACxE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACnE,IAAI,GAAG,IAAI,OAAO,EAAE;gBACjB,GAAW,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAE,OAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;aACvE;YACD,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAA+B,CAAC,CAAC;QAEpC,6BAA6B;QAC7B,IAAI,CAAC,KAAK,GAAG,EAAE,GAAG,UAAU,CAAC,WAAW,EAAE,GAAG,IAAI,EAAE,CAAC;QAEpD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ;aAChC,IAAI,CAAC,KAAK,IAAI,EAAE;YACf,MAAM,SAAS,GAA6B,EAAE,CAAC;YAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;gBAC5D,OAAO,CAAC,KAAK,CAAC,2CAA2C,EAAE,KAAK,CAAC,CAAC;YACpE,CAAC,CAAC,CAAC;YACH,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzB,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;gBACvB,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CACpC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CACzC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAC9B,CACF,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;oBACd,OAAO,CAAC,KAAK,CACX,8DAA8D,EAC9D,KAAK,CACN,CAAC;gBACJ,CAAC,CAAC,CAAC;gBACH,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;aACpC;YACD,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;iBACnB,IAAI,CAAC,GAAG,EAAE;gBACT,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,CAAC;YACtC,CAAC,CAAC;iBACD,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC5B,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAE1B,iEAAiE;QACjE,MAAM,WAAW,GAAG,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC;QACjD,MAAM,WAAW,GAAG,UAAU,CAAC,YAAY,CAAC,WAAW,CAAC;QACxD,MAAM,UAAU,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAC/D,MAAM,UAAU,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QAEtE,IAAI,CAAC,MAAM,GAAG;YACZ,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;gBACjD,IAAI,GAAG,IAAI,UAAU,EAAE;oBACrB,MAAM,KAAK,GAAI,UAAkB,CAAC,GAAG,CAAC,CAAC;oBACtC,GAAW,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;iBAC3B;qBAAM;oBACJ,GAAW,CAAC,GAAG,CAAC,GAAI,WAAmB,CAAC,GAAG,CAAC,CAAC;iBAC/C;gBACD,OAAO,GAAG,CAAC;YACb,CAAC,EAAE,EAAE,CAAC;YACN,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,MAAM,CAClE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;gBACX,IAAI,GAAG,IAAI,UAAU,EAAE;oBACrB,MAAM,KAAK,GAAI,UAAkB,CAAC,GAAG,CAAC,CAAC;oBACtC,GAAW,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;iBAC3B;qBAAM;oBACJ,GAAW,CAAC,GAAG,CAAC,GAAI,WAAmB,CAAC,GAAG,CAAC,CAAC;iBAC/C;gBACD,OAAO,GAAG,CAAC;YACb,CAAC,EACD,EAAE,CACH;SACwB,CAAC;QAE5B,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;YACtB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;SACvC;QAED,6BAA6B;QAC7B,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,kBAAkB,EAAE,CAAC,CAAC;QAE3D,IAAI,OAAO,CAAC,cAAc,EAAE;YAC1B,KAAK,MAAM,MAAM,IAAI,uBAAuB,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE;gBACpE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;aAC7B;SACF;IACH,CAAC;IAiCD;;OAEG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,IAAI,mBAAmB;QACrB,OAAO,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC;IAC3C,CAAC;IACD;;;;OAIG;IACH,oBAAoB,CAAC,GAA6B;QAChD,IAAI,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC;QACvB,2BAA2B;QAC3B,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE;YACrC,IAAI,GAAG,GAAU,CAAC;SACnB;QACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACxB,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;SACf;QACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAClB,IAAI;gBACF,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;aAC3B;YAAC,OAAO,KAAK,EAAE;gBACd,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACvC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,qBAAqB,CAAC,IAAgC;QACpD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACjB,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACO,UAAU,CAAC,KAAoB;QACvC,oEAAoE;QACpE,IACE,CAAC,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC,QAAQ,CACjE,KAAK,CAAC,GAAG,CACV,EACD;YACA,OAAO,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;SACjD;QACD,iGAAiG;QACjG,MAAM,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;YACtC,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;gBACpB,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;oBACjB,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;iBACvB;gBACD,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAC3B,aAAa,EACb,CAAC,UAAsB,EAAE,EAAE;oBACzB,QAAQ,UAAU,CAAC,SAAS,EAAE;wBAC5B,KAAK,aAAa,CAAC;wBACnB,KAAK,aAAa,CAAC,CAAC;4BAClB,IACE,UAAU,CAAC,MAAM,YAAY,OAAO;gCACpC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAC7C;gCACA,wDAAwD;gCACxD,UAAU,CAAC,cAAc,EAAE,CAAC;gCAC5B,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;6BACvB;4BACD,MAAM;yBACP;wBACD,KAAK,iBAAiB,CAAC,CAAC;4BACtB,IACE,UAAU,CAAC,MAAM,YAAY,OAAO;gCACpC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EACrC;gCACA,oGAAoG;gCACpG,UAAU,CAAC,cAAc,EAAE,CAAC;gCAC5B,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;6BACvB;4BACD,MAAM;yBACP;qBACF;oBACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;gBACvB,CAAC,EACD,EAAE,IAAI,EAAE,IAAI,EAAE,CACf,CAAC;YACJ,CAAC,CAAC;YACF,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;gBACpB,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;YAChE,CAAC,CAAC;SACH,CAAC,CAAC;QACH,kBAAkB;aACf,IAAI,CAAC,cAAc,CAAC,EAAE;YACrB,IAAI,CAAC,cAAc,EAAE;gBACnB,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;aAC1C;QACH,CAAC,CAAC;aACD,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;CAKF;AAED;;GAEG;AACH,WAAiB,UAAU;IAUzB;;OAEG;IACU,gBAAK,GAAG,IAAI,KAAK,CAC5B,+BAA+B,EAC/B,4HAA4H,CAC7H,CAAC;IA8FF;;OAEG;IACU,sBAAW,GAAU;QAChC,OAAO,EAAE,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM;QACjE,QAAQ,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QACvC,QAAQ,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;QACvC,cAAc,EAAE,EAAE;QAClB,gBAAgB,EAAE,EAAE;QACpB,WAAW,EAAE,UAAU,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM;QACxE,WAAW,EAAE,IAAI;KAClB,CAAC;IAEF;;OAEG;IACU,uBAAY,GAA2B;QAClD,IAAI,EAAE;YACJ,IAAI,EAAE,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC;YACrC,QAAQ,EAAE,UAAU,CAAC,SAAS,CAAC,aAAa,CAAC;YAC7C,GAAG,EAAE,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC;YACnC,GAAG,EAAE,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC;YACnC,MAAM,EAAE,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC;YACzC,QAAQ,EAAE,UAAU,CAAC,SAAS,CAAC,aAAa,CAAC;YAC7C,MAAM,EAAE,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC;YACzC,YAAY,EAAE,UAAU,CAAC,SAAS,CAAC,oBAAoB,CAAC;YACxD,OAAO,EAAE,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,SAAS;YACrD,SAAS,EAAE,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,SAAS;YACzD,OAAO,EAAE,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,SAAS;YACrD,aAAa,EAAE,UAAU,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,SAAS;SAClE;QACD,WAAW,EAAE;YACX,WAAW,EAAE,UAAU,CAAC,SAAS,CAAC,gBAAgB,CAAC;YACnD,OAAO,EAAE,UAAU,CAAC,SAAS,CAAC,YAAY,CAAC;YAC3C,MAAM,EAAE,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC;YACzC,SAAS,EAAE,UAAU,CAAC,SAAS,CAAC,cAAc,CAAC;YAC/C,MAAM,EAAE,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC;YACzC,YAAY,EAAE,UAAU,CAAC,SAAS,CAAC,iBAAiB,CAAC;YACrD,UAAU,EAAE,UAAU,CAAC,SAAS,CAAC,YAAY,CAAC;YAC9C,UAAU,EAAE,UAAU,CAAC,SAAS,CAAC,eAAe,CAAC;SAClD;KACF,CAAC;AAcJ,CAAC,EArKgB,UAAU,KAAV,UAAU,QAqK1B;AAED;;GAEG;AACH,IAAU,OAAO,CAUhB;AAVD,WAAU,OAAO;IACf;;;;;;;OAOG;IACU,2BAAmB,GAAG,EAAE,CAAC;AACxC,CAAC,EAVS,OAAO,KAAP,OAAO,QAUhB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jupyterlab/application",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.2.0-alpha.0",
|
|
4
4
|
"description": "JupyterLab - Application",
|
|
5
5
|
"homepage": "https://github.com/jupyterlab/jupyterlab",
|
|
6
6
|
"bugs": {
|
|
@@ -43,15 +43,15 @@
|
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
45
|
"@fortawesome/fontawesome-free": "^5.12.0",
|
|
46
|
-
"@jupyterlab/apputils": "^4.
|
|
47
|
-
"@jupyterlab/coreutils": "^6.
|
|
48
|
-
"@jupyterlab/docregistry": "^4.
|
|
49
|
-
"@jupyterlab/rendermime": "^4.
|
|
50
|
-
"@jupyterlab/rendermime-interfaces": "^3.
|
|
51
|
-
"@jupyterlab/services": "^7.
|
|
52
|
-
"@jupyterlab/statedb": "^4.
|
|
53
|
-
"@jupyterlab/translation": "^4.
|
|
54
|
-
"@jupyterlab/ui-components": "^4.
|
|
46
|
+
"@jupyterlab/apputils": "^4.3.0-alpha.0",
|
|
47
|
+
"@jupyterlab/coreutils": "^6.2.0-alpha.0",
|
|
48
|
+
"@jupyterlab/docregistry": "^4.2.0-alpha.0",
|
|
49
|
+
"@jupyterlab/rendermime": "^4.2.0-alpha.0",
|
|
50
|
+
"@jupyterlab/rendermime-interfaces": "^3.10.0-alpha.0",
|
|
51
|
+
"@jupyterlab/services": "^7.2.0-alpha.0",
|
|
52
|
+
"@jupyterlab/statedb": "^4.2.0-alpha.0",
|
|
53
|
+
"@jupyterlab/translation": "^4.2.0-alpha.0",
|
|
54
|
+
"@jupyterlab/ui-components": "^4.2.0-alpha.0",
|
|
55
55
|
"@lumino/algorithm": "^2.0.1",
|
|
56
56
|
"@lumino/application": "^2.3.0",
|
|
57
57
|
"@lumino/commands": "^2.2.0",
|
|
@@ -64,7 +64,7 @@
|
|
|
64
64
|
"@lumino/widgets": "^2.3.1"
|
|
65
65
|
},
|
|
66
66
|
"devDependencies": {
|
|
67
|
-
"@jupyterlab/testing": "^4.
|
|
67
|
+
"@jupyterlab/testing": "^4.2.0-alpha.0",
|
|
68
68
|
"@types/jest": "^29.2.0",
|
|
69
69
|
"jest": "^29.2.0",
|
|
70
70
|
"rimraf": "~5.0.5",
|
package/src/lab.ts
CHANGED
|
@@ -199,6 +199,72 @@ export class JupyterLab extends JupyterFrontEnd<ILabShell> {
|
|
|
199
199
|
});
|
|
200
200
|
}
|
|
201
201
|
|
|
202
|
+
/**
|
|
203
|
+
* Override keydown handling to prevent command shortcuts from preventing user input.
|
|
204
|
+
*
|
|
205
|
+
* This introduces a slight delay to the command invocation, but no delay to user input.
|
|
206
|
+
*/
|
|
207
|
+
protected evtKeydown(event: KeyboardEvent): void {
|
|
208
|
+
// Process select keys which may call `preventDefault()` immediately
|
|
209
|
+
if (
|
|
210
|
+
['Tab', 'ArrowDown', 'ArrowUp', 'ArrowRight', 'ArrowLeft'].includes(
|
|
211
|
+
event.key
|
|
212
|
+
)
|
|
213
|
+
) {
|
|
214
|
+
return this.commands.processKeydownEvent(event);
|
|
215
|
+
}
|
|
216
|
+
// Process remaining events conditionally, depending on whether they would lead to text insertion
|
|
217
|
+
const causesInputPromise = Promise.race([
|
|
218
|
+
new Promise(resolve => {
|
|
219
|
+
if (!event.target) {
|
|
220
|
+
return resolve(false);
|
|
221
|
+
}
|
|
222
|
+
event.target.addEventListener(
|
|
223
|
+
'beforeinput',
|
|
224
|
+
(inputEvent: InputEvent) => {
|
|
225
|
+
switch (inputEvent.inputType) {
|
|
226
|
+
case 'historyUndo':
|
|
227
|
+
case 'historyRedo': {
|
|
228
|
+
if (
|
|
229
|
+
inputEvent.target instanceof Element &&
|
|
230
|
+
inputEvent.target.closest('[data-jp-undoer]')
|
|
231
|
+
) {
|
|
232
|
+
// Allow to use custom undo/redo bindings on `jpUndoer`s
|
|
233
|
+
inputEvent.preventDefault();
|
|
234
|
+
return resolve(false);
|
|
235
|
+
}
|
|
236
|
+
break;
|
|
237
|
+
}
|
|
238
|
+
case 'insertLineBreak': {
|
|
239
|
+
if (
|
|
240
|
+
inputEvent.target instanceof Element &&
|
|
241
|
+
inputEvent.target.closest('.jp-Cell')
|
|
242
|
+
) {
|
|
243
|
+
// Allow to override the default action of Shift + Enter on cells as this is used for cell execution
|
|
244
|
+
inputEvent.preventDefault();
|
|
245
|
+
return resolve(false);
|
|
246
|
+
}
|
|
247
|
+
break;
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
return resolve(true);
|
|
251
|
+
},
|
|
252
|
+
{ once: true }
|
|
253
|
+
);
|
|
254
|
+
}),
|
|
255
|
+
new Promise(resolve => {
|
|
256
|
+
setTimeout(() => resolve(false), Private.INPUT_GUARD_TIMEOUT);
|
|
257
|
+
})
|
|
258
|
+
]);
|
|
259
|
+
causesInputPromise
|
|
260
|
+
.then(willCauseInput => {
|
|
261
|
+
if (!willCauseInput) {
|
|
262
|
+
this.commands.processKeydownEvent(event);
|
|
263
|
+
}
|
|
264
|
+
})
|
|
265
|
+
.catch(console.warn);
|
|
266
|
+
}
|
|
267
|
+
|
|
202
268
|
private _info: JupyterLab.IInfo = JupyterLab.defaultInfo;
|
|
203
269
|
private _paths: JupyterFrontEnd.IPaths;
|
|
204
270
|
private _allPluginsActivated = new PromiseDelegate<void>();
|
|
@@ -373,3 +439,18 @@ export namespace JupyterLab {
|
|
|
373
439
|
| JupyterFrontEndPlugin<any, any, any>[];
|
|
374
440
|
}
|
|
375
441
|
}
|
|
442
|
+
|
|
443
|
+
/**
|
|
444
|
+
* A namespace for module-private functionality.
|
|
445
|
+
*/
|
|
446
|
+
namespace Private {
|
|
447
|
+
/**
|
|
448
|
+
* The delay for invoking a command introduced by user input guard.
|
|
449
|
+
* Decreasing this value may lead to commands incorrectly triggering
|
|
450
|
+
* on user input. Increasing this value will lead to longer delay for
|
|
451
|
+
* command invocation. Note that user input is never delayed.
|
|
452
|
+
*
|
|
453
|
+
* The value represents the number in milliseconds.
|
|
454
|
+
*/
|
|
455
|
+
export const INPUT_GUARD_TIMEOUT = 10;
|
|
456
|
+
}
|