@syncfusion/ej2-filemanager 20.1.52-10459 → 20.1.52-10460

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 (203) hide show
  1. package/.eslintrc.json +3 -20
  2. package/CHANGELOG.md +410 -0
  3. package/README.md +43 -54
  4. package/dist/ej2-filemanager.umd.min.js +10 -1
  5. package/dist/ej2-filemanager.umd.min.js.map +1 -1
  6. package/dist/es6/ej2-filemanager.es2015.js +659 -2353
  7. package/dist/es6/ej2-filemanager.es2015.js.map +1 -1
  8. package/dist/es6/ej2-filemanager.es5.js +708 -2421
  9. package/dist/es6/ej2-filemanager.es5.js.map +1 -1
  10. package/dist/global/ej2-filemanager.min.js +10 -1
  11. package/dist/global/ej2-filemanager.min.js.map +1 -1
  12. package/dist/global/index.d.ts +9 -0
  13. package/helpers/e2e/filemanagerHelper.js +166 -183
  14. package/package.json +71 -71
  15. package/src/file-manager/actions/breadcrumb-bar.js +5 -1
  16. package/src/file-manager/actions/index.d.ts +0 -1
  17. package/src/file-manager/actions/index.js +0 -1
  18. package/src/file-manager/actions/toolbar.d.ts +0 -1
  19. package/src/file-manager/actions/toolbar.js +17 -129
  20. package/src/file-manager/base/file-manager-model.d.ts +28 -154
  21. package/src/file-manager/base/file-manager.d.ts +27 -176
  22. package/src/file-manager/base/file-manager.js +28 -244
  23. package/src/file-manager/base/interface.d.ts +3 -329
  24. package/src/file-manager/base/interface.js +1 -0
  25. package/src/file-manager/common/operations.d.ts +0 -7
  26. package/src/file-manager/common/operations.js +185 -830
  27. package/src/file-manager/common/utility.d.ts +3 -46
  28. package/src/file-manager/common/utility.js +73 -249
  29. package/src/file-manager/index.d.ts +0 -1
  30. package/src/file-manager/index.js +0 -1
  31. package/src/file-manager/layout/details-view.d.ts +0 -10
  32. package/src/file-manager/layout/details-view.js +94 -203
  33. package/src/file-manager/layout/large-icons-view.d.ts +2 -4
  34. package/src/file-manager/layout/large-icons-view.js +72 -121
  35. package/src/file-manager/layout/navigation-pane.d.ts +0 -2
  36. package/src/file-manager/layout/navigation-pane.js +73 -97
  37. package/src/file-manager/models/column-model.d.ts +5 -23
  38. package/src/file-manager/models/column.d.ts +2 -21
  39. package/src/file-manager/models/column.js +0 -6
  40. package/src/file-manager/models/default-locale.js +1 -0
  41. package/src/file-manager/models/details-view-settings-model.d.ts +1 -1
  42. package/src/file-manager/models/details-view-settings.js +3 -8
  43. package/src/file-manager/models/search-settings.d.ts +0 -5
  44. package/src/file-manager/models/toolbar-settings-model.d.ts +2 -177
  45. package/src/file-manager/models/toolbar-settings.d.ts +2 -157
  46. package/src/file-manager/models/toolbar-settings.js +2 -64
  47. package/src/file-manager/models/upload-settings-model.d.ts +0 -13
  48. package/src/file-manager/models/upload-settings.d.ts +0 -12
  49. package/src/file-manager/models/upload-settings.js +0 -3
  50. package/src/file-manager/pop-up/context-menu.d.ts +1 -2
  51. package/src/file-manager/pop-up/context-menu.js +36 -111
  52. package/src/file-manager/pop-up/dialog.d.ts +2 -1
  53. package/src/file-manager/pop-up/dialog.js +40 -19
  54. package/src/global.js +1 -1
  55. package/styles/bootstrap-dark.css +665 -371
  56. package/styles/bootstrap-dark.scss +1 -17
  57. package/styles/bootstrap.css +644 -353
  58. package/styles/bootstrap.scss +1 -17
  59. package/styles/bootstrap4.css +680 -381
  60. package/styles/bootstrap4.scss +1 -17
  61. package/styles/bootstrap5-dark.css +694 -376
  62. package/styles/bootstrap5-dark.scss +1 -17
  63. package/styles/bootstrap5.css +695 -377
  64. package/styles/bootstrap5.scss +1 -17
  65. package/styles/fabric-dark.css +642 -358
  66. package/styles/fabric-dark.scss +1 -17
  67. package/styles/fabric.css +641 -357
  68. package/styles/fabric.scss +1 -17
  69. package/styles/file-manager/_all.scss +1 -1
  70. package/styles/file-manager/_bootstrap-dark-definition.scss +2 -6
  71. package/styles/file-manager/_bootstrap-definition.scss +2 -6
  72. package/styles/file-manager/_bootstrap4-definition.scss +2 -6
  73. package/styles/file-manager/_bootstrap5-definition.scss +15 -20
  74. package/styles/file-manager/_fabric-dark-definition.scss +2 -6
  75. package/styles/file-manager/_fabric-definition.scss +2 -6
  76. package/styles/file-manager/_fluent-definition.scss +15 -18
  77. package/styles/file-manager/_highcontrast-definition.scss +2 -6
  78. package/styles/file-manager/_highcontrast-light-definition.scss +2 -6
  79. package/styles/file-manager/_layout.scss +932 -369
  80. package/styles/file-manager/_material-dark-definition.scss +2 -7
  81. package/styles/file-manager/_material-definition.scss +2 -7
  82. package/styles/file-manager/_tailwind-definition.scss +16 -20
  83. package/styles/file-manager/_theme.scss +102 -123
  84. package/styles/file-manager/bootstrap-dark.css +665 -371
  85. package/styles/file-manager/bootstrap-dark.scss +1 -2
  86. package/styles/file-manager/bootstrap.css +644 -353
  87. package/styles/file-manager/bootstrap.scss +1 -2
  88. package/styles/file-manager/bootstrap4.css +680 -381
  89. package/styles/file-manager/bootstrap4.scss +1 -2
  90. package/styles/file-manager/bootstrap5-dark.css +694 -376
  91. package/styles/file-manager/bootstrap5-dark.scss +1 -2
  92. package/styles/file-manager/bootstrap5.css +695 -377
  93. package/styles/file-manager/bootstrap5.scss +1 -2
  94. package/styles/file-manager/fabric-dark.css +642 -358
  95. package/styles/file-manager/fabric-dark.scss +1 -2
  96. package/styles/file-manager/fabric.css +641 -357
  97. package/styles/file-manager/fabric.scss +1 -2
  98. package/styles/file-manager/fluent-dark.css +641 -356
  99. package/styles/file-manager/fluent-dark.scss +1 -2
  100. package/styles/file-manager/fluent.css +640 -355
  101. package/styles/file-manager/fluent.scss +1 -2
  102. package/styles/file-manager/highcontrast-light.css +644 -354
  103. package/styles/file-manager/highcontrast-light.scss +1 -2
  104. package/styles/file-manager/highcontrast.css +647 -377
  105. package/styles/file-manager/highcontrast.scss +1 -2
  106. package/styles/file-manager/icons/_bootstrap.scss +1 -0
  107. package/styles/file-manager/icons/_bootstrap4.scss +1 -0
  108. package/styles/file-manager/icons/_fabric-dark.scss +1 -0
  109. package/styles/file-manager/icons/_fabric.scss +1 -0
  110. package/styles/file-manager/material-dark.css +671 -392
  111. package/styles/file-manager/material-dark.scss +1 -2
  112. package/styles/file-manager/material.css +654 -391
  113. package/styles/file-manager/material.scss +1 -2
  114. package/styles/file-manager/tailwind-dark.css +667 -350
  115. package/styles/file-manager/tailwind-dark.scss +1 -2
  116. package/styles/file-manager/tailwind.css +667 -350
  117. package/styles/file-manager/tailwind.scss +1 -2
  118. package/styles/fluent-dark.css +641 -356
  119. package/styles/fluent-dark.scss +1 -17
  120. package/styles/fluent.css +640 -355
  121. package/styles/fluent.scss +1 -17
  122. package/styles/highcontrast-light.css +644 -354
  123. package/styles/highcontrast-light.scss +1 -17
  124. package/styles/highcontrast.css +647 -377
  125. package/styles/highcontrast.scss +1 -17
  126. package/styles/material-dark.css +671 -392
  127. package/styles/material-dark.scss +1 -17
  128. package/styles/material.css +654 -391
  129. package/styles/material.scss +1 -17
  130. package/styles/tailwind-dark.css +667 -350
  131. package/styles/tailwind-dark.scss +1 -17
  132. package/styles/tailwind.css +667 -350
  133. package/styles/tailwind.scss +1 -17
  134. package/dist/ej2-filemanager.min.js +0 -1
  135. package/src/file-manager/actions/virtualization.d.ts +0 -93
  136. package/src/file-manager/actions/virtualization.js +0 -279
  137. package/styles/bootstrap-dark-lite.css +0 -1058
  138. package/styles/bootstrap-dark-lite.scss +0 -16
  139. package/styles/bootstrap-lite.css +0 -1040
  140. package/styles/bootstrap-lite.scss +0 -16
  141. package/styles/bootstrap4-lite.css +0 -1068
  142. package/styles/bootstrap4-lite.scss +0 -16
  143. package/styles/bootstrap5-dark-lite.css +0 -1078
  144. package/styles/bootstrap5-dark-lite.scss +0 -16
  145. package/styles/bootstrap5-lite.css +0 -1078
  146. package/styles/bootstrap5-lite.scss +0 -16
  147. package/styles/bootstrap5.3-lite.css +0 -1035
  148. package/styles/bootstrap5.3-lite.scss +0 -16
  149. package/styles/bootstrap5.3.css +0 -1603
  150. package/styles/bootstrap5.3.scss +0 -17
  151. package/styles/fabric-dark-lite.css +0 -1039
  152. package/styles/fabric-dark-lite.scss +0 -16
  153. package/styles/fabric-lite.css +0 -1039
  154. package/styles/fabric-lite.scss +0 -16
  155. package/styles/file-manager/_bds-definition.scss +0 -236
  156. package/styles/file-manager/_bigger.scss +0 -758
  157. package/styles/file-manager/_bootstrap5.3-definition.scss +0 -242
  158. package/styles/file-manager/_fluent2-definition.scss +0 -255
  159. package/styles/file-manager/_fusionnew-definition.scss +0 -241
  160. package/styles/file-manager/_material3-dark-definition.scss +0 -1
  161. package/styles/file-manager/_material3-definition.scss +0 -235
  162. package/styles/file-manager/bootstrap5.3.css +0 -1603
  163. package/styles/file-manager/bootstrap5.3.scss +0 -17
  164. package/styles/file-manager/fluent2.css +0 -1886
  165. package/styles/file-manager/fluent2.scss +0 -17
  166. package/styles/file-manager/icons/_bds.scss +0 -235
  167. package/styles/file-manager/icons/_bootstrap5.3.scss +0 -235
  168. package/styles/file-manager/icons/_fluent2.scss +0 -235
  169. package/styles/file-manager/icons/_fusionnew.scss +0 -235
  170. package/styles/file-manager/icons/_material3-dark.scss +0 -1
  171. package/styles/file-manager/icons/_material3.scss +0 -235
  172. package/styles/file-manager/material3-dark.css +0 -1633
  173. package/styles/file-manager/material3-dark.scss +0 -18
  174. package/styles/file-manager/material3.css +0 -1635
  175. package/styles/file-manager/material3.scss +0 -18
  176. package/styles/fluent-dark-lite.css +0 -1037
  177. package/styles/fluent-dark-lite.scss +0 -16
  178. package/styles/fluent-lite.css +0 -1036
  179. package/styles/fluent-lite.scss +0 -16
  180. package/styles/fluent2-lite.css +0 -1272
  181. package/styles/fluent2-lite.scss +0 -16
  182. package/styles/fluent2.css +0 -1886
  183. package/styles/fluent2.scss +0 -17
  184. package/styles/highcontrast-light-lite.css +0 -1039
  185. package/styles/highcontrast-light-lite.scss +0 -16
  186. package/styles/highcontrast-lite.css +0 -1059
  187. package/styles/highcontrast-lite.scss +0 -16
  188. package/styles/material-dark-lite.css +0 -1092
  189. package/styles/material-dark-lite.scss +0 -16
  190. package/styles/material-lite.css +0 -1097
  191. package/styles/material-lite.scss +0 -16
  192. package/styles/material3-dark-lite.css +0 -1090
  193. package/styles/material3-dark-lite.scss +0 -16
  194. package/styles/material3-dark.css +0 -1633
  195. package/styles/material3-dark.scss +0 -19
  196. package/styles/material3-lite.css +0 -1092
  197. package/styles/material3-lite.scss +0 -16
  198. package/styles/material3.css +0 -1635
  199. package/styles/material3.scss +0 -19
  200. package/styles/tailwind-dark-lite.css +0 -1060
  201. package/styles/tailwind-dark-lite.scss +0 -16
  202. package/styles/tailwind-lite.css +0 -1060
  203. package/styles/tailwind-lite.scss +0 -16
