@syncfusion/ej2-filemanager 25.2.3 → 26.1.35

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 (104) hide show
  1. package/.eslintrc.json +3 -2
  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 +931 -464
  6. package/dist/es6/ej2-filemanager.es2015.js.map +1 -1
  7. package/dist/es6/ej2-filemanager.es5.js +975 -517
  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/actions/breadcrumb-bar.js +0 -4
  14. package/src/file-manager/actions/toolbar.js +1 -13
  15. package/src/file-manager/actions/virtualization.d.ts +28 -8
  16. package/src/file-manager/actions/virtualization.js +36 -12
  17. package/src/file-manager/base/file-manager-model.d.ts +107 -36
  18. package/src/file-manager/base/file-manager.d.ts +100 -25
  19. package/src/file-manager/base/file-manager.js +46 -20
  20. package/src/file-manager/base/interface.d.ts +224 -2
  21. package/src/file-manager/base/interface.js +0 -1
  22. package/src/file-manager/common/operations.d.ts +7 -0
  23. package/src/file-manager/common/operations.js +596 -94
  24. package/src/file-manager/common/utility.d.ts +22 -0
  25. package/src/file-manager/common/utility.js +117 -65
  26. package/src/file-manager/layout/details-view.d.ts +1 -1
  27. package/src/file-manager/layout/details-view.js +23 -68
  28. package/src/file-manager/layout/large-icons-view.js +24 -46
  29. package/src/file-manager/layout/navigation-pane.js +18 -41
  30. package/src/file-manager/models/column-model.d.ts +1 -3
  31. package/src/file-manager/models/default-locale.js +0 -1
  32. package/src/file-manager/models/details-view-settings.js +2 -1
  33. package/src/file-manager/pop-up/context-menu.js +26 -27
  34. package/src/file-manager/pop-up/dialog.d.ts +1 -2
  35. package/src/file-manager/pop-up/dialog.js +12 -35
  36. package/styles/bootstrap-dark.css +116 -105
  37. package/styles/bootstrap-dark.scss +16 -1
  38. package/styles/bootstrap.css +117 -106
  39. package/styles/bootstrap.scss +16 -1
  40. package/styles/bootstrap4.css +116 -105
  41. package/styles/bootstrap4.scss +16 -1
  42. package/styles/bootstrap5-dark.css +98 -98
  43. package/styles/bootstrap5-dark.scss +16 -1
  44. package/styles/bootstrap5.css +98 -98
  45. package/styles/bootstrap5.scss +16 -1
  46. package/styles/fabric-dark.css +116 -105
  47. package/styles/fabric-dark.scss +16 -1
  48. package/styles/fabric.css +116 -105
  49. package/styles/fabric.scss +16 -1
  50. package/styles/file-manager/_bds-definition.scss +1 -1
  51. package/styles/file-manager/_bootstrap5-definition.scss +2 -1
  52. package/styles/file-manager/_bootstrap5.3-definition.scss +240 -0
  53. package/styles/file-manager/_fluent-definition.scss +1 -1
  54. package/styles/file-manager/_fluent2-definition.scss +249 -0
  55. package/styles/file-manager/_layout.scss +255 -396
  56. package/styles/file-manager/_material-dark-definition.scss +1 -0
  57. package/styles/file-manager/_material-definition.scss +1 -0
  58. package/styles/file-manager/_material3-definition.scss +1 -27
  59. package/styles/file-manager/_tailwind-definition.scss +1 -1
  60. package/styles/file-manager/_theme.scss +37 -85
  61. package/styles/file-manager/bootstrap-dark.css +116 -105
  62. package/styles/file-manager/bootstrap.css +117 -106
  63. package/styles/file-manager/bootstrap4.css +116 -105
  64. package/styles/file-manager/bootstrap5-dark.css +98 -98
  65. package/styles/file-manager/bootstrap5.css +98 -98
  66. package/styles/file-manager/fabric-dark.css +116 -105
  67. package/styles/file-manager/fabric.css +116 -105
  68. package/styles/file-manager/fluent-dark.css +107 -102
  69. package/styles/file-manager/fluent.css +107 -102
  70. package/styles/file-manager/fluent2.css +2872 -0
  71. package/styles/file-manager/fluent2.scss +16 -0
  72. package/styles/file-manager/highcontrast-light.css +116 -105
  73. package/styles/file-manager/highcontrast.css +116 -105
  74. package/styles/file-manager/icons/_bootstrap5.3.scss +235 -0
  75. package/styles/file-manager/icons/_fluent2.scss +235 -0
  76. package/styles/file-manager/material-dark.css +140 -108
  77. package/styles/file-manager/material.css +156 -112
  78. package/styles/file-manager/material3-dark.css +134 -109
  79. package/styles/file-manager/material3.css +134 -109
  80. package/styles/file-manager/tailwind-dark.css +93 -95
  81. package/styles/file-manager/tailwind.css +93 -95
  82. package/styles/fluent-dark.css +107 -102
  83. package/styles/fluent-dark.scss +16 -1
  84. package/styles/fluent.css +107 -102
  85. package/styles/fluent.scss +16 -1
  86. package/styles/fluent2.css +2872 -0
  87. package/styles/fluent2.scss +16 -0
  88. package/styles/highcontrast-light.css +116 -105
  89. package/styles/highcontrast-light.scss +16 -1
  90. package/styles/highcontrast.css +116 -105
  91. package/styles/highcontrast.scss +16 -1
  92. package/styles/material-dark.css +140 -108
  93. package/styles/material-dark.scss +16 -1
  94. package/styles/material.css +156 -112
  95. package/styles/material.scss +16 -1
  96. package/styles/material3-dark.css +134 -109
  97. package/styles/material3-dark.scss +16 -1
  98. package/styles/material3.css +134 -109
  99. package/styles/material3.scss +16 -1
  100. package/styles/tailwind-dark.css +93 -95
  101. package/styles/tailwind-dark.scss +16 -1
  102. package/styles/tailwind.css +93 -95
  103. package/styles/tailwind.scss +16 -1
  104. package/CHANGELOG.md +0 -467
