@syncfusion/ej2-filemanager 33.2.10 → 34.1.29

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 (291) 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 +297 -13
  5. package/dist/es6/ej2-filemanager.es2015.js.map +1 -1
  6. package/dist/es6/ej2-filemanager.es5.js +297 -13
  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 +11 -11
  12. package/src/file-manager/common/operations.js +1 -1
  13. package/src/file-manager/layout/details-view.d.ts +10 -0
  14. package/src/file-manager/layout/details-view.js +295 -11
  15. package/src/file-manager/layout/large-icons-view.js +1 -1
  16. package/styles/bds-lite.css +11 -347
  17. package/styles/bds-lite.scss +1 -13
  18. package/styles/bds.css +15 -362
  19. package/styles/bds.scss +2 -14
  20. package/styles/bootstrap-dark-lite.css +14 -58
  21. package/styles/bootstrap-dark-lite.scss +1 -13
  22. package/styles/bootstrap-dark.css +18 -65
  23. package/styles/bootstrap-dark.scss +2 -14
  24. package/styles/bootstrap-lite.css +8 -59
  25. package/styles/bootstrap-lite.scss +1 -13
  26. package/styles/bootstrap.css +12 -66
  27. package/styles/bootstrap.scss +2 -14
  28. package/styles/bootstrap4-lite.css +16 -64
  29. package/styles/bootstrap4-lite.scss +1 -13
  30. package/styles/bootstrap4.css +20 -71
  31. package/styles/bootstrap4.scss +2 -14
  32. package/styles/bootstrap5-dark-lite.css +17 -67
  33. package/styles/bootstrap5-dark-lite.scss +1 -13
  34. package/styles/bootstrap5-dark.css +21 -74
  35. package/styles/bootstrap5-dark.scss +2 -14
  36. package/styles/bootstrap5-lite.css +17 -67
  37. package/styles/bootstrap5-lite.scss +1 -14
  38. package/styles/bootstrap5.3-lite.css +8 -228
  39. package/styles/bootstrap5.3-lite.scss +1 -14
  40. package/styles/bootstrap5.3.css +12 -403
  41. package/styles/bootstrap5.3.scss +2 -15
  42. package/styles/bootstrap5.css +21 -74
  43. package/styles/bootstrap5.scss +2 -15
  44. package/styles/fabric-dark-lite.css +12 -60
  45. package/styles/fabric-dark-lite.scss +1 -14
  46. package/styles/fabric-dark.css +16 -67
  47. package/styles/fabric-dark.scss +2 -15
  48. package/styles/fabric-lite.css +12 -61
  49. package/styles/fabric-lite.scss +1 -14
  50. package/styles/fabric.css +16 -68
  51. package/styles/fabric.scss +2 -15
  52. package/styles/file-manager/_all.scss +2 -2
  53. package/styles/file-manager/_bds-definition.scss +1 -2
  54. package/styles/file-manager/_bigger.scss +14 -2
  55. package/styles/file-manager/_bootstrap-dark-definition.scss +1 -2
  56. package/styles/file-manager/_bootstrap-definition.scss +1 -2
  57. package/styles/file-manager/_bootstrap4-definition.scss +1 -2
  58. package/styles/file-manager/_bootstrap5-dark-definition.scss +1 -2
  59. package/styles/file-manager/_bootstrap5-definition.scss +1 -2
  60. package/styles/file-manager/_bootstrap5.3-definition.scss +1 -2
  61. package/styles/file-manager/_fabric-dark-definition.scss +1 -2
  62. package/styles/file-manager/_fabric-definition.scss +1 -2
  63. package/styles/file-manager/_fluent-dark-definition.scss +1 -2
  64. package/styles/file-manager/_fluent-definition.scss +1 -2
  65. package/styles/file-manager/_fluent2-definition.scss +1 -2
  66. package/styles/file-manager/_fusionnew-definition.scss +1 -2
  67. package/styles/file-manager/_highcontrast-definition.scss +1 -2
  68. package/styles/file-manager/_highcontrast-light-definition.scss +1 -2
  69. package/styles/file-manager/_layout.scss +7 -3
  70. package/styles/file-manager/_material-dark-definition.scss +1 -2
  71. package/styles/file-manager/_material-definition.scss +1 -2
  72. package/styles/file-manager/_material3-dark-definition.scss +2 -2
  73. package/styles/file-manager/_material3-definition.scss +2 -2
  74. package/styles/file-manager/_tailwind-dark-definition.scss +1 -2
  75. package/styles/file-manager/_tailwind-definition.scss +1 -2
  76. package/styles/file-manager/_tailwind3-definition.scss +1 -2
  77. package/styles/file-manager/_theme.scss +1 -1
  78. package/styles/file-manager/_variables.scss +2 -0
  79. package/styles/file-manager/bds.css +15 -362
  80. package/styles/file-manager/bds.scss +2 -15
  81. package/styles/file-manager/bootstrap-dark.css +18 -65
  82. package/styles/file-manager/bootstrap-dark.scss +2 -15
  83. package/styles/file-manager/bootstrap.css +12 -66
  84. package/styles/file-manager/bootstrap.scss +2 -15
  85. package/styles/file-manager/bootstrap4.css +20 -71
  86. package/styles/file-manager/bootstrap4.scss +2 -15
  87. package/styles/file-manager/bootstrap5-dark.css +21 -74
  88. package/styles/file-manager/bootstrap5-dark.scss +2 -15
  89. package/styles/file-manager/bootstrap5.3.css +12 -403
  90. package/styles/file-manager/bootstrap5.3.scss +2 -15
  91. package/styles/file-manager/bootstrap5.css +21 -74
  92. package/styles/file-manager/bootstrap5.scss +2 -15
  93. package/styles/file-manager/fabric-dark.css +16 -67
  94. package/styles/file-manager/fabric-dark.scss +2 -15
  95. package/styles/file-manager/fabric.css +16 -68
  96. package/styles/file-manager/fabric.scss +2 -15
  97. package/styles/file-manager/fluent-dark.css +12 -66
  98. package/styles/file-manager/fluent-dark.scss +2 -15
  99. package/styles/file-manager/fluent.css +12 -66
  100. package/styles/file-manager/fluent.scss +2 -15
  101. package/styles/file-manager/fluent2.css +19 -650
  102. package/styles/file-manager/fluent2.scss +2 -15
  103. package/styles/file-manager/highcontrast-light.css +12 -65
  104. package/styles/file-manager/highcontrast-light.scss +2 -15
  105. package/styles/file-manager/highcontrast.css +20 -74
  106. package/styles/file-manager/highcontrast.scss +2 -15
  107. package/styles/file-manager/icons/_bds.scss +1 -1
  108. package/styles/file-manager/icons/_bootstrap-dark.scss +1 -1
  109. package/styles/file-manager/icons/_bootstrap.scss +1 -1
  110. package/styles/file-manager/icons/_bootstrap4.scss +1 -1
  111. package/styles/file-manager/icons/_bootstrap5.3.scss +1 -1
  112. package/styles/file-manager/icons/_bootstrap5.scss +1 -1
  113. package/styles/file-manager/icons/_fabric-dark.scss +1 -1
  114. package/styles/file-manager/icons/_fabric.scss +1 -1
  115. package/styles/file-manager/icons/_fluent.scss +1 -1
  116. package/styles/file-manager/icons/_fluent2.scss +1 -1
  117. package/styles/file-manager/icons/_fusionnew.scss +1 -1
  118. package/styles/file-manager/icons/_highcontrast-light.scss +1 -1
  119. package/styles/file-manager/icons/_highcontrast.scss +1 -1
  120. package/styles/file-manager/icons/_material-dark.scss +1 -1
  121. package/styles/file-manager/icons/_material.scss +1 -1
  122. package/styles/file-manager/icons/_material3.scss +1 -1
  123. package/styles/file-manager/icons/_tailwind.scss +1 -1
  124. package/styles/file-manager/icons/_tailwind3.scss +1 -1
  125. package/styles/file-manager/material-dark.css +12 -101
  126. package/styles/file-manager/material-dark.scss +2 -15
  127. package/styles/file-manager/material.css +12 -123
  128. package/styles/file-manager/material.scss +2 -15
  129. package/styles/file-manager/material3-dark.css +15 -424
  130. package/styles/file-manager/material3-dark.scss +2 -15
  131. package/styles/file-manager/material3.css +15 -432
  132. package/styles/file-manager/material3.scss +2 -15
  133. package/styles/file-manager/tailwind-dark.css +15 -67
  134. package/styles/file-manager/tailwind-dark.scss +2 -15
  135. package/styles/file-manager/tailwind.css +15 -67
  136. package/styles/file-manager/tailwind.scss +2 -15
  137. package/styles/file-manager/tailwind3.css +14 -425
  138. package/styles/file-manager/tailwind3.scss +2 -15
  139. package/styles/fluent-dark-lite.css +8 -59
  140. package/styles/fluent-dark-lite.scss +1 -14
  141. package/styles/fluent-dark.css +12 -66
  142. package/styles/fluent-dark.scss +2 -15
  143. package/styles/fluent-lite.css +8 -59
  144. package/styles/fluent-lite.scss +1 -14
  145. package/styles/fluent.css +12 -66
  146. package/styles/fluent.scss +2 -15
  147. package/styles/fluent2-lite.css +15 -471
  148. package/styles/fluent2-lite.scss +1 -14
  149. package/styles/fluent2.css +19 -650
  150. package/styles/fluent2.scss +2 -15
  151. package/styles/highcontrast-light-lite.css +8 -58
  152. package/styles/highcontrast-light-lite.scss +1 -14
  153. package/styles/highcontrast-light.css +12 -65
  154. package/styles/highcontrast-light.scss +2 -15
  155. package/styles/highcontrast-lite.css +16 -67
  156. package/styles/highcontrast-lite.scss +1 -14
  157. package/styles/highcontrast.css +20 -74
  158. package/styles/highcontrast.scss +2 -15
  159. package/styles/material-dark-lite.css +8 -94
  160. package/styles/material-dark-lite.scss +1 -14
  161. package/styles/material-dark.css +12 -101
  162. package/styles/material-dark.scss +2 -15
  163. package/styles/material-lite.css +8 -116
  164. package/styles/material-lite.scss +1 -13
  165. package/styles/material.css +12 -123
  166. package/styles/material.scss +2 -14
  167. package/styles/material3-dark-lite.css +11 -255
  168. package/styles/material3-dark-lite.scss +1 -14
  169. package/styles/material3-dark.css +15 -424
  170. package/styles/material3-dark.scss +2 -15
  171. package/styles/material3-lite.css +11 -259
  172. package/styles/material3-lite.scss +1 -14
  173. package/styles/material3.css +15 -432
  174. package/styles/material3.scss +2 -15
  175. package/styles/tailwind-dark-lite.css +11 -60
  176. package/styles/tailwind-dark-lite.scss +1 -14
  177. package/styles/tailwind-dark.css +15 -67
  178. package/styles/tailwind-dark.scss +2 -15
  179. package/styles/tailwind-lite.css +11 -60
  180. package/styles/tailwind-lite.scss +1 -14
  181. package/styles/tailwind.css +15 -67
  182. package/styles/tailwind.scss +2 -15
  183. package/styles/tailwind3-lite.css +10 -270
  184. package/styles/tailwind3-lite.scss +1 -14
  185. package/styles/tailwind3.css +14 -425
  186. package/styles/tailwind3.scss +2 -15
  187. package/styles/file-manager/_all.bds.scss +0 -2
  188. package/styles/file-manager/_all.bootstrap-dark.scss +0 -2
  189. package/styles/file-manager/_all.bootstrap.scss +0 -2
  190. package/styles/file-manager/_all.bootstrap4.scss +0 -2
  191. package/styles/file-manager/_all.bootstrap5-dark.scss +0 -2
  192. package/styles/file-manager/_all.bootstrap5.3.scss +0 -2
  193. package/styles/file-manager/_all.bootstrap5.scss +0 -2
  194. package/styles/file-manager/_all.fabric-dark.scss +0 -2
  195. package/styles/file-manager/_all.fabric.scss +0 -2
  196. package/styles/file-manager/_all.fluent-dark.scss +0 -2
  197. package/styles/file-manager/_all.fluent.scss +0 -2
  198. package/styles/file-manager/_all.fluent2.scss +0 -2
  199. package/styles/file-manager/_all.highcontrast-light.scss +0 -2
  200. package/styles/file-manager/_all.highcontrast.scss +0 -2
  201. package/styles/file-manager/_all.material-dark.scss +0 -2
  202. package/styles/file-manager/_all.material.scss +0 -2
  203. package/styles/file-manager/_all.material3-dark.scss +0 -2
  204. package/styles/file-manager/_all.material3.scss +0 -2
  205. package/styles/file-manager/_all.tailwind-dark.scss +0 -2
  206. package/styles/file-manager/_all.tailwind.scss +0 -2
  207. package/styles/file-manager/_all.tailwind3.scss +0 -2
  208. package/styles/file-manager/_bigger.bds.scss +0 -4
  209. package/styles/file-manager/_bigger.bootstrap-dark.scss +0 -4
  210. package/styles/file-manager/_bigger.bootstrap.scss +0 -4
  211. package/styles/file-manager/_bigger.bootstrap4.scss +0 -4
  212. package/styles/file-manager/_bigger.bootstrap5-dark.scss +0 -4
  213. package/styles/file-manager/_bigger.bootstrap5.3.scss +0 -4
  214. package/styles/file-manager/_bigger.bootstrap5.scss +0 -4
  215. package/styles/file-manager/_bigger.fabric-dark.scss +0 -4
  216. package/styles/file-manager/_bigger.fabric.scss +0 -4
  217. package/styles/file-manager/_bigger.fluent-dark.scss +0 -4
  218. package/styles/file-manager/_bigger.fluent.scss +0 -4
  219. package/styles/file-manager/_bigger.fluent2.scss +0 -4
  220. package/styles/file-manager/_bigger.highcontrast-light.scss +0 -4
  221. package/styles/file-manager/_bigger.highcontrast.scss +0 -4
  222. package/styles/file-manager/_bigger.material-dark.scss +0 -4
  223. package/styles/file-manager/_bigger.material.scss +0 -4
  224. package/styles/file-manager/_bigger.material3-dark.scss +0 -4
  225. package/styles/file-manager/_bigger.material3.scss +0 -4
  226. package/styles/file-manager/_bigger.tailwind-dark.scss +0 -4
  227. package/styles/file-manager/_bigger.tailwind.scss +0 -4
  228. package/styles/file-manager/_bigger.tailwind3.scss +0 -4
  229. package/styles/file-manager/_layout.bds.scss +0 -3
  230. package/styles/file-manager/_layout.bootstrap-dark.scss +0 -3
  231. package/styles/file-manager/_layout.bootstrap.scss +0 -3
  232. package/styles/file-manager/_layout.bootstrap4.scss +0 -3
  233. package/styles/file-manager/_layout.bootstrap5-dark.scss +0 -3
  234. package/styles/file-manager/_layout.bootstrap5.3.scss +0 -3
  235. package/styles/file-manager/_layout.bootstrap5.scss +0 -3
  236. package/styles/file-manager/_layout.fabric-dark.scss +0 -3
  237. package/styles/file-manager/_layout.fabric.scss +0 -3
  238. package/styles/file-manager/_layout.fluent-dark.scss +0 -3
  239. package/styles/file-manager/_layout.fluent.scss +0 -3
  240. package/styles/file-manager/_layout.fluent2.scss +0 -3
  241. package/styles/file-manager/_layout.highcontrast-light.scss +0 -3
  242. package/styles/file-manager/_layout.highcontrast.scss +0 -3
  243. package/styles/file-manager/_layout.material-dark.scss +0 -3
  244. package/styles/file-manager/_layout.material.scss +0 -3
  245. package/styles/file-manager/_layout.material3-dark.scss +0 -3
  246. package/styles/file-manager/_layout.material3.scss +0 -3
  247. package/styles/file-manager/_layout.tailwind-dark.scss +0 -3
  248. package/styles/file-manager/_layout.tailwind.scss +0 -3
  249. package/styles/file-manager/_layout.tailwind3.scss +0 -3
  250. package/styles/file-manager/_theme-variables.bds.scss +0 -1
  251. package/styles/file-manager/_theme-variables.bootstrap-dark.scss +0 -1
  252. package/styles/file-manager/_theme-variables.bootstrap.scss +0 -1
  253. package/styles/file-manager/_theme-variables.bootstrap4.scss +0 -1
  254. package/styles/file-manager/_theme-variables.bootstrap5-dark.scss +0 -1
  255. package/styles/file-manager/_theme-variables.bootstrap5.3.scss +0 -1
  256. package/styles/file-manager/_theme-variables.bootstrap5.scss +0 -1
  257. package/styles/file-manager/_theme-variables.fabric-dark.scss +0 -1
  258. package/styles/file-manager/_theme-variables.fabric.scss +0 -1
  259. package/styles/file-manager/_theme-variables.fluent-dark.scss +0 -1
  260. package/styles/file-manager/_theme-variables.fluent.scss +0 -1
  261. package/styles/file-manager/_theme-variables.fluent2.scss +0 -1
  262. package/styles/file-manager/_theme-variables.highcontrast-light.scss +0 -1
  263. package/styles/file-manager/_theme-variables.highcontrast.scss +0 -1
  264. package/styles/file-manager/_theme-variables.material-dark.scss +0 -1
  265. package/styles/file-manager/_theme-variables.material.scss +0 -1
  266. package/styles/file-manager/_theme-variables.material3-dark.scss +0 -1
  267. package/styles/file-manager/_theme-variables.material3.scss +0 -1
  268. package/styles/file-manager/_theme-variables.tailwind-dark.scss +0 -1
  269. package/styles/file-manager/_theme-variables.tailwind.scss +0 -1
  270. package/styles/file-manager/_theme-variables.tailwind3.scss +0 -1
  271. package/styles/file-manager/_theme.bds.scss +0 -4
  272. package/styles/file-manager/_theme.bootstrap-dark.scss +0 -4
  273. package/styles/file-manager/_theme.bootstrap.scss +0 -4
  274. package/styles/file-manager/_theme.bootstrap4.scss +0 -4
  275. package/styles/file-manager/_theme.bootstrap5-dark.scss +0 -4
  276. package/styles/file-manager/_theme.bootstrap5.3.scss +0 -4
  277. package/styles/file-manager/_theme.bootstrap5.scss +0 -4
  278. package/styles/file-manager/_theme.fabric-dark.scss +0 -4
  279. package/styles/file-manager/_theme.fabric.scss +0 -4
  280. package/styles/file-manager/_theme.fluent-dark.scss +0 -4
  281. package/styles/file-manager/_theme.fluent.scss +0 -4
  282. package/styles/file-manager/_theme.fluent2.scss +0 -4
  283. package/styles/file-manager/_theme.highcontrast-light.scss +0 -4
  284. package/styles/file-manager/_theme.highcontrast.scss +0 -4
  285. package/styles/file-manager/_theme.material-dark.scss +0 -4
  286. package/styles/file-manager/_theme.material.scss +0 -4
  287. package/styles/file-manager/_theme.material3-dark.scss +0 -4
  288. package/styles/file-manager/_theme.material3.scss +0 -4
  289. package/styles/file-manager/_theme.tailwind-dark.scss +0 -4
  290. package/styles/file-manager/_theme.tailwind.scss +0 -4
  291. package/styles/file-manager/_theme.tailwind3.scss +0 -4
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * filename: index.d.ts
3
- * version : 33.2.10
3
+ * version : 34.1.29
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.10",
3
+ "version": "34.1.29",
4
4
  "description": "Essential JS 2 FileManager Component",
