@syncfusion/ej2-navigations 17.2.55-1205479 → 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 (316) hide show
  1. package/.eslintrc.json +244 -0
  2. package/CHANGELOG.md +898 -786
  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 +512 -255
  7. package/dist/es6/ej2-navigations.es2015.js.map +1 -1
  8. package/dist/es6/ej2-navigations.es5.js +642 -385
  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 -145
  26. package/src/accordion/accordion-model.d.ts +162 -143
  27. package/src/accordion/accordion.d.ts +35 -6
  28. package/src/accordion/accordion.js +193 -71
  29. package/src/common/h-scroll-model.d.ts +5 -5
  30. package/src/common/h-scroll.js +19 -20
  31. package/src/common/index.d.ts +1 -0
  32. package/src/common/index.js +1 -0
  33. package/src/common/menu-base-model.d.ts +157 -157
  34. package/src/common/menu-base.d.ts +19 -0
  35. package/src/common/menu-base.js +97 -24
  36. package/src/common/v-scroll-model.d.ts +5 -5
  37. package/src/common/v-scroll.js +19 -19
  38. package/src/context-menu/context-menu-model.d.ts +15 -15
  39. package/src/context-menu/context-menu.js +19 -19
  40. package/src/menu/menu-model.d.ts +30 -30
  41. package/src/menu/menu.js +19 -19
  42. package/src/sidebar/sidebar-model.d.ts +136 -136
  43. package/src/sidebar/sidebar.js +19 -19
  44. package/src/tab/tab-model.d.ts +215 -215
  45. package/src/tab/tab.d.ts +3 -0
  46. package/src/tab/tab.js +120 -83
  47. package/src/toolbar/toolbar-model.d.ts +175 -175
  48. package/src/toolbar/toolbar.d.ts +2 -1
  49. package/src/toolbar/toolbar.js +30 -24
  50. package/src/treeview/treeview-model.d.ts +323 -323
  51. package/src/treeview/treeview.d.ts +3 -1
  52. package/src/treeview/treeview.js +107 -87
  53. package/styles/accordion/_all.scss +2 -2
  54. package/styles/accordion/_bootstrap-dark-definition.scss +69 -69
  55. package/styles/accordion/_bootstrap-definition.scss +76 -76
  56. package/styles/accordion/_bootstrap4-definition.scss +82 -82
  57. package/styles/accordion/_fabric-dark-definition.scss +74 -74
  58. package/styles/accordion/_fabric-definition.scss +78 -78
  59. package/styles/accordion/_highcontrast-definition.scss +106 -106
  60. package/styles/accordion/_highcontrast-light-definition.scss +104 -104
  61. package/styles/accordion/_layout.scss +447 -447
  62. package/styles/accordion/_material-dark-definition.scss +75 -75
  63. package/styles/accordion/_material-definition.scss +72 -72
  64. package/styles/accordion/_theme.scss +479 -479
  65. package/styles/accordion/icons/_bootstrap-dark.scss +17 -17
  66. package/styles/accordion/icons/_bootstrap.scss +17 -17
  67. package/styles/accordion/icons/_bootstrap4.scss +17 -17
  68. package/styles/accordion/icons/_fabric-dark.scss +17 -17
  69. package/styles/accordion/icons/_fabric.scss +17 -17
  70. package/styles/accordion/icons/_highcontrast-light.scss +17 -17
  71. package/styles/accordion/icons/_highcontrast.scss +17 -17
  72. package/styles/accordion/icons/_material-dark.scss +17 -17
  73. package/styles/accordion/icons/_material.scss +17 -17
  74. package/styles/accordion/material-dark.css +2 -2
  75. package/styles/bootstrap-dark.css +10 -9
  76. package/styles/bootstrap.css +10 -9
  77. package/styles/bootstrap4.css +10 -9
  78. package/styles/bootstrap5-dark.css +0 -0
  79. package/styles/bootstrap5-dark.scss +0 -0
  80. package/styles/bootstrap5.css +0 -0
  81. package/styles/bootstrap5.scss +0 -0
  82. package/styles/context-menu/_all.scss +2 -2
  83. package/styles/context-menu/_bootstrap-dark-definition.scss +54 -54
  84. package/styles/context-menu/_bootstrap-definition.scss +52 -52
  85. package/styles/context-menu/_bootstrap4-definition.scss +52 -52
  86. package/styles/context-menu/_fabric-dark-definition.scss +54 -54
  87. package/styles/context-menu/_fabric-definition.scss +52 -52
  88. package/styles/context-menu/_highcontrast-definition.scss +52 -52
  89. package/styles/context-menu/_highcontrast-light-definition.scss +54 -54
  90. package/styles/context-menu/_layout-mixin.scss +175 -174
  91. package/styles/context-menu/_layout.scss +70 -70
  92. package/styles/context-menu/_material-dark-definition.scss +54 -54
  93. package/styles/context-menu/_material-definition.scss +52 -52
  94. package/styles/context-menu/_theme-mixin.scss +59 -59
  95. package/styles/context-menu/_theme.scss +36 -36
  96. package/styles/context-menu/bootstrap-dark.css +1 -1
  97. package/styles/context-menu/bootstrap.css +1 -1
  98. package/styles/context-menu/bootstrap4.css +1 -1
  99. package/styles/context-menu/fabric-dark.css +1 -1
  100. package/styles/context-menu/fabric.css +1 -1
  101. package/styles/context-menu/highcontrast-light.css +1 -1
  102. package/styles/context-menu/highcontrast.css +1 -1
  103. package/styles/context-menu/icons/_bootstrap-dark.scss +30 -30
  104. package/styles/context-menu/icons/_bootstrap.scss +30 -30
  105. package/styles/context-menu/icons/_bootstrap4.scss +30 -30
  106. package/styles/context-menu/icons/_fabric-dark.scss +30 -30
  107. package/styles/context-menu/icons/_fabric.scss +30 -30
  108. package/styles/context-menu/icons/_highcontrast-light.scss +30 -30
  109. package/styles/context-menu/icons/_highcontrast.scss +30 -30
  110. package/styles/context-menu/icons/_material-dark.scss +30 -30
  111. package/styles/context-menu/icons/_material.scss +30 -30
  112. package/styles/context-menu/material-dark.css +1 -1
  113. package/styles/context-menu/material.css +4 -4
  114. package/styles/fabric-dark.css +10 -9
  115. package/styles/fabric.css +10 -9
  116. package/styles/h-scroll/_all.scss +2 -2
  117. package/styles/h-scroll/_bootstrap-dark-definition.scss +49 -49
  118. package/styles/h-scroll/_bootstrap-definition.scss +50 -50
  119. package/styles/h-scroll/_bootstrap4-definition.scss +49 -49
  120. package/styles/h-scroll/_fabric-dark-definition.scss +50 -50
  121. package/styles/h-scroll/_fabric-definition.scss +48 -48
  122. package/styles/h-scroll/_highcontrast-definition.scss +52 -52
  123. package/styles/h-scroll/_highcontrast-light-definition.scss +54 -54
  124. package/styles/h-scroll/_layout.scss +198 -198
  125. package/styles/h-scroll/_material-dark-definition.scss +77 -77
  126. package/styles/h-scroll/_material-definition.scss +77 -77
  127. package/styles/h-scroll/_theme.scss +157 -157
  128. package/styles/h-scroll/icons/_bootstrap-dark.scss +49 -49
  129. package/styles/h-scroll/icons/_bootstrap.scss +49 -49
  130. package/styles/h-scroll/icons/_bootstrap4.scss +49 -49
  131. package/styles/h-scroll/icons/_fabric-dark.scss +49 -49
  132. package/styles/h-scroll/icons/_fabric.scss +49 -49
  133. package/styles/h-scroll/icons/_highcontrast-light.scss +49 -49
  134. package/styles/h-scroll/icons/_highcontrast.scss +49 -49
  135. package/styles/h-scroll/icons/_material-dark.scss +49 -49
  136. package/styles/h-scroll/icons/_material.scss +49 -49
  137. package/styles/highcontrast-light.css +10 -9
  138. package/styles/highcontrast.css +10 -9
  139. package/styles/material-dark.css +12 -11
  140. package/styles/material.css +24 -14
  141. package/styles/menu/_all.scss +2 -2
  142. package/styles/menu/_bootstrap-dark-definition.scss +63 -63
  143. package/styles/menu/_bootstrap-definition.scss +65 -65
  144. package/styles/menu/_bootstrap4-definition.scss +64 -64
  145. package/styles/menu/_fabric-dark-definition.scss +63 -63
  146. package/styles/menu/_fabric-definition.scss +64 -64
  147. package/styles/menu/_highcontrast-definition.scss +65 -65
  148. package/styles/menu/_highcontrast-light-definition.scss +61 -61
  149. package/styles/menu/_layout.scss +638 -637
  150. package/styles/menu/_material-dark-definition.scss +63 -63
  151. package/styles/menu/_material-definition.scss +64 -64
  152. package/styles/menu/_theme.scss +243 -243
  153. package/styles/menu/bootstrap-dark.css +2 -1
  154. package/styles/menu/bootstrap.css +2 -1
  155. package/styles/menu/bootstrap.scss +1 -0
  156. package/styles/menu/bootstrap4.css +2 -1
  157. package/styles/menu/fabric-dark.css +2 -1
  158. package/styles/menu/fabric.css +2 -1
  159. package/styles/menu/fabric.scss +1 -0
  160. package/styles/menu/highcontrast-light.css +2 -1
  161. package/styles/menu/highcontrast.css +2 -1
  162. package/styles/menu/highcontrast.scss +1 -0
  163. package/styles/menu/icons/_bootstrap-dark.scss +127 -127
  164. package/styles/menu/icons/_bootstrap.scss +127 -127
  165. package/styles/menu/icons/_bootstrap4.scss +127 -127
  166. package/styles/menu/icons/_fabric-dark.scss +127 -127
  167. package/styles/menu/icons/_fabric.scss +127 -127
  168. package/styles/menu/icons/_highcontrast-light.scss +127 -127
  169. package/styles/menu/icons/_highcontrast.scss +127 -127
  170. package/styles/menu/icons/_material-dark.scss +127 -127
  171. package/styles/menu/icons/_material.scss +127 -127
  172. package/styles/menu/material-dark.css +2 -1
  173. package/styles/menu/material.css +4 -3
  174. package/styles/menu/material.scss +1 -0
  175. package/styles/sidebar/_all.scss +3 -3
  176. package/styles/sidebar/_bootstrap-dark-definition.scss +4 -4
  177. package/styles/sidebar/_bootstrap-definition.scss +4 -4
  178. package/styles/sidebar/_bootstrap4-definition.scss +4 -4
  179. package/styles/sidebar/_fabric-dark-definition.scss +4 -4
  180. package/styles/sidebar/_fabric-definition.scss +6 -6
  181. package/styles/sidebar/_highcontrast-definition.scss +4 -4
  182. package/styles/sidebar/_highcontrast-light-definition.scss +4 -4
  183. package/styles/sidebar/_icons.scss +1 -1
  184. package/styles/sidebar/_material-dark-definition.scss +4 -4
  185. package/styles/sidebar/_material-definition.scss +6 -6
  186. package/styles/sidebar/_theme.scss +168 -168
  187. package/styles/sidebar/bootstrap-dark.css +0 -1
  188. package/styles/sidebar/bootstrap.css +0 -1
  189. package/styles/sidebar/bootstrap4.css +0 -1
  190. package/styles/sidebar/fabric-dark.css +0 -1
  191. package/styles/sidebar/fabric.css +0 -1
  192. package/styles/sidebar/highcontrast-light.css +0 -1
  193. package/styles/sidebar/highcontrast.css +0 -1
  194. package/styles/sidebar/material-dark.css +0 -1
  195. package/styles/sidebar/material.css +0 -1
  196. package/styles/tab/_all.scss +2 -2
  197. package/styles/tab/_bootstrap-dark-definition.scss +386 -386
  198. package/styles/tab/_bootstrap-definition.scss +396 -396
  199. package/styles/tab/_bootstrap4-definition.scss +401 -401
  200. package/styles/tab/_fabric-dark-definition.scss +394 -394
  201. package/styles/tab/_fabric-definition.scss +410 -410
  202. package/styles/tab/_highcontrast-definition.scss +434 -434
  203. package/styles/tab/_highcontrast-light-definition.scss +423 -423
  204. package/styles/tab/_icons.scss +43 -43
  205. package/styles/tab/_layout.scss +3528 -3521
  206. package/styles/tab/_material-dark-definition.scss +407 -407
  207. package/styles/tab/_material-definition.scss +416 -416
  208. package/styles/tab/_theme.scss +1751 -1751
  209. package/styles/tab/bootstrap-dark.css +7 -2
  210. package/styles/tab/bootstrap.css +7 -2
  211. package/styles/tab/bootstrap4.css +7 -2
  212. package/styles/tab/fabric-dark.css +7 -2
  213. package/styles/tab/fabric.css +7 -2
  214. package/styles/tab/highcontrast-light.css +7 -2
  215. package/styles/tab/highcontrast.css +7 -2
  216. package/styles/tab/icons/_bootstrap-dark.scss +132 -132
  217. package/styles/tab/icons/_bootstrap.scss +132 -132
  218. package/styles/tab/icons/_bootstrap4.scss +132 -132
  219. package/styles/tab/icons/_fabric-dark.scss +132 -132
  220. package/styles/tab/icons/_fabric.scss +132 -132
  221. package/styles/tab/icons/_highcontrast-light.scss +132 -132
  222. package/styles/tab/icons/_highcontrast.scss +132 -132
  223. package/styles/tab/icons/_material-dark.scss +132 -132
  224. package/styles/tab/icons/_material.scss +132 -132
  225. package/styles/tab/material-dark.css +7 -2
  226. package/styles/tab/material.css +7 -2
  227. package/styles/tailwind-dark.css +0 -0
  228. package/styles/tailwind-dark.scss +0 -0
  229. package/styles/tailwind.css +0 -0
  230. package/styles/tailwind.scss +0 -0
  231. package/styles/toolbar/_all.scss +2 -2
  232. package/styles/toolbar/_bootstrap-dark-definition.scss +135 -135
  233. package/styles/toolbar/_bootstrap-definition.scss +134 -134
  234. package/styles/toolbar/_bootstrap4-definition.scss +139 -139
  235. package/styles/toolbar/_fabric-dark-definition.scss +155 -155
  236. package/styles/toolbar/_fabric-definition.scss +139 -139
  237. package/styles/toolbar/_highcontrast-definition.scss +149 -149
  238. package/styles/toolbar/_highcontrast-light-definition.scss +164 -164
  239. package/styles/toolbar/_layout.scss +1460 -1460
  240. package/styles/toolbar/_material-dark-definition.scss +180 -180
  241. package/styles/toolbar/_material-definition.scss +164 -164
  242. package/styles/toolbar/_theme.scss +451 -451
  243. package/styles/toolbar/bootstrap-dark.css +0 -1
  244. package/styles/toolbar/bootstrap.css +0 -1
  245. package/styles/toolbar/bootstrap.scss +1 -0
  246. package/styles/toolbar/bootstrap4.css +0 -1
  247. package/styles/toolbar/fabric-dark.css +0 -1
  248. package/styles/toolbar/fabric.css +0 -1
  249. package/styles/toolbar/fabric.scss +1 -0
  250. package/styles/toolbar/highcontrast-light.css +0 -1
  251. package/styles/toolbar/highcontrast.css +0 -1
  252. package/styles/toolbar/highcontrast.scss +1 -0
  253. package/styles/toolbar/icons/_bootstrap-dark.scss +16 -16
  254. package/styles/toolbar/icons/_bootstrap.scss +16 -16
  255. package/styles/toolbar/icons/_bootstrap4.scss +16 -16
  256. package/styles/toolbar/icons/_fabric-dark.scss +16 -16
  257. package/styles/toolbar/icons/_fabric.scss +16 -16
  258. package/styles/toolbar/icons/_highcontrast-light.scss +16 -16
  259. package/styles/toolbar/icons/_highcontrast.scss +16 -16
  260. package/styles/toolbar/icons/_material-dark.scss +16 -16
  261. package/styles/toolbar/icons/_material.scss +16 -16
  262. package/styles/toolbar/material-dark.css +0 -1
  263. package/styles/toolbar/material.css +0 -1
  264. package/styles/toolbar/material.scss +1 -0
  265. package/styles/treeview/_all.scss +2 -2
  266. package/styles/treeview/_bootstrap-dark-definition.scss +131 -131
  267. package/styles/treeview/_bootstrap-definition.scss +127 -127
  268. package/styles/treeview/_bootstrap4-definition.scss +153 -153
  269. package/styles/treeview/_fabric-dark-definition.scss +130 -130
  270. package/styles/treeview/_fabric-definition.scss +126 -126
  271. package/styles/treeview/_highcontrast-definition.scss +132 -132
  272. package/styles/treeview/_highcontrast-light-definition.scss +137 -137
  273. package/styles/treeview/_layout.scss +551 -551
  274. package/styles/treeview/_material-dark-definition.scss +126 -126
  275. package/styles/treeview/_material-definition.scss +126 -126
  276. package/styles/treeview/_theme.scss +331 -331
  277. package/styles/treeview/bootstrap-dark.css +0 -3
  278. package/styles/treeview/bootstrap.css +0 -3
  279. package/styles/treeview/bootstrap4.css +0 -3
  280. package/styles/treeview/fabric-dark.css +0 -3
  281. package/styles/treeview/fabric.css +0 -3
  282. package/styles/treeview/highcontrast-light.css +0 -3
  283. package/styles/treeview/highcontrast.css +0 -3
  284. package/styles/treeview/icons/_bootstrap-dark.scss +39 -39
  285. package/styles/treeview/icons/_bootstrap.scss +39 -39
  286. package/styles/treeview/icons/_bootstrap4.scss +39 -39
  287. package/styles/treeview/icons/_fabric-dark.scss +43 -43
  288. package/styles/treeview/icons/_fabric.scss +43 -43
  289. package/styles/treeview/icons/_highcontrast-light.scss +43 -43
  290. package/styles/treeview/icons/_highcontrast.scss +43 -43
  291. package/styles/treeview/icons/_material-dark.scss +43 -43
  292. package/styles/treeview/icons/_material.scss +43 -43
  293. package/styles/treeview/material-dark.css +0 -3
  294. package/styles/treeview/material.css +9 -3
  295. package/styles/v-scroll/_all.scss +2 -2
  296. package/styles/v-scroll/_bootstrap-dark-definition.scss +50 -50
  297. package/styles/v-scroll/_bootstrap-definition.scss +49 -49
  298. package/styles/v-scroll/_bootstrap4-definition.scss +49 -49
  299. package/styles/v-scroll/_fabric-dark-definition.scss +51 -51
  300. package/styles/v-scroll/_fabric-definition.scss +50 -50
  301. package/styles/v-scroll/_highcontrast-definition.scss +51 -51
  302. package/styles/v-scroll/_highcontrast-light-definition.scss +52 -52
  303. package/styles/v-scroll/_layout.scss +162 -162
  304. package/styles/v-scroll/_material-dark-definition.scss +78 -78
  305. package/styles/v-scroll/_material-definition.scss +77 -77
  306. package/styles/v-scroll/_theme.scss +133 -133
  307. package/styles/v-scroll/icons/_bootstrap-dark.scss +26 -26
  308. package/styles/v-scroll/icons/_bootstrap.scss +26 -26
  309. package/styles/v-scroll/icons/_bootstrap4.scss +26 -26
  310. package/styles/v-scroll/icons/_fabric-dark.scss +26 -26
  311. package/styles/v-scroll/icons/_fabric.scss +26 -26
  312. package/styles/v-scroll/icons/_highcontrast-light.scss +26 -26
  313. package/styles/v-scroll/icons/_highcontrast.scss +26 -26
  314. package/styles/v-scroll/icons/_material-dark.scss +26 -26
  315. package/styles/v-scroll/icons/_material.scss +26 -26
  316. package/tslint.json +111 -0
