@syncfusion/ej2-filemanager 19.4.56 → 20.1.52-10459

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 (208) hide show
  1. package/.eslintrc.json +20 -3
  2. package/README.md +54 -43
  3. package/dist/ej2-filemanager.min.js +1 -0
  4. package/dist/ej2-filemanager.umd.min.js +1 -10
  5. package/dist/ej2-filemanager.umd.min.js.map +1 -1
  6. package/dist/es6/ej2-filemanager.es2015.js +2371 -664
  7. package/dist/es6/ej2-filemanager.es2015.js.map +1 -1
  8. package/dist/es6/ej2-filemanager.es5.js +2440 -714
  9. package/dist/es6/ej2-filemanager.es5.js.map +1 -1
  10. package/dist/global/ej2-filemanager.min.js +1 -10
  11. package/dist/global/ej2-filemanager.min.js.map +1 -1
  12. package/dist/global/index.d.ts +0 -9
  13. package/helpers/e2e/filemanagerHelper.js +183 -166
  14. package/package.json +71 -71
  15. package/src/file-manager/actions/breadcrumb-bar.js +1 -5
  16. package/src/file-manager/actions/index.d.ts +1 -0
  17. package/src/file-manager/actions/index.js +1 -0
  18. package/src/file-manager/actions/toolbar.d.ts +1 -0
  19. package/src/file-manager/actions/toolbar.js +135 -20
  20. package/src/file-manager/actions/virtualization.d.ts +93 -0
  21. package/src/file-manager/actions/virtualization.js +279 -0
  22. package/src/file-manager/base/file-manager-model.d.ts +161 -28
  23. package/src/file-manager/base/file-manager.d.ts +182 -28
  24. package/src/file-manager/base/file-manager.js +254 -29
  25. package/src/file-manager/base/interface.d.ts +329 -3
  26. package/src/file-manager/base/interface.js +0 -1
  27. package/src/file-manager/common/operations.d.ts +7 -0
  28. package/src/file-manager/common/operations.js +830 -185
  29. package/src/file-manager/common/utility.d.ts +46 -3
  30. package/src/file-manager/common/utility.js +249 -73
  31. package/src/file-manager/index.d.ts +1 -0
  32. package/src/file-manager/index.js +1 -0
  33. package/src/file-manager/layout/details-view.d.ts +10 -0
  34. package/src/file-manager/layout/details-view.js +204 -94
  35. package/src/file-manager/layout/large-icons-view.d.ts +4 -2
  36. package/src/file-manager/layout/large-icons-view.js +122 -73
  37. package/src/file-manager/layout/navigation-pane.d.ts +2 -0
  38. package/src/file-manager/layout/navigation-pane.js +97 -73
  39. package/src/file-manager/models/column-model.d.ts +23 -5
  40. package/src/file-manager/models/column.d.ts +21 -2
  41. package/src/file-manager/models/column.js +6 -0
  42. package/src/file-manager/models/default-locale.js +0 -1
  43. package/src/file-manager/models/details-view-settings-model.d.ts +1 -1
  44. package/src/file-manager/models/details-view-settings.js +8 -3
  45. package/src/file-manager/models/navigation-pane-settings.d.ts +8 -8
  46. package/src/file-manager/models/search-settings.d.ts +5 -0
  47. package/src/file-manager/models/toolbar-settings-model.d.ts +177 -2
  48. package/src/file-manager/models/toolbar-settings.d.ts +157 -2
  49. package/src/file-manager/models/toolbar-settings.js +64 -2
  50. package/src/file-manager/models/upload-settings-model.d.ts +13 -0
  51. package/src/file-manager/models/upload-settings.d.ts +12 -0
  52. package/src/file-manager/models/upload-settings.js +3 -0
  53. package/src/file-manager/pop-up/context-menu.d.ts +2 -1
  54. package/src/file-manager/pop-up/context-menu.js +111 -36
  55. package/src/file-manager/pop-up/dialog.d.ts +1 -2
  56. package/src/file-manager/pop-up/dialog.js +19 -40
  57. package/src/global.js +1 -1
  58. package/styles/bootstrap-dark-lite.css +1058 -0
  59. package/styles/bootstrap-dark-lite.scss +16 -0
  60. package/styles/bootstrap-dark.css +371 -665
  61. package/styles/bootstrap-dark.scss +17 -1
  62. package/styles/bootstrap-lite.css +1040 -0
  63. package/styles/bootstrap-lite.scss +16 -0
  64. package/styles/bootstrap.css +353 -644
  65. package/styles/bootstrap.scss +17 -1
  66. package/styles/bootstrap4-lite.css +1068 -0
  67. package/styles/bootstrap4-lite.scss +16 -0
  68. package/styles/bootstrap4.css +381 -680
  69. package/styles/bootstrap4.scss +17 -1
  70. package/styles/bootstrap5-dark-lite.css +1078 -0
  71. package/styles/bootstrap5-dark-lite.scss +16 -0
  72. package/styles/bootstrap5-dark.css +377 -695
  73. package/styles/bootstrap5-dark.scss +17 -1
  74. package/styles/bootstrap5-lite.css +1078 -0
  75. package/styles/bootstrap5-lite.scss +16 -0
  76. package/styles/bootstrap5.3-lite.css +1035 -0
  77. package/styles/bootstrap5.3-lite.scss +16 -0
  78. package/styles/bootstrap5.3.css +1603 -0
  79. package/styles/bootstrap5.3.scss +17 -0
  80. package/styles/bootstrap5.css +377 -695
  81. package/styles/bootstrap5.scss +17 -1
  82. package/styles/fabric-dark-lite.css +1039 -0
  83. package/styles/fabric-dark-lite.scss +16 -0
  84. package/styles/fabric-dark.css +358 -642
  85. package/styles/fabric-dark.scss +17 -1
  86. package/styles/fabric-lite.css +1039 -0
  87. package/styles/fabric-lite.scss +16 -0
  88. package/styles/fabric.css +357 -641
  89. package/styles/fabric.scss +17 -1
  90. package/styles/file-manager/_all.scss +1 -1
  91. package/styles/file-manager/_bds-definition.scss +236 -0
  92. package/styles/file-manager/_bigger.scss +758 -0
  93. package/styles/file-manager/_bootstrap-dark-definition.scss +6 -2
  94. package/styles/file-manager/_bootstrap-definition.scss +6 -2
  95. package/styles/file-manager/_bootstrap4-definition.scss +6 -2
  96. package/styles/file-manager/_bootstrap5-definition.scss +21 -16
  97. package/styles/file-manager/_bootstrap5.3-definition.scss +242 -0
  98. package/styles/file-manager/_fabric-dark-definition.scss +6 -2
  99. package/styles/file-manager/_fabric-definition.scss +6 -2
  100. package/styles/file-manager/_fluent-dark-definition.scss +1 -0
  101. package/styles/file-manager/_fluent-definition.scss +26 -22
  102. package/styles/file-manager/_fluent2-definition.scss +255 -0
  103. package/styles/file-manager/_fusionnew-definition.scss +241 -0
  104. package/styles/file-manager/_highcontrast-definition.scss +6 -2
  105. package/styles/file-manager/_highcontrast-light-definition.scss +6 -2
  106. package/styles/file-manager/_layout.scss +373 -912
  107. package/styles/file-manager/_material-dark-definition.scss +7 -2
  108. package/styles/file-manager/_material-definition.scss +7 -2
  109. package/styles/file-manager/_material3-dark-definition.scss +1 -0
  110. package/styles/file-manager/_material3-definition.scss +235 -0
  111. package/styles/file-manager/_tailwind-definition.scss +20 -16
  112. package/styles/file-manager/_theme.scss +130 -99
  113. package/styles/file-manager/bootstrap-dark.css +371 -665
  114. package/styles/file-manager/bootstrap-dark.scss +2 -1
  115. package/styles/file-manager/bootstrap.css +353 -644
  116. package/styles/file-manager/bootstrap.scss +2 -1
  117. package/styles/file-manager/bootstrap4.css +381 -680
  118. package/styles/file-manager/bootstrap4.scss +2 -1
  119. package/styles/file-manager/bootstrap5-dark.css +377 -695
  120. package/styles/file-manager/bootstrap5-dark.scss +2 -1
  121. package/styles/file-manager/bootstrap5.3.css +1603 -0
  122. package/styles/file-manager/bootstrap5.3.scss +17 -0
  123. package/styles/file-manager/bootstrap5.css +377 -695
  124. package/styles/file-manager/bootstrap5.scss +2 -1
  125. package/styles/file-manager/fabric-dark.css +358 -642
  126. package/styles/file-manager/fabric-dark.scss +2 -1
  127. package/styles/file-manager/fabric.css +357 -641
  128. package/styles/file-manager/fabric.scss +2 -1
  129. package/styles/file-manager/fluent-dark.css +1616 -0
  130. package/styles/file-manager/fluent-dark.scss +17 -0
  131. package/styles/file-manager/fluent.css +1615 -0
  132. package/styles/file-manager/fluent.scss +17 -0
  133. package/styles/file-manager/fluent2.css +1886 -0
  134. package/styles/file-manager/fluent2.scss +17 -0
  135. package/styles/file-manager/highcontrast-light.css +354 -644
  136. package/styles/file-manager/highcontrast-light.scss +2 -1
  137. package/styles/file-manager/highcontrast.css +377 -647
  138. package/styles/file-manager/highcontrast.scss +2 -1
  139. package/styles/file-manager/icons/_bds.scss +235 -0
  140. package/styles/file-manager/icons/_bootstrap.scss +0 -1
  141. package/styles/file-manager/icons/_bootstrap4.scss +0 -1
  142. package/styles/file-manager/icons/_bootstrap5.3.scss +235 -0
  143. package/styles/file-manager/icons/_fabric-dark.scss +0 -1
  144. package/styles/file-manager/icons/_fabric.scss +0 -1
  145. package/styles/file-manager/icons/_fluent-dark.scss +1 -0
  146. package/styles/file-manager/icons/_fluent.scss +19 -19
  147. package/styles/file-manager/icons/_fluent2.scss +235 -0
  148. package/styles/file-manager/icons/_fusionnew.scss +235 -0
  149. package/styles/file-manager/icons/_material3-dark.scss +1 -0
  150. package/styles/file-manager/icons/_material3.scss +235 -0
  151. package/styles/file-manager/icons/_tailwind.scss +49 -49
  152. package/styles/file-manager/material-dark.css +392 -671
  153. package/styles/file-manager/material-dark.scss +2 -1
  154. package/styles/file-manager/material.css +391 -654
  155. package/styles/file-manager/material.scss +2 -1
  156. package/styles/file-manager/material3-dark.css +1633 -0
  157. package/styles/file-manager/material3-dark.scss +18 -0
  158. package/styles/file-manager/material3.css +1635 -0
  159. package/styles/file-manager/material3.scss +18 -0
  160. package/styles/file-manager/tailwind-dark.css +369 -686
  161. package/styles/file-manager/tailwind-dark.scss +2 -1
  162. package/styles/file-manager/tailwind.css +369 -686
  163. package/styles/file-manager/tailwind.scss +2 -1
  164. package/styles/fluent-dark-lite.css +1037 -0
  165. package/styles/fluent-dark-lite.scss +16 -0
  166. package/styles/fluent-dark.css +1616 -0
  167. package/styles/fluent-dark.scss +17 -0
  168. package/styles/fluent-lite.css +1036 -0
  169. package/styles/fluent-lite.scss +16 -0
  170. package/styles/fluent.css +1615 -0
  171. package/styles/fluent.scss +17 -0
  172. package/styles/fluent2-lite.css +1272 -0
  173. package/styles/fluent2-lite.scss +16 -0
  174. package/styles/fluent2.css +1886 -0
  175. package/styles/fluent2.scss +17 -0
  176. package/styles/highcontrast-light-lite.css +1039 -0
  177. package/styles/highcontrast-light-lite.scss +16 -0
  178. package/styles/highcontrast-light.css +354 -644
  179. package/styles/highcontrast-light.scss +17 -1
  180. package/styles/highcontrast-lite.css +1059 -0
  181. package/styles/highcontrast-lite.scss +16 -0
  182. package/styles/highcontrast.css +377 -647
  183. package/styles/highcontrast.scss +17 -1
  184. package/styles/material-dark-lite.css +1092 -0
  185. package/styles/material-dark-lite.scss +16 -0
  186. package/styles/material-dark.css +392 -671
  187. package/styles/material-dark.scss +17 -1
  188. package/styles/material-lite.css +1097 -0
  189. package/styles/material-lite.scss +16 -0
  190. package/styles/material.css +391 -654
  191. package/styles/material.scss +17 -1
  192. package/styles/material3-dark-lite.css +1090 -0
  193. package/styles/material3-dark-lite.scss +16 -0
  194. package/styles/material3-dark.css +1633 -0
  195. package/styles/material3-dark.scss +19 -0
  196. package/styles/material3-lite.css +1092 -0
  197. package/styles/material3-lite.scss +16 -0
  198. package/styles/material3.css +1635 -0
  199. package/styles/material3.scss +19 -0
  200. package/styles/tailwind-dark-lite.css +1060 -0
  201. package/styles/tailwind-dark-lite.scss +16 -0
  202. package/styles/tailwind-dark.css +369 -686
  203. package/styles/tailwind-dark.scss +17 -1
  204. package/styles/tailwind-lite.css +1060 -0
  205. package/styles/tailwind-lite.scss +16 -0
  206. package/styles/tailwind.css +369 -686
  207. package/styles/tailwind.scss +17 -1
  208. package/CHANGELOG.md +0 -466