5
5
  "author": "Syncfusion Inc.",
6
6
  "license": "SEE LICENSE IN license",
@@ -8,16 +8,16 @@
8
8
  "module": "./index.js",
9
9
  "es2015": "./dist/es6/ej2-filemanager.es5.js",
10
10
  "dependencies": {
11
- "@syncfusion/ej2-base": "~33.2.3",
12
- "@syncfusion/ej2-buttons": "~33.2.5",
13
- "@syncfusion/ej2-data": "~33.2.5",
14
- "@syncfusion/ej2-grids": "~33.2.10",
15
- "@syncfusion/ej2-inputs": "~33.2.10",
16
- "@syncfusion/ej2-layouts": "~33.2.3",
17
- "@syncfusion/ej2-lists": "~33.2.3",
18
- "@syncfusion/ej2-navigations": "~33.2.10",
19
- "@syncfusion/ej2-popups": "~33.2.7",
20
- "@syncfusion/ej2-splitbuttons": "~33.2.6"
11
+ "@syncfusion/ej2-base": "~34.1.29",
12
+ "@syncfusion/ej2-buttons": "~34.1.29",
13
+ "@syncfusion/ej2-data": "~34.1.29",
14
+ "@syncfusion/ej2-grids": "~34.1.29",
15
+ "@syncfusion/ej2-inputs": "~34.1.29",
16
+ "@syncfusion/ej2-layouts": "~34.1.29",
17
+ "@syncfusion/ej2-lists": "~34.1.29",
18
+ "@syncfusion/ej2-navigations": "~34.1.29",
19
+ "@syncfusion/ej2-popups": "~34.1.29",
20
+ "@syncfusion/ej2-splitbuttons": "~34.1.29"
21
21
  },
