@syncfusion/ej2-navigations 27.2.5 → 28.1.35

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 (306) hide show
  1. package/README.md +2 -2
  2. package/dist/ej2-navigations.min.js +3 -3
  3. package/dist/ej2-navigations.umd.min.js +3 -3
  4. package/dist/ej2-navigations.umd.min.js.map +1 -1
  5. package/dist/es6/ej2-navigations.es2015.js +535 -341
  6. package/dist/es6/ej2-navigations.es2015.js.map +1 -1
  7. package/dist/es6/ej2-navigations.es5.js +555 -355
  8. package/dist/es6/ej2-navigations.es5.js.map +1 -1
  9. package/dist/global/ej2-navigations.min.js +3 -3
  10. package/dist/global/ej2-navigations.min.js.map +1 -1
  11. package/dist/global/index.d.ts +2 -2
  12. package/package.json +12 -12
  13. package/src/accordion/accordion.d.ts +7 -0
  14. package/src/accordion/accordion.js +52 -45
  15. package/src/carousel/carousel-model.d.ts +12 -0
  16. package/src/carousel/carousel.d.ts +11 -0
  17. package/src/carousel/carousel.js +25 -4
  18. package/src/common/menu-base-model.d.ts +7 -0
  19. package/src/common/menu-base.d.ts +7 -0
  20. package/src/common/menu-base.js +80 -19
  21. package/src/context-menu/context-menu-model.d.ts +15 -0
  22. package/src/context-menu/context-menu.d.ts +13 -0
  23. package/src/context-menu/context-menu.js +10 -0
  24. package/src/menu/menu.js +4 -0
  25. package/src/stepper/stepper.d.ts +9 -0
  26. package/src/stepper/stepper.js +262 -237
  27. package/src/stepper-base/stepper-base.js +15 -11
  28. package/src/tab/tab-model.d.ts +15 -2
  29. package/src/tab/tab.d.ts +26 -2
  30. package/src/tab/tab.js +81 -14
  31. package/src/toolbar/toolbar-model.d.ts +0 -6
  32. package/src/toolbar/toolbar.d.ts +0 -6
  33. package/src/treeview/treeview.d.ts +1 -9
  34. package/src/treeview/treeview.js +17 -16
  35. package/styles/accordion/_tailwind3-definition.scss +168 -0
  36. package/styles/accordion/_theme.scss +2 -2
  37. package/styles/accordion/bds.css +544 -0
  38. package/styles/accordion/bds.scss +5 -0
  39. package/styles/accordion/icons/_tailwind3.scss +15 -0
  40. package/styles/accordion/tailwind3.css +552 -0
  41. package/styles/accordion/tailwind3.scss +5 -0
  42. package/styles/appbar/_layout.scss +1 -1
  43. package/styles/appbar/_tailwind3-definition.scss +6 -0
  44. package/styles/appbar/bds.css +302 -0
  45. package/styles/appbar/bds.scss +4 -0
  46. package/styles/appbar/tailwind3.css +285 -0
  47. package/styles/appbar/tailwind3.scss +4 -0
  48. package/styles/bds-lite.css +9233 -0
  49. package/styles/bds-lite.scss +47 -0
  50. package/styles/bds.css +11954 -0
  51. package/styles/bds.scss +59 -0
  52. package/styles/bootstrap-dark-lite.css +21 -13
  53. package/styles/bootstrap-dark.css +35 -14
  54. package/styles/bootstrap-lite.css +21 -13
  55. package/styles/bootstrap.css +35 -14
  56. package/styles/bootstrap4-lite.css +21 -13
  57. package/styles/bootstrap4.css +35 -14
  58. package/styles/bootstrap5-dark-lite.css +29 -21
  59. package/styles/bootstrap5-dark.css +43 -22
  60. package/styles/bootstrap5-lite.css +29 -21
  61. package/styles/bootstrap5.3-lite.css +21 -13
  62. package/styles/bootstrap5.3.css +35 -14
  63. package/styles/bootstrap5.css +43 -22
  64. package/styles/breadcrumb/_bigger.scss +6 -0
  65. package/styles/breadcrumb/_layout.scss +19 -1
  66. package/styles/breadcrumb/_tailwind3-definition.scss +61 -0
  67. package/styles/breadcrumb/_theme.scss +60 -0
  68. package/styles/breadcrumb/bds.css +418 -0
  69. package/styles/breadcrumb/bds.scss +5 -0
  70. package/styles/breadcrumb/icons/_tailwind3.scss +23 -0
  71. package/styles/breadcrumb/tailwind3.css +441 -0
  72. package/styles/breadcrumb/tailwind3.scss +5 -0
  73. package/styles/carousel/_tailwind3-definition.scss +24 -0
  74. package/styles/carousel/_theme.scss +9 -3
  75. package/styles/carousel/bds.css +426 -0
  76. package/styles/carousel/bds.scss +5 -0
  77. package/styles/carousel/fluent2.css +5 -0
  78. package/styles/carousel/icons/_tailwind3.scss +30 -0
  79. package/styles/carousel/tailwind3.css +396 -0
  80. package/styles/carousel/tailwind3.scss +5 -0
  81. package/styles/context-menu/_bigger.scss +15 -0
  82. package/styles/context-menu/_layout.scss +24 -0
  83. package/styles/context-menu/_tailwind3-definition.scss +55 -0
  84. package/styles/context-menu/bds.css +421 -0
  85. package/styles/context-menu/bds.scss +8 -0
  86. package/styles/context-menu/fluent2.css +1 -1
  87. package/styles/context-menu/icons/_tailwind3.scss +31 -0
  88. package/styles/context-menu/tailwind3.css +449 -0
  89. package/styles/context-menu/tailwind3.scss +8 -0
  90. package/styles/fabric-dark-lite.css +21 -13
  91. package/styles/fabric-dark.css +35 -14
  92. package/styles/fabric-lite.css +21 -13
  93. package/styles/fabric.css +35 -14
  94. package/styles/fluent-dark-lite.css +22 -14
  95. package/styles/fluent-dark.css +36 -15
  96. package/styles/fluent-lite.css +22 -14
  97. package/styles/fluent.css +36 -15
  98. package/styles/fluent2-lite.css +37 -21
  99. package/styles/fluent2.css +51 -22
  100. package/styles/h-scroll/_tailwind3-definition.scss +83 -0
  101. package/styles/h-scroll/bds.css +311 -0
  102. package/styles/h-scroll/bds.scss +5 -0
  103. package/styles/h-scroll/icons/_tailwind3.scss +49 -0
  104. package/styles/h-scroll/tailwind3.css +311 -0
  105. package/styles/h-scroll/tailwind3.scss +5 -0
  106. package/styles/highcontrast-light-lite.css +21 -13
  107. package/styles/highcontrast-light.css +35 -14
  108. package/styles/highcontrast-lite.css +24 -16
  109. package/styles/highcontrast.css +38 -17
  110. package/styles/material-dark-lite.css +21 -13
  111. package/styles/material-dark.css +35 -14
  112. package/styles/material-lite.css +21 -13
  113. package/styles/material.css +35 -14
  114. package/styles/material3-dark-lite.css +21 -13
  115. package/styles/material3-dark.css +38 -14
  116. package/styles/material3-lite.css +21 -13
  117. package/styles/material3.css +38 -14
  118. package/styles/menu/_bigger.scss +26 -0
  119. package/styles/menu/_layout.scss +35 -0
  120. package/styles/menu/_tailwind3-definition.scss +66 -0
  121. package/styles/menu/_theme.scss +33 -1
  122. package/styles/menu/bds.css +1155 -0
  123. package/styles/menu/bds.scss +9 -0
  124. package/styles/menu/fluent2.css +1 -1
  125. package/styles/menu/icons/_tailwind3.scss +104 -0
  126. package/styles/menu/tailwind3.css +1238 -0
  127. package/styles/menu/tailwind3.scss +9 -0
  128. package/styles/pager/_bigger.scss +65 -6
  129. package/styles/pager/_layout.scss +22 -2
  130. package/styles/pager/_tailwind-definition.scss +1 -1
  131. package/styles/pager/_tailwind3-definition.scss +166 -0
  132. package/styles/pager/bds.css +915 -0
  133. package/styles/pager/bds.scss +5 -0
  134. package/styles/pager/bootstrap-dark.css +7 -0
  135. package/styles/pager/bootstrap.css +7 -0
  136. package/styles/pager/bootstrap4.css +7 -0
  137. package/styles/pager/bootstrap5-dark.css +7 -0
  138. package/styles/pager/bootstrap5.3.css +7 -0
  139. package/styles/pager/bootstrap5.css +7 -0
  140. package/styles/pager/fabric-dark.css +7 -0
  141. package/styles/pager/fabric.css +7 -0
  142. package/styles/pager/fluent-dark.css +7 -0
  143. package/styles/pager/fluent.css +7 -0
  144. package/styles/pager/fluent2.css +7 -0
  145. package/styles/pager/highcontrast-light.css +7 -0
  146. package/styles/pager/highcontrast.css +7 -0
  147. package/styles/pager/icons/_tailwind3.scss +50 -0
  148. package/styles/pager/material-dark.css +7 -0
  149. package/styles/pager/material.css +7 -0
  150. package/styles/pager/material3-dark.css +8 -0
  151. package/styles/pager/material3.css +8 -0
  152. package/styles/pager/tailwind-dark.css +16 -9
  153. package/styles/pager/tailwind.css +16 -9
  154. package/styles/pager/tailwind3.css +875 -0
  155. package/styles/pager/tailwind3.scss +5 -0
  156. package/styles/sidebar/_tailwind3-definition.scss +6 -0
  157. package/styles/sidebar/_theme.scss +1 -1
  158. package/styles/sidebar/bds.css +263 -0
  159. package/styles/sidebar/bds.scss +3 -0
  160. package/styles/sidebar/tailwind3.css +227 -0
  161. package/styles/sidebar/tailwind3.scss +3 -0
  162. package/styles/stepper/_layout.scss +2 -0
  163. package/styles/stepper/_tailwind3-definition.scss +72 -0
  164. package/styles/stepper/_theme.scss +2 -1
  165. package/styles/stepper/bds.css +724 -0
  166. package/styles/stepper/bds.scss +6 -0
  167. package/styles/stepper/bootstrap-dark.css +4 -1
  168. package/styles/stepper/bootstrap.css +4 -1
  169. package/styles/stepper/bootstrap4.css +4 -1
  170. package/styles/stepper/bootstrap5-dark.css +4 -1
  171. package/styles/stepper/bootstrap5.3.css +4 -1
  172. package/styles/stepper/bootstrap5.css +4 -1
  173. package/styles/stepper/fabric-dark.css +4 -1
  174. package/styles/stepper/fabric.css +4 -1
  175. package/styles/stepper/fluent-dark.css +4 -1
  176. package/styles/stepper/fluent.css +4 -1
  177. package/styles/stepper/fluent2.css +4 -1
  178. package/styles/stepper/highcontrast-light.css +4 -1
  179. package/styles/stepper/highcontrast.css +4 -1
  180. package/styles/stepper/icons/_tailwind3.scss +5 -0
  181. package/styles/stepper/material-dark.css +4 -1
  182. package/styles/stepper/material.css +4 -1
  183. package/styles/stepper/material3-dark.css +4 -1
  184. package/styles/stepper/material3.css +4 -1
  185. package/styles/stepper/tailwind-dark.css +4 -1
  186. package/styles/stepper/tailwind.css +4 -1
  187. package/styles/stepper/tailwind3.css +724 -0
  188. package/styles/stepper/tailwind3.scss +6 -0
  189. package/styles/tab/_bigger.scss +16 -0
  190. package/styles/tab/_bootstrap-dark-definition.scss +0 -2
  191. package/styles/tab/_bootstrap-definition.scss +0 -2
  192. package/styles/tab/_bootstrap4-definition.scss +0 -2
  193. package/styles/tab/_bootstrap5-definition.scss +0 -2
  194. package/styles/tab/_bootstrap5.3-definition.scss +0 -2
  195. package/styles/tab/_fabric-dark-definition.scss +0 -2
  196. package/styles/tab/_fabric-definition.scss +0 -2
  197. package/styles/tab/_fluent-definition.scss +0 -2
  198. package/styles/tab/_fluent2-definition.scss +0 -2
  199. package/styles/tab/_fusionnew-definition.scss +0 -2
  200. package/styles/tab/_highcontrast-definition.scss +0 -2
  201. package/styles/tab/_highcontrast-light-definition.scss +0 -2
  202. package/styles/tab/_material-dark-definition.scss +0 -2
  203. package/styles/tab/_material-definition.scss +0 -2
  204. package/styles/tab/_material3-definition.scss +0 -2
  205. package/styles/tab/_tailwind-definition.scss +0 -2
  206. package/styles/tab/_tailwind3-definition.scss +634 -0
  207. package/styles/tab/_theme.scss +0 -12
  208. package/styles/tab/bds.css +4190 -0
  209. package/styles/tab/bds.scss +6 -0
  210. package/styles/tab/bootstrap-dark.css +7 -11
  211. package/styles/tab/bootstrap.css +7 -11
  212. package/styles/tab/bootstrap4.css +7 -11
  213. package/styles/tab/bootstrap5-dark.css +7 -11
  214. package/styles/tab/bootstrap5.3.css +7 -11
  215. package/styles/tab/bootstrap5.css +7 -11
  216. package/styles/tab/fabric-dark.css +7 -11
  217. package/styles/tab/fabric.css +7 -11
  218. package/styles/tab/fluent-dark.css +7 -11
  219. package/styles/tab/fluent.css +7 -11
  220. package/styles/tab/fluent2.css +10 -14
  221. package/styles/tab/highcontrast-light.css +7 -11
  222. package/styles/tab/highcontrast.css +7 -11
  223. package/styles/tab/icons/_tailwind3.scss +90 -0
  224. package/styles/tab/material-dark.css +7 -11
  225. package/styles/tab/material.css +7 -11
  226. package/styles/tab/material3-dark.css +9 -11
  227. package/styles/tab/material3.css +9 -11
  228. package/styles/tab/tailwind-dark.css +7 -11
  229. package/styles/tab/tailwind.css +7 -11
  230. package/styles/tab/tailwind3.css +4125 -0
  231. package/styles/tab/tailwind3.scss +6 -0
  232. package/styles/tailwind-dark-lite.css +26 -18
  233. package/styles/tailwind-dark.css +45 -24
  234. package/styles/tailwind-lite.css +26 -18
  235. package/styles/tailwind.css +45 -24
  236. package/styles/tailwind3-lite.css +9055 -0
  237. package/styles/tailwind3-lite.scss +47 -0
  238. package/styles/tailwind3.css +11743 -0
  239. package/styles/tailwind3.scss +59 -0
  240. package/styles/toolbar/_bigger.scss +14 -0
  241. package/styles/toolbar/_bootstrap5-definition.scss +6 -6
  242. package/styles/toolbar/_layout.scss +7 -1
  243. package/styles/toolbar/_tailwind3-definition.scss +199 -0
  244. package/styles/toolbar/_theme.scss +6 -6
  245. package/styles/toolbar/bds.css +1219 -0
  246. package/styles/toolbar/bds.scss +9 -0
  247. package/styles/toolbar/bootstrap-dark.css +1 -1
  248. package/styles/toolbar/bootstrap.css +1 -1
  249. package/styles/toolbar/bootstrap4.css +1 -1
  250. package/styles/toolbar/bootstrap5-dark.css +9 -9
  251. package/styles/toolbar/bootstrap5.3.css +1 -1
  252. package/styles/toolbar/bootstrap5.css +9 -9
  253. package/styles/toolbar/fabric-dark.css +1 -1
  254. package/styles/toolbar/fabric.css +1 -1
  255. package/styles/toolbar/fluent-dark.css +1 -1
  256. package/styles/toolbar/fluent.css +1 -1
  257. package/styles/toolbar/fluent2.css +1 -1
  258. package/styles/toolbar/highcontrast-light.css +1 -1
  259. package/styles/toolbar/highcontrast.css +1 -1
  260. package/styles/toolbar/icons/_tailwind3.scss +14 -0
  261. package/styles/toolbar/material-dark.css +1 -1
  262. package/styles/toolbar/material.css +1 -1
  263. package/styles/toolbar/material3-dark.css +1 -1
  264. package/styles/toolbar/material3.css +1 -1
  265. package/styles/toolbar/tailwind-dark.css +1 -1
  266. package/styles/toolbar/tailwind.css +1 -1
  267. package/styles/toolbar/tailwind3.css +1211 -0
  268. package/styles/toolbar/tailwind3.scss +9 -0
  269. package/styles/treeview/_bigger.scss +16 -3
  270. package/styles/treeview/_fluent-definition.scss +1 -1
  271. package/styles/treeview/_fluent2-definition.scss +2 -2
  272. package/styles/treeview/_highcontrast-definition.scss +3 -3
  273. package/styles/treeview/_layout.scss +42 -5
  274. package/styles/treeview/_tailwind-definition.scss +1 -1
  275. package/styles/treeview/_tailwind3-definition.scss +126 -0
  276. package/styles/treeview/_theme.scss +1 -1
  277. package/styles/treeview/bds.css +1031 -0
  278. package/styles/treeview/bds.scss +7 -0
  279. package/styles/treeview/bootstrap-dark.css +16 -1
  280. package/styles/treeview/bootstrap.css +16 -1
  281. package/styles/treeview/bootstrap4.css +16 -1
  282. package/styles/treeview/bootstrap5-dark.css +16 -1
  283. package/styles/treeview/bootstrap5.3.css +16 -1
  284. package/styles/treeview/bootstrap5.css +16 -1
  285. package/styles/treeview/fabric-dark.css +16 -1
  286. package/styles/treeview/fabric.css +16 -1
  287. package/styles/treeview/fluent-dark.css +17 -2
  288. package/styles/treeview/fluent.css +17 -2
  289. package/styles/treeview/fluent2.css +22 -4
  290. package/styles/treeview/highcontrast-light.css +16 -1
  291. package/styles/treeview/highcontrast.css +19 -4
  292. package/styles/treeview/icons/_tailwind3.scss +44 -0
  293. package/styles/treeview/material-dark.css +16 -1
  294. package/styles/treeview/material.css +16 -1
  295. package/styles/treeview/material3-dark.css +16 -1
  296. package/styles/treeview/material3.css +16 -1
  297. package/styles/treeview/tailwind-dark.css +17 -2
  298. package/styles/treeview/tailwind.css +17 -2
  299. package/styles/treeview/tailwind3.css +806 -0
  300. package/styles/treeview/tailwind3.scss +7 -0
  301. package/styles/v-scroll/_tailwind3-definition.scss +49 -0
  302. package/styles/v-scroll/bds.css +218 -0
  303. package/styles/v-scroll/bds.scss +5 -0
  304. package/styles/v-scroll/icons/_tailwind3.scss +27 -0
  305. package/styles/v-scroll/tailwind3.css +218 -0
  306. package/styles/v-scroll/tailwind3.scss +5 -0
