@jupyterlab/filebrowser 4.5.0-alpha.0 → 4.5.0-alpha.2

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
@@ -2,6 +2,7 @@ import { Contents } from '@jupyterlab/services';
2
2
  import { IStateDB } from '@jupyterlab/statedb';
3
3
  import { ITranslator } from '@jupyterlab/translation';
4
4
  import { SidePanel, Toolbar } from '@jupyterlab/ui-components';
5
+ import { ISignal } from '@lumino/signaling';
5
6
  import { Panel } from '@lumino/widgets';
6
7
  import { BreadCrumbs } from './crumbs';
7
8
  import { DirListing } from './listing';
@@ -69,12 +70,21 @@ export declare class FileBrowser extends SidePanel {
69
70
  */
70
71
  get singleClickNavigation(): boolean;
71
72
  set singleClickNavigation(value: boolean);
73
+ /**
74
+ * Whether to allow upload of files.
75
+ */
76
+ get allowFileUploads(): boolean;
77
+ set allowFileUploads(value: boolean);
72
78
  /**
73
79
  * Create an iterator over the listing's selected items.
74
80
  *
75
81
  * @returns A new iterator over the listing's selected items.
76
82
  */
77
83
  selectedItems(): IterableIterator<Contents.IModel>;
84
+ /**
85
+ * A signal emitted when the selection changes in the file browser.
86
+ */
87
+ get selectionChanged(): ISignal<this, void>;
78
88
  /**
79
89
  * Select an item by name.
80
90
  *
@@ -123,6 +133,10 @@ export declare class FileBrowser extends SidePanel {
123
133
  * @returns A promise that resolves when the operation is complete.
124
134
  */
125
135
  duplicate(): Promise<void>;
136
+ /**
137
+ * Select all listing items.
138
+ */
139
+ selectAll(): Promise<void>;
126
140
  /**
127
141
  * Download the currently selected item(s).
128
142
  */
@@ -194,6 +208,8 @@ export declare class FileBrowser extends SidePanel {
194
208
  private _showHiddenFiles;
195
209
  private _showLastModifiedColumn;
196
210
  private _sortNotebooksFirst;
211
+ private _allowFileUploads;
212
+ private _selectionChanged;
197
213
  }
198
214
  /**
199
215
  * The namespace for the `FileBrowser` class statics.
package/lib/browser.js CHANGED
@@ -5,6 +5,7 @@ import { PathExt } from '@jupyterlab/coreutils';
5
5
  import { ServerConnection } from '@jupyterlab/services';
6
6
  import { nullTranslator } from '@jupyterlab/translation';
7
7
  import { FilenameSearcher, SidePanel, Toolbar } from '@jupyterlab/ui-components';
8
+ import { Signal } from '@lumino/signaling';
8
9
  import { Panel } from '@lumino/widgets';
9
10
  import { createRef } from 'react';
10
11
  import { BreadCrumbs } from './crumbs';
@@ -63,6 +64,8 @@ export class FileBrowser extends SidePanel {
63
64
  this._showHiddenFiles = false;
64
65
  this._showLastModifiedColumn = true;
65
66
  this._sortNotebooksFirst = false;
67
+ this._allowFileUploads = true;
68
+ this._selectionChanged = new Signal(this);
66
69
  this.addClass(FILE_BROWSER_CLASS);
67
70
  this.toolbar.addClass(TOOLBAR_CLASS);
68
71
  this.id = options.id;
@@ -105,6 +108,9 @@ export class FileBrowser extends SidePanel {
105
108
  state: options.state
106
109
  });
107
110
  this.listing.addClass(LISTING_CLASS);
111
+ this.listing.selectionChanged.connect(() => {
112
+ this._selectionChanged.emit();
113
+ });
108
114
  this.mainPanel.addWidget(this.crumbs);
109
115
  this.mainPanel.addWidget(this.filterToolbar);
110
116
  this.mainPanel.addWidget(this.listing);
@@ -246,6 +252,22 @@ export class FileBrowser extends SidePanel {
246
252
  console.warn('Listing does not support single click navigation');
247
253
  }
248
254
  }
255
+ /**
256
+ * Whether to allow upload of files.
257
+ */
258
+ get allowFileUploads() {
259
+ return this._allowFileUploads;
260
+ }
261
+ set allowFileUploads(value) {
262
+ this.model.allowFileUploads = value;
263
+ if (this.listing.setAllowDragDropUpload) {
264
+ this.listing.setAllowDragDropUpload(value);
265
+ this._allowFileUploads = value;
266
+ }
267
+ else {
268
+ console.warn('Listing does not support setting upload');
269
+ }
270
+ }
249
271
  /**
250
272
  * Create an iterator over the listing's selected items.
251
273
  *
@@ -254,6 +276,12 @@ export class FileBrowser extends SidePanel {
254
276
  selectedItems() {
255
277
  return this.listing.selectedItems();
256
278
  }
279
+ /**
280
+ * A signal emitted when the selection changes in the file browser.
281
+ */
282
+ get selectionChanged() {
283
+ return this._selectionChanged;
284
+ }
257
285
  /**
258
286
  * Select an item by name.
259
287
  *
@@ -363,6 +391,12 @@ export class FileBrowser extends SidePanel {
363
391
  duplicate() {
364
392
  return this.listing.duplicate();
365
393
  }
394
+ /**
395
+ * Select all listing items.
396
+ */
397
+ selectAll() {
398
+ return this.listing.selectAll();
399
+ }
366
400
  /**
367
401
  * Download the currently selected item(s).
368
402
  */
@@ -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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"}
@@ -0,0 +1,4 @@
1
+ import JSDOMEnvironment from 'jest-environment-jsdom';
2
+ export default class FixJSDOMEnvironment extends JSDOMEnvironment {
3
+ constructor(...args: ConstructorParameters<typeof JSDOMEnvironment>);
4
+ }
@@ -0,0 +1,18 @@
1
+ /*
2
+ * Copyright (c) Jupyter Development Team.
3
+ * Distributed under the terms of the Modified BSD License.
4
+ */
5
+ // From: https://github.com/jsdom/jsdom/issues/1724#issuecomment-1446858041
6
+ // Mostly the same as in @jupyterlab/testing, but using jsdom version of `File`
7
+ // so that it is compatible with `FileReader` from jsdom.
8
+ import JSDOMEnvironment from 'jest-environment-jsdom';
9
+ export default class FixJSDOMEnvironment extends JSDOMEnvironment {
10
+ constructor(...args) {
11
+ super(...args);
12
+ this.global.fetch = fetch;
13
+ this.global.Headers = Headers;
14
+ this.global.Request = Request;
15
+ this.global.Response = Response;
16
+ }
17
+ }
18
+ //# sourceMappingURL=jest-env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jest-env.js","sourceRoot":"","sources":["../src/jest-env.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,2EAA2E;AAC3E,+EAA+E;AAC/E,yDAAyD;AAEzD,OAAO,gBAAgB,MAAM,wBAAwB,CAAC;AAEtD,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,gBAAgB;IAC/D,YAAY,GAAG,IAAoD;QACjE,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;QAEf,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAClC,CAAC;CACF"}
package/lib/listing.d.ts CHANGED
@@ -56,6 +56,10 @@ export declare class DirListing extends Widget {
56
56
  * A signal fired when an item is opened.
57
57
  */
58
58
  get onItemOpened(): ISignal<DirListing, Contents.IModel>;
59
+ /**
60
+ * A signal fired when the selection changes.
61
+ */
62
+ get selectionChanged(): ISignal<DirListing, void>;
59
63
  /**
60
64
  * Create an iterator over the listing's selected items.
61
65
  *
@@ -104,6 +108,10 @@ export declare class DirListing extends Widget {
104
108
  * @returns A promise that resolves when the operation is complete.
105
109
  */
106
110
  duplicate(): Promise<void>;
111
+ /**
112
+ * Select all listing items in the current directory.
113
+ */
114
+ selectAll(): Promise<void>;
107
115
  /**
108
116
  * Download the currently selected item(s).
109
117
  */
@@ -157,7 +165,7 @@ export declare class DirListing extends Widget {
157
165
  /**
158
166
  * Clear the selected items.
159
167
  */
160
- clearSelectedItems(): void;
168
+ clearSelectedItems(emit?: boolean): void;
161
169
  /**
162
170
  * Select an item by name.
163
171
  *
@@ -234,6 +242,11 @@ export declare class DirListing extends Widget {
234
242
  * This enables opening files/directories with a single click.
235
243
  */
236
244
  setAllowSingleClickNavigation(isEnabled: boolean): void;
245
+ /**
246
+ * Update the setting to allow drag and drop upload.
247
+ * This enables uploading files via drag and drop.
248
+ */
249
+ setAllowDragDropUpload(isEnabled: boolean): void;
237
250
  /**
238
251
  * Would this click (or other event type) hit the checkbox by default?
239
252
  */
@@ -387,6 +400,7 @@ export declare class DirListing extends Widget {
387
400
  private _sortedItems;
388
401
  private _sortState;
389
402
  private _onItemOpened;
403
+ private _selectionChanged;
390
404
  private _drag;
391
405
  private _dragData;
392
406
  private _resizeData;
@@ -408,6 +422,7 @@ export declare class DirListing extends Widget {
408
422
  private _columnSizes;
409
423
  private _sortNotebooksFirst;
410
424
  private _allowSingleClick;
425
+ private _allowDragDropUpload;
411
426
  private _focusIndex;
412
427
  private _modifiedWidth;
413
428
  private _modifiedStyle;
@@ -447,6 +462,11 @@ export declare namespace DirListing {
447
462
  * the columns sizes
448
463
  */
449
464
  state?: IStateDB;
465
+ /**
466
+ * Whether to allow drag and drop upload of files.
467
+ * The default is `true`.
468
+ */
469
+ allowDragDropUpload?: boolean;
450
470
  }
451
471
  /**
452
472
  * A sort state.
@@ -759,3 +779,7 @@ export declare namespace DirListing {
759
779
  export const defaultRenderer: Renderer;
760
780
  export {};
761
781
  }
782
+ /**
783
+ * Format bytes to human readable string.
784
+ */
785
+ export declare function formatFileSize(bytes: number, decimalPoint: number, k: number): string;
package/lib/listing.js CHANGED
@@ -162,6 +162,7 @@ export class DirListing extends Widget {
162
162
  * @param options The constructor options
163
163
  */
164
164
  constructor(options) {
165
+ var _a;
165
166
  super({
166
167
  node: (options.renderer || DirListing.defaultRenderer).createNode()
167
168
  });
@@ -172,6 +173,7 @@ export class DirListing extends Widget {
172
173
  key: 'name'
173
174
  };
174
175
  this._onItemOpened = new Signal(this);
176
+ this._selectionChanged = new Signal(this);
175
177
  this._drag = null;
176
178
  this._dragData = null;
177
179
  this._resizeData = null;
@@ -194,6 +196,7 @@ export class DirListing extends Widget {
194
196
  };
195
197
  this._sortNotebooksFirst = false;
196
198
  this._allowSingleClick = false;
199
+ this._allowDragDropUpload = true;
197
200
  // _focusIndex should never be set outside the range [0, this._items.length - 1]
198
201
  this._focusIndex = 0;
199
202
  this._allUploaded = new Signal(this);
@@ -216,6 +219,7 @@ export class DirListing extends Widget {
216
219
  this._manager = this._model.manager;
217
220
  this._renderer = options.renderer || DirListing.defaultRenderer;
218
221
  this._state = options.state || null;
222
+ this._allowDragDropUpload = (_a = options.allowDragDropUpload) !== null && _a !== void 0 ? _a : true;
219
223
  // Get the width of the "modified" column
220
224
  this._updateModifiedSize(this.node);
221
225
  const headerNode = DOMUtils.findElement(this.node, HEADER_CLASS);
@@ -279,6 +283,12 @@ export class DirListing extends Widget {
279
283
  get onItemOpened() {
280
284
  return this._onItemOpened;
281
285
  }
286
+ /**
287
+ * A signal fired when the selection changes.
288
+ */
289
+ get selectionChanged() {
290
+ return this._selectionChanged;
291
+ }
282
292
  /**
283
293
  * Create an iterator over the listing's selected items.
284
294
  *
@@ -435,6 +445,19 @@ export class DirListing extends Widget {
435
445
  void showErrorMessage(this._trans._p('showErrorMessage', 'Duplicate file'), error);
436
446
  });
437
447
  }
448
+ /**
449
+ * Select all listing items in the current directory.
450
+ */
451
+ async selectAll() {
452
+ const items = this._model.items();
453
+ const newSelection = {};
454
+ for (const item of items) {
455
+ newSelection[item.path] = true;
456
+ }
457
+ this.selection = newSelection;
458
+ this._selectionChanged.emit();
459
+ this.update();
460
+ }
438
461
  /**
439
462
  * Download the currently selected item(s).
440
463
  */
@@ -604,8 +627,11 @@ export class DirListing extends Widget {
604
627
  /**
605
628
  * Clear the selected items.
606
629
  */
607
- clearSelectedItems() {
630
+ clearSelectedItems(emit = true) {
608
631
  this.selection = Object.create(null);
632
+ if (emit) {
633
+ this._selectionChanged.emit();
634
+ }
609
635
  }
610
636
  /**
611
637
  * Select an item by name.
@@ -678,7 +704,10 @@ export class DirListing extends Widget {
678
704
  break;
679
705
  case 'dragenter':
680
706
  case 'dragover':
681
- this.addClass('jp-mod-native-drop');
707
+ // Only show visual feedback if drag and drop upload is enabled
708
+ if (this._allowDragDropUpload) {
709
+ this.addClass('jp-mod-native-drop');
710
+ }
682
711
  event.preventDefault();
683
712
  break;
684
713
  case 'dragleave':
@@ -731,6 +760,7 @@ export class DirListing extends Widget {
731
760
  content.addEventListener('lm-dragleave', this);
732
761
  content.addEventListener('lm-dragover', this);
733
762
  content.addEventListener('lm-drop', this);
763
+ this._updateColumnSizes();
734
764
  }
735
765
  /**
736
766
  * A message handler invoked on a `'before-detach'` message.
@@ -894,6 +924,8 @@ export class DirListing extends Widget {
894
924
  // Fetch common variables.
895
925
  const items = this._sortedItems;
896
926
  const nodes = this._items;
927
+ // If we didn't get any item yet, we'll need to resize once items are added
928
+ const needsResize = nodes.length === 0;
897
929
  const content = DOMUtils.findElement(this.node, CONTENT_CLASS);
898
930
  const renderer = this._renderer;
899
931
  this.removeClass(MULTI_SELECTED_CLASS);
@@ -919,12 +951,19 @@ export class DirListing extends Widget {
919
951
  if (checkbox) {
920
952
  checkbox.checked = false;
921
953
  }
922
- // Handle `tabIndex`
954
+ // Handle `tabIndex` & `role`
923
955
  const nameNode = renderer.getNameNode(node);
924
956
  if (nameNode) {
925
957
  // Must check if the name node is there because it gets replaced by the
926
958
  // edit node when editing the name of the file or directory.
927
- nameNode.tabIndex = i === this._focusIndex ? 0 : -1;
959
+ if (i === this._focusIndex) {
960
+ nameNode.setAttribute('tabIndex', '0');
961
+ nameNode.setAttribute('role', 'button');
962
+ }
963
+ else {
964
+ nameNode.setAttribute('tabIndex', '-1');
965
+ nameNode.removeAttribute('role');
966
+ }
928
967
  }
929
968
  });
930
969
  // Put the check-all checkbox in the header into the correct state
@@ -947,6 +986,10 @@ export class DirListing extends Widget {
947
986
  : trans.__('Select all files and directories'));
948
987
  }
949
988
  this.updateNodes(items, nodes);
989
+ if (needsResize) {
990
+ this._width = this._computeContentWidth();
991
+ this._updateColumnSizes();
992
+ }
950
993
  this._prevPath = this._model.path;
951
994
  }
952
995
  onResize(msg) {
@@ -1108,6 +1151,13 @@ export class DirListing extends Widget {
1108
1151
  setAllowSingleClickNavigation(isEnabled) {
1109
1152
  this._allowSingleClick = isEnabled;
1110
1153
  }
1154
+ /**
1155
+ * Update the setting to allow drag and drop upload.
1156
+ * This enables uploading files via drag and drop.
1157
+ */
1158
+ setAllowDragDropUpload(isEnabled) {
1159
+ this._allowDragDropUpload = isEnabled;
1160
+ }
1111
1161
  /**
1112
1162
  * Would this click (or other event type) hit the checkbox by default?
1113
1163
  */
@@ -1140,6 +1190,7 @@ export class DirListing extends Widget {
1140
1190
  if (previouslyUnchecked) {
1141
1191
  // Select all items
1142
1192
  this._sortedItems.forEach((item) => (this.selection[item.path] = true));
1193
+ this._selectionChanged.emit();
1143
1194
  }
1144
1195
  else {
1145
1196
  // Unselect all items
@@ -1256,6 +1307,7 @@ export class DirListing extends Widget {
1256
1307
  if (!altered && event.button === 0) {
1257
1308
  this.clearSelectedItems();
1258
1309
  this.selection[this._softSelection] = true;
1310
+ this._selectionChanged.emit();
1259
1311
  this.update();
1260
1312
  }
1261
1313
  this._softSelection = '';
@@ -1470,6 +1522,7 @@ export class DirListing extends Widget {
1470
1522
  else {
1471
1523
  this.selection[path] = true;
1472
1524
  }
1525
+ this._selectionChanged.emit();
1473
1526
  this.update();
1474
1527
  // Key was handled, so return.
1475
1528
  return;
@@ -1538,6 +1591,10 @@ export class DirListing extends Widget {
1538
1591
  var _a, _b, _c;
1539
1592
  // Prevent navigation
1540
1593
  event.preventDefault();
1594
+ // Check if drag and drop upload is disabled
1595
+ if (!this._allowDragDropUpload) {
1596
+ return;
1597
+ }
1541
1598
  const items = (_a = event.dataTransfer) === null || _a === void 0 ? void 0 : _a.items;
1542
1599
  if (!items) {
1543
1600
  // Fallback to simple upload of files (if any)
@@ -1808,6 +1865,7 @@ export class DirListing extends Widget {
1808
1865
  else {
1809
1866
  this.selection[path] = true;
1810
1867
  }
1868
+ this._selectionChanged.emit();
1811
1869
  this._focusItem(index);
1812
1870
  // Handle multiple select.
1813
1871
  }
@@ -1885,7 +1943,10 @@ export class DirListing extends Widget {
1885
1943
  // the focussed item to gain but not lose selected status on shift-click.
1886
1944
  // (MacOS is irrelevant here because MacOS Finder has no notion of a
1887
1945
  // focused-but-not-selected state.)
1888
- this.selection[target.path] = true;
1946
+ if (!this.selection[target.path]) {
1947
+ this.selection[target.path] = true;
1948
+ this._selectionChanged.emit();
1949
+ }
1889
1950
  return;
1890
1951
  }
1891
1952
  // If the target and all items in-between are selected, then we assume that
@@ -1913,6 +1974,7 @@ export class DirListing extends Widget {
1913
1974
  // boundary or unselected
1914
1975
  (!anteAnchor || !this.selection[anteAnchor.path])) {
1915
1976
  delete this.selection[anchor.path];
1977
+ this._selectionChanged.emit();
1916
1978
  }
1917
1979
  }
1918
1980
  else if (this._allSelectedBetween(fromIndex, index)) {
@@ -1922,22 +1984,32 @@ export class DirListing extends Widget {
1922
1984
  // Select (or unselect) the rows between chosen index (target) and the last
1923
1985
  // focussed.
1924
1986
  const step = fromIndex < index ? 1 : -1;
1987
+ let selectionModified = false;
1925
1988
  for (let i = fromIndex; i !== index + step; i += step) {
1926
1989
  if (shouldAdd) {
1927
1990
  if (i === fromIndex) {
1928
1991
  // Do not change the selection state of the starting (fromIndex) item.
1929
1992
  continue;
1930
1993
  }
1931
- this.selection[items[i].path] = true;
1994
+ if (!this.selection[items[i].path]) {
1995
+ this.selection[items[i].path] = true;
1996
+ selectionModified = true;
1997
+ }
1932
1998
  }
1933
1999
  else {
1934
2000
  if (i === index) {
1935
2001
  // Do not unselect the target item.
1936
2002
  continue;
1937
2003
  }
1938
- delete this.selection[items[i].path];
2004
+ if (this.selection[items[i].path]) {
2005
+ delete this.selection[items[i].path];
2006
+ selectionModified = true;
2007
+ }
1939
2008
  }
1940
2009
  }
2010
+ if (selectionModified) {
2011
+ this._selectionChanged.emit();
2012
+ }
1941
2013
  }
1942
2014
  /**
1943
2015
  * Copy the selected items, and optionally cut as well.
@@ -2050,6 +2122,7 @@ export class DirListing extends Widget {
2050
2122
  }
2051
2123
  const path = items[index].path;
2052
2124
  this.selection[path] = true;
2125
+ this._selectionChanged.emit();
2053
2126
  if (focus) {
2054
2127
  this._focusItem(index);
2055
2128
  }
@@ -2061,7 +2134,7 @@ export class DirListing extends Widget {
2061
2134
  _onModelRefreshed() {
2062
2135
  // Update the selection.
2063
2136
  const existing = Object.keys(this.selection);
2064
- this.clearSelectedItems();
2137
+ this.clearSelectedItems(false);
2065
2138
  for (const item of this._model.items()) {
2066
2139
  const path = item.path;
2067
2140
  if (existing.indexOf(path) !== -1) {
@@ -2497,11 +2570,11 @@ export class DirListing extends Widget {
2497
2570
  let hoverText = trans.__('Name: %1', model.name);
2498
2571
  // add file size to pop up if its available
2499
2572
  if (model.size !== null && model.size !== undefined) {
2500
- const fileSizeText = Private.formatFileSize(model.size, 1, 1024);
2573
+ const fileSizeText = formatFileSize(model.size, 1, 1024);
2501
2574
  if (fileSize) {
2502
2575
  fileSize.textContent = fileSizeText;
2503
2576
  }
2504
- hoverText += trans.__('\nSize: %1', Private.formatFileSize(model.size, 1, 1024));
2577
+ hoverText += trans.__('\nSize: %1', formatFileSize(model.size, 1, 1024));
2505
2578
  }
2506
2579
  else if (fileSize) {
2507
2580
  fileSize.textContent = '';
@@ -2833,25 +2906,6 @@ var Private;
2833
2906
  event.target === node);
2834
2907
  }
2835
2908
  Private.hitTestNodes = hitTestNodes;
2836
- /**
2837
- * Format bytes to human readable string.
2838
- */
2839
- function formatFileSize(bytes, decimalPoint, k) {
2840
- // https://www.codexworld.com/how-to/convert-file-size-bytes-kb-mb-gb-javascript/
2841
- if (bytes === 0) {
2842
- return '0 B';
2843
- }
2844
- const dm = decimalPoint || 2;
2845
- const sizes = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
2846
- const i = Math.floor(Math.log(bytes) / Math.log(k));
2847
- if (i >= 0 && i < sizes.length) {
2848
- return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];
2849
- }
2850
- else {
2851
- return String(bytes);
2852
- }
2853
- }
2854
- Private.formatFileSize = formatFileSize;
2855
2909
  /**
2856
2910
  * Update an inline svg caret icon in a node.
2857
2911
  */
@@ -2937,4 +2991,22 @@ var Private;
2937
2991
  }
2938
2992
  Private.collectEntries = collectEntries;
2939
2993
  })(Private || (Private = {}));
2994
+ /**
2995
+ * Format bytes to human readable string.
2996
+ */
2997
+ export function formatFileSize(bytes, decimalPoint, k) {
2998
+ // https://www.codexworld.com/how-to/convert-file-size-bytes-kb-mb-gb-javascript/
2999
+ if (bytes === 0) {
3000
+ return '0 B';
3001
+ }
3002
+ const dm = decimalPoint || 2;
3003
+ const sizes = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
3004
+ const i = Math.floor(Math.log(bytes) / Math.log(k));
3005
+ if (i >= 0 && i < sizes.length) {
3006
+ return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];
3007
+ }
3008
+ else {
3009
+ return String(bytes);
3010
+ }
3011
+ }
2940
3012
  //# sourceMappingURL=listing.js.map