@syncfusion/ej2-filemanager 33.2.6 → 33.2.13

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 (90) hide show
  1. package/dist/ej2-filemanager.min.js +2 -2
  2. package/dist/ej2-filemanager.umd.min.js +2 -2
  3. package/dist/ej2-filemanager.umd.min.js.map +1 -1
  4. package/dist/es6/ej2-filemanager.es2015.js +290 -8
  5. package/dist/es6/ej2-filemanager.es2015.js.map +1 -1
  6. package/dist/es6/ej2-filemanager.es5.js +291 -8
  7. package/dist/es6/ej2-filemanager.es5.js.map +1 -1
  8. package/dist/global/ej2-filemanager.min.js +2 -2
  9. package/dist/global/ej2-filemanager.min.js.map +1 -1
  10. package/dist/global/index.d.ts +1 -1
  11. package/package.json +6 -6
  12. package/src/file-manager/layout/details-view.d.ts +10 -0
  13. package/src/file-manager/layout/details-view.js +291 -8
  14. package/styles/bds-lite.css +3 -7
  15. package/styles/bds.css +6 -10
  16. package/styles/bootstrap-dark-lite.css +0 -4
  17. package/styles/bootstrap-dark.css +0 -4
  18. package/styles/bootstrap-lite.css +0 -4
  19. package/styles/bootstrap.css +0 -4
  20. package/styles/bootstrap4-lite.css +3 -7
  21. package/styles/bootstrap4.css +6 -10
  22. package/styles/bootstrap5-dark-lite.css +3 -7
  23. package/styles/bootstrap5-dark.css +5 -9
  24. package/styles/bootstrap5-lite.css +3 -7
  25. package/styles/bootstrap5.3-lite.css +3 -7
  26. package/styles/bootstrap5.3.css +5 -9
  27. package/styles/bootstrap5.css +5 -9
  28. package/styles/fabric-dark-lite.css +3 -7
  29. package/styles/fabric-dark.css +3 -7
  30. package/styles/fabric-lite.css +3 -7
  31. package/styles/fabric.css +3 -7
  32. package/styles/file-manager/_bds-definition.scss +6 -6
  33. package/styles/file-manager/_bootstrap4-definition.scss +6 -6
  34. package/styles/file-manager/_bootstrap5-dark-definition.scss +5 -5
  35. package/styles/file-manager/_bootstrap5-definition.scss +5 -5
  36. package/styles/file-manager/_bootstrap5.3-definition.scss +5 -5
  37. package/styles/file-manager/_fabric-dark-definition.scss +3 -3
  38. package/styles/file-manager/_fabric-definition.scss +3 -3
  39. package/styles/file-manager/_fluent-dark-definition.scss +5 -5
  40. package/styles/file-manager/_fluent-definition.scss +5 -5
  41. package/styles/file-manager/_layout.scss +0 -1
  42. package/styles/file-manager/_material-dark-definition.scss +6 -6
  43. package/styles/file-manager/_material-definition.scss +6 -6
  44. package/styles/file-manager/_tailwind-dark-definition.scss +6 -6
  45. package/styles/file-manager/_tailwind-definition.scss +6 -6
  46. package/styles/file-manager/bds.css +6 -10
  47. package/styles/file-manager/bootstrap-dark.css +0 -4
  48. package/styles/file-manager/bootstrap.css +0 -4
  49. package/styles/file-manager/bootstrap4.css +6 -10
  50. package/styles/file-manager/bootstrap5-dark.css +5 -9
  51. package/styles/file-manager/bootstrap5.3.css +5 -9
  52. package/styles/file-manager/bootstrap5.css +5 -9
  53. package/styles/file-manager/fabric-dark.css +3 -7
  54. package/styles/file-manager/fabric.css +3 -7
  55. package/styles/file-manager/fluent-dark.css +5 -9
  56. package/styles/file-manager/fluent.css +5 -9
  57. package/styles/file-manager/fluent2.css +0 -4
  58. package/styles/file-manager/highcontrast-light.css +0 -4
  59. package/styles/file-manager/highcontrast.css +0 -4
  60. package/styles/file-manager/material-dark.css +6 -10
  61. package/styles/file-manager/material.css +6 -10
  62. package/styles/file-manager/material3-dark.css +0 -4
  63. package/styles/file-manager/material3.css +0 -4
  64. package/styles/file-manager/tailwind-dark.css +6 -10
  65. package/styles/file-manager/tailwind.css +6 -10
  66. package/styles/file-manager/tailwind3.css +0 -4
  67. package/styles/fluent-dark-lite.css +2 -6
  68. package/styles/fluent-dark.css +5 -9
  69. package/styles/fluent-lite.css +2 -6
  70. package/styles/fluent.css +5 -9
  71. package/styles/fluent2-lite.css +0 -4
  72. package/styles/fluent2.css +0 -4
  73. package/styles/highcontrast-light-lite.css +0 -4
  74. package/styles/highcontrast-light.css +0 -4
  75. package/styles/highcontrast-lite.css +0 -4
  76. package/styles/highcontrast.css +0 -4
  77. package/styles/material-dark-lite.css +3 -7
  78. package/styles/material-dark.css +6 -10
  79. package/styles/material-lite.css +3 -7
  80. package/styles/material.css +6 -10
  81. package/styles/material3-dark-lite.css +0 -4
  82. package/styles/material3-dark.css +0 -4
  83. package/styles/material3-lite.css +0 -4
  84. package/styles/material3.css +0 -4
  85. package/styles/tailwind-dark-lite.css +3 -7
  86. package/styles/tailwind-dark.css +6 -10
  87. package/styles/tailwind-lite.css +3 -7
  88. package/styles/tailwind.css +6 -10
  89. package/styles/tailwind3-lite.css +0 -4
  90. package/styles/tailwind3.css +0 -4
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * filename: index.d.ts
3
- * version : 33.2.6
3
+ * version : 33.2.13
4
4
  * Copyright Syncfusion Inc. 2001 - 2025. All rights reserved.
