@syncfusion/ej2-filemanager 26.2.11 → 27.1.50

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.
Files changed (156) hide show
  1. package/.eslintrc.json +2 -4
  2. package/dist/ej2-filemanager.min.js +2 -2
  3. package/dist/ej2-filemanager.umd.min.js +2 -2
  4. package/dist/ej2-filemanager.umd.min.js.map +1 -1
  5. package/dist/es6/ej2-filemanager.es2015.js +164 -20
  6. package/dist/es6/ej2-filemanager.es2015.js.map +1 -1
  7. package/dist/es6/ej2-filemanager.es5.js +165 -20
  8. package/dist/es6/ej2-filemanager.es5.js.map +1 -1
  9. package/dist/global/ej2-filemanager.min.js +2 -2
  10. package/dist/global/ej2-filemanager.min.js.map +1 -1
  11. package/dist/global/index.d.ts +1 -1
  12. package/package.json +16 -16
  13. package/src/file-manager/base/file-manager-model.d.ts +10 -1
  14. package/src/file-manager/base/file-manager.d.ts +25 -0
  15. package/src/file-manager/base/file-manager.js +145 -1
  16. package/src/file-manager/base/interface.d.ts +1 -0
  17. package/src/file-manager/common/operations.js +1 -0
  18. package/src/file-manager/layout/details-view.js +11 -2
  19. package/src/file-manager/layout/large-icons-view.d.ts +0 -1
  20. package/src/file-manager/layout/large-icons-view.js +5 -17
  21. package/src/file-manager/pop-up/context-menu.js +4 -1
  22. package/styles/bootstrap-dark-lite.css +1058 -0
  23. package/styles/bootstrap-dark-lite.scss +16 -0
  24. package/styles/bootstrap-dark.css +201 -161
  25. package/styles/bootstrap-dark.scss +1 -0
  26. package/styles/bootstrap-lite.css +1040 -0
  27. package/styles/bootstrap-lite.scss +16 -0
  28. package/styles/bootstrap.css +183 -143
  29. package/styles/bootstrap.scss +1 -0
  30. package/styles/bootstrap4-lite.css +1068 -0
  31. package/styles/bootstrap4-lite.scss +16 -0
  32. package/styles/bootstrap4.css +211 -171
  33. package/styles/bootstrap4.scss +1 -0
  34. package/styles/bootstrap5-dark-lite.css +1078 -0
  35. package/styles/bootstrap5-dark-lite.scss +16 -0
  36. package/styles/bootstrap5-dark.css +220 -186
  37. package/styles/bootstrap5-dark.scss +1 -0
  38. package/styles/bootstrap5-lite.css +1078 -0
  39. package/styles/bootstrap5-lite.scss +16 -0
  40. package/styles/bootstrap5.3-lite.css +1035 -0
  41. package/styles/bootstrap5.3-lite.scss +16 -0
  42. package/styles/bootstrap5.3.css +1603 -0
  43. package/styles/bootstrap5.3.scss +17 -0
  44. package/styles/bootstrap5.css +220 -186
  45. package/styles/bootstrap5.scss +1 -0
  46. package/styles/fabric-dark-lite.css +1039 -0
  47. package/styles/fabric-dark-lite.scss +16 -0
  48. package/styles/fabric-dark.css +184 -144
  49. package/styles/fabric-dark.scss +1 -0
  50. package/styles/fabric-lite.css +1039 -0
  51. package/styles/fabric-lite.scss +16 -0
  52. package/styles/fabric.css +183 -143
  53. package/styles/fabric.scss +1 -0
  54. package/styles/file-manager/_bds-definition.scss +2 -0
  55. package/styles/file-manager/_bigger.scss +758 -0
  56. package/styles/file-manager/_bootstrap-dark-definition.scss +2 -0
  57. package/styles/file-manager/_bootstrap-definition.scss +2 -0
  58. package/styles/file-manager/_bootstrap4-definition.scss +2 -0
  59. package/styles/file-manager/_bootstrap5-definition.scss +2 -0
  60. package/styles/file-manager/_bootstrap5.3-definition.scss +22 -20
  61. package/styles/file-manager/_fabric-dark-definition.scss +2 -0
  62. package/styles/file-manager/_fabric-definition.scss +2 -0
  63. package/styles/file-manager/_fluent-definition.scss +2 -0
  64. package/styles/file-manager/_fluent2-definition.scss +15 -9
  65. package/styles/file-manager/_fusionnew-definition.scss +2 -0
  66. package/styles/file-manager/_highcontrast-definition.scss +2 -0
  67. package/styles/file-manager/_highcontrast-light-definition.scss +2 -0
  68. package/styles/file-manager/_layout.scss +45 -663
  69. package/styles/file-manager/_material-dark-definition.scss +2 -0
  70. package/styles/file-manager/_material-definition.scss +2 -0
  71. package/styles/file-manager/_material3-definition.scss +2 -0
  72. package/styles/file-manager/_tailwind-definition.scss +2 -0
  73. package/styles/file-manager/_theme.scss +38 -7
  74. package/styles/file-manager/bootstrap-dark.css +201 -161
  75. package/styles/file-manager/bootstrap-dark.scss +1 -0
  76. package/styles/file-manager/bootstrap.css +183 -143
  77. package/styles/file-manager/bootstrap.scss +1 -0
  78. package/styles/file-manager/bootstrap4.css +211 -171
  79. package/styles/file-manager/bootstrap4.scss +1 -0
  80. package/styles/file-manager/bootstrap5-dark.css +220 -186
  81. package/styles/file-manager/bootstrap5-dark.scss +1 -0
  82. package/styles/file-manager/bootstrap5.3.css +1603 -0
  83. package/styles/file-manager/bootstrap5.3.scss +17 -0
  84. package/styles/file-manager/bootstrap5.css +220 -186
  85. package/styles/file-manager/bootstrap5.scss +1 -0
  86. package/styles/file-manager/fabric-dark.css +184 -144
  87. package/styles/file-manager/fabric-dark.scss +1 -0
  88. package/styles/file-manager/fabric.css +183 -143
  89. package/styles/file-manager/fabric.scss +1 -0
  90. package/styles/file-manager/fluent-dark.css +187 -147
  91. package/styles/file-manager/fluent-dark.scss +1 -0
  92. package/styles/file-manager/fluent.css +186 -146
  93. package/styles/file-manager/fluent.scss +1 -0
  94. package/styles/file-manager/fluent2.css +204 -158
  95. package/styles/file-manager/fluent2.scss +1 -0
  96. package/styles/file-manager/highcontrast-light.css +184 -144
  97. package/styles/file-manager/highcontrast-light.scss +1 -0
  98. package/styles/file-manager/highcontrast.css +207 -167
  99. package/styles/file-manager/highcontrast.scss +1 -0
  100. package/styles/file-manager/material-dark.css +198 -158
  101. package/styles/file-manager/material-dark.scss +1 -0
  102. package/styles/file-manager/material.css +183 -143
  103. package/styles/file-manager/material.scss +1 -0
  104. package/styles/file-manager/material3-dark.css +185 -145
  105. package/styles/file-manager/material3-dark.scss +1 -0
  106. package/styles/file-manager/material3.css +185 -145
  107. package/styles/file-manager/material3.scss +1 -0
  108. package/styles/file-manager/tailwind-dark.css +198 -164
  109. package/styles/file-manager/tailwind-dark.scss +1 -0
  110. package/styles/file-manager/tailwind.css +198 -164
  111. package/styles/file-manager/tailwind.scss +1 -0
  112. package/styles/fluent-dark-lite.css +1037 -0
  113. package/styles/fluent-dark-lite.scss +16 -0
  114. package/styles/fluent-dark.css +187 -147
  115. package/styles/fluent-dark.scss +1 -0
  116. package/styles/fluent-lite.css +1036 -0
  117. package/styles/fluent-lite.scss +16 -0
  118. package/styles/fluent.css +186 -146
  119. package/styles/fluent.scss +1 -0
  120. package/styles/fluent2-lite.css +1272 -0
  121. package/styles/fluent2-lite.scss +16 -0
  122. package/styles/fluent2.css +204 -158
  123. package/styles/fluent2.scss +1 -0
  124. package/styles/highcontrast-light-lite.css +1039 -0
  125. package/styles/highcontrast-light-lite.scss +16 -0
  126. package/styles/highcontrast-light.css +184 -144
  127. package/styles/highcontrast-light.scss +1 -0
  128. package/styles/highcontrast-lite.css +1059 -0
  129. package/styles/highcontrast-lite.scss +16 -0
  130. package/styles/highcontrast.css +207 -167
  131. package/styles/highcontrast.scss +1 -0
  132. package/styles/material-dark-lite.css +1092 -0
  133. package/styles/material-dark-lite.scss +16 -0
  134. package/styles/material-dark.css +198 -158
  135. package/styles/material-dark.scss +1 -0
  136. package/styles/material-lite.css +1097 -0
  137. package/styles/material-lite.scss +16 -0
  138. package/styles/material.css +183 -143
  139. package/styles/material.scss +1 -0
  140. package/styles/material3-dark-lite.css +1090 -0
  141. package/styles/material3-dark-lite.scss +16 -0
  142. package/styles/material3-dark.css +185 -145
  143. package/styles/material3-dark.scss +1 -0
  144. package/styles/material3-lite.css +1092 -0
  145. package/styles/material3-lite.scss +16 -0
  146. package/styles/material3.css +185 -145
  147. package/styles/material3.scss +1 -0
  148. package/styles/tailwind-dark-lite.css +1060 -0
  149. package/styles/tailwind-dark-lite.scss +16 -0
  150. package/styles/tailwind-dark.css +198 -164
  151. package/styles/tailwind-dark.scss +1 -0
  152. package/styles/tailwind-lite.css +1060 -0
  153. package/styles/tailwind-lite.scss +16 -0
  154. package/styles/tailwind.css +198 -164
  155. package/styles/tailwind.scss +1 -0
  156. package/tslint.json +0 -111
