@syncfusion/ej2-navigations 17.3.9-beta → 17.3.14-96615

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 (314) hide show
  1. package/.eslintrc.json +244 -0
  2. package/CHANGELOG.md +898 -800
  3. package/README.md +163 -163
  4. package/dist/ej2-navigations.umd.min.js +1 -10
  5. package/dist/ej2-navigations.umd.min.js.map +1 -1
  6. package/dist/es6/ej2-navigations.es2015.js +325 -170
  7. package/dist/es6/ej2-navigations.es2015.js.map +1 -1
  8. package/dist/es6/ej2-navigations.es5.js +455 -300
  9. package/dist/es6/ej2-navigations.es5.js.map +1 -1
  10. package/dist/global/ej2-navigations.min.js +1 -10
  11. package/dist/global/ej2-navigations.min.js.map +1 -1
  12. package/dist/global/index.d.ts +0 -9
  13. package/dist/ts/accordion/accordion.ts +1312 -0
  14. package/dist/ts/common/h-scroll.ts +459 -0
  15. package/dist/ts/common/menu-base.ts +2131 -0
  16. package/dist/ts/common/v-scroll.ts +430 -0
  17. package/dist/ts/context-menu/context-menu.ts +119 -0
  18. package/dist/ts/menu/menu.ts +270 -0
  19. package/dist/ts/sidebar/sidebar.ts +817 -0
  20. package/dist/ts/tab/tab.ts +1761 -0
  21. package/dist/ts/toolbar/toolbar.ts +2076 -0
  22. package/dist/ts/treeview/treeview.ts +5050 -0
  23. package/helpers/e2e/index.js +3 -3
  24. package/license +10 -10
  25. package/package.json +135 -149
  26. package/src/accordion/accordion-model.d.ts +156 -156
  27. package/src/accordion/accordion.d.ts +1 -0
  28. package/src/accordion/accordion.js +40 -41
  29. package/src/common/h-scroll-model.d.ts +5 -5
  30. package/src/common/h-scroll.js +19 -20
  31. package/src/common/menu-base-model.d.ts +157 -157
  32. package/src/common/menu-base.d.ts +19 -0
  33. package/src/common/menu-base.js +94 -24
  34. package/src/common/v-scroll-model.d.ts +5 -5
  35. package/src/common/v-scroll.js +19 -19
  36. package/src/context-menu/context-menu-model.d.ts +15 -15
  37. package/src/context-menu/context-menu.js +19 -19
  38. package/src/menu/menu-model.d.ts +30 -30
  39. package/src/menu/menu.js +19 -19
  40. package/src/sidebar/sidebar-model.d.ts +136 -136
  41. package/src/sidebar/sidebar.js +19 -19
  42. package/src/tab/tab-model.d.ts +215 -215
  43. package/src/tab/tab.d.ts +3 -0
  44. package/src/tab/tab.js +117 -82
  45. package/src/toolbar/toolbar-model.d.ts +175 -175
  46. package/src/toolbar/toolbar.d.ts +1 -0
  47. package/src/toolbar/toolbar.js +30 -24
  48. package/src/treeview/treeview-model.d.ts +323 -323
  49. package/src/treeview/treeview.js +79 -33
  50. package/styles/accordion/_all.scss +2 -2
  51. package/styles/accordion/_bootstrap-dark-definition.scss +69 -69
  52. package/styles/accordion/_bootstrap-definition.scss +76 -76
  53. package/styles/accordion/_bootstrap4-definition.scss +82 -82
  54. package/styles/accordion/_fabric-dark-definition.scss +74 -74
  55. package/styles/accordion/_fabric-definition.scss +78 -78
  56. package/styles/accordion/_highcontrast-definition.scss +106 -106
  57. package/styles/accordion/_highcontrast-light-definition.scss +104 -104
  58. package/styles/accordion/_layout.scss +447 -447
  59. package/styles/accordion/_material-dark-definition.scss +75 -75
  60. package/styles/accordion/_material-definition.scss +72 -72
  61. package/styles/accordion/_theme.scss +479 -479
  62. package/styles/accordion/icons/_bootstrap-dark.scss +17 -17
  63. package/styles/accordion/icons/_bootstrap.scss +17 -17
  64. package/styles/accordion/icons/_bootstrap4.scss +17 -17
  65. package/styles/accordion/icons/_fabric-dark.scss +17 -17
  66. package/styles/accordion/icons/_fabric.scss +17 -17
  67. package/styles/accordion/icons/_highcontrast-light.scss +17 -17
  68. package/styles/accordion/icons/_highcontrast.scss +17 -17
  69. package/styles/accordion/icons/_material-dark.scss +17 -17
  70. package/styles/accordion/icons/_material.scss +17 -17
  71. package/styles/bootstrap-dark.css +7 -9
  72. package/styles/bootstrap.css +7 -9
  73. package/styles/bootstrap4.css +7 -9
  74. package/styles/bootstrap5-dark.css +0 -0
  75. package/styles/bootstrap5-dark.scss +0 -0
  76. package/styles/bootstrap5.css +0 -0
  77. package/styles/bootstrap5.scss +0 -0
  78. package/styles/context-menu/_all.scss +2 -2
  79. package/styles/context-menu/_bootstrap-dark-definition.scss +54 -54
  80. package/styles/context-menu/_bootstrap-definition.scss +52 -52
  81. package/styles/context-menu/_bootstrap4-definition.scss +52 -52
  82. package/styles/context-menu/_fabric-dark-definition.scss +54 -54
  83. package/styles/context-menu/_fabric-definition.scss +52 -52
  84. package/styles/context-menu/_highcontrast-definition.scss +52 -52
  85. package/styles/context-menu/_highcontrast-light-definition.scss +54 -54
  86. package/styles/context-menu/_layout-mixin.scss +175 -175
  87. package/styles/context-menu/_layout.scss +70 -70
  88. package/styles/context-menu/_material-dark-definition.scss +54 -54
  89. package/styles/context-menu/_material-definition.scss +52 -52
  90. package/styles/context-menu/_theme-mixin.scss +59 -59
  91. package/styles/context-menu/_theme.scss +36 -36
  92. package/styles/context-menu/bootstrap-dark.css +0 -1
  93. package/styles/context-menu/bootstrap.css +0 -1
  94. package/styles/context-menu/bootstrap4.css +0 -1
  95. package/styles/context-menu/fabric-dark.css +0 -1
  96. package/styles/context-menu/fabric.css +0 -1
  97. package/styles/context-menu/highcontrast-light.css +0 -1
  98. package/styles/context-menu/highcontrast.css +0 -1
  99. package/styles/context-menu/icons/_bootstrap-dark.scss +30 -30
  100. package/styles/context-menu/icons/_bootstrap.scss +30 -30
  101. package/styles/context-menu/icons/_bootstrap4.scss +30 -30
  102. package/styles/context-menu/icons/_fabric-dark.scss +30 -30
  103. package/styles/context-menu/icons/_fabric.scss +30 -30
  104. package/styles/context-menu/icons/_highcontrast-light.scss +30 -30
  105. package/styles/context-menu/icons/_highcontrast.scss +30 -30
  106. package/styles/context-menu/icons/_material-dark.scss +30 -30
  107. package/styles/context-menu/icons/_material.scss +30 -30
  108. package/styles/context-menu/material-dark.css +0 -1
  109. package/styles/context-menu/material.css +3 -4
  110. package/styles/fabric-dark.css +7 -9
  111. package/styles/fabric.css +7 -9
  112. package/styles/h-scroll/_all.scss +2 -2
  113. package/styles/h-scroll/_bootstrap-dark-definition.scss +49 -49
  114. package/styles/h-scroll/_bootstrap-definition.scss +50 -50
  115. package/styles/h-scroll/_bootstrap4-definition.scss +49 -49
  116. package/styles/h-scroll/_fabric-dark-definition.scss +50 -50
  117. package/styles/h-scroll/_fabric-definition.scss +48 -48
  118. package/styles/h-scroll/_highcontrast-definition.scss +52 -52
  119. package/styles/h-scroll/_highcontrast-light-definition.scss +54 -54
  120. package/styles/h-scroll/_layout.scss +198 -198
  121. package/styles/h-scroll/_material-dark-definition.scss +77 -77
  122. package/styles/h-scroll/_material-definition.scss +77 -77
  123. package/styles/h-scroll/_theme.scss +157 -157
  124. package/styles/h-scroll/icons/_bootstrap-dark.scss +49 -49
  125. package/styles/h-scroll/icons/_bootstrap.scss +49 -49
  126. package/styles/h-scroll/icons/_bootstrap4.scss +49 -49
  127. package/styles/h-scroll/icons/_fabric-dark.scss +49 -49
  128. package/styles/h-scroll/icons/_fabric.scss +49 -49
  129. package/styles/h-scroll/icons/_highcontrast-light.scss +49 -49
  130. package/styles/h-scroll/icons/_highcontrast.scss +49 -49
  131. package/styles/h-scroll/icons/_material-dark.scss +49 -49
  132. package/styles/h-scroll/icons/_material.scss +49 -49
  133. package/styles/highcontrast-light.css +7 -9
  134. package/styles/highcontrast.css +7 -9
  135. package/styles/material-dark.css +7 -9
  136. package/styles/material.css +21 -14
  137. package/styles/menu/_all.scss +2 -2
  138. package/styles/menu/_bootstrap-dark-definition.scss +63 -63
  139. package/styles/menu/_bootstrap-definition.scss +65 -65
  140. package/styles/menu/_bootstrap4-definition.scss +64 -64
  141. package/styles/menu/_fabric-dark-definition.scss +63 -63
  142. package/styles/menu/_fabric-definition.scss +64 -64
  143. package/styles/menu/_highcontrast-definition.scss +65 -65
  144. package/styles/menu/_highcontrast-light-definition.scss +61 -61
  145. package/styles/menu/_layout.scss +638 -638
  146. package/styles/menu/_material-dark-definition.scss +63 -63
  147. package/styles/menu/_material-definition.scss +64 -64
  148. package/styles/menu/_theme.scss +243 -243
  149. package/styles/menu/bootstrap-dark.css +0 -1
  150. package/styles/menu/bootstrap.css +0 -1
  151. package/styles/menu/bootstrap.scss +1 -0
  152. package/styles/menu/bootstrap4.css +0 -1
  153. package/styles/menu/fabric-dark.css +0 -1
  154. package/styles/menu/fabric.css +0 -1
  155. package/styles/menu/fabric.scss +1 -0
  156. package/styles/menu/highcontrast-light.css +0 -1
  157. package/styles/menu/highcontrast.css +0 -1
  158. package/styles/menu/highcontrast.scss +1 -0
  159. package/styles/menu/icons/_bootstrap-dark.scss +127 -127
  160. package/styles/menu/icons/_bootstrap.scss +127 -127
  161. package/styles/menu/icons/_bootstrap4.scss +127 -127
  162. package/styles/menu/icons/_fabric-dark.scss +127 -127
  163. package/styles/menu/icons/_fabric.scss +127 -127
  164. package/styles/menu/icons/_highcontrast-light.scss +127 -127
  165. package/styles/menu/icons/_highcontrast.scss +127 -127
  166. package/styles/menu/icons/_material-dark.scss +127 -127
  167. package/styles/menu/icons/_material.scss +127 -127
  168. package/styles/menu/material-dark.css +0 -1
  169. package/styles/menu/material.css +2 -3
  170. package/styles/menu/material.scss +1 -0
  171. package/styles/sidebar/_all.scss +3 -3
  172. package/styles/sidebar/_bootstrap-dark-definition.scss +4 -4
  173. package/styles/sidebar/_bootstrap-definition.scss +4 -4
  174. package/styles/sidebar/_bootstrap4-definition.scss +4 -4
  175. package/styles/sidebar/_fabric-dark-definition.scss +4 -4
  176. package/styles/sidebar/_fabric-definition.scss +6 -6
  177. package/styles/sidebar/_highcontrast-definition.scss +4 -4
  178. package/styles/sidebar/_highcontrast-light-definition.scss +4 -4
  179. package/styles/sidebar/_icons.scss +1 -1
  180. package/styles/sidebar/_material-dark-definition.scss +4 -4
  181. package/styles/sidebar/_material-definition.scss +6 -6
  182. package/styles/sidebar/_theme.scss +168 -168
  183. package/styles/sidebar/bootstrap-dark.css +0 -1
  184. package/styles/sidebar/bootstrap.css +0 -1
  185. package/styles/sidebar/bootstrap4.css +0 -1
  186. package/styles/sidebar/fabric-dark.css +0 -1
  187. package/styles/sidebar/fabric.css +0 -1
  188. package/styles/sidebar/highcontrast-light.css +0 -1
  189. package/styles/sidebar/highcontrast.css +0 -1
  190. package/styles/sidebar/material-dark.css +0 -1
  191. package/styles/sidebar/material.css +0 -1
  192. package/styles/tab/_all.scss +2 -2
  193. package/styles/tab/_bootstrap-dark-definition.scss +386 -386
  194. package/styles/tab/_bootstrap-definition.scss +396 -396
  195. package/styles/tab/_bootstrap4-definition.scss +401 -401
  196. package/styles/tab/_fabric-dark-definition.scss +394 -394
  197. package/styles/tab/_fabric-definition.scss +410 -410
  198. package/styles/tab/_highcontrast-definition.scss +434 -434
  199. package/styles/tab/_highcontrast-light-definition.scss +423 -423
  200. package/styles/tab/_icons.scss +43 -43
  201. package/styles/tab/_layout.scss +3528 -3521
  202. package/styles/tab/_material-dark-definition.scss +407 -407
  203. package/styles/tab/_material-definition.scss +416 -416
  204. package/styles/tab/_theme.scss +1751 -1751
  205. package/styles/tab/bootstrap-dark.css +7 -2
  206. package/styles/tab/bootstrap.css +7 -2
  207. package/styles/tab/bootstrap4.css +7 -2
  208. package/styles/tab/fabric-dark.css +7 -2
  209. package/styles/tab/fabric.css +7 -2
  210. package/styles/tab/highcontrast-light.css +7 -2
  211. package/styles/tab/highcontrast.css +7 -2
  212. package/styles/tab/icons/_bootstrap-dark.scss +132 -132
  213. package/styles/tab/icons/_bootstrap.scss +132 -132
  214. package/styles/tab/icons/_bootstrap4.scss +132 -132
  215. package/styles/tab/icons/_fabric-dark.scss +132 -132
  216. package/styles/tab/icons/_fabric.scss +132 -132
  217. package/styles/tab/icons/_highcontrast-light.scss +132 -132
  218. package/styles/tab/icons/_highcontrast.scss +132 -132
  219. package/styles/tab/icons/_material-dark.scss +132 -132
  220. package/styles/tab/icons/_material.scss +132 -132
  221. package/styles/tab/material-dark.css +7 -2
  222. package/styles/tab/material.css +7 -2
  223. package/styles/tailwind-dark.css +0 -0
  224. package/styles/tailwind-dark.scss +0 -0
  225. package/styles/tailwind.css +0 -0
  226. package/styles/tailwind.scss +0 -0
  227. package/styles/toolbar/_all.scss +2 -2
  228. package/styles/toolbar/_bootstrap-dark-definition.scss +135 -135
  229. package/styles/toolbar/_bootstrap-definition.scss +134 -134
  230. package/styles/toolbar/_bootstrap4-definition.scss +139 -139
  231. package/styles/toolbar/_fabric-dark-definition.scss +155 -155
  232. package/styles/toolbar/_fabric-definition.scss +139 -139
  233. package/styles/toolbar/_highcontrast-definition.scss +149 -149
  234. package/styles/toolbar/_highcontrast-light-definition.scss +164 -164
  235. package/styles/toolbar/_layout.scss +1460 -1460
  236. package/styles/toolbar/_material-dark-definition.scss +180 -180
  237. package/styles/toolbar/_material-definition.scss +164 -164
  238. package/styles/toolbar/_theme.scss +451 -451
  239. package/styles/toolbar/bootstrap-dark.css +0 -1
  240. package/styles/toolbar/bootstrap.css +0 -1
  241. package/styles/toolbar/bootstrap.scss +1 -0
  242. package/styles/toolbar/bootstrap4.css +0 -1
  243. package/styles/toolbar/fabric-dark.css +0 -1
  244. package/styles/toolbar/fabric.css +0 -1
  245. package/styles/toolbar/fabric.scss +1 -0
  246. package/styles/toolbar/highcontrast-light.css +0 -1
  247. package/styles/toolbar/highcontrast.css +0 -1
  248. package/styles/toolbar/highcontrast.scss +1 -0
  249. package/styles/toolbar/icons/_bootstrap-dark.scss +16 -16
  250. package/styles/toolbar/icons/_bootstrap.scss +16 -16
  251. package/styles/toolbar/icons/_bootstrap4.scss +16 -16
  252. package/styles/toolbar/icons/_fabric-dark.scss +16 -16
  253. package/styles/toolbar/icons/_fabric.scss +16 -16
  254. package/styles/toolbar/icons/_highcontrast-light.scss +16 -16
  255. package/styles/toolbar/icons/_highcontrast.scss +16 -16
  256. package/styles/toolbar/icons/_material-dark.scss +16 -16
  257. package/styles/toolbar/icons/_material.scss +16 -16
  258. package/styles/toolbar/material-dark.css +0 -1
  259. package/styles/toolbar/material.css +0 -1
  260. package/styles/toolbar/material.scss +1 -0
  261. package/styles/treeview/_all.scss +2 -2
  262. package/styles/treeview/_bootstrap-dark-definition.scss +131 -131
  263. package/styles/treeview/_bootstrap-definition.scss +127 -127
  264. package/styles/treeview/_bootstrap4-definition.scss +153 -153
  265. package/styles/treeview/_fabric-dark-definition.scss +130 -130
  266. package/styles/treeview/_fabric-definition.scss +126 -126
  267. package/styles/treeview/_highcontrast-definition.scss +132 -132
  268. package/styles/treeview/_highcontrast-light-definition.scss +137 -137
  269. package/styles/treeview/_layout.scss +551 -551
  270. package/styles/treeview/_material-dark-definition.scss +126 -126
  271. package/styles/treeview/_material-definition.scss +126 -126
  272. package/styles/treeview/_theme.scss +331 -331
  273. package/styles/treeview/bootstrap-dark.css +0 -3
  274. package/styles/treeview/bootstrap.css +0 -3
  275. package/styles/treeview/bootstrap4.css +0 -3
  276. package/styles/treeview/fabric-dark.css +0 -3
  277. package/styles/treeview/fabric.css +0 -3
  278. package/styles/treeview/highcontrast-light.css +0 -3
  279. package/styles/treeview/highcontrast.css +0 -3
  280. package/styles/treeview/icons/_bootstrap-dark.scss +39 -39
  281. package/styles/treeview/icons/_bootstrap.scss +39 -39
  282. package/styles/treeview/icons/_bootstrap4.scss +39 -39
  283. package/styles/treeview/icons/_fabric-dark.scss +43 -43
  284. package/styles/treeview/icons/_fabric.scss +43 -43
  285. package/styles/treeview/icons/_highcontrast-light.scss +43 -43
  286. package/styles/treeview/icons/_highcontrast.scss +43 -43
  287. package/styles/treeview/icons/_material-dark.scss +43 -43
  288. package/styles/treeview/icons/_material.scss +43 -43
  289. package/styles/treeview/material-dark.css +0 -3
  290. package/styles/treeview/material.css +9 -3
  291. package/styles/v-scroll/_all.scss +2 -2
  292. package/styles/v-scroll/_bootstrap-dark-definition.scss +50 -50
  293. package/styles/v-scroll/_bootstrap-definition.scss +49 -49
  294. package/styles/v-scroll/_bootstrap4-definition.scss +49 -49
  295. package/styles/v-scroll/_fabric-dark-definition.scss +51 -51
  296. package/styles/v-scroll/_fabric-definition.scss +50 -50
  297. package/styles/v-scroll/_highcontrast-definition.scss +51 -51
  298. package/styles/v-scroll/_highcontrast-light-definition.scss +52 -52
  299. package/styles/v-scroll/_layout.scss +162 -162
  300. package/styles/v-scroll/_material-dark-definition.scss +78 -78
  301. package/styles/v-scroll/_material-definition.scss +77 -77
  302. package/styles/v-scroll/_theme.scss +133 -133
  303. package/styles/v-scroll/icons/_bootstrap-dark.scss +26 -26
  304. package/styles/v-scroll/icons/_bootstrap.scss +26 -26
  305. package/styles/v-scroll/icons/_bootstrap4.scss +26 -26
  306. package/styles/v-scroll/icons/_fabric-dark.scss +26 -26
  307. package/styles/v-scroll/icons/_fabric.scss +26 -26
  308. package/styles/v-scroll/icons/_highcontrast-light.scss +26 -26
  309. package/styles/v-scroll/icons/_highcontrast.scss +26 -26
  310. package/styles/v-scroll/icons/_material-dark.scss +26 -26
  311. package/styles/v-scroll/icons/_material.scss +26 -26
  312. package/tslint.json +111 -0
  313. package/.gitlab/merge_request_templates/Bug.md +0 -63
  314. package/.gitlab/merge_request_templates/feature.md +0 -39