5
5
  * Use of this code is subject to the terms of our license.
6
6
  * A copy of the current license can be obtained at any time by e-mailing
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@syncfusion/ej2-filemanager",
3
- "version": "33.2.6",
3
+ "version": "33.2.13",
4
4
  "description": "Essential JS 2 FileManager Component",
5
5
  "author": "Syncfusion Inc.",
6
6
  "license": "SEE LICENSE IN license",
@@ -10,13 +10,13 @@
10
10
  "dependencies": {
11
11
  "@syncfusion/ej2-base": "~33.2.3",
12
12
  "@syncfusion/ej2-buttons": "~33.2.5",
13
- "@syncfusion/ej2-data": "~33.2.5",
14
- "@syncfusion/ej2-grids": "~33.2.5",
15
- "@syncfusion/ej2-inputs": "~33.2.5",
13
+ "@syncfusion/ej2-data": "~33.2.12",
14
+ "@syncfusion/ej2-grids": "~33.2.12",
15
+ "@syncfusion/ej2-inputs": "~33.2.12",
16
16
  "@syncfusion/ej2-layouts": "~33.2.3",
17
17
  "@syncfusion/ej2-lists": "~33.2.3",
18
- "@syncfusion/ej2-navigations": "~33.2.6",
19
- "@syncfusion/ej2-popups": "~33.2.5",
18
+ "@syncfusion/ej2-navigations": "~33.2.10",
19
+ "@syncfusion/ej2-popups": "~33.2.7",
20
20
  "@syncfusion/ej2-splitbuttons": "~33.2.6"
21
21
  },
22
22
  "devDependencies": {},