22
22
  "devDependencies": {},
23
23
  "keywords": [
@@ -772,7 +772,7 @@ function performReadOperation(parent, result, fn, data, event, operation, target
772
772
  setValue('location', location_1, result.details);
773
773
  }
774
774
  fn(parent, result, event, operation, targetPath);
775
- if (!isNOU(result.files) && (event === 'path-changed' || event === 'finalize-end' || event === 'open-end' || event === 'drop-path')) {
775
+ if (!isNOU(result.files) && (event === 'path-changed' || event === 'finalize-end' || event === 'open-end' || event === 'drop-path' || event === 'delete-end')) {
776
776
  parent.notify(events.searchTextChange, result);
777
777
  }
778
778
  if (typeof getValue('onSuccess', beforeSendArgs.ajaxSettings) === 'function') {
@@ -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',
@@ -291,6 +296,9 @@ var DetailsView = /** @class */ (function () {
291
296
  var pane = select('#' + this.parent.element.id + CLS.CONTENT_ID, this.parent.element);
292
297
  var bar = select('#' + this.parent.element.id + CLS.BREADCRUMBBAR_ID, this.parent.element);
293
298
  var gridHeader = select('.' + CLS.GRID_HEADER, this.parent.element);
299
+ if (isNOU(pane) || isNOU(bar) || isNOU(gridHeader)) {
300
+ return;
301
+ }
294
302
  var height = (pane.offsetHeight - bar.offsetHeight - gridHeader.offsetHeight);
295
303
  this.gridObj.height = height;
296
304
  this.gridObj.dataBind();
@@ -500,9 +508,11 @@ var DetailsView = /** @class */ (function () {
500
508
  }
501
509
  }
502
510
  if (typeof this.nextFocusIndex === 'number') {
503
- var rowCount = this.gridObj.getRows().length;
504
- if (rowCount > 0) {
505
- this.addFocus(this.nextFocusIndex >= rowCount ? rowCount : this.nextFocusIndex);
511
+ if (!isNOU(this.gridObj.getRows())) {
512
+ var rowCount = this.gridObj.getRows().length;
513
+ if (rowCount > 0) {
514
+ this.addFocus(this.nextFocusIndex >= rowCount ? rowCount : this.nextFocusIndex);
515
+ }
506
516
  }
507
517
  this.nextFocusIndex = null;
508
518
  }
@@ -1263,7 +1273,7 @@ var DetailsView = /** @class */ (function () {
1263
1273
  this.openContent(args.data);
1264
1274
  }
1265
1275
  }
1266
- this.parent.visitedItem = args.row;
1276
+ this.parent.visitedItem = (Array.isArray(args.row) ? args.row[args.row.length - 1] : args.row);
1267
1277
  if ((!this.parent.enableVirtualization) || (!args.isHeaderCheckboxClicked)) {
1268
1278
  this.addFocus(this.gridObj.selectedRowIndex);
1269
1279
  }
@@ -1410,8 +1420,21 @@ var DetailsView = /** @class */ (function () {
1410
1420
  }
1411
1421
  };
1412
1422
  DetailsView.prototype.getFocusedItemIndex = function () {
1413
- return (!isNOU(this.getFocusedItem())) ?
1414
- parseInt(this.getFocusedItem().getAttribute('aria-rowindex'), 10) - 1 : null;
1423
+ var focusedItem = this.getFocusedItem();
1424
+ if (isNOU(focusedItem)) {
1425
+ return null;
1426
+ }
1427
+ if (focusedItem.classList.contains('e-rowcell')) {
1428
+ return this.getRowIndexFromParent(focusedItem);
1429
+ }
1430
+ return parseInt(focusedItem.getAttribute('aria-rowindex'), 10) - 1;
1431
+ };
1432
+ DetailsView.prototype.getRowIndexFromParent = function (focusedItem) {
1433
+ var parentRow = focusedItem.parentElement;
1434
+ if (parentRow && parentRow.classList.contains('e-row')) {
1435
+ return parseInt(parentRow.getAttribute('aria-rowindex'), 10) - 1;
1436
+ }
1437
+ return null;
1415
1438
  };
1416
1439
  /* istanbul ignore next */
1417
1440
  DetailsView.prototype.keydownHandler = function (e) {
@@ -1440,6 +1463,8 @@ var DetailsView = /** @class */ (function () {
1440
1463
  case 'ctrlLeft':
1441
1464
  case 'shiftLeft':
1442
1465
  case 'csLeft':
1466
+ case 'tab':
1467
+ case 'shiftTab':
1443
1468
  case 'esc':
1444
1469
  case 'del':
1445
1470
  case 'shiftdel':
@@ -1449,6 +1474,8 @@ var DetailsView = /** @class */ (function () {
1449
1474
  case 'f2':
1450
1475
  case 'moveDown':
1451
1476
  case 'moveUp':
1477
+ case 'moveLeft':
1478
+ case 'moveRight':
1452
1479
  case 'ctrlD':
1453
1480
  e.preventDefault();
1454
1481
  break;
@@ -1531,12 +1558,18 @@ var DetailsView = /** @class */ (function () {
1531
1558
  break;
1532
1559
  case 'ctrlHome':
1533
1560
  case 'tab':
1561
+ case 'shiftTab':
1534
1562
  if (!isNOU(gridItems[0])) {
1535
1563
  if (!this.parent.allowMultiSelection && e.action === 'ctrlHome') {
1536
1564
  this.gridObj.selectRow(0);
1537
1565
  }
1538
- else if (this.gridObj.selectedRowIndex !== -1 && e.action === 'tab') {
1539
- return;
1566
+ else if (e.action === 'shiftTab') {
1567
+ this.handleReverseTabNavigation(e);
1568
+ }
1569
+ else if (e.action === 'tab') {
1570
+ this.isTabKeypressed = true;
1571
+ this.addHeaderFocus(e);
1572
+ this.isTabKeypressed = false;
1540
1573
  }
1541
1574
  else {
1542
1575
  this.addHeaderFocus(e);
@@ -1606,6 +1639,10 @@ var DetailsView = /** @class */ (function () {
1606
1639
  case 'moveDown':
1607
1640
  this.moveFunction(gridItems, e, selIndex);
1608
1641
  break;
1642
+ case 'moveLeft':
1643
+ case 'moveRight':
1644
+ this.moveColumn(e);
1645
+ break;
1609
1646
  case 'end':
1610
1647
  lastItem = [getValue(this.parent.hasId ? 'id' : 'name', gridItems[gridLength - 1])];
1611
1648
  this.parent.setProperties({ selectedItems: lastItem }, true);
@@ -1736,6 +1773,72 @@ var DetailsView = /** @class */ (function () {
1736
1773
  }
1737
1774
  this.addFocus(nextItem);
1738
1775
  };
1776
+ DetailsView.prototype.moveColumn = function (e) {
1777
+ var focusedItem = this.getFocusedItem();
1778
+ if (isNOU(focusedItem)) {
1779
+ return;
1780
+ }
1781
+ var isHeaderFocused = focusedItem.classList.contains('e-headercell');
1782
+ var isRowFocused = focusedItem.classList.contains('e-row');
1783
+ var isCellFocused = focusedItem.classList.contains('e-rowcell');
1784
+ if (!isHeaderFocused && !isRowFocused && !isCellFocused) {
1785
+ return;
1786
+ }
1787
+ if (isHeaderFocused) {
1788
+ var headers = Array.from(this.element.querySelectorAll('th.e-headercell:not(.e-fe-checkbox)'));
1789
+ var currentIndex = headers.indexOf(focusedItem);
1790
+ if (currentIndex === -1) {
1791
+ return;
1792
+ }
1793
+ var nextIndex = this.getNextColumnIndex(currentIndex, headers.length, e.action === 'moveRight');
1794
+ // eslint-disable-next-line security/detect-object-injection
1795
+ var headerElement = headers[nextIndex];
1796
+ focusedItem.setAttribute('tabindex', '-1');
1797
+ removeClass([focusedItem], [CLS.FOCUS, CLS.FOCUSED]);
1798
+ headerElement.setAttribute('tabindex', '0');
1799
+ headerElement.focus();
1800
+ addClass([headerElement], [CLS.FOCUS, CLS.FOCUSED]);
1801
+ }
1802
+ else if (isRowFocused || isCellFocused) {
1803
+ var row = (isRowFocused ? focusedItem : focusedItem.parentElement);
1804
+ if (!isRowFocused && (!row || !row.classList.contains('e-row'))) {
1805
+ return;
1806
+ }
1807
+ var cells = Array.from(row.querySelectorAll('.e-rowcell'));
1808
+ if (cells.length === 0) {
1809
+ return;
1810
+ }
1811
+ var currentCellIndex = this.currentColumnIndex || 0;
1812
+ var nextColumnIndex = this.getNextColumnIndex(currentCellIndex, cells.length, e.action === 'moveRight');
1813
+ this.currentColumnIndex = nextColumnIndex;
1814
+ if (isRowFocused) {
1815
+ removeClass([row], [CLS.FOCUS, CLS.FOCUSED]);
1816
+ row.setAttribute('tabindex', '-1');
1817
+ }
1818
+ else {
1819
+ removeClass([focusedItem], [CLS.FOCUS, CLS.FOCUSED]);
1820
+ focusedItem.setAttribute('tabindex', '-1');
1821
+ }
1822
+ this.clearCellFocus(cells);
1823
+ // eslint-disable-next-line security/detect-object-injection
1824
+ var nextCell = cells[nextColumnIndex];
1825
+ nextCell.setAttribute('tabindex', '0');
1826
+ addClass([nextCell], [CLS.FOCUS, CLS.FOCUSED]);
1827
+ nextCell.focus();
1828
+ }
1829
+ };
1830
+ DetailsView.prototype.clearCellFocus = function (cells) {
1831
+ for (var i = 0; i < cells.length; i++) {
1832
+ cells[i].setAttribute('tabindex', '-1');
1833
+ removeClass([cells[i]], [CLS.FOCUS, CLS.FOCUSED]);
1834
+ }
1835
+ };
1836
+ DetailsView.prototype.getNextColumnIndex = function (currentIndex, maxLength, isRight) {
1837
+ if (isRight) {
1838
+ return Math.min(currentIndex + 1, maxLength - 1);
1839
+ }
1840
+ return Math.max(currentIndex - 1, 0);
1841
+ };
1739
1842
  DetailsView.prototype.checkRowsKey = function (items, indexValue, focIndex, e) {
1740
1843
  if (this.gridObj.checkAllRows === 'Uncheck' || this.gridObj.checkAllRows === 'Intermediate') {
1741
1844
  if (e.action !== 'csHome' && e.action !== 'csEnd') {
@@ -1821,18 +1924,58 @@ var DetailsView = /** @class */ (function () {
1821
1924
  if (fItem) {
1822
1925
  fItem.removeAttribute('tabindex');
1823
1926
  removeClass([fItem], [CLS.FOCUS, CLS.FOCUSED]);
1927
+ if (fItem.classList.contains('e-rowcell')) {
1928
+ var parentRow = fItem.parentElement;
1929
+ if (parentRow) {
1930
+ removeClass([parentRow], [CLS.FOCUS, CLS.FOCUSED]);
1931
+ parentRow.removeAttribute('tabindex');
1932
+ }
1933
+ }
1934
+ if (fItem.classList.contains('e-row')) {
1935
+ var focusedCells = fItem.querySelectorAll('.e-rowcell');
1936
+ for (var i = 0; i < focusedCells.length; i++) {
1937
+ if (focusedCells[i].classList.contains('e-focus') || focusedCells[i].classList.contains('e-focused')) {
1938
+ focusedCells[i].removeAttribute('tabindex');
1939
+ removeClass([focusedCells[i]], [CLS.FOCUS, CLS.FOCUSED]);
1940
+ }
1941
+ }
1942
+ }
1824
1943
  }
1825
1944
  if (!isNOU(itemElement)) {
1826
1945
  this.gridObj.element.setAttribute('tabindex', '-1');
1827
- itemElement.setAttribute('tabindex', '0');
1828
- itemElement.focus();
1829
- addClass([itemElement], [CLS.FOCUS, CLS.FOCUSED]);
1946
+ var targetRow = itemElement;
1947
+ targetRow.setAttribute('tabindex', '0');
1948
+ var cells = targetRow.querySelectorAll('.e-rowcell');
1949
+ this.clearCellFocus(Array.from(cells));
1950
+ targetRow.focus();
1951
+ addClass([targetRow], [CLS.FOCUS, CLS.FOCUSED]);
1952
+ this.currentColumnIndex = 0;
1830
1953
  }
1831
1954
  };
1832
1955
  DetailsView.prototype.addHeaderFocus = function (e) {
1833
1956
  var treeFocus = select('.e-row', this.element);
1834
1957
  this.gridObj.element.setAttribute('tabindex', '-1');
1958
+ var isHeaderFocused = this.getFocusedItem();
1835
1959
  var nameFocus;
1960
+ var focusedRow = select('.e-row.e-focus', this.element);
1961
+ var gridIconCell;
1962
+ if (!isNOU(focusedRow) && this.isTabKeypressed) {
1963
+ gridIconCell = select('.e-rowcell.e-fe-grid-icon', focusedRow);
1964
+ }
1965
+ else {
1966
+ if (this.isTabKeypressed) {
1967
+ var activeCell = this.getFocusedItem();
1968
+ if (activeCell && activeCell.classList.contains('e-rowcell')) {
1969
+ gridIconCell = select('.e-rowcell.e-fe-grid-icon', activeCell.closest('.e-row'));
1970
+ }
1971
+ else {
1972
+ gridIconCell = select('.e-rowcell.e-fe-grid-icon', this.element);
1973
+ }
1974
+ }
1975
+ }
1976
+ if (this.tryNavigateToNextCellInRow(focusedRow, gridIconCell, isHeaderFocused)) {
1977
+ return;
1978
+ }
1836
1979
  if (!isNOU(e.target) && e.target.classList.contains('e-defaultcursor')) {
1837
1980
  this.addFocus(0);
1838
1981
  nameFocus = e.target.nextElementSibling;
@@ -1854,6 +1997,147 @@ var DetailsView = /** @class */ (function () {
1854
1997
  }
1855
1998
  }
1856
1999
  };
2000
+ DetailsView.prototype.tryNavigateToNextCellInRow = function (focusedRow, gridIconCell, isHeaderFocused) {
2001
+ if ((!isNOU(focusedRow) || !isNOU(gridIconCell)) && (!isNOU(isHeaderFocused) && !isHeaderFocused.classList.contains('e-headercell'))) {
2002
+ if (!isNOU(gridIconCell)) {
2003
+ var activeCell = this.getFocusedItem();
2004
+ if (activeCell && activeCell.classList.contains('e-rowcell')) {
2005
+ var row = activeCell.parentElement;
2006
+ var cells = row ? Array.from(row.querySelectorAll('.e-rowcell')) : [];
2007
+ var currentIndex = cells.indexOf(activeCell);
2008
+ var nextIndex = currentIndex + 1;
2009
+ if (nextIndex < cells.length) {
2010
+ this.currentColumnIndex = nextIndex;
2011
+ activeCell.setAttribute('tabindex', '-1');
2012
+ removeClass([activeCell], [CLS.FOCUS, CLS.FOCUSED]);
2013
+ // eslint-disable-next-line security/detect-object-injection
2014
+ var nextCell = cells[nextIndex];
2015
+ nextCell.setAttribute('tabindex', '0');
2016
+ addClass([nextCell], [CLS.FOCUS, CLS.FOCUSED]);
2017
+ nextCell.focus();
2018
+ return true;
2019
+ }
2020
+ else {
2021
+ var currentRow = activeCell.parentElement;
2022
+ var rows = this.gridObj.getRows();
2023
+ var currentRowIndex = rows.indexOf(currentRow);
2024
+ if (currentRowIndex !== -1) {
2025
+ var nextRow = this.gridObj.getRowByIndex(currentRowIndex + 1);
2026
+ if (!isNOU(nextRow)) {
2027
+ activeCell.setAttribute('tabindex', '-1');
2028
+ removeClass([activeCell], [CLS.FOCUS, CLS.FOCUSED]);
2029
+ this.addFocus(currentRowIndex + 1);
2030
+ return true;
2031
+ }
2032
+ else {
2033
+ activeCell.setAttribute('tabindex', '-1');
2034
+ removeClass([activeCell], [CLS.FOCUS, CLS.FOCUSED]);
2035
+ activeCell.blur();
2036
+ return true;
2037
+ }
2038
+ }
2039
+ return false;
2040
+ }
2041
+ }
2042
+ var focusedRow_1 = this.getFocusedItem();
2043
+ if (!isNOU(focusedRow_1) && focusedRow_1.classList.contains('e-row')) {
2044
+ focusedRow_1.setAttribute('tabindex', '-1');
2045
+ removeClass([focusedRow_1], [CLS.FOCUS, CLS.FOCUSED]);
2046
+ }
2047
+ gridIconCell.setAttribute('tabindex', '0');
2048
+ addClass([gridIconCell], [CLS.FOCUS, CLS.FOCUSED]);
2049
+ gridIconCell.focus();
2050
+ return true;
2051
+ }
2052
+ }
2053
+ return false;
2054
+ };
2055
+ DetailsView.prototype.handleReverseTabNavigation = function (e) {
2056
+ e.preventDefault();
2057
+ var focusedItem = this.getFocusedItem();
2058
+ var headers = Array.from(this.element.querySelectorAll('th.e-headercell:not(.e-fe-checkbox)'));
2059
+ if (headers.length === 0) {
2060
+ return;
2061
+ }
2062
+ if (!isNOU(focusedItem) && focusedItem.classList.contains('e-rowcell')) {
2063
+ var row = focusedItem.parentElement;
2064
+ var cells = row ? Array.from(row.querySelectorAll('.e-rowcell:not(.e-gridchkbox)')) : [];
2065
+ var currentTargetIndex = cells.indexOf(focusedItem);
2066
+ var prevIndex = currentTargetIndex - 1;
2067
+ // eslint-disable-next-line security/detect-object-injection
2068
+ var targetElement = prevIndex >= 0 ? cells[prevIndex] : row;
2069
+ focusedItem.setAttribute('tabindex', '-1');
2070
+ removeClass([focusedItem], [CLS.FOCUS, CLS.FOCUSED]);
2071
+ targetElement.setAttribute('tabindex', '0');
2072
+ addClass([targetElement], [CLS.FOCUS, CLS.FOCUSED]);
2073
+ targetElement.focus();
2074
+ return;
2075
+ }
2076
+ if (!isNOU(focusedItem) && focusedItem.classList.contains('e-row')) {
2077
+ var rows = this.gridObj.getRows();
2078
+ var currentRowIndex = rows.indexOf(focusedItem);
2079
+ if (currentRowIndex > 0) {
2080
+ var previousRow = rows[currentRowIndex - 1];
2081
+ var previousRowCells = Array.from(previousRow.querySelectorAll('.e-rowcell:not(.e-gridchkbox)'));
2082
+ var lastCell = previousRowCells[previousRowCells.length - 1];
2083
+ focusedItem.setAttribute('tabindex', '-1');
2084
+ removeClass([focusedItem], [CLS.FOCUS, CLS.FOCUSED]);
2085
+ lastCell.setAttribute('tabindex', '0');
2086
+ addClass([lastCell], [CLS.FOCUS, CLS.FOCUSED]);
2087
+ lastCell.focus();
2088
+ return;
2089
+ }
2090
+ focusedItem.setAttribute('tabindex', '-1');
2091
+ removeClass([focusedItem], [CLS.FOCUS, CLS.FOCUSED]);
2092
+ this.moveFocusToHeader(headers[headers.length - 1]);
2093
+ return;
2094
+ }
2095
+ if (!isNOU(focusedItem) && focusedItem.classList.contains('e-headercell')) {
2096
+ var currentIndex = headers.indexOf(focusedItem);
2097
+ if (currentIndex > 0) {
2098
+ this.moveFocusToHeader(headers[currentIndex - 1]);
2099
+ }
2100
+ else if (currentIndex === 0) {
2101
+ this.clearDetailsFocus();
2102
+ }
2103
+ return;
2104
+ }
2105
+ if (!isNOU(focusedItem)) {
2106
+ this.moveFocusToHeader(headers[headers.length - 1]);
2107
+ }
2108
+ };
2109
+ DetailsView.prototype.moveFocusToHeader = function (header) {
2110
+ var focusedItem = this.getFocusedItem();
2111
+ if (!isNOU(focusedItem)) {
2112
+ focusedItem.setAttribute('tabindex', '-1');
2113
+ removeClass([focusedItem], [CLS.FOCUS, CLS.FOCUSED]);
2114
+ }
2115
+ header.setAttribute('tabindex', '0');
2116
+ header.focus();
2117
+ addClass([header], [CLS.FOCUS, CLS.FOCUSED]);
2118
+ };
2119
+ DetailsView.prototype.clearDetailsFocus = function () {
2120
+ var focusedItem = this.getFocusedItem();
2121
+ if (!isNOU(focusedItem)) {
2122
+ focusedItem.setAttribute('tabindex', '-1');
2123
+ removeClass([focusedItem], [CLS.FOCUS, CLS.FOCUSED]);
2124
+ }
2125
+ var breadcrumbBar = select('.' + CLS.BREADCRUMBS, this.parent.element);
2126
+ if (!isNOU(breadcrumbBar)) {
2127
+ var searchInput = breadcrumbBar.querySelector('input[aria-label="Search"]');
2128
+ if (!isNOU(searchInput)) {
2129
+ searchInput.setAttribute('tabindex', '0');
2130
+ searchInput.focus();
2131
+ }
2132
+ else {
2133
+ var lastBreadcrumb = breadcrumbBar.querySelector('.e-address-list-item:last-child');
2134
+ if (!isNOU(lastBreadcrumb)) {
2135
+ lastBreadcrumb.setAttribute('tabindex', '0');
2136
+ lastBreadcrumb.focus();
2137
+ }
2138
+ }
2139
+ }
2140
+ };
1857
2141
  DetailsView.prototype.getFocusedItem = function () {
1858
2142
  return select('.' + CLS.FOCUSED, this.element);
1859
2143
  };
@@ -1255,7 +1255,7 @@ var LargeIconsView = /** @class */ (function () {
1255
1255
  * @hidden
1256
1256
  */
1257
1257
  LargeIconsView.prototype.getFirstItem = function () {
1258
- return this.itemList[0];
1258
+ return !isNOU(this.itemList) && this.itemList.length > 0 ? this.itemList[0] : null;
1259
1259
  };
1260
1260
  LargeIconsView.prototype.getLastItem = function () {
1261
1261
  return this.itemList[this.itemList.length - 1];