@@ -1,4 +1,4 @@
1
- import { Component, Property, ChildProperty, NotifyPropertyChanges, INotifyPropertyChanged, AnimationModel } from '@syncfusion/ej2-base';import { Event, EventHandler, EmitType, BaseEventArgs, KeyboardEvents, KeyboardEventArgs, Touch, TapEventArgs } from '@syncfusion/ej2-base';import { attributes, Animation, AnimationOptions, TouchEventArgs, MouseEventArgs } from '@syncfusion/ej2-base';import { Browser, Collection, setValue, getValue, getUniqueID, getInstance, isNullOrUndefined } from '@syncfusion/ej2-base';import { select, selectAll, closest, detach, append, rippleEffect, isVisible, Complex, addClass, removeClass } from '@syncfusion/ej2-base';import { ListBase, ListBaseOptions } from '@syncfusion/ej2-lists';import { getZindexPartial, calculatePosition, OffsetPosition, isCollide, flip, fit, Popup } from '@syncfusion/ej2-popups';import { updateBlazorTemplate, resetBlazorTemplate, blazorTemplates, extend } from '@syncfusion/ej2-base';import { getScrollableParent } from '@syncfusion/ej2-popups';import { HScroll } from '../common/h-scroll';import { VScroll } from '../common/v-scroll';
1
+ import { Component, Property, ChildProperty, NotifyPropertyChanges, INotifyPropertyChanged, AnimationModel } from '@syncfusion/ej2-base';
2
2
  import {MenuEffect,MenuEventArgs,BeforeOpenCloseMenuEventArgs,OpenCloseMenuEventArgs} from "./menu-base";