@@ -21,6 +21,7 @@ export declare class DetailsView {
21
21
  private dragObj;
22
22
  private startIndex;
23
23
  private firstItemIndex;
24
+ private currentColumnIndex;
24
25
  private isSelectionUpdate;
25
26
  private currentSelectedItem;
26
27
  private count;
@@ -28,6 +29,7 @@ export declare class DetailsView {
28
29
  private isLoaded;
29
30
  private isNameWidth;
30
31
  private isMultiSelect;
32
+ private isTabKeypressed;
31
33
  gridObj: Grid;
32
34
  pasteOperation: boolean;
33
35
  uploadOperation: boolean;
@@ -125,6 +127,7 @@ export declare class DetailsView {
125
127
  private removeFocus;
126
128
  private onBlur;
127
129
  private getFocusedItemIndex;
130
+ private getRowIndexFromParent;
128
131
  private keydownHandler;
129
132
  private keyupHandler;
130
133
  gridSelectNodes(): Object[];
@@ -136,6 +139,9 @@ export declare class DetailsView {
136
139
  private moveFunction;
137
140
  private spaceSelection;
138
141
  private ctrlMoveFunction;
142
+ private moveColumn;
143
+ private clearCellFocus;
144
+ private getNextColumnIndex;
139
145
  private checkRowsKey;
140
146
  private InnerItems;
141
147
  private shiftSelectFocusItem;
@@ -149,6 +155,10 @@ export declare class DetailsView {
149
155
  */
150
156
  addFocus(item: number | null): void;
151
157
  private addHeaderFocus;
158
+ private tryNavigateToNextCellInRow;
159
+ private handleReverseTabNavigation;
160
+ private moveFocusToHeader;
161
+ private clearDetailsFocus;
152
162
  private getFocusedItem;
153
163
  private isSelected;
154
164
  private shiftSelectedItem;
@@ -33,6 +33,7 @@ var DetailsView = /** @class */ (function () {
33
33
  this.dragObj = null;
34
34
  this.startIndex = null;
35
35
  this.firstItemIndex = null;
36
+ this.currentColumnIndex = 0;
36
37
  this.isSelectionUpdate = false;
37
38
  this.currentSelectedItem = [];
38
39
  this.count = 0;
@@ -40,6 +41,7 @@ var DetailsView = /** @class */ (function () {
40
41
  this.isLoaded = false;
41
42
  this.isNameWidth = false;
42
43
  this.isMultiSelect = false;
44
+ this.isTabKeypressed = false;
43
45
  this.pasteOperation = false;
44
46
  this.uploadOperation = false;
45
47
  this.nextFocusIndex = null;
@@ -51,6 +53,7 @@ var DetailsView = /** @class */ (function () {
51
53
  altEnter: 'alt+enter',
52
54
  esc: 'escape',
53
55
  tab: 'tab',
56
+ shiftTab: 'shift+tab',
54
57
  moveDown: 'downarrow',
55
58
  ctrlEnd: 'ctrl+end',
56
59
  ctrlHome: 'ctrl+home',
@@ -73,6 +76,8 @@ var DetailsView = /** @class */ (function () {
73
76
  end: 'end',
74
77
  home: 'home',
75
78
  moveUp: 'uparrow',
79
+ moveLeft: 'leftarrow',
80
+ moveRight: 'rightarrow',
76
81
  del: 'delete',
77
82
  ctrlX: this.parent.isMac ? 'cmd+x' : 'ctrl+x',
78
83
  ctrlC: this.parent.isMac ? 'cmd+c' : 'ctrl+c',
@@ -548,7 +553,11 @@ var DetailsView = /** @class */ (function () {
548
553
  }
549
554
  };
550
555
  DetailsView.prototype.onSortColumn = function () {
551
- if (this.parent.sortOrder !== 'None') {
556
+ var _this = this;
557
+ var columns = this.gridObj.columns;
558
+ var isValidSortField = !isNullOrUndefined(columns) &&
559
+ columns.some(function (col) { return col.field === _this.parent.sortBy; });
560
+ if (this.parent.sortOrder !== 'None' && isValidSortField) {
552
561
  this.gridObj.sortModule.sortColumn(this.parent.sortBy, this.parent.sortOrder);
553
562
  }
554
563
  else {
@@ -1406,8 +1415,21 @@ var DetailsView = /** @class */ (function () {
1406
1415
  }
1407
1416
  };
1408
1417
  DetailsView.prototype.getFocusedItemIndex = function () {
1409
- return (!isNOU(this.getFocusedItem())) ?
1410
- parseInt(this.getFocusedItem().getAttribute('aria-rowindex'), 10) - 1 : null;
1418
+ var focusedItem = this.getFocusedItem();
1419
+ if (isNOU(focusedItem)) {
1420
+ return null;
1421
+ }
1422
+ if (focusedItem.classList.contains('e-rowcell')) {
1423
+ return this.getRowIndexFromParent(focusedItem);
1424
+ }
1425
+ return parseInt(focusedItem.getAttribute('aria-rowindex'), 10) - 1;
1426
+ };
1427
+ DetailsView.prototype.getRowIndexFromParent = function (focusedItem) {
1428
+ var parentRow = focusedItem.parentElement;
1429
+ if (parentRow && parentRow.classList.contains('e-row')) {
1430
+ return parseInt(parentRow.getAttribute('aria-rowindex'), 10) - 1;
1431
+ }
1432
+ return null;
1411
1433
  };
1412
1434
  /* istanbul ignore next */
1413
1435
  DetailsView.prototype.keydownHandler = function (e) {
@@ -1436,6 +1458,8 @@ var DetailsView = /** @class */ (function () {
1436
1458
  case 'ctrlLeft':
1437
1459
  case 'shiftLeft':
1438
1460
  case 'csLeft':
1461
+ case 'tab':
1462
+ case 'shiftTab':
1439
1463
  case 'esc':
1440
1464
  case 'del':
1441
1465
  case 'shiftdel':
@@ -1445,6 +1469,8 @@ var DetailsView = /** @class */ (function () {
1445
1469
  case 'f2':
1446
1470
  case 'moveDown':
1447
1471
  case 'moveUp':
1472
+ case 'moveLeft':
1473
+ case 'moveRight':
1448
1474
  case 'ctrlD':
1449
1475
  e.preventDefault();
1450
1476
  break;
@@ -1527,12 +1553,18 @@ var DetailsView = /** @class */ (function () {
1527
1553
  break;
1528
1554
  case 'ctrlHome':
1529
1555
  case 'tab':
1556
+ case 'shiftTab':
1530
1557
  if (!isNOU(gridItems[0])) {
1531
1558
  if (!this.parent.allowMultiSelection && e.action === 'ctrlHome') {
1532
1559
  this.gridObj.selectRow(0);
1533
1560
  }
1534
- else if (this.gridObj.selectedRowIndex !== -1 && e.action === 'tab') {
1535
- return;
1561
+ else if (e.action === 'shiftTab') {
1562
+ this.handleReverseTabNavigation(e);
1563
+ }
1564
+ else if (e.action === 'tab') {
1565
+ this.isTabKeypressed = true;
1566
+ this.addHeaderFocus(e);
1567
+ this.isTabKeypressed = false;
1536
1568
  }
1537
1569
  else {
1538
1570
  this.addHeaderFocus(e);
@@ -1602,6 +1634,10 @@ var DetailsView = /** @class */ (function () {
1602
1634
  case 'moveDown':
1603
1635
  this.moveFunction(gridItems, e, selIndex);
1604
1636
  break;
1637
+ case 'moveLeft':
1638
+ case 'moveRight':
1639
+ this.moveColumn(e);
1640
+ break;
1605
1641
  case 'end':
1606
1642
  lastItem = [getValue(this.parent.hasId ? 'id' : 'name', gridItems[gridLength - 1])];
1607
1643
  this.parent.setProperties({ selectedItems: lastItem }, true);
@@ -1732,6 +1768,72 @@ var DetailsView = /** @class */ (function () {
1732
1768
  }
1733
1769
  this.addFocus(nextItem);
1734
1770
  };
1771
+ DetailsView.prototype.moveColumn = function (e) {
1772
+ var focusedItem = this.getFocusedItem();
1773
+ if (isNOU(focusedItem)) {
1774
+ return;
1775
+ }
1776
+ var isHeaderFocused = focusedItem.classList.contains('e-headercell');
1777
+ var isRowFocused = focusedItem.classList.contains('e-row');
1778
+ var isCellFocused = focusedItem.classList.contains('e-rowcell');
1779
+ if (!isHeaderFocused && !isRowFocused && !isCellFocused) {
1780
+ return;
1781
+ }
1782
+ if (isHeaderFocused) {
1783
+ var headers = Array.from(this.element.querySelectorAll('th.e-headercell:not(.e-fe-checkbox)'));
1784
+ var currentIndex = headers.indexOf(focusedItem);
1785
+ if (currentIndex === -1) {
1786
+ return;
1787
+ }
1788
+ var nextIndex = this.getNextColumnIndex(currentIndex, headers.length, e.action === 'moveRight');
1789
+ // eslint-disable-next-line security/detect-object-injection
1790
+ var headerElement = headers[nextIndex];
1791
+ focusedItem.setAttribute('tabindex', '-1');
1792
+ removeClass([focusedItem], [CLS.FOCUS, CLS.FOCUSED]);
1793
+ headerElement.setAttribute('tabindex', '0');
1794
+ headerElement.focus();
1795
+ addClass([headerElement], [CLS.FOCUS, CLS.FOCUSED]);
1796
+ }
1797
+ else if (isRowFocused || isCellFocused) {
1798
+ var row = (isRowFocused ? focusedItem : focusedItem.parentElement);
1799
+ if (!isRowFocused && (!row || !row.classList.contains('e-row'))) {
1800
+ return;
1801
+ }
1802
+ var cells = Array.from(row.querySelectorAll('.e-rowcell'));
1803
+ if (cells.length === 0) {
1804
+ return;
1805
+ }
1806
+ var currentCellIndex = this.currentColumnIndex || 0;
1807
+ var nextColumnIndex = this.getNextColumnIndex(currentCellIndex, cells.length, e.action === 'moveRight');
1808
+ this.currentColumnIndex = nextColumnIndex;
1809
+ if (isRowFocused) {
1810
+ removeClass([row], [CLS.FOCUS, CLS.FOCUSED]);
1811
+ row.setAttribute('tabindex', '-1');
1812
+ }
1813
+ else {
1814
+ removeClass([focusedItem], [CLS.FOCUS, CLS.FOCUSED]);
1815
+ focusedItem.setAttribute('tabindex', '-1');
1816
+ }
1817
+ this.clearCellFocus(cells);
1818
+ // eslint-disable-next-line security/detect-object-injection
1819
+ var nextCell = cells[nextColumnIndex];
1820
+ nextCell.setAttribute('tabindex', '0');
1821
+ addClass([nextCell], [CLS.FOCUS, CLS.FOCUSED]);
1822
+ nextCell.focus();
1823
+ }
1824
+ };
1825
+ DetailsView.prototype.clearCellFocus = function (cells) {
1826
+ for (var i = 0; i < cells.length; i++) {
1827
+ cells[i].setAttribute('tabindex', '-1');
1828
+ removeClass([cells[i]], [CLS.FOCUS, CLS.FOCUSED]);
1829
+ }
1830
+ };
1831
+ DetailsView.prototype.getNextColumnIndex = function (currentIndex, maxLength, isRight) {
1832
+ if (isRight) {
1833
+ return Math.min(currentIndex + 1, maxLength - 1);
1834
+ }
1835
+ return Math.max(currentIndex - 1, 0);
1836
+ };
1735
1837
  DetailsView.prototype.checkRowsKey = function (items, indexValue, focIndex, e) {
1736
1838
  if (this.gridObj.checkAllRows === 'Uncheck' || this.gridObj.checkAllRows === 'Intermediate') {
1737
1839
  if (e.action !== 'csHome' && e.action !== 'csEnd') {
@@ -1817,18 +1919,58 @@ var DetailsView = /** @class */ (function () {
1817
1919
  if (fItem) {
1818
1920
  fItem.removeAttribute('tabindex');
1819
1921
  removeClass([fItem], [CLS.FOCUS, CLS.FOCUSED]);
1922
+ if (fItem.classList.contains('e-rowcell')) {
1923
+ var parentRow = fItem.parentElement;
1924
+ if (parentRow) {
1925
+ removeClass([parentRow], [CLS.FOCUS, CLS.FOCUSED]);
1926
+ parentRow.removeAttribute('tabindex');
1927
+ }
1928
+ }
1929
+ if (fItem.classList.contains('e-row')) {
1930
+ var focusedCells = fItem.querySelectorAll('.e-rowcell');
1931
+ for (var i = 0; i < focusedCells.length; i++) {
1932
+ if (focusedCells[i].classList.contains('e-focus') || focusedCells[i].classList.contains('e-focused')) {
1933
+ focusedCells[i].removeAttribute('tabindex');
1934
+ removeClass([focusedCells[i]], [CLS.FOCUS, CLS.FOCUSED]);
1935
+ }
1936
+ }
1937
+ }
1820
1938
  }
1821
1939
  if (!isNOU(itemElement)) {
1822
1940
  this.gridObj.element.setAttribute('tabindex', '-1');
1823
- itemElement.setAttribute('tabindex', '0');
1824
- itemElement.focus();
1825
- addClass([itemElement], [CLS.FOCUS, CLS.FOCUSED]);
1941
+ var targetRow = itemElement;
1942
+ targetRow.setAttribute('tabindex', '0');
1943
+ var cells = targetRow.querySelectorAll('.e-rowcell');
1944
+ this.clearCellFocus(Array.from(cells));
1945
+ targetRow.focus();
1946
+ addClass([targetRow], [CLS.FOCUS, CLS.FOCUSED]);
1947
+ this.currentColumnIndex = 0;
1826
1948
  }
1827
1949
  };
1828
1950
  DetailsView.prototype.addHeaderFocus = function (e) {
1829
1951
  var treeFocus = select('.e-row', this.element);
1830
1952
  this.gridObj.element.setAttribute('tabindex', '-1');
1953
+ var isHeaderFocused = this.getFocusedItem();
1831
1954
  var nameFocus;
1955
+ var focusedRow = select('.e-row.e-focus', this.element);
1956
+ var gridIconCell;
1957
+ if (!isNOU(focusedRow) && this.isTabKeypressed) {
1958
+ gridIconCell = select('.e-rowcell.e-fe-grid-icon', focusedRow);
1959
+ }
1960
+ else {
1961
+ if (this.isTabKeypressed) {
1962
+ var activeCell = this.getFocusedItem();
1963
+ if (activeCell && activeCell.classList.contains('e-rowcell')) {
1964
+ gridIconCell = select('.e-rowcell.e-fe-grid-icon', activeCell.closest('.e-row'));
1965
+ }
1966
+ else {
1967
+ gridIconCell = select('.e-rowcell.e-fe-grid-icon', this.element);
1968
+ }
1969
+ }
1970
+ }
1971
+ if (this.tryNavigateToNextCellInRow(focusedRow, gridIconCell, isHeaderFocused)) {
1972
+ return;
1973
+ }
1832
1974
  if (!isNOU(e.target) && e.target.classList.contains('e-defaultcursor')) {
1833
1975
  this.addFocus(0);
1834
1976
  nameFocus = e.target.nextElementSibling;
@@ -1850,6 +1992,147 @@ var DetailsView = /** @class */ (function () {
1850
1992
  }
1851
1993
  }
1852
1994
  };
1995
+ DetailsView.prototype.tryNavigateToNextCellInRow = function (focusedRow, gridIconCell, isHeaderFocused) {
1996
+ if ((!isNOU(focusedRow) || !isNOU(gridIconCell)) && (!isNOU(isHeaderFocused) && !isHeaderFocused.classList.contains('e-headercell'))) {
1997
+ if (!isNOU(gridIconCell)) {
1998
+ var activeCell = this.getFocusedItem();
1999
+ if (activeCell && activeCell.classList.contains('e-rowcell')) {
2000
+ var row = activeCell.parentElement;
2001
+ var cells = row ? Array.from(row.querySelectorAll('.e-rowcell')) : [];
2002
+ var currentIndex = cells.indexOf(activeCell);
2003
+ var nextIndex = currentIndex + 1;
2004
+ if (nextIndex < cells.length) {
2005
+ this.currentColumnIndex = nextIndex;
2006
+ activeCell.setAttribute('tabindex', '-1');
2007
+ removeClass([activeCell], [CLS.FOCUS, CLS.FOCUSED]);
2008
+ // eslint-disable-next-line security/detect-object-injection
2009
+ var nextCell = cells[nextIndex];
2010
+ nextCell.setAttribute('tabindex', '0');
2011
+ addClass([nextCell], [CLS.FOCUS, CLS.FOCUSED]);
2012
+ nextCell.focus();
2013
+ return true;
2014
+ }
2015
+ else {
2016
+ var currentRow = activeCell.parentElement;
2017
+ var rows = this.gridObj.getRows();
2018
+ var currentRowIndex = rows.indexOf(currentRow);
2019
+ if (currentRowIndex !== -1) {
2020
+ var nextRow = this.gridObj.getRowByIndex(currentRowIndex + 1);
2021
+ if (!isNOU(nextRow)) {
2022
+ activeCell.setAttribute('tabindex', '-1');
2023
+ removeClass([activeCell], [CLS.FOCUS, CLS.FOCUSED]);
2024
+ this.addFocus(currentRowIndex + 1);
2025
+ return true;
2026
+ }
2027
+ else {
2028
+ activeCell.setAttribute('tabindex', '-1');
2029
+ removeClass([activeCell], [CLS.FOCUS, CLS.FOCUSED]);
2030
+ activeCell.blur();
2031
+ return true;
2032
+ }
2033
+ }
2034
+ return false;
2035
+ }
2036
+ }
2037
+ var focusedRow_1 = this.getFocusedItem();
2038
+ if (!isNOU(focusedRow_1) && focusedRow_1.classList.contains('e-row')) {
2039
+ focusedRow_1.setAttribute('tabindex', '-1');
2040
+ removeClass([focusedRow_1], [CLS.FOCUS, CLS.FOCUSED]);
2041
+ }
2042
+ gridIconCell.setAttribute('tabindex', '0');
2043
+ addClass([gridIconCell], [CLS.FOCUS, CLS.FOCUSED]);
2044
+ gridIconCell.focus();
2045
+ return true;
2046
+ }
2047
+ }
2048
+ return false;
2049
+ };
2050
+ DetailsView.prototype.handleReverseTabNavigation = function (e) {
2051
+ e.preventDefault();
2052
+ var focusedItem = this.getFocusedItem();
2053
+ var headers = Array.from(this.element.querySelectorAll('th.e-headercell:not(.e-fe-checkbox)'));
2054
+ if (headers.length === 0) {
2055
+ return;
2056
+ }
2057
+ if (!isNOU(focusedItem) && focusedItem.classList.contains('e-rowcell')) {
2058
+ var row = focusedItem.parentElement;
2059
+ var cells = row ? Array.from(row.querySelectorAll('.e-rowcell:not(.e-gridchkbox)')) : [];
2060
+ var currentTargetIndex = cells.indexOf(focusedItem);
2061
+ var prevIndex = currentTargetIndex - 1;
2062
+ // eslint-disable-next-line security/detect-object-injection
2063
+ var targetElement = prevIndex >= 0 ? cells[prevIndex] : row;
2064
+ focusedItem.setAttribute('tabindex', '-1');
2065
+ removeClass([focusedItem], [CLS.FOCUS, CLS.FOCUSED]);
2066
+ targetElement.setAttribute('tabindex', '0');
2067
+ addClass([targetElement], [CLS.FOCUS, CLS.FOCUSED]);
2068
+ targetElement.focus();
2069
+ return;
2070
+ }
2071
+ if (!isNOU(focusedItem) && focusedItem.classList.contains('e-row')) {
2072
+ var rows = this.gridObj.getRows();
2073
+ var currentRowIndex = rows.indexOf(focusedItem);
2074
+ if (currentRowIndex > 0) {
2075
+ var previousRow = rows[currentRowIndex - 1];
2076
+ var previousRowCells = Array.from(previousRow.querySelectorAll('.e-rowcell:not(.e-gridchkbox)'));
2077
+ var lastCell = previousRowCells[previousRowCells.length - 1];
2078
+ focusedItem.setAttribute('tabindex', '-1');
2079
+ removeClass([focusedItem], [CLS.FOCUS, CLS.FOCUSED]);
2080
+ lastCell.setAttribute('tabindex', '0');
2081
+ addClass([lastCell], [CLS.FOCUS, CLS.FOCUSED]);
2082
+ lastCell.focus();
2083
+ return;
2084
+ }
2085
+ focusedItem.setAttribute('tabindex', '-1');
2086
+ removeClass([focusedItem], [CLS.FOCUS, CLS.FOCUSED]);
2087
+ this.moveFocusToHeader(headers[headers.length - 1]);
2088
+ return;
2089
+ }
2090
+ if (!isNOU(focusedItem) && focusedItem.classList.contains('e-headercell')) {
2091
+ var currentIndex = headers.indexOf(focusedItem);
2092
+ if (currentIndex > 0) {
2093
+ this.moveFocusToHeader(headers[currentIndex - 1]);
2094
+ }
2095
+ else if (currentIndex === 0) {
2096
+ this.clearDetailsFocus();
2097
+ }
2098
+ return;
2099
+ }
2100
+ if (!isNOU(focusedItem)) {
2101
+ this.moveFocusToHeader(headers[headers.length - 1]);
2102
+ }
2103
+ };
2104
+ DetailsView.prototype.moveFocusToHeader = function (header) {
2105
+ var focusedItem = this.getFocusedItem();
2106
+ if (!isNOU(focusedItem)) {
2107
+ focusedItem.setAttribute('tabindex', '-1');
2108
+ removeClass([focusedItem], [CLS.FOCUS, CLS.FOCUSED]);
2109
+ }
2110
+ header.setAttribute('tabindex', '0');
2111
+ header.focus();
2112
+ addClass([header], [CLS.FOCUS, CLS.FOCUSED]);
2113
+ };
2114
+ DetailsView.prototype.clearDetailsFocus = function () {
2115
+ var focusedItem = this.getFocusedItem();
2116
+ if (!isNOU(focusedItem)) {
2117
+ focusedItem.setAttribute('tabindex', '-1');
2118
+ removeClass([focusedItem], [CLS.FOCUS, CLS.FOCUSED]);
2119
+ }
2120
+ var breadcrumbBar = select('.' + CLS.BREADCRUMBS, this.parent.element);
2121
+ if (!isNOU(breadcrumbBar)) {
2122
+ var searchInput = breadcrumbBar.querySelector('input[aria-label="Search"]');
2123
+ if (!isNOU(searchInput)) {
2124
+ searchInput.setAttribute('tabindex', '0');
2125
+ searchInput.focus();
2126
+ }
2127
+ else {
2128
+ var lastBreadcrumb = breadcrumbBar.querySelector('.e-address-list-item:last-child');
2129
+ if (!isNOU(lastBreadcrumb)) {
2130
+ lastBreadcrumb.setAttribute('tabindex', '0');
2131
+ lastBreadcrumb.focus();
2132
+ }
2133
+ }
2134
+ }
2135
+ };
1853
2136
  DetailsView.prototype.getFocusedItem = function () {
1854
2137
  return select('.' + CLS.FOCUSED, this.element);
1855
2138
  };
@@ -588,11 +588,11 @@ ejs-filemanager {
588
588
  padding-top: 0;
589
589
  }
590
590
  .e-filemanager .e-treeview .e-list-parent .e-list-item .e-fullrow {
591
- height: 34px;
591
+ height: 38px;
592
592
  }
593
593
  .e-filemanager .e-treeview .e-list-parent .e-list-item .e-list-text {
594
- height: 32px;
595
- line-height: 32px;
594
+ height: 38px;
595
+ line-height: 38px;
596
596
  }
597
597
  .e-filemanager .e-treeview .e-list-parent .e-list-item.e-fe-drop-folder > .e-fullrow {
598
598
  border: 1px dashed;
@@ -813,10 +813,6 @@ ejs-filemanager {
813
813
  .e-filemanager .e-grid .e-row .e-checkbox-wrapper {
814
814
  visibility: hidden;
815
815
  }
816
- .e-filemanager .e-grid .e-row.e-focused {
817
- -webkit-box-shadow: none;
818
- box-shadow: none;
819
- }
820
816
  .e-filemanager .e-grid .e-row:hover .e-checkbox-wrapper,
821
817
  .e-filemanager .e-grid .e-row .e-active .e-checkbox-wrapper {
822
818
  visibility: visible;
package/styles/bds.css CHANGED
@@ -588,11 +588,11 @@ ejs-filemanager {
588
588
  padding-top: 0;
589
589
  }
590
590
  .e-filemanager .e-treeview .e-list-parent .e-list-item .e-fullrow {
591
- height: 34px;
591
+ height: 38px;
592
592
  }
593
593
  .e-filemanager .e-treeview .e-list-parent .e-list-item .e-list-text {
594
- height: 32px;
595
- line-height: 32px;
594
+ height: 38px;
595
+ line-height: 38px;
596
596
  }
597
597
  .e-filemanager .e-treeview .e-list-parent .e-list-item.e-fe-drop-folder > .e-fullrow {
598
598
  border: 1px dashed;
@@ -813,10 +813,6 @@ ejs-filemanager {
813
813
  .e-filemanager .e-grid .e-row .e-checkbox-wrapper {
814
814
  visibility: hidden;
815
815
  }
816
- .e-filemanager .e-grid .e-row.e-focused {
817
- -webkit-box-shadow: none;
818
- box-shadow: none;
819
- }
820
816
  .e-filemanager .e-grid .e-row:hover .e-checkbox-wrapper,
821
817
  .e-filemanager .e-grid .e-row .e-active .e-checkbox-wrapper {
822
818
  visibility: visible;
@@ -1824,12 +1820,12 @@ ejs-filemanager {
1824
1820
  }
1825
1821
  .e-bigger .e-filemanager .e-treeview .e-list-parent .e-list-item .e-fullrow,
1826
1822
  .e-filemanager.e-bigger .e-treeview .e-list-parent .e-list-item .e-fullrow {
1827
- height: 40px;
1823
+ height: 48px;
1828
1824
  }
1829
1825
  .e-bigger .e-filemanager .e-treeview .e-list-parent .e-list-item .e-list-text,
1830
1826
  .e-filemanager.e-bigger .e-treeview .e-list-parent .e-list-item .e-list-text {
1831
- height: 38px;
1832
- line-height: 38px;
1827
+ height: 48px;
1828
+ line-height: 48px;
1833
1829
  }
1834
1830
  .e-bigger .e-filemanager .e-address,
1835
1831
  .e-filemanager.e-bigger .e-address {
@@ -521,10 +521,6 @@ ejs-filemanager {
521
521
  .e-filemanager .e-grid .e-row .e-checkbox-wrapper {
522
522
  visibility: hidden;
523
523
  }
524
- .e-filemanager .e-grid .e-row.e-focused {
525
- -webkit-box-shadow: none;
526
- box-shadow: none;
527
- }
528
524
  .e-filemanager .e-grid .e-row.e-focused td {
529
525
  -webkit-box-shadow: inset 0 1px 0 0 rgb(36, 138.2, 255), inset 0 -1px 0 0 rgb(36, 138.2, 255);
530
526
  box-shadow: inset 0 1px 0 0 rgb(36, 138.2, 255), inset 0 -1px 0 0 rgb(36, 138.2, 255);
@@ -521,10 +521,6 @@ ejs-filemanager {
521
521
  .e-filemanager .e-grid .e-row .e-checkbox-wrapper {
522
522
  visibility: hidden;
523
523
  }
524
- .e-filemanager .e-grid .e-row.e-focused {
525
- -webkit-box-shadow: none;
526
- box-shadow: none;
527
- }
528
524
  .e-filemanager .e-grid .e-row.e-focused td {
529
525
  -webkit-box-shadow: inset 0 1px 0 0 rgb(36, 138.2, 255), inset 0 -1px 0 0 rgb(36, 138.2, 255);
530
526
  box-shadow: inset 0 1px 0 0 rgb(36, 138.2, 255), inset 0 -1px 0 0 rgb(36, 138.2, 255);
@@ -522,10 +522,6 @@ ejs-filemanager {
522
522
  .e-filemanager .e-grid .e-row .e-checkbox-wrapper {
523
523
  visibility: hidden;
524
524
  }
525
- .e-filemanager .e-grid .e-row.e-focused {
526
- -webkit-box-shadow: none;
527
- box-shadow: none;
528
- }
529
525
  .e-filemanager .e-grid .e-row.e-focused td {
530
526
  -webkit-box-shadow: inset 0 1px 0 0 #66afe9, inset 0 -1px 0 0 #66afe9;
531
527
  box-shadow: inset 0 1px 0 0 #66afe9, inset 0 -1px 0 0 #66afe9;
@@ -522,10 +522,6 @@ ejs-filemanager {
522
522
  .e-filemanager .e-grid .e-row .e-checkbox-wrapper {
523
523
  visibility: hidden;
524
524
  }
525
- .e-filemanager .e-grid .e-row.e-focused {
526
- -webkit-box-shadow: none;
527
- box-shadow: none;
528
- }
529
525
  .e-filemanager .e-grid .e-row.e-focused td {
530
526
  -webkit-box-shadow: inset 0 1px 0 0 #66afe9, inset 0 -1px 0 0 #66afe9;
531
527
  box-shadow: inset 0 1px 0 0 #66afe9, inset 0 -1px 0 0 #66afe9;
@@ -298,11 +298,11 @@ ejs-filemanager {
298
298
  padding-top: 0;
299
299
  }
300
300
  .e-filemanager .e-treeview .e-list-parent .e-list-item .e-fullrow {
301
- height: 34px;
301
+ height: 40px;
302
302
  }
303
303
  .e-filemanager .e-treeview .e-list-parent .e-list-item .e-list-text {
304
- height: 32px;
305
- line-height: 32px;
304
+ height: 40px;
305
+ line-height: 40px;
306
306
  }
307
307
  .e-filemanager .e-treeview .e-list-parent .e-list-item.e-fe-drop-folder > .e-fullrow {
308
308
  border: 1px solid;
@@ -521,10 +521,6 @@ ejs-filemanager {
521
521
  .e-filemanager .e-grid .e-row .e-checkbox-wrapper {
522
522
  visibility: hidden;
523
523
  }
524
- .e-filemanager .e-grid .e-row.e-focused {
525
- -webkit-box-shadow: none;
526
- box-shadow: none;
527
- }
528
524
  .e-filemanager .e-grid .e-row.e-focused td {
529
525
  -webkit-box-shadow: inset 0 1px 0 0 #66afe9, inset 0 -1px 0 0 #66afe9;
530
526
  box-shadow: inset 0 1px 0 0 #66afe9, inset 0 -1px 0 0 #66afe9;
@@ -298,11 +298,11 @@ ejs-filemanager {
298
298
  padding-top: 0;
299
299
  }
300
300
  .e-filemanager .e-treeview .e-list-parent .e-list-item .e-fullrow {
301
- height: 34px;
301
+ height: 40px;
302
302
  }
303
303
  .e-filemanager .e-treeview .e-list-parent .e-list-item .e-list-text {
304
- height: 32px;
305
- line-height: 32px;
304
+ height: 40px;
305
+ line-height: 40px;
306
306
  }
307
307
  .e-filemanager .e-treeview .e-list-parent .e-list-item.e-fe-drop-folder > .e-fullrow {
308
308
  border: 1px solid;
@@ -521,10 +521,6 @@ ejs-filemanager {
521
521
  .e-filemanager .e-grid .e-row .e-checkbox-wrapper {
522
522
  visibility: hidden;
523
523
  }
524
- .e-filemanager .e-grid .e-row.e-focused {
525
- -webkit-box-shadow: none;
526
- box-shadow: none;
527
- }
528
524
  .e-filemanager .e-grid .e-row.e-focused td {
529
525
  -webkit-box-shadow: inset 0 1px 0 0 #66afe9, inset 0 -1px 0 0 #66afe9;
530
526
  box-shadow: inset 0 1px 0 0 #66afe9, inset 0 -1px 0 0 #66afe9;
@@ -1513,12 +1509,12 @@ ejs-filemanager {
1513
1509
  }
1514
1510
  .e-bigger .e-filemanager .e-treeview .e-list-parent .e-list-item .e-fullrow,
1515
1511
  .e-filemanager.e-bigger .e-treeview .e-list-parent .e-list-item .e-fullrow {
1516
- height: 40px;
1512
+ height: 50px;
1517
1513
  }
1518
1514
  .e-bigger .e-filemanager .e-treeview .e-list-parent .e-list-item .e-list-text,
1519
1515
  .e-filemanager.e-bigger .e-treeview .e-list-parent .e-list-item .e-list-text {
1520
- height: 38px;
1521
- line-height: 38px;
1516
+ height: 50px;
1517
+ line-height: 50px;
1522
1518
  }
1523
1519
  .e-bigger .e-filemanager .e-address,
1524
1520
  .e-filemanager.e-bigger .e-address {