@@ -19,6 +19,7 @@ var ContextMenu = /** @class */ (function () {
19
19
  * @hidden
20
20
  */
21
21
  function ContextMenu(parent) {
22
+ this.isMenuItemClicked = false;
22
23
  this.currentItems = [];
23
24
  this.currentElement = null;
24
25
  this.disabledItems = [];
@@ -60,16 +61,46 @@ var ContextMenu = /** @class */ (function () {
60
61
  iconSpan.setAttribute('class', CLS.ICON_GRID + ' ' + CLS.MENU_ICON);
61
62
  }
62
63
  };
63
- ContextMenu.prototype.onBeforeClose = function () {
64
+ ContextMenu.prototype.onBeforeClose = function (args) {
65
+ var eventArgs = {
66
+ cancel: false,
67
+ element: args.element,
68
+ event: args.event,
69
+ isFocused: args.isFocused,
70
+ fileDetails: [this.menuItemData],
71
+ items: args.items,
72
+ parentItem: args.parentItem,
73
+ menuType: this.menuType
74
+ };
75
+ this.parent.trigger('menuClose', eventArgs, function (menuCloseArgs) {
76
+ if (menuCloseArgs.cancel) {
77
+ args.cancel = menuCloseArgs.cancel;
78
+ return;
79
+ }
80
+ });
64
81
  this.menuTarget = null;
82
+ if (!this.isMenuItemClicked && this.parent.pathId.length > 1 && this.parent.activeModule === 'navigationpane') {
83
+ this.parent.pathId.pop();
84
+ var parentKey = [];
85
+ var itemKeys = Object.keys(this.parent.feParent);
86
+ for (var _i = 0, itemKeys_1 = itemKeys; _i < itemKeys_1.length; _i++) {
87
+ var item = itemKeys_1[_i];
88
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
89
+ var itemData = getValue(item, this.parent.feParent);
90
+ if (this.parent.pathNames.indexOf(itemData.name) !== -1) {
91
+ parentKey.push(itemData._fm_id);
92
+ }
93
+ }
94
+ this.parent.pathId.push(parentKey[parentKey.length - 1]);
95
+ this.parent.navigationpaneModule.treeObj.selectedNodes = [this.parent.pathId[this.parent.pathId.length - 1]];
96
+ }
97
+ this.isMenuItemClicked = false;
65
98
  };
66
99
  /* istanbul ignore next */
67
100
  ContextMenu.prototype.onBeforeOpen = function (args) {
68
101
  var _this = this;
69
- this.disabledItems = [];
70
102
  var selected = false;
71
103
  var uid;
72
- // eslint-disable-next-line
73
104
  var data;
74
105
  var treeFolder = false;
75
106
  var target = args.event.target;
@@ -80,6 +111,9 @@ var ContextMenu = /** @class */ (function () {
80
111
  this.menuTarget = this.targetNodeElement = target;
81
112
  }
82
113
  this.targetElement = this.parent.view === 'Details' ? closest(target, 'tr.e-row') : target;
114
+ if (this.parent.enableVirtualization && (target.classList.contains('e-virtual-bottom') || target.classList.contains('e-virtualtable'))) {
115
+ target = target.parentElement.closest('div');
116
+ }
83
117
  var view = this.getTargetView(target);
84
118
  this.updateActiveModule();
85
119
  /* istanbul ignore next */
@@ -87,7 +121,6 @@ var ContextMenu = /** @class */ (function () {
87
121
  (closest(target, '#' + this.parent.element.id + CLS.BREADCRUMBBAR_ID)) ||
88
122
  (closest(target, '#' + this.parent.element.id + CLS.TOOLBAR_ID))) {
89
123
  args.cancel = true;
90
- // eslint:disable-next-line
91
124
  }
92
125
  else if (!(this.parent.view === 'LargeIcons') && this.targetElement &&
93
126
  this.targetElement.classList.contains('e-emptyrow')) {
@@ -96,34 +129,33 @@ var ContextMenu = /** @class */ (function () {
96
129
  }
97
130
  else if (closest(target, '.' + CLS.EMPTY)) {
98
131
  this.setLayoutItem(target);
99
- // eslint:disable-next-line
100
132
  }
101
133
  else if (!target.classList.contains(CLS.MENU_ITEM) &&
102
134
  !target.classList.contains(CLS.MENU_ICON) && !target.classList.contains(CLS.SUBMENU_ICON)) {
103
135
  /* istanbul ignore next */
104
- // eslint:disable-next-line
105
136
  if (this.parent.view === 'LargeIcons' && !isNOU(closest(target, 'li')) && !closest(target, '#' + this.parent.element.id + CLS.TREE_ID)) {
106
137
  var eveArgs = { ctrlKey: true, shiftKey: true };
107
138
  if (!closest(target, 'li').classList.contains('e-active')) {
108
139
  this.parent.largeiconsviewModule.doSelection(target, eveArgs);
109
140
  }
110
- // eslint-disable-next-line
111
141
  data = this.parent.visitedData;
112
142
  selected = true;
113
143
  }
114
144
  else if (!isNOU(closest(target, 'tr.e-row'))) {
115
145
  uid = this.targetElement.getAttribute('data-uid');
116
- // eslint-disable-next-line
117
146
  data = this.parent.detailsviewModule.gridObj.getRowObjectFromUID(uid).data;
118
147
  if (isNOU(this.targetElement.getAttribute('aria-selected'))) {
119
148
  /* istanbul ignore next */
120
- this.parent.detailsviewModule.gridObj.selectRows([parseInt(this.targetElement.getAttribute('aria-rowindex'), 10)]);
149
+ this.parent.detailsviewModule.gridObj.selectRows([parseInt(this.targetElement.getAttribute('data-rowindex'), 10)]);
121
150
  }
122
151
  selected = true;
123
152
  /* istanbul ignore next */
124
153
  }
125
154
  else if (closest(target, '#' + this.parent.element.id + CLS.TREE_ID)) {
126
155
  uid = closest(target, 'li').getAttribute('data-uid');
156
+ if (!isNOU(uid)) {
157
+ this.parent.navigationpaneModule.treeObj.selectedNodes = [uid];
158
+ }
127
159
  treeFolder = true;
128
160
  }
129
161
  /* istanbul ignore next */
@@ -141,8 +173,17 @@ var ContextMenu = /** @class */ (function () {
141
173
  if (uid === this.parent.pathId[0]) {
142
174
  this.disabledItems.push('Delete', 'Rename', 'Cut', 'Copy');
143
175
  }
176
+ else {
177
+ var itemsToRemove = ['Delete', 'Rename', 'Cut', 'Copy'];
178
+ for (var i = 0; i < this.disabledItems.length; i++) {
179
+ var item = this.disabledItems[i];
180
+ if (itemsToRemove.indexOf(item) !== -1) {
181
+ this.disabledItems.splice(i, 1);
182
+ i--;
183
+ }
184
+ }
185
+ }
144
186
  /* istanbul ignore next */
145
- // eslint:disable-next-line
146
187
  }
147
188
  else if (view === 'TreeView' || view === 'GridView' || view === 'LargeIcon') {
148
189
  this.setLayoutItem(target);
@@ -155,7 +196,15 @@ var ContextMenu = /** @class */ (function () {
155
196
  var pasteEle = select('#' + this.getMenuId('Paste'), this.contextMenu.element);
156
197
  if (!args.cancel && !this.parent.enablePaste &&
157
198
  pasteEle && !pasteEle.classList.contains('e-disabled')) {
158
- this.disabledItems.push('Paste');
199
+ if (this.disabledItems.indexOf('Paste') === -1) {
200
+ this.disabledItems.push('Paste');
201
+ }
202
+ }
203
+ else {
204
+ var pasteIndex = this.disabledItems.indexOf('Paste');
205
+ if (pasteIndex !== -1) {
206
+ this.disabledItems.splice(pasteIndex, 1);
207
+ }
159
208
  }
160
209
  if (args.cancel) {
161
210
  this.menuTarget = this.currentElement = null;
@@ -241,17 +290,46 @@ var ContextMenu = /** @class */ (function () {
241
290
  this.contextMenu.items = this.getItemData(this.parent.contextMenuSettings.folder.map(function (item) { return item.trim(); }));
242
291
  this.contextMenu.dataBind();
243
292
  if (isTree) {
244
- this.disabledItems.push('Open');
293
+ var selectedTreeNode = select('[data-uid="' + this.parent.navigationpaneModule.treeObj.selectedNodes[0] + '"]', this.parent.navigationpaneModule.treeObj.element);
294
+ if (this.parent.pathNames[this.parent.pathNames.length - 1] === selectedTreeNode.querySelector('.e-list-text').innerHTML && this.parent.activeModule === 'navigationpane') {
295
+ this.disabledItems.push('Open');
296
+ }
297
+ else {
298
+ var indexToRemove = this.disabledItems.indexOf('Open');
299
+ if (indexToRemove !== -1) {
300
+ this.disabledItems.splice(indexToRemove, 1);
301
+ }
302
+ }
303
+ if (this.parent.selectedItems.length === 0) {
304
+ var renameIndex = this.disabledItems.indexOf('Rename');
305
+ if (renameIndex !== -1) {
306
+ this.disabledItems.splice(renameIndex, 1);
307
+ }
308
+ }
245
309
  }
246
- else if (this.parent.selectedItems.length !== 1) {
247
- this.disabledItems.push('Rename', 'Paste');
310
+ else if (this.parent.activeModule !== 'navigationpane') {
311
+ if (this.parent.selectedItems.length === 1) {
312
+ var renameIndex = this.disabledItems.indexOf('Rename');
313
+ if (renameIndex !== -1) {
314
+ this.disabledItems.splice(renameIndex, 1);
315
+ }
316
+ }
317
+ else {
318
+ this.disabledItems.push('Rename', 'Paste');
319
+ }
248
320
  }
249
321
  };
250
322
  ContextMenu.prototype.setFileItem = function () {
251
323
  this.menuType = 'file';
252
324
  this.contextMenu.items = this.getItemData(this.parent.contextMenuSettings.file.map(function (item) { return item.trim(); }));
253
325
  this.contextMenu.dataBind();
254
- if (this.parent.selectedItems.length !== 1) {
326
+ if (this.parent.selectedItems.length === 1) {
327
+ var renameIndex = this.disabledItems.indexOf('Rename');
328
+ if (renameIndex !== -1) {
329
+ this.disabledItems.splice(renameIndex, 1);
330
+ }
331
+ }
332
+ else {
255
333
  this.disabledItems.push('Rename');
256
334
  }
257
335
  };
@@ -265,8 +343,13 @@ var ContextMenu = /** @class */ (function () {
265
343
  (closest(target, '#' + this.parent.element.id + CLS.GRID_ID).getElementsByClassName(CLS.EMPTY).length !== 0)))) {
266
344
  this.disabledItems.push('SelectAll');
267
345
  }
346
+ else {
347
+ this.disabledItems = this.disabledItems.filter(function (item) { return item !== 'SelectAll'; });
348
+ }
268
349
  if (this.parent.selectedNodes.length === 0) {
269
- this.disabledItems.push('Paste');
350
+ if (this.disabledItems.indexOf('Paste') === -1) {
351
+ this.disabledItems.push('Paste');
352
+ }
270
353
  }
271
354
  this.contextMenu.dataBind();
272
355
  };
@@ -281,13 +364,11 @@ var ContextMenu = /** @class */ (function () {
281
364
  return -1;
282
365
  }
283
366
  };
284
- // eslint-disable-next-line
285
367
  ContextMenu.prototype.getMenuItemData = function () {
286
368
  if (this.menuType === 'layout') {
287
369
  return getPathObject(this.parent);
288
370
  }
289
371
  else {
290
- // eslint-disable-next-line
291
372
  var args = { target: this.menuTarget };
292
373
  this.parent.notify(events.menuItemData, args);
293
374
  return this.parent.itemData[0];
@@ -300,7 +381,6 @@ var ContextMenu = /** @class */ (function () {
300
381
  return;
301
382
  }
302
383
  var itemText = args.item.id.substr((this.parent.element.id + '_cm_').length);
303
- // eslint-disable-next-line
304
384
  var details;
305
385
  if (itemText === 'refresh' || itemText === 'newfolder' || itemText === 'upload') {
306
386
  details = [getPathObject(this.parent)];
@@ -324,7 +404,7 @@ var ContextMenu = /** @class */ (function () {
324
404
  this.parent.trigger('menuClick', eventArgs, function (menuClickArgs) {
325
405
  var sItems;
326
406
  if (!menuClickArgs.cancel) {
327
- // eslint:disable-next-line
407
+ _this.isMenuItemClicked = true;
328
408
  switch (itemText) {
329
409
  case 'cut':
330
410
  cutFiles(_this.parent);
@@ -334,11 +414,12 @@ var ContextMenu = /** @class */ (function () {
334
414
  break;
335
415
  case 'paste':
336
416
  if (_this.menuType === 'folder') {
337
- if ((_this.parent.activeModule === 'largeiconsview') || (_this.parent.activeModule === 'detailsview')) {
338
- _this.parent.folderPath = getFullPath(_this.parent, _this.menuItemData, _this.parent.path);
417
+ if (_this.parent.activeModule === 'navigationpane') {
418
+ _this.parent.navigationpaneModule.openFileOnContextMenuClick(closest(_this.targetNodeElement, 'li'));
419
+ _this.parent.folderPath = _this.parent.path;
339
420
  }
340
421
  else {
341
- _this.parent.folderPath = '';
422
+ _this.parent.folderPath = getFullPath(_this.parent, _this.menuItemData, _this.parent.path);
342
423
  }
343
424
  }
344
425
  else {
@@ -387,10 +468,13 @@ var ContextMenu = /** @class */ (function () {
387
468
  refresh(_this.parent);
388
469
  break;
389
470
  case 'open':
390
- if (_this.parent.visitedItem) {
471
+ if (_this.parent.visitedItem && _this.parent.activeModule !== 'navigationpane') {
391
472
  _this.parent.notify(events.openInit, { target: _this.parent.visitedItem });
392
473
  }
393
474
  else if (_this.parent.activeModule === 'navigationpane') {
475
+ if (_this.parent.visitedItem) {
476
+ _this.parent.notify(events.openInit, { target: _this.parent.visitedItem });
477
+ }
394
478
  _this.parent.navigationpaneModule.openFileOnContextMenuClick(closest(_this.targetNodeElement, 'li'));
395
479
  }
396
480
  break;
@@ -399,6 +483,7 @@ var ContextMenu = /** @class */ (function () {
399
483
  sItems = _this.parent.selectedItems;
400
484
  if (_this.parent.activeModule === 'navigationpane') {
401
485
  sItems = [];
486
+ _this.parent.navigationpaneModule.openFileOnContextMenuClick(closest(_this.targetNodeElement, 'li'));
402
487
  }
403
488
  GetDetails(_this.parent, sItems, _this.parent.path, 'details');
404
489
  break;
@@ -408,19 +493,10 @@ var ContextMenu = /** @class */ (function () {
408
493
  case 'upload':
409
494
  uploadItem(_this.parent);
410
495
  break;
411
- /* istanbul ignore next */
412
496
  case 'name':
413
- /* istanbul ignore next */
414
- // eslint-disable-next-line no-fallthrough
415
497
  case 'size':
416
- /* istanbul ignore next */
417
- // eslint-disable-next-line no-fallthrough
418
498
  case 'date':
419
- /* istanbul ignore next */
420
- // eslint-disable-next-line no-fallthrough
421
499
  case 'ascending':
422
- /* istanbul ignore next */
423
- // eslint-disable-next-line no-fallthrough
424
500
  case 'descending':
425
501
  /* istanbul ignore next */
426
502
  sortbyClickHandler(_this.parent, args);
@@ -431,12 +507,10 @@ var ContextMenu = /** @class */ (function () {
431
507
  sortbyClickHandler(_this.parent, args);
432
508
  break;
433
509
  /* istanbul ignore next */
434
- // eslint:disable-next-line
435
510
  case 'largeiconsview':
436
511
  updateLayout(_this.parent, 'LargeIcons');
437
512
  break;
438
513
  /* istanbul ignore next */
439
- // eslint:disable-next-line
440
514
  case 'detailsview':
441
515
  updateLayout(_this.parent, 'Details');
442
516
  break;
@@ -494,6 +568,7 @@ var ContextMenu = /** @class */ (function () {
494
568
  }
495
569
  this.removeEventListener();
496
570
  this.contextMenu.destroy();
571
+ this.targetElement = null;
497
572
  };
498
573
  /* istanbul ignore next */
499
574
  ContextMenu.prototype.getItemData = function (data) {
@@ -601,7 +676,7 @@ var ContextMenu = /** @class */ (function () {
601
676
  return items;
602
677
  };
603
678
  ContextMenu.prototype.getMenuId = function (id) {
604
- return this.parent.element.id + '_cm_' + id.toLowerCase();
679
+ return this.parent.element.id + '_cm_' + id.split(' ').join('').toLowerCase();
605
680
  };
606
681
  return ContextMenu;
607
682
  }());
@@ -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.
@@ -5,22 +5,20 @@ import { createFolder } from '../common/operations';
5
5
  import * as CLS from '../base/classes';
6
6
  import * as events from '../base/constant';
7
7
  import { paste, rename } from '../common/operations';
8
- import { getLocaleText, getDuplicateData, getParentPath, objectToString, getCssClass } from '../common/utility';
8
+ import { getLocaleText, getDuplicateData, objectToString, getCssClass } from '../common/utility';
9
9
  import { Input } from '@syncfusion/ej2-inputs';
10
10
  import { CheckBox } from '@syncfusion/ej2-buttons';
11
- // eslint:disable-next-line
12
11
  /**
13
12
  *
14
13
  * @param {IFileManager} parent - Specifies the parent element
15
14
  * @param {string} text - specifies the text string.
16
15
  * @param {ReadArgs | SelectedEventArgs} e - specifies the type of event args.
17
16
  * @param {FileDetails} details - specifies the file details.
18
- * @param {string[]} replaceItems - specifies the replacement.
19
17
  * @returns {void}
20
18
  * @private
21
19
  */
22
- export function createDialog(parent, text, e, details, replaceItems) {
23
- var options = getOptions(parent, text, e, details, replaceItems);
20
+ export function createDialog(parent, text, e, details) {
21
+ var options = getOptions(parent, text, e, details);
24
22
  if (isNOU(parent.dialogObj)) {
25
23
  parent.dialogObj = new Dialog({
26
24
  beforeOpen: keydownAction.bind(this, parent, options.dialogName),
@@ -168,7 +166,6 @@ function triggerPopupClose(parent, dlgModule, dialogName) {
168
166
  var args = { popupModule: dlgModule, element: dlgModule.element, popupName: dialogName };
169
167
  parent.trigger('popupClose', args);
170
168
  }
171
- // eslint:disable-next-line
172
169
  /**
173
170
  *
174
171
  * @param {IFileManager} parent - Specifies the parent element.
@@ -388,7 +385,6 @@ function retryDlgClose(parent) {
388
385
  * @returns {void}
389
386
  * @private
390
387
  */
391
- // eslint-disable-next-line
392
388
  function onRetryOpen(parent, args) {
393
389
  parent.isRetryOpened = true;
394
390
  var dialogEle = getValue('element', args);
@@ -537,19 +533,16 @@ function createInput(ele, placeholder) {
537
533
  }
538
534
  });
539
535
  }
540
- /* istanbul ignore next */
541
- // eslint:disable-next-line
542
536
  /**
543
537
  *
544
538
  * @param {IFileManager} parent - specifies the parent element.
545
539
  * @param {string} text - specifies the text string.
546
540
  * @param {ReadArgs | SelectedEventArgs} e - specifies the event arguements.
547
541
  * @param {FileDetails} details - specifies the file details.
548
- * @param {string[]} replaceItems - specifies the replacement items.
549
542
  * @returns {DialogOptions} - specifies the dialog options.
550
543
  * @private
551
544
  */
552
- function getOptions(parent, text, e, details, replaceItems) {
545
+ function getOptions(parent, text, e, details) {
553
546
  var options = {
554
547
  header: '', content: '', buttons: [], dialogName: ''
555
548
  };
@@ -562,6 +555,7 @@ function getOptions(parent, text, e, details, replaceItems) {
562
555
  options.open = function () { triggerPopupOpen(parent, parent.dialogObj, options.dialogName); };
563
556
  options.close = function () { triggerPopupClose(parent, parent.dialogObj, options.dialogName); };
564
557
  text = (details && details.multipleFiles === true) ? 'MultipleFileDetails' : text;
558
+ var index;
565
559
  switch (text) {
566
560
  case 'NewFolder':
567
561
  options.dialogName = 'Create Folder';
@@ -594,7 +588,7 @@ function getOptions(parent, text, e, details, replaceItems) {
594
588
  options.buttons = [
595
589
  {
596
590
  buttonModel: { isPrimary: true, content: getLocaleText(parent, 'Button-Yes') },
597
- click: function (e) {
591
+ click: function () {
598
592
  onDeleteSubmit(parent);
599
593
  }
600
594
  },
@@ -646,7 +640,7 @@ function getOptions(parent, text, e, details, replaceItems) {
646
640
  options.buttons = [
647
641
  {
648
642
  buttonModel: { isPrimary: true, content: getLocaleText(parent, 'Button-Ok') },
649
- click: function (e) {
643
+ click: function () {
650
644
  parent.dialogObj.hide();
651
645
  }
652
646
  }
@@ -654,10 +648,16 @@ function getOptions(parent, text, e, details, replaceItems) {
654
648
  break;
655
649
  case 'MultipleFileDetails':
656
650
  options.dialogName = 'File Details';
657
- strArr = details.name.split(',').map(function (val) {
658
- var index = val.indexOf('.') + 1;
659
- return (index === 0) ? 'Folder' : val.substr(index).replace(' ', '');
651
+ strArr = parent.itemData.map(function (val) {
652
+ index = val.name.indexOf('.') + 1;
653
+ return (index === 0 && (!val.isFile)) ? 'Folder' : ((index !== 0) ? val.name.substr(index).replace(' ', '') : 'undetermined');
660
654
  });
655
+ if (strArr[0] === undefined) {
656
+ strArr = details.name.split(',').map(function (val) {
657
+ index = val.indexOf('.') + 1;
658
+ return (index === 0) ? 'Folder' : val.substr(index).replace(' ', '');
659
+ });
660
+ }
661
661
  fileType = strArr.every(function (val, i, arr) { return val === arr[0]; }) ?
662
662
  ((strArr[0] === 'Folder') ? 'Folder' : strArr[0].toLocaleUpperCase() + ' Type') : 'Multiple Types';
663
663
  location = details.location;
@@ -695,7 +695,7 @@ function getOptions(parent, text, e, details, replaceItems) {
695
695
  options.buttons = [
696
696
  {
697
697
  buttonModel: { isPrimary: true, content: getLocaleText(parent, 'Button-Ok') },
698
- click: function (e) {
698
+ click: function () {
699
699
  parent.dialogObj.hide();
700
700
  }
701
701
  }
@@ -753,27 +753,6 @@ function preventKeydown(btnElement) {
753
753
  _loop_1(btnCount);
754
754
  }
755
755
  }
756
- /* istanbul ignore next */
757
- /**
758
- *
759
- * @param {SelectedEventArgs} data - specifies the data.
760
- * @returns {HTMLElement} - returns the HTML element.
761
- * @private
762
- */
763
- function getFilesName(data) {
764
- var parent = createElement('div', { id: 'uploadDialog' });
765
- var ulElement = createElement('ul');
766
- var filesData = data.isModified ? data.modifiedFilesData : data.filesData;
767
- for (var fileCount = 0; fileCount < filesData.length; fileCount++) {
768
- var liElement = createElement('li', { className: 'dialogFiles' });
769
- liElement.innerHTML = filesData[fileCount].name;
770
- ulElement.appendChild(liElement);
771
- }
772
- parent.appendChild(ulElement);
773
- var errorTag = createElement('div', { className: 'e-fe-error' });
774
- parent.appendChild(errorTag);
775
- return parent;
776
- }
777
756
  /**
778
757
  *
779
758
  * @param {IFileManager} parent - specifies the parent element.
@@ -833,7 +812,7 @@ function onReSubmit(parent) {
833
812
  parent.dialogObj.hide();
834
813
  return;
835
814
  }
836
- var newPath = (parent.activeModule === 'navigationpane') ? getParentPath(parent.path) : parent.path;
815
+ var newPath = (parent.activeModule === 'navigationpane') ? getValue('filterPath', parent.itemData[0]).replace(/\\/g, '/') : parent.path;
837
816
  parent.renamedId = getValue('id', parent.itemData[0]);
838
817
  if (parent.isFile) {
839
818
  var oldExtension = (oIndex === -1) ? '' : parent.currentItemText.substr(oIndex);
@@ -889,7 +868,7 @@ function onSubmitValidate(parent, ele) {
889
868
  onValidate(parent, ele);
890
869
  var len = ele.value.length - 1;
891
870
  if (ele.value !== '' && ((ele.value.lastIndexOf('.') === len) || (ele.value.lastIndexOf(' ') === len)) &&
892
- (parent.showFileExtension || (parent.currentItemText.lastIndexOf('.') === -1))) {
871
+ (parent.showFileExtension || (ele.value.lastIndexOf('.') === -1 || ele.value.substring(ele.value.indexOf('.') + 1).length === 0))) {
893
872
  addInvalid(parent, ele);
894
873
  }
895
874
  }
package/src/global.js CHANGED
@@ -1,3 +1,3 @@
1
1
  import * as index from './index';
2
- index.FileManager.Inject(index.DetailsView, index.NavigationPane, index.LargeIconsView, index.Toolbar, index.ContextMenu, index.BreadCrumbBar);
2
+ index.FileManager.Inject(index.DetailsView, index.NavigationPane, index.LargeIconsView, index.Toolbar, index.ContextMenu, index.BreadCrumbBar, index.Virtualization);
3
3
  export * from './index';