@syncfusion/ej2-filemanager 25.2.6 → 26.1.40

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 -462
  6. package/dist/es6/ej2-filemanager.es2015.js.map +1 -1
  7. package/dist/es6/ej2-filemanager.es5.js +975 -515
  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 +37 -13
  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 +25 -24
  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 +260 -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 +2868 -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 +2868 -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 -475
@@ -264,6 +264,8 @@ export declare function setNodeId(result: ReadArgs, rootId: string): void;
264
264
  * set the date object
265
265
  *
266
266
  * @param {Object[]} args - specifies the file object.
267
+ * @param {Internationalization} localeString - The internationalization object for formatting dates.
268
+ * @param {string} dateFormat - The date format string.
267
269
  * @returns {void}
268
270
  * @private
269
271
  */
@@ -299,6 +301,7 @@ export declare function sortbyClickHandler(parent: IFileManager, args: MenuEvent
299
301
  * Gets the sorted fields
300
302
  *
301
303
  * @param {string} id - specifies the id.
304
+ * @param {IFileManager} [parent] - optional parameter representing the parent IFileManager.
302
305
  * @returns {string} - returns the sorted fields
303
306
  * @private
304
307
  */
@@ -603,3 +606,22 @@ export declare function createNewFolder(parent: IFileManager): void;
603
606
  * @private
604
607
  */
605
608
  export declare function uploadItem(parent: IFileManager): void;
609
+ /**
610
+ * Close dialog popup handler
611
+ *
612
+ * @param {IFileManager} parent - specifies the parent.
613
+ * @returns {void}
614
+ * @private
615
+ */
616
+ export declare function closePopup(parent: IFileManager): void;
617
+ /**
618
+ * Access control handler
619
+ *
620
+ * @param {IFileManager} parent - specifies the parent.
621
+ * @param {Object[]} itemData - specifies the item elements.
622
+ * @param {string} action - specifies the action.
623
+ * @param {boolean} isPathPermision - specifies the path permission.
624
+ * @returns {string} returns the path.
625
+ * @private
626
+ */
627
+ export declare function getAccessDetails(parent: IFileManager, itemData: Object[], action: string, isPathPermision: boolean): string;
@@ -1,6 +1,6 @@
1
1
  import * as CLS from '../base/classes';
2
2
  import * as events from '../base/constant';
3
- import { read, paste, Search, filter, Download, Delete } from '../common/operations';
3
+ import { read, paste, Search, filter, Download, Delete, isFileSystemData } from '../common/operations';
4
4
  import { getValue, setValue, isNullOrUndefined as isNOU, matches, select, createElement, isNullOrUndefined } from '@syncfusion/ej2-base';
5
5
  import { closest, detach } from '@syncfusion/ej2-base';
6
6
  import { DataManager, Query } from '@syncfusion/ej2-data';
@@ -18,22 +18,27 @@ export function sortComparer(reference, comparer) {
18
18
  var referenceIsFile = /\.\S+/.test(reference);
19
19
  var comparerIsFile = /\.\S+/.test(comparer);
20
20
  // If one is a file and the other is a folder, the folder should come first
21
- if (referenceIsFile && !comparerIsFile)
21
+ if (referenceIsFile && !comparerIsFile) {
22
22
  return 1;
23
- if (!referenceIsFile && comparerIsFile)
23
+ }
24
+ if (!referenceIsFile && comparerIsFile) {
24
25
  return -1;
26
+ }
25
27
  var referenceParts = [];
26
28
  var comparerParts = [];
27
- (reference + '').replace(/(\d+)|(\D+)/g, function (_, $1, $2) { referenceParts.push([$1 || Infinity, $2 || ""]); return ""; });
28
- (comparer + '').replace(/(\d+)|(\D+)/g, function (_, $1, $2) { comparerParts.push([$1 || Infinity, $2 || ""]); return ""; });
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 ''; });
29
31
  // Compare each part of reference and comparer
