@jupyterlab/filebrowser 4.0.0-beta.1 → 4.0.0-rc.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/browser.d.ts CHANGED
@@ -81,14 +81,15 @@ export declare class FileBrowser extends SidePanel {
81
81
  * @returns A promise that resolves when the operation is complete.
82
82
  */
83
83
  paste(): Promise<void>;
84
+ private _createNew;
84
85
  /**
85
86
  * Create a new directory
86
87
  */
87
- createNewDirectory(): void;
88
+ createNewDirectory(): Promise<Contents.IModel>;
88
89
  /**
89
90
  * Create a new file
90
91
  */
91
- createNewFile(options: FileBrowser.IFileOptions): void;
92
+ createNewFile(options: FileBrowser.IFileOptions): Promise<Contents.IModel>;
92
93
  /**
93
94
  * Delete the currently selected item(s).
94
95
  *
@@ -105,6 +106,12 @@ export declare class FileBrowser extends SidePanel {
105
106
  * Download the currently selected item(s).
106
107
  */
107
108
  download(): Promise<void>;
109
+ /**
110
+ * cd ..
111
+ *
112
+ * Go up one level in the directory tree.
113
+ */
114
+ goUp(): Promise<void>;
108
115
  /**
109
116
  * Shut down kernels on the applicable currently selected items.
110
117
  *
package/lib/browser.js CHANGED
@@ -43,6 +43,8 @@ export class FileBrowser extends SidePanel {
43
43
  constructor(options) {
44
44
  var _a;
45
45
  super({ content: new Panel(), translator: options.translator });
46
+ this._directoryPending = null;
47
+ this._filePending = null;
46
48
  this._showLastModifiedColumn = true;
47
49
  this._showFileSizeColumn = false;
48
50
  this._showHiddenFiles = false;
@@ -58,7 +60,6 @@ export class FileBrowser extends SidePanel {
58
60
  // a11y
59
61
  this.toolbar.node.setAttribute('role', 'navigation');
60
62
  this.toolbar.node.setAttribute('aria-label', this._trans.__('file browser'));
61
- this._directoryPending = false;
62
63
  // File browser widgets container
63
64
  this.mainPanel = new Panel();
64
65
  this.mainPanel.addClass(FILE_BROWSER_PANEL_CLASS);
@@ -189,62 +190,54 @@ export class FileBrowser extends SidePanel {
189
190
  paste() {
190
191
  return this.listing.paste();
191
192
  }
193
+ async _createNew(options) {
194
+ try {
195
+ const model = await this._manager.newUntitled(options);
196
+ await this.listing.selectItemByName(model.name, true);
197
+ await this.rename();
198
+ return model;
199
+ }
200
+ catch (err) {
201
+ void showErrorMessage(this._trans.__('Error'), err);
202
+ throw err;
203
+ }
204
+ }
192
205
  /**
193
206
  * Create a new directory
194
207
  */
195
- createNewDirectory() {
196
- if (this._directoryPending === true) {
197
- return;
208
+ async createNewDirectory() {
209
+ if (this._directoryPending) {
210
+ return this._directoryPending;
198
211
  }
199
- this._directoryPending = true;
200
- // TODO: We should provide a hook into when the
201
- // directory is done being created. This probably
202
- // means storing a pendingDirectory promise and
203
- // returning that if there is already a directory
204
- // request.
205
- void this._manager
206
- .newUntitled({
212
+ this._directoryPending = this._createNew({
207
213
  path: this.model.path,
208
214
  type: 'directory'
209
- })
210
- .then(async (model) => {
211
- await this.listing.selectItemByName(model.name);
212
- await this.rename();
213
- this._directoryPending = false;
214
- })
215
- .catch(err => {
216
- void showErrorMessage(this._trans.__('Error'), err);
217
- this._directoryPending = false;
218
215
  });
216
+ try {
217
+ return await this._directoryPending;
218
+ }
219
+ finally {
220
+ this._directoryPending = null;
221
+ }
219
222
  }
220
223
  /**
221
224
  * Create a new file
222
225
  */
223
- createNewFile(options) {
224
- if (this._filePending === true) {
225
- return;
226
+ async createNewFile(options) {
227
+ if (this._filePending) {
228
+ return this._filePending;
226
229
  }
227
- this._filePending = true;
228
- // TODO: We should provide a hook into when the
229
- // file is done being created. This probably
230
- // means storing a pendingFile promise and
231
- // returning that if there is already a file
232
- // request.
233
- void this._manager
234
- .newUntitled({
230
+ this._filePending = this._createNew({
235
231
  path: this.model.path,
236
232
  type: 'file',
237
233
  ext: options.ext
238
- })
239
- .then(async (model) => {
240
- await this.listing.selectItemByName(model.name);
241
- await this.rename();
242
- this._filePending = false;
243
- })
244
- .catch(err => {
245
- void showErrorMessage(this._trans.__('Error'), err);
246
- this._filePending = false;
247
234
  });
235
+ try {
236
+ return await this._filePending;
237
+ }
238
+ finally {
239
+ this._filePending = null;
240
+ }
248
241
  }
249
242
  /**
250
243
  * Delete the currently selected item(s).
@@ -268,6 +261,14 @@ export class FileBrowser extends SidePanel {
268
261
  download() {
269
262
  return this.listing.download();
270
263
  }
264
+ /**
265
+ * cd ..
266
+ *
267
+ * Go up one level in the directory tree.
268
+ */
269
+ async goUp() {
270
+ return this.listing.goUp();
271
+ }
271
272
  /**
272
273
  * Shut down kernels on the applicable currently selected items.
273
274
  *
@@ -1 +1 @@
1
- {"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"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"}
package/lib/listing.d.ts CHANGED
@@ -152,7 +152,7 @@ export declare class DirListing extends Widget {
152
152
  * Select an item by name.
153
153
  *
154
154
  * @param name - The name of the item to select.
155
- * @param focus - Whether to move focus the selected item.
155
+ * @param focus - Whether to move focus to the selected item.
156
156
  *
157
157
  * @returns A promise that resolves when the name is selected.
158
158
  */
@@ -214,6 +214,29 @@ export declare class DirListing extends Widget {
214
214
  * Handle the opening of an item.
215
215
  */
216
216
  protected handleOpen(item: Contents.IModel): void;
217
+ /**
218
+ * Calculate the next focus index, given the current focus index and a
219
+ * direction, keeping within the bounds of the directory listing.
220
+ *
221
+ * @param index Current focus index
222
+ * @param direction -1 (up) or 1 (down)
223
+ * @returns The next focus index, which could be the same as the current focus
224
+ * index if at the boundary.
225
+ */
226
+ private _getNextFocusIndex;
227
+ /**
228
+ * Handle the up or down arrow key.
229
+ *
230
+ * @param event The keyboard event
231
+ * @param direction -1 (up) or 1 (down)
232
+ */
233
+ private _handleArrowY;
234
+ /**
235
+ * cd ..
236
+ *
237
+ * Go up one level in the directory tree.
238
+ */
239
+ goUp(): Promise<void>;
217
240
  /**
218
241
  * Handle the `'keydown'` event for the widget.
219
242
  */
@@ -251,12 +274,23 @@ export declare class DirListing extends Widget {
251
274
  */
252
275
  protected handleFileSelect(event: MouseEvent): void;
253
276
  /**
254
- * (Re-)focus on the selected file.
277
+ * (Re-)focus an item in the directory listing.
278
+ *
279
+ * @param index The index of the item node to focus
280
+ */
281
+ private _focusItem;
282
+ /**
283
+ * Are all of the items between two provided indices selected?
284
+ *
285
+ * The items at the indices are not considered.
255
286
  *
256
- * If index is not given, it will be inferred from the current selection;
257
- * providing index saves on the iteration time.
287
+ * @param j Index of one item.
288
+ * @param k Index of another item. Note: may be less or greater than first
289
+ * index.
290
+ * @returns True if and only if all items between the j and k are selected.
291
+ * Returns undefined if j and k are the same.
258
292
  */
259
- private _focusSelectedFile;
293
+ private _allSelectedBetween;
260
294
  /**
261
295
  * Handle a multiple select on a file item node.
262
296
  */
@@ -318,6 +352,7 @@ export declare class DirListing extends Widget {
318
352
  private _inRename;
319
353
  private _isDirty;
320
354
  private _hiddenColumns;
355
+ private _focusIndex;
321
356
  }
322
357
  /**
323
358
  * The namespace for the `DirListing` class statics.