@@ -2989,6 +2989,7 @@ function triggerSearchOperation(parent, data, eventArgs) {
2989
2989
  showHiddenItems: getValue('showHiddenItems', data)
2990
2990
  };
2991
2991
  parent.trigger('search', searchEventArgs, function (args) {
2992
+ setValue('data', args.searchResults, data);
2992
2993
  if (args.cancel) {
2993
2994
  eventArgs.cancel = true;
2994
2995
  }
@@ -4808,9 +4809,6 @@ var LargeIconsView = /** @__PURE__ @class */ (function () {
4808
4809
  }
4809
4810
  iconsView.classList.remove(DISPLAY_NONE);
4810
4811
  if (this.parent.enableVirtualization && this.allItems.length > 0) {
4811
- if (!this.element.style.height) {
4812
- this.adjustHeight();
4813
- }
4814
4812
  this.parent.virtualizationModule.setUIVirtualization();
4815
4813
  }
4816
4814
  this.listElements = ListBase.createListFromJson(createElement, this.items, this.listObj);
@@ -4848,7 +4846,6 @@ var LargeIconsView = /** @__PURE__ @class */ (function () {
4848
4846
  for (var i = 0; i < activeEle.length; i++) {
4849
4847
  activeEle[i].setAttribute('aria-selected', 'true');
4850
4848
  }
4851
- this.adjustHeight();
4852
4849
  this.element.style.maxHeight = '100%';
4853
4850
  this.getItemCount();
4854
4851
  this.addEventListener();
@@ -4955,11 +4952,6 @@ var LargeIconsView = /** @__PURE__ @class */ (function () {
4955
4952
  LargeIconsView.prototype.getModuleName = function () {
4956
4953
  return 'largeiconsview';
4957
4954
  };
4958
- LargeIconsView.prototype.adjustHeight = function () {
4959
- var pane = select('#' + this.parent.element.id + CONTENT_ID, this.parent.element);
4960
- var bar = select('#' + this.parent.element.id + BREADCRUMBBAR_ID, this.parent.element);
4961
- this.element.style.height = (pane.offsetHeight - bar.offsetHeight) + 'px';
4962
- };
4963
4955
  LargeIconsView.prototype.onItemCreated = function (args) {
4964
4956
  args.item.removeAttribute('aria-level');
4965
4957
  if (!this.parent.showFileExtension && getValue('isFile', args.curData)) {
@@ -5159,7 +5151,6 @@ var LargeIconsView = /** @__PURE__ @class */ (function () {
5159
5151
  if (this.parent.view !== 'LargeIcons') {
5160
5152
  return;
5161
5153
  }
5162
- this.adjustHeight();
5163
5154
  };
5164
5155
  LargeIconsView.prototype.onUpdateSelectionData = function () {
5165
5156
  if (this.parent.view !== 'LargeIcons') {
@@ -5287,7 +5278,8 @@ var LargeIconsView = /** @__PURE__ @class */ (function () {
5287
5278
  LargeIconsView.prototype.onpasteEnd = function (args) {
5288
5279
  if (this.parent.view === 'LargeIcons') {
5289
5280
  this.isPasteOperation = true;
5290
- if (this.parent.path === this.parent.destinationPath || this.parent.path === getDirectoryPath(this.parent, args) || this.parent.hasId) {
5281
+ if (this.parent.path === this.parent.destinationPath ||
5282
+ this.parent.path === getDirectoryPath(this.parent, args) || this.parent.hasId) {
5291
5283
  this.onPathChanged(args);
5292
5284
  }
5293
5285
  }
@@ -5309,9 +5301,6 @@ var LargeIconsView = /** @__PURE__ @class */ (function () {
5309
5301
  case 'allowDragAndDrop':
5310
5302
  this.createDragObj();
5311
5303
  break;
5312
- case 'height':
5313
- this.adjustHeight();
5314
- break;
5315
5304
  case 'selectedItems':
5316
5305
  this.isInteraction = false;
5317
5306
  this.isInteracted = false;
@@ -5775,6 +5764,9 @@ var LargeIconsView = /** @__PURE__ @class */ (function () {
5775
5764
  case 'ctrlD':
5776
5765
  this.doDownload();
5777
5766
  break;
5767
+ case 'back':
5768
+ this.parent.traverseBackward();
5769
+ break;
5778
5770
  }
5779
5771
  };
5780
5772
  LargeIconsView.prototype.doDownload = function () {
@@ -6067,9 +6059,6 @@ var LargeIconsView = /** @__PURE__ @class */ (function () {
6067
6059
  };
6068
6060
  LargeIconsView.prototype.resizeHandler = function () {
6069
6061
  this.getItemCount();
6070
- if (!isNullOrUndefined(this.listObj)) {
6071
- this.adjustHeight();
6072
- }
6073
6062
  };
6074
6063
  LargeIconsView.prototype.splitterResizeHandler = function () {
6075
6064
  this.getItemCount();
@@ -7107,8 +7096,11 @@ var ContextMenu = /** @__PURE__ @class */ (function () {
7107
7096
  if (_this.menuType === 'folder') {
7108
7097
  if (_this.parent.activeModule === 'navigationpane') {
7109
7098
  _this.parent.navigationpaneModule.openFileOnContextMenuClick(closest(_this.targetNodeElement, 'li'));
7099
+ _this.parent.folderPath = _this.parent.path;
7100
+ }
7101
+ else {
7102
+ _this.parent.folderPath = getFullPath(_this.parent, _this.menuItemData, _this.parent.path);
7110
7103
  }
7111
- _this.parent.folderPath = getFullPath(_this.parent, _this.menuItemData, _this.parent.path);
7112
7104
  }
7113
7105
  else {
7114
7106
  _this.parent.folderPath = '';
@@ -7550,6 +7542,7 @@ var FileManager = /** @__PURE__ @class */ (function (_super) {
7550
7542
  _this.uploadedCount = 0;
7551
7543
  //Specifies whether the operating system is MAC or not
7552
7544
  _this.isMac = false;
7545
+ _this.dragSelectedItems = [];
7553
7546
  FileManager_1.Inject(BreadCrumbBar, LargeIconsView, ContextMenu);
7554
7547
  return _this;
7555
7548
  }
@@ -7674,6 +7667,9 @@ var FileManager = /** @__PURE__ @class */ (function (_super) {
7674
7667
  this.setRtl(this.enableRtl);
7675
7668
  this.addEventListeners();
7676
7669
  read(this, (this.path !== this.originalPath) ? initialEnd : finalizeEnd, this.path);
7670
+ if (this.fileView === 'Details') {
7671
+ this.largeiconsviewModule.element.classList.add(DISPLAY_NONE);
7672
+ }
7677
7673
  this.adjustHeight();
7678
7674
  if (isNullOrUndefined(this.navigationpaneModule)) {
7679
7675
  this.splitterObj.collapse(this.enableRtl ? 1 : 0);
@@ -8110,7 +8106,33 @@ var FileManager = /** @__PURE__ @class */ (function (_super) {
8110
8106
  break;
8111
8107
  }
8112
8108
  };
8109
+ FileManager.prototype.wireSelectOnDragEvent = function (isBind) {
8110
+ if (isNullOrUndefined(this.view)) {
8111
+ return;
8112
+ }
8113
+ if (isBind) {
8114
+ this.viewElem = this.view === 'LargeIcons' ? this.largeiconsviewModule.element : this.element.querySelector('.e-gridcontent');
8115
+ }
8116
+ if (!this.viewElem) {
8117
+ return;
8118
+ }
8119
+ if (isBind) {
8120
+ if (this.allowMultiSelection) {
8121
+ EventHandler.add(this.viewElem, 'mousedown', this.onDragStart, this);
8122
+ this.on(layoutChange, this.onLayoutChange, this);
8123
+ this.on(selectionChanged, this.onLayoutChange, this);
8124
+ }
8125
+ }
8126
+ else {
8127
+ EventHandler.remove(this.viewElem, 'mousedown', this.onDragStart);
8128
+ this.off(layoutChange, this.onLayoutChange);
8129
+ this.off(selectionChanged, this.onLayoutChange);
8130
+ }
8131
+ };
8113
8132
  FileManager.prototype.wireEvents = function () {
8133
+ if (this.enableRangeSelection) {
8134
+ this.wireSelectOnDragEvent(true);
8135
+ }
8114
8136
  EventHandler.add(window, 'resize', this.resizeHandler, this);
8115
8137
  this.keyboardModule = new KeyboardEvents(this.element, {
8116
8138
  keyAction: this.keyActionHandler.bind(this),
@@ -8119,9 +8141,94 @@ var FileManager = /** @__PURE__ @class */ (function (_super) {
8119
8141
  });
8120
8142
  };
8121
8143
  FileManager.prototype.unWireEvents = function () {
8144
+ this.wireSelectOnDragEvent(false);
8122
8145
  EventHandler.remove(window, 'resize', this.resizeHandler);
8123
8146
  this.keyboardModule.destroy();
8124
8147
  };
8148
+ FileManager.prototype.onDragStart = function (event) {
8149
+ if (this.viewElem) {
8150
+ if (this.allowDragAndDrop) {
8151
+ var targetElement = closest(event.target, this.viewElem.classList.contains('e-large-icons') ? '.e-list-item' : '.e-fe-text');
8152
+ if (targetElement) {
8153
+ return;
8154
+ }
8155
+ }
8156
+ event.preventDefault();
8157
+ this.dragX = event.pageX;
8158
+ this.dragY = event.pageY;
8159
+ if (!this.dragSelectElement) {
8160
+ this.dragSelectElement = createElement('div', {
8161
+ id: this.element.id + '_drag',
8162
+ className: 'e-filemanager e-drag-select',
8163
+ styles: 'left: ' + this.dragX + 'px;top: ' + this.dragY + 'px;'
8164
+ });
8165
+ document.body.append(this.dragSelectElement);
8166
+ }
8167
+ EventHandler.add(document, 'mouseup', this.onDragStop, this);
8168
+ EventHandler.add(this.viewElem, 'mousemove', this.onDrag, this);
8169
+ EventHandler.add(this.dragSelectElement, 'mousemove', this.onDrag, this);
8170
+ }
8171
+ };
8172
+ FileManager.prototype.onDrag = function (event) {
8173
+ event.stopPropagation();
8174
+ if (this.dragSelectElement) {
8175
+ var diffX = event.pageX - this.dragX;
8176
+ var diffY = event.pageY - this.dragY;
8177
+ setStyleAttribute(this.dragSelectElement, {
8178
+ 'left': diffX < 0 ? this.dragX + diffX + 'px' : this.dragX + 'px', 'top': diffY < 0 ? this.dragY + diffY + 'px' : this.dragY + 'px',
8179
+ 'height': Math.abs(diffY) + 'px', 'width': Math.abs(diffX) + 'px'
8180
+ });
8181
+ this.selectItems();
8182
+ }
8183
+ else {
8184
+ EventHandler.remove(this.viewElem, 'mousemove', this.onDrag);
8185
+ }
8186
+ };
8187
+ FileManager.prototype.onDragStop = function () {
8188
+ if (this.viewElem) {
8189
+ EventHandler.remove(document, 'mouseup', this.onDragStop);
8190
+ EventHandler.remove(this.viewElem, 'mousemove', this.onDrag);
8191
+ }
8192
+ if (this.dragSelectElement) {
8193
+ EventHandler.remove(this.dragSelectElement, 'mousemove', this.onDrag);
8194
+ if (this.dragSelectElement.clientHeight > 0 && this.dragSelectElement.clientWidth > 0) {
8195
+ this.setProperties({ selectedItems: this.dragSelectedItems });
8196
+ }
8197
+ this.dragSelectedItems = [];
8198
+ detach(this.dragSelectElement);
8199
+ this.dragSelectElement = null;
8200
+ }
8201
+ };
8202
+ FileManager.prototype.selectItems = function () {
8203
+ this.dragSelectedItems = [];
8204
+ var dragRect = this.dragSelectElement.getBoundingClientRect();
8205
+ var allItems = selectAll(this.viewElem.classList.contains('e-large-icons') ? '.e-list-item' : '.e-row', this.viewElem);
8206
+ removeClass(selectAll('.e-active', this.viewElem), ['e-active', 'e-focus']);
8207
+ removeClass(selectAll('.e-check', this.viewElem), ['e-check']);
8208
+ for (var _i = 0, allItems_1 = allItems; _i < allItems_1.length; _i++) {
8209
+ var item = allItems_1[_i];
8210
+ var itemRect = item.getBoundingClientRect();
8211
+ if (!(dragRect.right < itemRect.left || dragRect.left > itemRect.right
8212
+ || dragRect.bottom < itemRect.top || dragRect.top > itemRect.bottom)
8213
+ && (this.dragSelectElement.clientHeight > 0 && this.dragSelectElement.clientWidth > 0)) {
8214
+ if (this.viewElem.classList.contains('e-large-icons')) {
8215
+ item.classList.add('e-active');
8216
+ this.dragSelectedItems.push(item.getAttribute('title'));
8217
+ }
8218
+ else {
8219
+ addClass(selectAll('.e-rowcell', item), ['e-active']);
8220
+ this.dragSelectedItems.push(item.querySelector('.e-drag-text').textContent);
8221
+ }
8222
+ item.querySelector('.e-frame').classList.add('e-check');
8223
+ }
8224
+ }
8225
+ };
8226
+ FileManager.prototype.onLayoutChange = function () {
8227
+ if (this.enableRangeSelection) {
8228
+ this.unWireEvents();
8229
+ this.wireEvents();
8230
+ }
8231
+ };
8125
8232
  FileManager.prototype.setPath = function () {
8126
8233
  this.setProperties({ selectedItems: [] }, true);
8127
8234
  this.ensurePath();
@@ -8168,6 +8275,12 @@ var FileManager = /** @__PURE__ @class */ (function (_super) {
8168
8275
  case 'detailsViewSettings':
8169
8276
  this.notify(modelChanged, { module: 'detailsview', newProp: newProp, oldProp: oldProp });
8170
8277
  break;
8278
+ case 'enableRangeSelection':
8279
+ this.wireSelectOnDragEvent(false);
8280
+ if (newProp.enableRangeSelection) {
8281
+ this.wireSelectOnDragEvent(true);
8282
+ }
8283
+ break;
8171
8284
  case 'enableRtl':
8172
8285
  this.enableRtl = newProp.enableRtl;
8173
8286
  this.refresh();
@@ -8348,6 +8461,9 @@ var FileManager = /** @__PURE__ @class */ (function (_super) {
8348
8461
  this.largeiconsviewModule = null;
8349
8462
  this.detailsviewModule = null;
8350
8463
  this.breadcrumbbarModule = null;
8464
+ this.viewElem = null;
8465
+ this.dragSelectElement = null;
8466
+ this.dragSelectedItems = null;
8351
8467
  };
8352
8468
  /**
8353
8469
  * Creates a new folder in file manager.
@@ -8536,6 +8652,23 @@ var FileManager = /** @__PURE__ @class */ (function (_super) {
8536
8652
  FileManager.prototype.selectAll = function () {
8537
8653
  this.notify(methodCall, { action: 'selectAll' });
8538
8654
  };
8655
+ /**
8656
+ * Specifies the method that must be invoked to traverse the path backwards in the file manager.
8657
+ *
8658
+ * @returns {void}
8659
+ */
8660
+ FileManager.prototype.traverseBackward = function () {
8661
+ if (this.pathNames.length > 1 && this.breadcrumbbarModule.searchObj.element.value === '' && !this.isFiltered) {
8662
+ this.pathId.pop();
8663
+ this.pathNames.pop();
8664
+ var newPath = this.pathNames.slice(1).join('/');
8665
+ newPath = newPath === '' ? '/' : '/' + newPath + '/';
8666
+ this.setProperties({ path: newPath }, true);
8667
+ read(this, pathChanged, this.path);
8668
+ var treeNodeId = this.pathId[this.pathId.length - 1];
8669
+ this.notify(updateTreeSelection, { module: 'treeview', selectedNode: treeNodeId });
8670
+ }
8671
+ };
8539
8672
  /**
8540
8673
  * Deselects the currently selected folders and files in current path.
8541
8674
  *
@@ -8672,6 +8805,9 @@ var FileManager = /** @__PURE__ @class */ (function (_super) {
8672
8805
  __decorate$8([
8673
8806
  Property(null)
8674
8807
  ], FileManager.prototype, "sortComparer", void 0);
8808
+ __decorate$8([
8809
+ Property(false)
8810
+ ], FileManager.prototype, "enableRangeSelection", void 0);
8675
8811
  __decorate$8([
8676
8812
  Complex({}, ToolbarSettings)
8677
8813
  ], FileManager.prototype, "toolbarSettings", void 0);
@@ -10598,7 +10734,8 @@ var DetailsView = /** @__PURE__ @class */ (function () {
10598
10734
  ctrlD: 'ctrl+d',
10599
10735
  f2: 'f2',
10600
10736
  ctrlA: 'ctrl+a',
10601
- enter: 'enter'
10737
+ enter: 'enter',
10738
+ back: 'backspace'
10602
10739
  };
10603
10740
  }
10604
10741
  /* istanbul ignore next */
@@ -10773,6 +10910,10 @@ var DetailsView = /** @__PURE__ @class */ (function () {
10773
10910
  for (var i = 0, len = columns.length; i < len; i++) {
10774
10911
  columns[i].disableHtmlEncode = !this.parent.enableHtmlSanitizer;
10775
10912
  }
10913
+ if (this.parent.enableRangeSelection) {
10914
+ var HiddenName = { field: 'name', visible: false, customAttributes: { class: 'e-drag-text' } };
10915
+ columns.push(HiddenName);
10916
+ }
10776
10917
  return columns;
10777
10918
  };
10778
10919
  DetailsView.prototype.adjustHeight = function () {
@@ -11600,7 +11741,8 @@ var DetailsView = /** @__PURE__ @class */ (function () {
11600
11741
  DetailsView.prototype.onpasteEnd = function (args) {
11601
11742
  if (this.parent.view === 'Details') {
11602
11743
  this.isPasteOperation = true;
11603
- if (this.parent.path === this.parent.destinationPath || this.parent.path === getDirectoryPath(this.parent, args) || this.parent.hasId) {
11744
+ if (this.parent.path === this.parent.destinationPath ||
11745
+ this.parent.path === getDirectoryPath(this.parent, args) || this.parent.hasId) {
11604
11746
  this.onPathChanged(args);
11605
11747
  }
11606
11748
  }
@@ -12037,6 +12179,9 @@ var DetailsView = /** @__PURE__ @class */ (function () {
12037
12179
  this.parent.setProperties({ selectedItems: lastItem }, true);
12038
12180
  this.selectRecords(lastItem);
12039
12181
  break;
12182
+ case 'back':
12183
+ this.parent.traverseBackward();
12184
+ break;
12040
12185
  }
12041
12186
  };
12042
12187
  DetailsView.prototype.gridSelectNodes = function () {