@@ -1,47 +1,10 @@
1
1
  import * as CLS from '../base/classes';
2
2
  import * as events from '../base/constant';
3
- import { read, paste, Search, filter, Download, Delete, isFileSystemData } from '../common/operations';
4
- import { getValue, setValue, isNullOrUndefined as isNOU, matches, select, createElement, isNullOrUndefined } from '@syncfusion/ej2-base';
3
+ import { read, paste, Search, filter, Download, Delete } from '../common/operations';
4
+ import { getValue, setValue, isNullOrUndefined as isNOU, matches, select, createElement } from '@syncfusion/ej2-base';
5
5
  import { closest, detach } from '@syncfusion/ej2-base';
6
6
  import { DataManager, Query } from '@syncfusion/ej2-data';
7
7
  import { createDialog } from '../pop-up/dialog';
8
- /**
9
- * Utility function to compare two strings in a way similar to Windows Explorer.
10
- * Files and folders are sorted separately, with folders coming before files.
11
- *
12
- * @param {string} reference - The first string to compare. This could be a file or folder name.
13
- * @param {string} comparer - The second string to compare. This could be a file or folder name.
14
- * @returns {number} - A negative number if `reference` should come before `comparer`, a positive number if `comparer` should come before `reference`, and 0 if they are considered equal.
15
- */
16
- export function sortComparer(reference, comparer) {
17
- // Check if reference and comparer are files or folders
18
- var referenceIsFile = /\.\S+/.test(reference);
19
- var comparerIsFile = /\.\S+/.test(comparer);
20
- // If one is a file and the other is a folder, the folder should come first
21
- if (referenceIsFile && !comparerIsFile) {
22
- return 1;
23
- }
24
- if (!referenceIsFile && comparerIsFile) {
25
- return -1;
26
- }
27
- var referenceParts = [];
28
- var comparerParts = [];
29
- (reference + '').replace(/(\d+)|(\D+)/g, function (_, $1, $2) { referenceParts.push([$1 || Infinity, $2 || '']); return ''; });
30
- (comparer + '').replace(/(\d+)|(\D+)/g, function (_, $1, $2) { comparerParts.push([$1 || Infinity, $2 || '']); return ''; });
31
- // Compare each part of reference and comparer
32
- while (referenceParts.length && comparerParts.length) {
33
- var referencePart = referenceParts.shift();
34
- var comparerPart = comparerParts.shift();
35
- if (referencePart && comparerPart) {
36
- var comparisonResult = referencePart[0] - comparerPart[0] ||
37
- referencePart[1].localeCompare(comparerPart[1]);
38
- if (comparisonResult) {
39
- return comparisonResult;
40
- }
41
- }
42
- }
43
- return referenceParts.length - comparerParts.length;
44
- }
45
8
  /**
46
9
  * Utility file for common actions
47
10
  *
@@ -51,6 +14,7 @@ export function sortComparer(reference, comparer) {
51
14
  * @returns {void}
52
15
  * @private
53
16
  */
