@jupyterlab/filebrowser 4.3.0-alpha.1 → 4.3.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/browser.d.ts +24 -4
- package/lib/browser.js +81 -4
- package/lib/browser.js.map +1 -1
- package/lib/listing.d.ts +129 -15
- package/lib/listing.js +574 -208
- package/lib/listing.js.map +1 -1
- package/lib/model.d.ts +2 -1
- package/lib/model.js +5 -4
- package/lib/model.js.map +1 -1
- package/package.json +11 -11
- package/src/browser.ts +106 -5
- package/src/listing.ts +791 -220
- package/src/model.ts +7 -4
- package/style/base.css +89 -41
package/lib/browser.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Contents } from '@jupyterlab/services';
|
|
2
|
+
import { IStateDB } from '@jupyterlab/statedb';
|
|
2
3
|
import { ITranslator } from '@jupyterlab/translation';
|
|
3
|
-
import { SidePanel } from '@jupyterlab/ui-components';
|
|
4
|
+
import { SidePanel, Toolbar } from '@jupyterlab/ui-components';
|
|
4
5
|
import { Panel } from '@lumino/widgets';
|
|
5
6
|
import { BreadCrumbs } from './crumbs';
|
|
6
7
|
import { DirListing } from './listing';
|
|
@@ -53,11 +54,21 @@ export declare class FileBrowser extends SidePanel {
|
|
|
53
54
|
*/
|
|
54
55
|
get showFileCheckboxes(): boolean;
|
|
55
56
|
set showFileCheckboxes(value: boolean);
|
|
57
|
+
/**
|
|
58
|
+
* Whether to show a text box to filter files by name.
|
|
59
|
+
*/
|
|
60
|
+
get showFileFilter(): boolean;
|
|
61
|
+
set showFileFilter(value: boolean);
|
|
56
62
|
/**
|
|
57
63
|
* Whether to sort notebooks above other files
|
|
58
64
|
*/
|
|
59
65
|
get sortNotebooksFirst(): boolean;
|
|
60
66
|
set sortNotebooksFirst(value: boolean);
|
|
67
|
+
/**
|
|
68
|
+
* Whether to allow single click files and directories
|
|
69
|
+
*/
|
|
70
|
+
get singleClickNavigation(): boolean;
|
|
71
|
+
set singleClickNavigation(value: boolean);
|
|
61
72
|
/**
|
|
62
73
|
* Create an iterator over the listing's selected items.
|
|
63
74
|
*
|
|
@@ -167,17 +178,21 @@ export declare class FileBrowser extends SidePanel {
|
|
|
167
178
|
* @returns the full drive path
|
|
168
179
|
*/
|
|
169
180
|
private _toDrivePath;
|
|
181
|
+
protected filterToolbar: Toolbar;
|
|
170
182
|
protected listing: DirListing;
|
|
171
183
|
protected crumbs: BreadCrumbs;
|
|
172
184
|
protected mainPanel: Panel;
|
|
173
|
-
private _manager;
|
|
174
185
|
private _directoryPending;
|
|
175
186
|
private _filePending;
|
|
187
|
+
private _fileFilterRef;
|
|
188
|
+
private _manager;
|
|
176
189
|
private _navigateToCurrentDirectory;
|
|
177
|
-
private
|
|
190
|
+
private _allowSingleClick;
|
|
191
|
+
private _showFileCheckboxes;
|
|
192
|
+
private _showFileFilter;
|
|
178
193
|
private _showFileSizeColumn;
|
|
179
194
|
private _showHiddenFiles;
|
|
180
|
-
private
|
|
195
|
+
private _showLastModifiedColumn;
|
|
181
196
|
private _sortNotebooksFirst;
|
|
182
197
|
}
|
|
183
198
|
/**
|
|
@@ -215,6 +230,11 @@ export declare namespace FileBrowser {
|
|
|
215
230
|
* The application language translator.
|
|
216
231
|
*/
|
|
217
232
|
translator?: ITranslator;
|
|
233
|
+
/**
|
|
234
|
+
* An optional state database. If provided, the widget will restore
|
|
235
|
+
* the columns sizes
|
|
236
|
+
*/
|
|
237
|
+
state?: IStateDB;
|
|
218
238
|
}
|
|
219
239
|
/**
|
|
220
240
|
* An options object for creating a file.
|
package/lib/browser.js
CHANGED
|
@@ -4,8 +4,9 @@ import { showErrorMessage } from '@jupyterlab/apputils';
|
|
|
4
4
|
import { PathExt } from '@jupyterlab/coreutils';
|
|
5
5
|
import { ServerConnection } from '@jupyterlab/services';
|
|
6
6
|
import { nullTranslator } from '@jupyterlab/translation';
|
|
7
|
-
import { SidePanel } from '@jupyterlab/ui-components';
|
|
7
|
+
import { FilenameSearcher, SidePanel, Toolbar } from '@jupyterlab/ui-components';
|
|
8
8
|
import { Panel } from '@lumino/widgets';
|
|
9
|
+
import { createRef } from 'react';
|
|
9
10
|
import { BreadCrumbs } from './crumbs';
|
|
10
11
|
import { DirListing } from './listing';
|
|
11
12
|
/**
|
|
@@ -24,10 +25,18 @@ const CRUMBS_CLASS = 'jp-FileBrowser-crumbs';
|
|
|
24
25
|
* The class name added to the filebrowser toolbar node.
|
|
25
26
|
*/
|
|
26
27
|
const TOOLBAR_CLASS = 'jp-FileBrowser-toolbar';
|
|
28
|
+
/**
|
|
29
|
+
* The class name added to the filebrowser filter toolbar node.
|
|
30
|
+
*/
|
|
31
|
+
const FILTER_TOOLBAR_CLASS = 'jp-FileBrowser-filterToolbar';
|
|
27
32
|
/**
|
|
28
33
|
* The class name added to the filebrowser listing node.
|
|
29
34
|
*/
|
|
30
35
|
const LISTING_CLASS = 'jp-FileBrowser-listing';
|
|
36
|
+
/**
|
|
37
|
+
* The class name added to the filebrowser filterbox node.
|
|
38
|
+
*/
|
|
39
|
+
const FILTERBOX_CLASS = 'jp-FileBrowser-filterBox';
|
|
31
40
|
/**
|
|
32
41
|
* A widget which hosts a file browser.
|
|
33
42
|
*
|
|
@@ -46,10 +55,13 @@ export class FileBrowser extends SidePanel {
|
|
|
46
55
|
super({ content: new Panel(), translator: options.translator });
|
|
47
56
|
this._directoryPending = null;
|
|
48
57
|
this._filePending = null;
|
|
49
|
-
this.
|
|
58
|
+
this._fileFilterRef = createRef();
|
|
59
|
+
this._allowSingleClick = false;
|
|
60
|
+
this._showFileCheckboxes = false;
|
|
61
|
+
this._showFileFilter = false;
|
|
50
62
|
this._showFileSizeColumn = false;
|
|
51
63
|
this._showHiddenFiles = false;
|
|
52
|
-
this.
|
|
64
|
+
this._showLastModifiedColumn = true;
|
|
53
65
|
this._sortNotebooksFirst = false;
|
|
54
66
|
this.addClass(FILE_BROWSER_CLASS);
|
|
55
67
|
this.toolbar.addClass(TOOLBAR_CLASS);
|
|
@@ -66,18 +78,40 @@ export class FileBrowser extends SidePanel {
|
|
|
66
78
|
this.mainPanel.title.label = this._trans.__('File Browser');
|
|
67
79
|
this.crumbs = new BreadCrumbs({ model, translator });
|
|
68
80
|
this.crumbs.addClass(CRUMBS_CLASS);
|
|
81
|
+
// The filter toolbar appears immediately below the breadcrumbs and above the directory listing.
|
|
82
|
+
const searcher = FilenameSearcher({
|
|
83
|
+
updateFilter: (filterFn, query) => {
|
|
84
|
+
this.model.setFilter(value => {
|
|
85
|
+
return filterFn(value.name.toLowerCase());
|
|
86
|
+
});
|
|
87
|
+
},
|
|
88
|
+
useFuzzyFilter: true,
|
|
89
|
+
placeholder: this._trans.__('Filter files by name'),
|
|
90
|
+
forceRefresh: false,
|
|
91
|
+
showIcon: false,
|
|
92
|
+
inputRef: this._fileFilterRef
|
|
93
|
+
});
|
|
94
|
+
searcher.addClass(FILTERBOX_CLASS);
|
|
95
|
+
this.filterToolbar = new Toolbar();
|
|
96
|
+
this.filterToolbar.addClass(FILTER_TOOLBAR_CLASS);
|
|
97
|
+
this.filterToolbar.addItem('fileNameSearcher', searcher);
|
|
98
|
+
this.filterToolbar.setHidden(!this.showFileFilter);
|
|
69
99
|
this.listing = this.createDirListing({
|
|
70
100
|
model,
|
|
71
101
|
renderer,
|
|
72
|
-
translator
|
|
102
|
+
translator,
|
|
103
|
+
state: options.state
|
|
73
104
|
});
|
|
74
105
|
this.listing.addClass(LISTING_CLASS);
|
|
75
106
|
this.mainPanel.addWidget(this.crumbs);
|
|
107
|
+
this.mainPanel.addWidget(this.filterToolbar);
|
|
76
108
|
this.mainPanel.addWidget(this.listing);
|
|
77
109
|
this.addWidget(this.mainPanel);
|
|
78
110
|
if (options.restore !== false) {
|
|
79
111
|
void model.restore(this.id);
|
|
80
112
|
}
|
|
113
|
+
// restore listing regardless of the restore option
|
|
114
|
+
void this.listing.restore(this.id);
|
|
81
115
|
}
|
|
82
116
|
/**
|
|
83
117
|
* Whether to show active file in file browser
|
|
@@ -152,6 +186,34 @@ export class FileBrowser extends SidePanel {
|
|
|
152
186
|
console.warn('Listing does not support toggling column visibility');
|
|
153
187
|
}
|
|
154
188
|
}
|
|
189
|
+
/**
|
|
190
|
+
* Whether to show a text box to filter files by name.
|
|
191
|
+
*/
|
|
192
|
+
get showFileFilter() {
|
|
193
|
+
return this._showFileFilter;
|
|
194
|
+
}
|
|
195
|
+
set showFileFilter(value) {
|
|
196
|
+
var _a;
|
|
197
|
+
// If the old value was true and the new value is false, clear the filter
|
|
198
|
+
const oldValue = this.showFileFilter;
|
|
199
|
+
if (oldValue && !value) {
|
|
200
|
+
// Clear the search box input
|
|
201
|
+
if (this._fileFilterRef.current) {
|
|
202
|
+
this._fileFilterRef.current.value = '';
|
|
203
|
+
}
|
|
204
|
+
// Set a filter that doesn't exclude anything.
|
|
205
|
+
this.model.setFilter(value => {
|
|
206
|
+
return {};
|
|
207
|
+
});
|
|
208
|
+
this.model.refresh().catch(console.warn);
|
|
209
|
+
}
|
|
210
|
+
this._showFileFilter = value;
|
|
211
|
+
// Update widget visibility
|
|
212
|
+
this.filterToolbar.setHidden(!this.showFileFilter);
|
|
213
|
+
if (this.showFileFilter) {
|
|
214
|
+
(_a = this._fileFilterRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
215
|
+
}
|
|
216
|
+
}
|
|
155
217
|
/**
|
|
156
218
|
* Whether to sort notebooks above other files
|
|
157
219
|
*/
|
|
@@ -167,6 +229,21 @@ export class FileBrowser extends SidePanel {
|
|
|
167
229
|
console.warn('Listing does not support sorting notebooks first');
|
|
168
230
|
}
|
|
169
231
|
}
|
|
232
|
+
/**
|
|
233
|
+
* Whether to allow single click files and directories
|
|
234
|
+
*/
|
|
235
|
+
get singleClickNavigation() {
|
|
236
|
+
return this._allowSingleClick;
|
|
237
|
+
}
|
|
238
|
+
set singleClickNavigation(value) {
|
|
239
|
+
if (this.listing.setAllowSingleClickNavigation) {
|
|
240
|
+
this.listing.setAllowSingleClickNavigation(value);
|
|
241
|
+
this._allowSingleClick = value;
|
|
242
|
+
}
|
|
243
|
+
else {
|
|
244
|
+
console.warn('Listing does not support single click navigation');
|
|
245
|
+
}
|
|
246
|
+
}
|
|
170
247
|
/**
|
|
171
248
|
* Create an iterator over the listing's selected items.
|
|
172
249
|
*
|
package/lib/browser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,2DAA2D;AAE3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAEhD,OAAO,EAAY,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"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"}
|
package/lib/listing.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Time } from '@jupyterlab/coreutils';
|
|
2
2
|
import { DocumentRegistry } from '@jupyterlab/docregistry';
|
|
3
3
|
import { Contents } from '@jupyterlab/services';
|
|
4
|
+
import { IStateDB } from '@jupyterlab/statedb';
|
|
4
5
|
import { ITranslator, TranslationBundle } from '@jupyterlab/translation';
|
|
5
6
|
import { Drag } from '@lumino/dragdrop';
|
|
6
7
|
import { Message } from '@lumino/messaging';
|
|
@@ -107,6 +108,14 @@ export declare class DirListing extends Widget {
|
|
|
107
108
|
* Download the currently selected item(s).
|
|
108
109
|
*/
|
|
109
110
|
download(): Promise<void>;
|
|
111
|
+
/**
|
|
112
|
+
* Restore the state of the file browser listing.
|
|
113
|
+
*
|
|
114
|
+
* @param id - The unique ID that is used to construct a state database key.
|
|
115
|
+
*
|
|
116
|
+
*/
|
|
117
|
+
restore(id: string): Promise<void>;
|
|
118
|
+
private _stateColumnsKey;
|
|
110
119
|
/**
|
|
111
120
|
* Shut down kernels on the applicable currently selected items.
|
|
112
121
|
*
|
|
@@ -191,20 +200,38 @@ export declare class DirListing extends Widget {
|
|
|
191
200
|
* A message handler invoked on an `'after-show'` message.
|
|
192
201
|
*/
|
|
193
202
|
protected onAfterShow(msg: Message): void;
|
|
203
|
+
/**
|
|
204
|
+
* Update the modified column's size
|
|
205
|
+
*/
|
|
194
206
|
private _updateModifiedSize;
|
|
207
|
+
/**
|
|
208
|
+
* Rerender item nodes' modified dates, if the modified style has changed.
|
|
209
|
+
*/
|
|
210
|
+
private _updateModifiedStyleAndSize;
|
|
211
|
+
/**
|
|
212
|
+
* Update only the modified dates.
|
|
213
|
+
*/
|
|
195
214
|
protected updateModified(items: Contents.IModel[], nodes: HTMLElement[]): void;
|
|
196
|
-
protected updateNodes(items: Contents.IModel[], nodes: HTMLElement[]): void;
|
|
215
|
+
protected updateNodes(items: Contents.IModel[], nodes: HTMLElement[], sizeOnly?: boolean): void;
|
|
197
216
|
/**
|
|
198
217
|
* A handler invoked on an `'update-request'` message.
|
|
199
218
|
*/
|
|
200
219
|
protected onUpdateRequest(msg: Message): void;
|
|
201
220
|
onResize(msg: Widget.ResizeMessage): void;
|
|
202
221
|
setColumnVisibility(name: DirListing.ToggleableColumn, visible: boolean): void;
|
|
222
|
+
private _updateColumnSizes;
|
|
223
|
+
private get _visibleColumns();
|
|
224
|
+
private _setColumnSize;
|
|
203
225
|
/**
|
|
204
226
|
* Update the setting to sort notebooks above files.
|
|
205
227
|
* This sorts the items again if the internal value is modified.
|
|
206
228
|
*/
|
|
207
229
|
setNotebooksFirstSorting(isEnabled: boolean): void;
|
|
230
|
+
/**
|
|
231
|
+
* Update the setting to allow single click navigation.
|
|
232
|
+
* This enables opening files/directories with a single click.
|
|
233
|
+
*/
|
|
234
|
+
setAllowSingleClickNavigation(isEnabled: boolean): void;
|
|
208
235
|
/**
|
|
209
236
|
* Would this click (or other event type) hit the checkbox by default?
|
|
210
237
|
*/
|
|
@@ -268,6 +295,10 @@ export declare class DirListing extends Widget {
|
|
|
268
295
|
* Handle the `drop` event for the widget.
|
|
269
296
|
*/
|
|
270
297
|
protected evtNativeDrop(event: DragEvent): void;
|
|
298
|
+
/**
|
|
299
|
+
* Signal emitted on when all files were uploaded after native drag.
|
|
300
|
+
*/
|
|
301
|
+
protected get allUploaded(): ISignal<DirListing, void>;
|
|
271
302
|
/**
|
|
272
303
|
* Handle the `'lm-dragenter'` event for the widget.
|
|
273
304
|
*/
|
|
@@ -356,6 +387,7 @@ export declare class DirListing extends Widget {
|
|
|
356
387
|
private _onItemOpened;
|
|
357
388
|
private _drag;
|
|
358
389
|
private _dragData;
|
|
390
|
+
private _resizeData;
|
|
359
391
|
private _selectTimer;
|
|
360
392
|
private _isCut;
|
|
361
393
|
private _prevPath;
|
|
@@ -371,10 +403,15 @@ export declare class DirListing extends Widget {
|
|
|
371
403
|
private _inRename;
|
|
372
404
|
private _isDirty;
|
|
373
405
|
private _hiddenColumns;
|
|
406
|
+
private _columnSizes;
|
|
374
407
|
private _sortNotebooksFirst;
|
|
408
|
+
private _allowSingleClick;
|
|
375
409
|
private _focusIndex;
|
|
376
410
|
private _modifiedWidth;
|
|
377
411
|
private _modifiedStyle;
|
|
412
|
+
private _allUploaded;
|
|
413
|
+
private _width;
|
|
414
|
+
private _state;
|
|
378
415
|
}
|
|
379
416
|
/**
|
|
380
417
|
* The namespace for the `DirListing` class statics.
|
|
@@ -383,7 +420,7 @@ export declare namespace DirListing {
|
|
|
383
420
|
/**
|
|
384
421
|
* An options object for initializing a file browser directory listing.
|
|
385
422
|
*/
|
|
386
|
-
interface IOptions {
|
|
423
|
+
export interface IOptions {
|
|
387
424
|
/**
|
|
388
425
|
* A file browser model instance.
|
|
389
426
|
*/
|
|
@@ -398,11 +435,16 @@ export declare namespace DirListing {
|
|
|
398
435
|
* A language translator.
|
|
399
436
|
*/
|
|
400
437
|
translator?: ITranslator;
|
|
438
|
+
/**
|
|
439
|
+
* An optional state database. If provided, the widget will restore
|
|
440
|
+
* the columns sizes
|
|
441
|
+
*/
|
|
442
|
+
state?: IStateDB;
|
|
401
443
|
}
|
|
402
444
|
/**
|
|
403
445
|
* A sort state.
|
|
404
446
|
*/
|
|
405
|
-
interface ISortState {
|
|
447
|
+
export interface ISortState {
|
|
406
448
|
/**
|
|
407
449
|
* The direction of sort.
|
|
408
450
|
*/
|
|
@@ -410,12 +452,20 @@ export declare namespace DirListing {
|
|
|
410
452
|
/**
|
|
411
453
|
* The sort key.
|
|
412
454
|
*/
|
|
413
|
-
key:
|
|
455
|
+
key: SortableColumn;
|
|
414
456
|
}
|
|
415
457
|
/**
|
|
416
458
|
* Toggleable columns.
|
|
417
459
|
*/
|
|
418
|
-
type ToggleableColumn = 'last_modified' | 'is_selected' | 'file_size';
|
|
460
|
+
export type ToggleableColumn = 'last_modified' | 'is_selected' | 'file_size';
|
|
461
|
+
/**
|
|
462
|
+
* Resizable columns.
|
|
463
|
+
*/
|
|
464
|
+
export type ResizableColumn = 'name' | 'last_modified' | 'file_size';
|
|
465
|
+
/**
|
|
466
|
+
* Sortable columns.
|
|
467
|
+
*/
|
|
468
|
+
export type SortableColumn = 'name' | 'last_modified' | 'file_size';
|
|
419
469
|
/**
|
|
420
470
|
* A file contents model thunk.
|
|
421
471
|
*
|
|
@@ -423,7 +473,7 @@ export declare namespace DirListing {
|
|
|
423
473
|
* To get the contents, call and await the `withContent`
|
|
424
474
|
* method.
|
|
425
475
|
*/
|
|
426
|
-
interface IContentsThunk {
|
|
476
|
+
export interface IContentsThunk {
|
|
427
477
|
/**
|
|
428
478
|
* The contents model.
|
|
429
479
|
*/
|
|
@@ -436,7 +486,7 @@ export declare namespace DirListing {
|
|
|
436
486
|
/**
|
|
437
487
|
* The render interface for file browser listing options.
|
|
438
488
|
*/
|
|
439
|
-
interface IRenderer {
|
|
489
|
+
export interface IRenderer {
|
|
440
490
|
/**
|
|
441
491
|
* Create the DOM node for a dir listing.
|
|
442
492
|
*/
|
|
@@ -446,7 +496,7 @@ export declare namespace DirListing {
|
|
|
446
496
|
*
|
|
447
497
|
* @param node - The header node to populate.
|
|
448
498
|
*/
|
|
449
|
-
populateHeaderNode(node: HTMLElement, translator?: ITranslator, hiddenColumns?: Set<DirListing.ToggleableColumn>): void;
|
|
499
|
+
populateHeaderNode(node: HTMLElement, translator?: ITranslator, hiddenColumns?: Set<DirListing.ToggleableColumn>, columnsSizes?: Record<IColumn['id'], number | null>): void;
|
|
450
500
|
/**
|
|
451
501
|
* Handle a header click.
|
|
452
502
|
*
|
|
@@ -462,7 +512,7 @@ export declare namespace DirListing {
|
|
|
462
512
|
*
|
|
463
513
|
* @returns A new DOM node to use as a content item.
|
|
464
514
|
*/
|
|
465
|
-
createItemNode(hiddenColumns?: Set<DirListing.ToggleableColumn>): HTMLElement;
|
|
515
|
+
createItemNode(hiddenColumns?: Set<DirListing.ToggleableColumn>, columnsSizes?: Record<IColumn['id'], number | null>): HTMLElement;
|
|
466
516
|
/**
|
|
467
517
|
* Update an item's last modified date.
|
|
468
518
|
*
|
|
@@ -484,7 +534,11 @@ export declare namespace DirListing {
|
|
|
484
534
|
*
|
|
485
535
|
* @param fileType - The file type of the item, if applicable.
|
|
486
536
|
*/
|
|
487
|
-
updateItemNode(node: HTMLElement, model: Contents.IModel, fileType?: DocumentRegistry.IFileType, translator?: ITranslator, hiddenColumns?: Set<DirListing.ToggleableColumn>, selected?: boolean, modifiedStyle?: Time.HumanStyle): void;
|
|
537
|
+
updateItemNode(node: HTMLElement, model: Contents.IModel, fileType?: DocumentRegistry.IFileType, translator?: ITranslator, hiddenColumns?: Set<DirListing.ToggleableColumn>, selected?: boolean, modifiedStyle?: Time.HumanStyle, columnsSizes?: Record<IColumn['id'], number | null>): void;
|
|
538
|
+
/**
|
|
539
|
+
* Update size of item nodes, assuming that model has not changed.
|
|
540
|
+
*/
|
|
541
|
+
updateItemSize?(node: HTMLElement, model: Contents.IModel, modifiedStyle?: Time.HumanStyle, columnsSizes?: Record<IColumn['id'], number | null>): void;
|
|
488
542
|
/**
|
|
489
543
|
* Get the node containing the file name.
|
|
490
544
|
*
|
|
@@ -519,10 +573,52 @@ export declare namespace DirListing {
|
|
|
519
573
|
*/
|
|
520
574
|
createDragImage(node: HTMLElement, count: number, trans: TranslationBundle, fileType?: DocumentRegistry.IFileType): HTMLElement;
|
|
521
575
|
}
|
|
576
|
+
interface IBaseColumn {
|
|
577
|
+
/**
|
|
578
|
+
* Name of the header class, must be unique among other columns.
|
|
579
|
+
*/
|
|
580
|
+
className: string;
|
|
581
|
+
/**
|
|
582
|
+
* Name of the item class, must be unique among other columns.
|
|
583
|
+
*/
|
|
584
|
+
itemClassName: string;
|
|
585
|
+
/**
|
|
586
|
+
* Minimum size the column should occupy.
|
|
587
|
+
*/
|
|
588
|
+
minWidth: number;
|
|
589
|
+
}
|
|
590
|
+
interface IFixedColumn extends IBaseColumn {
|
|
591
|
+
id: 'is_selected';
|
|
592
|
+
resizable: false;
|
|
593
|
+
sortable: false;
|
|
594
|
+
}
|
|
595
|
+
/**
|
|
596
|
+
* Sortable column.
|
|
597
|
+
*/
|
|
598
|
+
export interface ISortableColumn extends IBaseColumn {
|
|
599
|
+
id: SortableColumn;
|
|
600
|
+
sortable: true;
|
|
601
|
+
caretSide: 'left' | 'right';
|
|
602
|
+
}
|
|
603
|
+
/**
|
|
604
|
+
* Resizable column.
|
|
605
|
+
*/
|
|
606
|
+
export interface IResizableColumn extends IBaseColumn {
|
|
607
|
+
id: ResizableColumn;
|
|
608
|
+
resizable: true;
|
|
609
|
+
}
|
|
610
|
+
/**
|
|
611
|
+
* Columns types supported by DirListing.
|
|
612
|
+
*/
|
|
613
|
+
export type IColumn = IFixedColumn | ISortableColumn | IResizableColumn | (ISortableColumn & IResizableColumn);
|
|
614
|
+
/**
|
|
615
|
+
* Column definitions.
|
|
616
|
+
*/
|
|
617
|
+
export const columns: IColumn[];
|
|
522
618
|
/**
|
|
523
619
|
* The default implementation of an `IRenderer`.
|
|
524
620
|
*/
|
|
525
|
-
class Renderer implements IRenderer {
|
|
621
|
+
export class Renderer implements IRenderer {
|
|
526
622
|
/**
|
|
527
623
|
* Create the DOM node for a dir listing.
|
|
528
624
|
*/
|
|
@@ -532,7 +628,7 @@ export declare namespace DirListing {
|
|
|
532
628
|
*
|
|
533
629
|
* @param node - The header node to populate.
|
|
534
630
|
*/
|
|
535
|
-
populateHeaderNode(node: HTMLElement, translator?: ITranslator, hiddenColumns?: Set<DirListing.ToggleableColumn>): void;
|
|
631
|
+
populateHeaderNode(node: HTMLElement, translator?: ITranslator, hiddenColumns?: Set<DirListing.ToggleableColumn>, columnsSizes?: Record<DirListing.IColumn['id'], number | null>): void;
|
|
536
632
|
/**
|
|
537
633
|
* Handle a header click.
|
|
538
634
|
*
|
|
@@ -548,7 +644,7 @@ export declare namespace DirListing {
|
|
|
548
644
|
*
|
|
549
645
|
* @returns A new DOM node to use as a content item.
|
|
550
646
|
*/
|
|
551
|
-
createItemNode(hiddenColumns?: Set<DirListing.ToggleableColumn>): HTMLElement;
|
|
647
|
+
createItemNode(hiddenColumns?: Set<DirListing.ToggleableColumn>, columnsSizes?: Record<DirListing.IColumn['id'], number | null>): HTMLElement;
|
|
552
648
|
/**
|
|
553
649
|
* Creates a node containing a checkbox.
|
|
554
650
|
*
|
|
@@ -587,7 +683,11 @@ export declare namespace DirListing {
|
|
|
587
683
|
* @param fileType - The file type of the item, if applicable.
|
|
588
684
|
*
|
|
589
685
|
*/
|
|
590
|
-
updateItemNode(node: HTMLElement, model: Contents.IModel, fileType?: DocumentRegistry.IFileType, translator?: ITranslator, hiddenColumns?: Set<DirListing.ToggleableColumn>, selected?: boolean, modifiedStyle?: Time.HumanStyle): void;
|
|
686
|
+
updateItemNode(node: HTMLElement, model: Contents.IModel, fileType?: DocumentRegistry.IFileType, translator?: ITranslator, hiddenColumns?: Set<DirListing.ToggleableColumn>, selected?: boolean, modifiedStyle?: Time.HumanStyle, columnsSizes?: Record<DirListing.IColumn['id'], number | null>): void;
|
|
687
|
+
/**
|
|
688
|
+
* Update size of item nodes, assuming that model has not changed.
|
|
689
|
+
*/
|
|
690
|
+
updateItemSize(node: HTMLElement, model: Contents.IModel, modifiedStyle?: Time.HumanStyle, columnsSizes?: Record<DirListing.IColumn['id'], number | null>): void;
|
|
591
691
|
/**
|
|
592
692
|
* Get the node containing the file name.
|
|
593
693
|
*
|
|
@@ -617,6 +717,15 @@ export declare namespace DirListing {
|
|
|
617
717
|
* @returns An element to use as the drag image.
|
|
618
718
|
*/
|
|
619
719
|
createDragImage(node: HTMLElement, count: number, trans: TranslationBundle, fileType?: DocumentRegistry.IFileType): HTMLElement;
|
|
720
|
+
/**
|
|
721
|
+
* Factories for individual parts of the item.
|
|
722
|
+
*/
|
|
723
|
+
protected itemFactories: {
|
|
724
|
+
name: () => HTMLSpanElement;
|
|
725
|
+
last_modified: () => HTMLSpanElement;
|
|
726
|
+
file_size: () => HTMLSpanElement;
|
|
727
|
+
is_selected: () => HTMLElement;
|
|
728
|
+
};
|
|
620
729
|
/**
|
|
621
730
|
* Create a node for a header item.
|
|
622
731
|
*/
|
|
@@ -625,9 +734,14 @@ export declare namespace DirListing {
|
|
|
625
734
|
* Create a node for a header item with multiple sizes.
|
|
626
735
|
*/
|
|
627
736
|
private _createHeaderItemNodeWithSizes;
|
|
737
|
+
/**
|
|
738
|
+
* Register of most recent arguments for last modified column update.
|
|
739
|
+
*/
|
|
740
|
+
private _modifiedColumnLastUpdate;
|
|
628
741
|
}
|
|
629
742
|
/**
|
|
630
743
|
* The default `IRenderer` instance.
|
|
631
744
|
*/
|
|
632
|
-
const defaultRenderer: Renderer;
|
|
745
|
+
export const defaultRenderer: Renderer;
|
|
746
|
+
export {};
|
|
633
747
|
}
|