@jupyterlab/filebrowser 4.5.0-beta.0 → 4.5.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
@@ -35,6 +35,16 @@ export declare class FileBrowser extends SidePanel {
35
35
  */
36
36
  get showLastModifiedColumn(): boolean;
37
37
  set showLastModifiedColumn(value: boolean);
38
+ /**
39
+ * Number of directory items to show on the left side of the ellipsis in breadcrumbs.
40
+ */
41
+ get minimumBreadcrumbsLeftItems(): number;
42
+ set minimumBreadcrumbsLeftItems(value: number);
43
+ /**
44
+ * Number of directory items to show on the right side of the ellipsis in breadcrumbs.
45
+ */
46
+ get minimumBreadcrumbsRightItems(): number;
47
+ set minimumBreadcrumbsRightItems(value: number);
38
48
  /**
39
49
  * Whether to show the full path in the breadcrumbs
40
50
  */
package/lib/browser.js CHANGED
@@ -146,6 +146,24 @@ export class FileBrowser extends SidePanel {
146
146
  console.warn('Listing does not support toggling column visibility');
147
147
  }
148
148
  }
149
+ /**
150
+ * Number of directory items to show on the left side of the ellipsis in breadcrumbs.
151
+ */
152
+ get minimumBreadcrumbsLeftItems() {
153
+ return this.crumbs.minimumLeftItems;
154
+ }
155
+ set minimumBreadcrumbsLeftItems(value) {
156
+ this.crumbs.minimumLeftItems = value;
157
+ }
158
+ /**
159
+ * Number of directory items to show on the right side of the ellipsis in breadcrumbs.
160
+ */
161
+ get minimumBreadcrumbsRightItems() {
162
+ return this.crumbs.minimumRightItems;
163
+ }
164
+ set minimumBreadcrumbsRightItems(value) {
165
+ this.crumbs.minimumRightItems = value;
166
+ }
149
167
  /**
150
168
  * Whether to show the full path in the breadcrumbs
151
169
  */
@@ -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/crumbs.d.ts CHANGED
@@ -28,6 +28,16 @@ export declare class BreadCrumbs extends Widget {
28
28
  */
29
29
  get fullPath(): boolean;
30
30
  set fullPath(value: boolean);
31
+ /**
32
+ * Number of items to show on left of ellipsis
33
+ */
34
+ get minimumLeftItems(): number;
35
+ set minimumLeftItems(value: number);
36
+ /**
37
+ * Number of items to show on right of ellipsis
38
+ */
39
+ get minimumRightItems(): number;
40
+ set minimumRightItems(value: number);
31
41
  /**
32
42
  * A message handler invoked on an `'after-attach'` message.
33
43
  */
@@ -60,14 +70,19 @@ export declare class BreadCrumbs extends Widget {
60
70
  * Handle the `'lm-drop'` event for the widget.
61
71
  */
62
72
  private _evtDrop;
73
+ /**
74
+ * Get all breadcrumb elements that can be drop targets.
75
+ */
76
+ private _getBreadcrumbElements;
63
77
  protected translator: ITranslator;
64
78
  private _trans;
65
79
  private _model;
66
80
  private _hasPreferred;
67
81
  private _crumbs;
68
- private _crumbSeps;
69
82
  private _fullPath;
70
83
  private _previousState;
84
+ private _minimumLeftItems;
85
+ private _minimumRightItems;
71
86
  }
72
87
  /**
73
88
  * The namespace for the `BreadCrumbs` class statics.
@@ -89,5 +104,13 @@ export declare namespace BreadCrumbs {
89
104
  * Show the full file browser path in breadcrumbs
90
105
  */
91
106
  fullPath?: boolean;
107
+ /**
108
+ * Number of items to show on left of ellipsis
109
+ */
110
+ minimumLeftItems?: number;
111
+ /**
112
+ * Number of items to show on right of ellipsis
113
+ */
114
+ minimumRightItems?: number;
92
115
  }
93
116
  }
package/lib/crumbs.js CHANGED
@@ -5,9 +5,7 @@ import { PageConfig, PathExt } from '@jupyterlab/coreutils';
5
5
  import { renameFile } from '@jupyterlab/docmanager';
6
6
  import { nullTranslator } from '@jupyterlab/translation';
7
7
  import { ellipsesIcon, homeIcon as preferredIcon, folderIcon as rootIcon } from '@jupyterlab/ui-components';
8
- import { ArrayExt } from '@lumino/algorithm';
9
8
  import { JSONExt } from '@lumino/coreutils';
10
- import { ElementExt } from '@lumino/domutils';
11
9
  import { Widget } from '@lumino/widgets';
12
10
  /**
13
11
  * The class name added to the breadcrumb node.
@@ -26,9 +24,9 @@ const BREADCRUMB_PREFERRED_CLASS = 'jp-BreadCrumbs-preferred';
26
24
  */
27
25
  const BREADCRUMB_ITEM_CLASS = 'jp-BreadCrumbs-item';
28
26
  /**
29
- * Bread crumb paths.
27
+ * The class name for the breadcrumbs ellipsis node
30
28
  */
31
- const BREAD_CRUMB_PATHS = ['/', '../../', '../', ''];
29
+ const BREADCRUMB_ELLIPSIS_CLASS = 'jp-BreadCrumbs-ellipsis';
32
30
  /**
33
31
  * The mime type for a contents drag object.
34
32
  */