3
3
  import {ComponentModel} from '@syncfusion/ej2-base';
4
4
 
@@ -8,46 +8,46 @@ import {ComponentModel} from '@syncfusion/ej2-base';
8
8
  export interface FieldSettingsModel {
9
9
 
10
10
  /**
11
- * Specifies the itemId field for Menu item.
12
- * @default 'id'
13
- */
14
- itemId?: string | string[];
11
+ * Specifies the itemId field for Menu item.
12
+ * @default 'id'
13
+ */
14
+ itemId?: string | string[];
15
15
 
16
16
  /**
17
- * Specifies the parentId field for Menu item.
18
- * @default 'parentId'
19
- */
20
- parentId?: string | string[];
17
+ * Specifies the parentId field for Menu item.
18
+ * @default 'parentId'
19
+ */
20
+ parentId?: string | string[];
21
21
 
22
22
  /**
23
- * Specifies the text field for Menu item.
24
- * @default 'text'
25
- */
26
- text?: string | string[];
23
+ * Specifies the text field for Menu item.
24
+ * @default 'text'
25
+ */
26
+ text?: string | string[];
27
27
 
28
28
  /**
29
- * Specifies the css icon field for Menu item.
30
- * @default 'iconCss'
31
- */
32
- iconCss?: string | string[];
29
+ * Specifies the css icon field for Menu item.
30
+ * @default 'iconCss'
31
+ */
32
+ iconCss?: string | string[];
33
33
 
34
34
  /**
35
- * Specifies the Url field for Menu item.
36
- * @default 'url'
37
- */
38
- url?: string | string[];
35
+ * Specifies the Url field for Menu item.
36
+ * @default 'url'
37
+ */
38
+ url?: string | string[];
39
39
 
40
40
  /**
41
- * Specifies the separator field for Menu item.
42
- * @default 'separator'
43
- */
44
- separator?: string | string[];
41
+ * Specifies the separator field for Menu item.
42
+ * @default 'separator'
43
+ */
44
+ separator?: string | string[];
45
45
 
46
46
  /**
47
- * Specifies the children field for Menu item.
48
- * @default 'items'
49
- */
50
- children?: string | string[];
47
+ * Specifies the children field for Menu item.
48
+ * @default 'items'
49
+ */
50
+ children?: string | string[];
51
51
 
52
52
  }