@@ -1167,6 +1167,9 @@ var MenuItem = /** @__PURE__ @class */ (function (_super) {
1167
1167
  __decorate$2([
1168
1168
  Property('')
1169
1169
  ], MenuItem.prototype, "url", void 0);
1170
+ __decorate$2([
1171
+ Property()
1172
+ ], MenuItem.prototype, "htmlAttributes", void 0);
1170
1173
  return MenuItem;
1171
1174
  }(ChildProperty));
1172
1175
  /**
@@ -1896,7 +1899,10 @@ var MenuBase = /** @__PURE__ @class */ (function (_super) {
1896
1899
  var data = {
1897
1900
  text: item[this.getField('text')].toString(), iconCss: ICONS + ' e-previous'
1898
1901
  };
1899
- var hdata = new MenuItem(this.items[0], 'items', data, true);
1902
+ if (this.template) {
1903
+ item.iconCss = (item.iconCss || '') + ICONS + ' e-previous';
1904
+ }
1905
+ var hdata = new MenuItem(this.items[0], 'items', this.template ? item : data, true);
1900
1906
  var hli = this.createItems([hdata]).children[0];
1901
1907
  hli.classList.add(HEADER);
1902
1908
  this.uList.insertBefore(hli, this.uList.children[0]);
@@ -2145,6 +2151,9 @@ var MenuBase = /** @__PURE__ @class */ (function (_super) {
2145
2151
  timingFunction: _this.animationSettings.easing
2146
2152
  } : null;
2147
2153
  _this.popupObj.show(animationOptions, _this.lItem);
2154
+ if (Browser.isDevice) {
2155
+ _this.popupWrapper.style.left = _this.left + 'px';
2156
+ }
2148
2157
  }
2149
2158
  }
2150
2159
  else {
@@ -2285,8 +2294,34 @@ var MenuBase = /** @__PURE__ @class */ (function (_super) {
2285
2294
  }
2286
2295
  }
2287
2296
  this.toggleVisiblity(ul, false);
2288
- ul.style.top = top + px;
2289
- ul.style.left = left + px;
2297
+ var wrapper = closest(this.element, '.e-' + this.getModuleName() + '-wrapper');
2298
+ if (!this.isMenu && this.enableScrolling && ul && wrapper && wrapper.offsetHeight > 0) {
2299
+ var menuVScroll = closest(ul, '.e-menu-vscroll');
2300
+ ul.style.display = 'block';
2301
+ if (menuVScroll) {
2302
+ destroyScroll(getInstance(menuVScroll, VScroll), menuVScroll);
2303
+ }
2304
+ var cmenuWidth = Math.ceil(this.getMenuWidth(ul, ul.offsetWidth, this.enableRtl));
2305
+ var cmenu = addScrolling(this.createElement, wrapper, ul, 'vscroll', this.enableRtl, wrapper.offsetHeight);
2306
+ Object.assign(cmenu.style, {
2307
+ top: top + "px",
2308
+ left: left + "px",
2309
+ width: cmenuWidth + "px",
2310
+ position: 'absolute',
2311
+ display: 'none'
2312
+ });
2313
+ }
2314
+ else {
2315
+ ul.style.top = top + px;
2316
+ ul.style.left = left + px;
2317
+ }
2318
+ };
2319
+ MenuBase.prototype.getMenuWidth = function (cmenu, width, isRtl) {
2320
+ var caretIcon = cmenu.getElementsByClassName(CARET)[0];
2321
+ if (caretIcon) {
2322
+ width += parseInt(getComputedStyle(caretIcon)[isRtl ? 'marginRight' : 'marginLeft'], 10);
2323
+ }
2324
+ return width < 120 ? 120 : width;
2290
2325
  };
2291
2326
  MenuBase.prototype.toggleVisiblity = function (ul, isVisible) {
2292
2327
  if (isVisible === void 0) { isVisible = true; }
@@ -2312,15 +2347,24 @@ var MenuBase = /** @__PURE__ @class */ (function (_super) {
2312
2347
  args.curData.htmlAttributes = {};
2313
2348
  }
2314
2349
  if (Browser.isIE) {
2315
- args.curData.htmlAttributes.role = 'menuitem';
2316
- args.curData.htmlAttributes.tabindex = '-1';
2350
+ if (!args.curData.htmlAttributes.role) {
2351
+ args.curData.htmlAttributes.role = 'menuitem';
2352
+ }
2353
+ if (!args.curData.htmlAttributes.tabindex) {
2354
+ args.curData.htmlAttributes.tabindex = '-1';
2355
+ }
2317
2356
  }
2318
2357
  else {
2319
- Object.assign(args.curData.htmlAttributes, { role: 'menuitem', tabindex: '-1' });
2358
+ Object.assign(args.curData.htmlAttributes, {
2359
+ role: args.curData.htmlAttributes.role || 'menuitem',
2360
+ tabindex: args.curData.htmlAttributes.tabindex || '-1'
2361
+ });
2320
2362
  }
2321
2363
  if (_this.isMenu && !args.curData[_this.getField('separator', level)]) {
2322
- args.curData.htmlAttributes['aria-label'] = args.curData[args.fields.text] ?
2323
- args.curData[args.fields.text] : args.curData[args.fields.id];
2364
+ if (!args.curData.htmlAttributes['aria-label']) {
2365
+ args.curData.htmlAttributes['aria-label'] = args.curData[args.fields.text] ?
2366
+ args.curData[args.fields.text] : args.curData[args.fields.id];
2367
+ }
2324
2368
  }
2325
2369
  if (args.curData[args.fields[fields.iconCss]] === '') {
2326
2370
  args.curData[args.fields[fields.iconCss]] = null;
@@ -2329,7 +2373,9 @@ var MenuBase = /** @__PURE__ @class */ (function (_super) {
2329
2373
  itemCreated: function (args) {
2330
2374
  if (args.curData[_this.getField('separator', level)]) {
2331
2375
  args.item.classList.add(SEPARATOR);
2332
- args.item.setAttribute('role', 'separator');
2376
+ if (!args.curData.htmlAttributes.role) {
2377
+ args.item.setAttribute('role', 'separator');
2378
+ }
2333
2379
  }
2334
2380
  if (showIcon && !args.curData[args.fields.iconCss]
2335
2381
  && !args.curData[_this.getField('separator', level)]) {
@@ -2579,9 +2625,10 @@ var MenuBase = /** @__PURE__ @class */ (function (_super) {
2579
2625
  }
2580
2626
  }
2581
2627
  else {
2582
- if (this.isMenu && trgt.tagName === 'DIV' && this.navIdx.length && closest(trgt, '.e-menu-vscroll')) {
2583
- var popupEle = closest(trgt, '.' + POPUP);
2584
- var cIdx = Array.prototype.indexOf.call(this.getPopups(), popupEle) + 1;
2628
+ if (trgt.tagName === 'DIV' && closest(trgt, '.e-menu-vscroll') && (this.navIdx.length || !this.isMenu && this.enableScrolling && this.navIdx.length === 0)) {
2629
+ var popupEle = this.isMenu ? closest(trgt, '.' + POPUP) : closest(trgt, '.e-menu-vscroll');
2630
+ var cIdx = this.isMenu ? Array.prototype.indexOf.call(this.getPopups(), popupEle) + 1
2631
+ : this.getIdx(wrapper, select('ul.e-menu-parent', popupEle));
2585
2632
  if (cIdx < this.navIdx.length) {
2586
2633
  this.closeMenu(cIdx + 1, e);
2587
2634
  if (popupEle) {
@@ -2730,7 +2777,9 @@ var MenuBase = /** @__PURE__ @class */ (function (_super) {
2730
2777
  };
2731
2778
  MenuBase.prototype.getIdx = function (ul, li, skipHdr) {
2732
2779
  if (skipHdr === void 0) { skipHdr = true; }
2733
- var idx = Array.prototype.indexOf.call(ul.children, li);
2780
+ var ulElem = !this.isMenu && this.enableScrolling && select('.e-menu-vscroll', ul)
2781
+ ? selectAll('.e-menu-parent', ul) : Array.from(ul.children);
2782
+ var idx = Array.prototype.indexOf.call(ulElem, li);
2734
2783
  if (skipHdr && ul.children[0].classList.contains(HEADER)) {
2735
2784
  idx--;
2736
2785
  }
@@ -2814,7 +2863,7 @@ var MenuBase = /** @__PURE__ @class */ (function (_super) {
2814
2863
  }
2815
2864
  else {
2816
2865
  var ul_3 = wrapper.children[0];
2817
- if (this_1.element.classList.contains('e-vertical')) {
2866
+ if (this_1.element.classList.contains('e-vertical') || !this_1.isMenu) {
2818
2867
  destroyScroll(getInstance(ul_3, VScroll), ul_3);
2819
2868
  }
2820
2869
  else {
@@ -2985,6 +3034,8 @@ var MenuBase = /** @__PURE__ @class */ (function (_super) {
2985
3034
  if (isMenuOpen === void 0) { isMenuOpen = true; }
2986
3035
  var pUlHeight;
2987
3036
  var pElement;
3037
+ var animateElement = (this.enableScrolling && !this.isMenu && closest(ul, '.e-menu-vscroll'))
3038
+ ? closest(ul, '.e-menu-vscroll') : ul;
2988
3039
  if (this.animationSettings.effect === 'None' || !isMenuOpen) {
2989
3040
  if (this.hamburgerMode && ul) {
2990
3041
  ul.style.top = '0px';
@@ -2993,7 +3044,7 @@ var MenuBase = /** @__PURE__ @class */ (function (_super) {
2993
3044
  this.end(ul, isMenuOpen);
2994
3045
  }
2995
3046
  else {
2996
- this.animation.animate(ul, {
3047
+ this.animation.animate(animateElement, {
2997
3048
  name: this.animationSettings.effect,
2998
3049
  duration: this.animationSettings.duration,
2999
3050
  timingFunction: this.animationSettings.easing,
@@ -3011,7 +3062,7 @@ var MenuBase = /** @__PURE__ @class */ (function (_super) {
3011
3062
  }
3012
3063
  else {
3013
3064
  options.element.style.display = 'block';
3014
- options.element.style.maxHeight = options.element.getBoundingClientRect().height + 'px';
3065
+ options.element.style.maxHeight = _this.isMenu ? options.element.getBoundingClientRect().height + 'px' : options.element.scrollHeight + 'px';
3015
3066
  }
3016
3067
  },
3017
3068
  progress: function (options) {
@@ -3048,11 +3099,15 @@ var MenuBase = /** @__PURE__ @class */ (function (_super) {
3048
3099
  }
3049
3100
  };
3050
3101
  MenuBase.prototype.end = function (ul, isMenuOpen) {
3051
- if (isMenuOpen && (this.isMenu || (!this.isMenu && this.isContextMenuClosed))) {
3052
- if (this.isMenu || !Browser.isDevice) {
3102
+ if (isMenuOpen && this.isContextMenuClosed) {
3103
+ if (this.isMenu || !Browser.isDevice || (!this.isMenu && this.isAnimationNone && Browser.isDevice)) {
3053
3104
  ul.style.display = 'block';
3054
3105
  }
3055
3106
  ul.style.maxHeight = '';
3107
+ var scrollMenu = this.enableScrolling && !this.isMenu ? closest(ul, '.e-menu-vscroll') : null;
3108
+ if (scrollMenu) {
3109
+ scrollMenu.style.display = 'block';
3110
+ }
3056
3111
  this.triggerOpen(ul);
3057
3112
  if (ul.querySelector('.' + FOCUSED)) {
3058
3113
  ul.querySelector('.' + FOCUSED).focus();
@@ -3080,6 +3135,10 @@ var MenuBase = /** @__PURE__ @class */ (function (_super) {
3080
3135
  }
3081
3136
  }
3082
3137
  else {
3138
+ var scrollMenu = this.enableScrolling && !this.isMenu ? closest(ul, '.e-menu-vscroll') : null;
3139
+ if (scrollMenu) {
3140
+ destroyScroll(getInstance(scrollMenu, VScroll), scrollMenu);
3141
+ }
3083
3142
  if (ul === this.element) {
3084
3143
  var fli = this.getLIByClass(this.element, FOCUSED);
3085
3144
  if (fli) {
@@ -3123,7 +3182,9 @@ var MenuBase = /** @__PURE__ @class */ (function (_super) {
3123
3182
  level = isCallBack ? level + 1 : 0;
3124
3183
  for (var i = 0, len = items.length; i < len; i++) {
3125
3184
  item = items[i];
3126
- if ((isUniqueId ? item[this.getField('itemId', level)] : item[this.getField('text', level)]) === data) {
3185
+ var currentField = isUniqueId ? item[this.getField('itemId', level)] : item[this.getField('text', level)];
3186
+ var itemId = (item.htmlAttributes && 'id' in item.htmlAttributes) ? item.htmlAttributes.id : currentField;
3187
+ if (itemId === data) {
3127
3188
  nIndex.push(i);
3128
3189
  break;
3129
3190
  }
@@ -6292,56 +6353,60 @@ var Accordion = /** @__PURE__ @class */ (function (_super) {
6292
6353
  Accordion.prototype.afterContentRender = function (trgt, eventArgs, acrdnItem, acrdnHdr, acrdnCtn, acrdnCtnItem) {
6293
6354
  var _this = this;
6294
6355
  var acrdActive = [];
6295
- this.trigger('clicked', eventArgs);
6296
- var cntclkCheck = (acrdnCtn && !isNullOrUndefined(select('.e-target', acrdnCtn)));
6297
- var inlineAcrdnSel = '.' + CLS_CONTENT + ' .' + CLS_ROOT$2;
6298
- var inlineEleAcrdn = acrdnCtn && !isNullOrUndefined(select('.' + CLS_ROOT$2, acrdnCtn)) && isNullOrUndefined(closest(trgt, inlineAcrdnSel));
6299
- var nestContCheck = acrdnCtn && isNullOrUndefined(select('.' + CLS_ROOT$2, acrdnCtn)) || !(closest(trgt, '.' + CLS_ROOT$2) === this.element);
6300
- cntclkCheck = cntclkCheck && (inlineEleAcrdn || nestContCheck);
6301
- trgt.classList.remove('e-target');
6302
- if (trgt.classList.contains(CLS_CONTENT) || trgt.classList.contains(CLS_CTENT) || cntclkCheck) {
6303
- return;
6304
- }
6305
- var acrdcontainer = this.element.querySelector('.' + CLS_CONTAINER);
6306
- var acrdnchild = (acrdcontainer) ? acrdcontainer.children : this.element.children;
6307
- [].slice.call(acrdnchild).forEach(function (el) {
6308
- if (el.classList.contains(CLS_ACTIVE)) {
6309
- acrdActive.push(el);
6310
- }
6311
- });
6312
- var acrdAniEle = [].slice.call(this.element.querySelectorAll('.' + CLS_ITEM$1 + ' [' + CLS_ANIMATE + ']'));
6313
- if (acrdAniEle.length > 0) {
6314
- for (var _i = 0, acrdAniEle_1 = acrdAniEle; _i < acrdAniEle_1.length; _i++) {
6315
- var el = acrdAniEle_1[_i];
6316
- acrdActive.push(el.parentElement);
6317
- }
6318
- }
6319
- var sameContentCheck = acrdActive.indexOf(acrdnCtnItem) !== -1 && acrdnCtn.getAttribute('e-animate') === 'true';
6320
- var sameHeader = false;
6321
- if (!isNullOrUndefined(acrdnItem) && !isNullOrUndefined(acrdnHdr)) {
6322
- var acrdnCtn_1 = select('.' + CLS_CONTENT, acrdnItem);
6323
- var acrdnRoot = closest(acrdnItem, '.' + CLS_ACRDN_ROOT);
6324
- var expandState = acrdnRoot.querySelector('.' + CLS_EXPANDSTATE);
6325
- if (isNullOrUndefined(acrdnCtn_1)) {
6356
+ this.trigger('clicked', eventArgs, function (eventArgs) {
6357
+ if (eventArgs.cancel) {
6326
6358
  return;
6327
6359
  }
6328
- sameHeader = (expandState === acrdnItem);
6329
- if (isVisible(acrdnCtn_1) && (!sameContentCheck || acrdnCtnItem.classList.contains(CLS_SLCTED))) {
6330
- this.collapse(acrdnCtn_1);
6360
+ var cntclkCheck = (acrdnCtn && !isNullOrUndefined(select('.e-target', acrdnCtn)));
6361
+ var inlineAcrdnSel = '.' + CLS_CONTENT + ' .' + CLS_ROOT$2;
6362
+ var inlineEleAcrdn = acrdnCtn && !isNullOrUndefined(select('.' + CLS_ROOT$2, acrdnCtn)) && isNullOrUndefined(closest(trgt, inlineAcrdnSel));
6363
+ var nestContCheck = acrdnCtn && isNullOrUndefined(select('.' + CLS_ROOT$2, acrdnCtn)) || !(closest(trgt, '.' + CLS_ROOT$2) === _this.element);
6364
+ cntclkCheck = cntclkCheck && (inlineEleAcrdn || nestContCheck);
6365
+ trgt.classList.remove('e-target');
6366
+ if (trgt.classList.contains(CLS_CONTENT) || trgt.classList.contains(CLS_CTENT) || cntclkCheck) {
6367
+ return;
6331
6368
  }
6332
- else {
6333
- if ((acrdActive.length > 0) && this.expandMode === 'Single' && !sameContentCheck) {
6334
- acrdActive.forEach(function (el) {
6335
- _this.collapse(select('.' + CLS_CONTENT, el));
6336
- el.classList.remove(CLS_EXPANDSTATE);
6337
- });
6369
+ var acrdcontainer = _this.element.querySelector('.' + CLS_CONTAINER);
6370
+ var acrdnchild = (acrdcontainer) ? acrdcontainer.children : _this.element.children;
6371
+ [].slice.call(acrdnchild).forEach(function (el) {
6372
+ if (el.classList.contains(CLS_ACTIVE)) {
6373
+ acrdActive.push(el);
6374
+ }
6375
+ });
6376
+ var acrdAniEle = [].slice.call(_this.element.querySelectorAll('.' + CLS_ITEM$1 + ' [' + CLS_ANIMATE + ']'));
6377
+ if (acrdAniEle.length > 0) {
6378
+ for (var _i = 0, acrdAniEle_1 = acrdAniEle; _i < acrdAniEle_1.length; _i++) {
6379
+ var el = acrdAniEle_1[_i];
6380
+ acrdActive.push(el.parentElement);
6381
+ }
6382
+ }
6383
+ var sameContentCheck = acrdActive.indexOf(acrdnCtnItem) !== -1 && acrdnCtn.getAttribute('e-animate') === 'true';
6384
+ var sameHeader = false;
6385
+ if (!isNullOrUndefined(acrdnItem) && !isNullOrUndefined(acrdnHdr)) {
6386
+ var acrdnCtn_1 = select('.' + CLS_CONTENT, acrdnItem);
6387
+ var acrdnRoot = closest(acrdnItem, '.' + CLS_ACRDN_ROOT);
6388
+ var expandState = acrdnRoot.querySelector('.' + CLS_EXPANDSTATE);
6389
+ if (isNullOrUndefined(acrdnCtn_1)) {
6390
+ return;
6391
+ }
6392
+ sameHeader = (expandState === acrdnItem);
6393
+ if (isVisible(acrdnCtn_1) && (!sameContentCheck || acrdnCtnItem.classList.contains(CLS_SLCTED))) {
6394
+ _this.collapse(acrdnCtn_1);
6395
+ }
6396
+ else {
6397
+ if ((acrdActive.length > 0) && _this.expandMode === 'Single' && !sameContentCheck) {
6398
+ acrdActive.forEach(function (el) {
6399
+ _this.collapse(select('.' + CLS_CONTENT, el));
6400
+ el.classList.remove(CLS_EXPANDSTATE);
6401
+ });
6402
+ }
6403
+ _this.expand(acrdnCtn_1);
6404
+ }
6405
+ if (!isNullOrUndefined(expandState) && !sameHeader) {
6406
+ expandState.classList.remove(CLS_EXPANDSTATE);
6338
6407
  }
6339
- this.expand(acrdnCtn_1);
6340
- }
6341
- if (!isNullOrUndefined(expandState) && !sameHeader) {
6342
- expandState.classList.remove(CLS_EXPANDSTATE);
6343
6408
  }
6344
- }
6409
+ });
6345
6410
  };
6346
6411
  Accordion.prototype.eleMoveFocus = function (action, root, trgt) {
6347
6412
  var clst;
@@ -6695,9 +6760,12 @@ var Accordion = /** @__PURE__ @class */ (function (_super) {
6695
6760
  };
6696
6761
  Accordion.prototype.collapse = function (trgt) {
6697
6762
  var _this = this;
6763
+ if (isNullOrUndefined(trgt)) {
6764
+ return;
6765
+ }
6698
6766
  var items = this.getItems();
6699
6767
  var trgtItemEle = closest(trgt, '.' + CLS_ITEM$1);
6700
- if (isNullOrUndefined(trgt) || !isVisible(trgt) || trgtItemEle.classList.contains(CLS_DISABLE$3)) {
6768
+ if (!isVisible(trgt) || trgtItemEle.classList.contains(CLS_DISABLE$3)) {
6701
6769
  return;
6702
6770
  }
6703
6771
  var animation = {
@@ -7311,6 +7379,7 @@ var ContextMenu = /** @__PURE__ @class */ (function (_super) {
7311
7379
  _super.prototype.preRender.call(this);
7312
7380
  };
7313
7381
  ContextMenu.prototype.initialize = function () {
7382
+ this.template = this.itemTemplate ? this.itemTemplate : null;
7314
7383
  _super.prototype.initialize.call(this);
7315
7384
  attributes(this.element, { 'role': 'menubar', 'tabindex': '0' });
7316
7385
  this.element.style.zIndex = getZindexPartial(this.element).toString();
@@ -7357,6 +7426,9 @@ var ContextMenu = /** @__PURE__ @class */ (function (_super) {
7357
7426
  this.unWireEvents(oldProp.target);
7358
7427
  this.wireEvents();
7359
7428
  break;
7429
+ case 'itemTemplate':
7430
+ this.itemTemplate = newProp.itemTemplate;
7431
+ this.refresh();
7360
7432
  }
7361
7433
  }
7362
7434
  };
@@ -7378,6 +7450,12 @@ var ContextMenu = /** @__PURE__ @class */ (function (_super) {
7378
7450
  __decorate$5([
7379
7451
  Collection([], MenuItem)
7380
7452
  ], ContextMenu.prototype, "items", void 0);
7453
+ __decorate$5([
7454
+ Property(null)
7455
+ ], ContextMenu.prototype, "itemTemplate", void 0);
7456
+ __decorate$5([
7457
+ Property(false)
7458
+ ], ContextMenu.prototype, "enableScrolling", void 0);
7381
7459
  ContextMenu = __decorate$5([
7382
7460
  NotifyPropertyChanges
7383
7461
  ], ContextMenu);
@@ -7592,6 +7670,10 @@ var Menu = /** @__PURE__ @class */ (function (_super) {
7592
7670
  }
7593
7671
  }
7594
7672
  break;
7673
+ case 'template':
7674
+ this.template = newProp.template;
7675
+ this.refresh();
7676
+ break;
7595
7677
  }
7596
7678
  }
7597
7679
  _super.prototype.onPropertyChanged.call(this, newProp, oldProp);
@@ -8107,6 +8189,17 @@ var Tab = /** @__PURE__ @class */ (function (_super) {
8107
8189
  }
8108
8190
  }
8109
8191
  };
8192
+ Tab.prototype.createContentElement = function (index) {
8193
+ var contentElement = this.createElement('div', {
8194
+ id: CLS_CONTENT$1 + this.tabId + '_' + index, className: CLS_ITEM$2,
8195
+ attrs: { 'role': 'tabpanel', 'aria-labelledby': CLS_ITEM$2 + this.tabId + '_' + index }
8196
+ });
8197
+ if (['Dynamic', 'Demand'].indexOf(this.loadOn) !== -1 ||
8198
+ (this.loadOn === 'Init' && index === Number(this.extIndex(this.itemIndexArray[0])))) {
8199
+ addClass([contentElement], CLS_ACTIVE$1);
8200
+ }
8201
+ return contentElement;
8202
+ };
8110
8203
  Tab.prototype.renderContent = function () {
8111
8204
  this.cntEle = select('.' + CLS_CONTENT$1, this.element);
8112
8205
  var hdrItem = selectAll('.' + CLS_TB_ITEM, this.element);
@@ -8121,11 +8214,26 @@ var Tab = /** @__PURE__ @class */ (function (_super) {
8121
8214
  }
8122
8215
  }
8123
8216
  }
8217
+ else {
8218
+ if (selectAll('.' + CLS_TB_ITEM, this.element).length > 0) {
8219
+ if (this.loadOn === 'Init') {
8220
+ for (var i = 0; i < this.itemIndexArray.length; i++) {
8221
+ if (this.itemIndexArray[i]) {
8222
+ this.cntEle.appendChild(this.createContentElement(Number(this.extIndex(this.itemIndexArray[i]))));
8223
+ }
8224
+ }
8225
+ }
8226
+ else if (this.loadOn === 'Dynamic') {
8227
+ this.cntEle.appendChild(this.createContentElement(this.selectedItem > 0 ?
8228
+ this.selectedItem : Number(this.extIndex(this.itemIndexArray[0]))));
8229
+ }
8230
+ }
8231
+ }
8124
8232
  };
8125
8233
  Tab.prototype.reRenderItems = function () {
8126
8234
  this.renderContainer();
8127
8235
  if (!isNullOrUndefined(this.cntEle)) {
8128
- this.touchModule = new Touch(this.cntEle, { swipe: this.swipeHandler.bind(this) });
8236
+ this.bindSwipeEvents();
8129
8237
  }
8130
8238
  };
8131
8239
  Tab.prototype.parseObject = function (items, index) {
@@ -8627,6 +8735,27 @@ var Tab = /** @__PURE__ @class */ (function (_super) {
8627
8735
  }
8628
8736
  }
8629
8737
  };
8738
+ Tab.prototype.loadContentInitMode = function (ele) {
8739
+ if (!ele) {
8740
+ return;
8741
+ }
8742
+ if (this.loadOn === 'Init') {
8743
+ for (var i = 0; i < this.items.length; i++) {
8744
+ if (this.cntEle.children.item(i)) {
8745
+ this.getContent(this.cntEle.children.item(i), this.items[i].content, 'render', i);
8746
+ }
8747
+ }
8748
+ }
8749
+ if (this.prevIndex !== this.selectedItem) {
8750
+ ele.classList.remove(CLS_ACTIVE$1);
8751
+ }
8752
+ };
8753
+ Tab.prototype.loadContentElement = function () {
8754
+ if (!this.isTemplate) {
8755
+ var ele = this.cntEle.children.item(0);
8756
+ this.loadContentInitMode(ele);
8757
+ }
8758
+ };
8630
8759
  Tab.prototype.setContentHeight = function (val) {
8631
8760
  if (this.element.classList.contains(CLS_FILL)) {
8632
8761
  removeClass([this.element], [CLS_FILL]);
@@ -8636,6 +8765,7 @@ var Tab = /** @__PURE__ @class */ (function (_super) {
8636
8765
  }
8637
8766
  var hdrEle = this.getTabHeader();
8638
8767
  if (this.heightAdjustMode === 'None') {
8768
+ this.loadContentElement();
8639
8769
  if (this.height === 'auto') {
8640
8770
  return;
8641
8771
  }
@@ -8648,6 +8778,7 @@ var Tab = /** @__PURE__ @class */ (function (_super) {
8648
8778
  else if (this.heightAdjustMode === 'Fill') {
8649
8779
  addClass([this.element], [CLS_FILL]);
8650
8780
  setStyleAttribute(this.element, { 'height': '100%' });
8781
+ this.loadContentElement();
8651
8782
  this.cntEle.style.height = 'calc(100% - ' + this.hdrEle.offsetHeight + 'px)';
8652
8783
  }
8653
8784
  else if (this.heightAdjustMode === 'Auto') {
@@ -8662,11 +8793,8 @@ var Tab = /** @__PURE__ @class */ (function (_super) {
8662
8793
  }
8663
8794
  else {
8664
8795
  this.cntEle = select('.' + CLS_CONTENT$1, this.element);
8665
- if (val === true) {
8666
- this.cntEle.appendChild(this.createElement('div', {
8667
- id: (CLS_CONTENT$1 + this.tabId + '_' + 0), className: CLS_ITEM$2 + ' ' + CLS_ACTIVE$1,
8668
- attrs: { 'role': 'tabpanel', 'aria-labelledby': CLS_ITEM$2 + this.tabId + '_' + 0 }
8669
- }));
8796
+ if (val === true && this.loadOn === 'Demand') {
8797
+ this.cntEle.appendChild(this.createContentElement(Number(this.extIndex(this.itemIndexArray[0]))));
8670
8798
  }
8671
8799
  var ele = this.cntEle.children.item(0);
8672
8800
  for (var i = 0; i < this.items.length; i++) {
@@ -8680,14 +8808,15 @@ var Tab = /** @__PURE__ @class */ (function (_super) {
8680
8808
  this.clearTemplate(['content']);
8681
8809
  }
8682
8810
  this.templateEle = [];
8683
- this.getContent(ele, this.items[0].content, 'render', 0);
8684
- if (this.prevIndex !== this.selectedItem) {
8685
- ele.classList.remove(CLS_ACTIVE$1);
8811
+ if (this.loadOn === 'Demand') {
8812
+ this.getContent(ele, this.items[0].content, 'render', 0);
8686
8813
  }
8814
+ this.loadContentInitMode(ele);
8687
8815
  }
8688
8816
  setStyleAttribute(this.cntEle, { 'height': this.maxHeight + 'px' });
8689
8817
  }
8690
8818
  else {
8819
+ this.loadContentElement();
8691
8820
  setStyleAttribute(this.cntEle, { 'height': 'auto' });
8692
8821
  }
8693
8822
  };
@@ -8771,7 +8900,7 @@ var Tab = /** @__PURE__ @class */ (function (_super) {
8771
8900
  return;
8772
8901
  }
8773
8902
  if (!this.isTemplate) {
8774
- attributes(trg.firstElementChild, { 'aria-controls': CLS_CONTENT$1 + this.tabId + '_' + value });
8903
+ attributes(trg.firstElementChild, { 'aria-controls': CLS_CONTENT$1 + this.tabId + '_' + this.extIndex(trg.id) });
8775
8904
  }
8776
8905
  var id = trg.id;
8777
8906
  this.removeActiveClass();
@@ -8792,6 +8921,9 @@ var Tab = /** @__PURE__ @class */ (function (_super) {
8792
8921
  }
8793
8922
  else {
8794
8923
  this.cntEle = select('.' + CLS_TAB + ' > .' + CLS_CONTENT$1, this.element);
8924
+ while (this.loadOn === 'Dynamic' && this.cntEle.firstElementChild) {
8925
+ this.cntEle.removeChild(this.cntEle.firstElementChild);
8926
+ }
8795
8927
  var item = this.getTrgContent(this.cntEle, this.extIndex(id));
8796
8928
  if (isNullOrUndefined(item)) {
8797
8929
  this.cntEle.appendChild(this.createElement('div', {
@@ -8867,13 +8999,18 @@ var Tab = /** @__PURE__ @class */ (function (_super) {
8867
8999
  }
8868
9000
  }
8869
9001
  };
9002
+ Tab.prototype.bindSwipeEvents = function () {
9003
+ if (this.swipeMode !== 'None') {
9004
+ this.touchModule = new Touch(this.cntEle, { swipe: this.swipeHandler.bind(this) });
9005
+ }
9006
+ };
8870
9007
  Tab.prototype.wireEvents = function () {
8871
9008
  this.bindDraggable();
8872
9009
  window.addEventListener('resize', this.resizeContext);
8873
9010
  EventHandler.add(this.element, 'mouseover', this.hoverHandler, this);
8874
9011
  EventHandler.add(this.element, 'keydown', this.spaceKeyDown, this);
8875
9012
  if (!isNullOrUndefined(this.cntEle)) {
8876
- this.touchModule = new Touch(this.cntEle, { swipe: this.swipeHandler.bind(this) });
9013
+ this.bindSwipeEvents();
8877
9014
  }
8878
9015
  this.keyModule = new KeyboardEvents(this.element, { keyAction: this.keyHandler.bind(this), keyConfigs: this.keyConfigs });
8879
9016
  this.tabKeyModule = new KeyboardEvents(this.element, {
@@ -8918,7 +9055,9 @@ var Tab = /** @__PURE__ @class */ (function (_super) {
8918
9055
  }
8919
9056
  };
8920
9057
  Tab.prototype.swipeHandler = function (e) {
8921
- if (e.velocity < 3 && isNullOrUndefined(e.originalEvent.changedTouches)) {
9058
+ if ((e.velocity < 3 && isNullOrUndefined(e.originalEvent.changedTouches)) ||
9059
+ (this.swipeMode === 'Touch' && ((e.originalEvent.type === 'mouseup') || e.originalEvent.type === 'mouseleave')) ||
9060
+ (this.swipeMode === 'Mouse' && e.originalEvent.type === 'touchend') || (this.swipeMode === 'None')) {
8922
9061
  return;
8923
9062
  }
8924
9063
  if (this.isNested) {
@@ -9515,7 +9654,7 @@ var Tab = /** @__PURE__ @class */ (function (_super) {
9515
9654
  _this.items.splice((index + i_1), 0, item);
9516
9655
  i_1++;
9517
9656
  }
9518
- if (_this.isTemplate && !isNullOrUndefined(item.header) && !isNullOrUndefined(item.header.text)) {
9657
+ if (!isNullOrUndefined(item.header) && !isNullOrUndefined(item.header.text) && (_this.isTemplate || _this.loadOn === 'Init')) {
9519
9658
  var no = lastEleIndex + place;
9520
9659
  var ele = _this.createElement('div', {
9521
9660
  id: CLS_CONTENT$1 + _this.tabId + '_' + no, className: CLS_ITEM$2,
@@ -9906,6 +10045,13 @@ var Tab = /** @__PURE__ @class */ (function (_super) {
9906
10045
  case 'allowDragAndDrop':
9907
10046
  this.bindDraggable();
9908
10047
  break;
10048
+ case 'swipeMode':
10049
+ if (this.touchModule) {
10050
+ this.touchModule.destroy();
10051
+ this.touchModule = null;
10052
+ }
10053
+ this.bindSwipeEvents();
10054
+ break;
9909
10055
  case 'dragArea':
9910
10056
  if (this.allowDragAndDrop) {
9911
10057
  this.draggableItems.forEach(function (item) {
@@ -10057,6 +10203,9 @@ var Tab = /** @__PURE__ @class */ (function (_super) {
10057
10203
  __decorate$7([
10058
10204
  Property('100%')
10059
10205
  ], Tab.prototype, "width", void 0);
10206
+ __decorate$7([
10207
+ Property('Both')
10208
+ ], Tab.prototype, "swipeMode", void 0);
10060
10209
  __decorate$7([
10061
10210
  Property('auto')
10062
10211
  ], Tab.prototype, "height", void 0);
@@ -10076,7 +10225,7 @@ var Tab = /** @__PURE__ @class */ (function (_super) {
10076
10225
  Property('Scrollable')
10077
10226
  ], Tab.prototype, "overflowMode", void 0);
10078
10227
  __decorate$7([
10079
- Property('Dynamic')
10228
+ Property('Demand')
10080
10229
  ], Tab.prototype, "loadOn", void 0);
10081
10230
  __decorate$7([
10082
10231
  Property(false)
@@ -10350,6 +10499,7 @@ var TreeView = /** @__PURE__ @class */ (function (_super) {
10350
10499
  _this.mouseDownStatus = false;
10351
10500
  _this.isDropIn = false;
10352
10501
  _this.OldCheckedData = [];
10502
+ _this.isHiddenItem = false;
10353
10503
  return _this;
10354
10504
  }
10355
10505
  TreeView_1 = TreeView;
@@ -10846,10 +10996,6 @@ var TreeView = /** @__PURE__ @class */ (function (_super) {
10846
10996
  this.changeState(node, 'uncheck', null, true, true);
10847
10997
  }
10848
10998
  }
10849
- var parentElement = closest(node, '.' + PARENTITEM);
10850
- if (!isNullOrUndefined(parentElement)) {
10851
- this.ensureParentCheckState(closest(parentElement, '.' + LISTITEM));
10852
- }
10853
10999
  }
10854
11000
  };
10855
11001
  /**
@@ -11968,6 +12114,9 @@ var TreeView = /** @__PURE__ @class */ (function (_super) {
11968
12114
  this.expandArgs.isInteracted = this.isInteracted;
11969
12115
  this.trigger('nodeExpanded', this.expandArgs);
11970
12116
  }
12117
+ if (this.isHiddenItem) {
12118
+ this.collapseAll([this.getNodeData(currLi).id]);
12119
+ }
11971
12120
  };
11972
12121
  TreeView.prototype.addExpand = function (liEle) {
11973
12122
  liEle.setAttribute('aria-expanded', 'true');
@@ -12500,7 +12649,9 @@ var TreeView = /** @__PURE__ @class */ (function (_super) {
12500
12649
  this.expandOnType = (this.expandOn === 'Auto') ? (Browser.isDevice ? 'Click' : 'DblClick') : this.expandOn;
12501
12650
  };
12502
12651
  TreeView.prototype.expandHandler = function (e) {
12503
- var target = e.originalEvent.target;
12652
+ var target = Browser.isDevice && e.originalEvent.changedTouches && !Browser.isIos
12653
+ ? document.elementFromPoint(e.originalEvent.changedTouches[0].clientX, e.originalEvent.changedTouches[0].clientY)
12654
+ : e.originalEvent.target;
12504
12655
  if (!target || target.classList.contains(INPUT) || target.classList.contains(ROOT) ||
12505
12656
  target.classList.contains(PARENTITEM) || target.classList.contains(LISTITEM) ||
12506
12657
  target.classList.contains(ICON) || this.showCheckBox && closest(target, '.' + CHECKBOXWRAP)) {
@@ -14849,15 +15000,6 @@ var TreeView = /** @__PURE__ @class */ (function (_super) {
14849
15000
  }
14850
15001
  }
14851
15002
  };
14852
- /**
14853
- * Checks whether the checkedNodes entered are valid and sets the valid checkedNodes while changing via setmodel(for hierarchical DS)
14854
- *
14855
- * @param {Object[]} childItems - The child items to check.
14856
- * @param {string} node - The node to set the check state for.
14857
- * @param {Object} [treeData] - The optional tree data.
14858
- * @returns {void}
14859
- * @private
14860
- */
14861
15003
  /**
14862
15004
  * Checks whether the checkedNodes entered are valid and sets the valid checkedNodes while changing via setmodel(for hierarchical DS)
14863
15005
  *
@@ -15340,9 +15482,11 @@ var TreeView = /** @__PURE__ @class */ (function (_super) {
15340
15482
  var pid = getValue(this.fields.parentID, nodes[parseInt(i.toString(), 10)]);
15341
15483
  dropLi = pid ? this.getElement(pid.toString()) : pid;
15342
15484
  if (!isNullOrUndefined(pid) && isNullOrUndefined(dropLi)) {
15485
+ this.isHiddenItem = true;
15343
15486
  this.preventExpand = false;
15344
15487
  this.ensureVisible(pid);
15345
15488
  this.preventExpand = preventTargetExpand;
15489
+ this.isHiddenItem = false;
15346
15490
  dropLi = this.getElement(pid.toString());
15347
15491
  }
15348
15492
  this.addGivenNodes([nodes[parseInt(i.toString(), 10)]], dropLi, index);
@@ -15451,7 +15595,7 @@ var TreeView = /** @__PURE__ @class */ (function (_super) {
15451
15595
  else if (this.dataType === 2) {
15452
15596
  parentsId = this.getHierarchicalParentId(node, this.treeData, parentsId);
15453
15597
  }
15454
- this.expandAll(parentsId.reverse());
15598
+ this.expandAll(parentsId.reverse(), null, null, this.isHiddenItem);
15455
15599
  var liEle = this.getElement(node);
15456
15600
  if (!isNullOrUndefined(liEle)) {
15457
15601
  if (typeof node == 'object') {
@@ -15551,10 +15695,16 @@ var TreeView = /** @__PURE__ @class */ (function (_super) {
15551
15695
  * @returns {void}
15552
15696
  */
15553
15697
  TreeView.prototype.moveNodes = function (sourceNodes, target, index, preventTargetExpand) {
15698
+ if (isNullOrUndefined(sourceNodes) || sourceNodes.length === 0) {
15699
+ return;
15700
+ }
15554
15701
  var dropLi = this.getElement(target);
15555
15702
  var nodeData = [];
15556
15703
  if (isNullOrUndefined(dropLi)) {
15557
- return;
15704
+ this.isHiddenItem = true;
15705
+ this.ensureVisible(target);
15706
+ this.isHiddenItem = false;
15707
+ dropLi = this.getElement(target);
15558
15708
  }
15559
15709
  for (var i = 0; i < sourceNodes.length; i++) {
15560
15710
  var dragLi = this.getElement(sourceNodes[parseInt(i.toString(), 10)]);
@@ -17620,6 +17770,15 @@ var Carousel = /** @__PURE__ @class */ (function (_super) {
17620
17770
  this.reRenderSlides();
17621
17771
  }
17622
17772
  break;
17773
+ case 'allowKeyboardInteraction':
17774
+ if (this.keyModule) {
17775
+ this.keyModule.destroy();
17776
+ this.keyModule = null;
17777
+ }
17778
+ if (newProp.allowKeyboardInteraction) {
17779
+ this.renderKeyboardActions();
17780
+ }
17781
+ break;
17623
17782
  case 'enableRtl':
17624
17783
  rtlElement = [].slice.call(this.element.querySelectorAll("." + CLS_PREV_BUTTON + ",\n ." + CLS_NEXT_BUTTON + ", ." + CLS_PLAY_BUTTON));
17625
17784
  rtlElement.push(this.element);
@@ -17991,6 +18150,9 @@ var Carousel = /** @__PURE__ @class */ (function (_super) {
17991
18150
  append(template, indicatorBar);
17992
18151
  };
17993
18152
  Carousel.prototype.renderKeyboardActions = function () {
18153
+ if (!this.allowKeyboardInteraction) {
18154
+ return;
18155
+ }
17994
18156
  this.keyModule = new KeyboardEvents(this.element, { keyAction: this.keyHandler.bind(this), keyConfigs: this.keyConfigs });
17995
18157
  };
17996
18158
  Carousel.prototype.renderTouchActions = function () {
@@ -18314,6 +18476,9 @@ var Carousel = /** @__PURE__ @class */ (function (_super) {
18314
18476
  }
18315
18477
  };
18316
18478
  Carousel.prototype.keyHandler = function (e) {
18479
+ if (!this.allowKeyboardInteraction) {
18480
+ return;
18481
+ }
18317
18482
  var direction;
18318
18483
  var slideIndex;
18319
18484
  var isSlideTransition = false;
@@ -18462,6 +18627,7 @@ var Carousel = /** @__PURE__ @class */ (function (_super) {
18462
18627
  if (!this.timeStampStart) {
18463
18628
  this.timeStampStart = Date.now();
18464
18629
  }
18630
+ e.preventDefault();
18465
18631
  this.isSwipe = false;
18466
18632
  this.itemsContainer.classList.add('e-swipe-start');
18467
18633
  this.prevPageX = e.touches ? e.touches[0].pageX : e.pageX;
@@ -18471,6 +18637,7 @@ var Carousel = /** @__PURE__ @class */ (function (_super) {
18471
18637
  if (!this.itemsContainer.classList.contains('e-swipe-start')) {
18472
18638
  return;
18473
18639
  }
18640
+ this.isSwipe = true;
18474
18641
  e.preventDefault();
18475
18642
  var pageX = e.touches ? e.touches[0].pageX : e.pageX;
18476
18643
  var positionDiff = this.prevPageX - (pageX);
@@ -18483,7 +18650,6 @@ var Carousel = /** @__PURE__ @class */ (function (_super) {
18483
18650
  this.itemsContainer.style.transform = "translateX(" + (this.initialTranslate + (this.enableRtl ? positionDiff : -positionDiff)) + "px)";
18484
18651
  };
18485
18652
  Carousel.prototype.swipStop = function () {
18486
- this.isSwipe = true;
18487
18653
  var time = Date.now() - this.timeStampStart;
18488
18654
  var distanceX = this.getTranslateValue(this.itemsContainer) - this.initialTranslate;
18489
18655
  distanceX = distanceX < 0 ? distanceX * -1 : distanceX;
@@ -18547,7 +18713,7 @@ var Carousel = /** @__PURE__ @class */ (function (_super) {
18547
18713
  }
18548
18714
  };
18549
18715
  Carousel.prototype.wireEvents = function () {
18550
- if (!(this.animationEffect === 'Custom')) {
18716
+ if (this.animationEffect !== 'Custom' && this.enableTouchSwipe) {
18551
18717
  this.swipeModehandlers();
18552
18718
  }
18553
18719
  EventHandler.add(this.element, 'focusin focusout', this.onFocusActions, this);
@@ -18669,8 +18835,10 @@ var Carousel = /** @__PURE__ @class */ (function (_super) {
18669
18835
  this.touchModule.destroy();
18670
18836
  this.touchModule = null;
18671
18837
  }
18672
- this.keyModule.destroy();
18673
- this.keyModule = null;
18838
+ if (this.keyModule) {
18839
+ this.keyModule.destroy();
18840
+ this.keyModule = null;
18841
+ }
18674
18842
  this.resetSlideInterval();
18675
18843
  this.destroyButtons();
18676
18844
  this.unWireEvents();
@@ -18734,6 +18902,9 @@ var Carousel = /** @__PURE__ @class */ (function (_super) {
18734
18902
  __decorate$b([
18735
18903
  Property(true)
18736
18904
  ], Carousel.prototype, "enableTouchSwipe", void 0);
18905
+ __decorate$b([
18906
+ Property(true)
18907
+ ], Carousel.prototype, "allowKeyboardInteraction", void 0);
18737
18908
  __decorate$b([
18738
18909
  Property(true)
18739
18910
  ], Carousel.prototype, "showIndicators", void 0);
@@ -19003,6 +19174,10 @@ var __decorate$d = (undefined && undefined.__decorate) || function (decorators,
19003
19174
  return c > 3 && r && Object.defineProperty(target, key, r), r;
19004
19175
  };
19005
19176
  var PROGRESSVALUE = '--progress-value';
19177
+ var PROGRESSPOS = '--progress-position';
19178
+ var VERTICALSTEP = 'e-vertical';
19179
+ var HORIZSTEP = 'e-horizontal';
19180
+ var ITEMLIST = 'e-stepper-steps';
19006
19181
  /**
19007
19182
  * Defines the status of the step.
19008
19183
  */
@@ -19121,8 +19296,8 @@ var StepperBase = /** @__PURE__ @class */ (function (_super) {
19121
19296
  StepperBase.prototype.render = function () {
19122
19297
  };
19123
19298
  StepperBase.prototype.updateOrientaion = function (wrapper) {
19124
- if (wrapper.classList.contains('e-horizontal') || wrapper.classList.contains('e-vertical')) {
19125
- wrapper.classList.remove('e-horizontal', 'e-vertical');
19299
+ if (wrapper.classList.contains(HORIZSTEP) || wrapper.classList.contains(VERTICALSTEP)) {
19300
+ wrapper.classList.remove(HORIZSTEP, VERTICALSTEP);
19126
19301
  }
19127
19302
  if (!(isNullOrUndefined(this.orientation))) {
19128
19303
  wrapper.classList.add('e-' + this.orientation.toLocaleLowerCase());
@@ -19131,23 +19306,23 @@ var StepperBase = /** @__PURE__ @class */ (function (_super) {
19131
19306
  StepperBase.prototype.renderProgressBar = function (wrapper) {
19132
19307
  this.progressStep = this.createElement('div', { className: 'e-stepper-progressbar' });
19133
19308
  this.progressbar = this.createElement('div', { className: 'e-progressbar-value' });
19309
+ var beforeLabel = (wrapper.querySelector('li').querySelector('.e-step-label-container'));
19134
19310
  this.progressStep.appendChild(this.progressbar);
19135
19311
  wrapper.prepend(this.progressStep);
19136
19312
  this.progressbar.style.setProperty(PROGRESSVALUE, (0) + '%');
19137
- var beforeLabel = (wrapper.querySelector('li').querySelector('.e-step-label-container'));
19138
- if (wrapper.classList.contains('e-vertical')) {
19313
+ if (wrapper.classList.contains(VERTICALSTEP)) {
19139
19314
  if (wrapper.classList.contains('e-label-bottom') || wrapper.classList.contains('e-label-top')) {
19140
- var stepsContainer = (wrapper.querySelector('.e-stepper-steps'));
19141
- this.progressStep.style.setProperty('--progress-position', (stepsContainer.offsetWidth / 2) + 'px');
19315
+ var stepsContainer = (wrapper.querySelector('.' + ITEMLIST));
19316
+ this.progressStep.style.setProperty(PROGRESSPOS, (stepsContainer.offsetWidth / 2) + 'px');
19142
19317
  }
19143
19318
  else {
19144
- this.progressStep.style.setProperty('--progress-position', ((this.progressBarPosition / 2) - 1) + 'px');
19319
+ this.progressStep.style.setProperty(PROGRESSPOS, ((this.progressBarPosition / 2) - 1) + 'px');
19145
19320
  }
19146
19321
  }
19147
19322
  if (beforeLabel && (beforeLabel.classList.contains('e-label-before'))) {
19148
- this.progressStep.style.setProperty('--progress-position', (((this.progressBarPosition) - 1)) + 5 + 'px');
19323
+ this.progressStep.style.setProperty(PROGRESSPOS, (((this.progressBarPosition) - 1)) + 5 + 'px');
19149
19324
  }
19150
- if (wrapper.classList.contains('e-horizontal')) {
19325
+ if (wrapper.classList.contains(HORIZSTEP)) {
19151
19326
  this.setProgressPosition(wrapper);
19152
19327
  }
19153
19328
  };
@@ -19164,9 +19339,9 @@ var StepperBase = /** @__PURE__ @class */ (function (_super) {
19164
19339
  }
19165
19340
  this.progressStep.style.setProperty('--progress-top-position', topPos + 'px');
19166
19341
  }
19167
- var lastEle = wrapper.querySelector('.e-stepper-steps').lastChild.firstChild;
19342
+ var lastEle = wrapper.querySelector('.' + ITEMLIST).lastChild.firstChild;
19168
19343
  if (wrapper.classList.contains('e-rtl')) {
19169
- var leftPost = ((stepItemEle.offsetLeft + stepItemEle.offsetWidth) - wrapper.querySelector('.e-stepper-steps').offsetWidth);
19344
+ var leftPost = ((stepItemEle.offsetLeft + stepItemEle.offsetWidth) - wrapper.querySelector('.' + ITEMLIST).offsetWidth);
19170
19345
  this.progressStep.style.setProperty('--progress-left-position', Math.abs(leftPost) + 'px');
19171
19346
  this.progressStep.style.setProperty('--progress-bar-width', Math.abs(lastEle.offsetLeft - stepItemEle.offsetLeft) + 'px');
19172
19347
  }
@@ -19227,7 +19402,7 @@ var __decorate$e = (undefined && undefined.__decorate) || function (decorators,
19227
19402
  return c > 3 && r && Object.defineProperty(target, key, r), r;
19228
19403
  };
19229
19404
  var ITEMCONTAINER = 'e-step-container';
19230
- var ITEMLIST = 'e-stepper-steps';
19405
+ var ITEMLIST$1 = 'e-stepper-steps';
19231
19406
  var ICONCSS = 'e-indicator';
19232
19407
  var TEXTCSS = 'e-step-text-container';
19233
19408
  var STEPLABEL = 'e-step-label-container';
@@ -19244,8 +19419,8 @@ var RTL$3 = 'e-rtl';
19244
19419
  var TEMPLATE = 'e-step-template';
19245
19420
  var LABELAFTER = 'e-label-after';
19246
19421
  var LABELBEFORE = 'e-label-before';
19247
- var VERTICALSTEP = 'e-vertical';
19248
- var HORIZSTEP = 'e-horizontal';
19422
+ var VERTICALSTEP$1 = 'e-vertical';
19423
+ var HORIZSTEP$1 = 'e-horizontal';
19249
19424
  var STEPICON = 'e-step-item';
19250
19425
  var STEPTEXT = 'e-step-text';
19251
19426
  var TEXT = 'e-text';
@@ -19381,10 +19556,9 @@ var Stepper = /** @__PURE__ @class */ (function (_super) {
19381
19556
  this.updateStepperStatus(true);
19382
19557
  };
19383
19558
  Stepper.prototype.initialize = function () {
19384
- var _this = this;
19385
19559
  this.element.setAttribute('aria-label', this.element.id);
19386
19560
  this.updatePosition();
19387
- this.stepperItemList = this.createElement('ol', { className: ITEMLIST });
19561
+ this.stepperItemList = this.createElement('ol', { className: ITEMLIST$1 });
19388
19562
  this.updateOrientaion(this.element);
19389
19563
  this.updateStepType();
19390
19564
  this.element.appendChild(this.stepperItemList);
@@ -19401,28 +19575,30 @@ var Stepper = /** @__PURE__ @class */ (function (_super) {
19401
19575
  this.updateTemplateFunction();
19402
19576
  this.renderItems();
19403
19577
  if (this.steps.length > 0) {
19404
- if (this.steps.length > 1) {
19405
- if (this.isAngular && this.template) {
19406
- setTimeout(function () {
19407
- _this.renderProgressBar(_this.element);
19408
- });
19409
- }
19410
- else {
19411
- this.renderProgressBar(this.element);
19412
- }
19413
- }
19578
+ this.initiateProgressBar();
19414
19579
  this.checkValidStep();
19415
19580
  this.updateAnimation();
19416
19581
  this.updateTooltip();
19417
19582
  this.wireKeyboardEvent();
19418
19583
  }
19419
19584
  };
19585
+ Stepper.prototype.initiateProgressBar = function () {
19586
+ var _this = this;
19587
+ if (this.steps.length > 1) {
19588
+ if (this.isAngular && this.template) {
19589
+ setTimeout(function () { _this.renderProgressBar(_this.element); });
19590
+ }
19591
+ else {
19592
+ this.renderProgressBar(this.element);
19593
+ }
19594
+ }
19595
+ };
19420
19596
  Stepper.prototype.updatePosition = function () {
19421
19597
  this.progressBarPosition = this.beforeLabelWidth = this.textEleWidth = 0;
19422
19598
  };
19423
19599
  Stepper.prototype.renderDefault = function (index) {
19424
- return (!this.steps[parseInt((index).toString(), 10)].iconCss && !this.steps[parseInt((index).toString(), 10)].text &&
19425
- !this.steps[parseInt((index).toString(), 10)].label) ? true : false;
19600
+ var step = this.steps[parseInt(index.toString(), 10)];
19601
+ return !step.iconCss && !step.text && !step.label;
19426
19602
  };
19427
19603
  Stepper.prototype.updateAnimation = function () {
19428
19604
  var progressEle = this.element.querySelector('.e-progressbar-value');
@@ -19446,12 +19622,16 @@ var Stepper = /** @__PURE__ @class */ (function (_super) {
19446
19622
  }
19447
19623
  };
19448
19624
  Stepper.prototype.updateStepType = function () {
19449
- if (!(isNullOrUndefined(this.stepType)) && (this.stepType.toLowerCase() === 'indicator' || this.stepType.toLowerCase() === 'label' || this.stepType.toLowerCase() === 'default')) {
19450
- if (this.stepType.toLowerCase() !== 'default') {
19451
- this.element.classList.add('e-step-type-' + this.stepType.toLowerCase());
19452
- }
19453
- if (((this.stepType.toLowerCase() === 'indicator' || 'label') && (this.labelContainer))) {
19454
- this.clearLabelPosition();
19625
+ if (!isNullOrUndefined(this.stepType)) {
19626
+ var stepTypeLower = this.stepType.toLowerCase();
19627
+ var validStepTypes = ['indicator', 'label', 'default'];
19628
+ if (validStepTypes.indexOf(stepTypeLower) !== -1) {
19629
+ if (stepTypeLower !== 'default') {
19630
+ this.element.classList.add('e-step-type-' + stepTypeLower);
19631
+ }
19632
+ if ((stepTypeLower === 'indicator' || stepTypeLower === 'label') && this.labelContainer) {
19633
+ this.clearLabelPosition();
19634
+ }
19455
19635
  }
19456
19636
  }
19457
19637
  };
@@ -19464,7 +19644,7 @@ var Stepper = /** @__PURE__ @class */ (function (_super) {
19464
19644
  EventHandler.remove(window, 'click', this.updateStepFocus);
19465
19645
  };
19466
19646
  Stepper.prototype.updateResize = function () {
19467
- if (this.stepperItemList && this.progressbar && this.element.classList.contains(HORIZSTEP)) {
19647
+ if (this.stepperItemList && this.progressbar && this.element.classList.contains(HORIZSTEP$1)) {
19468
19648
  this.setProgressPosition(this.element, true);
19469
19649
  }
19470
19650
  this.navigateToStep(this.activeStep, null, null, false, false);
@@ -19524,23 +19704,28 @@ var Stepper = /** @__PURE__ @class */ (function (_super) {
19524
19704
  };
19525
19705
  Stepper.prototype.renderItems = function () {
19526
19706
  var _this = this;
19707
+ var _a;
19708
+ var isHorizontal = this.element.classList.contains(HORIZSTEP$1);
19709
+ var isVertical = this.element.classList.contains(VERTICALSTEP$1);
19710
+ var labelPositionLower = !isNullOrUndefined(this.labelPosition) ? this.labelPosition.toLowerCase() : '';
19527
19711
  for (var index = 0; index < this.steps.length; index++) {
19528
19712
  this.stepperItemContainer = this.createElement('li', { className: ITEMCONTAINER });
19529
- this.stepperItemContainer.classList[(index === 0) ? 'add' : 'remove'](SELECTED$2, INPROGRESS);
19530
- this.stepperItemContainer.classList[(index !== 0) ? 'add' : 'remove'](NOTSTARTED);
19531
- if (this.element.classList.contains(HORIZSTEP)) {
19532
- this.stepperItemContainer.style.setProperty('--max-width', 100 / this.steps.length + '%');
19533
- }
19534
19713
  var stepSpan = this.createElement('span', { className: 'e-step' });
19535
19714
  var item = this.steps[parseInt(index.toString(), 10)];
19536
19715
  var isItemLabel = item.label ? true : false;
19537
19716
  var isItemText = item.text ? true : false;
19717
+ var isIndicator = this.element.classList.contains(STEPINDICATOR);
19718
+ this.stepperItemContainer.classList[(index === 0) ? 'add' : 'remove'](SELECTED$2, INPROGRESS);
19719
+ this.stepperItemContainer.classList[(index !== 0) ? 'add' : 'remove'](NOTSTARTED);
19720
+ if (isHorizontal) {
19721
+ this.stepperItemContainer.style.setProperty('--max-width', 100 / this.steps.length + '%');
19722
+ }
19538
19723
  if (this.renderDefault(index) && (isNullOrUndefined(this.template) || this.template === '')) {
19539
- var isIndicator = (!this.element.classList.contains('e-step-type-default') && this.stepType.toLowerCase() === 'indicator') ? true : false;
19540
- if (isIndicator) {
19724
+ var isIndicator_1 = !this.element.classList.contains('e-step-type-default') && this.stepType.toLowerCase() === 'indicator';
19725
+ if (isIndicator_1) {
19541
19726
  stepSpan.classList.add('e-icons', INDICATORICON);
19542
19727
  }
19543
- if (!isIndicator && item.isValid == null) {
19728
+ if (!isIndicator_1 && item.isValid == null) {
19544
19729
  stepSpan.classList.add('e-step-content');
19545
19730
  stepSpan.innerHTML = (index + 1).toString();
19546
19731
  }
@@ -19552,10 +19737,7 @@ var Stepper = /** @__PURE__ @class */ (function (_super) {
19552
19737
  !this.element.classList.contains(LABELINDICATOR)))) {
19553
19738
  if (item.iconCss) {
19554
19739
  var itemIcon = item.iconCss.trim().split(' ');
19555
- stepSpan.classList.add(ICONCSS);
19556
- for (var i = 0; i < itemIcon.length; i++) {
19557
- stepSpan.classList.add(itemIcon[parseInt(i.toString(), 10)]);
19558
- }
19740
+ (_a = stepSpan.classList).add.apply(_a, [ICONCSS].concat(itemIcon));
19559
19741
  this.stepperItemContainer.classList.add(STEPICON);
19560
19742
  }
19561
19743
  else if (!item.iconCss && isItemText && isItemLabel) {
@@ -19564,51 +19746,41 @@ var Stepper = /** @__PURE__ @class */ (function (_super) {
19564
19746
  this.stepperItemContainer.classList.add(STEPICON);
19565
19747
  }
19566
19748
  this.stepperItemContainer.appendChild(stepSpan);
19567
- if ((this.element.classList.contains(HORIZSTEP) && (this.labelPosition.toLowerCase() === 'start' || this.labelPosition.toLowerCase() === 'end') && isItemLabel) ||
19568
- (this.element.classList.contains(VERTICALSTEP) && (this.labelPosition.toLowerCase() === 'top' || this.labelPosition.toLowerCase() === 'bottom') && isItemLabel)) {
19569
- this.element.classList.add('e-label-' + this.labelPosition.toLowerCase());
19570
- var textSpan = this.createElement('span', { className: TEXTCSS + ' ' + TEXT });
19571
- textSpan.innerText = item.label;
19572
- this.stepperItemContainer.appendChild(textSpan);
19573
- this.stepperItemContainer.classList.add(STEPTEXT);
19749
+ if (((isHorizontal && (labelPositionLower === 'start' || labelPositionLower === 'end') && isItemLabel) ||
19750
+ (isVertical && (labelPositionLower === 'top' || labelPositionLower === 'bottom') && isItemLabel)) && !isIndicator) {
19751
+ this.element.classList.add('e-label-' + labelPositionLower);
19752
+ this.createTextLabelElement(item.label);
19574
19753
  isRender = false;
19575
19754
  }
19576
19755
  }
19577
- if (isItemText && (!item.iconCss || !this.element.classList.contains(STEPINDICATOR)) && isRender &&
19756
+ if (isItemText && (!item.iconCss || !isIndicator) && isRender &&
19578
19757
  !(item.iconCss && isItemLabel)) {
19579
- if ((!item.iconCss && this.element.classList.contains(STEPINDICATOR)) ||
19758
+ if ((!item.iconCss && isIndicator) ||
19580
19759
  ((!item.iconCss || this.element.classList.contains(LABELINDICATOR)) && !isItemLabel)) {
19581
19760
  if (!item.iconCss && !isItemLabel) {
19582
19761
  this.element.classList.add('e-step-type-indicator');
19583
19762
  }
19584
19763
  this.checkValidState(item, stepSpan);
19585
- isItemLabel = null;
19764
+ isItemLabel = false;
19586
19765
  }
19587
19766
  else {
19588
- var textSpan = this.createElement('span', { className: TEXT });
19589
19767
  if (!isItemLabel) {
19590
- textSpan.innerText = item.text;
19591
- textSpan.classList.add(TEXTCSS);
19592
- this.stepperItemContainer.appendChild(textSpan);
19593
- this.stepperItemContainer.classList.add(STEPTEXT);
19768
+ this.createTextLabelElement(item.text);
19594
19769
  }
19595
19770
  if (isItemLabel && this.element.classList.contains(LABELINDICATOR)) {
19771
+ var textSpan = this.createElement('span', { className: TEXT });
19596
19772
  textSpan.innerText = item.label;
19597
19773
  }
19598
- isItemText = item.label ? false : true;
19774
+ isItemText = isItemLabel ? false : true;
19599
19775
  }
19600
19776
  }
19601
- if (isItemLabel && (!item.iconCss || !this.element.classList.contains(STEPINDICATOR)) && isRender) {
19602
- if (!item.iconCss && !isItemText && this.element.classList.contains(STEPINDICATOR)) {
19777
+ if (isItemLabel && isItemLabel && (!item.iconCss || !isIndicator) && isRender) {
19778
+ if (!item.iconCss && !isItemText && isIndicator) {
19603
19779
  this.checkValidState(item, stepSpan, true);
19604
19780
  }
19605
19781
  else if ((!((this.element.classList.contains(LABELINDICATOR)) && isItemText)) ||
19606
19782
  (this.element.classList.contains(LABELINDICATOR) && isItemLabel)) {
19607
- this.labelContainer = this.createElement('span', { className: STEPLABEL });
19608
- var labelSpan = this.createElement('span', { className: LABEL });
19609
- labelSpan.innerText = item.label;
19610
- this.labelContainer.appendChild(labelSpan);
19611
- this.stepperItemContainer.classList.add(STEPSLABEL);
19783
+ this.createTextLabelElement(item.label, true);
19612
19784
  this.updateLabelPosition();
19613
19785
  if ((!item.iconCss && !isItemText && !this.stepperItemContainer.classList.contains(STEPICON)) ||
19614
19786
  this.element.classList.contains(LABELINDICATOR)) {
@@ -19627,8 +19799,8 @@ var Stepper = /** @__PURE__ @class */ (function (_super) {
19627
19799
  var optionalContent = this.l10n.getConstant('optional');
19628
19800
  optionalSpan.innerText = optionalContent;
19629
19801
  if (isItemLabel && (this.labelContainer && ((this.element.classList.contains(LABELAFTER) && !this.stepperItemContainer.classList.contains('e-step-label-only'))
19630
- || (this.element.classList.contains(HORIZSTEP) && this.element.classList.contains(LABELBEFORE) && !this.stepperItemContainer.classList.contains('e-step-label-only'))))
19631
- || (this.element.classList.contains(VERTICALSTEP) && this.element.classList.contains(LABELBEFORE))) {
19802
+ || (isHorizontal && this.element.classList.contains(LABELBEFORE) && !this.stepperItemContainer.classList.contains('e-step-label-only'))))
19803
+ || (isVertical && this.element.classList.contains(LABELBEFORE))) {
19632
19804
  this.labelContainer.appendChild(optionalSpan);
19633
19805
  }
19634
19806
  else {
@@ -19666,16 +19838,16 @@ var Stepper = /** @__PURE__ @class */ (function (_super) {
19666
19838
  this.trigger('beforeStepRender', eventArgs, function (args) {
19667
19839
  _this.stepperItemList.appendChild(args.element);
19668
19840
  });
19669
- if (this.isAngular && this.template) {
19670
- setTimeout(function () {
19671
- _this.calculateProgressBarPosition();
19672
- });
19673
- }
19674
- else {
19675
- this.calculateProgressBarPosition();
19841
+ if (isVertical) {
19842
+ if (this.isAngular && this.template) {
19843
+ setTimeout(function () { _this.calculateProgressBarPosition(); });
19844
+ }
19845
+ else {
19846
+ this.calculateProgressBarPosition();
19847
+ }
19676
19848
  }
19677
19849
  }
19678
- if (this.element.classList.contains(VERTICALSTEP)) {
19850
+ if (isVertical) {
19679
19851
  if (this.element.classList.contains(LABELBEFORE)) {
19680
19852
  var listItems = this.stepperItemList.querySelectorAll('.' + LABEL);
19681
19853
  for (var i = 0; i < listItems.length; i++) {
@@ -19685,37 +19857,48 @@ var Stepper = /** @__PURE__ @class */ (function (_super) {
19685
19857
  }
19686
19858
  }
19687
19859
  };
19860
+ Stepper.prototype.createTextLabelElement = function (content, isLabelEle) {
19861
+ if (isLabelEle === void 0) { isLabelEle = false; }
19862
+ var spanEle = this.createElement('span', { className: isLabelEle ? LABEL : TEXTCSS + " " + TEXT });
19863
+ spanEle.innerText = content;
19864
+ if (isLabelEle) {
19865
+ this.labelContainer = this.createElement('span', { className: STEPLABEL });
19866
+ this.labelContainer.appendChild(spanEle);
19867
+ }
19868
+ else {
19869
+ this.stepperItemContainer.appendChild(spanEle);
19870
+ }
19871
+ this.stepperItemContainer.classList.add(isLabelEle ? STEPSLABEL : STEPTEXT);
19872
+ };
19688
19873
  Stepper.prototype.calculateProgressBarPosition = function () {
19689
19874
  var isBeforeLabel = (this.element.classList.contains(LABELBEFORE)) ? true : false;
19690
- var isStepVertical = (this.element.classList.contains(VERTICALSTEP)) ? true : false;
19691
- if (isStepVertical) {
19692
- var iconOnly = (this.stepperItemContainer.classList.contains(STEPICON) &&
19693
- !this.stepperItemContainer.classList.contains(STEPTEXT) &&
19694
- !this.stepperItemContainer.classList.contains(STEPSLABEL)) ? true : false;
19695
- var textEle = (this.stepperItemContainer.querySelector('.' + TEXTCSS));
19696
- if (textEle) {
19697
- this.textEleWidth = this.textEleWidth < textEle.offsetWidth ? textEle.offsetWidth : this.textEleWidth;
19698
- }
19699
- if (isBeforeLabel) {
19700
- var itemWidth = void 0;
19701
- var labelWidth = this.stepperItemContainer.querySelector('.' + LABEL).offsetWidth + 15;
19702
- if (this.beforeLabelWidth < labelWidth) {
19703
- this.beforeLabelWidth = labelWidth;
19704
- }
19705
- if (this.element.querySelector('ol').lastChild.querySelector('.' + ICONCSS)) {
19706
- itemWidth = (this.beforeLabelWidth + (this.stepperItemContainer.querySelector('.' + ICONCSS).offsetWidth / 2));
19707
- }
19708
- else if (this.stepperItemContainer.querySelector('.' + TEXTCSS)) {
19709
- itemWidth = (this.beforeLabelWidth + (this.stepperItemContainer.querySelector('.' + TEXTCSS).offsetWidth / 2));
19710
- }
19711
- if (this.progressBarPosition < itemWidth) {
19712
- this.progressBarPosition = itemWidth;
19713
- }
19875
+ var iconOnly = (this.stepperItemContainer.classList.contains(STEPICON) &&
19876
+ !this.stepperItemContainer.classList.contains(STEPTEXT) &&
19877
+ !this.stepperItemContainer.classList.contains(STEPSLABEL));
19878
+ var textEle = (this.stepperItemContainer.querySelector('.' + TEXTCSS));
19879
+ if (textEle) {
19880
+ this.textEleWidth = this.textEleWidth < textEle.offsetWidth ? textEle.offsetWidth : this.textEleWidth;
19881
+ }
19882
+ if (isBeforeLabel) {
19883
+ var labelWidth = this.stepperItemContainer.querySelector('.' + LABEL).offsetWidth + 15;
19884
+ this.beforeLabelWidth = Math.max(this.beforeLabelWidth, labelWidth);
19885
+ var iconEle = this.element.querySelector('ol').lastChild.querySelector('.' + ICONCSS);
19886
+ var textEle_1 = this.stepperItemContainer.querySelector('.' + TEXTCSS);
19887
+ if (iconEle || textEle_1) {
19888
+ var itemWidth = this.beforeLabelWidth + ((this.stepperItemContainer.querySelector('.' + ICONCSS)
19889
+ || textEle_1).offsetWidth / 2);
19890
+ this.progressBarPosition = Math.max(this.progressBarPosition, itemWidth);
19714
19891
  }
19715
- else if (this.progressBarPosition < (iconOnly ? this.stepperItemContainer.offsetWidth : this.element.querySelector('ol').lastChild.firstChild.offsetWidth)) {
19716
- this.progressBarPosition = iconOnly ? this.stepperItemContainer.offsetWidth : this.element.querySelector('ol').lastChild.firstChild.offsetWidth;
19892
+ else {
19893
+ this.progressBarPosition = Math.max(this.progressBarPosition, (this.beforeLabelWidth / 2));
19717
19894
  }
19718
19895
  }
19896
+ else {
19897
+ var lastChild = this.element.querySelector('ol').lastChild;
19898
+ var lastChildWidth = iconOnly ? this.stepperItemContainer.offsetWidth :
19899
+ lastChild.firstChild.offsetWidth;
19900
+ this.progressBarPosition = Math.max(this.progressBarPosition, lastChildWidth);
19901
+ }
19719
19902
  };
19720
19903
  Stepper.prototype.checkValidState = function (item, stepSpan, isLabel) {
19721
19904
  if (item.isValid == null) {
@@ -19735,13 +19918,10 @@ var Stepper = /** @__PURE__ @class */ (function (_super) {
19735
19918
  }
19736
19919
  };
19737
19920
  Stepper.prototype.updateCurrentLabel = function () {
19738
- var currentLabelPos;
19739
- if (this.element.classList.contains(HORIZSTEP)) {
19740
- currentLabelPos = this.labelPosition.toLowerCase() === 'top' ? 'before' : this.labelPosition.toLowerCase() === 'bottom' ? 'after' : this.labelPosition.toLowerCase();
19741
- }
19742
- else {
19743
- currentLabelPos = this.labelPosition.toLowerCase() === 'start' ? 'before' : this.labelPosition.toLowerCase() === 'end' ? 'after' : this.labelPosition.toLowerCase();
19744
- }
19921
+ var labelPos = this.labelPosition.toLowerCase();
19922
+ var currentLabelPos = this.element.classList.contains(HORIZSTEP$1)
19923
+ ? (labelPos === 'top' ? 'before' : labelPos === 'bottom' ? 'after' : labelPos)
19924
+ : (labelPos === 'start' ? 'before' : labelPos === 'end' ? 'after' : labelPos);
19745
19925
  return currentLabelPos;
19746
19926
  };
19747
19927
  Stepper.prototype.updateLabelPosition = function () {
@@ -19768,49 +19948,49 @@ var Stepper = /** @__PURE__ @class */ (function (_super) {
19768
19948
  }
19769
19949
  };
19770
19950
  Stepper.prototype.checkValidStep = function () {
19771
- for (var index = 0; index < this.steps.length; index++) {
19772
- var item = this.steps[parseInt(index.toString(), 10)];
19773
- var itemElement = this.stepperItemElements[parseInt(index.toString(), 10)];
19951
+ var isStepIndicator = this.element.classList.contains(STEPINDICATOR);
19952
+ var _loop_1 = function (index) {
19953
+ var item = this_1.steps[parseInt(index.toString(), 10)];
19954
+ var itemElement = this_1.stepperItemElements[parseInt(index.toString(), 10)];
19774
19955
  if (item.isValid !== null) {
19775
19956
  var indicatorEle = void 0;
19776
- var iconEle = void 0;
19777
- if (this.element.classList.contains(STEPINDICATOR) && !item.iconCss) {
19957
+ var iconEle_1;
19958
+ if (isStepIndicator && !item.iconCss) {
19778
19959
  indicatorEle = itemElement.querySelector('.' + ICONCSS);
19779
19960
  }
19780
19961
  else {
19781
- iconEle = itemElement.querySelector('.' + ICONCSS);
19962
+ iconEle_1 = itemElement.querySelector('.' + ICONCSS);
19782
19963
  }
19783
- if (!indicatorEle && this.element.classList.contains(STEPINDICATOR) && this.renderDefault(index)) {
19964
+ if (!indicatorEle && isStepIndicator && this_1.renderDefault(index)) {
19784
19965
  indicatorEle = itemElement.querySelector('.' + INDICATORICON);
19785
19966
  }
19786
19967
  var textLabelIcon = itemElement.querySelector('.e-step-validation-icon');
19787
19968
  var itemIcon = item.iconCss.trim().split(' ');
19788
19969
  var validStep = itemElement.classList.contains('e-step-valid');
19970
+ var validIconClass = validStep ? 'e-check' : 'e-circle-info';
19789
19971
  if (indicatorEle) {
19790
19972
  indicatorEle.classList.remove(INDICATORICON);
19791
19973
  if (indicatorEle.innerHTML !== '') {
19792
19974
  indicatorEle.innerHTML = '';
19793
19975
  }
19794
- indicatorEle.classList.add('e-icons', validStep ? 'e-check' : 'e-circle-info', ICONCSS);
19976
+ indicatorEle.classList.add('e-icons', validIconClass, ICONCSS);
19795
19977
  }
19796
- if (this.renderDefault(index) && !this.element.classList.contains(STEPINDICATOR)) {
19978
+ if (this_1.renderDefault(index) && !isStepIndicator) {
19797
19979
  var stepSpan = itemElement.querySelector('.e-step');
19798
- stepSpan.classList.add('e-icons', validStep ? 'e-check' : 'e-circle-info', ICONCSS);
19980
+ stepSpan.classList.add('e-icons', validIconClass, ICONCSS);
19799
19981
  }
19800
- if (iconEle) {
19801
- if (iconEle.innerHTML !== '') {
19802
- iconEle.innerHTML = '';
19982
+ if (iconEle_1) {
19983
+ if (iconEle_1.innerHTML !== '') {
19984
+ iconEle_1.innerHTML = '';
19803
19985
  }
19804
19986
  else if (itemIcon.length > 0) {
19805
- for (var i = 0; i < itemIcon.length; i++) {
19806
- iconEle.classList.remove(itemIcon[parseInt(i.toString(), 10)]);
19807
- }
19987
+ itemIcon.forEach(function (icon) { iconEle_1.classList.remove(icon); });
19808
19988
  }
19809
- iconEle.classList.add('e-icons', validStep ? 'e-check' : 'e-circle-info');
19989
+ iconEle_1.classList.add('e-icons', validIconClass);
19810
19990
  }
19811
19991
  if (textLabelIcon) {
19812
19992
  textLabelIcon.classList.add(validStep ? 'e-circle-check' : 'e-circle-info');
19813
- if (this.element.classList.contains(VERTICALSTEP)) {
19993
+ if (this_1.element.classList.contains(VERTICALSTEP$1)) {
19814
19994
  var labelEle = itemElement.querySelector('.' + LABEL);
19815
19995
  var textEle = itemElement.querySelector('.' + TEXT);
19816
19996
  var itemWidth = textEle ? textEle.offsetWidth + textEle.getBoundingClientRect().left :
@@ -19820,6 +20000,10 @@ var Stepper = /** @__PURE__ @class */ (function (_super) {
19820
20000
  }
19821
20001
  }
19822
20002
  }
20003
+ };
20004
+ var this_1 = this;
20005
+ for (var index = 0; index < this.steps.length; index++) {
20006
+ _loop_1(index);
19823
20007
  }
19824
20008
  };
19825
20009
  Stepper.prototype.updateTooltip = function () {
@@ -19839,20 +20023,28 @@ var Stepper = /** @__PURE__ @class */ (function (_super) {
19839
20023
  }
19840
20024
  };
19841
20025
  Stepper.prototype.wireItemsEvents = function (itemElement, index) {
19842
- var _this = this;
19843
- EventHandler.add(itemElement, 'click', function (e) {
19844
- if (_this.linear) {
19845
- var linearModeValue = index - _this.activeStep;
19846
- if (Math.abs(linearModeValue) === 1) {
19847
- _this.stepClickHandler(index, e, itemElement);
19848
- }
19849
- }
19850
- else {
19851
- _this.stepClickHandler(index, e, itemElement);
20026
+ EventHandler.add(itemElement, 'click', this.linearModeHandler.bind(this, itemElement, index), this);
20027
+ EventHandler.add(itemElement, 'mouseover', this.openStepperTooltip.bind(this, index), this);
20028
+ EventHandler.add(itemElement, 'mouseleave', this.closeStepperTooltip, this);
20029
+ };
20030
+ Stepper.prototype.unWireItemsEvents = function () {
20031
+ for (var index = 0; index < this.steps.length; index++) {
20032
+ var itemElement = this.stepperItemElements[parseInt(index.toString(), 10)];
20033
+ EventHandler.remove(itemElement, 'click', this.linearModeHandler.bind(this, itemElement, index));
20034
+ EventHandler.remove(itemElement, 'mouseover', this.openStepperTooltip.bind(this, index));
20035
+ EventHandler.remove(itemElement, 'mouseleave', this.closeStepperTooltip);
20036
+ }
20037
+ };
20038
+ Stepper.prototype.linearModeHandler = function (itemElement, index, e) {
20039
+ if (this.linear) {
20040
+ var linearModeValue = index - this.activeStep;
20041
+ if (Math.abs(linearModeValue) === 1) {
20042
+ this.stepClickHandler(index, e, itemElement);
19852
20043
  }
19853
- }, this);
19854
- EventHandler.add(itemElement, 'mouseover', function () { return _this.openStepperTooltip(index); }, this);
19855
- EventHandler.add(itemElement, 'mouseleave', function () { return _this.closeStepperTooltip(); }, this);
20044
+ }
20045
+ else {
20046
+ this.stepClickHandler(index, e, itemElement);
20047
+ }
19856
20048
  };
19857
20049
  Stepper.prototype.openStepperTooltip = function (index) {
19858
20050
  var currentStep = this.steps[parseInt(index.toString(), 10)];
@@ -19994,7 +20186,7 @@ var Stepper = /** @__PURE__ @class */ (function (_super) {
19994
20186
  }
19995
20187
  };
19996
20188
  Stepper.prototype.navigationHandler = function (index, stepStatus, isUpdated) {
19997
- index = (index >= this.steps.length - 1) ? this.steps.length - 1 : index;
20189
+ index = Math.min(index, this.steps.length - 1);
19998
20190
  var Itemslength = this.stepperItemElements.length;
19999
20191
  if (index >= 0 && index < Itemslength - 1) {
20000
20192
  index = this.stepperItemElements[parseInt(index.toString(), 10)].classList.contains(DISABLED$2) ? this.activeStep : index;
@@ -20011,46 +20203,8 @@ var Stepper = /** @__PURE__ @class */ (function (_super) {
20011
20203
  itemElement.classList.add(SELECTED$2);
20012
20204
  }
20013
20205
  if (this.activeStep >= 0 && this.progressbar) {
20014
- if (this.element.classList.contains(HORIZSTEP)) {
20015
- if ((this.element.classList.contains(LABELBEFORE) || this.element.classList.contains(LABELAFTER)) &&
20016
- !this.element.classList.contains(STEPINDICATOR) &&
20017
- this.stepperItemElements[parseInt(this.activeStep.toString(), 10)].classList.contains(STEPICON)) {
20018
- var progressPos = this.element.querySelector('.e-stepper-progressbar');
20019
- var selectedEle = this.stepperItemElements[parseInt(this.activeStep.toString(), 10)]
20020
- .firstChild;
20021
- var value = this.activeStep === 0 ? 0 : (selectedEle.offsetLeft - progressPos.offsetLeft +
20022
- (selectedEle.offsetWidth / 2)) / progressPos.offsetWidth * 100;
20023
- if (this.element.classList.contains(RTL$3)) {
20024
- value = (progressPos.getBoundingClientRect().right - selectedEle.getBoundingClientRect().right +
20025
- (selectedEle.offsetWidth / 2)) / progressPos.offsetWidth * 100;
20026
- this.progressbar.style.setProperty(PROGRESSVALUE$1, (value) + '%');
20027
- }
20028
- else {
20029
- this.progressbar.style.setProperty(PROGRESSVALUE$1, (value) + '%');
20030
- }
20031
- }
20032
- else {
20033
- var totalLiWidth = 0;
20034
- var activeLiWidth = 0;
20035
- for (var j = 0; j < this.stepperItemElements.length; j++) {
20036
- totalLiWidth = totalLiWidth + this.stepperItemElements[parseInt(j.toString(), 10)].offsetWidth;
20037
- if (j <= this.activeStep) {
20038
- if (j < this.activeStep) {
20039
- activeLiWidth = activeLiWidth +
20040
- this.stepperItemElements[parseInt(j.toString(), 10)].offsetWidth;
20041
- }
20042
- else if (j === this.activeStep && j !== 0) {
20043
- activeLiWidth = activeLiWidth +
20044
- (this.stepperItemElements[parseInt(j.toString(), 10)].offsetWidth / 2);
20045
- }
20046
- }
20047
- }
20048
- var spaceWidth = (this.stepperItemList.offsetWidth - totalLiWidth) /
20049
- (this.stepperItemElements.length - 1);
20050
- var progressValue = ((activeLiWidth + (spaceWidth * this.activeStep)) /
20051
- this.stepperItemList.offsetWidth) * 100;
20052
- this.progressbar.style.setProperty(PROGRESSVALUE$1, (progressValue) + '%');
20053
- }
20206
+ if (this.element.classList.contains(HORIZSTEP$1)) {
20207
+ this.calculateProgressbarPos();
20054
20208
  }
20055
20209
  else {
20056
20210
  this.progressbar.style.setProperty(PROGRESSVALUE$1, ((100 / (this.steps.length - 1)) * index) + '%');
@@ -20099,27 +20253,65 @@ var Stepper = /** @__PURE__ @class */ (function (_super) {
20099
20253
  }
20100
20254
  }
20101
20255
  this.isProtectedOnChange = prevOnChange_1;
20102
- if (this.renderDefault(i) && this.element.classList.contains(STEPINDICATOR) && !itemElement.classList.contains('e-step-valid') && !itemElement.classList.contains('e-step-error')) {
20103
- if (itemElement.classList.contains(COMPLETED)) {
20104
- itemElement.firstChild.classList.remove('e-icons', 'e-step-indicator');
20105
- itemElement.firstChild.classList.add(ICONCSS, 'e-icons', 'e-check');
20106
- }
20107
- else if (itemElement.classList.contains(INPROGRESS) || itemElement.classList.contains(NOTSTARTED)) {
20108
- itemElement.firstChild.classList.remove(ICONCSS, 'e-icons', 'e-check');
20109
- itemElement.firstChild.classList.add('e-icons', 'e-step-indicator');
20256
+ this.updateIndicatorStatus(i, itemElement);
20257
+ }
20258
+ this.updateStepInteractions();
20259
+ };
20260
+ Stepper.prototype.calculateProgressbarPos = function () {
20261
+ var _this = this;
20262
+ if ((this.element.classList.contains(LABELBEFORE) || this.element.classList.contains(LABELAFTER)) &&
20263
+ !this.element.classList.contains(STEPINDICATOR) &&
20264
+ this.stepperItemElements[parseInt(this.activeStep.toString(), 10)].classList.contains(STEPICON)) {
20265
+ var progressPos = this.element.querySelector('.e-stepper-progressbar');
20266
+ var selectedEle = this.stepperItemElements[parseInt(this.activeStep.toString(), 10)]
20267
+ .firstChild;
20268
+ var value = this.activeStep === 0 ? 0 : (selectedEle.offsetLeft - progressPos.offsetLeft +
20269
+ (selectedEle.offsetWidth / 2)) / progressPos.offsetWidth * 100;
20270
+ if (this.element.classList.contains(RTL$3)) {
20271
+ value = (progressPos.getBoundingClientRect().right - selectedEle.getBoundingClientRect().right +
20272
+ (selectedEle.offsetWidth / 2)) / progressPos.offsetWidth * 100;
20273
+ this.progressbar.style.setProperty(PROGRESSVALUE$1, (value) + '%');
20274
+ }
20275
+ else {
20276
+ this.progressbar.style.setProperty(PROGRESSVALUE$1, (value) + '%');
20277
+ }
20278
+ }
20279
+ else {
20280
+ var totalLiWidth_1 = 0;
20281
+ var activeLiWidth_1 = 0;
20282
+ this.stepperItemElements.forEach(function (element, index) {
20283
+ var itemWidth = element.offsetWidth;
20284
+ totalLiWidth_1 += itemWidth;
20285
+ if (index <= _this.activeStep) {
20286
+ activeLiWidth_1 += (index === _this.activeStep && index !== 0) ? (itemWidth / 2) : itemWidth;
20110
20287
  }
20288
+ });
20289
+ var spaceWidth = (this.stepperItemList.offsetWidth - totalLiWidth_1) /
20290
+ (this.stepperItemElements.length - 1);
20291
+ var progressValue = ((activeLiWidth_1 + (spaceWidth * this.activeStep)) /
20292
+ this.stepperItemList.offsetWidth) * 100;
20293
+ this.progressbar.style.setProperty(PROGRESSVALUE$1, (progressValue) + '%');
20294
+ }
20295
+ };
20296
+ Stepper.prototype.updateIndicatorStatus = function (index, itemElement) {
20297
+ if (this.renderDefault(index) && this.element.classList.contains(STEPINDICATOR) && !itemElement.classList.contains('e-step-valid')
20298
+ && !itemElement.classList.contains('e-step-error')) {
20299
+ if (itemElement.classList.contains(COMPLETED)) {
20300
+ itemElement.firstChild.classList.remove('e-icons', 'e-step-indicator');
20301
+ itemElement.firstChild.classList.add(ICONCSS, 'e-icons', 'e-check');
20302
+ }
20303
+ else if (itemElement.classList.contains(INPROGRESS) || itemElement.classList.contains(NOTSTARTED)) {
20304
+ itemElement.firstChild.classList.remove(ICONCSS, 'e-icons', 'e-check');
20305
+ itemElement.firstChild.classList.add('e-icons', 'e-step-indicator');
20111
20306
  }
20112
20307
  }
20113
- this.updateStepInteractions();
20114
20308
  };
20115
20309
  Stepper.prototype.updateStepInteractions = function () {
20116
20310
  var _this = this;
20117
20311
  this.element.classList.toggle(LINEARSTEP, this.linear);
20118
20312
  this.stepperItemElements.forEach(function (step, index) {
20119
- var isPreviousStep = (index === _this.activeStep - 1);
20120
- var isNextStep = (index === _this.activeStep + 1);
20121
- step.classList.toggle(PREVSTEP, isPreviousStep);
20122
- step.classList.toggle(NEXTSTEP, isNextStep);
20313
+ step.classList.toggle(PREVSTEP, (index === _this.activeStep - 1));
20314
+ step.classList.toggle(NEXTSTEP, (index === _this.activeStep + 1));
20123
20315
  });
20124
20316
  };
20125
20317
  Stepper.prototype.removeItemElements = function () {
@@ -20175,7 +20367,7 @@ var Stepper = /** @__PURE__ @class */ (function (_super) {
20175
20367
  };
20176
20368
  Stepper.prototype.updateElementClassArray = function () {
20177
20369
  var classArray = [RTL$3, READONLY, 'e-steps-focus', LABELAFTER, LABELBEFORE, 'e-label-top',
20178
- 'e-label-bottom', 'e-label-start', 'e-label-end', STEPINDICATOR, LABELINDICATOR, VERTICALSTEP, HORIZSTEP, LINEARSTEP];
20370
+ 'e-label-bottom', 'e-label-start', 'e-label-end', STEPINDICATOR, LABELINDICATOR, VERTICALSTEP$1, HORIZSTEP$1, LINEARSTEP];
20179
20371
  removeClass([this.element], classArray);
20180
20372
  };
20181
20373
  /**
@@ -20186,6 +20378,7 @@ var Stepper = /** @__PURE__ @class */ (function (_super) {
20186
20378
  Stepper.prototype.destroy = function () {
20187
20379
  _super.prototype.destroy.call(this);
20188
20380
  this.unWireEvents();
20381
+ this.unWireItemsEvents();
20189
20382
  // unwires the events and detach the li elements
20190
20383
  this.removeItemElements();
20191
20384
  this.clearTemplate();
@@ -20231,7 +20424,7 @@ var Stepper = /** @__PURE__ @class */ (function (_super) {
20231
20424
  case 'rightarrow':
20232
20425
  case 'tab':
20233
20426
  case 'shiftTab':
20234
- this.handleNavigation(this.enableRtl && this.element.classList.contains(HORIZSTEP) ? (e.action === 'leftarrow' || e.action === 'tab' || e.action === 'uparrow') : (e.action === 'rightarrow' || e.action === 'tab' || e.action === 'downarrow'), e);
20427
+ this.handleNavigation(this.enableRtl && this.element.classList.contains(HORIZSTEP$1) ? (e.action === 'leftarrow' || e.action === 'tab' || e.action === 'uparrow') : (e.action === 'rightarrow' || e.action === 'tab' || e.action === 'downarrow'), e);
20235
20428
  break;
20236
20429
  case 'space':
20237
20430
  case 'enter':
@@ -20332,6 +20525,66 @@ var Stepper = /** @__PURE__ @class */ (function (_super) {
20332
20525
  this.updateAnimation();
20333
20526
  this.navigateToStep(this.activeStep, null, this.stepperItemElements[this.activeStep], true);
20334
20527
  };
20528
+ Stepper.prototype.updateDynamicSteps = function (steps, prevSteps) {
20529
+ if (!(steps instanceof Array && prevSteps instanceof Array)) {
20530
+ var stepCounts = Object.keys(steps);
20531
+ for (var i = 0; i < stepCounts.length; i++) {
20532
+ var index = parseInt(Object.keys(steps)[i], 10);
20533
+ var changedPropsCount = Object.keys(steps[index]).length;
20534
+ for (var j = 0; j < changedPropsCount; j++) {
20535
+ var property = Object.keys(steps[index])[j];
20536
+ if (property === 'status') {
20537
+ if (this.activeStep === index) {
20538
+ this.navigationHandler(index, steps[index].status);
20539
+ }
20540
+ else {
20541
+ this.steps[index].status = prevSteps[index].status;
20542
+ }
20543
+ }
20544
+ else {
20545
+ this.removeItemElements();
20546
+ this.renderItems();
20547
+ this.updateStepperStatus();
20548
+ }
20549
+ if (property === 'label' && (this.steps[index].iconCss || this.steps[index].text) &&
20550
+ this.stepType.toLowerCase() === 'default') {
20551
+ this.refreshProgressbar();
20552
+ }
20553
+ this.updateStepInteractions();
20554
+ this.checkValidStep();
20555
+ }
20556
+ }
20557
+ }
20558
+ else {
20559
+ this.renderStepperItems(true, true);
20560
+ }
20561
+ };
20562
+ Stepper.prototype.updateDynamicActiveStep = function (activeStep, preActiveStep) {
20563
+ this.activeStep = (activeStep > this.steps.length - 1 || activeStep < -1) ? preActiveStep : this.activeStep;
20564
+ if (this.activeStep >= 0 && this.stepperItemElements[parseInt(this.activeStep.toString(), 10)].classList.contains(DISABLED$2)) {
20565
+ this.activeStep = preActiveStep;
20566
+ }
20567
+ if (this.linear) {
20568
+ var linearModeValue = preActiveStep - this.activeStep;
20569
+ if (Math.abs(linearModeValue) === 1) {
20570
+ this.navigateToStep(this.activeStep, null, null, true);
20571
+ }
20572
+ }
20573
+ else {
20574
+ this.navigateToStep(this.activeStep, null, this.stepperItemElements[this.activeStep], true);
20575
+ }
20576
+ };
20577
+ Stepper.prototype.updateDynamicCssClass = function (cssClass, prevCssClass) {
20578
+ if (prevCssClass) {
20579
+ removeClass([this.element], prevCssClass.trim().split(' '));
20580
+ }
20581
+ if (cssClass) {
20582
+ addClass([this.element], cssClass.trim().split(' '));
20583
+ }
20584
+ if (this.tooltipObj) {
20585
+ this.tooltipObj.setProperties({ cssClass: this.cssClass ? (STEPPERTOOLTIP + ' ' + this.cssClass) : STEPPERTOOLTIP });
20586
+ }
20587
+ };
20335
20588
  /**
20336
20589
  * Called internally if any of the property value changed.
20337
20590
  *
@@ -20345,38 +20598,7 @@ var Stepper = /** @__PURE__ @class */ (function (_super) {
20345
20598
  var prop = _a[_i];
20346
20599
  switch (prop) {
20347
20600
  case 'steps': {
20348
- if (!(newProp.steps instanceof Array && oldProp.steps instanceof Array)) {
20349
- var stepCounts = Object.keys(newProp.steps);
20350
- for (var i = 0; i < stepCounts.length; i++) {
20351
- var index = parseInt(Object.keys(newProp.steps)[i], 10);
20352
- var changedPropsCount = Object.keys(newProp.steps[index]).length;
20353
- for (var j = 0; j < changedPropsCount; j++) {
20354
- var property = Object.keys(newProp.steps[index])[j];
20355
- if (property === 'status') {
20356
- if (this.activeStep === index) {
20357
- this.navigationHandler(index, newProp.steps[index].status);
20358
- }
20359
- else {
20360
- this.steps[index].status = oldProp.steps[index].status;
20361
- }
20362
- }
20363
- else {
20364
- this.removeItemElements();
20365
- this.renderItems();
20366
- this.updateStepperStatus();
20367
- }
20368
- if (property === 'label' && (this.steps[index].iconCss || this.steps[index].text) &&
20369
- this.stepType.toLowerCase() === 'default') {
20370
- this.refreshProgressbar();
20371
- }
20372
- this.updateStepInteractions();
20373
- this.checkValidStep();
20374
- }
20375
- }
20376
- }
20377
- else {
20378
- this.renderStepperItems(true, true);
20379
- }
20601
+ this.updateDynamicSteps(newProp.steps, oldProp.steps);
20380
20602
  break;
20381
20603
  }
20382
20604
  case 'orientation':
@@ -20384,21 +20606,7 @@ var Stepper = /** @__PURE__ @class */ (function (_super) {
20384
20606
  this.renderStepperItems(true);
20385
20607
  break;
20386
20608
  case 'activeStep':
20387
- this.activeStep = (newProp.activeStep > this.steps.length - 1 || newProp.activeStep < -1) ?
20388
- oldProp.activeStep : this.activeStep;
20389
- if (this.activeStep >= 0 && this.stepperItemElements[parseInt(this.activeStep.toString(), 10)]
20390
- .classList.contains(DISABLED$2)) {
20391
- this.activeStep = oldProp.activeStep;
20392
- }
20393
- if (this.linear) {
20394
- var linearModeValue = oldProp.activeStep - this.activeStep;
20395
- if (Math.abs(linearModeValue) === 1) {
20396
- this.navigateToStep(this.activeStep, null, null, true);
20397
- }
20398
- }
20399
- else {
20400
- this.navigateToStep(this.activeStep, null, this.stepperItemElements[this.activeStep], true);
20401
- }
20609
+ this.updateDynamicActiveStep(newProp.activeStep, oldProp.activeStep);
20402
20610
  break;
20403
20611
  case 'enableRtl':
20404
20612
  this.element.classList[this.enableRtl ? 'add' : 'remove'](RTL$3);
@@ -20407,15 +20615,7 @@ var Stepper = /** @__PURE__ @class */ (function (_super) {
20407
20615
  this.element.classList[this.readOnly ? 'add' : 'remove'](READONLY);
20408
20616
  break;
20409
20617
  case 'cssClass':
20410
- if (oldProp.cssClass) {
20411
- removeClass([this.element], oldProp.cssClass.trim().split(' '));
20412
- }
20413
- if (newProp.cssClass) {
20414
- addClass([this.element], newProp.cssClass.trim().split(' '));
20415
- }
20416
- if (this.tooltipObj) {
20417
- this.tooltipObj.setProperties({ cssClass: this.cssClass ? (STEPPERTOOLTIP + ' ' + this.cssClass) : STEPPERTOOLTIP });
20418
- }
20618
+ this.updateDynamicCssClass(newProp.cssClass, oldProp.cssClass);
20419
20619
  break;
20420
20620
  case 'labelPosition':
20421
20621
  this.renderStepperItems(true);