@jupyterlab/filebrowser 4.5.0-alpha.4 → 4.5.0-beta.1

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