@@ -47,15 +45,17 @@ export class BreadCrumbs extends Widget {
47
45
  * @param options Constructor options.
48
46
  */
49
47
  constructor(options) {
48
+ var _a, _b;
50
49
  super();
51
50
  this._previousState = null;
52
51
  this.translator = options.translator || nullTranslator;
53
52
  this._trans = this.translator.load('jupyterlab');
54
53
  this._model = options.model;
55
54
  this._fullPath = options.fullPath || false;
55
+ this._minimumLeftItems = (_a = options.minimumLeftItems) !== null && _a !== void 0 ? _a : 0;
56
+ this._minimumRightItems = (_b = options.minimumRightItems) !== null && _b !== void 0 ? _b : 2;
56
57
  this.addClass(BREADCRUMB_CLASS);
57
58
  this._crumbs = Private.createCrumbs();
58
- this._crumbSeps = Private.createCrumbSeparators();
59
59
  const hasPreferred = PageConfig.getOption('preferredPath');
60
60
  this._hasPreferred = hasPreferred && hasPreferred !== '/' ? true : false;
61
61
  if (this._hasPreferred) {
@@ -104,6 +104,24 @@ export class BreadCrumbs extends Widget {
104
104
  set fullPath(value) {
105
105
  this._fullPath = value;
106
106
  }
107
+ /**
108
+ * Number of items to show on left of ellipsis
109
+ */
110
+ get minimumLeftItems() {
111
+ return this._minimumLeftItems;
112
+ }
113
+ set minimumLeftItems(value) {
114
+ this._minimumLeftItems = value;
115
+ }
116
+ /**
117
+ * Number of items to show on right of ellipsis
118
+ */
119
+ get minimumRightItems() {
120
+ return this._minimumRightItems;
121
+ }
122
+ set minimumRightItems(value) {
123
+ this._minimumRightItems = value;
124
+ }
107
125
  /**
108
126
  * A message handler invoked on an `'after-attach'` message.
109
127
  */
@@ -139,13 +157,15 @@ export class BreadCrumbs extends Widget {
139
157
  const state = {
140
158
  path: localPath,
141
159
  hasPreferred: this._hasPreferred,
142
- fullPath: this._fullPath
160
+ fullPath: this._fullPath,
161
+ minimumLeftItems: this._minimumLeftItems,
162
+ minimumRightItems: this._minimumRightItems
143
163
  };
144
164
  if (this._previousState && JSONExt.deepEqual(state, this._previousState)) {
145
165
  return;
146
166
  }
147
167
  this._previousState = state;
148
- Private.updateCrumbs(this._crumbs, this._crumbSeps, state);
168
+ Private.updateCrumbs(this._crumbs, state);
149
169
  }
150
170
  /**
151
171
  * Handle the `'click'` event for the widget.
@@ -171,16 +191,18 @@ export class BreadCrumbs extends Widget {
171
191
  }
172
192
  if (node.classList.contains(BREADCRUMB_ITEM_CLASS) ||
173
193
  node.classList.contains(BREADCRUMB_ROOT_CLASS)) {
174
- let index = ArrayExt.findFirstIndex(this._crumbs, value => value === node);
175
- let destination = BREAD_CRUMB_PATHS[index];
176
- if (this._fullPath &&
177
- index < 0 &&
178
- !node.classList.contains(BREADCRUMB_ROOT_CLASS)) {
179
- destination = node.title;
194
+ let destination;
195
+ if (node.classList.contains(BREADCRUMB_ROOT_CLASS)) {
196
+ destination = '/';
197
+ }
198
+ else {
199
+ destination = `/${node.dataset.path}`;
200
+ }
201
+ if (destination) {
202
+ this._model
203
+ .cd(destination)
204
+ .catch(error => showErrorMessage(this._trans.__('Open Error'), error));
180
205
  }
181
- this._model
182
- .cd(destination)
183
- .catch(error => showErrorMessage(this._trans.__('Open Error'), error));
184
206
  // Stop the event propagation.
185
207
  event.preventDefault();
186
208
  event.stopPropagation();
@@ -194,10 +216,22 @@ export class BreadCrumbs extends Widget {
194
216
  */
195
217
  _evtDragEnter(event) {
196
218
  if (event.mimeData.hasData(CONTENTS_MIME)) {
197
- const index = ArrayExt.findFirstIndex(this._crumbs, node => ElementExt.hitTest(node, event.clientX, event.clientY));
219
+ const breadcrumbElements = this._getBreadcrumbElements();
220
+ let index = -1;
221
+ let target = event.target;
222
+ while (target && target !== this.node) {
223
+ index = breadcrumbElements.indexOf(target);
224
+ if (index !== -1) {
225
+ break;
226
+ }
227
+ target = target.parentElement;
228
+ }
198
229
  if (index !== -1) {
199
- if (index !== Private.Crumb.Current) {
200
- this._crumbs[index].classList.add(DROP_TARGET_CLASS);
230
+ const hitElement = breadcrumbElements[index];
231
+ // Don't allow dropping on the current path
232
+ const currentPath = this._model.manager.services.contents.localPath(this._model.path);
233
+ if (hitElement.dataset.path !== currentPath) {
234
+ hitElement.classList.add(DROP_TARGET_CLASS);
201
235
  event.preventDefault();
202
236
  event.stopPropagation();
203
237
  }
@@ -226,9 +260,18 @@ export class BreadCrumbs extends Widget {
226
260
  if (dropTarget) {
227
261
  dropTarget.classList.remove(DROP_TARGET_CLASS);
228
262
  }
229
- const index = ArrayExt.findFirstIndex(this._crumbs, node => ElementExt.hitTest(node, event.clientX, event.clientY));
263
+ const breadcrumbElements = this._getBreadcrumbElements();
264
+ let index = -1;
265
+ let target = event.target;
266
+ while (target && target !== this.node) {
267
+ index = breadcrumbElements.indexOf(target);
268
+ if (index !== -1) {
269
+ break;
270
+ }
271
+ target = target.parentElement;
272
+ }
230
273
  if (index !== -1) {
231
- this._crumbs[index].classList.add(DROP_TARGET_CLASS);
274
+ breadcrumbElements[index].classList.add(DROP_TARGET_CLASS);
232
275
  }
233
276
  }
234
277
  /**
@@ -253,27 +296,51 @@ export class BreadCrumbs extends Widget {
253
296
  }
254
297
  target = target.parentElement;
255
298
  }
256
- // Get the path based on the target node.
257
- const index = ArrayExt.findFirstIndex(this._crumbs, node => node === target);
258
- if (index === -1) {
299
+ let destinationPath = null;
300
+ if (target.classList.contains(BREADCRUMB_ROOT_CLASS)) {
301
+ destinationPath = '/';
302
+ }
303
+ else if (target.classList.contains(BREADCRUMB_PREFERRED_CLASS)) {
304
+ const preferredPath = PageConfig.getOption('preferredPath');
305
+ destinationPath = preferredPath ? '/' + preferredPath : '/';
306
+ }
307
+ else if (target.dataset.path) {
308
+ destinationPath = target.dataset.path;
309
+ }
310
+ if (!destinationPath) {
259
311
  return;
260
312
  }
261
313
  const model = this._model;
262
- const path = PathExt.resolve(model.path, BREAD_CRUMB_PATHS[index]);
263
314
  const manager = model.manager;
264
315
  // Move all of the items.
265
316
  const promises = [];
266
317
  const oldPaths = event.mimeData.getData(CONTENTS_MIME);
267
318
  for (const oldPath of oldPaths) {
268
- const localOldPath = manager.services.contents.localPath(oldPath);
269
- const name = PathExt.basename(localOldPath);
270
- const newPath = PathExt.join(path, name);
319
+ const name = PathExt.basename(oldPath);
320
+ const newPath = PathExt.join(destinationPath, name);
271
321
  promises.push(renameFile(manager, oldPath, newPath));
272
322
  }
273
323
  void Promise.all(promises).catch(err => {
274
324
  return showErrorMessage(this._trans.__('Move Error'), err);
275
325
  });
276
326
  }
327
+ /**
328
+ * Get all breadcrumb elements that can be drop targets.
329
+ */
330
+ _getBreadcrumbElements() {
331
+ const elements = [];
332
+ const children = this.node.children;
333
+ for (let i = 0; i < children.length; i++) {
334
+ const child = children[i];
335
+ if ((child.classList.contains(BREADCRUMB_ITEM_CLASS) ||
336
+ child.classList.contains(BREADCRUMB_ROOT_CLASS) ||
337
+ child.classList.contains(BREADCRUMB_PREFERRED_CLASS)) &&
338
+ !child.classList.contains(BREADCRUMB_ELLIPSIS_CLASS)) {
339
+ elements.push(child);
340
+ }
341
+ }
342
+ return elements;
343
+ }
277
344
  }
278
345
  /**
279
346
  * The namespace for the crumbs private data.
@@ -287,14 +354,12 @@ var Private;
287
354
  (function (Crumb) {
288
355
  Crumb[Crumb["Home"] = 0] = "Home";
289
356
  Crumb[Crumb["Ellipsis"] = 1] = "Ellipsis";
290
- Crumb[Crumb["Parent"] = 2] = "Parent";
291
- Crumb[Crumb["Current"] = 3] = "Current";
292
- Crumb[Crumb["Preferred"] = 4] = "Preferred";
357
+ Crumb[Crumb["Preferred"] = 2] = "Preferred";
293
358
  })(Crumb = Private.Crumb || (Private.Crumb = {}));
294
359
  /**
295
360
  * Populate the breadcrumb node.
296
361
  */
297
- function updateCrumbs(breadcrumbs, separators, state) {
362
+ function updateCrumbs(breadcrumbs, state) {
298
363
  const node = breadcrumbs[0].parentNode;
299
364
  // Remove all but the home or preferred node.
300
365
  const firstChild = node.firstChild;
@@ -303,48 +368,77 @@ var Private;
303
368
  }
304
369
  if (state.hasPreferred) {
305
370
  node.appendChild(breadcrumbs[Crumb.Home]);
306
- node.appendChild(separators[0]);
371
+ node.appendChild(createCrumbSeparator());
307
372
  }
308
373
  else {
309
- node.appendChild(separators[0]);
310
- }
311
- const parts = state.path.split('/');
312
- if (!state.fullPath && parts.length > 2) {
313
- node.appendChild(breadcrumbs[Crumb.Ellipsis]);
314
- const grandParent = parts.slice(0, parts.length - 2).join('/');
315
- breadcrumbs[Crumb.Ellipsis].title = grandParent;
316
- node.appendChild(separators[1]);
374
+ node.appendChild(createCrumbSeparator());
317
375
  }
318
- if (state.path) {
319
- if (!state.fullPath) {
320
- if (parts.length >= 2) {
321
- breadcrumbs[Crumb.Parent].textContent = parts[parts.length - 2];
322
- node.appendChild(breadcrumbs[Crumb.Parent]);
323
- const parent = parts.slice(0, parts.length - 1).join('/');
324
- breadcrumbs[Crumb.Parent].title = parent;
325
- node.appendChild(separators[2]);
376
+ const parts = state.path.split('/').filter(part => part !== '');
377
+ if (!state.fullPath && parts.length > 0) {
378
+ const minimumLeftItems = state.minimumLeftItems;
379
+ const minimumRightItems = state.minimumRightItems;
380
+ // Check if we need ellipsis
381
+ if (parts.length > minimumLeftItems + minimumRightItems) {
382
+ // Add left items
383
+ for (let i = 0; i < minimumLeftItems; i++) {
384
+ const elemPath = parts.slice(0, i + 1).join('/');
385
+ const elem = createBreadcrumbElement(parts[i], elemPath);
386
+ node.appendChild(elem);
387
+ node.appendChild(createCrumbSeparator());
388
+ }
389
+ // Add ellipsis
390
+ node.appendChild(breadcrumbs[Crumb.Ellipsis]);
391
+ const hiddenStartIndex = minimumLeftItems;
392
+ const hiddenEndIndex = parts.length - minimumRightItems;
393
+ const hiddenParts = parts.slice(hiddenStartIndex, hiddenEndIndex);
394
+ const hiddenFolders = hiddenParts.join('/');
395
+ const hiddenPath = hiddenParts.length > 0
396
+ ? parts.slice(0, hiddenEndIndex).join('/')
397
+ : parts.slice(0, minimumLeftItems).join('/');
398
+ breadcrumbs[Crumb.Ellipsis].title = hiddenFolders;
399
+ breadcrumbs[Crumb.Ellipsis].dataset.path = hiddenPath;
400
+ node.appendChild(createCrumbSeparator());
401
+ // Add right items
402
+ const rightStartIndex = parts.length - minimumRightItems;
403
+ for (let i = rightStartIndex; i < parts.length; i++) {
404
+ const elemPath = parts.slice(0, i + 1).join('/');
405
+ const elem = createBreadcrumbElement(parts[i], elemPath);
406
+ node.appendChild(elem);
407
+ node.appendChild(createCrumbSeparator());
326
408
  }
327
- breadcrumbs[Crumb.Current].textContent = parts[parts.length - 1];
328
- node.appendChild(breadcrumbs[Crumb.Current]);
329
- breadcrumbs[Crumb.Current].title = state.path;
330
- node.appendChild(separators[3]);
331
409
  }
332
410
  else {
333
411
  for (let i = 0; i < parts.length; i++) {
334
- const elem = document.createElement('span');
335
- elem.className = BREADCRUMB_ITEM_CLASS;
336
- elem.textContent = parts[i];
337
- const elemPath = `/${parts.slice(0, i + 1).join('/')}`;
338
- elem.title = elemPath;
412
+ const elemPath = parts.slice(0, i + 1).join('/');
413
+ const elem = createBreadcrumbElement(parts[i], elemPath);
339
414
  node.appendChild(elem);
340
- const separator = document.createElement('span');
341
- separator.textContent = '/';
342
- node.appendChild(separator);
415
+ node.appendChild(createCrumbSeparator());
343
416
  }
344
417
  }
345
418
  }
419
+ else if (state.fullPath && parts.length > 0) {
420
+ for (let i = 0; i < parts.length; i++) {
421
+ const elemPath = parts.slice(0, i + 1).join('/');
422
+ const elem = createBreadcrumbElement(parts[i], elemPath);
423
+ node.appendChild(elem);
424
+ const separator = document.createElement('span');
425
+ separator.textContent = '/';
426
+ node.appendChild(separator);
427
+ }
428
+ }
346
429
  }
347
430
  Private.updateCrumbs = updateCrumbs;
431
+ /**
432
+ * Create a breadcrumb element for a path part.
433
+ */
434
+ function createBreadcrumbElement(pathPart, fullPath) {
435
+ const elem = document.createElement('span');
436
+ elem.className = BREADCRUMB_ITEM_CLASS;
437
+ elem.textContent = pathPart;
438
+ elem.title = fullPath;
439
+ elem.dataset.path = fullPath;
440
+ return elem;
441
+ }
348
442
  /**
349
443
  * Create the breadcrumb nodes.
350
444
  */
@@ -355,15 +449,12 @@ var Private;
355
449
  title: PageConfig.getOption('serverRoot') || 'Jupyter Server Root',
356
450
  stylesheet: 'breadCrumb'
357
451
  });
452
+ home.dataset.path = '/';
358
453
  const ellipsis = ellipsesIcon.element({
359
- className: BREADCRUMB_ITEM_CLASS,
454
+ className: `${BREADCRUMB_ITEM_CLASS} ${BREADCRUMB_ELLIPSIS_CLASS}`,
360
455
  tag: 'span',
361
456
  stylesheet: 'breadCrumb'
362
457
  });
363
- const parent = document.createElement('span');
364
- parent.className = BREADCRUMB_ITEM_CLASS;
365
- const current = document.createElement('span');
366
- current.className = BREADCRUMB_ITEM_CLASS;
367
458
  const preferredPath = PageConfig.getOption('preferredPath');
368
459
  const path = preferredPath ? '/' + preferredPath : preferredPath;
369
460
  const preferred = preferredIcon.element({
@@ -372,25 +463,18 @@ var Private;
372
463
  title: path || 'Jupyter Preferred Path',
373
464
  stylesheet: 'breadCrumb'
374
465
  });
375
- return [home, ellipsis, parent, current, preferred];
466
+ preferred.dataset.path = path || '/';
467
+ return [home, ellipsis, preferred];
376
468
  }
377
469
  Private.createCrumbs = createCrumbs;
378
470
  /**
379
471
  * Create the breadcrumb separator nodes.
380
472
  */
381
- function createCrumbSeparators() {
382
- const items = [];
383
- // The maximum number of directories that will be shown in the crumbs
384
- const MAX_DIRECTORIES = 2;
385
- // Make separators for after each directory, one at the beginning, and one
386
- // after a possible ellipsis.
387
- for (let i = 0; i < MAX_DIRECTORIES + 2; i++) {
388
- const item = document.createElement('span');
389
- item.textContent = '/';
390
- items.push(item);
391
- }
392
- return items;
473
+ function createCrumbSeparator() {
474
+ const item = document.createElement('span');
475
+ item.textContent = '/';
476
+ return item;
393
477
  }
394
- Private.createCrumbSeparators = createCrumbSeparators;
478
+ Private.createCrumbSeparator = createCrumbSeparator;
395
479
  })(Private || (Private = {}));
396
480
  //# sourceMappingURL=crumbs.js.map
package/lib/crumbs.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"crumbs.js","sourceRoot":"","sources":["../src/crumbs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"crumbs.js","sourceRoot":"","sources":["../src/crumbs.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jupyterlab/filebrowser",
3
- "version": "4.5.0-beta.0",
3
+ "version": "4.5.0-rc.0",
4
4
  "description": "JupyterLab - FileBrowser Widget",
5
5
  "homepage": "https://github.com/jupyterlab/jupyterlab",
6
6
  "bugs": {
@@ -41,15 +41,15 @@
41
41
  "watch": "tsc -b --watch"
42
42
  },
43
43
  "dependencies": {
44
- "@jupyterlab/apputils": "^4.6.0-beta.0",
45
- "@jupyterlab/coreutils": "^6.5.0-beta.0",
46
- "@jupyterlab/docmanager": "^4.5.0-beta.0",
47
- "@jupyterlab/docregistry": "^4.5.0-beta.0",
48
- "@jupyterlab/services": "^7.5.0-beta.0",
49
- "@jupyterlab/statedb": "^4.5.0-beta.0",
50
- "@jupyterlab/statusbar": "^4.5.0-beta.0",
51
- "@jupyterlab/translation": "^4.5.0-beta.0",
52
- "@jupyterlab/ui-components": "^4.5.0-beta.0",
44
+ "@jupyterlab/apputils": "^4.6.0-rc.0",
45
+ "@jupyterlab/coreutils": "^6.5.0-rc.0",
46
+ "@jupyterlab/docmanager": "^4.5.0-rc.0",
47
+ "@jupyterlab/docregistry": "^4.5.0-rc.0",
48
+ "@jupyterlab/services": "^7.5.0-rc.0",
49
+ "@jupyterlab/statedb": "^4.5.0-rc.0",
50
+ "@jupyterlab/statusbar": "^4.5.0-rc.0",
51
+ "@jupyterlab/translation": "^4.5.0-rc.0",
52
+ "@jupyterlab/ui-components": "^4.5.0-rc.0",
53
53
  "@lumino/algorithm": "^2.0.3",
54
54
  "@lumino/coreutils": "^2.2.1",
55
55
  "@lumino/disposable": "^2.1.4",
@@ -64,7 +64,7 @@
64
64
  "react": "^18.2.0"
65
65
  },
66
66
  "devDependencies": {
67
- "@jupyterlab/testing": "^4.5.0-beta.0",
67
+ "@jupyterlab/testing": "^4.5.0-rc.0",
68
68
  "@types/jest": "^29.2.0",
69
69
  "jest": "^29.2.0",
70
70
  "rimraf": "~5.0.5",
package/src/browser.ts CHANGED
@@ -179,6 +179,28 @@ export class FileBrowser extends SidePanel {
179
179
  }
180
180
  }
181
181
 
182
+ /**
183
+ * Number of directory items to show on the left side of the ellipsis in breadcrumbs.
184
+ */
185
+ get minimumBreadcrumbsLeftItems(): number {
186
+ return this.crumbs.minimumLeftItems;
187
+ }
188
+
189
+ set minimumBreadcrumbsLeftItems(value: number) {
190
+ this.crumbs.minimumLeftItems = value;
191
+ }
192
+
193
+ /**
194
+ * Number of directory items to show on the right side of the ellipsis in breadcrumbs.
195
+ */
196
+ get minimumBreadcrumbsRightItems(): number {
197
+ return this.crumbs.minimumRightItems;
198
+ }
199
+
200
+ set minimumBreadcrumbsRightItems(value: number) {
201
+ this.crumbs.minimumRightItems = value;
202
+ }
203
+
182
204
  /**
183
205
  * Whether to show the full path in the breadcrumbs
184
206
  */
package/src/crumbs.ts CHANGED
@@ -14,9 +14,7 @@ import {
14
14
  homeIcon as preferredIcon,
15
15
  folderIcon as rootIcon
16
16
  } from '@jupyterlab/ui-components';
17
- import { ArrayExt } from '@lumino/algorithm';
18
17
  import { JSONExt } from '@lumino/coreutils';
19
- import { ElementExt } from '@lumino/domutils';
20
18
  import { Drag } from '@lumino/dragdrop';
21
19
  import { Message } from '@lumino/messaging';
22
20
  import { Widget } from '@lumino/widgets';
@@ -43,9 +41,9 @@ const BREADCRUMB_PREFERRED_CLASS = 'jp-BreadCrumbs-preferred';
43
41
  const BREADCRUMB_ITEM_CLASS = 'jp-BreadCrumbs-item';
44
42
 
45
43
  /**
46
- * Bread crumb paths.
44
+ * The class name for the breadcrumbs ellipsis node
47
45
  */
48
- const BREAD_CRUMB_PATHS = ['/', '../../', '../', ''];
46
+ const BREADCRUMB_ELLIPSIS_CLASS = 'jp-BreadCrumbs-ellipsis';
49
47
 
50
48
  /**
51
49
  * The mime type for a contents drag object.
@@ -72,9 +70,10 @@ export class BreadCrumbs extends Widget {
72
70
  this._trans = this.translator.load('jupyterlab');
73
71
  this._model = options.model;
74
72
  this._fullPath = options.fullPath || false;
73
+ this._minimumLeftItems = options.minimumLeftItems ?? 0;
74
+ this._minimumRightItems = options.minimumRightItems ?? 2;
75
75
  this.addClass(BREADCRUMB_CLASS);
76
76
  this._crumbs = Private.createCrumbs();
77
- this._crumbSeps = Private.createCrumbSeparators();
78
77
  const hasPreferred = PageConfig.getOption('preferredPath');
79
78
  this._hasPreferred = hasPreferred && hasPreferred !== '/' ? true : false;
80
79
  if (this._hasPreferred) {
@@ -127,6 +126,28 @@ export class BreadCrumbs extends Widget {
127
126
  this._fullPath = value;
128
127
  }
129
128
 
129
+ /**
130
+ * Number of items to show on left of ellipsis
131
+ */
132
+ get minimumLeftItems(): number {
133
+ return this._minimumLeftItems;
134
+ }
135
+
136
+ set minimumLeftItems(value: number) {
137
+ this._minimumLeftItems = value;
138
+ }
139
+
140
+ /**
141
+ * Number of items to show on right of ellipsis
142
+ */
143
+ get minimumRightItems(): number {
144
+ return this._minimumRightItems;
145
+ }
146
+
147
+ set minimumRightItems(value: number) {
148
+ this._minimumRightItems = value;
149
+ }
150
+
130
151
  /**
131
152
  * A message handler invoked on an `'after-attach'` message.
132
153
  */
@@ -164,13 +185,15 @@ export class BreadCrumbs extends Widget {
164
185
  const state = {
165
186
  path: localPath,
166
187
  hasPreferred: this._hasPreferred,
167
- fullPath: this._fullPath
188
+ fullPath: this._fullPath,
189
+ minimumLeftItems: this._minimumLeftItems,
190
+ minimumRightItems: this._minimumRightItems
168
191
  };
169
192
  if (this._previousState && JSONExt.deepEqual(state, this._previousState)) {
170
193
  return;
171
194
  }
172
195
  this._previousState = state;
173
- Private.updateCrumbs(this._crumbs, this._crumbSeps, state);
196
+ Private.updateCrumbs(this._crumbs, state);
174
197
  }
175
198
 
176
199
  /**
@@ -203,23 +226,19 @@ export class BreadCrumbs extends Widget {
203
226
  node.classList.contains(BREADCRUMB_ITEM_CLASS) ||
204
227
  node.classList.contains(BREADCRUMB_ROOT_CLASS)
205
228
  ) {
206
- let index = ArrayExt.findFirstIndex(
207
- this._crumbs,
208
- value => value === node
209
- );
210
- let destination = BREAD_CRUMB_PATHS[index];
211
- if (
212
- this._fullPath &&
213
- index < 0 &&
214
- !node.classList.contains(BREADCRUMB_ROOT_CLASS)
215
- ) {
216
- destination = node.title;
229
+ let destination: string | undefined;
230
+ if (node.classList.contains(BREADCRUMB_ROOT_CLASS)) {
231
+ destination = '/';
232
+ } else {
233
+ destination = `/${node.dataset.path}`;
234
+ }
235
+ if (destination) {
236
+ this._model
237
+ .cd(destination)
238
+ .catch(error =>
239
+ showErrorMessage(this._trans.__('Open Error'), error)
240
+ );
217
241
  }
218
- this._model
219
- .cd(destination)
220
- .catch(error =>
221
- showErrorMessage(this._trans.__('Open Error'), error)
222
- );
223
242
 
224
243
  // Stop the event propagation.
225
244
  event.preventDefault();
@@ -235,12 +254,24 @@ export class BreadCrumbs extends Widget {
235
254
  */
236
255
  private _evtDragEnter(event: Drag.Event): void {
237
256
  if (event.mimeData.hasData(CONTENTS_MIME)) {
238
- const index = ArrayExt.findFirstIndex(this._crumbs, node =>
239
- ElementExt.hitTest(node, event.clientX, event.clientY)
240
- );
257
+ const breadcrumbElements = this._getBreadcrumbElements();
258
+ let index = -1;
259
+ let target = event.target as HTMLElement;
260
+ while (target && target !== this.node) {
261
+ index = breadcrumbElements.indexOf(target);
262
+ if (index !== -1) {
263
+ break;
264
+ }
265
+ target = target.parentElement as HTMLElement;
266
+ }
241
267
  if (index !== -1) {
242
- if (index !== Private.Crumb.Current) {
243
- this._crumbs[index].classList.add(DROP_TARGET_CLASS);
268
+ const hitElement = breadcrumbElements[index];
269
+ // Don't allow dropping on the current path
270
+ const currentPath = this._model.manager.services.contents.localPath(
271
+ this._model.path
272
+ );
273
+ if (hitElement.dataset.path !== currentPath) {
274
+ hitElement.classList.add(DROP_TARGET_CLASS);
244
275
  event.preventDefault();
245
276
  event.stopPropagation();
246
277
  }
@@ -271,11 +302,18 @@ export class BreadCrumbs extends Widget {
271
302
  if (dropTarget) {
272
303
  dropTarget.classList.remove(DROP_TARGET_CLASS);
273
304
  }
274
- const index = ArrayExt.findFirstIndex(this._crumbs, node =>
275
- ElementExt.hitTest(node, event.clientX, event.clientY)
276
- );
305
+ const breadcrumbElements = this._getBreadcrumbElements();
306
+ let index = -1;
307
+ let target = event.target as HTMLElement;
308
+ while (target && target !== this.node) {
309
+ index = breadcrumbElements.indexOf(target);
310
+ if (index !== -1) {
311
+ break;
312
+ }
313
+ target = target.parentElement as HTMLElement;
314
+ }
277
315
  if (index !== -1) {
278
- this._crumbs[index].classList.add(DROP_TARGET_CLASS);
316
+ breadcrumbElements[index].classList.add(DROP_TARGET_CLASS);
279
317
  }
280
318
  }
281
319
 
@@ -303,26 +341,29 @@ export class BreadCrumbs extends Widget {
303
341
  target = target.parentElement;
304
342
  }
305
343
 
306
- // Get the path based on the target node.
307
- const index = ArrayExt.findFirstIndex(
308
- this._crumbs,
309
- node => node === target
310
- );
311
- if (index === -1) {
344
+ let destinationPath: string | null = null;
345
+ if (target.classList.contains(BREADCRUMB_ROOT_CLASS)) {
346
+ destinationPath = '/';
347
+ } else if (target.classList.contains(BREADCRUMB_PREFERRED_CLASS)) {
348
+ const preferredPath = PageConfig.getOption('preferredPath');
349
+ destinationPath = preferredPath ? '/' + preferredPath : '/';
350
+ } else if (target.dataset.path) {
351
+ destinationPath = target.dataset.path;
352
+ }
353
+
354
+ if (!destinationPath) {
312
355
  return;
313
356
  }
314
357
 
315
358
  const model = this._model;
316
- const path = PathExt.resolve(model.path, BREAD_CRUMB_PATHS[index]);
317
359
  const manager = model.manager;
318
360
 
319
361
  // Move all of the items.
320
362
  const promises: Promise<any>[] = [];
321
363
  const oldPaths = event.mimeData.getData(CONTENTS_MIME) as string[];
322
364
  for (const oldPath of oldPaths) {
323
- const localOldPath = manager.services.contents.localPath(oldPath);
324
- const name = PathExt.basename(localOldPath);
325
- const newPath = PathExt.join(path, name);
365
+ const name = PathExt.basename(oldPath);
366
+ const newPath = PathExt.join(destinationPath, name);
326
367
  promises.push(renameFile(manager, oldPath, newPath));
327
368
  }
328
369
  void Promise.all(promises).catch(err => {
@@ -330,14 +371,35 @@ export class BreadCrumbs extends Widget {
330
371
  });
331
372
  }
332
373
 
374
+ /**
375
+ * Get all breadcrumb elements that can be drop targets.
376
+ */
377
+ private _getBreadcrumbElements(): HTMLElement[] {
378
+ const elements: HTMLElement[] = [];
379
+ const children = this.node.children;
380
+ for (let i = 0; i < children.length; i++) {
381
+ const child = children[i] as HTMLElement;
382
+ if (
383
+ (child.classList.contains(BREADCRUMB_ITEM_CLASS) ||
384
+ child.classList.contains(BREADCRUMB_ROOT_CLASS) ||
385
+ child.classList.contains(BREADCRUMB_PREFERRED_CLASS)) &&
386
+ !child.classList.contains(BREADCRUMB_ELLIPSIS_CLASS)
387
+ ) {
388
+ elements.push(child);
389
+ }
390
+ }
391
+ return elements;
392
+ }
393
+
333
394
  protected translator: ITranslator;
334
395
  private _trans: TranslationBundle;
335
396
  private _model: FileBrowserModel;
336
397
  private _hasPreferred: boolean;
337
398
  private _crumbs: ReadonlyArray<HTMLElement>;
338
- private _crumbSeps: ReadonlyArray<HTMLElement>;
339
399
  private _fullPath: boolean;
340
400
  private _previousState: Private.ICrumbsState | null = null;
401
+ private _minimumLeftItems: number;
402
+ private _minimumRightItems: number;
341
403
  }
342
404
 
343
405
  /**
@@ -362,6 +424,16 @@ export namespace BreadCrumbs {
362
424
  * Show the full file browser path in breadcrumbs
363
425
  */
364
426
  fullPath?: boolean;
427
+
428
+ /**
429
+ * Number of items to show on left of ellipsis
430
+ */
431
+ minimumLeftItems?: number;
432
+
433
+ /**
434
+ * Number of items to show on right of ellipsis
435
+ */
436
+ minimumRightItems?: number;
365
437
  }
366
438
  }
367
439
 
@@ -375,8 +447,6 @@ namespace Private {
375
447
  export enum Crumb {
376
448
  Home,
377
449
  Ellipsis,
378
- Parent,
379
- Current,
380
450
  Preferred
381
451
  }
382
452
 
@@ -384,10 +454,12 @@ namespace Private {
384
454
  * Breadcrumbs state.
385
455
  */
386
456
  export interface ICrumbsState {
387
- [key: string]: string | boolean;
457
+ [key: string]: string | boolean | number;
388
458
  path: string;
389
459
  hasPreferred: boolean;
390
460
  fullPath: boolean;
461
+ minimumLeftItems: number;
462
+ minimumRightItems: number;
391
463
  }
392
464
 
393
465
  /**
@@ -395,7 +467,6 @@ namespace Private {
395
467
  */
396
468
  export function updateCrumbs(
397
469
  breadcrumbs: ReadonlyArray<HTMLElement>,
398
- separators: ReadonlyArray<HTMLElement>,
399
470
  state: ICrumbsState
400
471
  ): void {
401
472
  const node = breadcrumbs[0].parentNode as HTMLElement;
@@ -408,48 +479,83 @@ namespace Private {
408
479
 
409
480
  if (state.hasPreferred) {
410
481
  node.appendChild(breadcrumbs[Crumb.Home]);
411
- node.appendChild(separators[0]);
482
+ node.appendChild(createCrumbSeparator());
412
483
  } else {
413
- node.appendChild(separators[0]);
484
+ node.appendChild(createCrumbSeparator());
414
485
  }
415
486
 
416
- const parts = state.path.split('/');
417
- if (!state.fullPath && parts.length > 2) {
418
- node.appendChild(breadcrumbs[Crumb.Ellipsis]);
419
- const grandParent = parts.slice(0, parts.length - 2).join('/');
420
- breadcrumbs[Crumb.Ellipsis].title = grandParent;
421
- node.appendChild(separators[1]);
422
- }
487
+ const parts = state.path.split('/').filter(part => part !== '');
488
+ if (!state.fullPath && parts.length > 0) {
489
+ const minimumLeftItems = state.minimumLeftItems;
490
+ const minimumRightItems = state.minimumRightItems;
491
+
492
+ // Check if we need ellipsis
493
+ if (parts.length > minimumLeftItems + minimumRightItems) {
494
+ // Add left items
495
+ for (let i = 0; i < minimumLeftItems; i++) {
496
+ const elemPath = parts.slice(0, i + 1).join('/');
497
+ const elem = createBreadcrumbElement(parts[i], elemPath);
498
+ node.appendChild(elem);
499
+ node.appendChild(createCrumbSeparator());
500
+ }
423
501
 
424
- if (state.path) {
425
- if (!state.fullPath) {
426
- if (parts.length >= 2) {
427
- breadcrumbs[Crumb.Parent].textContent = parts[parts.length - 2];
428
- node.appendChild(breadcrumbs[Crumb.Parent]);
429
- const parent = parts.slice(0, parts.length - 1).join('/');
430
- breadcrumbs[Crumb.Parent].title = parent;
431
- node.appendChild(separators[2]);
502
+ // Add ellipsis
503
+ node.appendChild(breadcrumbs[Crumb.Ellipsis]);
504
+ const hiddenStartIndex = minimumLeftItems;
505
+ const hiddenEndIndex = parts.length - minimumRightItems;
506
+ const hiddenParts = parts.slice(hiddenStartIndex, hiddenEndIndex);
507
+ const hiddenFolders = hiddenParts.join('/');
508
+ const hiddenPath =
509
+ hiddenParts.length > 0
510
+ ? parts.slice(0, hiddenEndIndex).join('/')
511
+ : parts.slice(0, minimumLeftItems).join('/');
512
+ breadcrumbs[Crumb.Ellipsis].title = hiddenFolders;
513
+ breadcrumbs[Crumb.Ellipsis].dataset.path = hiddenPath;
514
+ node.appendChild(createCrumbSeparator());
515
+
516
+ // Add right items
517
+ const rightStartIndex = parts.length - minimumRightItems;
518
+ for (let i = rightStartIndex; i < parts.length; i++) {
519
+ const elemPath = parts.slice(0, i + 1).join('/');
520
+ const elem = createBreadcrumbElement(parts[i], elemPath);
521
+ node.appendChild(elem);
522
+ node.appendChild(createCrumbSeparator());
432
523
  }
433
- breadcrumbs[Crumb.Current].textContent = parts[parts.length - 1];
434
- node.appendChild(breadcrumbs[Crumb.Current]);
435
- breadcrumbs[Crumb.Current].title = state.path;
436
- node.appendChild(separators[3]);
437
524
  } else {
438
525
  for (let i = 0; i < parts.length; i++) {
439
- const elem = document.createElement('span');
440
- elem.className = BREADCRUMB_ITEM_CLASS;
441
- elem.textContent = parts[i];
442
- const elemPath = `/${parts.slice(0, i + 1).join('/')}`;
443
- elem.title = elemPath;
526
+ const elemPath = parts.slice(0, i + 1).join('/');
527
+ const elem = createBreadcrumbElement(parts[i], elemPath);
444
528
  node.appendChild(elem);
445
- const separator = document.createElement('span');
446
- separator.textContent = '/';
447
- node.appendChild(separator);
529
+ node.appendChild(createCrumbSeparator());
448
530
  }
449
531
  }
532
+ } else if (state.fullPath && parts.length > 0) {
533
+ for (let i = 0; i < parts.length; i++) {
534
+ const elemPath = parts.slice(0, i + 1).join('/');
535
+ const elem = createBreadcrumbElement(parts[i], elemPath);
536
+ node.appendChild(elem);
537
+ const separator = document.createElement('span');
538
+ separator.textContent = '/';
539
+ node.appendChild(separator);
540
+ }
450
541
  }
451
542
  }
452
543
 
544
+ /**
545
+ * Create a breadcrumb element for a path part.
546
+ */
547
+ function createBreadcrumbElement(
548
+ pathPart: string,
549
+ fullPath: string
550
+ ): HTMLElement {
551
+ const elem = document.createElement('span');
552
+ elem.className = BREADCRUMB_ITEM_CLASS;
553
+ elem.textContent = pathPart;
554
+ elem.title = fullPath;
555
+ elem.dataset.path = fullPath;
556
+ return elem;
557
+ }
558
+
453
559
  /**
454
560
  * Create the breadcrumb nodes.
455
561
  */
@@ -460,15 +566,14 @@ namespace Private {
460
566
  title: PageConfig.getOption('serverRoot') || 'Jupyter Server Root',
461
567
  stylesheet: 'breadCrumb'
462
568
  });
569
+ home.dataset.path = '/';
570
+
463
571
  const ellipsis = ellipsesIcon.element({
464
- className: BREADCRUMB_ITEM_CLASS,
572
+ className: `${BREADCRUMB_ITEM_CLASS} ${BREADCRUMB_ELLIPSIS_CLASS}`,
465
573
  tag: 'span',
466
574
  stylesheet: 'breadCrumb'
467
575
  });
468
- const parent = document.createElement('span');
469
- parent.className = BREADCRUMB_ITEM_CLASS;
470
- const current = document.createElement('span');
471
- current.className = BREADCRUMB_ITEM_CLASS;
576
+
472
577
  const preferredPath = PageConfig.getOption('preferredPath');
473
578
  const path = preferredPath ? '/' + preferredPath : preferredPath;
474
579
  const preferred = preferredIcon.element({
@@ -477,24 +582,17 @@ namespace Private {
477
582
  title: path || 'Jupyter Preferred Path',
478
583
  stylesheet: 'breadCrumb'
479
584
  });
480
- return [home, ellipsis, parent, current, preferred];
585
+ preferred.dataset.path = path || '/';
586
+
587
+ return [home, ellipsis, preferred];
481
588
  }
482
589
 
483
590
  /**
484
591
  * Create the breadcrumb separator nodes.
485
592
  */
486
- export function createCrumbSeparators(): ReadonlyArray<HTMLElement> {
487
- const items: HTMLElement[] = [];
488
- // The maximum number of directories that will be shown in the crumbs
489
- const MAX_DIRECTORIES = 2;
490
-
491
- // Make separators for after each directory, one at the beginning, and one
492
- // after a possible ellipsis.
493
- for (let i = 0; i < MAX_DIRECTORIES + 2; i++) {
494
- const item = document.createElement('span');
495
- item.textContent = '/';
496
- items.push(item);
497
- }
498
- return items;
593
+ export function createCrumbSeparator(): HTMLElement {
594
+ const item = document.createElement('span');
595
+ item.textContent = '/';
596
+ return item;
499
597
  }
500
598
  }