17
+ // eslint-disable-next-line
54
18
  export function updatePath(node, data, instance) {
55
19
  var text = getValue('name', data);
56
20
  var id = node.getAttribute('data-id');
@@ -70,8 +34,8 @@ export function updatePath(node, data, instance) {
70
34
  */
71
35
  export function getPath(element, text, hasId) {
72
36
  var matched = getParents(element, text, false, hasId);
73
- var path = '/';
74
- var len = matched.length - (2);
37
+ var path = hasId ? '' : '/';
38
+ var len = matched.length - (hasId ? 1 : 2);
75
39
  for (var i = len; i >= 0; i--) {
76
40
  path += matched[i] + '/';
77
41
  }
@@ -143,10 +107,11 @@ export function getParents(element, text, isId, hasId) {
143
107
  */
144
108
  export function generatePath(parent) {
145
109
  var key = parent.hasId ? 'id' : 'name';
146
- var newPath = '/';
147
- var i = 1;
110
+ var newPath = parent.hasId ? '' : '/';
111
+ var i = parent.hasId ? 0 : 1;
148
112
  for (i; i < parent.pathId.length; i++) {
149
- var data = getValue(parent.pathId[parseInt(i.toString(), 10)], parent.feParent);
113
+ // eslint-disable-next-line
114
+ var data = getValue(parent.pathId[i], parent.feParent);
150
115
  newPath += getValue(key, data) + '/';
151
116
  }
152
117
  parent.setProperties({ path: newPath }, true);
@@ -284,22 +249,6 @@ export function searchWordHandler(parent, value, isLayoutChange) {
284
249
  if (value.length === 0 && !parent.isFiltered) {
285
250
  parent.notify(events.pathColumn, { args: parent });
286
251
  }
287
- if (isFileSystemData(parent)) {
288
- if (value === '') {
289
- parent.itemData = parent.fileSystemData;
290
- read(parent, events.layoutChange, parent.path);
291
- }
292
- else {
293
- parent.searchSettings.filterType = isNOU(parent.searchSettings.filterType) ? 'contains' : parent.searchSettings.filterType;
294
- var filteredData = parent.fileSystemData.filter(function (obj) { return obj.parentId !== null; });
295
- var data = new DataManager(filteredData).
296
- executeLocal(new Query().where('name', parent.searchSettings.filterType, value, parent.searchSettings.ignoreCase));
297
- var searchValue = parent.searchSettings.ignoreCase ? value.toLowerCase() : value;
298
- parent.itemData = data;
299
- Search(parent, isLayoutChange ? events.layoutChange : events.search, parent.path, searchValue, parent.showHiddenItems, !parent.searchSettings.ignoreCase);
300
- }
301
- return;
302
- }
303
252
  if (parent.searchSettings.filterType === 'startsWith') {
304
253
  searchWord = value + '*';
305
254
  }
@@ -319,7 +268,7 @@ export function searchWordHandler(parent, value, isLayoutChange) {
319
268
  else {
320
269
  if (!parent.isFiltered) {
321
270
  if (parent.isSortByClicked) {
322
- parent.notify(events.layoutChange, { files: (parent.oldView === 'Details') ? parent.detailsviewModule.gridObj.dataSource : parent.largeiconsviewModule.allItems });
271
+ parent.notify(events.layoutChange, { files: parent.largeiconsviewModule.items });
323
272
  parent.isSortByClicked = false;
324
273
  }
325
274
  else {
@@ -340,7 +289,6 @@ export function searchWordHandler(parent, value, isLayoutChange) {
340
289
  * @private
341
290
  */
342
291
  export function updateLayout(parent, view) {
343
- parent.oldView = parent.view;
344
292
  parent.setProperties({ view: view }, true);
345
293
  if (parent.breadcrumbbarModule.searchObj.element.value !== '' || parent.isFiltered) {
346
294
  parent.layoutSelectedItems = parent.selectedItems;
@@ -417,6 +365,7 @@ export function openAction(parent) {
417
365
  * @returns {Object} - returns the path data.
418
366
  * @private
419
367
  */
368
+ // eslint-disable-next-line
420
369
  export function getPathObject(parent) {
421
370
  return getValue(parent.pathId[parent.pathId.length - 1], parent.feParent);
422
371
  }
@@ -458,6 +407,7 @@ export function cutFiles(parent) {
458
407
  * @returns {string} - returns the file type.
459
408
  * @private
460
409
  */
410
+ // eslint-disable-next-line
461
411
  export function fileType(file) {
462
412
  var isFile = getValue('isFile', file);
463
413
  if (!isFile) {
@@ -500,29 +450,21 @@ export function fileType(file) {
500
450
  * @returns {string} - returns the image url.
501
451
  * @private
502
452
  */
453
+ // eslint-disable-next-line
503
454
  export function getImageUrl(parent, item) {
504
- var imgUrl = isFileSystemData(parent) ? getValue('imageUrl', item) : '';
505
- if (isFileSystemData(parent)) {
506
- var eventArgs_1 = {
507
- fileDetails: [item],
508
- imageUrl: imgUrl
509
- };
510
- parent.trigger('beforeImageLoad', eventArgs_1);
511
- return eventArgs_1.imageUrl;
512
- }
513
455
  var baseUrl = parent.ajaxSettings.getImageUrl ? parent.ajaxSettings.getImageUrl : parent.ajaxSettings.url;
514
- var pathUrl = (baseUrl.indexOf('?') !== -1) ? '&path=' : '?path=';
456
+ var imgUrl;
515
457
  var fileName = encodeURIComponent(getValue('name', item));
516
458
  var fPath = getValue('filterPath', item);
517
459
  if (parent.hasId) {
518
460
  var imgId = getValue('id', item);
519
- imgUrl = baseUrl + pathUrl + parent.path + '&id=' + imgId;
461
+ imgUrl = baseUrl + '?path=' + parent.path + '&id=' + imgId;
520
462
  }
521
463
  else if (!isNOU(fPath)) {
522
- imgUrl = baseUrl + pathUrl + encodeURIComponent(fPath.replace(/\\/g, '/')) + fileName;
464
+ imgUrl = baseUrl + '?path=' + fPath.replace(/\\/g, '/') + fileName;
523
465
  }
524
466
  else {
525
- imgUrl = baseUrl + pathUrl + parent.path + fileName;
467
+ imgUrl = baseUrl + '?path=' + parent.path + fileName;
526
468
  }
527
469
  imgUrl = imgUrl + '&time=' + (new Date().getTime()).toString();
528
470
  var eventArgs = {
@@ -542,6 +484,7 @@ export function getImageUrl(parent, item) {
542
484
  * @returns {string} - returns the image url.
543
485
  * @private
544
486
  */
487
+ // eslint-disable-next-line
545
488
  export function getFullPath(parent, data, path) {
546
489
  var filePath = getValue(parent.hasId ? 'id' : 'name', data) + '/';
547
490
  var fPath = getValue(parent.hasId ? 'filterId' : 'filterPath', data);
@@ -560,6 +503,7 @@ export function getFullPath(parent, data, path) {
560
503
  * @returns {string} - returns the name.
561
504
  * @private
562
505
  */
506
+ // eslint-disable-next-line
563
507
  export function getName(parent, data) {
564
508
  var name = getValue('name', data);
565
509
  var fPath = getValue('filterPath', data);
@@ -577,17 +521,19 @@ export function getName(parent, data) {
577
521
  * @returns {Object[]} - returns the sorted data.
578
522
  * @private
579
523
  */
524
+ // eslint-disable-next-line
580
525
  export function getSortedData(parent, items) {
581
526
  if (items.length === 0) {
582
527
  return items;
583
528
  }
584
529
  var query;
585
- if (parent.sortOrder !== 'None' && !isNullOrUndefined(parent.sortOrder)) {
530
+ if (parent.sortOrder !== 'None') {
586
531
  query = new Query().sortBy(parent.sortBy, parent.sortOrder.toLowerCase(), true).group('isFile');
587
532
  }
588
533
  else {
589
534
  query = new Query().group('isFile');
590
535
  }
536
+ // eslint-disable-next-line
591
537
  var lists = new DataManager(items).executeLocal(query);
592
538
  return getValue('records', lists);
593
539
  }
@@ -600,9 +546,12 @@ export function getSortedData(parent, items) {
600
546
  * @returns {Object} - returns the sorted data.
601
547
  * @private
602
548
  */
549
+ // eslint-disable-next-line
603
550
  export function getObject(parent, key, value) {
551
+ // eslint-disable-next-line
604
552
  var currFiles = getValue(parent.pathId[parent.pathId.length - 1], parent.feFiles);
605
553
  var query = new Query().where(key, 'equal', value);
554
+ // eslint-disable-next-line
606
555
  var lists = new DataManager(currFiles).executeLocal(query);
607
556
  return lists[0];
608
557
  }
@@ -667,6 +616,7 @@ export function createEmptyElement(parent, element, args) {
667
616
  * @returns {Object[]} - returns the sorted data.
668
617
  * @private
669
618
  */
619
+ // eslint-disable-next-line
670
620
  export function getDirectories(files) {
671
621
  return new DataManager(files).executeLocal(new Query().where(events.isFile, 'equal', false, false));
672
622
  }
@@ -679,6 +629,7 @@ export function getDirectories(files) {
679
629
  * @private
680
630
  */
681
631
  export function setNodeId(result, rootId) {
632
+ // eslint-disable-next-line
682
633
  var dirs = getDirectories(result.files);
683
634
  for (var i = 0, len = dirs.length; i < len; i++) {
684
635
  setValue('_fm_id', rootId + '_' + i, dirs[i]);
@@ -688,20 +639,14 @@ export function setNodeId(result, rootId) {
688
639
  * set the date object
689
640
  *
690
641
  * @param {Object[]} args - specifies the file object.
691
- * @param {Internationalization} localeString - The internationalization object for formatting dates.
692
- * @param {string} dateFormat - The date format string.
693
642
  * @returns {void}
694
643
  * @private
695
644
  */
696
- export function setDateObject(args, localeString, dateFormat) {
645
+ // eslint-disable-next-line
646
+ export function setDateObject(args) {
697
647
  for (var i = 0; i < args.length; i++) {
698
- var createdDate = new Date(getValue('dateCreated', args[i]));
699
- var modifiedDate = new Date(getValue('dateModified', args[i]));
700
- if (isNOU(dateFormat)) {
701
- dateFormat = 'MM/dd/yyyy';
702
- }
703
- setValue('_fm_created', localeString.formatDate(createdDate, { format: dateFormat }), args[i]);
704
- setValue('_fm_modified', localeString.formatDate(modifiedDate, { format: dateFormat }), args[i]);
648
+ setValue('_fm_created', new Date(getValue('dateCreated', args[i])), args[i]);
649
+ setValue('_fm_modified', new Date(getValue('dateModified', args[i])), args[i]);
705
650
  }
706
651
  }
707
652
  /**
@@ -747,7 +692,7 @@ export function sortbyClickHandler(parent, args) {
747
692
  tick = false;
748
693
  }
749
694
  if (!tick) {
750
- parent.sortBy = getSortField(args.item.id, parent);
695
+ parent.sortBy = getSortField(args.item.id);
751
696
  }
752
697
  else {
753
698
  parent.sortOrder = getSortField(args.item.id);
@@ -759,7 +704,6 @@ export function sortbyClickHandler(parent, args) {
759
704
  }
760
705
  else {
761
706
  parent.notify(events.sortColumn, { module: 'detailsview' });
762
- parent.isSortByClicked = false;
763
707
  }
764
708
  }
765
709
  if (parent.view === 'LargeIcons') {
@@ -771,28 +715,15 @@ export function sortbyClickHandler(parent, args) {
771
715
  * Gets the sorted fields
772
716
  *
773
717
  * @param {string} id - specifies the id.
774
- * @param {IFileManager} [parent] - optional parameter representing the parent IFileManager.
775
718
  * @returns {string} - returns the sorted fields
776
719
  * @private
777
720
  */
778
- export function getSortField(id, parent) {
721
+ export function getSortField(id) {
779
722
  var text = id.substring(id.lastIndexOf('_') + 1);
780
723
  var field = text;
781
- var column;
782
- if (parent) {
783
- column = parent.detailsViewSettings.columns;
784
- }
785
724
  switch (text) {
786
725
  case 'date':
787
- for (var i = 0, len = column.length; i < len; i++) {
788
- if (column[i].field === 'dateModified' || column[i].field === 'dateCreated') {
789
- field = column[i].field;
790
- break;
791
- }
792
- else {
793
- field = '_fm_modified';
794
- }
795
- }
726
+ field = '_fm_modified';
796
727
  break;
797
728
  case 'ascending':
798
729
  field = 'Ascending';
@@ -817,22 +748,19 @@ export function getSortField(id, parent) {
817
748
  export function setNextPath(parent, path) {
818
749
  var currfolders = path.split('/');
819
750
  var folders = parent.originalPath.split('/');
751
+ // eslint-disable-next-line
820
752
  var root = getValue(parent.pathId[0], parent.feParent);
821
753
  var key = isNOU(getValue('id', root)) ? 'name' : 'id';
822
754
  for (var i = currfolders.length - 1, len = folders.length - 1; i < len; i++) {
823
755
  var eventName = (folders[i + 1] === '') ? events.finalizeEnd : events.initialEnd;
824
756
  var newPath = (folders[i] === '') ? '/' : (parent.path + folders[i] + '/');
825
- var data = getObject(parent, key, folders[parseInt(i.toString(), 10)]);
826
- if (!isNullOrUndefined(data)) {
827
- var id = getValue('_fm_id', data);
828
- parent.setProperties({ path: newPath }, true);
829
- parent.pathId.push(id);
830
- parent.itemData = [data];
831
- parent.pathNames.push(getValue('name', data));
832
- }
833
- else {
834
- parent.originalPath = newPath;
835
- }
757
+ // eslint-disable-next-line
758
+ var data = getObject(parent, key, folders[i]);
759
+ var id = getValue('_fm_id', data);
760
+ parent.setProperties({ path: newPath }, true);
761
+ parent.pathId.push(id);
762
+ parent.itemData = [data];
763
+ parent.pathNames.push(getValue('name', data));
836
764
  read(parent, eventName, parent.path);
837
765
  break;
838
766
  }
@@ -845,28 +773,10 @@ export function setNextPath(parent, path) {
845
773
  * @returns {void}
846
774
  * @private
847
775
  */
776
+ // eslint-disable-next-line
848
777
  export function openSearchFolder(parent, data) {
778
+ parent.notify(events.clearPathInit, { selectedNode: parent.pathId[parent.pathId.length - 1] });
849
779
  parent.originalPath = getFullPath(parent, data, parent.path);
850
- var root = getValue(parent.pathId[0], parent.feParent);
851
- var isRoot = getValue('_fm_id', parent.itemData[0]) === 'fe_tree';
852
- var key = isNOU(getValue('id', root)) ? 'name' : 'id';
853
- var searchData = getObject(parent, key, isFileSystemData(parent) ? getValue('id', data) : getValue('name', data));
854
- if (isNullOrUndefined(searchData)) {
855
- if (!isRoot) {
856
- parent.notify(events.clearPathInit, { selectedNode: parent.pathId[parent.pathId.length - 1] });
857
- }
858
- else {
859
- setNextPath(parent, parent.path);
860
- return;
861
- }
862
- }
863
- else {
864
- var id = getValue('_fm_id', searchData);
865
- parent.setProperties({ path: parent.originalPath }, true);
866
- parent.pathId.push(id);
867
- parent.itemData = [searchData];
868
- parent.pathNames.push(getValue('name', searchData));
869
- }
870
780
  read(parent, (parent.path !== parent.originalPath) ? events.initialEnd : events.finalizeEnd, parent.path);
871
781
  }
872
782
  /**
@@ -880,9 +790,7 @@ export function pasteHandler(parent) {
880
790
  parent.isDragDrop = false;
881
791
  if (parent.selectedNodes.length !== 0 && parent.enablePaste) {
882
792
  var path = (parent.folderPath === '') ? parent.path : parent.folderPath;
883
- if (parent.activeModule === 'navigationpane' && !parent.selectedNodes[0].includes('/')) {
884
- parent.targetPath = getValue('filterPath', parent.actionRecords[0]).replace(/\\/g, '/');
885
- }
793
+ // eslint-disable-next-line
886
794
  var subFolder = validateSubFolder(parent, parent.actionRecords, path, parent.path);
887
795
  if (!subFolder) {
888
796
  if ((parent.fileAction === 'move' && parent.targetPath !== path) || parent.fileAction === 'copy') {
@@ -893,15 +801,6 @@ export function pasteHandler(parent) {
893
801
  parent.enablePaste = false;
894
802
  parent.notify(events.hidePaste, {});
895
803
  removeBlur(parent);
896
- var result = {
897
- files: null,
898
- error: {
899
- code: '402',
900
- message: getLocaleText(parent, 'Same-Folder-Error'),
901
- fileExists: null
902
- }
903
- };
904
- createDialog(parent, 'Error', result);
905
804
  }
906
805
  }
907
806
  }
@@ -916,6 +815,7 @@ export function pasteHandler(parent) {
916
815
  * @returns {boolean} - returns the validated sub folder.
917
816
  * @private
918
817
  */
818
+ // eslint-disable-next-line
919
819
  export function validateSubFolder(parent, data, dropPath, dragPath) {
920
820
  var subFolder = false;
921
821
  for (var i = 0; i < data.length; i++) {
@@ -936,8 +836,7 @@ export function validateSubFolder(parent, data, dropPath, dragPath) {
936
836
  }
937
837
  }
938
838
  else {
939
- var name_1 = parent.dragData[i] ? parent.dragData[i].name : null;
940
- var srcData = isFileSystemData(parent) ? name_1 : parent.dragNodes[i];
839
+ var srcData = parent.dragNodes[i];
941
840
  var len = 0;
942
841
  if (srcData) {
943
842
  len = srcData.lastIndexOf('/');
@@ -1008,15 +907,15 @@ export function getParentPath(oldPath) {
1008
907
  */
1009
908
  export function getDirectoryPath(parent, args) {
1010
909
  var filePath = getValue(parent.hasId ? 'id' : 'name', args.cwd) + '/';
1011
- var fPath = getValue(parent.hasId && !isNullOrUndefined(parent.ajaxSettings.url) ? 'filterId' : 'filterPath', args.cwd);
910
+ var fPath = getValue(parent.hasId ? 'filterId' : 'filterPath', args.cwd);
1012
911
  if (!isNOU(fPath)) {
1013
912
  if (fPath === '') {
1014
- return parent.hasId && !isNullOrUndefined(parent.ajaxSettings.url) ? filePath : '/';
913
+ return parent.hasId ? filePath : '/';
1015
914
  }
1016
915
  return fPath.replace(/\\/g, '/') + filePath;
1017
916
  }
1018
917
  else {
1019
- return isFileSystemData(parent) ? filePath : parent.path + filePath;
918
+ return parent.path + filePath;
1020
919
  }
1021
920
  }
1022
921
  /**
@@ -1084,11 +983,6 @@ export function readDropPath(parent) {
1084
983
  else {
1085
984
  if (parent.navigationpaneModule) {
1086
985
  var node = select('[data-uid="' + pathId + '"]', parent.navigationpaneModule.treeObj.element);
1087
- if (!node) {
1088
- var liElement = document.querySelector('[data-id = "' + getValue('id', parent.dropData) + '"]');
1089
- pathId = liElement.getAttribute('data-uid');
1090
- node = select('[data-uid="' + pathId + '"]', parent.navigationpaneModule.treeObj.element);
1091
- }
1092
986
  updatePath(node, parent.dropData, parent);
1093
987
  }
1094
988
  read(parent, events.dropPath, parent.dropPath);
@@ -1102,8 +996,11 @@ export function readDropPath(parent) {
1102
996
  * @returns {object} - returns the duplicated path.
1103
997
  * @private
1104
998
  */
999
+ // eslint-disable-next-line
1105
1000
  export function getDuplicateData(parent, name) {
1001
+ // eslint-disable-next-line
1106
1002
  var data = null;
1003
+ // eslint-disable-next-line
1107
1004
  var records = parent.isDragDrop ? parent.dragData : parent.actionRecords;
1108
1005
  for (var i = 0; i < records.length; i++) {
1109
1006
  if (getValue('name', records[i]) === name) {
@@ -1283,30 +1180,6 @@ export function removeItemClass(parent, value) {
1283
1180
  ele[i].classList.remove(value);
1284
1181
  }
1285
1182
  }
1286
- /**
1287
- * Remove item class handler
1288
- *
1289
- * @param {Element} scrollParent - specifies the scrolling target.
1290
- * @param {IFileManager} parent - specifies the parent.
1291
- * @param {string} nodeClass - specifies the node class.
1292
- * @param {number} screenY - specifies the vertical (Y) coordinate of the mouse cursor position relative to the entire screen.
1293
- * @param {number} clientY - specifies the vertical (Y) coordinate of the mouse cursor position relative to the target element.
1294
- * @returns {void}
1295
- * @private
1296
- */
1297
- export function scrollHandler(scrollParent, parent, nodeClass, screenY, clientY) {
1298
- var position;
1299
- var elementData = scrollParent.getBoundingClientRect();
1300
- var node = select('.' + nodeClass, scrollParent);
1301
- if ((screenY >= (elementData.top + scrollParent.clientHeight - 30)) && !isNullOrUndefined(node)) {
1302
- position = (parent.targetModule === 'navigationpane' || parent.targetModule === 'detailsview') ? node.offsetHeight / 2.5 : node.offsetHeight / 4.5;
1303
- scrollParent.scrollBy(0, position);
1304
- }
1305
- if (!isNullOrUndefined(node) && (clientY <= (elementData.top + 30))) {
1306
- position = (parent.targetModule === 'navigationpane' || parent.targetModule === 'detailsview') ? node.offsetHeight / 2.5 : node.offsetHeight / 4.5;
1307
- scrollParent.scrollBy(0, -position);
1308
- }
1309
- }
1310
1183
  /**
1311
1184
  * Dragging handler
1312
1185
  *
@@ -1327,15 +1200,12 @@ export function draggingHandler(parent, args) {
1327
1200
  }
1328
1201
  removeBlur(parent, 'hover');
1329
1202
  var node = null;
1330
- var scrollParent;
1331
1203
  if (parent.targetModule === 'navigationpane') {
1332
1204
  node = closest(args.target, 'li');
1333
1205
  node.classList.add(CLS.HOVER, CLS.DROP_FOLDER);
1334
1206
  canDrop = true;
1335
1207
  /* istanbul ignore next */
1336
1208
  parent.treeExpandTimer = window.setTimeout(function () { parent.notify(events.dragging, args); }, 800);
1337
- scrollParent = parent.navigationpaneModule.treeObj.element.parentElement;
1338
- scrollHandler(scrollParent, parent, 'e-level-2', args.event.screenY, args.event.y);
1339
1209
  }
1340
1210
  else if (parent.targetModule === 'detailsview') {
1341
1211
  node = closest(args.target, 'tr');
@@ -1346,8 +1216,6 @@ export function draggingHandler(parent, args) {
1346
1216
  node.classList.add(CLS.DROP_FILE);
1347
1217
  }
1348
1218
  canDrop = true;
1349
- scrollParent = parent.detailsviewModule.gridObj.element.querySelector('.e-content');
1350
- scrollHandler(scrollParent, parent, 'e-row', args.event.screenY, args.event.y);
1351
1219
  }
1352
1220
  else if (parent.targetModule === 'largeiconsview') {
1353
1221
  node = closest(args.target, 'li');
@@ -1355,8 +1223,6 @@ export function draggingHandler(parent, args) {
1355
1223
  node.classList.add(CLS.HOVER, CLS.DROP_FOLDER);
1356
1224
  }
1357
1225
  canDrop = true;
1358
- scrollParent = parent.largeiconsviewModule.element.firstElementChild;
1359
- scrollHandler(scrollParent, parent, 'e-large-icon', args.event.screenY, args.event.y);
1360
1226
  /* istanbul ignore next */
1361
1227
  }
1362
1228
  else if (parent.targetModule === 'breadcrumbbar') {
@@ -1375,6 +1241,7 @@ export function draggingHandler(parent, args) {
1375
1241
  * @private
1376
1242
  */
1377
1243
  // Ignored the message key value in permission object
1244
+ // eslint-disable-next-line
1378
1245
  export function objectToString(data) {
1379
1246
  var str = '';
1380
1247
  var keys = Object.keys(data);
@@ -1393,6 +1260,7 @@ export function objectToString(data) {
1393
1260
  * @returns {string} returns the item name.
1394
1261
  * @private
1395
1262
  */
1263
+ // eslint-disable-next-line
1396
1264
  export function getItemName(parent, data) {
1397
1265
  if (parent.hasId) {
1398
1266
  return getValue('id', data);
@@ -1407,6 +1275,7 @@ export function getItemName(parent, data) {
1407
1275
  * @returns {void}
1408
1276
  * @private
1409
1277
  */
1278
+ // eslint-disable-next-line
1410
1279
  export function updateRenamingData(parent, data) {
1411
1280
  parent.itemData = [data];
1412
1281
  parent.currentItemText = getValue('name', data);
@@ -1437,6 +1306,7 @@ export function doRename(parent) {
1437
1306
  * @private
1438
1307
  */
1439
1308
  export function doDownload(parent) {
1309
+ // eslint-disable-next-line
1440
1310
  var items = parent.itemData;
1441
1311
  for (var i = 0; i < items.length; i++) {
1442
1312
  if (!hasDownloadAccess(items[i])) {
@@ -1457,6 +1327,7 @@ export function doDownload(parent) {
1457
1327
  * @returns {void}
1458
1328
  * @private
1459
1329
  */
1330
+ // eslint-disable-next-line
1460
1331
  export function doDeleteFiles(parent, data, newIds) {
1461
1332
  for (var i = 0; i < data.length; i++) {
1462
1333
  if (!hasEditAccess(data[i])) {
@@ -1477,6 +1348,7 @@ export function doDeleteFiles(parent, data, newIds) {
1477
1348
  * @returns {void}
1478
1349
  * @private
1479
1350
  */
1351
+ // eslint-disable-next-line
1480
1352
  export function doDownloadFiles(parent, data, newIds) {
1481
1353
  for (var i = 0; i < data.length; i++) {
1482
1354
  if (!hasDownloadAccess(data[i])) {
@@ -1498,6 +1370,7 @@ export function doDownloadFiles(parent, data, newIds) {
1498
1370
  * @returns {void}
1499
1371
  * @private
1500
1372
  */
1373
+ // eslint-disable-next-line
1501
1374
  export function createDeniedDialog(parent, data, action) {
1502
1375
  var message = getValue('message', getValue('permission', data));
1503
1376
  if (message === '') {
@@ -1519,6 +1392,7 @@ export function createDeniedDialog(parent, data, action) {
1519
1392
  * @returns {string} - returns accesses classes.
1520
1393
  * @private
1521
1394
  */
1395
+ // eslint-disable-next-line
1522
1396
  export function getAccessClass(data) {
1523
1397
  return !hasReadAccess(data) ? 'e-fe-locked e-fe-hidden' : 'e-fe-locked';
1524
1398
  }
@@ -1529,7 +1403,9 @@ export function getAccessClass(data) {
1529
1403
  * @returns {boolean} - returns read access.
1530
1404
  * @private
1531
1405
  */
1406
+ // eslint-disable-next-line
1532
1407
  export function hasReadAccess(data) {
1408
+ // eslint-disable-next-line
1533
1409
  var permission = getValue('permission', data);
1534
1410
  return (permission && !getValue('read', permission)) ? false : true;
1535
1411
  }
@@ -1540,7 +1416,9 @@ export function hasReadAccess(data) {
1540
1416
  * @returns {boolean} - returns edit access.
1541
1417
  * @private
1542
1418
  */
1419
+ // eslint-disable-next-line
1543
1420
  export function hasEditAccess(data) {
1421
+ // eslint-disable-next-line
1544
1422
  var permission = getValue('permission', data);
1545
1423
  return permission ? ((getValue('read', permission) && getValue('write', permission))) : true;
1546
1424
  }
@@ -1551,7 +1429,9 @@ export function hasEditAccess(data) {
1551
1429
  * @returns {boolean} - returns content access.
1552
1430
  * @private
1553
1431
  */
1432
+ // eslint-disable-next-line
1554
1433
  export function hasContentAccess(data) {
1434
+ // eslint-disable-next-line
1555
1435
  var permission = getValue('permission', data);
1556
1436
  return permission ? ((getValue('read', permission) && getValue('writeContents', permission))) : true;
1557
1437
  }
@@ -1562,7 +1442,9 @@ export function hasContentAccess(data) {
1562
1442
  * @returns {boolean} - returns upload access.
1563
1443
  * @private
1564
1444
  */
1445
+ // eslint-disable-next-line
1565
1446
  export function hasUploadAccess(data) {
1447
+ // eslint-disable-next-line
1566
1448
  var permission = getValue('permission', data);
1567
1449
  return permission ? ((getValue('read', permission) && getValue('upload', permission))) : true;
1568
1450
  }
@@ -1573,7 +1455,9 @@ export function hasUploadAccess(data) {
1573
1455
  * @returns {boolean} - returns download access.
1574
1456
  * @private
1575
1457
  */
1458
+ // eslint-disable-next-line
1576
1459
  export function hasDownloadAccess(data) {
1460
+ // eslint-disable-next-line
1577
1461
  var permission = getValue('permission', data);
1578
1462
  return permission ? ((getValue('read', permission) && getValue('download', permission))) : true;
1579
1463
  }
@@ -1585,6 +1469,7 @@ export function hasDownloadAccess(data) {
1585
1469
  * @private
1586
1470
  */
1587
1471
  export function createNewFolder(parent) {
1472
+ // eslint-disable-next-line
1588
1473
  var details = parent.itemData[0];
1589
1474
  if (!hasContentAccess(details)) {
1590
1475
  createDeniedDialog(parent, details, events.permissionEditContents);
@@ -1601,6 +1486,7 @@ export function createNewFolder(parent) {
1601
1486
  * @private
1602
1487
  */
1603
1488
  export function uploadItem(parent) {
1489
+ // eslint-disable-next-line
1604
1490
  var details = parent.itemData[0];
1605
1491
  if (!hasUploadAccess(details)) {
1606
1492
  createDeniedDialog(parent, details, events.permissionUpload);
@@ -1611,65 +1497,3 @@ export function uploadItem(parent) {
1611
1497
  uploadEle.click();
1612
1498
  }
1613
1499
  }
1614
- /**
1615
- * Close dialog popup handler
1616
- *
1617
- * @param {IFileManager} parent - specifies the parent.
1618
- * @returns {void}
1619
- * @private
1620
- */
1621
- export function closePopup(parent) {
1622
- if (!isNullOrUndefined(parent.dialogObj)) {
1623
- parent.dialogObj.hide();
1624
- }
1625
- }
1626
- /**
1627
- * Access control handler
1628
- *
1629
- * @param {IFileManager} parent - specifies the parent.
1630
- * @param {Object[]} itemData - specifies the item elements.
1631
- * @param {string} action - specifies the action.
1632
- * @param {boolean} isPathPermision - specifies the path permission.
1633
- * @returns {string} returns the path.
1634
- * @private
1635
- */
1636
- export function getAccessDetails(parent, itemData, action, isPathPermision) {
1637
- var accessMessage = '';
1638
- for (var i = 0; i < itemData.length; i++) {
1639
- var permission = getValue('permission', itemData[i]);
1640
- if (permission == null) {
1641
- permission = undefined;
1642
- }
1643
- if (isPathPermision) {
1644
- if (permission && (!getValue('read', permission) || !getValue('writeContents', permission))) {
1645
- accessMessage = getValue('message', getValue('permission', itemData[i]));
1646
- if (accessMessage === '') {
1647
- accessMessage = getLocaleText(parent, 'Access-Message').replace('{0}', getValue('name', itemData[i])).replace('{1}', 'writeContents');
1648
- }
1649
- }
1650
- }
1651
- else {
1652
- var copyOrMovePermission = action === 'copy' ? getValue('copy', permission) : getValue('write', permission);
1653
- if (permission && (!getValue('read', permission) || !copyOrMovePermission)) {
1654
- accessMessage = getValue('message', getValue('permission', itemData[i]));
1655
- if (accessMessage === '') {
1656
- accessMessage = getLocaleText(parent, 'Access-Message').replace('{0}', getValue('name', itemData[i])).replace('{1}', action);
1657
- }
1658
- }
1659
- }
1660
- if (accessMessage !== '') {
1661
- parent.responseData = {
1662
- cwd: null,
1663
- details: null,
1664
- error: {
1665
- code: '401',
1666
- message: accessMessage,
1667
- fileExists: null
1668
- },
1669
- files: null
1670
- };
1671
- break;
1672
- }
1673
- }
1674
- return accessMessage;
1675
- }