30
32
  while (referenceParts.length && comparerParts.length) {
31
33
  var referencePart = referenceParts.shift();
32
34
  var comparerPart = comparerParts.shift();
33
- var comparisonResult = referencePart[0] - comparerPart[0] ||
34
- referencePart[1].localeCompare(comparerPart[1]);
35
- if (comparisonResult)
36
- return comparisonResult;
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
+ }
37
42
  }
38
43
  return referenceParts.length - comparerParts.length;
39
44
  }
@@ -46,7 +51,6 @@ export function sortComparer(reference, comparer) {
46
51
  * @returns {void}
47
52
  * @private
48
53
  */
49
- // eslint-disable-next-line
50
54
  export function updatePath(node, data, instance) {
51
55
  var text = getValue('name', data);
52
56
  var id = node.getAttribute('data-id');
@@ -142,8 +146,7 @@ export function generatePath(parent) {
142
146
  var newPath = '/';
143
147
  var i = 1;
144
148
  for (i; i < parent.pathId.length; i++) {
145
- // eslint-disable-next-line
146
- var data = getValue(parent.pathId[i], parent.feParent);
149
+ var data = getValue(parent.pathId[parseInt(i.toString(), 10)], parent.feParent);
147
150
  newPath += getValue(key, data) + '/';
148
151
  }
149
152
  parent.setProperties({ path: newPath }, true);
@@ -281,6 +284,22 @@ export function searchWordHandler(parent, value, isLayoutChange) {
281
284
  if (value.length === 0 && !parent.isFiltered) {
282
285
  parent.notify(events.pathColumn, { args: parent });
283
286
  }
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
+ }
284
303
  if (parent.searchSettings.filterType === 'startsWith') {
285
304
  searchWord = value + '*';
286
305
  }
@@ -398,7 +417,6 @@ export function openAction(parent) {
398
417
  * @returns {Object} - returns the path data.
399
418
  * @private
400
419
  */
401
- // eslint-disable-next-line
402
420
  export function getPathObject(parent) {
403
421
  return getValue(parent.pathId[parent.pathId.length - 1], parent.feParent);
404
422
  }
@@ -440,7 +458,6 @@ export function cutFiles(parent) {
440
458
  * @returns {string} - returns the file type.
441
459
  * @private
442
460
  */
443
- // eslint-disable-next-line
444
461
  export function fileType(file) {
445
462
  var isFile = getValue('isFile', file);
446
463
  if (!isFile) {
@@ -483,11 +500,18 @@ export function fileType(file) {
483
500
  * @returns {string} - returns the image url.
484
501
  * @private
485
502
  */
486
- // eslint-disable-next-line
487
503
  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
+ }
488
513
  var baseUrl = parent.ajaxSettings.getImageUrl ? parent.ajaxSettings.getImageUrl : parent.ajaxSettings.url;
489
514
  var pathUrl = (baseUrl.indexOf('?') !== -1) ? '&path=' : '?path=';
490
- var imgUrl;
491
515
  var fileName = encodeURIComponent(getValue('name', item));
492
516
  var fPath = getValue('filterPath', item);
493
517
  if (parent.hasId) {
@@ -518,7 +542,6 @@ export function getImageUrl(parent, item) {
518
542
  * @returns {string} - returns the image url.
519
543
  * @private
520
544
  */
521
- // eslint-disable-next-line
522
545
  export function getFullPath(parent, data, path) {
523
546
  var filePath = getValue(parent.hasId ? 'id' : 'name', data) + '/';
524
547
  var fPath = getValue(parent.hasId ? 'filterId' : 'filterPath', data);
@@ -537,7 +560,6 @@ export function getFullPath(parent, data, path) {
537
560
  * @returns {string} - returns the name.
538
561
  * @private
539
562
  */
540
- // eslint-disable-next-line
541
563
  export function getName(parent, data) {
542
564
  var name = getValue('name', data);
543
565
  var fPath = getValue('filterPath', data);
@@ -555,19 +577,17 @@ export function getName(parent, data) {
555
577
  * @returns {Object[]} - returns the sorted data.
556
578
  * @private
557
579
  */
558
- // eslint-disable-next-line
559
580
  export function getSortedData(parent, items) {
560
581
  if (items.length === 0) {
561
582
  return items;
562
583
  }
563
584
  var query;
564
- if (parent.sortOrder !== 'None') {
585
+ if (parent.sortOrder !== 'None' && !isNullOrUndefined(parent.sortOrder)) {
565
586
  query = new Query().sortBy(parent.sortBy, parent.sortOrder.toLowerCase(), true).group('isFile');
566
587
  }
567
588
  else {
568
589
  query = new Query().group('isFile');
569
590
  }
570
- // eslint-disable-next-line
571
591
  var lists = new DataManager(items).executeLocal(query);
572
592
  return getValue('records', lists);
573
593
  }
@@ -580,12 +600,9 @@ export function getSortedData(parent, items) {
580
600
  * @returns {Object} - returns the sorted data.
581
601
  * @private
582
602
  */
583
- // eslint-disable-next-line
584
603
  export function getObject(parent, key, value) {
585
- // eslint-disable-next-line
586
604
  var currFiles = getValue(parent.pathId[parent.pathId.length - 1], parent.feFiles);
587
605
  var query = new Query().where(key, 'equal', value);
588
- // eslint-disable-next-line
589
606
  var lists = new DataManager(currFiles).executeLocal(query);
590
607
  return lists[0];
591
608
  }
@@ -650,7 +667,6 @@ export function createEmptyElement(parent, element, args) {
650
667
  * @returns {Object[]} - returns the sorted data.
651
668
  * @private
652
669
  */
653
- // eslint-disable-next-line
654
670
  export function getDirectories(files) {
655
671
  return new DataManager(files).executeLocal(new Query().where(events.isFile, 'equal', false, false));
656
672
  }
@@ -663,7 +679,6 @@ export function getDirectories(files) {
663
679
  * @private
664
680
  */
665
681
  export function setNodeId(result, rootId) {
666
- // eslint-disable-next-line
667
682
  var dirs = getDirectories(result.files);
668
683
  for (var i = 0, len = dirs.length; i < len; i++) {
669
684
  setValue('_fm_id', rootId + '_' + i, dirs[i]);
@@ -673,16 +688,17 @@ export function setNodeId(result, rootId) {
673
688
  * set the date object
674
689
  *
675
690
  * @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.
676
693
  * @returns {void}
677
694
  * @private
678
695
  */
679
- // eslint-disable-next-line
680
696
  export function setDateObject(args, localeString, dateFormat) {
681
697
  for (var i = 0; i < args.length; i++) {
682
698
  var createdDate = new Date(getValue('dateCreated', args[i]));
683
699
  var modifiedDate = new Date(getValue('dateModified', args[i]));
684
700
  if (isNOU(dateFormat)) {
685
- dateFormat = "MM/dd/yyyy";
701
+ dateFormat = 'MM/dd/yyyy';
686
702
  }
687
703
  setValue('_fm_created', localeString.formatDate(createdDate, { format: dateFormat }), args[i]);
688
704
  setValue('_fm_modified', localeString.formatDate(modifiedDate, { format: dateFormat }), args[i]);
@@ -755,6 +771,7 @@ export function sortbyClickHandler(parent, args) {
755
771
  * Gets the sorted fields
756
772
  *
757
773
  * @param {string} id - specifies the id.
774
+ * @param {IFileManager} [parent] - optional parameter representing the parent IFileManager.
758
775
  * @returns {string} - returns the sorted fields
759
776
  * @private
760
777
  */
@@ -800,14 +817,12 @@ export function getSortField(id, parent) {
800
817
  export function setNextPath(parent, path) {
801
818
  var currfolders = path.split('/');
802
819
  var folders = parent.originalPath.split('/');
803
- // eslint-disable-next-line
804
820
  var root = getValue(parent.pathId[0], parent.feParent);
805
821
  var key = isNOU(getValue('id', root)) ? 'name' : 'id';
806
822
  for (var i = currfolders.length - 1, len = folders.length - 1; i < len; i++) {
807
823
  var eventName = (folders[i + 1] === '') ? events.finalizeEnd : events.initialEnd;
808
824
  var newPath = (folders[i] === '') ? '/' : (parent.path + folders[i] + '/');
809
- // eslint-disable-next-line
810
- var data = getObject(parent, key, folders[i]);
825
+ var data = getObject(parent, key, folders[parseInt(i.toString(), 10)]);
811
826
  if (!isNullOrUndefined(data)) {
812
827
  var id = getValue('_fm_id', data);
813
828
  parent.setProperties({ path: newPath }, true);
@@ -830,13 +845,12 @@ export function setNextPath(parent, path) {
830
845
  * @returns {void}
831
846
  * @private
832
847
  */
833
- // eslint-disable-next-line
834
848
  export function openSearchFolder(parent, data) {
835
849
  parent.originalPath = getFullPath(parent, data, parent.path);
836
850
  var root = getValue(parent.pathId[0], parent.feParent);
837
- var isRoot = getValue('_fm_id', parent.itemData[0]) == 'fe_tree';
851
+ var isRoot = getValue('_fm_id', parent.itemData[0]) === 'fe_tree';
838
852
  var key = isNOU(getValue('id', root)) ? 'name' : 'id';
839
- var searchData = getObject(parent, key, getValue('name', data));
853
+ var searchData = getObject(parent, key, isFileSystemData(parent) ? getValue('id', data) : getValue('name', data));
840
854
  if (isNullOrUndefined(searchData)) {
841
855
  if (!isRoot) {
842
856
  parent.notify(events.clearPathInit, { selectedNode: parent.pathId[parent.pathId.length - 1] });
@@ -866,7 +880,6 @@ export function pasteHandler(parent) {
866
880
  parent.isDragDrop = false;
867
881
  if (parent.selectedNodes.length !== 0 && parent.enablePaste) {
868
882
  var path = (parent.folderPath === '') ? parent.path : parent.folderPath;
869
- // eslint-disable-next-line
870
883
  var subFolder = validateSubFolder(parent, parent.actionRecords, path, parent.path);
871
884
  if (!subFolder) {
872
885
  if ((parent.fileAction === 'move' && parent.targetPath !== path) || parent.fileAction === 'copy') {
@@ -900,7 +913,6 @@ export function pasteHandler(parent) {
900
913
  * @returns {boolean} - returns the validated sub folder.
901
914
  * @private
902
915
  */
903
- // eslint-disable-next-line
904
916
  export function validateSubFolder(parent, data, dropPath, dragPath) {
905
917
  var subFolder = false;
906
918
  for (var i = 0; i < data.length; i++) {
@@ -921,7 +933,8 @@ export function validateSubFolder(parent, data, dropPath, dragPath) {
921
933
  }
922
934
  }
923
935
  else {
924
- var srcData = parent.dragNodes[i];
936
+ var name_1 = parent.dragData[i] ? parent.dragData[i].name : null;
937
+ var srcData = isFileSystemData(parent) ? name_1 : parent.dragNodes[i];
925
938
  var len = 0;
926
939
  if (srcData) {
927
940
  len = srcData.lastIndexOf('/');
@@ -992,15 +1005,15 @@ export function getParentPath(oldPath) {
992
1005
  */
993
1006
  export function getDirectoryPath(parent, args) {
994
1007
  var filePath = getValue(parent.hasId ? 'id' : 'name', args.cwd) + '/';
995
- var fPath = getValue(parent.hasId ? 'filterId' : 'filterPath', args.cwd);
1008
+ var fPath = getValue(parent.hasId && !isNullOrUndefined(parent.ajaxSettings.url) ? 'filterId' : 'filterPath', args.cwd);
996
1009
  if (!isNOU(fPath)) {
997
1010
  if (fPath === '') {
998
- return parent.hasId ? filePath : '/';
1011
+ return parent.hasId && !isNullOrUndefined(parent.ajaxSettings.url) ? filePath : '/';
999
1012
  }
1000
1013
  return fPath.replace(/\\/g, '/') + filePath;
1001
1014
  }
1002
1015
  else {
1003
- return parent.path + filePath;
1016
+ return isFileSystemData(parent) ? filePath : parent.path + filePath;
1004
1017
  }
1005
1018
  }
1006
1019
  /**
@@ -1070,7 +1083,7 @@ export function readDropPath(parent) {
1070
1083
  var node = select('[data-uid="' + pathId + '"]', parent.navigationpaneModule.treeObj.element);
1071
1084
  if (!node) {
1072
1085
  var liElement = document.querySelector('[data-id = "' + getValue('id', parent.dropData) + '"]');
1073
- pathId = liElement.getAttribute("data-uid");
1086
+ pathId = liElement.getAttribute('data-uid');
1074
1087
  node = select('[data-uid="' + pathId + '"]', parent.navigationpaneModule.treeObj.element);
1075
1088
  }
1076
1089
  updatePath(node, parent.dropData, parent);
@@ -1086,11 +1099,8 @@ export function readDropPath(parent) {
1086
1099
  * @returns {object} - returns the duplicated path.
1087
1100
  * @private
1088
1101
  */
1089
- // eslint-disable-next-line
1090
1102
  export function getDuplicateData(parent, name) {
1091
- // eslint-disable-next-line
1092
1103
  var data = null;
1093
- // eslint-disable-next-line
1094
1104
  var records = parent.isDragDrop ? parent.dragData : parent.actionRecords;
1095
1105
  for (var i = 0; i < records.length; i++) {
1096
1106
  if (getValue('name', records[i]) === name) {
@@ -1284,7 +1294,7 @@ export function removeItemClass(parent, value) {
1284
1294
  export function scrollHandler(scrollParent, parent, nodeClass, screenY, clientY) {
1285
1295
  var position;
1286
1296
  var elementData = scrollParent.getBoundingClientRect();
1287
- var node = select("." + nodeClass, scrollParent);
1297
+ var node = select('.' + nodeClass, scrollParent);
1288
1298
  if ((screenY >= (elementData.top + scrollParent.clientHeight - 30)) && !isNullOrUndefined(node)) {
1289
1299
  position = (parent.targetModule === 'navigationpane' || parent.targetModule === 'detailsview') ? node.offsetHeight / 2.5 : node.offsetHeight / 4.5;
1290
1300
  scrollParent.scrollBy(0, position);
@@ -1362,7 +1372,6 @@ export function draggingHandler(parent, args) {
1362
1372
  * @private
1363
1373
  */
1364
1374
  // Ignored the message key value in permission object
1365
- // eslint-disable-next-line
1366
1375
  export function objectToString(data) {
1367
1376
  var str = '';
1368
1377
  var keys = Object.keys(data);
@@ -1381,7 +1390,6 @@ export function objectToString(data) {
1381
1390
  * @returns {string} returns the item name.
1382
1391
  * @private
1383
1392
  */
1384
- // eslint-disable-next-line
1385
1393
  export function getItemName(parent, data) {
1386
1394
  if (parent.hasId) {
1387
1395
  return getValue('id', data);
@@ -1396,7 +1404,6 @@ export function getItemName(parent, data) {
1396
1404
  * @returns {void}
1397
1405
  * @private
1398
1406
  */
1399
- // eslint-disable-next-line
1400
1407
  export function updateRenamingData(parent, data) {
1401
1408
  parent.itemData = [data];
1402
1409
  parent.currentItemText = getValue('name', data);
@@ -1427,7 +1434,6 @@ export function doRename(parent) {
1427
1434
  * @private
1428
1435
  */
1429
1436
  export function doDownload(parent) {
1430
- // eslint-disable-next-line
1431
1437
  var items = parent.itemData;
1432
1438
  for (var i = 0; i < items.length; i++) {
1433
1439
  if (!hasDownloadAccess(items[i])) {
@@ -1448,7 +1454,6 @@ export function doDownload(parent) {
1448
1454
  * @returns {void}
1449
1455
  * @private
1450
1456
  */
1451
- // eslint-disable-next-line
1452
1457
  export function doDeleteFiles(parent, data, newIds) {
1453
1458
  for (var i = 0; i < data.length; i++) {
1454
1459
  if (!hasEditAccess(data[i])) {
@@ -1469,7 +1474,6 @@ export function doDeleteFiles(parent, data, newIds) {
1469
1474
  * @returns {void}
1470
1475
  * @private
1471
1476
  */
1472
- // eslint-disable-next-line
1473
1477
  export function doDownloadFiles(parent, data, newIds) {
1474
1478
  for (var i = 0; i < data.length; i++) {
1475
1479
  if (!hasDownloadAccess(data[i])) {
@@ -1491,7 +1495,6 @@ export function doDownloadFiles(parent, data, newIds) {
1491
1495
  * @returns {void}
1492
1496
  * @private
1493
1497
  */
1494
- // eslint-disable-next-line
1495
1498
  export function createDeniedDialog(parent, data, action) {
1496
1499
  var message = getValue('message', getValue('permission', data));
1497
1500
  if (message === '') {
@@ -1513,7 +1516,6 @@ export function createDeniedDialog(parent, data, action) {
1513
1516
  * @returns {string} - returns accesses classes.
1514
1517
  * @private
1515
1518
  */
1516
- // eslint-disable-next-line
1517
1519
  export function getAccessClass(data) {
1518
1520
  return !hasReadAccess(data) ? 'e-fe-locked e-fe-hidden' : 'e-fe-locked';
1519
1521
  }
@@ -1524,9 +1526,7 @@ export function getAccessClass(data) {
1524
1526
  * @returns {boolean} - returns read access.
1525
1527
  * @private
1526
1528
  */
1527
- // eslint-disable-next-line
1528
1529
  export function hasReadAccess(data) {
1529
- // eslint-disable-next-line
1530
1530
  var permission = getValue('permission', data);
1531
1531
  return (permission && !getValue('read', permission)) ? false : true;
1532
1532
  }
@@ -1537,9 +1537,7 @@ export function hasReadAccess(data) {
1537
1537
  * @returns {boolean} - returns edit access.
1538
1538
  * @private
1539
1539
  */
1540
- // eslint-disable-next-line
1541
1540
  export function hasEditAccess(data) {
1542
- // eslint-disable-next-line
1543
1541
  var permission = getValue('permission', data);
1544
1542
  return permission ? ((getValue('read', permission) && getValue('write', permission))) : true;
1545
1543
  }
@@ -1550,9 +1548,7 @@ export function hasEditAccess(data) {
1550
1548
  * @returns {boolean} - returns content access.
1551
1549
  * @private
1552
1550
  */
1553
- // eslint-disable-next-line
1554
1551
  export function hasContentAccess(data) {
1555
- // eslint-disable-next-line
1556
1552
  var permission = getValue('permission', data);
1557
1553
  return permission ? ((getValue('read', permission) && getValue('writeContents', permission))) : true;
1558
1554
  }
@@ -1563,9 +1559,7 @@ export function hasContentAccess(data) {
1563
1559
  * @returns {boolean} - returns upload access.
1564
1560
  * @private
1565
1561
  */
1566
- // eslint-disable-next-line
1567
1562
  export function hasUploadAccess(data) {
1568
- // eslint-disable-next-line
1569
1563
  var permission = getValue('permission', data);
1570
1564
  return permission ? ((getValue('read', permission) && getValue('upload', permission))) : true;
1571
1565
  }
@@ -1576,9 +1570,7 @@ export function hasUploadAccess(data) {
1576
1570
  * @returns {boolean} - returns download access.
1577
1571
  * @private
1578
1572
  */
1579
- // eslint-disable-next-line
1580
1573
  export function hasDownloadAccess(data) {
1581
- // eslint-disable-next-line
1582
1574
  var permission = getValue('permission', data);
1583
1575
  return permission ? ((getValue('read', permission) && getValue('download', permission))) : true;
1584
1576
  }
@@ -1590,7 +1582,6 @@ export function hasDownloadAccess(data) {
1590
1582
  * @private
1591
1583
  */
1592
1584
  export function createNewFolder(parent) {
1593
- // eslint-disable-next-line
1594
1585
  var details = parent.itemData[0];
1595
1586
  if (!hasContentAccess(details)) {
1596
1587
  createDeniedDialog(parent, details, events.permissionEditContents);
@@ -1607,7 +1598,6 @@ export function createNewFolder(parent) {
1607
1598
  * @private
1608
1599
  */
1609
1600
  export function uploadItem(parent) {
1610
- // eslint-disable-next-line
1611
1601
  var details = parent.itemData[0];
1612
1602
  if (!hasUploadAccess(details)) {
1613
1603
  createDeniedDialog(parent, details, events.permissionUpload);
@@ -1618,3 +1608,65 @@ export function uploadItem(parent) {
1618
1608
  uploadEle.click();
1619
1609
  }
1620
1610
  }
1611
+ /**
1612
+ * Close dialog popup handler
1613
+ *
1614
+ * @param {IFileManager} parent - specifies the parent.
1615
+ * @returns {void}
1616
+ * @private
1617
+ */
1618
+ export function closePopup(parent) {
1619
+ if (!isNullOrUndefined(parent.dialogObj)) {
1620
+ parent.dialogObj.hide();
1621
+ }
1622
+ }
1623
+ /**
1624
+ * Access control handler
1625
+ *
1626
+ * @param {IFileManager} parent - specifies the parent.
1627
+ * @param {Object[]} itemData - specifies the item elements.
1628
+ * @param {string} action - specifies the action.
1629
+ * @param {boolean} isPathPermision - specifies the path permission.
1630
+ * @returns {string} returns the path.
1631
+ * @private
1632
+ */
1633
+ export function getAccessDetails(parent, itemData, action, isPathPermision) {
1634
+ var accessMessage = '';
1635
+ for (var i = 0; i < itemData.length; i++) {
1636
+ var permission = getValue('permission', itemData[i]);
1637
+ if (permission == null) {
1638
+ permission = undefined;
1639
+ }
1640
+ if (isPathPermision) {
1641
+ if (permission && (!getValue('read', permission) || !getValue('writeContents', permission))) {
1642
+ accessMessage = getValue('message', getValue('permission', itemData[i]));
1643
+ if (accessMessage === '') {
1644
+ accessMessage = getLocaleText(parent, 'Access-Message').replace('{0}', getValue('name', itemData[i])).replace('{1}', 'writeContents');
1645
+ }
1646
+ }
1647
+ }
1648
+ else {
1649
+ var copyOrMovePermission = action === 'copy' ? getValue('copy', permission) : getValue('write', permission);
1650
+ if (permission && (!getValue('read', permission) || !copyOrMovePermission)) {
1651
+ accessMessage = getValue('message', getValue('permission', itemData[i]));
1652
+ if (accessMessage === '') {
1653
+ accessMessage = getLocaleText(parent, 'Access-Message').replace('{0}', getValue('name', itemData[i])).replace('{1}', action);
1654
+ }
1655
+ }
1656
+ }
1657
+ if (accessMessage !== '') {
1658
+ parent.responseData = {
1659
+ cwd: null,
1660
+ details: null,
1661
+ error: {
1662
+ code: '401',
1663
+ message: accessMessage,
1664
+ fileExists: null
1665
+ },
1666
+ files: null
1667
+ };
1668
+ break;
1669
+ }
1670
+ }
1671
+ return accessMessage;
1672
+ }
@@ -42,7 +42,7 @@ export declare class DetailsView {
42
42
  /**
43
43
  * Gets the grid height.
44
44
  *
45
- * @returns The grid height.
45
+ * @returns {number} - The grid height.
46
46
  * @private
47
47
  */
48
48
  private getGridHeight;