53
53
 
@@ -57,41 +57,41 @@ export interface FieldSettingsModel {
57
57
  export interface MenuItemModel {
58
58
 
59
59
  /**
60
- * Defines class/multiple classes separated by a space for the menu Item that is used to include an icon.
61
- * Menu Item can include font icon and sprite image.
62
- * @default null
63
- */
64
- iconCss?: string;
60
+ * Defines class/multiple classes separated by a space for the menu Item that is used to include an icon.
61
+ * Menu Item can include font icon and sprite image.
62
+ * @default null
63
+ */
64
+ iconCss?: string;
65
65
 
66
66
  /**
67
- * Specifies the id for menu item.
68
- * @default ''
69
- */
70
- id?: string;
67
+ * Specifies the id for menu item.
68
+ * @default ''
69
+ */
70
+ id?: string;
71
71
 
72
72
  /**
73
- * Specifies separator between the menu items. Separator are either horizontal or vertical lines used to group menu items.
74
- * @default false
75
- */
76
- separator?: boolean;
73
+ * Specifies separator between the menu items. Separator are either horizontal or vertical lines used to group menu items.
74
+ * @default false
75
+ */
76
+ separator?: boolean;
77
77
 
78
78
  /**
79
- * Specifies the sub menu items that is the array of MenuItem model.
80
- * @default []
81
- */
82
- items?: MenuItemModel[];
79
+ * Specifies the sub menu items that is the array of MenuItem model.
80
+ * @default []
81
+ */
82
+ items?: MenuItemModel[];
83
83
 
84
84
  /**
85
- * Specifies text for menu item.
86
- * @default ''
87
- */
88
- text?: string;
85
+ * Specifies text for menu item.
86
+ * @default ''
87
+ */
88
+ text?: string;
89
89
 
90
90
  /**
91
- * Specifies url for menu item that creates the anchor link to navigate to the url provided.
92
- * @default ''
93
- */
94
- url?: string;
91
+ * Specifies url for menu item that creates the anchor link to navigate to the url provided.
92
+ * @default ''
93
+ */
94
+ url?: string;
95
95
 
96
96
  }
97
97
 
@@ -101,30 +101,30 @@ export interface MenuItemModel {
101
101
  export interface MenuAnimationSettingsModel {
102
102
 
103
103
  /**
104
- * Specifies the effect that shown in the sub menu transform.
105
- * The possible effects are:
106
- * * None: Specifies the sub menu transform with no animation effect.
107
- * * SlideDown: Specifies the sub menu transform with slide down effect.
108
- * * ZoomIn: Specifies the sub menu transform with zoom in effect.
109
- * * FadeIn: Specifies the sub menu transform with fade in effect.
110
- * @default 'SlideDown'
111
- * @aspType Syncfusion.EJ2.Navigations.MenuEffect
112
- * @blazorType Syncfusion.EJ2.Navigations.MenuEffect
113
- * @isEnumeration true
114
- */
115
- effect?: MenuEffect;
104
+ * Specifies the effect that shown in the sub menu transform.
105
+ * The possible effects are:
106
+ * * None: Specifies the sub menu transform with no animation effect.
107
+ * * SlideDown: Specifies the sub menu transform with slide down effect.
108
+ * * ZoomIn: Specifies the sub menu transform with zoom in effect.
109
+ * * FadeIn: Specifies the sub menu transform with fade in effect.
110
+ * @default 'SlideDown'
111
+ * @aspType Syncfusion.EJ2.Navigations.MenuEffect
112
+ * @blazorType Syncfusion.EJ2.Navigations.MenuEffect
113
+ * @isEnumeration true
114
+ */
115
+ effect?: MenuEffect;
116
116
 
117
117
  /**
118
- * Specifies the time duration to transform object.
119
- * @default 400
120
- */
121
- duration?: number;
118
+ * Specifies the time duration to transform object.
119
+ * @default 400
120
+ */
121
+ duration?: number;
122
122
 
123
123
  /**
124
- * Specifies the easing effect applied while transform.
125
- * @default 'ease'
126
- */
127
- easing?: string;
124
+ * Specifies the easing effect applied while transform.
125
+ * @default 'ease'
126
+ */
127
+ easing?: string;
128
128
 
129
129
  }
130
130
 
@@ -135,118 +135,118 @@ export interface MenuAnimationSettingsModel {
135
135
  export interface MenuBaseModel extends ComponentModel{
136
136
 
137
137
  /**
138
-      * Triggers while rendering each menu item.
139
-      * @event
140
- * @blazorProperty 'OnItemRender'
141
-      */
142
- beforeItemRender?: EmitType<MenuEventArgs>;
138
+      * Triggers while rendering each menu item.
139
+      * @event
140
+ * @blazorProperty 'OnItemRender'
141
+      */
142
+ beforeItemRender?: EmitType<MenuEventArgs>;
143
143
 
144
144
  /**
145
-      * Triggers before opening the menu item.
146
-      * @event
147
- * @blazorProperty 'OnOpen'
148
-      */
149
- beforeOpen?: EmitType<BeforeOpenCloseMenuEventArgs>;
145
+      * Triggers before opening the menu item.
146
+      * @event
147
+ * @blazorProperty 'OnOpen'
148
+      */
149
+ beforeOpen?: EmitType<BeforeOpenCloseMenuEventArgs>;
150
150
 
151
151
  /**
152
-      * Triggers while opening the menu item.
153
-      * @event
154
- * @blazorProperty 'Opened'
155
-      */
156
- onOpen?: EmitType<OpenCloseMenuEventArgs>;
152
+      * Triggers while opening the menu item.
153
+      * @event
154
+ * @blazorProperty 'Opened'
155
+      */
156
+ onOpen?: EmitType<OpenCloseMenuEventArgs>;
157
157
 
158
158
  /**
159
-      * Triggers before closing the menu.
160
-      * @event
161
- * @blazorProperty 'OnClose'
162
-      */
163
- beforeClose?: EmitType<BeforeOpenCloseMenuEventArgs>;
159
+      * Triggers before closing the menu.
160
+      * @event
161
+ * @blazorProperty 'OnClose'
162
+      */
163
+ beforeClose?: EmitType<BeforeOpenCloseMenuEventArgs>;
164
164
 
165
165
  /**
166
-      * Triggers while closing the menu.
167
-      * @event
168
- * @blazorProperty 'Closed'
169
-      */
170
- onClose?: EmitType<OpenCloseMenuEventArgs>;
166
+      * Triggers while closing the menu.
167
+      * @event
168
+ * @blazorProperty 'Closed'
169
+      */
170
+ onClose?: EmitType<OpenCloseMenuEventArgs>;
171
171
 
172
172
  /**
173
-      * Triggers while selecting menu item.
174
-      * @event
175
- * @blazorProperty 'ItemSelected'
176
-      */
177
- select?: EmitType<MenuEventArgs>;
173
+      * Triggers while selecting menu item.
174
+      * @event
175
+ * @blazorProperty 'ItemSelected'
176
+      */
177
+ select?: EmitType<MenuEventArgs>;
178
178
 
179
179
  /**
180
- * Triggers once the component rendering is completed.
181
- * @event
182
- * @blazorProperty 'Created'
183
- */
184
- created?: EmitType<Event>;
180
+ * Triggers once the component rendering is completed.
181
+ * @event
182
+ * @blazorProperty 'Created'
183
+ */
184
+ created?: EmitType<Event>;
185
185
 
186
186
  /**
187
- * Defines class/multiple classes separated by a space in the Menu wrapper.
188
- * @default ''
189
- */
190
- cssClass?: string;
187
+ * Defines class/multiple classes separated by a space in the Menu wrapper.
188
+ * @default ''
189
+ */
190
+ cssClass?: string;
191
191
 
192
192
  /**
193
- * Specifies whether to show the sub menu or not on click.
194
- * When set to true, the sub menu will open only on mouse click.
195
- * @default false
196
- */
197
- showItemOnClick?: boolean;
193
+ * Specifies whether to show the sub menu or not on click.
194
+ * When set to true, the sub menu will open only on mouse click.
195
+ * @default false
196
+ */
197
+ showItemOnClick?: boolean;
198
198
 
199
199
  /**
200
- * Specifies target element selector in which the ContextMenu should be opened.
201
- * Specifies target element to open/close Menu while click in Hamburger mode.
202
- * @default ''
203
- * @private
204
- */
205
- target?: string;
200
+ * Specifies target element selector in which the ContextMenu should be opened.
201
+ * Specifies target element to open/close Menu while click in Hamburger mode.
202
+ * @default ''
203
+ * @private
204
+ */
205
+ target?: string;
206
206
 
207
207
  /**
208
- * Specifies the filter selector for elements inside the target in that the context menu will be opened.
209
- * Not applicable to Menu component.
210
- * @default ''
211
- * @private
212
- */
213
- filter?: string;
208
+ * Specifies the filter selector for elements inside the target in that the context menu will be opened.
209
+ * Not applicable to Menu component.
210
+ * @default ''
211
+ * @private
212
+ */
213
+ filter?: string;
214
214
 
215
215
  /**
216
- * Specifies the template for Menu item.
217
- * Not applicable to ContextMenu component.
218
- * @default null
219
- * @private
220
- */
221
- template?: string;
216
+ * Specifies the template for Menu item.
217
+ * Not applicable to ContextMenu component.
218
+ * @default null
219
+ * @private
220
+ */
221
+ template?: string;
222
222
 
223
223
  /**
224
- * Specifies whether to enable / disable the scrollable option in Menu.
225
- * Not applicable to ContextMenu component.
226
- * @default false
227
- * @private
228
- */
229
- enableScrolling?: boolean;
224
+ * Specifies whether to enable / disable the scrollable option in Menu.
225
+ * Not applicable to ContextMenu component.
226
+ * @default false
227
+ * @private
228
+ */
229
+ enableScrolling?: boolean;
230
230
 
231
231
  /**
232
- * Specifies mapping fields from the dataSource.
233
- * Not applicable to ContextMenu component.
234
- * @default { itemId: "id", text: "text", parentId: "parentId", iconCss: "iconCss", url: "url", separator: "separator",
235
- * children: "items" }
236
- * @private
237
- */
238
- fields?: FieldSettingsModel;
232
+ * Specifies mapping fields from the dataSource.
233
+ * Not applicable to ContextMenu component.
234
+ * @default { itemId: "id", text: "text", parentId: "parentId", iconCss: "iconCss", url: "url", separator: "separator",
235
+ * children: "items" }
236
+ * @private
237
+ */
238
+ fields?: FieldSettingsModel;
239
239
 
240
240
  /**
241
- * Specifies menu items with its properties which will be rendered as Menu.
242
- * @default []
243
- */
244
- items?: MenuItemModel[] | { [key: string]: Object }[];
241
+ * Specifies menu items with its properties which will be rendered as Menu.
242
+ * @default []
243
+ */
244
+ items?: MenuItemModel[] | { [key: string]: Object }[];
245
245
 
246
246
  /**
247
- * Specifies the animation settings for the sub menu open.
248
- * @default { duration: 400, easing: 'ease', effect: 'SlideDown' }
249
- */
250
- animationSettings?: MenuAnimationSettingsModel;
247
+ * Specifies the animation settings for the sub menu open.
248
+ * @default { duration: 400, easing: 'ease', effect: 'SlideDown' }
249
+ */
250
+ animationSettings?: MenuAnimationSettingsModel;
251
251
 
252
252
  }
@@ -45,6 +45,22 @@ export declare class FieldSettings extends ChildProperty<FieldSettings> {
45
45
  */
46
46
  children: string | string[];
47
47
  }
48
+ export interface BrowserDetails {
49
+ isAndroid?: boolean;
50
+ isDevice?: boolean;
51
+ isIE?: boolean;
52
+ isIos?: boolean;
53
+ isIos7?: boolean;
54
+ isMSPointer?: boolean;
55
+ isPointer?: boolean;
56
+ isTouch?: boolean;
57
+ isWebView?: boolean;
58
+ isWindows?: boolean;
59
+ touchStartEvent?: string;
60
+ touchMoveEvent?: string;
61
+ touchEndEvent?: string;
62
+ touchCancelEvent?: string;
63
+ }
48
64
  /**
49
65
  * Specifies menu items.
50
66
  */
@@ -264,6 +280,8 @@ export declare abstract class MenuBase extends Component<HTMLUListElement> imple
264
280
  protected initialize(): void;
265
281
  private renderItems;
266
282
  protected wireEvents(): void;
283
+ private menuIos;
284
+ private getValue;
267
285
  private wireKeyboardEvent;
268
286
  private mouseDownHandler;
269
287
  private keyBoardHandler;
@@ -308,6 +326,7 @@ export declare abstract class MenuBase extends Component<HTMLUListElement> imple
308
326
  private getLIByClass;
309
327
  private getItem;
310
328
  private getItems;
329
+ private setItems;
311
330
  private getIdx;
312
331
  private getLI;
313
332
  private isBlazor;
@@ -1,22 +1,22 @@
1
- var __extends = (this && this.__extends) || (function () {
2
- var extendStatics = function (d, b) {
3
- extendStatics = Object.setPrototypeOf ||
4
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
5
- function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
6
- return extendStatics(d, b);
7
- }
8
- return function (d, b) {
9
- extendStatics(d, b);
10
- function __() { this.constructor = d; }
11
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
12
- };
13
- })();
14
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
15
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
16
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
17
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
18
- return c > 3 && r && Object.defineProperty(target, key, r), r;
19
- };
1
+ var __extends = (this && this.__extends) || (function () {
2
+ var extendStatics = function (d, b) {
3
+ extendStatics = Object.setPrototypeOf ||
4
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
5
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
6
+ return extendStatics(d, b);
7
+ };
8
+ return function (d, b) {
9
+ extendStatics(d, b);
10
+ function __() { this.constructor = d; }
11
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
12
+ };
13
+ })();
14
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
15
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
16
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
17
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
18
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
19
+ };
20
20
  import { Component, Property, ChildProperty, NotifyPropertyChanges } from '@syncfusion/ej2-base';
21
21
  import { Event, EventHandler, KeyboardEvents, Touch } from '@syncfusion/ej2-base';
22
22
  import { Animation } from '@syncfusion/ej2-base';
@@ -80,6 +80,17 @@ var FieldSettings = /** @class */ (function (_super) {
80
80
  return FieldSettings;
81
81
  }(ChildProperty));
82
82
  export { FieldSettings };
83
+ var REGX_IOS = /(ipad|iphone|ipod touch)/i;
84
+ var REGX_BROWSER = {
85
+ OPERA: /(opera|opr)(?:.*version|)[ /]([\w.]+)/i,
86
+ EDGE: /(edge)(?:.*version|)[ /]([\w.]+)/i,
87
+ CHROME: /(chrome|crios)[ /]([\w.]+)/i,
88
+ PANTHOMEJS: /(phantomjs)[ /]([\w.]+)/i,
89
+ SAFARI: /(safari)[ /]([\w.]+)/i,
90
+ WEBKIT: /(webkit)[ /]([\w.]+)/i,
91
+ MSIE: /(msie|trident) ([\w.]+)/i,
92
+ MOZILLA: /(mozilla)(?:.*? rv:([\w.]+)|)/i
93
+ };
83
94
  /**
84
95
  * Specifies menu items.
85
96
  */
@@ -265,7 +276,7 @@ var MenuBase = /** @class */ (function (_super) {
265
276
  EventHandler.add(target, 'click', this.menuHeaderClickHandler, this);
266
277
  }
267
278
  else {
268
- if (Browser.isIos) {
279
+ if (this.menuIos()) {
269
280
  new Touch(target, { tapHold: this.touchHandler.bind(this) });
270
281
  }
271
282
  else {
@@ -275,6 +286,7 @@ var MenuBase = /** @class */ (function (_super) {
275
286
  }
276
287
  this.targetElement = target;
277
288
  if (!this.isMenu) {
289
+ EventHandler.add(this.targetElement, 'scroll', this.scrollHandler, this);
278
290
  for (var _i = 0, _a = getScrollableParent(this.targetElement); _i < _a.length; _i++) {
279
291
  var parent_1 = _a[_i];
280
292
  EventHandler.add(parent_1, 'scroll', this.scrollHandler, this);
@@ -292,6 +304,22 @@ var MenuBase = /** @class */ (function (_super) {
292
304
  this.wireKeyboardEvent(wrapper);
293
305
  this.rippleFn = rippleEffect(wrapper, { selector: '.' + ITEM });
294
306
  };
307
+ MenuBase.prototype.menuIos = function () {
308
+ return this.getValue('isIos', REGX_IOS);
309
+ };
310
+ MenuBase.prototype.getValue = function (key, regX) {
311
+ var browserDetails = typeof window !== 'undefined' ? window.browserDetails : {};
312
+ if (typeof navigator !== 'undefined' && navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1 && Browser.isTouch === true && !REGX_BROWSER.CHROME.test(navigator.userAgent)) {
313
+ browserDetails['isIos'] = true;
314
+ browserDetails['isDevice'] = true;
315
+ browserDetails['isTouch'] = true;
316
+ browserDetails['isPointer'] = true;
317
+ }
318
+ if ('undefined' === typeof browserDetails["" + key]) {
319
+ return browserDetails["" + key] = regX.test(Browser.userAgent);
320
+ }
321
+ return browserDetails["" + key];
322
+ };
295
323
  MenuBase.prototype.wireKeyboardEvent = function (element) {
296
324
  var keyConfigs = {
297
325
  downarrow: DOWNARROW,
@@ -1073,7 +1101,7 @@ var MenuBase = /** @class */ (function (_super) {
1073
1101
  if (this.isMenu) {
1074
1102
  if (!this.showItemOnClick && (trgt.parentElement !== wrapper && !closest(trgt, '.e-' + this.getModuleName() + '-popup'))
1075
1103
  && (!cli || (cli && !this.getIndex(cli.id, true).length))) {
1076
- this.removeLIStateByClass([FOCUSED, SELECTED], [wrapper]);
1104
+ this.removeLIStateByClass([FOCUSED], [wrapper]);
1077
1105
  if (this.navIdx.length) {
1078
1106
  this.isClosed = true;
1079
1107
  this.closeMenu(null, e);
@@ -1140,6 +1168,9 @@ var MenuBase = /** @class */ (function (_super) {
1140
1168
  return false;
1141
1169
  };
1142
1170
  MenuBase.prototype.menuHeaderClickHandler = function (e) {
1171
+ if (closest(e.target, '.e-menu-wrapper').querySelector('ul.e-menu-parent').id !== this.element.id) {
1172
+ return;
1173
+ }
1143
1174
  this.element.classList.contains('e-hide-menu') ? this.openHamburgerMenu(e) : this.closeHamburgerMenu(e);
1144
1175
  };
1145
1176
  MenuBase.prototype.clickHandler = function (e) {
@@ -1150,9 +1181,16 @@ var MenuBase = /** @class */ (function (_super) {
1150
1181
  var wrapper = this.getWrapper();
1151
1182
  var trgt = e.target;
1152
1183
  var cli = this.cli = this.getLI(trgt);
1184
+ var regex = new RegExp('-ej2menu-(.*)-popup');
1153
1185
  var cliWrapper = cli ? closest(cli, '.e-' + this.getModuleName() + '-wrapper') : null;
1154
1186
  var isInstLI = cli && cliWrapper && (this.isMenu ? this.getIndex(cli.id, true).length > 0
1155
1187
  : wrapper.firstElementChild.id === cliWrapper.firstElementChild.id);
1188
+ if (cli && cliWrapper && this.isMenu) {
1189
+ var cliWrapperId = cliWrapper.id ? regex.exec(cliWrapper.id)[1] : cliWrapper.querySelector('.e-menu-parent').id;
1190
+ if (this.element.id !== cliWrapperId) {
1191
+ return;
1192
+ }
1193
+ }
1156
1194
  if (isInstLI && e.type === 'click' && !cli.classList.contains(HEADER)) {
1157
1195
  this.setLISelected(cli);
1158
1196
  var navIdx = this.getIndex(cli.id, true);
@@ -1214,7 +1252,11 @@ var MenuBase = /** @class */ (function (_super) {
1214
1252
  this.menuHeaderClickHandler(e);
1215
1253
  }
1216
1254
  else {
1217
- if (trgt.tagName !== 'UL' || trgt.parentElement !== wrapper) {
1255
+ if (trgt.tagName !== 'UL' || (this.isMenu ? trgt.parentElement.classList.contains('e-menu-wrapper') &&
1256
+ !this.getIndex(trgt.querySelector('.' + ITEM).id, true).length : trgt.parentElement !== wrapper)) {
1257
+ if (!cli) {
1258
+ this.removeLIStateByClass([SELECTED], [wrapper]);
1259
+ }
1218
1260
  if (!cli || !cli.querySelector('.' + CARET)) {
1219
1261
  this.closeMenu(null, e);
1220
1262
  }
@@ -1227,7 +1269,7 @@ var MenuBase = /** @class */ (function (_super) {
1227
1269
  if (this.showSubMenu) {
1228
1270
  var idx = this.navIdx.concat(this.cliIdx);
1229
1271
  var item = this.getItem(idx);
1230
- if (item[this.getField('children', idx.length - 1)] &&
1272
+ if (item && item[this.getField('children', idx.length - 1)] &&
1231
1273
  item[this.getField('children', idx.length - 1)].length) {
1232
1274
  if (e.type === 'mouseover' || (Browser.isDevice && this.isMenu)) {
1233
1275
  this.setLISelected(this.cli);
@@ -1275,6 +1317,13 @@ var MenuBase = /** @class */ (function (_super) {
1275
1317
  }
1276
1318
  return items;
1277
1319
  };
1320
+ MenuBase.prototype.setItems = function (newItems, navIdx) {
1321
+ var items = this.getItems(navIdx);
1322
+ items.splice(0, items.length);
1323
+ for (var i = 0; i < newItems.length; i++) {
1324
+ items.splice(i, 0, newItems[i]);
1325
+ }
1326
+ };
1278
1327
  MenuBase.prototype.getIdx = function (ul, li, skipHdr) {
1279
1328
  if (skipHdr === void 0) { skipHdr = true; }
1280
1329
  var idx = Array.prototype.indexOf.call(ul.querySelectorAll('li'), li);
@@ -1385,8 +1434,8 @@ var MenuBase = /** @class */ (function (_super) {
1385
1434
  idx = navIdx.pop();
1386
1435
  item = this_1.getItems(navIdx);
1387
1436
  this_1.insertAfter([item[idx]], item[idx].text);
1388
- item = this_1.getItems(navIdx);
1389
1437
  this_1.removeItem(item, navIdx, idx);
1438
+ this_1.setItems(item, navIdx);
1390
1439
  }
1391
1440
  navIdx.length = 0;
1392
1441
  }
@@ -1450,6 +1499,7 @@ var MenuBase = /** @class */ (function (_super) {
1450
1499
  }
1451
1500
  }
1452
1501
  if (!this.isMenu) {
1502
+ EventHandler.remove(this.targetElement, 'scroll', this.scrollHandler);
1453
1503
  for (var _i = 0, _a = getScrollableParent(this.targetElement); _i < _a.length; _i++) {
1454
1504
  var parent_2 = _a[_i];
1455
1505
  EventHandler.remove(parent_2, 'scroll', this.scrollHandler);
@@ -1622,8 +1672,28 @@ var MenuBase = /** @class */ (function (_super) {
1622
1672
  var idx;
1623
1673
  var navIdx;
1624
1674
  var disabled = DISABLED;
1675
+ var skipItem;
1625
1676
  for (var i = 0; i < items.length; i++) {
1626
1677
  navIdx = this.getIndex(items[i], isUniqueId);
1678
+ if (this.navIdx.length) {
1679
+ if (navIdx.length !== 1) {
1680
+ skipItem = false;
1681
+ for (var i_1 = 0, len = navIdx.length - 1; i_1 < len; i_1++) {
1682
+ if (navIdx[i_1] !== this.navIdx[i_1]) {
1683
+ skipItem = true;
1684
+ break;
1685
+ }
1686
+ }
1687
+ if (skipItem) {
1688
+ continue;
1689
+ }
1690
+ }
1691
+ }
1692
+ else {
1693
+ if (navIdx.length !== 1) {
1694
+ continue;
1695
+ }
1696
+ }
1627
1697
  idx = navIdx.pop();
1628
1698
  ul = this.getUlByNavIdx(navIdx.length);
1629
1699
  if (ul) {
@@ -1,4 +1,4 @@
1
- import { Touch, ScrollEventArgs, TouchEventArgs, Component, EventHandler, selectAll, getUniqueID, removeClass } from '@syncfusion/ej2-base';import { NotifyPropertyChanges, INotifyPropertyChanged, Property, Browser, detach, createElement as buildTag } from '@syncfusion/ej2-base';import { classList, SwipeEventArgs, isNullOrUndefined } from '@syncfusion/ej2-base';
1
+ import { Touch, ScrollEventArgs, TouchEventArgs, Component, EventHandler, selectAll, getUniqueID, removeClass } from '@syncfusion/ej2-base';
2
2
  import {ComponentModel} from '@syncfusion/ej2-base';
3
3
 
4
4
  /**
@@ -7,9 +7,9 @@ import {ComponentModel} from '@syncfusion/ej2-base';
7
7
  export interface VScrollModel extends ComponentModel{
8
8
 
9
9
  /**
10
- * Specifies the up or down scrolling distance of the vertical scrollbar moving.
11
- * @default null
12
- */
13
- scrollStep?: number;
10
+ * Specifies the up or down scrolling distance of the vertical scrollbar moving.
11
+ * @default null
12
+ */
13
+ scrollStep?: number;
14
14
 
15
15
  }