@@ -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,
@@ -1067,10 +1095,13 @@ var MenuBase = /** @class */ (function (_super) {
1067
1095
  this.clickHandler(e);
1068
1096
  }
1069
1097
  }
1098
+ else if (this.isMenu && this.showItemOnClick) {
1099
+ this.removeLIStateByClass([FOCUSED], [wrapper].concat(this.getPopups()));
1100
+ }
1070
1101
  if (this.isMenu) {
1071
1102
  if (!this.showItemOnClick && (trgt.parentElement !== wrapper && !closest(trgt, '.e-' + this.getModuleName() + '-popup'))
1072
1103
  && (!cli || (cli && !this.getIndex(cli.id, true).length))) {
1073
- this.removeLIStateByClass([FOCUSED, SELECTED], [wrapper]);
1104
+ this.removeLIStateByClass([FOCUSED], [wrapper]);
1074
1105
  if (this.navIdx.length) {
1075
1106
  this.isClosed = true;
1076
1107
  this.closeMenu(null, e);
@@ -1137,6 +1168,9 @@ var MenuBase = /** @class */ (function (_super) {
1137
1168
  return false;
1138
1169
  };
1139
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
+ }
1140
1174
  this.element.classList.contains('e-hide-menu') ? this.openHamburgerMenu(e) : this.closeHamburgerMenu(e);
1141
1175
  };
1142
1176
  MenuBase.prototype.clickHandler = function (e) {
@@ -1147,9 +1181,16 @@ var MenuBase = /** @class */ (function (_super) {
1147
1181
  var wrapper = this.getWrapper();
1148
1182
  var trgt = e.target;
1149
1183
  var cli = this.cli = this.getLI(trgt);
1184
+ var regex = new RegExp('-ej2menu-(.*)-popup');
1150
1185
  var cliWrapper = cli ? closest(cli, '.e-' + this.getModuleName() + '-wrapper') : null;
1151
1186
  var isInstLI = cli && cliWrapper && (this.isMenu ? this.getIndex(cli.id, true).length > 0
1152
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
+ }
1153
1194
  if (isInstLI && e.type === 'click' && !cli.classList.contains(HEADER)) {
1154
1195
  this.setLISelected(cli);
1155
1196
  var navIdx = this.getIndex(cli.id, true);
@@ -1211,7 +1252,11 @@ var MenuBase = /** @class */ (function (_super) {
1211
1252
  this.menuHeaderClickHandler(e);
1212
1253
  }
1213
1254
  else {
1214
- 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
+ }
1215
1260
  if (!cli || !cli.querySelector('.' + CARET)) {
1216
1261
  this.closeMenu(null, e);
1217
1262
  }
@@ -1224,7 +1269,7 @@ var MenuBase = /** @class */ (function (_super) {
1224
1269
  if (this.showSubMenu) {
1225
1270
  var idx = this.navIdx.concat(this.cliIdx);
1226
1271
  var item = this.getItem(idx);
1227
- if (item[this.getField('children', idx.length - 1)] &&
1272
+ if (item && item[this.getField('children', idx.length - 1)] &&
1228
1273
  item[this.getField('children', idx.length - 1)].length) {
1229
1274
  if (e.type === 'mouseover' || (Browser.isDevice && this.isMenu)) {
1230
1275
  this.setLISelected(this.cli);
@@ -1272,6 +1317,13 @@ var MenuBase = /** @class */ (function (_super) {
1272
1317
  }
1273
1318
  return items;
1274
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
+ };
1275
1327
  MenuBase.prototype.getIdx = function (ul, li, skipHdr) {
1276
1328
  if (skipHdr === void 0) { skipHdr = true; }
1277
1329
  var idx = Array.prototype.indexOf.call(ul.querySelectorAll('li'), li);
@@ -1382,8 +1434,8 @@ var MenuBase = /** @class */ (function (_super) {
1382
1434
  idx = navIdx.pop();
1383
1435
  item = this_1.getItems(navIdx);
1384
1436
  this_1.insertAfter([item[idx]], item[idx].text);
1385
- item = this_1.getItems(navIdx);
1386
1437
  this_1.removeItem(item, navIdx, idx);
1438
+ this_1.setItems(item, navIdx);
1387
1439
  }
1388
1440
  navIdx.length = 0;
1389
1441
  }
@@ -1447,6 +1499,7 @@ var MenuBase = /** @class */ (function (_super) {
1447
1499
  }
1448
1500
  }
1449
1501
  if (!this.isMenu) {
1502
+ EventHandler.remove(this.targetElement, 'scroll', this.scrollHandler);
1450
1503
  for (var _i = 0, _a = getScrollableParent(this.targetElement); _i < _a.length; _i++) {
1451
1504
  var parent_2 = _a[_i];
1452
1505
  EventHandler.remove(parent_2, 'scroll', this.scrollHandler);
@@ -1619,8 +1672,28 @@ var MenuBase = /** @class */ (function (_super) {
1619
1672
  var idx;
1620
1673
  var navIdx;
1621
1674
  var disabled = DISABLED;
1675
+ var skipItem;
1622
1676
  for (var i = 0; i < items.length; i++) {
1623
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
+ }
1624
1697
  idx = navIdx.pop();
1625
1698
  ul = this.getUlByNavIdx(navIdx.length);
1626
1699
  if (ul) {