@@ -63,12 +63,13 @@ var ContextMenu = /** @class */ (function () {
63
63
  };
64
64
  ContextMenu.prototype.onBeforeClose = function () {
65
65
  this.menuTarget = null;
66
- if (!this.isMenuItemClicked && this.parent.pathId.length > 1 && this.parent.activeModule == 'navigationpane') {
66
+ if (!this.isMenuItemClicked && this.parent.pathId.length > 1 && this.parent.activeModule === 'navigationpane') {
67
67
  this.parent.pathId.pop();
68
68
  var parentKey = [];
69
69
  var itemKeys = Object.keys(this.parent.feParent);
70
70
  for (var _i = 0, itemKeys_1 = itemKeys; _i < itemKeys_1.length; _i++) {
71
71
  var item = itemKeys_1[_i];
72
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
72
73
  var itemData = getValue(item, this.parent.feParent);
73
74
  if (this.parent.pathNames.indexOf(itemData.name) !== -1) {
74
75
  parentKey.push(itemData._fm_id);
@@ -84,7 +85,6 @@ var ContextMenu = /** @class */ (function () {
84
85
  var _this = this;
85
86
  var selected = false;
86
87
  var uid;
87
- // eslint-disable-next-line
88
88
  var data;
89
89
  var treeFolder = false;
90
90
  var target = args.event.target;
@@ -96,7 +96,7 @@ var ContextMenu = /** @class */ (function () {
96
96
  }
97
97
  this.targetElement = this.parent.view === 'Details' ? closest(target, 'tr.e-row') : target;
98
98
  if (this.parent.enableVirtualization && (target.classList.contains('e-virtual-bottom') || target.classList.contains('e-virtualtable'))) {
99
- target = target.parentElement.closest("div");
99
+ target = target.parentElement.closest('div');
100
100
  }
101
101
  var view = this.getTargetView(target);
102
102
  this.updateActiveModule();
@@ -105,7 +105,6 @@ var ContextMenu = /** @class */ (function () {
105
105
  (closest(target, '#' + this.parent.element.id + CLS.BREADCRUMBBAR_ID)) ||
106
106
  (closest(target, '#' + this.parent.element.id + CLS.TOOLBAR_ID))) {
107
107
  args.cancel = true;
108
- // eslint:disable-next-line
109
108
  }
110
109
  else if (!(this.parent.view === 'LargeIcons') && this.targetElement &&
111
110
  this.targetElement.classList.contains('e-emptyrow')) {
@@ -114,24 +113,20 @@ var ContextMenu = /** @class */ (function () {
114
113
  }
115
114
  else if (closest(target, '.' + CLS.EMPTY)) {
116
115
  this.setLayoutItem(target);
117
- // eslint:disable-next-line
118
116
  }
119
117
  else if (!target.classList.contains(CLS.MENU_ITEM) &&
120
118
  !target.classList.contains(CLS.MENU_ICON) && !target.classList.contains(CLS.SUBMENU_ICON)) {
121
119
  /* istanbul ignore next */
122
- // eslint:disable-next-line
123
120
  if (this.parent.view === 'LargeIcons' && !isNOU(closest(target, 'li')) && !closest(target, '#' + this.parent.element.id + CLS.TREE_ID)) {
124
121
  var eveArgs = { ctrlKey: true, shiftKey: true };
125
122
  if (!closest(target, 'li').classList.contains('e-active')) {
126
123
  this.parent.largeiconsviewModule.doSelection(target, eveArgs);
127
124
  }
128
- // eslint-disable-next-line
129
125
  data = this.parent.visitedData;
130
126
  selected = true;
131
127
  }
132
128
  else if (!isNOU(closest(target, 'tr.e-row'))) {
133
129
  uid = this.targetElement.getAttribute('data-uid');
134
- // eslint-disable-next-line
135
130
  data = this.parent.detailsviewModule.gridObj.getRowObjectFromUID(uid).data;
136
131
  if (isNOU(this.targetElement.getAttribute('aria-selected'))) {
137
132
  /* istanbul ignore next */
@@ -160,7 +155,6 @@ var ContextMenu = /** @class */ (function () {
160
155
  this.disabledItems.push('Delete', 'Rename', 'Cut', 'Copy');
161
156
  }
162
157
  /* istanbul ignore next */
163
- // eslint:disable-next-line
164
158
  }
165
159
  else if (view === 'TreeView' || view === 'GridView' || view === 'LargeIcon') {
166
160
  this.setLayoutItem(target);
@@ -271,16 +265,36 @@ var ContextMenu = /** @class */ (function () {
271
265
  if (this.parent.pathNames[this.parent.pathNames.length - 1] === selectedTreeNode.querySelector('.e-list-text').innerHTML && this.parent.activeModule === 'navigationpane') {
272
266
  this.disabledItems.push('Open');
273
267
  }
268
+ if (this.parent.selectedItems.length === 0) {
269
+ var renameIndex = this.disabledItems.indexOf('Rename');
270
+ if (renameIndex !== -1) {
271
+ this.disabledItems.splice(renameIndex, 1);
272
+ }
273
+ }
274
274
  }
275
- else if (this.parent.selectedItems.length !== 1 && this.parent.activeModule !== 'navigationpane') {
276
- this.disabledItems.push('Rename', 'Paste');
275
+ else if (this.parent.activeModule !== 'navigationpane') {
276
+ if (this.parent.selectedItems.length === 1) {
277
+ var renameIndex = this.disabledItems.indexOf('Rename');
278
+ if (renameIndex !== -1) {
279
+ this.disabledItems.splice(renameIndex, 1);
280
+ }
281
+ }
282
+ else {
283
+ this.disabledItems.push('Rename', 'Paste');
284
+ }
277
285
  }
278
286
  };
279
287
  ContextMenu.prototype.setFileItem = function () {
280
288
  this.menuType = 'file';
281
289
  this.contextMenu.items = this.getItemData(this.parent.contextMenuSettings.file.map(function (item) { return item.trim(); }));
282
290
  this.contextMenu.dataBind();
283
- if (this.parent.selectedItems.length !== 1) {
291
+ if (this.parent.selectedItems.length === 1) {
292
+ var renameIndex = this.disabledItems.indexOf('Rename');
293
+ if (renameIndex !== -1) {
294
+ this.disabledItems.splice(renameIndex, 1);
295
+ }
296
+ }
297
+ else {
284
298
  this.disabledItems.push('Rename');
285
299
  }
286
300
  };
@@ -315,13 +329,11 @@ var ContextMenu = /** @class */ (function () {
315
329
  return -1;
316
330
  }
317
331
  };
318
- // eslint-disable-next-line
319
332
  ContextMenu.prototype.getMenuItemData = function () {
320
333
  if (this.menuType === 'layout') {
321
334
  return getPathObject(this.parent);
322
335
  }
323
336
  else {
324
- // eslint-disable-next-line
325
337
  var args = { target: this.menuTarget };
326
338
  this.parent.notify(events.menuItemData, args);
327
339
  return this.parent.itemData[0];
@@ -334,7 +346,6 @@ var ContextMenu = /** @class */ (function () {
334
346
  return;
335
347
  }
336
348
  var itemText = args.item.id.substr((this.parent.element.id + '_cm_').length);
337
- // eslint-disable-next-line
338
349
  var details;
339
350
  if (itemText === 'refresh' || itemText === 'newfolder' || itemText === 'upload') {
340
351
  details = [getPathObject(this.parent)];
@@ -359,7 +370,6 @@ var ContextMenu = /** @class */ (function () {
359
370
  var sItems;
360
371
  if (!menuClickArgs.cancel) {
361
372
  _this.isMenuItemClicked = true;
362
- // eslint:disable-next-line
363
373
  switch (itemText) {
364
374
  case 'cut':
365
375
  cutFiles(_this.parent);
@@ -447,19 +457,10 @@ var ContextMenu = /** @class */ (function () {
447
457
  case 'upload':
448
458
  uploadItem(_this.parent);
449
459
  break;
450
- /* istanbul ignore next */
451
460
  case 'name':
452
- /* istanbul ignore next */
453
- // eslint-disable-next-line no-fallthrough
454
461
  case 'size':
455
- /* istanbul ignore next */
456
- // eslint-disable-next-line no-fallthrough
457
462
  case 'date':
458
- /* istanbul ignore next */
459
- // eslint-disable-next-line no-fallthrough
460
463
  case 'ascending':
461
- /* istanbul ignore next */
462
- // eslint-disable-next-line no-fallthrough
463
464
  case 'descending':
464
465
  /* istanbul ignore next */
465
466
  sortbyClickHandler(_this.parent, args);
@@ -470,12 +471,10 @@ var ContextMenu = /** @class */ (function () {
470
471
  sortbyClickHandler(_this.parent, args);
471
472
  break;
472
473
  /* istanbul ignore next */
473
- // eslint:disable-next-line
474
474
  case 'largeiconsview':
475
475
  updateLayout(_this.parent, 'LargeIcons');
476
476
  break;
477
477
  /* istanbul ignore next */
478
- // eslint:disable-next-line
479
478
  case 'detailsview':
480
479
  updateLayout(_this.parent, 'Details');
481
480
  break;
@@ -6,11 +6,10 @@ import { SelectedEventArgs } from '@syncfusion/ej2-inputs';
6
6
  * @param {string} text - specifies the text string.
7
7
  * @param {ReadArgs | SelectedEventArgs} e - specifies the type of event args.
8
8
  * @param {FileDetails} details - specifies the file details.
9
- * @param {string[]} replaceItems - specifies the replacement.
10
9
  * @returns {void}
11
10
  * @private
12
11
  */
13
- export declare function createDialog(parent: IFileManager, text: string, e?: ReadArgs | SelectedEventArgs, details?: FileDetails, replaceItems?: string[]): void;
12
+ export declare function createDialog(parent: IFileManager, text: string, e?: ReadArgs | SelectedEventArgs, details?: FileDetails): void;
14
13
  /**
15
14
  *
16
15
  * @param {IFileManager} parent - Specifies the parent element.
@@ -14,12 +14,11 @@ import { CheckBox } from '@syncfusion/ej2-buttons';
14
14
  * @param {string} text - specifies the text string.
15
15
  * @param {ReadArgs | SelectedEventArgs} e - specifies the type of event args.
16
16
  * @param {FileDetails} details - specifies the file details.
17
- * @param {string[]} replaceItems - specifies the replacement.
18
17
  * @returns {void}
19
18
  * @private
20
19
  */
21
- export function createDialog(parent, text, e, details, replaceItems) {
22
- var options = getOptions(parent, text, e, details, replaceItems);
20
+ export function createDialog(parent, text, e, details) {
21
+ var options = getOptions(parent, text, e, details);
23
22
  if (isNOU(parent.dialogObj)) {
24
23
  parent.dialogObj = new Dialog({
25
24
  beforeOpen: keydownAction.bind(this, parent, options.dialogName),
@@ -540,11 +539,10 @@ function createInput(ele, placeholder) {
540
539
  * @param {string} text - specifies the text string.
541
540
  * @param {ReadArgs | SelectedEventArgs} e - specifies the event arguements.
542
541
  * @param {FileDetails} details - specifies the file details.
543
- * @param {string[]} replaceItems - specifies the replacement items.
544
542
  * @returns {DialogOptions} - specifies the dialog options.
545
543
  * @private
546
544
  */
547
- function getOptions(parent, text, e, details, replaceItems) {
545
+ function getOptions(parent, text, e, details) {
548
546
  var options = {
549
547
  header: '', content: '', buttons: [], dialogName: ''
550
548
  };
@@ -557,6 +555,7 @@ function getOptions(parent, text, e, details, replaceItems) {
557
555
  options.open = function () { triggerPopupOpen(parent, parent.dialogObj, options.dialogName); };
558
556
  options.close = function () { triggerPopupClose(parent, parent.dialogObj, options.dialogName); };
559
557
  text = (details && details.multipleFiles === true) ? 'MultipleFileDetails' : text;
558
+ var index;
560
559
  switch (text) {
561
560
  case 'NewFolder':
562
561
  options.dialogName = 'Create Folder';
@@ -589,7 +588,7 @@ function getOptions(parent, text, e, details, replaceItems) {
589
588
  options.buttons = [
590
589
  {
591
590
  buttonModel: { isPrimary: true, content: getLocaleText(parent, 'Button-Yes') },
592
- click: function (e) {
591
+ click: function () {
593
592
  onDeleteSubmit(parent);
594
593
  }
595
594
  },
@@ -641,23 +640,22 @@ function getOptions(parent, text, e, details, replaceItems) {
641
640
  options.buttons = [
642
641
  {
643
642
  buttonModel: { isPrimary: true, content: getLocaleText(parent, 'Button-Ok') },
644
- click: function (e) {
643
+ click: function () {
645
644
  parent.dialogObj.hide();
646
645
  }
647
646
  }
648
647
  ];
649
648
  break;
650
649
  case 'MultipleFileDetails':
651
- var index_1;
652
650
  options.dialogName = 'File Details';
653
651
  strArr = parent.itemData.map(function (val) {
654
- index_1 = val.name.indexOf('.') + 1;
655
- return (index_1 === 0 && (!val.isFile)) ? 'Folder' : ((index_1 !== 0) ? val.name.substr(index_1).replace(' ', '') : 'undetermined');
652
+ index = val.name.indexOf('.') + 1;
653
+ return (index === 0 && (!val.isFile)) ? 'Folder' : ((index !== 0) ? val.name.substr(index).replace(' ', '') : 'undetermined');
656
654
  });
657
- if (strArr[0] == undefined) {
655
+ if (strArr[0] === undefined) {
658
656
  strArr = details.name.split(',').map(function (val) {
659
- index_1 = val.indexOf('.') + 1;
660
- return (index_1 === 0) ? 'Folder' : val.substr(index_1).replace(' ', '');
657
+ index = val.indexOf('.') + 1;
658
+ return (index === 0) ? 'Folder' : val.substr(index).replace(' ', '');
661
659
  });
662
660
  }
663
661
  fileType = strArr.every(function (val, i, arr) { return val === arr[0]; }) ?
@@ -697,7 +695,7 @@ function getOptions(parent, text, e, details, replaceItems) {
697
695
  options.buttons = [
698
696
  {
699
697
  buttonModel: { isPrimary: true, content: getLocaleText(parent, 'Button-Ok') },
700
- click: function (e) {
698
+ click: function () {
701
699
  parent.dialogObj.hide();
702
700
  }
703
701
  }
@@ -755,27 +753,6 @@ function preventKeydown(btnElement) {
755
753
  _loop_1(btnCount);
756
754
  }
757
755
  }
758
- /* istanbul ignore next */
759
- /**
760
- *
761
- * @param {SelectedEventArgs} data - specifies the data.
762
- * @returns {HTMLElement} - returns the HTML element.
763
- * @private
764
- */
765
- function getFilesName(data) {
766
- var parent = createElement('div', { id: 'uploadDialog' });
767
- var ulElement = createElement('ul');
768
- var filesData = data.isModified ? data.modifiedFilesData : data.filesData;
769
- for (var fileCount = 0; fileCount < filesData.length; fileCount++) {
770
- var liElement = createElement('li', { className: 'dialogFiles' });
771
- liElement.innerHTML = filesData[fileCount].name;
772
- ulElement.appendChild(liElement);
773
- }
774
- parent.appendChild(ulElement);
775
- var errorTag = createElement('div', { className: 'e-fe-error' });
776
- parent.appendChild(errorTag);
777
- return parent;
778
- }
779
756
  /**
780
757
  *
781
758
  * @param {IFileManager} parent - specifies the parent element.